git.iko.soy/typeable/nixpkgs
on master help sign in
libpwquality: 1.4.2 -> 1.4.4

- corrected the license: https://github.com/libpwquality/libpwquality/blob/libpwquality-1.4.4/COPYING - added long description - added myself as a maintainer - removed unnecessary patch - split outputs - added pam for building the pam module

commit4a2da4208aecd7275c59d916f96aab095178c53e author06kellyjac <dev@j-k.io> dateWed 23 Mar 2022, 08:39 (5 years ago) parent19d4f7d
4 files changed+62−19
pkgs/development/libraries/libpwquality/default.nix+39−18 pkgs/development/libraries/libpwquality/python-binding-prefix.patch+13 pkgs/top-level/all-packages.nix+3−1 pkgs/top-level/python-packages.nix+7
pkgs/development/libraries/libpwquality/default.nix+39−18
@@ -1,36 +1,57 @@
1−{ stdenv, lib, fetchFromGitHub, autoreconfHook, perl, cracklib, python3, fetchpatch }:
1+{ stdenv
2+, lib
3+, fetchFromGitHub
4+, autoreconfHook
5+, perl
6+, cracklib
7+, enablePAM ? stdenv.hostPlatform.isLinux
8+, pam
9+, enablePython ? false
10+, python
11+}:
12+
13+# python binding generates a shared library which are unavailable with musl build
14+assert enablePython -> !stdenv.hostPlatform.isStatic;
215
316stdenv.mkDerivation rec {
417 pname = "libpwquality";
5− version = "1.4.2";
18+ version = "1.4.4";
19+
20+ outputs = [ "out" "dev" "lib" "man" ] ++ lib.optionals enablePython [ "py" ];
621
722 src = fetchFromGitHub {
823 owner = "libpwquality";
924 repo = "libpwquality";
1025 rev = "${pname}-${version}";
11− sha256 = "0n4pjhm7wfivk0wizggaxq4y4mcxic876wcarjabkp5z9k14y36h";
26+ sha256 = "sha256-7gAzrx5VP1fEBwAt6E5zGM8GyuPRR+JxYifYfirY+U8=";
1227 };
1328
14− nativeBuildInputs = [ autoreconfHook perl python3 ];
15− buildInputs = [ cracklib ];
16−
17− patches = lib.optional stdenv.hostPlatform.isStatic [
18− (fetchpatch {
19− name = "static-build.patch";
20− url = "https://github.com/libpwquality/libpwquality/pull/40.patch";
21− sha256 = "1ypccq437wxwgddd98cvd330jfm7jscdlzlyxgy05g6yzrr68xyk";
22− })
29+ patches = [
30+ # ensure python site-packages goes in $py output
31+ ./python-binding-prefix.patch
2332 ];
2433
25− configureFlags = lib.optional stdenv.hostPlatform.isStatic [
26− # Python binding generates a shared library which are unavailable with musl build
27− "--disable-python-bindings"
28− ];
34+ nativeBuildInputs = [ autoreconfHook perl ] ++ lib.optionals enablePython [ python ];
35+ buildInputs = [ cracklib ] ++ lib.optionals enablePAM [ pam ];
36+
37+ configureFlags = lib.optionals (!enablePython) [ "--disable-python-bindings" ];
2938
3039 meta = with lib; {
31− description = "Password quality checking and random password generation library";
3240 homepage = "https://github.com/libpwquality/libpwquality";
33− license = licenses.bsd3;
41+ description = "Password quality checking and random password generation library";
42+ longDescription = ''
43+ The libpwquality library purpose is to provide common functions for
44+ password quality checking and also scoring them based on their apparent
45+ randomness. The library also provides a function for generating random
46+ passwords with good pronounceability. The library supports reading and
47+ parsing of a configuration file.
48+
49+ In the package there are also very simple utilities that use the library
50+ function and PAM module that can be used instead of pam_cracklib. The
51+ module supports all the options of pam_cracklib.
52+ '';
53+ license = with licenses; [ bsd3 /* or */ gpl2Plus ];
54+ maintainers = with maintainers; [ jk ];
3455 platforms = platforms.unix;
3556 };
3657}
pkgs/development/libraries/libpwquality/python-binding-prefix.patchnew file+13
@@ -0,0 +1,13 @@
1+diff --git a/python/Makefile.am b/python/Makefile.am
2+index 1d00c0c..0987690 100644
3+--- a/python/Makefile.am
4++++ b/python/Makefile.am
5+@@ -14,7 +14,7 @@ all-local:
6+ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV)
7+
8+ install-exec-local:
9+- CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV) install --prefix=${DESTDIR}${prefix}
10++ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV) install --prefix=${DESTDIR}${py}
11+
12+ clean-local:
13+ rm -rf py$(PYTHONREV)
pkgs/top-level/all-packages.nix+3−1
@@ -18714,7 +18714,9 @@ with pkgs;
1871418714
1871518715 libpulsar = callPackage ../development/libraries/libpulsar { };
1871618716
18717− libpwquality = callPackage ../development/libraries/libpwquality { };
18717+ libpwquality = callPackage ../development/libraries/libpwquality {
18718+ python = python3;
18719+ };
1871818720
1871918721 libqalculate = callPackage ../development/libraries/libqalculate {
1872018722 readline = readline81;
pkgs/top-level/python-packages.nix+7
@@ -4665,6 +4665,13 @@ in {
46654665
46664666 libpyvivotek = callPackage ../development/python-modules/libpyvivotek { };
46674667
4668+ libpwquality = pipe pkgs.libpwquality [
4669+ toPythonModule
4670+ (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; }))
4671+ (p: p.override { enablePython = true; inherit python; })
4672+ (p: p.py)
4673+ ];
4674+
46684675 libredwg = toPythonModule (pkgs.libredwg.override {
46694676 enablePython = true;
46704677 inherit (self) python libxml2;