summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch72
-rw-r--r--meta-oe/recipes-extended/libpwquality/libpwquality_1.4.5.bb (renamed from meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb)27
2 files changed, 12 insertions, 87 deletions
diff --git a/meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch b/meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch
deleted file mode 100644
index 2cbdd6c74..000000000
--- a/meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch
+++ /dev/null
@@ -1,72 +0,0 @@
1Do not use fgetpwent_r
2
3fgetpwent_r does not exist on musl
4
5Source: https://git.alpinelinux.org/aports/tree/community/libpwquality/0001-fix-musl-build.patch
6Upstream-Status: Pending
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8--- a/src/pam_pwquality.c
9+++ b/src/pam_pwquality.c
10@@ -19,6 +19,7 @@
11 #include <stdio.h>
12 #include <pwd.h>
13 #include <errno.h>
14+#include <security/pam_modutil.h>
15 #include "pwquality.h"
16
17 /*
18@@ -43,8 +44,6 @@ struct module_options {
19
20 #define CO_RETRY_TIMES 1
21
22-#define PATH_PASSWD "/etc/passwd"
23-
24 static int
25 _pam_parse (pam_handle_t *pamh, struct module_options *opt,
26 int argc, const char **argv)
27@@ -98,44 +97,7 @@ static int
28 check_local_user (pam_handle_t *pamh,
29 const char *user)
30 {
31- struct passwd pw, *pwp;
32- char buf[4096];
33- int found = 0;
34- FILE *fp;
35- int errn;
36-
37- fp = fopen(PATH_PASSWD, "r");
38- if (fp == NULL) {
39- pam_syslog(pamh, LOG_ERR, "unable to open %s: %s",
40- PATH_PASSWD, pam_strerror(pamh, errno));
41- return -1;
42- }
43-
44- for (;;) {
45- errn = fgetpwent_r(fp, &pw, buf, sizeof (buf), &pwp);
46- if (errn == ERANGE) {
47- pam_syslog(pamh, LOG_WARNING, "%s contains very long lines; corrupted?",
48- PATH_PASSWD);
49- /* we can continue here as next call will read further */
50- continue;
51- }
52- if (errn != 0)
53- break;
54- if (strcmp(pwp->pw_name, user) == 0) {
55- found = 1;
56- break;
57- }
58- }
59-
60- fclose (fp);
61-
62- if (errn != 0 && errn != ENOENT) {
63- pam_syslog(pamh, LOG_ERR, "unable to enumerate local accounts: %s",
64- pam_strerror(pamh, errn));
65- return -1;
66- } else {
67- return found;
68- }
69+ return pam_modutil_check_user_in_passwd(pamh, user, NULL) == PAM_SUCCESS;
70 }
71
72 PAM_EXTERN int
diff --git a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.5.bb
index b50c0f7de..5287430c4 100644
--- a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
+++ b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.5.bb
@@ -1,27 +1,24 @@
1DESCRIPTION = "Library for password quality checking and generating random passwords" 1DESCRIPTION = "Library for password quality checking and generating random passwords"
2HOMEPAGE = "https://github.com/libpwquality/libpwquality" 2HOMEPAGE = "https://github.com/libpwquality/libpwquality"
3SECTION = "devel/lib" 3SECTION = "devel/lib"
4LICENSE = "GPL-2.0-only" 4
5LICENSE = "GPL-2.0-or-later"
5LIC_FILES_CHKSUM = "file://COPYING;md5=6bd2f1386df813a459a0c34fde676fc2" 6LIC_FILES_CHKSUM = "file://COPYING;md5=6bd2f1386df813a459a0c34fde676fc2"
6 7
7SRCNAME = "libpwquality" 8DEPENDS = "cracklib"
8SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/${SRCNAME}-${PV}/${SRCNAME}-${PV}.tar.bz2 \ 9
10SRC_URI = "git://github.com/libpwquality/libpwquality;branch=master;protocol=https \
9 file://add-missing-python-include-dir-for-cross.patch \ 11 file://add-missing-python-include-dir-for-cross.patch \
10" 12"
11SRC_URI:append:libc-musl = " file://0001-fix-musl-build.patch " 13SRCREV = "5490e96a3dd6ed7371435ca5b3ccef98bdb48b5a"
12
13SRC_URI[md5sum] = "1fe43f6641dbf1e1766e2a02cf68a9c3"
14SRC_URI[sha256sum] = "d43baf23dc6887fe8f8e9b75cabaabc5f4bbbaa0f9eff44278d276141752a545"
15
16UPSTREAM_CHECK_URI = "https://github.com/libpwquality/libpwquality/releases"
17
18S = "${WORKDIR}/${SRCNAME}-${PV}"
19 14
20DEPENDS = "cracklib virtual/gettext" 15S = "${WORKDIR}/git"
21 16
22inherit autotools setuptools3-base gettext 17inherit autotools-brokensep gettext setuptools3-base
23 18
24B = "${S}" 19do_configure:prepend() {
20 cp ${STAGING_DATADIR_NATIVE}/gettext/ABOUT-NLS ${AUTOTOOLS_AUXDIR}/
21}
25 22
26export PYTHON_DIR 23export PYTHON_DIR
27export BUILD_SYS 24export BUILD_SYS
@@ -35,7 +32,7 @@ EXTRA_OECONF += "--with-python-rev=${PYTHON_BASEVERSION} \
35" 32"
36 33
37PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" 34PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
38PACKAGECONFIG[pam] = "--enable-pam, --disable-pam, libpam" 35PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam"
39 36
40FILES:${PN} += "${base_libdir}/security/pam_pwquality.so" 37FILES:${PN} += "${base_libdir}/security/pam_pwquality.so"
41FILES:${PN}-dbg += "${base_libdir}/security/.debug" 38FILES:${PN}-dbg += "${base_libdir}/security/.debug"