[OE-core] [PATCH] shadow: update to 4.7
ChenQi
Qi.Chen at windriver.com
Wed Jul 3 02:27:34 UTC 2019
Could you please help check if the following failure is related to this
patch?
https://autobuilder.yoctoproject.org/typhoon/#/builders/57/builds/763/steps/7/logs/step1b
Best Regards,
Chen Qi
On 07/03/2019 04:52 AM, Oleksandr Kravchuk wrote:
> Removed patches were upstreamed.
>
> Signed-off-by: Oleksandr Kravchuk <open.source at oleksandr-kravchuk.com>
> ---
> ...chg-shadow-field-reproducible-re.-71.patch | 89 --------------
> ...te-parent-directories-when-necessary.patch | 116 ------------------
> ...ettime-Use-secure_getenv-over-getenv.patch | 71 -----------
> ...curetty_4.6.bb => shadow-securetty_4.7.bb} | 0
> ...w-sysroot_4.6.bb => shadow-sysroot_4.7.bb} | 0
> meta/recipes-extended/shadow/shadow.inc | 7 +-
> .../shadow/{shadow_4.6.bb => shadow_4.7.bb} | 0
> 7 files changed, 2 insertions(+), 281 deletions(-)
> delete mode 100644 meta/recipes-extended/shadow/files/0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch
> delete mode 100644 meta/recipes-extended/shadow/files/0001-useradd.c-create-parent-directories-when-necessary.patch
> delete mode 100644 meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch
> rename meta/recipes-extended/shadow/{shadow-securetty_4.6.bb => shadow-securetty_4.7.bb} (100%)
> rename meta/recipes-extended/shadow/{shadow-sysroot_4.6.bb => shadow-sysroot_4.7.bb} (100%)
> rename meta/recipes-extended/shadow/{shadow_4.6.bb => shadow_4.7.bb} (100%)
>
> diff --git a/meta/recipes-extended/shadow/files/0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch b/meta/recipes-extended/shadow/files/0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch
> deleted file mode 100644
> index de0ba3ebb4..0000000000
> --- a/meta/recipes-extended/shadow/files/0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch
> +++ /dev/null
> @@ -1,89 +0,0 @@
> -From fe34a2a0e44bc80ff213bfd185046a5f10c94997 Mon Sep 17 00:00:00 2001
> -From: Chris Lamb <chris at chris-lamb.co.uk>
> -Date: Wed, 2 Jan 2019 18:06:16 +0000
> -Subject: [PATCH 1/2] Make the sp_lstchg shadow field reproducible (re. #71)
> -
> -From <https://github.com/shadow-maint/shadow/pull/71>:
> -
> -```
> -The third field in the /etc/shadow file (sp_lstchg) contains the date of
> -the last password change expressed as the number of days since Jan 1, 1970.
> -As this is a relative time, creating a user today will result in:
> -
> -username:17238:0:99999:7:::
> -whilst creating the same user tomorrow will result in:
> -
> -username:17239:0:99999:7:::
> -This has an impact for the Reproducible Builds[0] project where we aim to
> -be independent of as many elements the build environment as possible,
> -including the current date.
> -
> -This patch changes the behaviour to use the SOURCE_DATE_EPOCH[1]
> -environment variable (instead of Jan 1, 1970) if valid.
> -```
> -
> -This updated PR adds some missing calls to gettime (). This was originally
> -filed by Johannes Schauer in Debian as #917773 [2].
> -
> -[0] https://reproducible-builds.org/
> -[1] https://reproducible-builds.org/specs/source-date-epoch/
> -[2] https://bugs.debian.org/917773
> -
> -Upstream-Status: Backport
> -Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
> ----
> - libmisc/pwd2spwd.c | 3 +--
> - src/pwck.c | 2 +-
> - src/pwconv.c | 2 +-
> - 3 files changed, 3 insertions(+), 4 deletions(-)
> -
> -diff --git a/libmisc/pwd2spwd.c b/libmisc/pwd2spwd.c
> -index c1b9b29ac873..6799dd50d490 100644
> ---- a/libmisc/pwd2spwd.c
> -+++ b/libmisc/pwd2spwd.c
> -@@ -40,7 +40,6 @@
> - #include "prototypes.h"
> - #include "defines.h"
> - #include <pwd.h>
> --extern time_t time (time_t *);
> -
> - /*
> - * pwd_to_spwd - create entries for new spwd structure
> -@@ -66,7 +65,7 @@ struct spwd *pwd_to_spwd (const struct passwd *pw)
> - */
> - sp.sp_min = 0;
> - sp.sp_max = (10000L * DAY) / SCALE;
> -- sp.sp_lstchg = (long) time ((time_t *) 0) / SCALE;
> -+ sp.sp_lstchg = (long) gettime () / SCALE;
> - if (0 == sp.sp_lstchg) {
> - /* Better disable aging than requiring a password
> - * change */
> -diff --git a/src/pwck.c b/src/pwck.c
> -index 0ffb711efb13..f70071b12500 100644
> ---- a/src/pwck.c
> -+++ b/src/pwck.c
> -@@ -609,7 +609,7 @@ static void check_pw_file (int *errors, bool *changed)
> - sp.sp_inact = -1;
> - sp.sp_expire = -1;
> - sp.sp_flag = SHADOW_SP_FLAG_UNSET;
> -- sp.sp_lstchg = (long) time ((time_t *) 0) / SCALE;
> -+ sp.sp_lstchg = (long) gettime () / SCALE;
> - if (0 == sp.sp_lstchg) {
> - /* Better disable aging than
> - * requiring a password change
> -diff --git a/src/pwconv.c b/src/pwconv.c
> -index 9c69fa131d8e..f932f266c59c 100644
> ---- a/src/pwconv.c
> -+++ b/src/pwconv.c
> -@@ -267,7 +267,7 @@ int main (int argc, char **argv)
> - spent.sp_flag = SHADOW_SP_FLAG_UNSET;
> - }
> - spent.sp_pwdp = pw->pw_passwd;
> -- spent.sp_lstchg = (long) time ((time_t *) 0) / SCALE;
> -+ spent.sp_lstchg = (long) gettime () / SCALE;
> - if (0 == spent.sp_lstchg) {
> - /* Better disable aging than requiring a password
> - * change */
> ---
> -2.17.1
> -
> diff --git a/meta/recipes-extended/shadow/files/0001-useradd.c-create-parent-directories-when-necessary.patch b/meta/recipes-extended/shadow/files/0001-useradd.c-create-parent-directories-when-necessary.patch
> deleted file mode 100644
> index faa6f68ebe..0000000000
> --- a/meta/recipes-extended/shadow/files/0001-useradd.c-create-parent-directories-when-necessary.patch
> +++ /dev/null
> @@ -1,116 +0,0 @@
> -Subject: [PATCH] useradd.c: create parent directories when necessary
> -
> -Upstream-Status: Inappropriate [OE specific]
> -
> -Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ----
> - src/useradd.c | 80 +++++++++++++++++++++++++++++++++++++++--------------------
> - 1 file changed, 53 insertions(+), 27 deletions(-)
> -
> -diff --git a/src/useradd.c b/src/useradd.c
> -index 00a3c30..9ecbb58 100644
> ---- a/src/useradd.c
> -+++ b/src/useradd.c
> -@@ -2021,6 +2021,35 @@ static void usr_update (void)
> - }
> -
> - /*
> -+ * mkdir_p - create directories, including parent directories when needed
> -+ *
> -+ * similar to `mkdir -p'
> -+ */
> -+void mkdir_p(const char *path) {
> -+ int len = strlen(path);
> -+ char newdir[len + 1];
> -+ mode_t mode = 0755;
> -+ int i = 0;
> -+
> -+ if (path[i] == '\0') {
> -+ return;
> -+ }
> -+
> -+ /* skip the leading '/' */
> -+ i++;
> -+
> -+ while(path[i] != '\0') {
> -+ if (path[i] == '/') {
> -+ strncpy(newdir, path, i);
> -+ newdir[i] = '\0';
> -+ mkdir(newdir, mode);
> -+ }
> -+ i++;
> -+ }
> -+ mkdir(path, mode);
> -+}
> -+
> -+/*
> - * create_home - create the user's home directory
> - *
> - * create_home() creates the user's home directory if it does not
> -@@ -2038,39 +2067,36 @@ static void create_home (void)
> - fail_exit (E_HOMEDIR);
> - }
> - #endif
> -- /* XXX - create missing parent directories. --marekm */
> -- if (mkdir (prefix_user_home, 0) != 0) {
> -- fprintf (stderr,
> -- _("%s: cannot create directory %s\n"),
> -- Prog, prefix_user_home);
> -+ mkdir_p(user_home);
> -+ }
> -+ if (access (prefix_user_home, F_OK) != 0) {
> - #ifdef WITH_AUDIT
> -- audit_logger (AUDIT_ADD_USER, Prog,
> -- "adding home directory",
> -- user_name, (unsigned int) user_id,
> -- SHADOW_AUDIT_FAILURE);
> -+ audit_logger (AUDIT_ADD_USER, Prog,
> -+ "adding home directory",
> -+ user_name, (unsigned int) user_id,
> -+ SHADOW_AUDIT_FAILURE);
> - #endif
> -- fail_exit (E_HOMEDIR);
> -- }
> -- (void) chown (prefix_user_home, user_id, user_gid);
> -- chmod (prefix_user_home,
> -- 0777 & ~getdef_num ("UMASK", GETDEF_DEFAULT_UMASK));
> -- home_added = true;
> -+ fail_exit (E_HOMEDIR);
> -+ }
> -+ (void) chown (prefix_user_home, user_id, user_gid);
> -+ chmod (prefix_user_home,
> -+ 0777 & ~getdef_num ("UMASK", GETDEF_DEFAULT_UMASK));
> -+ home_added = true;
> - #ifdef WITH_AUDIT
> -- audit_logger (AUDIT_ADD_USER, Prog,
> -- "adding home directory",
> -- user_name, (unsigned int) user_id,
> -- SHADOW_AUDIT_SUCCESS);
> -+ audit_logger (AUDIT_ADD_USER, Prog,
> -+ "adding home directory",
> -+ user_name, (unsigned int) user_id,
> -+ SHADOW_AUDIT_SUCCESS);
> - #endif
> - #ifdef WITH_SELINUX
> -- /* Reset SELinux to create files with default contexts */
> -- if (reset_selinux_file_context () != 0) {
> -- fprintf (stderr,
> -- _("%s: cannot reset SELinux file creation context\n"),
> -- Prog);
> -- fail_exit (E_HOMEDIR);
> -- }
> --#endif
> -+ /* Reset SELinux to create files with default contexts */
> -+ if (reset_selinux_file_context () != 0) {
> -+ fprintf (stderr,
> -+ _("%s: cannot reset SELinux file creation context\n"),
> -+ Prog);
> -+ fail_exit (E_HOMEDIR);
> - }
> -+#endif
> - }
> -
> - /*
> ---
> -2.11.0
> -
> diff --git a/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch b/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch
> deleted file mode 100644
> index 8c8234d038..0000000000
> --- a/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -From 3d921155e0a761f61c8f1ec37328724aee1e2eda Mon Sep 17 00:00:00 2001
> -From: Chris Lamb <chris at chris-lamb.co.uk>
> -Date: Sun, 31 Mar 2019 15:59:45 +0100
> -Subject: [PATCH 2/2] gettime: Use secure_getenv over getenv.
> -
> -Upstream-Status: Backport
> -Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
> ----
> - README | 1 +
> - configure.ac | 3 +++
> - lib/defines.h | 6 ++++++
> - libmisc/gettime.c | 2 +-
> - 4 files changed, 11 insertions(+), 1 deletion(-)
> -
> -diff --git a/README b/README
> -index 952ac5787f06..26cfff1e8fa8 100644
> ---- a/README
> -+++ b/README
> -@@ -51,6 +51,7 @@ Brian R. Gaeke <brg at dgate.org>
> - Calle Karlsson <ckn at kash.se>
> - Chip Rosenthal <chip at unicom.com>
> - Chris Evans <lady0110 at sable.ox.ac.uk>
> -+Chris Lamb <chris at chris-lamb.co.uk>
> - Cristian Gafton <gafton at sorosis.ro>
> - Dan Walsh <dwalsh at redhat.com>
> - Darcy Boese <possum at chardonnay.niagara.com>
> -diff --git a/configure.ac b/configure.ac
> -index da236722766b..a738ad662cc3 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -110,6 +110,9 @@ AC_REPLACE_FUNCS(sgetgrent sgetpwent sgetspent)
> - AC_REPLACE_FUNCS(snprintf strcasecmp strdup strerror strstr)
> -
> - AC_CHECK_FUNC(setpgrp)
> -+AC_CHECK_FUNC(secure_getenv, [AC_DEFINE(HAS_SECURE_GETENV,
> -+ 1,
> -+ [Defined to 1 if you have the declaration of 'secure_getenv'])])
> -
> - if test "$ac_cv_header_shadow_h" = "yes"; then
> - AC_CACHE_CHECK(for working shadow group support,
> -diff --git a/lib/defines.h b/lib/defines.h
> -index cded1417fd12..2fb1b56eca6b 100644
> ---- a/lib/defines.h
> -+++ b/lib/defines.h
> -@@ -382,4 +382,10 @@ extern char *strerror ();
> - # endif
> - #endif
> -
> -+#ifdef HAVE_SECURE_GETENV
> -+# define shadow_getenv(name) secure_getenv(name)
> -+# else
> -+# define shadow_getenv(name) getenv(name)
> -+#endif
> -+
> - #endif /* _DEFINES_H_ */
> -diff --git a/libmisc/gettime.c b/libmisc/gettime.c
> -index 53eaf51670bb..0e25a4b75061 100644
> ---- a/libmisc/gettime.c
> -+++ b/libmisc/gettime.c
> -@@ -52,7 +52,7 @@
> - unsigned long long epoch;
> -
> - fallback = time (NULL);
> -- source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
> -+ source_date_epoch = shadow_getenv ("SOURCE_DATE_EPOCH");
> -
> - if (!source_date_epoch)
> - return fallback;
> ---
> -2.17.1
> -
> diff --git a/meta/recipes-extended/shadow/shadow-securetty_4.6.bb b/meta/recipes-extended/shadow/shadow-securetty_4.7.bb
> similarity index 100%
> rename from meta/recipes-extended/shadow/shadow-securetty_4.6.bb
> rename to meta/recipes-extended/shadow/shadow-securetty_4.7.bb
> diff --git a/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb b/meta/recipes-extended/shadow/shadow-sysroot_4.7.bb
> similarity index 100%
> rename from meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
> rename to meta/recipes-extended/shadow/shadow-sysroot_4.7.bb
> diff --git a/meta/recipes-extended/shadow/shadow.inc b/meta/recipes-extended/shadow/shadow.inc
> index 7f82d20826..219d0d276a 100644
> --- a/meta/recipes-extended/shadow/shadow.inc
> +++ b/meta/recipes-extended/shadow/shadow.inc
> @@ -11,8 +11,6 @@ DEPENDS = "virtual/crypt"
> UPSTREAM_CHECK_URI = "https://github.com/shadow-maint/shadow/releases"
> SRC_URI = "https://github.com/shadow-maint/shadow/releases/download/${PV}/${BP}.tar.gz \
> file://shadow-4.1.3-dots-in-usernames.patch \
> - file://0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch \
> - file://0002-gettime-Use-secure_getenv-over-getenv.patch \
> file://0001-configure.ac-fix-configure-error-with-dash.patch \
> ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
> "
> @@ -27,14 +25,13 @@ SRC_URI_append_class-native = " \
> file://0001-Disable-use-of-syslog-for-sysroot.patch \
> file://allow-for-setting-password-in-clear-text.patch \
> file://commonio.c-fix-unexpected-open-failure-in-chroot-env.patch \
> - file://0001-useradd.c-create-parent-directories-when-necessary.patch \
> "
> SRC_URI_append_class-nativesdk = " \
> file://0001-Disable-use-of-syslog-for-sysroot.patch \
> "
>
> -SRC_URI[md5sum] = "36feb15665338ae3de414f2a88e434db"
> -SRC_URI[sha256sum] = "4668f99bd087399c4a586084dc3b046b75f560720d83e92fd23bf7a89dda4d31"
> +SRC_URI[md5sum] = "eb66cc4e5166fba8854eb805ec0bab63"
> +SRC_URI[sha256sum] = "5135b0ca2a361a218fab59e63d9c1720d2a8fc1faa520c819a654b638017286f"
>
> # Additional Policy files for PAM
> PAM_SRC_URI = "file://pam.d/chfn \
> diff --git a/meta/recipes-extended/shadow/shadow_4.6.bb b/meta/recipes-extended/shadow/shadow_4.7.bb
> similarity index 100%
> rename from meta/recipes-extended/shadow/shadow_4.6.bb
> rename to meta/recipes-extended/shadow/shadow_4.7.bb
More information about the Openembedded-core
mailing list