libpam: update 1.6.1 -> 1.7.0

Change from autotools to meson.

ptest support is removed for now, as pam-ptest isn't executed
on the autobuilder.

Adjust packaging as pam now installs everything into /usr rather than /.

(From OE-Core rev: 00eb730291f9630eb70480d37ed48fbadecc547a)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2024-12-04 07:49:14 +01:00
committed by Richard Purdie
parent 240cd29b3c
commit 377066dabd
3 changed files with 52 additions and 84 deletions

View File

@@ -0,0 +1,40 @@
From 9b5182d4781bcd6fb37a4030faf325965fde3e93 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex@linutronix.de>
Date: Thu, 28 Nov 2024 20:32:17 +0100
Subject: [PATCH] meson: correct check for existence of two preprocessor
defines
sizeof is meant for *types*, and in case of cross compiling
the test program produced by it has incorrect syntax
__NR_keyctl something;
and will always fail to compile.
* meson.build: Use cc.get_define() instead of cc.sizeof() to check for
preprocessor symbols.
Co-authored-by: Dmitry V. Levin <ldv@strace.io>
Upstream-Status: Backport [https://github.com/linux-pam/linux-pam/pull/861]
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
meson.build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index f6a7dafe9..307fed0aa 100644
--- a/meson.build
+++ b/meson.build
@@ -198,12 +198,12 @@ foreach ident: check_functions
endif
endforeach
-enable_pam_keyinit = cc.sizeof('__NR_keyctl', prefix: '#include <sys/syscall.h>') > 0
+enable_pam_keyinit = cc.get_define('__NR_keyctl', prefix: '#include <sys/syscall.h>') != ''
if get_option('mailspool') != ''
cdata.set_quoted('PAM_PATH_MAILDIR', get_option('mailspool'))
else
- have = cc.sizeof('_PATH_MAILDIR', prefix: '#include <paths.h>') > 0
+ have = cc.get_define('_PATH_MAILDIR', prefix: '#include <paths.h>') != ''
cdata.set('PAM_PATH_MAILDIR', have ? '_PATH_MAILDIR' : '"/var/spool/mail"')
endif

View File

@@ -1,45 +0,0 @@
From 060726f7e60c8ecb5bf50fd776910b290d9a0a69 Mon Sep 17 00:00:00 2001
From: Kang Kai <kai.kang@windriver.com>
Date: Tue, 19 Jul 2011 17:08:31 +0800
Subject: [PATCH] This patch is used to create a new sub package libpam-xtests
to do more checks.
Upstream-Status: Pending
Signed-off-by: Kang Kai <kai.kang@windriver.com>
---
xtests/Makefile.am | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/xtests/Makefile.am b/xtests/Makefile.am
index acf9746..9826c9f 100644
--- a/xtests/Makefile.am
+++ b/xtests/Makefile.am
@@ -8,7 +8,7 @@ AM_CFLAGS = -DLIBPAM_COMPILE -I$(top_srcdir)/libpam/include \
LDADD = $(top_builddir)/libpam/libpam.la \
$(top_builddir)/libpam_misc/libpam_misc.la
-CLEANFILES = *~ $(XTESTS)
+CLEANFILES = *~
EXTRA_DIST = run-xtests.sh tst-pam_dispatch1.pamd tst-pam_dispatch2.pamd \
tst-pam_dispatch3.pamd tst-pam_dispatch4.pamd \
@@ -55,3 +55,18 @@ EXTRA_PROGRAMS = $(XTESTS)
xtests: $(XTESTS) run-xtests.sh
"$(srcdir)"/run-xtests.sh "$(srcdir)" ${XTESTS} ${NOSRCTESTS}
+
+all: $(XTESTS)
+
+install: install_xtests
+
+install_xtests:
+ $(INSTALL) -d $(DESTDIR)$(pkgdatadir)/xtests
+ for file in $(EXTRA_DIST) ; do \
+ $(INSTALL) $(srcdir)/$$file $(DESTDIR)$(pkgdatadir)/xtests ; \
+ done
+ for file in $(XTESTS); do \
+ $(INSTALL) .libs/$$file $(DESTDIR)$(pkgdatadir)/xtests ; \
+ done
+
+.PHONY: all install_xtests

View File

@@ -20,40 +20,32 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/Linux-PAM-${PV}.tar.xz \
file://pam.d/common-session \
file://pam.d/common-session-noninteractive \
file://pam.d/other \
file://libpam-xtests.patch \
file://run-ptest \
file://pam-volatiles.conf \
file://0001-meson.build-correct-check-for-existence-of-two-prepr.patch \
"
SRC_URI[sha256sum] = "f8923c740159052d719dbfc2a2f81942d68dd34fcaf61c706a02c9b80feeef8e"
SRC_URI[sha256sum] = "57dcd7a6b966ecd5bbd95e1d11173734691e16b68692fa59661cdae9b13b1697"
DEPENDS = "bison-native flex-native libxml2-native virtual/crypt"
EXTRA_OECONF = "--includedir=${includedir}/security \
--libdir=${base_libdir} \
--with-systemdunitdir=${systemd_system_unitdir} \
--disable-nis \
--disable-regenerate-docu \
--disable-doc \
--disable-prelude"
CFLAGS += "-fPIC "
EXTRA_OEMESON = "-Ddocs=disabled"
S = "${WORKDIR}/Linux-PAM-${PV}"
inherit autotools gettext pkgconfig systemd ptest github-releases
inherit meson gettext pkgconfig systemd ptest github-releases
PACKAGECONFIG ??= ""
PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit,"
PACKAGECONFIG[userdb] = "--enable-db=db,--enable-db=no,db,"
PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit,"
PACKAGECONFIG[userdb] = "-Dpam_userdb=enabled -Ddb=gdbm,-Dpam_userdb=disabled,gdbm,"
PACKAGES += "${PN}-runtime ${PN}-xtests"
FILES:${PN} = " \
${base_libdir}/lib*${SOLIBS} \
${libdir}/lib*${SOLIBS} \
${nonarch_libdir}/tmpfiles.d/*.conf \
"
FILES:${PN}-dev += "${base_libdir}/security/*.la ${base_libdir}/*.la ${base_libdir}/lib*${SOLIBSDEV}"
FILES:${PN}-runtime = "${sysconfdir} ${sbindir} ${systemd_system_unitdir}"
FILES:${PN}-dev += "${libdir}/security/*.la ${libdir}/*.la ${libdir}/lib*${SOLIBSDEV}"
FILES:${PN}-runtime = "${sysconfdir} ${sbindir} ${nonarch_libdir}/systemd/system"
FILES:${PN}-xtests = "${datadir}/Linux-PAM/xtests"
# libpam installs /etc/environment for use with the pam_env plugin. Make sure it is
@@ -111,9 +103,9 @@ python populate_packages:prepend () {
mlprefix = d.getVar('MLPREFIX') or ''
dvar = d.expand('${WORKDIR}/package')
pam_libdir = d.expand('${base_libdir}/security')
pam_libdir = d.expand('${libdir}/security')
pam_sbindir = d.expand('${sbindir}')
pam_filterdir = d.expand('${base_libdir}/security/pam_filter')
pam_filterdir = d.expand('${libdir}/security/pam_filter')
pam_pkgname = mlprefix + 'pam-plugin%s'
do_split_packages(d, pam_libdir, r'^pam(.*)\.so$', pam_pkgname,
@@ -121,16 +113,7 @@ python populate_packages:prepend () {
do_split_packages(d, pam_filterdir, r'^(.*)$', 'pam-filter-%s', 'PAM filter for %s', extra_depends='')
}
do_compile_ptest() {
cd tests
sed -i -e 's/$(MAKE) $(AM_MAKEFLAGS) check-TESTS//' Makefile
oe_runmake check-am
cd -
}
do_install() {
autotools_do_install
do_install:append() {
# don't install /var/run when populating rootfs. Do it through volatile
rm -rf ${D}${localstatedir}
@@ -155,16 +138,6 @@ do_install() {
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
echo "session optional pam_systemd.so" >> ${D}${sysconfdir}/pam.d/common-session
fi
if [ "${base_libdir}" != "${libdir}" ]; then
install -d ${D}/${libdir}/
mv ${D}/${base_libdir}/pkgconfig ${D}/${libdir}/
fi
}
do_install_ptest() {
mkdir -p ${D}${PTEST_PATH}/tests
install -m 0755 ${B}/tests/.libs/* ${D}${PTEST_PATH}/tests
install -m 0644 ${S}/tests/confdir ${D}${PTEST_PATH}/tests
}
pkg_postinst:${PN}() {