diff options
Diffstat (limited to 'poky/meta/recipes-extended/pam/libpam')
4 files changed, 59 insertions, 127 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 c55b64813..000000000 --- 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 000000000..5c6bc9270 --- /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 e4eb95669..000000000 --- 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 000000000..69e729ce2 --- /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 + |