pseudo: Upgrade to 1.8.1

* Drop patches where the changes exist upstream
* Fetch from git as no tarball is available for 1.8.1
* Move common code to pseudo.inc
* Update patchset in git recipe

(From OE-Core rev: 0c36984d4c501d12fa91cf7371511641585cc256)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2016-07-05 13:18:31 +01:00
parent a14d30f7de
commit 9df3cdf42d
8 changed files with 34 additions and 206 deletions

View File

@ -1,36 +0,0 @@
From a24cf102967a4966bfabe36c3542fb65f35bf539 Mon Sep 17 00:00:00 2001
From: Peter Seebach <peter.seebach@windriver.com>
Date: Wed, 23 Mar 2016 11:55:25 -0500
Subject: actually handle remove_xattr correctly
The path is required but wasn't being extracted from the client's message,
resulting in xattr removal never working. This does not fully address some
deeper problems with the xattr implementation, but at least the common
removal case works.
Upstream-Status: Backport
Index: pseudo-1.7.5/ChangeLog.txt
===================================================================
--- pseudo-1.7.5.orig/ChangeLog.txt
+++ pseudo-1.7.5/ChangeLog.txt
@@ -1,3 +1,7 @@
+2016-03-22:
+ * (seebs) extract path from message for remove_xattr so it
+ actually works.
+
2016-02-09:
* (seebs) 1.7.5 release
Index: pseudo-1.7.5/pseudo.c
===================================================================
--- pseudo-1.7.5.orig/pseudo.c
+++ pseudo-1.7.5/pseudo.c
@@ -543,6 +543,7 @@ pseudo_op(pseudo_msg_t *msg, const char
case OP_GET_XATTR:
case OP_LIST_XATTR:
case OP_REPLACE_XATTR:
+ case OP_REMOVE_XATTR:
case OP_SET_XATTR:
/* In a rename there are two paths, null separated in msg->path */
initial_len = strlen(msg->path);

View File

@ -4,15 +4,15 @@ server shutdowns.
Upstream-Status: Pending
RP 2016/2/28
Index: pseudo-1.7.5/pseudo_client.c
Index: git/pseudo_client.c
===================================================================
--- pseudo-1.7.5.orig/pseudo_client.c
+++ pseudo-1.7.5/pseudo_client.c
@@ -1214,7 +1214,7 @@ pseudo_client_setup(void) {
return 1;
--- git.orig/pseudo_client.c
+++ git/pseudo_client.c
@@ -1282,7 +1282,7 @@ pseudo_client_setup(void) {
}
}
-#define PSEUDO_RETRIES 50
-#define PSEUDO_RETRIES 20
+#define PSEUDO_RETRIES 250
static pseudo_msg_t *
pseudo_client_request(pseudo_msg_t *msg, size_t len, const char *path) {

View File

@ -26,6 +26,8 @@ do_configure () {
NO32LIBS ??= "1"
NO32LIBS_class-nativesdk = "1"
PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback"
# Compile for the local machine arch...
do_compile () {
if [ "${SITEINFO_BITS}" = "64" ]; then
@ -112,10 +114,15 @@ do_install () {
oe_runmake 'DESTDIR=${D}' ${MAKEOPTS} 'LIB=lib/pseudo/lib$(MARK64)' install
}
# Two below are the same
# If necessary install for the alternative machine arch. This is only
# necessary in a native build.
do_install_append_class-native () {
install -d ${D}${sysconfdir}
# The fallback files should never be modified
install -m 444 ${WORKDIR}/fallback-passwd ${D}${sysconfdir}/passwd
install -m 444 ${WORKDIR}/fallback-group ${D}${sysconfdir}/group
# Two native/nativesdk entries below are the same
# If necessary install for the alternative machine arch. This is only
# necessary in a native build.
maybe_make32
if $make32; then
mkdir -p ${D}${prefix}/lib/pseudo/lib

View File

@ -1,50 +0,0 @@
From 0ace81a687355a3c55caa161b51972a82f5c413f Mon Sep 17 00:00:00 2001
From: Christopher Larson <chris_larson@mentor.com>
Date: Mon, 9 May 2016 17:00:57 -0700
Subject: [PATCH] Obey external LDFLAGS the way we obey CFLAGS
Upstream-Status: Backport
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
Makefile.in | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 6511814..22ef625 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -109,26 +109,26 @@ pseudo: $(PSEUDO)
$(PSEUDO): $(BIN) pseudo.o $(SHOBJS) $(DBOBJS) pseudo_client.o pseudo_server.o pseudo_ipc.o
$(CC) $(CFLAGS) $(CFLAGS_PSEUDO) -o $(PSEUDO) \
pseudo.o pseudo_server.o pseudo_client.o pseudo_ipc.o \
- $(DBOBJS) $(SHOBJS) $(DB_LDFLAGS) $(CLIENT_LDFLAGS)
+ $(DBOBJS) $(SHOBJS) $(LDFLAGS) $(DB_LDFLAGS) $(CLIENT_LDFLAGS)
pseudolog: $(PSEUDOLOG)
$(PSEUDOLOG): $(BIN) pseudolog.o $(SHOBJS) $(DBOBJS) pseudo_client.o pseudo_ipc.o
$(CC) $(CFLAGS) $(CFLAGS_PSEUDO) -o $(PSEUDOLOG) pseudolog.o pseudo_client.o pseudo_ipc.o \
- $(DBOBJS) $(SHOBJS) $(DB_LDFLAGS) $(CLIENT_LDFLAGS)
+ $(DBOBJS) $(SHOBJS) $(LDFLAGS) $(DB_LDFLAGS) $(CLIENT_LDFLAGS)
pseudodb: $(PSEUDODB)
$(PSEUDODB): $(BIN) pseudodb.o $(SHOBJS) $(DBOBJS) pseudo_ipc.o
$(CC) $(CFLAGS) $(CFLAGS_PSEUDO) -o $(PSEUDODB) pseudodb.o \
- $(DBOBJS) $(SHOBJS) pseudo_ipc.o $(DB_LDFLAGS) $(CLIENT_LDFLAGS)
+ $(DBOBJS) $(SHOBJS) pseudo_ipc.o $(LDFLAGS) $(DB_LDFLAGS) $(CLIENT_LDFLAGS)
libpseudo: $(LIBPSEUDO)
$(LIBPSEUDO): $(LIB) $(WRAPOBJS) pseudo_client.o pseudo_ipc.o $(SHOBJS)
$(CC) $(CFLAGS) $(CFLAGS_PSEUDO) -shared -o $(LIBPSEUDO) \
pseudo_client.o pseudo_ipc.o \
- $(WRAPOBJS) $(SHOBJS) $(CLIENT_LDFLAGS)
+ $(WRAPOBJS) $(SHOBJS) $(LDFLAGS) $(CLIENT_LDFLAGS)
# *everything* now relies on stuff that's generated in the
# wrapper process.
--
2.8.0

View File

@ -1,85 +0,0 @@
We started seeing:
No real function for mknod: /home/paul/poky_sdk/tmp/sysroots/x86_64-
linux/usr/bin/../lib/pseudo/lib64/libpseudo.so: undefined symbol: mknod
No real function for mknodat: /home/paul/poky_sdk/tmp/sysroots/x86_64-
linux/usr/bin/../lib/pseudo/lib64/libpseudo.so: undefined symbol: mknodat
In glibc 2.24 they've merged:
https://sourceware.org/git/?p=glibc.git;a=commit;h=7d45c163d00c88d5875a112343c4ea3e61349e6b
related to bugzilla entry:
https://sourceware.org/bugzilla/show_bug.cgi?id=19509
which means that the behaviour of RTLD_NEXT is slightly different.
As far as I can tell, mknod has not been present in glibc for a while.
To quote stat.h:
/* To allow the `struct stat' structure and the file type `mode_t'
bits to vary without changing shared library major version number,
the `stat' family of functions and `mknod' are in fact inline
wrappers around calls to `xstat', `fxstat', `lxstat', and `xmknod',
which all take a leading version-number argument designating the
data structure and bits used. <bits/stat.h> defines _STAT_VER with
the version number corresponding to `struct stat' as defined in
that file; and _MKNOD_VER with the version number corresponding to
the S_IF* macros defined therein. It is arranged that when not
inlined these function are always statically linked; that way a
dynamically-linked executable always encodes the version number
corresponding to the data structures it uses, so the `x' functions
in the shared library can adapt without needing to recompile all
callers. */
so I suspect mknod has not existed for a while, if ever and what we
were finding, who knows. Everying in the system links against _xmknod
which we have a separate wrapper for.
Anyhow, ignoring that problem which hasn't caused a issue in the past,
the RTLD_NEXT change causes messages to be printed to stdout which causes
carnage if for example the packaging code is expecting a list of packages:
WARNING: core-image-minimal-1.0-r0 do_rootfs: No not found in the base feeds (qemux86_64 core2-64 x86_64 noarch any all).
WARNING: core-image-minimal-1.0-r0 do_rootfs: real not found in the base feeds (qemux86_64 core2-64 x86_64 noarch any all).
WARNING: core-image-minimal-1.0-r0 do_rootfs: function not found in the base feeds (qemux86_64 core2-64 x86_64 noarch any all).
WARNING: core-image-minimal-1.0-r0 do_rootfs: for not found in the base feeds (qemux86_64 core2-64 x86_64 noarch any all).
WARNING: core-image-minimal-1.0-r0 do_rootfs: mknod: not found in the base feeds (qemux86_64 core2-64 x86_64 noarch any all).
[etc]
This bug will affect:
* any distro using glibc 2.24
* any system using a uninative tarball for glibc 2.24
* any system which took a backport for the fix which was merged into
the 2.23 branch for a while before it was reverted (Fedora 23 had this)
The easiest thing to do is to ignore the problem and disable the diag
message which masks the problem with no ill effects.
As Peter notes, there are a few issues here:
* the fact there is no mknod symbol
* the fact an error here isn't fatal
* the #ifdef/#else looks suspect
* handle RTLD_NEXT chaining properly (need more libs?)
which he'll work on upstream and hopefully have fixed in a new version.
Upstream-Status: Submitted [Peter is aware of the issue]
RP 2016/5/18
Index: pseudo-1.7.5/pseudo_wrappers.c
===================================================================
--- pseudo-1.7.5.orig/pseudo_wrappers.c
+++ pseudo-1.7.5/pseudo_wrappers.c
@@ -146,9 +146,9 @@ pseudo_init_one_wrapper(pseudo_function
return;
}
#else
- if (e != NULL) {
+ /*if (e != NULL) {
pseudo_diag("No real function for %s: %s\n", func->name, e);
- }
+ }*/
#endif
}
}

View File

@ -1,23 +0,0 @@
require pseudo.inc
SRC_URI = "http://downloads.yoctoproject.org/releases/pseudo/${BPN}-${PV}.tar.bz2 \
file://0001-configure-Prune-PIE-flags.patch \
file://fallback-passwd \
file://fallback-group \
file://moreretries.patch \
file://handle-remove-xattr.patch \
file://obey-ldflags.patch \
file://pseudo-glibc-rtld-next-workaround.patch \
"
SRC_URI[md5sum] = "c10209938f03128d0c193f041ff3596d"
SRC_URI[sha256sum] = "fd89cadec984d3b8202aca465898b1bb4350e0d63ba9aa9ac899f6f50270e688"
PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback"
do_install_append_class-native () {
install -d ${D}${sysconfdir}
# The fallback files should never be modified
install -m 444 ${WORKDIR}/fallback-passwd ${D}${sysconfdir}/passwd
install -m 444 ${WORKDIR}/fallback-group ${D}${sysconfdir}/group
}

View File

@ -0,0 +1,11 @@
require pseudo.inc
SRC_URI = "http://downloads.yoctoproject.org/releases/pseudo/${BPN}-${PV}.tar.bz2 \
file://0001-configure-Prune-PIE-flags.patch \
file://fallback-passwd \
file://fallback-group \
file://moreretries.patch \
"
SRC_URI[md5sum] = "ee38e4fb62ff88ad067b1a5a3825bac7"
SRC_URI[sha256sum] = "dac4ad2d21228053151121320f629d41dd5c0c87695ac4e7aea286c414192ab5"

View File

@ -1,11 +1,15 @@
require pseudo.inc
SRCREV = "786c6d3813622d18e12d36c4aa722af6a417c8fa"
PV = "1.7.5+git${SRCPV}"
SRCREV = "eb47d855a831b6dc0ad34890e84b8f6f483693df"
PV = "1.8.1+git${SRCPV}"
DEFAULT_PREFERENCE = "-1"
SRC_URI = "git://git.yoctoproject.org/pseudo"
SRC_URI = "git://git.yoctoproject.org/pseudo \
file://0001-configure-Prune-PIE-flags.patch \
file://fallback-passwd \
file://fallback-group \
file://moreretries.patch"
S = "${WORKDIR}/git"