summaryrefslogtreecommitdiff
path: root/dev-libs/libpwquality
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-09-07 10:35:35 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-09-07 10:35:35 +0100
commita0e773d57146b0a0ec25567af504a10e6f187811 (patch)
tree09e8f87aa02b56f14f16e82522b625cfeccb1103 /dev-libs/libpwquality
parent1ccef27203b03f1fa900c9b44dc425df27e49452 (diff)
gentoo auto-resync : 07:09:2022 - 10:35:34
Diffstat (limited to 'dev-libs/libpwquality')
-rw-r--r--dev-libs/libpwquality/Manifest3
-rw-r--r--dev-libs/libpwquality/files/libpwquality-1.4.4-musl-fgetpwent_r.patch42
-rw-r--r--dev-libs/libpwquality/files/libpwquality-1.4.4-pam_pwquality-include.patch35
-rw-r--r--dev-libs/libpwquality/libpwquality-1.4.4-r2.ebuild91
4 files changed, 171 insertions, 0 deletions
diff --git a/dev-libs/libpwquality/Manifest b/dev-libs/libpwquality/Manifest
index 3b82cbaaf945..f2bcd5a93877 100644
--- a/dev-libs/libpwquality/Manifest
+++ b/dev-libs/libpwquality/Manifest
@@ -1,3 +1,6 @@
+AUX libpwquality-1.4.4-musl-fgetpwent_r.patch 1260 BLAKE2B e9c9df60e0e1ba022185393f044190e0539950e5bf1f58a9c1ade2174fd8d04158b8834c8581bcd3818a7c95206a2dc288176dab21a31a809792ebbedfa4bb94 SHA512 e9f6fc0e21128eb306c9ad777d6b034f01e5d5a751c055fe6cc3f2f9ef03a3e4b718ebcf1f549922ffe4356e9c0bc8225e194c94bcc37c29b200f982c3179700
+AUX libpwquality-1.4.4-pam_pwquality-include.patch 1208 BLAKE2B d7899e6caeb8a1f4515026165d9a321e0a7840b45e4f2472a8562f7a88e35c80f7295349491f3a0037da1ff12e7c74e99236c4ef1d3334fbc477bf393bf3954b SHA512 e570c7f036a1182e43c63b852040468b0dd45ca115ff98f62bc4d3bba02b0c368cd9b1e857e39ea5fcd0b74b265cc7baea529359593512d896f65c6b658afd27
DIST libpwquality-1.4.4.tar.bz2 426923 BLAKE2B 732e349a89b418d0b29d433551cd67e7b5f0daacb50ea73cfa7e45623801f6b559322645b4f4b0d741512964556d7e004d6a1c63b20e395c3c1b96923506e8bb SHA512 2d49b79105361663f009f7183fde9123e6f1e63bd678dfe5418143f611e763af8dd44374b826b3c22a00e721047c539741dc44d99a2289b9ab229791768d6e76
EBUILD libpwquality-1.4.4-r1.ebuild 2088 BLAKE2B 45114a8a0e6fad03eb18ed2e8f0a7229115ed715a2c5a986e734f2cf26bdacacc4c4b357c72bf1bafdc8c733390d5fdc194bd0892fbbd6b588cff35be546dadf SHA512 eb83fcec8077595910448d3be5580438e7842e395d0066d34f4a708fffb9c766c2fe5baccc00180d0ea885f9d41ad60ae749c526bb41d14a31b6a16d5782d676
+EBUILD libpwquality-1.4.4-r2.ebuild 2278 BLAKE2B fc91df1168c79e5c3305560578afe3ad6d2c230f92daa4097b8db7d68c2982e15b551afad4464d7d65ed4f2439b7fb539017b8aff8924ad72a6d9a0e89c68c92 SHA512 bad219ff9eb5c5497526aeda7a83d0e74dc7b377a09909efb401e895a8563f67ef12ae6f4c76b4a8468ed039698744656cee6f7c479fb60a71428ea515168c64
MISC metadata.xml 250 BLAKE2B 8f7f0fe023d43e380e7861e897e6afcb5de4baefb42ea9c65a57dfc0d204c6f787a99295141832e732ebb08be218da56ba77e2dd9639e4e3aabf718ce4db1d0c SHA512 2684e772dd6d83e4b49f08f2ba22d8a0a753e7b46863489eff1b5d1f2f147ad80ffd93245ca405ac4c747249bc1b754454ec9865fe16da70f9b257051e105fd8
diff --git a/dev-libs/libpwquality/files/libpwquality-1.4.4-musl-fgetpwent_r.patch b/dev-libs/libpwquality/files/libpwquality-1.4.4-musl-fgetpwent_r.patch
new file mode 100644
index 000000000000..6cfb538103ae
--- /dev/null
+++ b/dev-libs/libpwquality/files/libpwquality-1.4.4-musl-fgetpwent_r.patch
@@ -0,0 +1,42 @@
+https://github.com/libpwquality/libpwquality/commit/9084c1b032161cdb53d5f66132a91bdc207faecf
+
+From: Noel Kuntze <noel.kuntze@thermi.consulting>
+Date: Mon, 24 May 2021 14:15:34 +0200
+Subject: [PATCH] pam_pwquality.c: Use pam_modutil_check_user_in_passwd instead
+ of fgetpwent_r (not available on musl)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -97,6 +97,11 @@ if test "$enable_pam" != "no"; then
+ test $fail = 1 &&
+ AC_MSG_ERROR([You must install the PAM development package in order to compile libpwquality])
+ fi
++ AC_CHECK_FUNC(
++ [pam_modutil_check_user_in_passwd],
++ [AC_DEFINE([HAVE_PAM_CHECK_USER_IN_PASSWD], [], [have pam_modutil_check_user_in_passwd])],
++ []
++ )
+ fi
+
+ if test "$enable_pam" = "yes"; then
+--- a/src/pam_pwquality.c
++++ b/src/pam_pwquality.c
+@@ -98,6 +98,9 @@ static int
+ check_local_user (pam_handle_t *pamh,
+ const char *user)
+ {
++#ifdef HAVE_PAM_CHECK_USER_IN_PASSWD
++ return pam_modutil_check_user_in_passwd(pamh, user, NULL) == PAM_SUCCESS;
++#else
+ struct passwd pw, *pwp;
+ char buf[4096];
+ int found = 0;
+@@ -136,6 +139,7 @@ check_local_user (pam_handle_t *pamh,
+ } else {
+ return found;
+ }
++#endif
+ }
+
+ PAM_EXTERN int
+
diff --git a/dev-libs/libpwquality/files/libpwquality-1.4.4-pam_pwquality-include.patch b/dev-libs/libpwquality/files/libpwquality-1.4.4-pam_pwquality-include.patch
new file mode 100644
index 000000000000..2ed638c1e34a
--- /dev/null
+++ b/dev-libs/libpwquality/files/libpwquality-1.4.4-pam_pwquality-include.patch
@@ -0,0 +1,35 @@
+https://github.com/libpwquality/libpwquality/pull/62
+
+From 27057c6cbf528108c35df934280c7dd83e8d5ce9 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Wed, 7 Sep 2022 05:42:17 +0100
+Subject: [PATCH] pam_pwquality: add include for
+ pam_modutil_check_user_in_passwd
+
+After 9084c1b032161cdb53d5f66132a91bdc207faecf, one gets:
+```
+pam_pwquality.c: In function 'check_local_user':
+pam_pwquality.c:102:16: error: implicit declaration of function 'pam_modutil_check_user_in_passwd' [-Werror=implicit-function-declaration]
+ 102 | return pam_modutil_check_user_in_passwd(pamh, user, NULL) == PAM_SUCCESS;
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+cc1: some warnings being treated as errors
+make[2]: *** [Makefile:634: pam_pwquality.lo] Error 1
+make[2]: *** Waiting for unfinished jobs....
+```
+
+We need to include security/pam_modutil.h when appropriate.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/src/pam_pwquality.c
++++ b/src/pam_pwquality.c
+@@ -34,6 +34,10 @@
+ #include <security/_pam_macros.h>
+ #include <security/pam_ext.h>
+
++#ifdef HAVE_PAM_CHECK_USER_IN_PASSWD
++#include <security/pam_modutil.h>
++#endif
++
+ /* argument parsing */
+ #define PAM_DEBUG_ARG 0x0001
+
diff --git a/dev-libs/libpwquality/libpwquality-1.4.4-r2.ebuild b/dev-libs/libpwquality/libpwquality-1.4.4-r2.ebuild
new file mode 100644
index 000000000000..460d78a4c2b0
--- /dev/null
+++ b/dev-libs/libpwquality/libpwquality-1.4.4-r2.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit autotools pam python-r1 usr-ldscript
+
+DESCRIPTION="Library for password quality checking and generating random passwords"
+HOMEPAGE="https://github.com/libpwquality/libpwquality"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.bz2"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="pam python static-libs"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+BDEPEND="
+ >=sys-devel/gettext-0.18.2
+ virtual/pkgconfig
+"
+RDEPEND="
+ >=sys-libs/cracklib-2.8:=[static-libs(+)?]
+ pam? ( sys-libs/pam )
+ python? ( ${PYTHON_DEPS} )
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-musl-fgetpwent_r.patch
+ "${FILESDIR}"/${PN}-1.4.4-pam_pwquality-include.patch
+)
+
+src_prepare() {
+ default
+ # ensure pkgconfig files go in /usr
+ sed -e "s:\(pkgconfigdir *=\).*:\1 ${EPREFIX}/usr/$(get_libdir)/pkgconfig:" \
+ -i src/Makefile.{am,in} || die "sed failed"
+
+ # Needed for musl patch, drop on next release
+ eautoreconf
+
+ if use python ; then
+ # bug #830397
+ export SETUPTOOLS_USE_DISTUTILS=stdlib
+ python_copy_sources
+ fi
+}
+
+src_configure() {
+ # Install library in /lib for pam
+ configuring() {
+ local sitedir
+ econf \
+ --libdir="${EPREFIX}/$(get_libdir)" \
+ $(use_enable pam) \
+ --with-securedir="${EPREFIX}/$(getpam_mod_dir)" \
+ $(use_enable python python-bindings) \
+ $(usex python "--with-pythonsitedir=$(use python && python_get_sitedir)" "") \
+ $(use_enable static-libs static)
+ }
+ if_use_python_python_foreach_impl configuring
+}
+
+src_compile() {
+ if_use_python_python_foreach_impl default
+}
+
+src_test() {
+ if_use_python_python_foreach_impl default
+}
+
+src_install() {
+ if_use_python_python_foreach_impl default
+ if use static-libs; then
+ # Do not install static libs in /lib
+ mkdir -p "${ED}/usr/$(get_libdir)"
+ mv "${ED}/$(get_libdir)/libpwquality.a" "${ED}/usr/$(get_libdir)/" || die
+ gen_usr_ldscript libpwquality.so
+ fi
+ find "${ED}" -name '*.la' -delete || die
+}
+
+if_use_python_python_foreach_impl() {
+ if use python; then
+ python_foreach_impl run_in_build_dir "$@"
+ else
+ "$@"
+ fi
+}