accountsservice: cleanup
* set admin_group to wheel * use a fix-paths.patch * patch to create StateDirectory Comes from upstream and should eliminate us creating the directories with a wrapper script.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
{ stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, substituteAll
|
||||
, pkgconfig
|
||||
, glib
|
||||
, intltool
|
||||
, makeWrapper
|
||||
, shadow
|
||||
, gobject-introspection
|
||||
, polkit
|
||||
@@ -13,19 +13,24 @@
|
||||
, dbus
|
||||
, ninja
|
||||
, python3
|
||||
, gettext
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "accountsservice";
|
||||
version = "0.6.55";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.freedesktop.org/software/${pname}/${pname}-${version}.tar.xz";
|
||||
sha256 = "16wwd633jak9ajyr1f1h047rmd09fhf3kzjz6g5xjsz0lwcj8azz";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
dbus
|
||||
gettext
|
||||
gobject-introspection
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
@@ -33,42 +38,40 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
dbus
|
||||
glib
|
||||
gobject-introspection
|
||||
intltool
|
||||
polkit
|
||||
systemd
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dsystemdsystemunitdir=etc/systemd/system"
|
||||
"-Dadmin_group=wheel"
|
||||
"-Dlocalstatedir=/var"
|
||||
"-Dsystemdsystemunitdir=${placeholder ''out''}/etc/systemd/system"
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
|
||||
substituteInPlace src/daemon.c --replace '"/usr/sbin/useradd"' '"${shadow}/bin/useradd"' \
|
||||
--replace '"/usr/sbin/userdel"' '"${shadow}/bin/userdel"'
|
||||
substituteInPlace src/user.c --replace '"/usr/sbin/usermod"' '"${shadow}/bin/usermod"' \
|
||||
--replace '"/usr/bin/chage"' '"${shadow}/bin/chage"' \
|
||||
--replace '"/usr/bin/passwd"' '"${shadow}/bin/passwd"' \
|
||||
--replace '"/bin/cat"' '"${coreutils}/bin/cat"'
|
||||
'';
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit shadow coreutils;
|
||||
})
|
||||
./no-create-dirs.patch
|
||||
./Disable-methods-that-change-files-in-etc.patch
|
||||
# Systemd unit improvements. Notably using StateDirectory eliminating the
|
||||
# need of an ad-hoc script.
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.freedesktop.org/accountsservice/accountsservice/commit/152b845bbd3ca2a64516691493a160825f1a2046.patch";
|
||||
sha256 = "114wrf5mwj5bgc5v1g05md4ridcnwdrwppr3bjz96sknwh5hk8s5";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.freedesktop.org/accountsservice/accountsservice/commit/0e712e935abd26499ff5995ab363e5bfd9ee7c4c.patch";
|
||||
sha256 = "1y60a5fmgfqjzprwpizilrazqn3mggdlgc5sgcpsprsp62fv78rl";
|
||||
})
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
wrapProgram "$out/libexec/accounts-daemon" \
|
||||
--run "${coreutils}/bin/mkdir -p /var/lib/AccountsService/users" \
|
||||
--run "${coreutils}/bin/mkdir -p /var/lib/AccountsService/icons"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "D-Bus interface for user account query and manipulation";
|
||||
homepage = https://www.freedesktop.org/wiki/Software/AccountsService;
|
||||
|
||||
Reference in New Issue
Block a user