Please see my comment elsewhere, it's better to split this into several patches, each dealing with a particular issue (in particular the version update shouldn't be bundled with all the other changes).
Alex On Mon, 2 Dec 2024 at 11:53, Markus Volk via lists.openembedded.org <[email protected]> wrote: > > - switch to meson build system > > I've been testing this patch for a few days now. In libpam the autotools > buildsystem was removed. This patch switches to meson. > > The libpam recipe was split into two parts and now compiles twice. First only > the > libs are packaged and afterwards the libpam modules. This breaks a dependency > loop > and makes it possible to link against systemd to enable 'logind' support for > the modules. > > The patch is invasive, but my tests so far are promising. It compiles for > x86-64/arm/arm64 > and mutlilib and it seems to fix the build for libpam-native (and a missing > DISTRO_FEATURES issue). > Although not yet compilable, it also reduces the dependency loops between > systemd<->shadow > and should allow to build pam without systemd in DISTRO_FEATURES > > One file is still packed into libpam-modules. This should be moved to the > appropriate module, > but I'm not sure what the /run/sepermit directory is needed for. > There is also a patch added that fixes a problem in meson when checking for > keyring. But when > I wanted to send it upstream, I saw that the problem was already solved and > submitted nicer by > Alexander Kanavin > > The ptest part is also still missing. When xtests is enabled, the tests > compile without errors, > but by default they are neither built nor installed. So I wanted to ask > first, what of this is > still needed? > > Signed-off-by: Markus Volk <[email protected]> > --- > meta/conf/distro/include/maintainers.inc | 1 + > .../0001-meson.build-fix-keyring-check.patch | 39 ++++ > .../pam/{libpam => files}/99_pam | 0 > .../pam/{libpam => files}/libpam-xtests.patch | 0 > .../pam/{libpam => files}/pam-volatiles.conf | 0 > .../{libpam => files}/pam.d/common-account | 0 > .../pam/{libpam => files}/pam.d/common-auth | 0 > .../{libpam => files}/pam.d/common-password | 0 > .../{libpam => files}/pam.d/common-session | 0 > .../pam.d/common-session-noninteractive | 0 > .../pam/{libpam => files}/pam.d/other | 0 > .../pam/{libpam => files}/run-ptest | 0 > meta/recipes-extended/pam/libpam-modules.bb | 110 ++++++++++ > meta/recipes-extended/pam/libpam.bb | 16 ++ > meta/recipes-extended/pam/libpam.inc | 56 ++++++ > meta/recipes-extended/pam/libpam_1.6.1.bb | 190 ------------------ > 16 files changed, 222 insertions(+), 190 deletions(-) > create mode 100644 > meta/recipes-extended/pam/files/0001-meson.build-fix-keyring-check.patch > rename meta/recipes-extended/pam/{libpam => files}/99_pam (100%) > rename meta/recipes-extended/pam/{libpam => files}/libpam-xtests.patch (100%) > rename meta/recipes-extended/pam/{libpam => files}/pam-volatiles.conf (100%) > rename meta/recipes-extended/pam/{libpam => files}/pam.d/common-account > (100%) > rename meta/recipes-extended/pam/{libpam => files}/pam.d/common-auth (100%) > rename meta/recipes-extended/pam/{libpam => files}/pam.d/common-password > (100%) > rename meta/recipes-extended/pam/{libpam => files}/pam.d/common-session > (100%) > rename meta/recipes-extended/pam/{libpam => > files}/pam.d/common-session-noninteractive (100%) > rename meta/recipes-extended/pam/{libpam => files}/pam.d/other (100%) > rename meta/recipes-extended/pam/{libpam => files}/run-ptest (100%) > create mode 100644 meta/recipes-extended/pam/libpam-modules.bb > create mode 100644 meta/recipes-extended/pam/libpam.bb > create mode 100644 meta/recipes-extended/pam/libpam.inc > delete mode 100644 meta/recipes-extended/pam/libpam_1.6.1.bb > > diff --git a/meta/conf/distro/include/maintainers.inc > b/meta/conf/distro/include/maintainers.inc > index 9151a348ee..0f375c146e 100644 > --- a/meta/conf/distro/include/maintainers.inc > +++ b/meta/conf/distro/include/maintainers.inc > @@ -370,6 +370,7 @@ RECIPE_MAINTAINER:pn-libnss-mdns = "Alexander Kanavin > <[email protected]>" > RECIPE_MAINTAINER:pn-libnss-nis = "Khem Raj <[email protected]>" > RECIPE_MAINTAINER:pn-libogg = "Anuj Mittal <[email protected]>" > RECIPE_MAINTAINER:pn-libpam = "Anuj Mittal <[email protected]>" > +RECIPE_MAINTAINER:pn-libpam-modules = "Unassigned > <[email protected]>" > RECIPE_MAINTAINER:pn-libpcap = "Anuj Mittal <[email protected]>" > RECIPE_MAINTAINER:pn-libpciaccess = "Wang Mingyu <[email protected]>" > RECIPE_MAINTAINER:pn-libpcre = "Yi Zhao <[email protected]>" > diff --git > a/meta/recipes-extended/pam/files/0001-meson.build-fix-keyring-check.patch > b/meta/recipes-extended/pam/files/0001-meson.build-fix-keyring-check.patch > new file mode 100644 > index 0000000000..6cd3ab4724 > --- /dev/null > +++ b/meta/recipes-extended/pam/files/0001-meson.build-fix-keyring-check.patch > @@ -0,0 +1,39 @@ > +From 5dbe719b22e9e779ef44cbe5b01a4235eaf02132 Mon Sep 17 00:00:00 2001 > +From: Markus Volk <[email protected]> > +Date: Sat, 30 Nov 2024 13:53:49 +0100 > +Subject: [PATCH] meson.build: fix keyring check > + > +The check for enable_pam_keyinit fails with -1 > + > +Signed-off-by: Markus Volk <[email protected]> > + > +Upstream-Status: Pending [] > +--- > + meson.build | 11 ++++++++++- > + 1 file changed, 10 insertions(+), 1 deletion(-) > + > +diff --git a/meson.build b/meson.build > +index 2be21282..444e626c 100644 > +--- a/meson.build > ++++ b/meson.build > +@@ -198,7 +198,16 @@ foreach ident: check_functions > + endif > + endforeach > + > +-enable_pam_keyinit = cc.sizeof('__NR_keyctl', prefix: '#include > <sys/syscall.h>') > 0 > ++enable_pam_keyinit = \ > ++ cc.compiles(''' > ++ #include <errno.h> > ++ #include <asm/unistd.h> > ++ #include <linux/keyctl.h> > ++ #include <sys/syscall.h> > ++ #include <unistd.h> > ++ int main(void) { > ++ return syscall(__NR_keyctl, KEYCTL_READ, 0, NULL, NULL, 0); > ++ }''') > + > + if get_option('mailspool') != '' > + cdata.set_quoted('PAM_PATH_MAILDIR', get_option('mailspool')) > +-- > +2.47.0 > + > diff --git a/meta/recipes-extended/pam/libpam/99_pam > b/meta/recipes-extended/pam/files/99_pam > similarity index 100% > rename from meta/recipes-extended/pam/libpam/99_pam > rename to meta/recipes-extended/pam/files/99_pam > diff --git a/meta/recipes-extended/pam/libpam/libpam-xtests.patch > b/meta/recipes-extended/pam/files/libpam-xtests.patch > similarity index 100% > rename from meta/recipes-extended/pam/libpam/libpam-xtests.patch > rename to meta/recipes-extended/pam/files/libpam-xtests.patch > diff --git a/meta/recipes-extended/pam/libpam/pam-volatiles.conf > b/meta/recipes-extended/pam/files/pam-volatiles.conf > similarity index 100% > rename from meta/recipes-extended/pam/libpam/pam-volatiles.conf > rename to meta/recipes-extended/pam/files/pam-volatiles.conf > diff --git a/meta/recipes-extended/pam/libpam/pam.d/common-account > b/meta/recipes-extended/pam/files/pam.d/common-account > similarity index 100% > rename from meta/recipes-extended/pam/libpam/pam.d/common-account > rename to meta/recipes-extended/pam/files/pam.d/common-account > diff --git a/meta/recipes-extended/pam/libpam/pam.d/common-auth > b/meta/recipes-extended/pam/files/pam.d/common-auth > similarity index 100% > rename from meta/recipes-extended/pam/libpam/pam.d/common-auth > rename to meta/recipes-extended/pam/files/pam.d/common-auth > diff --git a/meta/recipes-extended/pam/libpam/pam.d/common-password > b/meta/recipes-extended/pam/files/pam.d/common-password > similarity index 100% > rename from meta/recipes-extended/pam/libpam/pam.d/common-password > rename to meta/recipes-extended/pam/files/pam.d/common-password > diff --git a/meta/recipes-extended/pam/libpam/pam.d/common-session > b/meta/recipes-extended/pam/files/pam.d/common-session > similarity index 100% > rename from meta/recipes-extended/pam/libpam/pam.d/common-session > rename to meta/recipes-extended/pam/files/pam.d/common-session > diff --git > a/meta/recipes-extended/pam/libpam/pam.d/common-session-noninteractive > b/meta/recipes-extended/pam/files/pam.d/common-session-noninteractive > similarity index 100% > rename from > meta/recipes-extended/pam/libpam/pam.d/common-session-noninteractive > rename to meta/recipes-extended/pam/files/pam.d/common-session-noninteractive > diff --git a/meta/recipes-extended/pam/libpam/pam.d/other > b/meta/recipes-extended/pam/files/pam.d/other > similarity index 100% > rename from meta/recipes-extended/pam/libpam/pam.d/other > rename to meta/recipes-extended/pam/files/pam.d/other > diff --git a/meta/recipes-extended/pam/libpam/run-ptest > b/meta/recipes-extended/pam/files/run-ptest > similarity index 100% > rename from meta/recipes-extended/pam/libpam/run-ptest > rename to meta/recipes-extended/pam/files/run-ptest > diff --git a/meta/recipes-extended/pam/libpam-modules.bb > b/meta/recipes-extended/pam/libpam-modules.bb > new file mode 100644 > index 0000000000..7903c6d6f8 > --- /dev/null > +++ b/meta/recipes-extended/pam/libpam-modules.bb > @@ -0,0 +1,110 @@ > +require libpam.inc > + > +PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" > + > +PACKAGES += "libpam-runtime" > + > +FILES:${PN} = " \ > + ${nonarch_libdir}/tmpfiles.d/*.conf \ > +" > +FILES:${PN}-dev += "${nonarch_libdir}/security/*.la ${base_libdir}/*.la > ${base_libdir}/lib*${SOLIBSDEV}" > +FILES:libpam-runtime = "${sysconfdir} ${sbindir} ${systemd_system_unitdir}" > + > +# libpam installs /etc/environment for use with the pam_env plugin. Make > sure it is > +# packaged with the pam-plugin-env package to avoid breaking installations > which > +# install that file via other packages > +FILES:pam-plugin-env = "${sysconfdir}/environment" > + > +PACKAGES_DYNAMIC += "^${MLPREFIX}pam-plugin-.*" > + > +def get_multilib_bit(d): > + baselib = d.getVar('baselib') or '' > + return baselib.replace('lib', '') > + > +libpam_suffix = "suffix${@get_multilib_bit(d)}" > + > +RPROVIDES:${PN} += "libpam-modules-${libpam_suffix} libpam-runtime" > +RPROVIDES:libpam-runtime += "libpam-runtime-${libpam_suffix}" > + > +RDEPENDS:libpam-runtime = "${MLPREFIX}libpam libpam-modules-${libpam_suffix} > \ > + ${MLPREFIX}pam-plugin-deny-${libpam_suffix} \ > + ${MLPREFIX}pam-plugin-permit-${libpam_suffix} \ > + ${MLPREFIX}pam-plugin-warn-${libpam_suffix} \ > + ${MLPREFIX}pam-plugin-unix-${libpam_suffix} \ > + " > + > +# FIXME: Native suffix breaks here, disable it for now > +RDEPENDS:${MLPREFIX}${PN} += "${MLPREFIX}libpam > libpam-runtime-${libpam_suffix}" > +RDEPENDS:${MLPREFIX}pam-filter-upperlower += "${MLPREFIX}libpam" > +RRECOMMENDS:${PN}:class-native += "" > + > +python populate_packages:prepend () { > + def pam_plugin_hook(file, pkg, pattern, format, basename): > + pn = d.getVar('PN') > + libpam_suffix = d.getVar('libpam_suffix') > + > + rdeps = "${MLPREFIX}libpam" > + if rdeps: > + rdeps = rdeps + " " + pn + "-" + libpam_suffix > + else: > + rdeps = pn + "-" + libpam_suffix > + d.setVar('RDEPENDS:' + pkg, rdeps) > + > + provides = d.getVar('RPROVIDES:' + pkg) > + if provides: > + provides = provides + " " + pkg + "-" + libpam_suffix > + else: > + provides = pkg + "-" + libpam_suffix > + d.setVar('RPROVIDES:' + pkg, provides) > + > + mlprefix = d.getVar('MLPREFIX') or '' > + dvar = d.expand('${WORKDIR}/package') > + pam_libdir = d.expand('${nonarch_libdir}/security') > + pam_sbindir = d.expand('${sbindir}') > + pam_filterdir = d.expand('${nonarch_libdir}/security/pam_filter') > + pam_pkgname = mlprefix + 'pam-plugin%s' > + > + do_split_packages(d, pam_libdir, r'^pam(.*)\.so$', pam_pkgname, > + 'PAM plugin for %s', hook=pam_plugin_hook, > extra_depends='', prepend=True) > + do_split_packages(d, pam_filterdir, r'^(.*)$', 'pam-filter-%s', 'PAM > filter for %s', extra_depends='') > +} > + > +do_install:append() { > + > + rm -rf ${D}${includedir}/security ${D}${libdir}/pkgconfig > ${D}${libdir}/*.so* > + > + if > ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','false','true',d)}; then > + install -d ${D}${nonarch_libdir}/tmpfiles.d > + install -m 0644 ${UNPACKDIR}/pam-volatiles.conf \ > + ${D}${nonarch_libdir}/tmpfiles.d/pam.conf > + else > + install -d ${D}${sysconfdir}/default/volatiles > + install -m 0644 ${UNPACKDIR}/99_pam \ > + ${D}${sysconfdir}/default/volatiles/ > + fi > + > + install -d ${D}${sysconfdir}/pam.d/ > + install -m 0644 ${UNPACKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/ > + > + # The lsb requires unix_chkpwd has setuid permission > + chmod 4755 ${D}${sbindir}/unix_chkpwd > + > + if > ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then > + echo "session optional pam_systemd.so" >> > ${D}${sysconfdir}/pam.d/common-session > + fi > +} > + > +pkg_postinst:${PN}() { > + if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then > + /etc/init.d/populate-volatile.sh update > + fi > +} > + > +BBCLASSEXTEND = "nativesdk native" > + > +CONFFILES:libpam-runtime += "${sysconfdir}/pam.d/common-session" > +CONFFILES:libpam-runtime += "${sysconfdir}/pam.d/common-auth" > +CONFFILES:libpam-runtime += "${sysconfdir}/pam.d/common-password" > +CONFFILES:libpam-runtime += > "${sysconfdir}/pam.d/common-session-noninteractive" > +CONFFILES:libpam-runtime += "${sysconfdir}/pam.d/common-account" > +CONFFILES:libpam-runtime += "${sysconfdir}/security/limits.conf" > diff --git a/meta/recipes-extended/pam/libpam.bb > b/meta/recipes-extended/pam/libpam.bb > new file mode 100644 > index 0000000000..781595ac72 > --- /dev/null > +++ b/meta/recipes-extended/pam/libpam.bb > @@ -0,0 +1,16 @@ > +require libpam.inc > + > +do_install() { > + install -d ${D}${libdir}/pkgconfig ${D}${includedir}/security > + for file in ${B}/libpam/libpam.so* ${B}/libpamc/libpamc.so* > ${B}/libpam_misc/libpam_misc.so*; do > + if ! [ -d "$file" ]; then > + cp -fd "$file" ${D}${libdir} > + fi > + done > + for file in ${S}/libpam/include/security/*.h > ${S}/libpamc/include/security/*.h ${S}/libpam_misc/include/security/*.h; do > + install -m644 "$file" ${D}${includedir}/security > + done > + cp ${B}/meson-private/*.pc ${D}${nonarch_libdir}/pkgconfig > +} > + > +BBCLASSEXTEND += "native nativesdk" > diff --git a/meta/recipes-extended/pam/libpam.inc > b/meta/recipes-extended/pam/libpam.inc > new file mode 100644 > index 0000000000..bb6776dcca > --- /dev/null > +++ b/meta/recipes-extended/pam/libpam.inc > @@ -0,0 +1,56 @@ > +DISABLE_STATIC = "" > +SUMMARY = "Linux-PAM (Pluggable Authentication Modules)" > +DESCRIPTION = "Linux-PAM (Pluggable Authentication Modules for Linux), a > flexible mechanism for authenticating users" > +HOMEPAGE = "https://fedorahosted.org/linux-pam/" > +BUGTRACKER = "https://fedorahosted.org/linux-pam/newticket" > +SECTION = "base" > +# PAM is dual licensed under GPL and BSD. > +# /etc/pam.d comes from Debian libpam-runtime in 2009-11 (at that time > +# libpam-runtime-1.0.1 is GPL-2.0-or-later), by openembedded > +LICENSE = "GPL-2.0-or-later | BSD-3-Clause" > +LIC_FILES_CHKSUM = "file://COPYING;md5=7eb5c1bf854e8881005d673599ee74d3 \ > + > file://libpamc/License;md5=a4da476a14c093fdc73be3c3c9ba8fb3 \ > + " > + > +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/Linux-PAM-${PV}.tar.xz \ > + file://99_pam \ > + file://pam.d/common-account \ > + file://pam.d/common-auth \ > + file://pam.d/common-password \ > + file://pam.d/common-session \ > + file://pam.d/common-session-noninteractive \ > + file://pam.d/other \ > + file://libpam-xtests.patch;apply=no \ > + file://run-ptest \ > + file://pam-volatiles.conf \ > + file://0001-meson.build-fix-keyring-check.patch \ > + " > + > +SRC_URI[sha256sum] = > "57dcd7a6b966ecd5bbd95e1d11173734691e16b68692fa59661cdae9b13b1697" > +PV = "1.7.0" > + > +DEPENDS = "bison-native flex-native libxml2-native virtual/crypt" > + > +EXTRA_OEMESON = " \ > + -Dsystemdunitdir=${systemd_system_unitdir} \ > + -Dnis=disabled \ > + -Ddocs=disabled \ > +" > + > +S = "${WORKDIR}/Linux-PAM-${PV}" > + > +inherit meson gettext pkgconfig github-releases features_check > + > +PACKAGECONFIG ??= "" > +PACKAGECONFIG[systemd] = "-Dlogind=enabled,-Dlogind=disabled,systemd" > +PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit" > +PACKAGECONFIG[userdb] = "-Ddb=db,-Dpam_userdb=disabled,db" > +PACKAGECONFIG[xtests] = "-Dxtests=true,-Dxtests=false" > +PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl" > +PACKAGECONFIG[examples] = "-Dexamples=true,-Dexamples=false" > + > +REQUIRED_DISTRO_FEATURES:class-target = "pam" > + > +GITHUB_BASE_URI = "https://github.com/linux-pam/linux-pam/releases" > + > +CVE_PRODUCT = "linux-pam" > diff --git a/meta/recipes-extended/pam/libpam_1.6.1.bb > b/meta/recipes-extended/pam/libpam_1.6.1.bb > deleted file mode 100644 > index a48f78187b..0000000000 > --- a/meta/recipes-extended/pam/libpam_1.6.1.bb > +++ /dev/null > @@ -1,190 +0,0 @@ > -DISABLE_STATIC = "" > -SUMMARY = "Linux-PAM (Pluggable Authentication Modules)" > -DESCRIPTION = "Linux-PAM (Pluggable Authentication Modules for Linux), a > flexible mechanism for authenticating users" > -HOMEPAGE = "https://fedorahosted.org/linux-pam/" > -BUGTRACKER = "https://fedorahosted.org/linux-pam/newticket" > -SECTION = "base" > -# PAM is dual licensed under GPL and BSD. > -# /etc/pam.d comes from Debian libpam-runtime in 2009-11 (at that time > -# libpam-runtime-1.0.1 is GPL-2.0-or-later), by openembedded > -LICENSE = "GPL-2.0-or-later | BSD-3-Clause" > -LIC_FILES_CHKSUM = "file://COPYING;md5=7eb5c1bf854e8881005d673599ee74d3 \ > - > file://libpamc/License;md5=a4da476a14c093fdc73be3c3c9ba8fb3 \ > - " > - > -SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/Linux-PAM-${PV}.tar.xz \ > - file://99_pam \ > - file://pam.d/common-account \ > - file://pam.d/common-auth \ > - file://pam.d/common-password \ > - 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 \ > - " > - > -SRC_URI[sha256sum] = > "f8923c740159052d719dbfc2a2f81942d68dd34fcaf61c706a02c9b80feeef8e" > - > -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 " > - > -S = "${WORKDIR}/Linux-PAM-${PV}" > - > -inherit autotools gettext pkgconfig systemd ptest github-releases > - > -PACKAGECONFIG ??= "" > -PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit," > -PACKAGECONFIG[userdb] = "--enable-db=db,--enable-db=no,db," > - > -PACKAGES += "${PN}-runtime ${PN}-xtests" > -FILES:${PN} = " \ > - ${base_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}-xtests = "${datadir}/Linux-PAM/xtests" > - > -# libpam installs /etc/environment for use with the pam_env plugin. Make > sure it is > -# packaged with the pam-plugin-env package to avoid breaking installations > which > -# install that file via other packages > -FILES:pam-plugin-env = "${sysconfdir}/environment" > - > -PACKAGES_DYNAMIC += "^${MLPREFIX}pam-plugin-.*" > - > -def get_multilib_bit(d): > - baselib = d.getVar('baselib') or '' > - return baselib.replace('lib', '') > - > -libpam_suffix = "suffix${@get_multilib_bit(d)}" > - > -RPROVIDES:${PN} += "${PN}-${libpam_suffix}" > -RPROVIDES:${PN}-runtime += "${PN}-runtime-${libpam_suffix}" > - > -RDEPENDS:${PN}-runtime = "${PN}-${libpam_suffix} \ > - ${MLPREFIX}pam-plugin-deny-${libpam_suffix} \ > - ${MLPREFIX}pam-plugin-permit-${libpam_suffix} \ > - ${MLPREFIX}pam-plugin-warn-${libpam_suffix} \ > - ${MLPREFIX}pam-plugin-unix-${libpam_suffix} \ > - " > -RDEPENDS:${PN}-xtests = "${PN}-${libpam_suffix} \ > - ${MLPREFIX}pam-plugin-access-${libpam_suffix} \ > - ${MLPREFIX}pam-plugin-debug-${libpam_suffix} \ > - ${MLPREFIX}pam-plugin-pwhistory-${libpam_suffix} \ > - ${MLPREFIX}pam-plugin-succeed-if-${libpam_suffix} \ > - ${MLPREFIX}pam-plugin-time-${libpam_suffix} \ > - bash coreutils" > - > -# FIXME: Native suffix breaks here, disable it for now > -RRECOMMENDS:${PN} = "${PN}-runtime-${libpam_suffix}" > -RRECOMMENDS:${PN}:class-native = "" > - > -python populate_packages:prepend () { > - def pam_plugin_hook(file, pkg, pattern, format, basename): > - pn = d.getVar('PN') > - libpam_suffix = d.getVar('libpam_suffix') > - > - rdeps = d.getVar('RDEPENDS:' + pkg) > - if rdeps: > - rdeps = rdeps + " " + pn + "-" + libpam_suffix > - else: > - rdeps = pn + "-" + libpam_suffix > - d.setVar('RDEPENDS:' + pkg, rdeps) > - > - provides = d.getVar('RPROVIDES:' + pkg) > - if provides: > - provides = provides + " " + pkg + "-" + libpam_suffix > - else: > - provides = pkg + "-" + libpam_suffix > - d.setVar('RPROVIDES:' + pkg, provides) > - > - mlprefix = d.getVar('MLPREFIX') or '' > - dvar = d.expand('${WORKDIR}/package') > - pam_libdir = d.expand('${base_libdir}/security') > - pam_sbindir = d.expand('${sbindir}') > - pam_filterdir = d.expand('${base_libdir}/security/pam_filter') > - pam_pkgname = mlprefix + 'pam-plugin%s' > - > - do_split_packages(d, pam_libdir, r'^pam(.*)\.so$', pam_pkgname, > - 'PAM plugin for %s', hook=pam_plugin_hook, > extra_depends='', prepend=True) > - 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 > - > - # don't install /var/run when populating rootfs. Do it through > volatile > - rm -rf ${D}${localstatedir} > - > - if > ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','false','true',d)}; then > - rm -rf ${D}${sysconfdir}/init.d/ > - rm -rf ${D}${sysconfdir}/rc* > - install -d ${D}${nonarch_libdir}/tmpfiles.d > - install -m 0644 ${UNPACKDIR}/pam-volatiles.conf \ > - ${D}${nonarch_libdir}/tmpfiles.d/pam.conf > - else > - install -d ${D}${sysconfdir}/default/volatiles > - install -m 0644 ${UNPACKDIR}/99_pam \ > - ${D}${sysconfdir}/default/volatiles/ > - fi > - > - install -d ${D}${sysconfdir}/pam.d/ > - install -m 0644 ${UNPACKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/ > - > - # The lsb requires unix_chkpwd has setuid permission > - chmod 4755 ${D}${sbindir}/unix_chkpwd > - > - 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}() { > - if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then > - /etc/init.d/populate-volatile.sh update > - fi > -} > - > -inherit features_check > -ANY_OF_DISTRO_FEATURES = "pam systemd" > - > -BBCLASSEXTEND = "nativesdk native" > - > -CONFFILES:${PN}-runtime += "${sysconfdir}/pam.d/common-session" > -CONFFILES:${PN}-runtime += "${sysconfdir}/pam.d/common-auth" > -CONFFILES:${PN}-runtime += "${sysconfdir}/pam.d/common-password" > -CONFFILES:${PN}-runtime += > "${sysconfdir}/pam.d/common-session-noninteractive" > -CONFFILES:${PN}-runtime += "${sysconfdir}/pam.d/common-account" > -CONFFILES:${PN}-runtime += "${sysconfdir}/security/limits.conf" > - > -GITHUB_BASE_URI = "https://github.com/linux-pam/linux-pam/releases" > - > -CVE_PRODUCT = "linux-pam" > -- > 2.47.0 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#208138): https://lists.openembedded.org/g/openembedded-core/message/208138 Mute This Topic: https://lists.openembedded.org/mt/109877521/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
