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:
worldofpeace
2019-07-01 01:33:07 -04:00
parent 89f26a475d
commit 886e62f5b0
2 changed files with 150 additions and 22 deletions
@@ -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;