python312Packages.vdf: avoid using pname for src.repo
[NixPkgs.git] / pkgs / os-specific / linux / pam / default.nix
blobb460348a105d40fd14dd4ff67bdd8b0668e01ef4
1 { lib, stdenv, buildPackages, fetchurl
2 , flex, cracklib, db4, gettext, audit, libxcrypt
3 , nixosTests
4 , autoreconfHook269, pkg-config-unwrapped
5 }:
7 stdenv.mkDerivation rec {
8   pname = "linux-pam";
9   version = "1.6.1";
11   src = fetchurl {
12     url = "https://github.com/linux-pam/linux-pam/releases/download/v${version}/Linux-PAM-${version}.tar.xz";
13     hash = "sha256-+JI8dAFZBS1xnb/CovgZQtaN00/K9hxwagLJuA/u744=";
14   };
16   patches = [
17     ./suid-wrapper-path.patch
18   ];
20   # Case-insensitivity workaround for https://github.com/linux-pam/linux-pam/issues/569
21   postPatch = lib.optionalString (stdenv.buildPlatform.isDarwin && stdenv.buildPlatform != stdenv.hostPlatform) ''
22     rm CHANGELOG
23     touch ChangeLog
24   '';
26   outputs = [ "out" "doc" "man" /* "modules" */ ];
28   depsBuildBuild = [ buildPackages.stdenv.cc ];
29   # autoreconfHook269 is needed for `suid-wrapper-path.patch` above.
30   # pkg-config-unwrapped is needed for `AC_CHECK_LIB` and `AC_SEARCH_LIBS`
31   nativeBuildInputs = [ flex autoreconfHook269 pkg-config-unwrapped ]
32     ++ lib.optional stdenv.buildPlatform.isDarwin gettext;
34   buildInputs = [ cracklib db4 libxcrypt ]
35     ++ lib.optional stdenv.buildPlatform.isLinux audit;
37   enableParallelBuilding = true;
39   configureFlags = [
40     "--includedir=${placeholder "out"}/include/security"
41     "--enable-sconfigdir=/etc/security"
42     # The module is deprecated. We re-enable it explicitly until NixOS
43     # module stops using it.
44     "--enable-lastlog"
45   ];
47   installFlags = [
48     "SCONFIGDIR=${placeholder "out"}/etc/security"
49   ];
51   doCheck = false; # fails
53   passthru.tests = {
54     inherit (nixosTests) pam-oath-login pam-u2f shadow sssd-ldap;
55   };
57   meta = with lib; {
58     homepage = "http://www.linux-pam.org/";
59     description = "Pluggable Authentication Modules, a flexible mechanism for authenticating user";
60     platforms = platforms.linux;
61     license = licenses.bsd3;
62   };