diff options
Diffstat (limited to 'system/shadow')
-rw-r--r-- | system/shadow/APKBUILD | 23 | ||||
-rw-r--r-- | system/shadow/support-m4-dirs.patch | 9 | ||||
-rw-r--r-- | system/shadow/utmpx.patch | 206 |
3 files changed, 4 insertions, 234 deletions
diff --git a/system/shadow/APKBUILD b/system/shadow/APKBUILD index 5c27eedf5..4d929eca0 100644 --- a/system/shadow/APKBUILD +++ b/system/shadow/APKBUILD @@ -2,23 +2,21 @@ # Contributor: Jakub Jirutka <jakub@jirutka.cz> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=shadow -pkgver=4.6 -pkgrel=3 +pkgver=4.7 +pkgrel=0 pkgdesc="Login and password management utilities" url="https://github.com/shadow-maint/shadow" arch="all" options="suid" license="BSD-3-Clause OR Artistic-1.0-Perl" depends="" -makedepends="linux-pam-dev autoconf automake utmps-dev" +makedepends="linux-pam-dev utmps-dev" subpackages="$pkgname-doc $pkgname-dbg $pkgname-lang $pkgname-uidmap" source="https://github.com/shadow-maint/shadow/releases/download/$pkgver/shadow-$pkgver.tar.xz login.pamd dots-in-usernames.patch useradd-usergroups.patch pam-useradd.patch - utmpx.patch - support-m4-dirs.patch useradd-zsh.patch " # secfixes: @@ -29,15 +27,7 @@ source="https://github.com/shadow-maint/shadow/releases/download/$pkgver/shadow- # 4.2.1-r7: # - CVE-2016-6252 -prepare() { - cd "$builddir" - default_prepare - autoreconf -v -f --install -} - build() { - cd "$builddir" - LIBS="-lutmps -lskarnet" ./configure \ --build=$CBUILD \ --host=$CHOST \ @@ -60,13 +50,10 @@ build() { } check() { - cd "$builddir" make check } package() { - cd "$builddir" - make DESTDIR="$pkgdir" install # Do not install these pam.d files they are broken and outdated. @@ -108,11 +95,9 @@ uidmap() { touch "$subpkgdir"/etc/subuid "$subpkgdir"/etc/subgid } -sha512sums="e8eee52c649d9973f724bc2d5aeee71fa2e6a2e41ec3487cd6cf6d47af70c32e0cdf304df29b32eae2b6eb6f9066866b5f2c891add0ec87ba583bea3207b3631 shadow-4.6.tar.xz +sha512sums="331ff09ec084149b88ac23c0f7e3b3eb02deba03a1623d46f0abdab4dbae50db2146c3cab8c1e36e8f0b496089204d2cc274265f552fb81bc2deb49ce44c7284 shadow-4.7.tar.xz 46a6f83f3698e101b58b8682852da749619412f75dfa85cecad03d0847f6c3dc452d984510db7094220e4570a0565b83b0556e16198ad894a3ec84b3e513d58d login.pamd e5b276be0852c7c50257e73237144141991b628c2032e47e066d3ae1f8a480d4aff9ccb3f29a9ee25cb3fd39a1f6e1f8349be4ace5e1db7c392b3c3dd3a08845 dots-in-usernames.patch 49f1d5ded82d2d479805c77d7cc6274c30233596e375b28306b31a33f8fbfc3611dbc77d606081b8300247908c267297dbb6c5d1a30d56095dda53c6a636fb56 useradd-usergroups.patch 0b4587e263cb6be12fa5ae6bc3b3fc4d3696dae355bc67d085dc58c52ff96edb4d163b95db2092b8c2f3310839430cac03c7af356641b42e24ee4aa6410f5cf1 pam-useradd.patch -0ae5df1a287b8fa07fa9b9061dd3d5e6198527a6d9e9d4a9e2885f7a3884d1935e56856e25f1c092475aa31cee31b11d3bc7f9efe0347b0811ae53a805b2f26e utmpx.patch -ec0ef7038b385954b7e47b0414839d30c99edcc96863a06a8e90f04bcc943c6c30274fc382f15ca74ceca57bef36c90feae6e7d363ed8c6408ae4f2bf938dacb support-m4-dirs.patch 7f8e19cdf0b6dfb111feedd528f31aa06e79450c5bb35549ba3ebabede2661f65833adf164237fced77780d1254a66a3595b6b1c05571695e322514f549f3cc7 useradd-zsh.patch" diff --git a/system/shadow/support-m4-dirs.patch b/system/shadow/support-m4-dirs.patch deleted file mode 100644 index 6a2d34198..000000000 --- a/system/shadow/support-m4-dirs.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- shadow-4.6/configure.ac.old 2018-06-23 22:09:31.067117872 -0500 -+++ shadow-4.6/configure.ac 2018-06-23 22:13:44.496866959 -0500 -@@ -1,5 +1,6 @@ - dnl Process this file with autoconf to produce a configure script. - AC_PREREQ([2.64]) -+AC_CONFIG_MACRO_DIR([m4]) - AC_INIT([shadow], [4.6], [pkg-shadow-devel@lists.alioth.debian.org], [], - [https://github.com/shadow-maint/shadow]) - AM_INIT_AUTOMAKE([1.11 foreign dist-xz]) diff --git a/system/shadow/utmpx.patch b/system/shadow/utmpx.patch deleted file mode 100644 index d2ba0d4ec..000000000 --- a/system/shadow/utmpx.patch +++ /dev/null @@ -1,206 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 41068a5d..6bc88cfd 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -74,12 +74,6 @@ AC_CHECK_MEMBERS([struct utmp.ut_type, - struct utmp.ut_time, - struct utmp.ut_xtime, - struct utmp.ut_tv],,,[[#include <utmp.h>]]) --dnl There are dependencies: --dnl If UTMPX has to be used, the utmp structure shall have a ut_id field. --if test "$ac_cv_header_utmpx_h" = "yes" && -- test "$ac_cv_member_struct_utmp_ut_id" != "yes"; then -- AC_MSG_ERROR(Systems with UTMPX and no ut_id field in the utmp structure are not supported) --fi - - AC_CHECK_MEMBERS([struct utmpx.ut_name, - struct utmpx.ut_host, -diff --git a/lib/prototypes.h b/lib/prototypes.h -index b7d48881..d9e7f6f4 100644 ---- a/lib/prototypes.h -+++ b/lib/prototypes.h -@@ -416,17 +416,19 @@ extern int set_filesize_limit (int blocks); - extern int user_busy (const char *name, uid_t uid); - - /* utmp.c */ -+#ifndef USE_UTMPX - extern /*@null@*/struct utmp *get_current_utmp (void); - extern struct utmp *prepare_utmp (const char *name, - const char *line, - const char *host, - /*@null@*/const struct utmp *ut); - extern int setutmp (struct utmp *ut); --#ifdef USE_UTMPX -+#else -+extern /*@null@*/struct utmpx *get_current_utmp (void); - extern struct utmpx *prepare_utmpx (const char *name, - const char *line, - const char *host, -- /*@null@*/const struct utmp *ut); -+ /*@null@*/const struct utmpx *ut); - extern int setutmpx (struct utmpx *utx); - #endif /* USE_UTMPX */ - -diff --git a/libmisc/utmp.c b/libmisc/utmp.c -index f5614a22..ba69cf61 100644 ---- a/libmisc/utmp.c -+++ b/libmisc/utmp.c -@@ -35,10 +35,10 @@ - #include "defines.h" - #include "prototypes.h" - --#include <utmp.h> -- - #ifdef USE_UTMPX - #include <utmpx.h> -+#else -+#include <utmp.h> - #endif - - #include <assert.h> -@@ -97,6 +97,7 @@ static bool is_my_tty (const char *tty) - * - * Return NULL if no entries exist in utmp for the current process. - */ -+#ifndef USE_UTMPX - /*@null@*/ /*@only@*/struct utmp *get_current_utmp (void) - { - struct utmp *ut; -@@ -130,6 +131,36 @@ static bool is_my_tty (const char *tty) - - return ret; - } -+#else -+/*@null@*/ /*@only*/struct utmpx *get_current_utmp(void) -+{ -+ struct utmpx *ut; -+ struct utmpx *ret = NULL; -+ -+ setutxent (); -+ -+ /* Find the utmpx entry for this PID. */ -+ while ((ut = getutxent ()) != NULL) { -+ if ( (ut->ut_pid == getpid ()) -+ && ('\0' != ut->ut_id[0]) -+ && ( (LOGIN_PROCESS == ut->ut_type) -+ || (USER_PROCESS == ut->ut_type)) -+ && is_my_tty (ut->ut_line)) { -+ break; -+ } -+ } -+ -+ if (NULL != ut) { -+ ret = (struct utmpx *) xmalloc (sizeof (*ret)); -+ memcpy (ret, ut, sizeof (*ret)); -+ } -+ -+ endutxent (); -+ -+ return ret; -+} -+#endif -+ - - #ifndef USE_PAM - /* -@@ -166,6 +197,7 @@ static void updwtmpx (const char *filename, const struct utmpx *utx) - #endif /* ! USE_PAM */ - - -+#ifndef USE_UTMPX - /* - * prepare_utmp - prepare an utmp entry so that it can be logged in a - * utmp/wtmp file. -@@ -325,14 +357,14 @@ int setutmp (struct utmp *ut) - return err; - } - --#ifdef USE_UTMPX -+#else - /* - * prepare_utmpx - the UTMPX version for prepare_utmp - */ - /*@only@*/struct utmpx *prepare_utmpx (const char *name, - const char *line, - const char *host, -- /*@null@*/const struct utmp *ut) -+ /*@null@*/const struct utmpx *ut) - { - struct timeval tv; - char *hostname = NULL; -@@ -398,7 +430,7 @@ int setutmp (struct utmp *ut) - struct sockaddr_in *sa = - (struct sockaddr_in *) info->ai_addr; - #ifdef HAVE_STRUCT_UTMPX_UT_ADDR -- memcpy (utxent->ut_addr, -+ memcpy (&utxent->ut_addr, - &(sa->sin_addr), - MIN (sizeof (utxent->ut_addr), - sizeof (sa->sin_addr))); -diff --git a/src/login.c b/src/login.c -index e287cb0b..7677adf1 100644 ---- a/src/login.c -+++ b/src/login.c -@@ -129,7 +129,12 @@ static /*@observer@*/const char *get_failent_user (/*@returned@*/const char *use - static void update_utmp (const char *user, - const char *tty, - const char *host, -- /*@null@*/const struct utmp *utent); -+#ifdef USE_UTMPX -+ /*@null@*/const struct utmpx *utent -+#else -+ /*@null@*/const struct utmp *utent -+#endif -+ ); - - #ifndef USE_PAM - static struct faillog faillog; -@@ -481,17 +486,23 @@ static /*@observer@*/const char *get_failent_user (/*@returned@*/const char *use - static void update_utmp (const char *user, - const char *tty, - const char *host, -- /*@null@*/const struct utmp *utent) -+#ifdef USE_UTMPX -+ /*@null@*/const struct utmpx *utent -+#else -+ /*@null@*/const struct utmp *utent -+#endif -+ ) - { -- struct utmp *ut = prepare_utmp (user, tty, host, utent); - #ifdef USE_UTMPX - struct utmpx *utx = prepare_utmpx (user, tty, host, utent); -+#else -+ struct utmp *ut = prepare_utmp (user, tty, host, utent); - #endif /* USE_UTMPX */ - -+#ifndef USE_UTMPX - (void) setutmp (ut); /* make entry in the utmp & wtmp files */ - free (ut); -- --#ifdef USE_UTMPX -+#else - (void) setutmpx (utx); /* make entry in the utmpx & wtmpx files */ - free (utx); - #endif /* USE_UTMPX */ -@@ -539,7 +550,11 @@ int main (int argc, char **argv) - struct passwd *pwd = NULL; - char **envp = environ; - const char *failent_user; -+#ifdef USE_UTMPX -+ /*@null@*/struct utmpx *utent; -+#else - /*@null@*/struct utmp *utent; -+#endif - - #ifdef USE_PAM - int retcode; -@@ -681,7 +696,7 @@ int main (int argc, char **argv) - - if (rflg || hflg) { - cp = hostname; --#ifdef HAVE_STRUCT_UTMP_UT_HOST -+#if defined(HAVE_STRUCT_UTMP_UT_HOST) || defined(USE_UTMPX) - } else if ((NULL != utent) && ('\0' != utent->ut_host[0])) { - cp = utent->ut_host; - #endif /* HAVE_STRUCT_UTMP_UT_HOST */ |