diff options
Diffstat (limited to 'poky/meta/recipes-extended/pam')
5 files changed, 73 insertions, 145 deletions
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-Add-support-for-defining-missing-funcitonality.patch b/poky/meta/recipes-extended/pam/libpam/0001-Add-support-for-defining-missing-funcitonality.patch deleted file mode 100644 index c55b648139..0000000000 --- a/poky/meta/recipes-extended/pam/libpam/0001-Add-support-for-defining-missing-funcitonality.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 45d1ed58927593968faead7dbb295f3922f41a2f Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 8 Aug 2015 14:16:43 -0700 -Subject: [PATCH] Add support for defining missing funcitonality - -In order to support alternative libc on linux ( musl, bioninc ) etc we -need to check for glibc-only features and provide alternatives, in this -list strndupa is first one, when configure detects that its not included -in system C library then the altrnative implementation from missing.h is -used - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - configure.ac | 3 +++ - libpam/include/missing.h | 12 ++++++++++++ - modules/pam_exec/pam_exec.c | 1 + - 3 files changed, 16 insertions(+) - create mode 100644 libpam/include/missing.h - -diff --git a/configure.ac b/configure.ac -index 9e1257f..cbed979 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -599,6 +599,9 @@ dnl - AC_CHECK_DECL(__NR_keyctl, [have_key_syscalls=1],[have_key_syscalls=0],[#include <sys/syscall.h>]) - AC_CHECK_DECL(ENOKEY, [have_key_errors=1],[have_key_errors=0],[#include <errno.h>]) - -+# musl and bionic don't have strndupa -+AC_CHECK_DECLS_ONCE([strndupa]) -+ - HAVE_KEY_MANAGEMENT=0 - if test $have_key_syscalls$have_key_errors = 11 - then -diff --git a/libpam/include/missing.h b/libpam/include/missing.h -new file mode 100644 -index 0000000..3cf011c ---- /dev/null -+++ b/libpam/include/missing.h -@@ -0,0 +1,12 @@ -+#pragma once -+ -+#if !HAVE_DECL_STRNDUPA -+#define strndupa(s, n) \ -+ ({ \ -+ const char *__old = (s); \ -+ size_t __len = strnlen(__old, (n)); \ -+ char *__new = alloca(__len + 1); \ -+ __new[__len] = '\0'; \ -+ memcpy(__new, __old, __len); \ -+ }) -+#endif -diff --git a/modules/pam_exec/pam_exec.c b/modules/pam_exec/pam_exec.c -index 17ba6ca..3aa2694 100644 ---- a/modules/pam_exec/pam_exec.c -+++ b/modules/pam_exec/pam_exec.c -@@ -59,6 +59,7 @@ - #include <security/pam_modutil.h> - #include <security/pam_ext.h> - #include <security/_pam_macros.h> -+#include <missing.h> - - #define ENV_ITEM(n) { (n), #n } - static struct { --- -2.1.4 - diff --git a/poky/meta/recipes-extended/pam/libpam/0001-Makefile.am-support-usrmage.patch b/poky/meta/recipes-extended/pam/libpam/0001-Makefile.am-support-usrmage.patch new file mode 100644 index 0000000000..5c6bc92705 --- /dev/null +++ b/poky/meta/recipes-extended/pam/libpam/0001-Makefile.am-support-usrmage.patch @@ -0,0 +1,28 @@ +From c09e012590c1ec2d3b622b64f1bfc10a2286c9ea Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Wed, 6 Jan 2021 12:08:20 +0800 +Subject: [PATCH] Makefile.am: support usrmage + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + modules/pam_namespace/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules/pam_namespace/Makefile.am b/modules/pam_namespace/Makefile.am +index ddd5fc0..a1f1bec 100644 +--- a/modules/pam_namespace/Makefile.am ++++ b/modules/pam_namespace/Makefile.am +@@ -18,7 +18,7 @@ TESTS = $(dist_check_SCRIPTS) + securelibdir = $(SECUREDIR) + secureconfdir = $(SCONFIGDIR) + namespaceddir = $(SCONFIGDIR)/namespace.d +-servicedir = /lib/systemd/system ++servicedir = $(systemd_system_unitdir) + + AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ + -DSECURECONF_DIR=\"$(SCONFIGDIR)/\" $(WARN_CFLAGS) +-- +2.17.1 + diff --git a/poky/meta/recipes-extended/pam/libpam/include_paths_header.patch b/poky/meta/recipes-extended/pam/libpam/include_paths_header.patch deleted file mode 100644 index e4eb95669b..0000000000 --- a/poky/meta/recipes-extended/pam/libpam/include_paths_header.patch +++ /dev/null @@ -1,59 +0,0 @@ -This patch adds missing include for paths.h which should provide -_PATH_LASTLOG definition - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Index: Linux-PAM-1.1.6/modules/pam_lastlog/pam_lastlog.c -=================================================================== ---- Linux-PAM-1.1.6.orig/modules/pam_lastlog/pam_lastlog.c -+++ Linux-PAM-1.1.6/modules/pam_lastlog/pam_lastlog.c -@@ -23,9 +23,11 @@ - #include <stdarg.h> - #include <stdio.h> - #include <string.h> -+#include <sys/file.h> - #include <sys/types.h> - #include <syslog.h> - #include <unistd.h> -+#include <paths.h> - - #if defined(hpux) || defined(sunos) || defined(solaris) - # ifndef _PATH_LASTLOG -@@ -332,6 +334,23 @@ last_login_read(pam_handle_t *pamh, int - return retval; - } - -+#ifndef __GLIBC__ -+static void logwtmp(const char * line, const char * name, const char * host) -+{ -+ struct utmp u; -+ memset(&u, 0, sizeof(u)); -+ -+ u.ut_pid = getpid(); -+ u.ut_type = name[0] ? USER_PROCESS : DEAD_PROCESS; -+ strncpy(u.ut_line, line, sizeof(u.ut_line)); -+ strncpy(u.ut_name, name, sizeof(u.ut_name)); -+ strncpy(u.ut_host, host, sizeof(u.ut_host)); -+ gettimeofday(&(u.ut_tv), NULL); -+ -+ updwtmp(_PATH_WTMP, &u); -+} -+#endif /* __GLIBC__ */ -+ - static int - last_login_write(pam_handle_t *pamh, int announce, int last_fd, - uid_t uid, const char *user) -Index: Linux-PAM-1.1.6/modules/Makefile.am -=================================================================== ---- Linux-PAM-1.1.6.orig/modules/Makefile.am -+++ Linux-PAM-1.1.6/modules/Makefile.am -@@ -7,7 +7,7 @@ SUBDIRS = pam_access pam_cracklib pam_de - pam_group pam_issue pam_keyinit pam_lastlog pam_limits \ - pam_listfile pam_localuser pam_loginuid pam_mail \ - pam_mkhomedir pam_motd pam_namespace pam_nologin \ -- pam_permit pam_pwhistory pam_rhosts pam_rootok pam_securetty \ -+ pam_permit pam_pwhistory pam_rootok pam_securetty \ - pam_selinux pam_sepermit pam_shells pam_stress \ - pam_succeed_if pam_tally pam_tally2 pam_time pam_timestamp \ - pam_tty_audit pam_umask \ diff --git a/poky/meta/recipes-extended/pam/libpam/run-ptest b/poky/meta/recipes-extended/pam/libpam/run-ptest new file mode 100644 index 0000000000..69e729ce2a --- /dev/null +++ b/poky/meta/recipes-extended/pam/libpam/run-ptest @@ -0,0 +1,31 @@ +#! /bin/sh + +cd tests + +failed=0 +all=0 + +for f in tst-*; do + "./$f" > /dev/null 2>&1 + case "$?" in + 0) + echo "PASS: $f" + all=$((all + 1)) + ;; + 77) + echo "SKIP: $f" + ;; + *) + echo "FAIL: $f" + failed=$((failed + 1)) + all=$((all + 1)) + ;; + esac +done + +if [ "$failed" -eq 0 ] ; then + echo "All $all tests passed" +else + echo "$failed of $all tests failed" +fi + diff --git a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb index bc72afe6ad..a3f7c9b49d 100644 --- a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb +++ b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb @@ -29,10 +29,6 @@ SRC_URI = "https://github.com/linux-pam/linux-pam/releases/download/v${PV}/Linux SRC_URI[md5sum] = "558ff53b0fc0563ca97f79e911822165" SRC_URI[sha256sum] = "eff47a4ecd833fbf18de9686632a70ee8d0794b79aecb217ebd0ce11db4cd0db" -SRC_URI_append_libc-musl = " file://0001-Add-support-for-defining-missing-funcitonality.patch \ - file://include_paths_header.patch \ - " - DEPENDS = "bison-native flex flex-native cracklib libxml2-native virtual/crypt" EXTRA_OECONF = "--includedir=${includedir}/security \ @@ -88,13 +84,6 @@ RRECOMMENDS_${PN} = "${PN}-runtime-${libpam_suffix}" RRECOMMENDS_${PN}_class-native = "" python populate_packages_prepend () { - def pam_plugin_append_file(pn, dir, file): - nf = os.path.join(dir, file) - of = d.getVar('FILES_' + pn) - if of: - nf = of + " " + nf - d.setVar('FILES_' + pn, nf) - def pam_plugin_hook(file, pkg, pattern, format, basename): pn = d.getVar('PN') libpam_suffix = d.getVar('libpam_suffix') @@ -122,16 +111,16 @@ python populate_packages_prepend () { do_split_packages(d, pam_libdir, r'^pam(.*)\.so$', pam_pkgname, 'PAM plugin for %s', hook=pam_plugin_hook, extra_depends='') - pam_plugin_append_file('%spam-plugin-unix' % mlprefix, pam_sbindir, 'unix_chkpwd') - pam_plugin_append_file('%spam-plugin-unix' % mlprefix, pam_sbindir, 'unix_update') - pam_plugin_append_file('%spam-plugin-tally' % mlprefix, pam_sbindir, 'pam_tally') - pam_plugin_append_file('%spam-plugin-tally2' % mlprefix, pam_sbindir, 'pam_tally2') - pam_plugin_append_file('%spam-plugin-timestamp' % mlprefix, pam_sbindir, 'pam_timestamp_check') - pam_plugin_append_file('%spam-plugin-mkhomedir' % mlprefix, pam_sbindir, 'mkhomedir_helper') - pam_plugin_append_file('%spam-plugin-console' % mlprefix, pam_sbindir, 'pam_console_apply') 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 @@ -151,6 +140,13 @@ do_install() { fi } +do_install_ptest() { + if [ ${PTEST_ENABLED} = "1" ]; then + mkdir -p ${D}${PTEST_PATH}/tests + install -m 0755 ${B}/tests/.libs/* ${D}${PTEST_PATH}/tests + fi +} + inherit features_check REQUIRED_DISTRO_FEATURES = "pam" |