From ad0ac0ecd38fc77daf42485489fccc10a5e1e3e7 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Wed, 21 Jul 2010 06:15:53 -0700 Subject: pseudo: Uprev to the latest git version Uprev pseudo to the latest head version to resolve a number of issues on older hosts such as RHEL 5. In addition sqlite was changed to link statically into pseudo to avoid a potential LD_LIBRARY_PATH issue. Signed-off-by: Mark Hatle --- .../conf/distro/include/poky-default-revisions.inc | 4 +- meta/packages/pseudo/pseudo/ld_sacredness.patch | 120 +++++++++++---------- meta/packages/pseudo/pseudo/make_parallel.patch | 14 +++ meta/packages/pseudo/pseudo/path-munge.patch | 82 +++++++------- meta/packages/pseudo/pseudo/static_sqlite.patch | 15 +++ meta/packages/pseudo/pseudo/tweakflags.patch | 21 ++-- meta/packages/pseudo/pseudo_git.bb | 6 +- 7 files changed, 149 insertions(+), 113 deletions(-) create mode 100644 meta/packages/pseudo/pseudo/make_parallel.patch create mode 100644 meta/packages/pseudo/pseudo/static_sqlite.patch (limited to 'meta') diff --git a/meta/conf/distro/include/poky-default-revisions.inc b/meta/conf/distro/include/poky-default-revisions.inc index 02033bed8..1f52eedb5 100644 --- a/meta/conf/distro/include/poky-default-revisions.inc +++ b/meta/conf/distro/include/poky-default-revisions.inc @@ -108,8 +108,8 @@ SRCREV_pn-osc-native ??= "9096" SRCREV_pn-owl-video ??= "394" SRCREV_pn-pkgconfig ??= "66d49f1375fec838bcd301bb4ca2ef76cee0e47c" SRCREV_pn-psplash ??= "424" -SRCREV_pn-pseudo ??= "086e65c90420b3d38f30c3cd81a0f8573f6f69cf" -SRCREV_pn-pseudo-native ??= "086e65c90420b3d38f30c3cd81a0f8573f6f69cf" +SRCREV_pn-pseudo ??= "973e40da8e5abb080cc0b9c9eaff4d84dea5b42c" +SRCREV_pn-pseudo-native ??= "973e40da8e5abb080cc0b9c9eaff4d84dea5b42c" QEMUSRCREV ??= "72bb3c7571226af13cfe9eec020a56add3d30a70" SRCREV_pn-qemu-native ??= "${QEMUSRCREV}" SRCREV_pn-qemu-nativesdk ??= "${QEMUSRCREV}" diff --git a/meta/packages/pseudo/pseudo/ld_sacredness.patch b/meta/packages/pseudo/pseudo/ld_sacredness.patch index 55a39d99b..568c899d7 100644 --- a/meta/packages/pseudo/pseudo/ld_sacredness.patch +++ b/meta/packages/pseudo/pseudo/ld_sacredness.patch @@ -7,62 +7,70 @@ dyanmic linker can figure out anything else with rpaths. Inspired by RP's patch of a similar intent for fakeroot JL 15/07/10 +(updated 20/7/2010 - MGH) -Index: git/pseudo_util.c -=================================================================== ---- git.orig/pseudo_util.c 2010-03-25 17:57:24.000000000 +0000 -+++ git/pseudo_util.c 2010-07-15 16:13:09.431459640 +0100 -@@ -362,40 +362,25 @@ +--- git.orig/pseudo_util.c 2010-07-20 15:34:41.000000000 -0700 ++++ git/pseudo_util.c 2010-07-20 16:00:35.000000000 -0700 +diff -ur git.orig/pseudo_util.c git/pseudo_util.c +--- git.orig/pseudo_util.c 2010-07-20 17:02:13.000000000 -0700 ++++ git/pseudo_util.c 2010-07-20 17:03:26.000000000 -0700 +@@ -65,7 +65,7 @@ + * the end of the string or a space after it. */ - void - pseudo_setupenv(char *opts) { -- char *ld_env; - char *newenv; - size_t len; - char debugvalue[64]; + static char *libpseudo_name = "libpseudo.so"; +-static char *libpseudo_pattern = "(=| )libpseudo[^ ]*\\.so($| )"; ++static char *libpseudo_pattern = "(=| )[^ ]*libpseudo[^ ]*\\.so($| )"; + static regex_t libpseudo_regex; + static int libpseudo_regex_compiled = 0; -- newenv = "libpseudo.so"; -+ /* need to set LD_PRELOAD to the absolute library path, as tweaking -+ * LD_LIBRARY_PATH makes the Beaver sad. -+ * Fortunately we can hack this as we know we don't use lib64 :-) -+ */ -+ -+ char *libname = "libpseudo.so"; -+ char *prefix = pseudo_prefix_path("lib"); -+ len = strlen(prefix) + strlen(libname) + 2; -+ newenv = malloc(len); -+ -+ snprintf(newenv, len, "%s/%s", prefix, libname); -+ - setenv("LD_PRELOAD", newenv, 1); - -- ld_env = getenv("LD_LIBRARY_PATH"); -- if (ld_env) { -- char *prefix = pseudo_prefix_path(NULL); -- if (!strstr(ld_env, prefix)) { -- char *e1, *e2; -- e1 = pseudo_prefix_path("lib"); -- e2 = pseudo_prefix_path("lib64"); -- len = strlen(ld_env) + strlen(e1) + strlen(e2) + 3; -- newenv = malloc(len); -- snprintf(newenv, len, "%s:%s:%s", ld_env, e1, e2); -- free(e1); -- free(e2); -- setenv("LD_LIBRARY_PATH", newenv, 1); -- free(newenv); -- } -- free(prefix); -- } else { -- char *e1, *e2; -- e1 = pseudo_prefix_path("lib"); -- e2 = pseudo_prefix_path("lib64"); -- len = strlen(e1) + strlen(e2) + 2; -- newenv = malloc(len); -- snprintf(newenv, len, "%s:%s", e1, e2); -- setenv("LD_LIBRARY_PATH", newenv, 1); -- free(newenv); -- } -+ free(newenv); - - if (max_debug_level) { - sprintf(debugvalue, "%d", max_debug_level); +@@ -499,8 +499,10 @@ + found_opts = 1; + if (!memcmp(environ[i], "PSEUDO_DEBUG=", 13)) + found_debug = 1; ++#if 0 + if (!memcmp(environ[i], "LD_LIBRARY_PATH=", 16)) + found_libpath = 1; ++#endif + ++env_count; + } + env_count += 4 - (found_preload + found_libpath + found_debug + found_opts); +@@ -520,6 +522,7 @@ + return NULL; + } + new_environ[j++] = newenv; ++#if 0 + } else if (!memcmp(environ[i], "LD_LIBRARY_PATH=", 16)) { + if (!strstr(environ[i], PSEUDO_PREFIX)) { + char *e1, *e2; +@@ -537,10 +540,12 @@ + } else { + new_environ[j++] = environ[i]; + } ++#endif + } else { + new_environ[j++] = environ[i]; + } + } ++#if 0 + if (!found_libpath) { + char *e1, *e2; + e1 = pseudo_prefix_path("lib"); +@@ -553,8 +558,18 @@ + snprintf(newenv, len, "LD_LIBRARY_PATH=%s:%s", e1, e2); + new_environ[j++] = newenv; + } ++#endif + if (!found_preload) { ++#if 0 + new_environ[j++] = "LD_PRELOAD=libpseudo.so"; ++#else ++ char *libname = "libpseudo.so"; ++ char *prefix = pseudo_prefix_path("lib"); ++ len = 11 + strlen(prefix) + strlen(libname) + 2; ++ newenv = malloc(len); ++ snprintf(newenv, len, "LD_PRELOAD=%s/%s", prefix, libname); ++ new_environ[j++] = newenv; ++#endif + } + if (!found_debug && max_debug_level > 0) { + len = 16; diff --git a/meta/packages/pseudo/pseudo/make_parallel.patch b/meta/packages/pseudo/pseudo/make_parallel.patch new file mode 100644 index 000000000..697b576f7 --- /dev/null +++ b/meta/packages/pseudo/pseudo/make_parallel.patch @@ -0,0 +1,14 @@ +Add a missing dependency to fix a problem with building pseudo in a +parallel build. + +--- git.orig/Makefile.in 2010-07-20 16:15:30.000000000 -0700 ++++ git/Makefile.in 2010-07-20 16:15:58.000000000 -0700 +@@ -105,7 +105,7 @@ + + .SECONDARY: wrappers + +-pseudo_wrapfuncs.c: wrappers ++pseudo_wrapfuncs.c pseudo_wrapfuncs.h: wrappers + + # no-strict-aliasing is needed for the function pointer trickery. + pseudo_wrappers.o: $(GUTS) pseudo_wrappers.c pseudo_wrapfuncs.c pseudo_wrapfuncs.h diff --git a/meta/packages/pseudo/pseudo/path-munge.patch b/meta/packages/pseudo/pseudo/path-munge.patch index 2327f2e5a..2ccdea17e 100644 --- a/meta/packages/pseudo/pseudo/path-munge.patch +++ b/meta/packages/pseudo/pseudo/path-munge.patch @@ -3,11 +3,11 @@ $(localstatedir) so this quick hack makes pseudo use a data directory specified with --data, and defaults to pseudo's way if it's not set. JL 14/07/10 +(updated 20/7/2010 - MGH) -Index: git/Makefile.in -=================================================================== ---- git.orig/Makefile.in 2010-07-14 16:50:45.772094105 +0100 -+++ git/Makefile.in 2010-07-14 16:50:45.897400059 +0100 +diff -urN git.orig/Makefile.in git/Makefile.in +--- git.orig/Makefile.in 2010-07-20 15:47:46.000000000 -0700 ++++ git/Makefile.in 2010-07-20 15:43:31.000000000 -0700 @@ -20,6 +20,7 @@ # configuration flags PREFIX=@PREFIX@ @@ -26,17 +26,16 @@ Index: git/Makefile.in +DATADIR=$(DATA)/pseudo +endif - CFLAGS_BASE=-pipe -std=gnu99 -Wall + CFLAGS_BASE=-pipe -std=gnu99 -Wall -W -Wextra CFLAGS_CODE=-fPIC -D_LARGEFILE64_SOURCE -D_ATFILE_SOURCE -m$(BITS) -CFLAGS_DEFS=-DPSEUDO_PREFIX='"$(PREFIX)"' -DPSEUDO_SUFFIX='"$(SUFFIX)"' -DPSEUDO_VERSION='"$(VERSION)"' +CFLAGS_DEFS=-DPSEUDO_PREFIX='"$(PREFIX)"' -DPSEUDO_SUFFIX='"$(SUFFIX)"' -DPSEUDO_VERSION='"$(VERSION)"' -DPSEUDO_DATA='"$(DATADIR)"' CFLAGS_DEBUG=-O2 -g CFLAGS_SQL=-L$(SQLITE)/lib -I$(SQLITE)/include EXTRA_CFLAGS=$(CFLAGS_BASE) $(CFLAGS_CODE) $(CFLAGS_DEFS) \ -Index: git/configure -=================================================================== ---- git.orig/configure 2010-03-25 17:57:24.000000000 +0000 -+++ git/configure 2010-07-14 16:50:45.897400059 +0100 +diff -urN git.orig/configure git/configure +--- git.orig/configure 2010-07-20 15:34:41.000000000 -0700 ++++ git/configure 2010-07-20 15:42:23.000000000 -0700 @@ -20,13 +20,14 @@ # not a real configure script... opt_prefix= @@ -71,11 +70,10 @@ Index: git/configure s,@SQLITE@,'"$opt_sqlite"',g s,@MARK64@,'"$opt_mark64"',g s,@BITS@,'"$opt_bits"',g -Index: git/pseudo.c -=================================================================== ---- git.orig/pseudo.c 2010-03-25 17:57:24.000000000 +0000 -+++ git/pseudo.c 2010-07-14 16:50:45.898400595 +0100 -@@ -191,7 +191,7 @@ +diff -urN git.orig/pseudo.c git/pseudo.c +--- git.orig/pseudo.c 2010-07-20 15:34:41.000000000 -0700 ++++ git/pseudo.c 2010-07-20 15:42:23.000000000 -0700 +@@ -272,7 +272,7 @@ pseudo_new_pid(); pseudo_debug(3, "opening lock.\n"); @@ -83,12 +81,11 @@ Index: git/pseudo.c + lockname = strdup(PSEUDO_LOCKFILE); if (!lockname) { pseudo_diag("Couldn't allocate a file path.\n"); - exit(1); -Index: git/pseudo.h -=================================================================== ---- git.orig/pseudo.h 2010-03-25 17:57:24.000000000 +0000 -+++ git/pseudo.h 2010-07-14 16:50:45.899360463 +0100 -@@ -121,8 +121,7 @@ + exit(EXIT_FAILURE); +diff -urN git.orig/pseudo.h git/pseudo.h +--- git.orig/pseudo.h 2010-07-20 15:34:41.000000000 -0700 ++++ git/pseudo.h 2010-07-20 15:44:31.000000000 -0700 +@@ -134,11 +134,10 @@ extern char *pseudo_version; @@ -101,11 +98,13 @@ Index: git/pseudo.h +#define PSEUDO_LOGFILE PSEUDO_DATA "/pseudo.log" +#define PSEUDO_PIDFILE PSEUDO_DATA "/pseudo.pid" +#define PSEUDO_SOCKET PSEUDO_DATA "/pseudo.socket" -Index: git/pseudo_db.c -=================================================================== ---- git.orig/pseudo_db.c 2010-03-25 17:57:24.000000000 +0000 -+++ git/pseudo_db.c 2010-07-14 16:51:07.506464213 +0100 -@@ -458,11 +458,11 @@ + + /* some systems might not have *at(). We like to define operations in + * terms of each other, and for instance, open(...) is the same as +diff -urN git.orig/pseudo_db.c git/pseudo_db.c +--- git.orig/pseudo_db.c 2010-07-20 15:34:41.000000000 -0700 ++++ git/pseudo_db.c 2010-07-20 15:42:23.000000000 -0700 +@@ -471,11 +471,11 @@ if (*db) return 0; if (db == &file_db) { @@ -119,11 +118,10 @@ Index: git/pseudo_db.c rc = sqlite3_open(dbfile, db); free(dbfile); } -Index: git/pseudo_server.c -=================================================================== ---- git.orig/pseudo_server.c 2010-03-25 17:57:24.000000000 +0000 -+++ git/pseudo_server.c 2010-07-14 16:50:45.901462874 +0100 -@@ -101,9 +101,9 @@ +diff -urN git.orig/pseudo_server.c git/pseudo_server.c +--- git.orig/pseudo_server.c 2010-07-20 15:34:41.000000000 -0700 ++++ git/pseudo_server.c 2010-07-20 15:46:09.000000000 -0700 +@@ -107,9 +107,9 @@ } /* cd to the data directory */ @@ -135,7 +133,7 @@ Index: git/pseudo_server.c return 1; } if (chdir(pseudo_path) == -1) { -@@ -132,9 +132,9 @@ +@@ -138,9 +138,9 @@ return 0; } setsid(); @@ -147,15 +145,15 @@ Index: git/pseudo_server.c return 1; } fp = fopen(pseudo_path, "w"); -@@ -152,9 +152,9 @@ - pseudo_new_pid(); - fclose(stdin); - fclose(stdout); -- pseudo_path = pseudo_prefix_path(PSEUDO_LOGFILE); -+ pseudo_path = strdup(PSEUDO_LOGFILE); - if (!pseudo_path) { -- pseudo_diag("can't get path for prefix/%s\n", PSEUDO_LOGFILE); -+ pseudo_diag("can't get path for %s\n", PSEUDO_LOGFILE); - return 1; +diff -ur git.orig/pseudo_util.c git/pseudo_util.c +--- git.orig/pseudo_util.c 2010-07-20 17:06:22.000000000 -0700 ++++ git/pseudo_util.c 2010-07-20 17:10:50.000000000 -0700 +@@ -855,7 +855,7 @@ + pseudo_debug(3, "no special log file requested, using stderr.\n"); + return -1; } - fd = open(pseudo_path, O_WRONLY | O_APPEND | O_CREAT, 0644); +- pseudo_path = pseudo_prefix_path(defname); ++ pseudo_path = strdup(defname); + if (!pseudo_path) { + pseudo_diag("can't get path for prefix/%s\n", PSEUDO_LOGFILE); + return -1; diff --git a/meta/packages/pseudo/pseudo/static_sqlite.patch b/meta/packages/pseudo/pseudo/static_sqlite.patch new file mode 100644 index 000000000..0a2fa28d7 --- /dev/null +++ b/meta/packages/pseudo/pseudo/static_sqlite.patch @@ -0,0 +1,15 @@ +Due to disabling the LD_LIBRARY_PATH handling, we need to use a static +libsqlite. + +diff -ur git.orig/Makefile.in git/Makefile.in +--- git.orig/Makefile.in 2010-07-20 17:13:56.000000000 -0700 ++++ git/Makefile.in 2010-07-20 17:12:14.000000000 -0700 +@@ -45,7 +45,7 @@ + GLOB_PATTERN=guts/*.c + GUTS=$(filter-out "$(GLOB_PATTERN)",$(wildcard $(GLOB_PATTERN))) + +-DBLDFLAGS=-lsqlite3 ++DBLDFLAGS=$(SQLITE)/lib/libsqlite3.a + USE_64=wrapfuncs64.in + + SHOBJS=pseudo_table.o pseudo_util.o diff --git a/meta/packages/pseudo/pseudo/tweakflags.patch b/meta/packages/pseudo/pseudo/tweakflags.patch index 65656f137..a7458f5f4 100644 --- a/meta/packages/pseudo/pseudo/tweakflags.patch +++ b/meta/packages/pseudo/pseudo/tweakflags.patch @@ -6,14 +6,13 @@ until "make install" time when DESTDIR is set. Change the first target to "all" for this reason. RP 18/3/10 +(updated 20/7/2010 - MGH) -Index: git/Makefile.in -=================================================================== ---- git.orig/Makefile.in 2010-03-17 16:05:17.000000000 +0000 -+++ git/Makefile.in 2010-04-06 15:25:39.000000000 +0100 +--- git.orig/Makefile.in 2010-07-20 15:34:41.000000000 -0700 ++++ git/Makefile.in 2010-07-20 15:40:42.000000000 -0700 @@ -25,7 +25,7 @@ MARK64=@MARK64@ - VERSION=0.2 + VERSION=0.3 -LIBDIR=$(PREFIX)/lib$(MARK64) +LIBDIR=$(PREFIX)/lib @@ -46,15 +45,15 @@ Index: git/Makefile.in @@ -66,26 +66,29 @@ install: all install-lib install-bin install-data - pseudo: pseudo.o $(SHOBJS) $(DBOBJS) pseudo_server.o pseudo_ipc.o + pseudo: pseudo.o $(SHOBJS) $(DBOBJS) pseudo_client.o pseudo_server.o pseudo_ipc.o - $(CC) $(CFLAGS) -o pseudo \ + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o pseudo \ pseudo.o pseudo_server.o pseudo_client.o pseudo_ipc.o \ $(DBOBJS) $(SHOBJS) $(DBLDFLAGS) - pseudolog: pseudolog.o $(SHOBJS) $(DBOBJS) -- $(CC) $(CFLAGS) -o pseudolog pseudolog.o \ -+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o pseudolog pseudolog.o \ + pseudolog: pseudolog.o $(SHOBJS) $(DBOBJS) pseudo_client.o pseudo_ipc.o +- $(CC) $(CFLAGS) -o pseudolog pseudolog.o pseudo_client.o pseudo_ipc.o \ ++ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o pseudolog pseudolog.o pseudo_client.o pseudo_ipc.o \ $(DBOBJS) $(SHOBJS) $(DBLDFLAGS) pseudodb: pseudodb.o $(SHOBJS) $(DBOBJS) pseudo_ipc.o @@ -77,10 +76,10 @@ Index: git/Makefile.in pseudo_client.o pseudo_server.o pseudo_ipc.o: pseudo_ipc.h pseudo_client.o: pseudo_client.h -@@ -103,7 +106,7 @@ +@@ -101,7 +104,7 @@ # no-strict-aliasing is needed for the function pointer trickery. - pseudo_wrappers.o: pseudo_wrappers.c + pseudo_wrappers.o: $(GUTS) pseudo_wrappers.c pseudo_wrapfuncs.c pseudo_wrapfuncs.h - $(CC) -fno-strict-aliasing $(CFLAGS) -D_GNU_SOURCE -c -o pseudo_wrappers.o pseudo_wrappers.c + $(CC) -fno-strict-aliasing $(CFLAGS) $(EXTRA_CFLAGS) -D_GNU_SOURCE -c -o pseudo_wrappers.o pseudo_wrappers.c diff --git a/meta/packages/pseudo/pseudo_git.bb b/meta/packages/pseudo/pseudo_git.bb index 1ba43c07f..92ea897d6 100644 --- a/meta/packages/pseudo/pseudo_git.bb +++ b/meta/packages/pseudo/pseudo_git.bb @@ -6,12 +6,14 @@ LICENSE = "LGPL2.1" DEPENDS = "sqlite3" PV = "0.0+git${SRCPV}" -PR = "r4" +PR = "r5" SRC_URI = "git://github.com/wrpseudo/pseudo.git;protocol=git \ file://tweakflags.patch \ file://path-munge.patch \ - file://ld_sacredness.patch" + file://ld_sacredness.patch \ + file://make_parallel.patch \ + file://static_sqlite.patch" FILES_${PN} = "${libdir}/libpseudo.so ${bindir}/* ${localstatedir}/pseudo" PROVIDES += "virtual/fakeroot" -- cgit v1.2.3