about summary refs log tree commit diff
path: root/pkgs/development/libraries/accountsservice/default.nix
diff options
context:
space:
mode:
authorworldofpeace <worldofpeace@protonmail.ch>2019-07-01 01:33:07 -0400
committerworldofpeace <worldofpeace@protonmail.ch>2019-07-01 01:33:07 -0400
commit886e62f5b0651faf8de724c9514271f498a6af1e (patch)
tree7d7adcf4bcba3f3c8dc22f34692866d0319f7de6 /pkgs/development/libraries/accountsservice/default.nix
parent89f26a475de0910219d45240cbe4d2474d4dae73 (diff)
downloadnixlib-886e62f5b0651faf8de724c9514271f498a6af1e.tar
nixlib-886e62f5b0651faf8de724c9514271f498a6af1e.tar.gz
nixlib-886e62f5b0651faf8de724c9514271f498a6af1e.tar.bz2
nixlib-886e62f5b0651faf8de724c9514271f498a6af1e.tar.lz
nixlib-886e62f5b0651faf8de724c9514271f498a6af1e.tar.xz
nixlib-886e62f5b0651faf8de724c9514271f498a6af1e.tar.zst
nixlib-886e62f5b0651faf8de724c9514271f498a6af1e.zip
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.
Diffstat (limited to 'pkgs/development/libraries/accountsservice/default.nix')
-rw-r--r--pkgs/development/libraries/accountsservice/default.nix47
1 files changed, 25 insertions, 22 deletions
diff --git a/pkgs/development/libraries/accountsservice/default.nix b/pkgs/development/libraries/accountsservice/default.nix
index 01f11ad3b2b0..8713663ecca7 100644
--- a/pkgs/development/libraries/accountsservice/default.nix
+++ b/pkgs/development/libraries/accountsservice/default.nix
@@ -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;