diff options
Diffstat (limited to 'pkgs/os-specific/linux/shadow/default.nix')
-rw-r--r-- | pkgs/os-specific/linux/shadow/default.nix | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix index fbcecf05f18..e20023b2b6e 100644 --- a/pkgs/os-specific/linux/shadow/default.nix +++ b/pkgs/os-specific/linux/shadow/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, libxslt, libxml2 -, docbook_xml_dtd_45, docbook_xsl, itstool, flex, bison +{ lib, stdenv, nixosTests, fetchpatch, fetchFromGitHub, autoreconfHook, libxslt +, libxml2 , docbook_xml_dtd_45, docbook_xsl, itstool, flex, bison, runtimeShell , pam ? null, glibcCross ? null }: @@ -19,16 +19,16 @@ in stdenv.mkDerivation rec { pname = "shadow"; - version = "4.8"; + version = "4.8.1"; src = fetchFromGitHub { owner = "shadow-maint"; repo = "shadow"; rev = version; - sha256 = "05a636dqxip09l5jjrrs30lvwq6xkhjrdgjbbj3bg6b6z7hc67qk"; + sha256 = "13407r6qwss00504qy740jghb2dzd561la7dhp47rg8w3g8jarpn"; }; - buildInputs = stdenv.lib.optional (pam != null && stdenv.isLinux) pam; + buildInputs = lib.optional (pam != null && stdenv.isLinux) pam; nativeBuildInputs = [autoreconfHook libxslt libxml2 docbook_xml_dtd_45 docbook_xsl flex bison itstool ]; @@ -38,8 +38,11 @@ stdenv.mkDerivation rec { # Obtain XML resources from XML catalog (patch adapted from gtk-doc) ./respect-xml-catalog-files-var.patch dots_in_usernames + ./runtime-shell.patch ]; + RUNTIME_SHELL = runtimeShell; + # The nix daemon often forbids even creating set[ug]id files. postPatch = ''sed 's/^\(s[ug]idperms\) = [0-9]755/\1 = 0755/' -i src/Makefile.am @@ -59,9 +62,9 @@ stdenv.mkDerivation rec { configureFlags = [ "--enable-man" "--with-group-name-max-length=32" - ] ++ stdenv.lib.optional (stdenv.hostPlatform.libc != "glibc") "--disable-nscd"; + ] ++ lib.optional (stdenv.hostPlatform.libc != "glibc") "--disable-nscd"; - preBuild = stdenv.lib.optionalString (stdenv.hostPlatform.libc == "glibc") + preBuild = lib.optionalString (stdenv.hostPlatform.libc == "glibc") '' substituteInPlace lib/nscd.c --replace /usr/sbin/nscd ${glibc.bin}/bin/nscd ''; @@ -77,7 +80,9 @@ stdenv.mkDerivation rec { mv $out/bin/su $su/bin ''; - meta = with stdenv.lib; { + disallowedReferences = lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) stdenv.shellPackage; + + meta = with lib; { homepage = "https://github.com/shadow-maint"; description = "Suite containing authentication-related tools such as passwd and su"; license = licenses.bsd3; @@ -86,5 +91,6 @@ stdenv.mkDerivation rec { passthru = { shellPath = "/bin/nologin"; + tests = { inherit (nixosTests) shadow; }; }; } |