]> code.ossystems Code Review - openembedded-core.git/commitdiff
pseudo: Uprev to the latest git version
authorMark Hatle <mhatle@windriver.com>
Wed, 21 Jul 2010 13:15:53 +0000 (06:15 -0700)
committerRichard Purdie <rpurdie@linux.intel.com>
Wed, 21 Jul 2010 14:43:15 +0000 (15:43 +0100)
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 <mark.hatle@windriver.com>
meta/conf/distro/include/poky-default-revisions.inc
meta/packages/pseudo/pseudo/ld_sacredness.patch
meta/packages/pseudo/pseudo/make_parallel.patch [new file with mode: 0644]
meta/packages/pseudo/pseudo/path-munge.patch
meta/packages/pseudo/pseudo/static_sqlite.patch [new file with mode: 0644]
meta/packages/pseudo/pseudo/tweakflags.patch
meta/packages/pseudo/pseudo_git.bb

index 02033bed837c06d55927775e94946d62f7d8375e..1f52eedb5d9d218edd04b56ebd342792c6c5003a 100644 (file)
@@ -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}"
index 55a39d99b48dd45b7edb4f6f75ac0371239ae78c..568c899d7c2d2256748ef62bd47a35469611a8f1 100644 (file)
@@ -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 (file)
index 0000000..697b576
--- /dev/null
@@ -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
index 2327f2e5af61e64f5a7a52638b8e14698419d4ff..2ccdea17ea48eda9510804456c0a7ad87535807e 100644 (file)
@@ -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 (file)
index 0000000..0a2fa28
--- /dev/null
@@ -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
index 65656f137aac1ec5842be8ef1b4a5a112adbf029..a7458f5f4a3219ee617fdb21d9f62df8a7b24593 100644 (file)
@@ -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
  
index 1ba43c07f726399429b2d591c75bc00ce158f50f..92ea897d66fdb207f117e3c365c662146307d058 100644 (file)
@@ -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"