summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/pseudo
diff options
context:
space:
mode:
authorPeter Seebach <peter.seebach@windriver.com>2015-01-22 20:23:56 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-01-28 21:22:21 +0000
commit67298d4fe6d96692a4e0578a44cc1a0bbf2cdc2b (patch)
treef156eaaead51ca3294af1ea317a4264bd6c912dd /meta/recipes-devtools/pseudo
parent2a775ebbb175dd70fc7228607c306d4ccb9e4ba4 (diff)
downloadopenembedded-core-67298d4fe6d96692a4e0578a44cc1a0bbf2cdc2b.tar.gz
openembedded-core-67298d4fe6d96692a4e0578a44cc1a0bbf2cdc2b.tar.bz2
openembedded-core-67298d4fe6d96692a4e0578a44cc1a0bbf2cdc2b.zip
pseudo_1.6.x.bb/pseudo_git.bb: Pseudo 1.6.4
pseudo 1.6.3 merges (with some changes) the changes from Peter A. Bigot to make --without-fallback-passwd work. It also adds a proposed fix for Yocto bug #7097, which has passed the obvious tests I could think of. pseudo 1.6.4 fixes a silly configure bug introduced with 1.6.3. [YOCTO: #7097] Signed-off-by: Peter Seebach <peter.seebach@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/recipes-devtools/pseudo')
-rw-r--r--meta/recipes-devtools/pseudo/pseudo-1.6.2/0001-pseudo_client.c-protect-pwd_lck-against-magic.patch56
-rw-r--r--meta/recipes-devtools/pseudo/pseudo-1.6.2/0002-pseudo_util-modify-interface-to-pseudo_etc_file.patch70
-rw-r--r--meta/recipes-devtools/pseudo/pseudo-1.6.2/0003-pseudo_client.c-support-multiple-directories-in-PSEU.patch116
-rw-r--r--meta/recipes-devtools/pseudo/pseudo_1.6.4.bb (renamed from meta/recipes-devtools/pseudo/pseudo_1.6.2.bb)7
-rw-r--r--meta/recipes-devtools/pseudo/pseudo_git.bb4
5 files changed, 4 insertions, 249 deletions
diff --git a/meta/recipes-devtools/pseudo/pseudo-1.6.2/0001-pseudo_client.c-protect-pwd_lck-against-magic.patch b/meta/recipes-devtools/pseudo/pseudo-1.6.2/0001-pseudo_client.c-protect-pwd_lck-against-magic.patch
deleted file mode 100644
index d0c0a27e54..0000000000
--- a/meta/recipes-devtools/pseudo/pseudo-1.6.2/0001-pseudo_client.c-protect-pwd_lck-against-magic.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From e11468a47369596f57c5e99bd0a3dd58b2c6d5e0 Mon Sep 17 00:00:00 2001
-From: "Peter A. Bigot" <pab@pabigot.com>
-Date: Sun, 12 Oct 2014 08:27:14 -0500
-Subject: [PATCH 1/3] pseudo_client.c: protect pwd_lck against magic
-
-While attempting to diagnose unexpected uid/gid assignment I added
---without-passwd-fallback to the pseudo build. This caused build
-failures due to inability to lock /etc/passwd.
-
-Instrumentation revealed that attempts to create the lock file ended up
-with pseudo_etc_file() creating the correct lock name, but the
-subsequent open had an extra PSEUDO_PASSWD directory prefix causing
-it to fail.
-
-Inspection of pseudo_client shows the only other use of PSEUDO_ETC_FILE
-to be protected against magic. Applying the same shield to the
-unprotected calls in pseudo_pwd_lck_{open,close} fixes the issue.
-
-Upstream-Status: Pending
-Signed-off-by: Peter A. Bigot <pab@pabigot.com>
----
- pseudo_client.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/pseudo_client.c b/pseudo_client.c
-index 8deaa1b..442dd19 100644
---- a/pseudo_client.c
-+++ b/pseudo_client.c
-@@ -416,20 +416,24 @@ pseudo_pwd_lck_open(void) {
- }
- }
- pseudo_pwd_lck_close();
-+ pseudo_antimagic();
- pseudo_pwd_lck_fd = PSEUDO_ETC_FILE(".pwd.lock",
- pseudo_pwd_lck_name, O_RDWR | O_CREAT);
-+ pseudo_magic();
- return pseudo_pwd_lck_fd;
- }
-
- int
- pseudo_pwd_lck_close(void) {
- if (pseudo_pwd_lck_fd != -1) {
-+ pseudo_antimagic();
- close(pseudo_pwd_lck_fd);
- if (pseudo_pwd_lck_name) {
- unlink(pseudo_pwd_lck_name);
- free(pseudo_pwd_lck_name);
- pseudo_pwd_lck_name = 0;
- }
-+ pseudo_magic();
- pseudo_pwd_lck_fd = -1;
- return 0;
- } else {
---
-1.8.5.5
-
diff --git a/meta/recipes-devtools/pseudo/pseudo-1.6.2/0002-pseudo_util-modify-interface-to-pseudo_etc_file.patch b/meta/recipes-devtools/pseudo/pseudo-1.6.2/0002-pseudo_util-modify-interface-to-pseudo_etc_file.patch
deleted file mode 100644
index c7006ef6df..0000000000
--- a/meta/recipes-devtools/pseudo/pseudo-1.6.2/0002-pseudo_util-modify-interface-to-pseudo_etc_file.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From f05def2bbd5507084672bc9072ffe0e5101e9b47 Mon Sep 17 00:00:00 2001
-From: "Peter A. Bigot" <pab@pabigot.com>
-Date: Sun, 12 Oct 2014 11:35:57 -0500
-Subject: [PATCH 2/3] pseudo_util: modify interface to pseudo_etc_file
-
-* Make the search directory pointers const: there is no reason why this
- function should be allowed to mutate the directories.
-
-* Change the search directory argument from an array of pointers to a
- pointer-to-pointers to prepare for an upcoming enhancement.
-
-Upstream-Status: Pending
-Signed-off-by: Peter A. Bigot <pab@pabigot.com>
----
- pseudo.h | 2 +-
- pseudo_client.c | 2 +-
- pseudo_util.c | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/pseudo.h b/pseudo.h
-index 92020e4..05813c1 100644
---- a/pseudo.h
-+++ b/pseudo.h
-@@ -86,7 +86,7 @@ extern int pseudo_logfile(char *defname);
- extern ssize_t pseudo_sys_path_max(void);
- extern ssize_t pseudo_path_max(void);
- #define PSEUDO_PWD_MAX 4096
--extern int pseudo_etc_file(const char *filename, char *realname, int flags, char *path[], int dircount);
-+extern int pseudo_etc_file(const char *filename, char *realname, int flags, const char **search_dirs, int dircount);
- extern void pseudo_stat32_from64(struct stat *, const struct stat64 *);
- extern void pseudo_stat64_from32(struct stat64 *, const struct stat *);
-
-diff --git a/pseudo_client.c b/pseudo_client.c
-index 442dd19..7a4d7fa 100644
---- a/pseudo_client.c
-+++ b/pseudo_client.c
-@@ -93,7 +93,7 @@ gid_t pseudo_egid;
- gid_t pseudo_sgid;
- gid_t pseudo_fgid;
-
--#define PSEUDO_ETC_FILE(filename, realname, flags) pseudo_etc_file(filename, realname, flags, (char *[]) { pseudo_chroot, pseudo_passwd, PSEUDO_PASSWD_FALLBACK }, PSEUDO_PASSWD_FALLBACK ? 3 : 2)
-+#define PSEUDO_ETC_FILE(filename, realname, flags) pseudo_etc_file(filename, realname, flags, (const char *[]) { pseudo_chroot, pseudo_passwd, PSEUDO_PASSWD_FALLBACK }, PSEUDO_PASSWD_FALLBACK ? 3 : 2)
-
- /* helper function to make a directory, just like mkdir -p.
- * Can't use system() because the child shell would end up trying
-diff --git a/pseudo_util.c b/pseudo_util.c
-index e4e1fc8..647d3ad 100644
---- a/pseudo_util.c
-+++ b/pseudo_util.c
-@@ -1264,7 +1264,7 @@ FILE *pseudo_host_etc_group_file = &pseudo_fake_group_file;
- #endif
-
- int
--pseudo_etc_file(const char *file, char *realname, int flags, char *search_dirs[], int dircount) {
-+pseudo_etc_file(const char *file, char *realname, int flags, const char **search_dirs, int dircount) {
- char filename[pseudo_path_max()];
- int rc = -1;
-
-@@ -1280,7 +1280,7 @@ pseudo_etc_file(const char *file, char *realname, int flags, char *search_dirs[]
- return -1;
- }
- for (i = 0; i < dircount; ++i) {
-- char *s = search_dirs[i];
-+ const char *s = search_dirs[i];
- if (!s)
- continue;
- #if PSEUDO_PORT_DARWIN
---
-1.8.5.5
-
diff --git a/meta/recipes-devtools/pseudo/pseudo-1.6.2/0003-pseudo_client.c-support-multiple-directories-in-PSEU.patch b/meta/recipes-devtools/pseudo/pseudo-1.6.2/0003-pseudo_client.c-support-multiple-directories-in-PSEU.patch
deleted file mode 100644
index e6c6284a24..0000000000
--- a/meta/recipes-devtools/pseudo/pseudo-1.6.2/0003-pseudo_client.c-support-multiple-directories-in-PSEU.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 09f04dc36f21c179235109b3dcddce9dda9a8ba8 Mon Sep 17 00:00:00 2001
-From: "Peter A. Bigot" <pab@pabigot.com>
-Date: Sun, 12 Oct 2014 12:17:48 -0500
-Subject: [PATCH 3/3] pseudo_client.c: support multiple directories in
- PSEUDO_PASSWD
-
-For OpenEmbedded it is highly unlikely that using the build host passwd
-file is the right approach. Most packages can be built with a pseudo
-that was configured --without-passwd-fallback, since
-PSEUDO_PASSWD=${STAGING_DIR_TARGET} suffices.
-
-This fails when building images, because image.bbclass (correctly)
-overrides to PSEUDO_PASSWD=${IMAGE_ROOTFS}. However, the rootfs
-/etc/passwd is not created until the post-install phase of base-passwd,
-which is long after a passwd file is required. For example, the smart
-RPM interface wants to look up uid 0 right away. The right solution
-here is to look first in ${IMAGE_ROOTFS}, then fallback to
-a location holding immutable files with the minimum user/group settings
-necessary to successfully get base-passwd onto the target.
-
-Rather than rework pseudo to change PSEUDO_PASSWD_FALLBACK to be a
-run-time rather than compile-time specification, rework the handling of
-PSEUDO_PASSWD so that it is a colon-separated list of directories that
-are processed in order.
-
-Upstream-Status: Pending
-Signed-off-by: Peter A. Bigot <pab@pabigot.com>
----
- pseudo_client.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 49 insertions(+), 1 deletion(-)
-
-diff --git a/pseudo_client.c b/pseudo_client.c
-index 7a4d7fa..b52b86a 100644
---- a/pseudo_client.c
-+++ b/pseudo_client.c
-@@ -75,6 +75,8 @@ int pseudo_umask = 022;
-
- static char **fd_paths = NULL;
- static int nfds = 0;
-+static const char **passwd_paths = NULL;
-+static int npasswd_paths = 0;
- static int messages = 0;
- static struct timeval message_time = { .tv_sec = 0 };
- static int pseudo_inited = 0;
-@@ -93,7 +95,7 @@ gid_t pseudo_egid;
- gid_t pseudo_sgid;
- gid_t pseudo_fgid;
-
--#define PSEUDO_ETC_FILE(filename, realname, flags) pseudo_etc_file(filename, realname, flags, (const char *[]) { pseudo_chroot, pseudo_passwd, PSEUDO_PASSWD_FALLBACK }, PSEUDO_PASSWD_FALLBACK ? 3 : 2)
-+#define PSEUDO_ETC_FILE(filename, realname, flags) pseudo_etc_file(filename, realname, flags, passwd_paths, npasswd_paths)
-
- /* helper function to make a directory, just like mkdir -p.
- * Can't use system() because the child shell would end up trying
-@@ -117,6 +119,42 @@ mkdir_p(char *path) {
- (void) mkdir(path, 0755);
- }
-
-+static int
-+build_passwd_paths(const char **paths)
-+{
-+ int np = 0;
-+
-+ if (pseudo_chroot) {
-+ if (paths) {
-+ paths[np] = pseudo_chroot;
-+ }
-+ ++np;
-+ }
-+ if (pseudo_passwd) {
-+ const char *cp = pseudo_passwd;
-+ const char *next = strchr(cp, ':');
-+ while (next) {
-+ if (paths) {
-+ paths[np] = strndup(cp, next-cp);
-+ }
-+ ++np;
-+ cp = next+1;
-+ next = strchr(cp, ':');
-+ }
-+ if (paths) {
-+ paths[np] = strdup(cp);
-+ }
-+ ++np;
-+ }
-+ if (PSEUDO_PASSWD_FALLBACK) {
-+ if (paths) {
-+ paths[np] = PSEUDO_PASSWD_FALLBACK;
-+ }
-+ ++np;
-+ }
-+ return np;
-+}
-+
- void
- pseudo_init_client(void) {
- char *env;
-@@ -329,6 +367,16 @@ pseudo_init_client(void) {
- }
- free(env);
-
-+ npasswd_paths = build_passwd_paths(NULL);
-+ if (npasswd_paths) {
-+ passwd_paths = malloc(npasswd_paths * sizeof(*passwd_paths));
-+ if (!passwd_paths) {
-+ pseudo_diag("couldn't allocate space for passwd paths.\n");
-+ exit(1);
-+ }
-+ build_passwd_paths(passwd_paths);
-+ }
-+
- pseudo_inited = 1;
- }
- if (!pseudo_disabled)
---
-1.8.5.5
-
diff --git a/meta/recipes-devtools/pseudo/pseudo_1.6.2.bb b/meta/recipes-devtools/pseudo/pseudo_1.6.4.bb
index 261c8d3abd..3d5b1fbd3e 100644
--- a/meta/recipes-devtools/pseudo/pseudo_1.6.2.bb
+++ b/meta/recipes-devtools/pseudo/pseudo_1.6.4.bb
@@ -2,15 +2,12 @@ require pseudo.inc
SRC_URI = " \
http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
- file://0001-pseudo_client.c-protect-pwd_lck-against-magic.patch \
- file://0002-pseudo_util-modify-interface-to-pseudo_etc_file.patch \
- file://0003-pseudo_client.c-support-multiple-directories-in-PSEU.patch \
file://fallback-passwd \
file://fallback-group \
"
-SRC_URI[md5sum] = "4d7b4f9d1b4aafa680ce94a5a9a52f1f"
-SRC_URI[sha256sum] = "c72be92689511ced7c419149c6aaa1b1a9e4dfc6409d1f16ab72cc35bc1e376a"
+SRC_URI[md5sum] = "2fb800c90d643bfce55e1ce5ca67f3b3"
+SRC_URI[sha256sum] = "25a7528f9191f74cceccc08a90c00086f2b3a9f6b900ea419a4f092de9a06775"
PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback"
diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb
index 8c6f06ab46..b505910fb5 100644
--- a/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -1,7 +1,7 @@
require pseudo.inc
-SRCREV = "0dc29e7c67f25d0978a7da5cd8965514912c5b36"
-PV = "1.6.2+git${SRCPV}"
+SRCREV = "41389d4279d6a5f694615906217f481605b183b7"
+PV = "1.6.4+git${SRCPV}"
DEFAULT_PREFERENCE = "-1"