Skip to contentSkip to conversation

Pseudo upgrade

PATCH New Joshua Lock 1 participant 3 messages Jul 5, 2016

lore
Share & tools
lore
#0 lore raw

cover Pseudo upgrade

This series upgrades pseudo to the latest master branch and includes an additional patch to fix some issues observed in pseudo_db.c

We hope to resolve [YOCTO #9112] and [YOCTO #9317] with this series.

Regards,

Joshua

The following changes since commit 53fcfe4348a2ca727844f2b0bd3fca2902cbdda0:

lib/oeqa: add Galculator to SDK and runtime tests (2016-07-01 16:08:54 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib joshuagl/pseudo
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=joshuagl/pseudo

Joshua Lock (2):
pseudo: drop recipe for old 1.6.7 version
pseudo: upgrade to 1.8.0

 meta/recipes-devtools/pseudo/files/db-fixes.patch  | 49 +++++++++++++
 .../pseudo/files/handle-remove-xattr.patch         | 36 ---------
 .../pseudo/files/moreretries.patch                 | 12 +--
 .../pseudo/pseudo/obey-ldflags.patch               | 50 -------------
 .../pseudo/pseudo-glibc-rtld-next-workaround.patch | 85 ----------------------
 meta/recipes-devtools/pseudo/pseudo_1.6.7.bb       | 19 -----
 meta/recipes-devtools/pseudo/pseudo_1.7.5.bb       | 23 ------
 meta/recipes-devtools/pseudo/pseudo_1.8.0.bb       | 19 +++++
 8 files changed, 74 insertions(+), 219 deletions(-)
 create mode 100644 meta/recipes-devtools/pseudo/files/db-fixes.patch
 delete mode 100644 meta/recipes-devtools/pseudo/files/handle-remove-xattr.patch
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo/obey-ldflags.patch
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo/pseudo-glibc-rtld-next-workaround.patch
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo_1.6.7.bb
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo_1.7.5.bb
 create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.8.0.bb
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/2 pseudo: drop recipe for old 1.6.7 version

---
 meta/recipes-devtools/pseudo/pseudo_1.6.7.bb | 19 -------------------
 1 file changed, 19 deletions(-)
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo_1.6.7.bb
meta/recipes-devtools/pseudo/pseudo_1.6.7.bb deleted +0 -19
deleted file mode 100644
index b8c20ad..0000000
@@ -1,19 +0,0 @@
-require pseudo.inc
-
-SRC_URI = " \
-    http://downloads.yoctoproject.org/releases/pseudo/${BPN}-${PV}.tar.bz2 \
-    file://fallback-passwd \
-    file://fallback-group \
-"
-
-SRC_URI[md5sum] = "4cd39502f9bd0e734dee80e08b28a5f1"
-SRC_URI[sha256sum] = "9f2caca5f1579a376a509cd81a81156fc208650add9f0af275da9e911f18f291"
-
-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
-}
Signature · 1 line
2.7.4
#2 lore raw

PATCH 2/2 pseudo: upgrade to 1.8.0

In reply to Joshua Lock

* drop patches where the changes exist upstream
* fetch from git as no tarball is available for 1.8.0
* mark ports/unix/subports as executable, otherwise makewrappers fails with "OSError: [Errno 13] Permission denied"
* add a patch to resolve some errors in pseudo_db.c

---
 meta/recipes-devtools/pseudo/files/db-fixes.patch  | 49 +++++++++++++
 .../pseudo/files/handle-remove-xattr.patch         | 36 ---------
 .../pseudo/files/moreretries.patch                 | 12 +--
 .../pseudo/pseudo/obey-ldflags.patch               | 50 -------------
 .../pseudo/pseudo-glibc-rtld-next-workaround.patch | 85 ----------------------
 meta/recipes-devtools/pseudo/pseudo_1.7.5.bb       | 23 ------
 meta/recipes-devtools/pseudo/pseudo_1.8.0.bb       | 19 +++++
 7 files changed, 74 insertions(+), 200 deletions(-)
 create mode 100644 meta/recipes-devtools/pseudo/files/db-fixes.patch
 delete mode 100644 meta/recipes-devtools/pseudo/files/handle-remove-xattr.patch
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo/obey-ldflags.patch
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo/pseudo-glibc-rtld-next-workaround.patch
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo_1.7.5.bb
 create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.8.0.bb
meta/recipes-devtools/pseudo/files/db-fixes.patch new file +49 -0
new file mode 100644
index 0000000..3401925
@@ -0,0 +1,49 @@
+Remove a stray comma in an SQL statement -- thanks to Ross for spotting this.
+
+We were seeing strange issues where the ownership of files installed under
+pseudo was not root:root as expected. Richard tracked this down to the
+pdb_check_xattrs() function and I noticed the scan sqlite3_stmt in there is
+declared static.
+
+The sqlite3_finalize() call looked out of place and the docs state:
+" It is a grievous error for the application to try to use a prepared statement
+after it has been finalized."
+but don't make it clear what state the sqlite3_stmt is in after the call to
+sqlite3_finalize() -- as the bindings are cleared and the prepared statement
+is reset I couldn't see a good reason to leave the finalise call in when other
+areas of the code don't do so and suspected it may result in the statement not
+being re-prepared on future invocations.
+
+With these lines removed we're no longer seeing ownership errors in OE-Core
+builds.
+
+Thanks to Richard for tracking down the function causing the weirdness we
+were seeing.
+
+Upstream-status: Pending
+Signed-off-by: Joshua Lock <[email protected]>
+
+Index: git/pseudo_db.c
+===================================================================
+--- git.orig/pseudo_db.c
++++ git/pseudo_db.c
+@@ -135,7 +135,7 @@ static struct sql_table {
+ 	    "gid INTEGER, "
+ 	    "access INTEGER, "
+ 	    "program VARCHAR, "
+-	    "type INTEGER, "
++	    "type INTEGER"
+ 	    ,
+ 	  NULL,
+ 	  NULL },
+@@ -1595,10 +1595,6 @@ pdb_check_xattrs(pseudo_msg_t *msg) {
+ 	if (rc != SQLITE_DONE) {
+ 		dberr(file_db, "not done after the single row we expected?", rc);
+ 	}
+-	rc = sqlite3_finalize(scan);
+-	if (rc) {
+-		dberr(file_db, "couldn't finalize existing file");
+-	}
+ 	sqlite3_reset(scan);
+ 	sqlite3_clear_bindings(scan);
+ 
meta/recipes-devtools/pseudo/files/handle-remove-xattr.patch deleted +0 -36
deleted file mode 100644
index 8b7f30c..0000000
@@ -1,36 +0,0 @@
-From a24cf102967a4966bfabe36c3542fb65f35bf539 Mon Sep 17 00:00:00 2001
-From: Peter Seebach <[email protected]>
-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);
meta/recipes-devtools/pseudo/files/moreretries.patch +6 -6
index c1e5552..adea266 100644
@@ -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) {
meta/recipes-devtools/pseudo/pseudo/obey-ldflags.patch deleted +0 -50

50 lines not on this page · raw message

meta/recipes-devtools/pseudo/pseudo/pseudo-glibc-rtld-next-workaround.patch deleted +0 -85

85 lines not on this page · raw message

meta/recipes-devtools/pseudo/pseudo_1.7.5.bb deleted +0 -23
deleted file mode 100644
index d4f1e36..0000000
@@ -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
-}
meta/recipes-devtools/pseudo/pseudo_1.8.0.bb new file +19 -0
new file mode 100644
index 0000000..9142e6f
@@ -0,0 +1,19 @@
+require pseudo.inc
+
+SRCREV = "99eefa567400e894ec1f623ea1628700f1642b5c"
+PV = "1.8.0+git${SRCPV}"
+
+SRC_URI = "git://git.yoctoproject.org/pseudo \
+           file://0001-configure-Prune-PIE-flags.patch \
+           file://fallback-passwd \
+           file://fallback-group \
+           file://moreretries.patch \
+           file://db-fixes.patch \
+           "
+
+S = "${WORKDIR}/git"
+
+do_configure_append () {
+    chmod +x ${S}/ports/unix/subports
+}
+
Signature · 1 line
2.7.4