public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/libpwquality/, dev-libs/libpwquality/files/
@ 2022-09-07  4:58 Sam James
  0 siblings, 0 replies; only message in thread
From: Sam James @ 2022-09-07  4:58 UTC (permalink / raw
  To: gentoo-commits

commit:     949eefbfce316c692cf4c367a533e34e163d4de6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Sep  7 04:44:38 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Sep  7 04:44:51 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=949eefbf

dev-libs/libpwquality: fix fgetpwent_r usage on musl

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../libpwquality-1.4.4-musl-fgetpwent_r.patch      | 42 ++++++++++
 .../libpwquality-1.4.4-pam_pwquality-include.patch | 35 +++++++++
 dev-libs/libpwquality/libpwquality-1.4.4-r2.ebuild | 91 ++++++++++++++++++++++
 3 files changed, 168 insertions(+)

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
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-09-07  4:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-07  4:58 [gentoo-commits] repo/gentoo:master commit in: dev-libs/libpwquality/, dev-libs/libpwquality/files/ Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox