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:
parent
a14d30f7de
commit
9df3cdf42d
|
@ -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);
|
|
|
@ -4,15 +4,15 @@ server shutdowns.
|
||||||
Upstream-Status: Pending
|
Upstream-Status: Pending
|
||||||
RP 2016/2/28
|
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
|
--- git.orig/pseudo_client.c
|
||||||
+++ pseudo-1.7.5/pseudo_client.c
|
+++ git/pseudo_client.c
|
||||||
@@ -1214,7 +1214,7 @@ pseudo_client_setup(void) {
|
@@ -1282,7 +1282,7 @@ pseudo_client_setup(void) {
|
||||||
return 1;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
-#define PSEUDO_RETRIES 50
|
-#define PSEUDO_RETRIES 20
|
||||||
+#define PSEUDO_RETRIES 250
|
+#define PSEUDO_RETRIES 250
|
||||||
static pseudo_msg_t *
|
static pseudo_msg_t *
|
||||||
pseudo_client_request(pseudo_msg_t *msg, size_t len, const char *path) {
|
pseudo_client_request(pseudo_msg_t *msg, size_t len, const char *path) {
|
||||||
|
|
|
@ -26,6 +26,8 @@ do_configure () {
|
||||||
NO32LIBS ??= "1"
|
NO32LIBS ??= "1"
|
||||||
NO32LIBS_class-nativesdk = "1"
|
NO32LIBS_class-nativesdk = "1"
|
||||||
|
|
||||||
|
PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback"
|
||||||
|
|
||||||
# Compile for the local machine arch...
|
# Compile for the local machine arch...
|
||||||
do_compile () {
|
do_compile () {
|
||||||
if [ "${SITEINFO_BITS}" = "64" ]; then
|
if [ "${SITEINFO_BITS}" = "64" ]; then
|
||||||
|
@ -112,10 +114,15 @@ do_install () {
|
||||||
oe_runmake 'DESTDIR=${D}' ${MAKEOPTS} 'LIB=lib/pseudo/lib$(MARK64)' install
|
oe_runmake 'DESTDIR=${D}' ${MAKEOPTS} 'LIB=lib/pseudo/lib$(MARK64)' install
|
||||||
}
|
}
|
||||||
|
|
||||||
# Two below are the same
|
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
|
# If necessary install for the alternative machine arch. This is only
|
||||||
# necessary in a native build.
|
# necessary in a native build.
|
||||||
do_install_append_class-native () {
|
|
||||||
maybe_make32
|
maybe_make32
|
||||||
if $make32; then
|
if $make32; then
|
||||||
mkdir -p ${D}${prefix}/lib/pseudo/lib
|
mkdir -p ${D}${prefix}/lib/pseudo/lib
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -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"
|
|
@ -1,11 +1,15 @@
|
||||||
require pseudo.inc
|
require pseudo.inc
|
||||||
|
|
||||||
SRCREV = "786c6d3813622d18e12d36c4aa722af6a417c8fa"
|
SRCREV = "eb47d855a831b6dc0ad34890e84b8f6f483693df"
|
||||||
PV = "1.7.5+git${SRCPV}"
|
PV = "1.8.1+git${SRCPV}"
|
||||||
|
|
||||||
DEFAULT_PREFERENCE = "-1"
|
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"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue