libpwquality: upgrade 1.4.4 -> 1.4.5

* 0001-fix-musl-build.patch removed because fixed in the new version. -> https://github.com/libpwquality/libpwquality/pull/53
* Copied ABOUT-NLS from native sysroot's gettext manually because of following error -> error: required file './ABOUT-NLS' not found

Building from sources need additional steps. Gettextize would have produced this file properly. But, we don't run it as part of autotools bbclass's autoreconf step
Instead of creating an empty ABOUT-NLS file, copied it from native sysroot's gettext manually.

Changelog:

* Translation updates
* Minor bug fixes and documentation enhancements

Signed-off-by: alperak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
alperak
2023-12-01 19:03:09 +03:00
committed by Khem Raj
parent b1d55efe05
commit d3bd2ddf19
2 changed files with 12 additions and 87 deletions
@@ -1,72 +0,0 @@
Do not use fgetpwent_r
fgetpwent_r does not exist on musl
Source: https://git.alpinelinux.org/aports/tree/community/libpwquality/0001-fix-musl-build.patch
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/src/pam_pwquality.c
+++ b/src/pam_pwquality.c
@@ -19,6 +19,7 @@
#include <stdio.h>
#include <pwd.h>
#include <errno.h>
+#include <security/pam_modutil.h>
#include "pwquality.h"
/*
@@ -43,8 +44,6 @@ struct module_options {
#define CO_RETRY_TIMES 1
-#define PATH_PASSWD "/etc/passwd"
-
static int
_pam_parse (pam_handle_t *pamh, struct module_options *opt,
int argc, const char **argv)
@@ -98,44 +97,7 @@ static int
check_local_user (pam_handle_t *pamh,
const char *user)
{
- struct passwd pw, *pwp;
- char buf[4096];
- int found = 0;
- FILE *fp;
- int errn;
-
- fp = fopen(PATH_PASSWD, "r");
- if (fp == NULL) {
- pam_syslog(pamh, LOG_ERR, "unable to open %s: %s",
- PATH_PASSWD, pam_strerror(pamh, errno));
- return -1;
- }
-
- for (;;) {
- errn = fgetpwent_r(fp, &pw, buf, sizeof (buf), &pwp);
- if (errn == ERANGE) {
- pam_syslog(pamh, LOG_WARNING, "%s contains very long lines; corrupted?",
- PATH_PASSWD);
- /* we can continue here as next call will read further */
- continue;
- }
- if (errn != 0)
- break;
- if (strcmp(pwp->pw_name, user) == 0) {
- found = 1;
- break;
- }
- }
-
- fclose (fp);
-
- if (errn != 0 && errn != ENOENT) {
- pam_syslog(pamh, LOG_ERR, "unable to enumerate local accounts: %s",
- pam_strerror(pamh, errn));
- return -1;
- } else {
- return found;
- }
+ return pam_modutil_check_user_in_passwd(pamh, user, NULL) == PAM_SUCCESS;
}
PAM_EXTERN int
@@ -1,27 +1,24 @@
DESCRIPTION = "Library for password quality checking and generating random passwords"
HOMEPAGE = "https://github.com/libpwquality/libpwquality"
SECTION = "devel/lib"
LICENSE = "GPL-2.0-only"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bd2f1386df813a459a0c34fde676fc2"
SRCNAME = "libpwquality"
SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/${SRCNAME}-${PV}/${SRCNAME}-${PV}.tar.bz2 \
DEPENDS = "cracklib"
SRC_URI = "git://github.com/libpwquality/libpwquality;branch=master;protocol=https \
file://add-missing-python-include-dir-for-cross.patch \
"
SRC_URI:append:libc-musl = " file://0001-fix-musl-build.patch "
SRCREV = "5490e96a3dd6ed7371435ca5b3ccef98bdb48b5a"
SRC_URI[md5sum] = "1fe43f6641dbf1e1766e2a02cf68a9c3"
SRC_URI[sha256sum] = "d43baf23dc6887fe8f8e9b75cabaabc5f4bbbaa0f9eff44278d276141752a545"
S = "${WORKDIR}/git"
UPSTREAM_CHECK_URI = "https://github.com/libpwquality/libpwquality/releases"
inherit autotools-brokensep gettext setuptools3-base
S = "${WORKDIR}/${SRCNAME}-${PV}"
DEPENDS = "cracklib virtual/gettext"
inherit autotools setuptools3-base gettext
B = "${S}"
do_configure:prepend() {
cp ${STAGING_DATADIR_NATIVE}/gettext/ABOUT-NLS ${AUTOTOOLS_AUXDIR}/
}
export PYTHON_DIR
export BUILD_SYS
@@ -35,7 +32,7 @@ EXTRA_OECONF += "--with-python-rev=${PYTHON_BASEVERSION} \
"
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
PACKAGECONFIG[pam] = "--enable-pam, --disable-pam, libpam"
PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam"
FILES:${PN} += "${base_libdir}/security/pam_pwquality.so"
FILES:${PN}-dbg += "${base_libdir}/security/.debug"