Uprev RPM to 5.4.9
v7 cover Uprev RPM to 5.4.9
Fix a regression in rpm dependency generated caused by default settings changing. This has been fixed (and verified on the yocto project build servers.) This should be the final version....
This has been rebased, and patches 1 and 2 were changed to deal with the fix for the macros files.
v6 message follows:
Patch 6/8 was reworked to remove the manifest size check.
Patch 8/8 is new and includes the manifest check removed from 6/8 as well as one that was missed in previous testing.
v5 message follows:
Only 7/7 is new in the version. Due to the removal of the RPMVSF_NOSIGNATURES flag in RPM5 5.4.9, createrepo also needed to have this flag removed.
v4 message follows:
Only 6/6 is new in this version. RPM 5.4.9 appears to be more demanding for both the DB_CONFIG file and empty manifest files. The new patch resolves this issue by ensuring that the DB_CONFIG is always generated, and empty manifest files do not get installed.
Patches 1-5 are identical to the v3 versions.
v3 messages follows:
Rebase of the v2 changes.
Re-disabled the "test" chunk.. this should resolve the hang problem a few people have observed.
v2 message follows:
Berkley DB also gets upreved, and a new package ossp-uuid gets added to the system.
This was -heavily- tested with and without zypper on IA, and PPC.
In addition a minor performance enhancement with a query operation was added.
The uprev also adds the capability of using PACKAGECONFIG settings to tailor the behavior of RPM.
V2 changes:
Fix a problem with libuuid.so from util-linux would sometimes be linked into the binary.
Also force libzypp, sat-solver and zypper to refresh via a PR bump.
The following changes since commit ba22e4fcf07eb8007f6d500908d503f1d3dbdd16:
nasm: updated to 2.10.01 (2012-06-11 13:55:46 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib mhatle/rpm
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=mhatle/rpm
Mark Hatle (9):
rpm: Upgrade RPM to 5.4.8 (db to 5.3.15)
rpm: Upgrade RPM to 5.4.9
ossp-uuid: Add oss-uuid package and RPM 5.4.9 integration
package_rpm: Add capability to directly query packageorigin
rpm: Bump PR numbers on componets that require RPM rootfs_rpm.bbclass: Update database configuration file
createrepo: For compatibility w/ RPM 5.4.9 remove RPMVSF_NOSIGNATURES
flag
package_rpm: Verify that the package manifests are not empty
rpm: Ensure pkgconfig deps don't stray from the package being built
meta/classes/package_rpm.bbclass | 105 ++++--
meta/classes/rootfs_rpm.bbclass | 29 --
.../ossp-uuid/0001-Change-library-name.patch | 112 +++++
...erve-m-option-status-in-v-option-handling.patch | 55 +++
.../ossp-uuid/0003-Fix-whatis-entries.patch | 51 +++
.../ossp-uuid/0004-fix-data-uuid-from-string.patch | 36 ++
.../ossp-uuid/ossp-uuid/uuid-libtool.patch | 24 +
.../ossp-uuid/ossp-uuid/uuid-nostrip.patch | 16 +
meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb | 58 +++
.../rpm/rpm/fix_for_automake_1.11.2.patch | 54 ---
.../rpm/rpm/fprint-pointer-fix.patch | 35 --
.../rpm/rpm/remove-compiled-tests.patch | 443 --------------------
meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch | 22 -
meta/recipes-devtools/rpm/rpm/rpm-autogen.patch | 41 +--
meta/recipes-devtools/rpm/rpm/rpm-db-reduce.patch | 16 +-
.../recipes-devtools/rpm/rpm/rpm-log-auto-rm.patch | 12 +-
meta/recipes-devtools/rpm/rpm/rpm-lua.patch | 29 ++
meta/recipes-devtools/rpm/rpm/rpm-macros.patch | 61 +++
.../rpm/rpm/rpm-no-perl-urpm.patch | 43 ++
meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch | 36 --
meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch | 20 +
.../rpm/rpm/rpm-packageorigin.patch | 23 +
.../rpm/rpm/rpm-pkgconfigdeps.patch | 34 ++
.../rpm/rpm/rpm-scriptletexechelper.patch | 33 +-
meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch | 26 +-
.../rpm/{rpm_5.4.0.bb => rpm_5.4.9.bb} | 160 ++++----
.../libzypp/libzypp/libzypp-rpm549.patch | 28 ++
meta/recipes-extended/libzypp/libzypp_git.bb | 3 +-
meta/recipes-extended/sat-solver/sat-solver_git.bb | 2 +-
meta/recipes-extended/zypper/zypper_git.bb | 2 +-
.../createrepo/createrepo/createrepo-rpm549.patch | 19 +
.../createrepo/createrepo_0.4.11.bb | 3 +-
.../db/{db_5.1.19.bb => db_5.3.15.bb} | 8 +-
33 files changed, 822 insertions(+), 817 deletions(-)
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0001-Change-library-name.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0002-uuid-preserve-m-option-status-in-v-option-handling.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0003-Fix-whatis-entries.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0004-fix-data-uuid-from-string.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/uuid-libtool.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/uuid-nostrip.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb
delete mode 100644 meta/recipes-devtools/rpm/rpm/fix_for_automake_1.11.2.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/fprint-pointer-fix.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/remove-compiled-tests.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lua.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-macros.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-no-perl-urpm.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-pkgconfigdeps.patch
rename meta/recipes-devtools/rpm/{rpm_5.4.0.bb => rpm_5.4.9.bb} (76%)
create mode 100644 meta/recipes-extended/libzypp/libzypp/libzypp-rpm549.patch
create mode 100644 meta/recipes-support/createrepo/createrepo/createrepo-rpm549.patch
rename meta/recipes-support/db/{db_5.1.19.bb => db_5.3.15.bb} (93%)Signature · 1 line
1.7.3.4
PATCH v7 1/9 rpm: Upgrade RPM to 5.4.8 (db to 5.3.15)
RPM 5.4.8 requires db 5.3.x, so both are upgraded together.
---
meta/classes/rootfs_rpm.bbclass | 22 +-
.../rpm/rpm/fix_for_automake_1.11.2.patch | 54 ---
.../rpm/rpm/fprint-pointer-fix.patch | 35 --
.../rpm/rpm/remove-compiled-tests.patch | 443 --------------------
meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch | 22 -
meta/recipes-devtools/rpm/rpm/rpm-autogen.patch | 41 +--
meta/recipes-devtools/rpm/rpm/rpm-db-reduce.patch | 16 +-
.../recipes-devtools/rpm/rpm/rpm-log-auto-rm.patch | 12 +-
meta/recipes-devtools/rpm/rpm/rpm-macros.patch | 61 +++
.../rpm/rpm/rpm-no-perl-urpm.patch | 43 ++
meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch | 36 --
.../rpm/{rpm_5.4.0.bb => rpm_5.4.8.bb} | 45 ++-
.../db/{db_5.1.19.bb => db_5.3.15.bb} | 8 +-
13 files changed, 168 insertions(+), 670 deletions(-)
delete mode 100644 meta/recipes-devtools/rpm/rpm/fix_for_automake_1.11.2.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/fprint-pointer-fix.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/remove-compiled-tests.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-macros.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-no-perl-urpm.patch
delete mode 100644 meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch
rename meta/recipes-devtools/rpm/{rpm_5.4.0.bb => rpm_5.4.8.bb} (91%)
rename meta/recipes-support/db/{db_5.1.19.bb => db_5.3.15.bb} (93%)meta/classes/rootfs_rpm.bbclass +12 -10
@@ -66,24 +66,26 @@ fakeroot rootfs_rpm_do_rootfs () { touch ${INSTALL_ROOTFS_RPM}${rpmlibdir}/log/log.0000000001 cat > ${INSTALL_ROOTFS_RPM}${rpmlibdir}/DB_CONFIG << EOF # ================ Environment -set_data_dir . -set_create_dir . -set_lg_dir ./log -set_tmp_dir ./tmp +set_data_dir . +set_create_dir . +set_lg_dir ./log +set_tmp_dir ./tmp +set_flags db_log_autoremove on # -- thread_count must be >= 8 -set_thread_count 64 +set_thread_count 64 # ================ Logging # ================ Memory Pool -set_mp_mmapsize 268435456 +set_cachesize 0 1048576 0 +set_mp_mmapsize 268435456 # ================ Locking -set_lk_max_locks 16384 -set_lk_max_lockers 16384 -set_lk_max_objects 16384 -mutex_set_max 163840 +set_lk_max_locks 16384 +set_lk_max_lockers 16384 +set_lk_max_objects 16384 +mutex_set_max 163840 # ================ Replication EOF
meta/recipes-devtools/rpm/rpm/fix_for_automake_1.11.2.patch deleted +0 -54
54 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/fprint-pointer-fix.patch deleted +0 -35
@@ -1,35 +0,0 @@ -Upstream-Status: Submitted - -From: Qing He <[email protected]> -Subject: [PATCH] rpm 5.4.0: Fix pointer mishandling - -In fpLookupSubdir, data returned by hash should be of type -"struct rpmffi_s **" instead of "struct rpmffi_s *" to avoid -segfault. - -Signed-off-by: Qing He <[email protected]> - -diff --git a/rpmdb/fprint.c b/rpmdb/fprint.c -index 0e76148..82b8f45 100644 ---- a/rpmdb/fprint.c -+++ b/rpmdb/fprint.c -@@ -333,7 +333,7 @@ restart: - *te = '\0'; - - while (te < se) { -- struct rpmffi_s * recs; -+ struct rpmffi_s ** recs; - int numRecs; - int i; - -@@ -346,8 +346,8 @@ restart: - const char * link; - int fx; - -- fx = recs[i].fileno; -- fi = recs[i].p->fi; -+ fx = recs[i]->fileno; -+ fi = recs[i]->p->fi; - flink = fi->flinks[fx]; - if (!(flink && *flink != '\0')) - continue;
meta/recipes-devtools/rpm/rpm/remove-compiled-tests.patch deleted +0 -443
443 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch deleted +0 -22
@@ -1,22 +0,0 @@ -Using the version of autoconf in poky results in: - -configure.ac:11: error: m4_divert_push: cannot change diversion to `GROW' inside m4_expand - -without this patch. - -Upstream-Status: Pending - -Signed-off-by: Mark Hatle <[email protected]> - -diff -ur rpm-5.1.10.orig/configure.ac rpm-5.1.10/configure.ac ---- rpm-5.1.10.orig/configure.ac 2010-08-20 17:12:16.000000000 -0500 -+++ rpm-5.1.10/configure.ac 2010-09-03 11:34:44.722097327 -0500 -@@ -8,7 +8,7 @@ - - AC_PREREQ(2.60) - AC_DEFUN([PACKAGE_BUGREPORT_DEFAULT], [[email protected]]) --AC_INIT(rpm, [5.1.10], [PACKAGE_BUGREPORT_DEFAULT]) -+AC_INIT(rpm, [5.1.10]) - PACKAGE_TIMESTAMP="2008" dnl # YYYY[-MM[-DD[ HH[:MM]]]] - AC_MSG_TITLE([RPM Package Manager (RPM)], [$PACKAGE_VERSION]) -
meta/recipes-devtools/rpm/rpm/rpm-autogen.patch +5 -36
47 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-db-reduce.patch +8 -8
@@ -4,16 +4,16 @@ Change cache size to reduce the usage of disk space from 62MB to 26MB. Signed-off-by: Mei Lei <[email protected]> -diff --git a/rpmdb/DB_CONFIG.in b/rpmdb/DB_CONFIG.in -index e0b4689..b64e3a9 100644 ---- a/rpmdb/DB_CONFIG.in -+++ b/rpmdb/DB_CONFIG.in -@@ -29,7 +29,7 @@ set_thread_count 64 +Index: rpm-5.4.8/rpmdb/DB_CONFIG.in +=================================================================== +--- rpm-5.4.8.orig/rpmdb/DB_CONFIG.in ++++ rpm-5.4.8/rpmdb/DB_CONFIG.in +@@ -29,7 +29,7 @@ set_thread_count 64 # ================ Memory Pool #XXX initializing dbenv with set_cachesize has unimplemented prerequsites --#set_cachesize 0 1048576 0 -+set_cachesize 0 1048576 0 - set_mp_mmapsize 268435456 +-#set_cachesize 0 1048576 0 ++set_cachesize 0 1048576 0 + set_mp_mmapsize 268435456 # ================ Locking
meta/recipes-devtools/rpm/rpm/rpm-log-auto-rm.patch +6 -6
@@ -5,11 +5,11 @@ diff --git a/rpmdb/DB_CONFIG.in b/rpmdb/DB_CONFIG.in index 8b94c94..e0b4689 100644 --- a/rpmdb/DB_CONFIG.in +++ b/rpmdb/DB_CONFIG.in -@@ -4,6 +4,7 @@ set_data_dir . - set_create_dir . - set_lg_dir ./log - set_tmp_dir ./tmp -+set_flags db_log_autoremove on +@@ -4,6 +4,7 @@ + set_create_dir . + set_lg_dir ./log + set_tmp_dir ./tmp ++set_flags db_log_autoremove on # -- thread_count must be >= 8 - set_thread_count 64 + set_thread_count 64
meta/recipes-devtools/rpm/rpm/rpm-macros.patch new file +61 -0
61 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-no-perl-urpm.patch new file +43 -0
43 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch deleted +0 -36
@@ -1,36 +0,0 @@ -Backport from RPM 5.4.1 CVS, disabled fsync. - -Upstream-Status: Backport - -Signed-off-by: Mark Hatle <[email protected]> - -diff -ur rpm-5.4.0.orig/CHANGES rpm-5.4.0/CHANGES ---- rpm-5.4.0.orig/CHANGES 2010-12-29 07:51:38.000000000 -0600 -+++ rpm-5.4.0/CHANGES 2011-02-15 20:54:27.021926840 -0600 -@@ -1,4 +1,5 @@ - 5.4.0 -> 5.4.1: -+ - jbj: remove fsync(2) after file install, its intolerably slow. - - 5.3.7 -> 5.4.0: - - jbj: remove markReplacedFiles. -diff -ur rpm-5.4.0.orig/lib/fsm.c rpm-5.4.0/lib/fsm.c ---- rpm-5.4.0.orig/lib/fsm.c 2009-12-10 12:52:18.000000000 -0600 -+++ rpm-5.4.0/lib/fsm.c 2011-02-15 20:55:04.372938221 -0600 -@@ -1017,7 +1017,17 @@ - (void) fsmNext(fsm, IOSM_NOTIFY); - } - -+#ifdef DYING -+/* Measurements from installing kernel-source package: -+ * +fsync -+ * total: 1 0.000000 MB 640.854524 secs -+ * +fdatasync -+ * total: 1 0.000000 MB 419.983200 secs -+ * w/o fsync/fdsatasync: -+ * total: 1 0.000000 MB 12.492918 secs -+ */ - xx = fsync(Fileno(fsm->wfd)); -+#endif - - if (st->st_size > 0 && (fsm->fdigest || fsm->digest)) { - void * digest = NULL;
meta/recipes-devtools/rpm/rpm_5.4.8.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.0.bb +29 -16
90 lines not on this page · raw message
meta/recipes-support/db/db_5.3.15.bb renamed from meta/recipes-support/db/db_5.1.19.bb +4 -4
@@ -14,15 +14,15 @@ HOMEPAGE = "http://www.oracle.com/technology/products/berkeley-db/db/index.html" LICENSE = "Sleepycat" VIRTUAL_NAME ?= "virtual/db" CONFLICTS = "db3" -PR = "r4" +PR = "r5" SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz" SRC_URI += "file://arm-thumb-mutex_db5.patch;patchdir=.." -SRC_URI[md5sum] = "76fcbfeebfcd09ba0b4d96bfdf8d884d" -SRC_URI[sha256sum] = "0194d4ca9266ba1a1c0bfbc233b18bfd05f63163453c81ebcdfdc7112d5ac850" +SRC_URI[md5sum] = "5493fb5f7cc3915887c836b096f18773" +SRC_URI[sha256sum] = "4f4f7d548984dde3584fcda0e4f96901cb8bafb08033a7781aec64ef2ea1f579" -LIC_FILES_CHKSUM = "file://../LICENSE;md5=86f9294f39f38ef9e89690bcd2320e7a" +LIC_FILES_CHKSUM = "file://../LICENSE;md5=12cc3ff983ed4ecc6cc091370ee4dbc3" inherit autotools
Signature · 1 line
1.7.3.4
PATCH v7 2/9 rpm: Upgrade RPM to 5.4.9
In reply to Mark HatleBeside upreving RPM, add necessary integration pathces to libzypp.
Also change the configuration of RPM to support PACKAGECONFIG flags. RPM is highly configurable, the default configuration is good for minimal OE-Core use.
---
meta/recipes-devtools/rpm/rpm/rpm-lua.patch | 29 +++++
.../rpm/rpm/rpm-scriptletexechelper.patch | 33 +++---
meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch | 26 ++---
.../rpm/{rpm_5.4.8.bb => rpm_5.4.9.bb} | 122 +++++++++-----------
.../libzypp/libzypp/libzypp-rpm549.patch | 28 +++++
meta/recipes-extended/libzypp/libzypp_git.bb | 3 +-
6 files changed, 141 insertions(+), 100 deletions(-)
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lua.patch
rename meta/recipes-devtools/rpm/{rpm_5.4.8.bb => rpm_5.4.9.bb} (82%)
create mode 100644 meta/recipes-extended/libzypp/libzypp/libzypp-rpm549.patchmeta/recipes-devtools/rpm/rpm/rpm-lua.patch new file +29 -0
@@ -0,0 +1,29 @@ +Add support for cross compiling lua + +Signed-off-by: Mark Hatle <[email protected]> + +diff -ur rpm-5.4.9.orig/configure.ac rpm-5.4.9/configure.ac +--- rpm-5.4.9.orig/configure.ac 2012-05-16 12:16:36.589813548 -0500 ++++ rpm-5.4.9/configure.ac 2012-05-16 12:26:01.070813518 -0500 +@@ -120,6 +120,9 @@ + + AC_PATH_PROG(AS, as, as) + ++CC_FOR_BUILD=${CC_FOR_BUILD-\$(CC)} ++AC_SUBST(CC_FOR_BUILD) ++ + dnl # GCC specifics + AC_PROG_GCC_TRADITIONAL + AC_ARG_ENABLE(build-pic, +diff -ur rpm-5.4.9.orig/lua/Makefile.am rpm-5.4.9/lua/Makefile.am +--- rpm-5.4.9.orig/lua/Makefile.am 2012-04-07 19:15:25.000000000 -0500 ++++ rpm-5.4.9/lua/Makefile.am 2012-05-16 12:26:19.556856688 -0500 +@@ -40,7 +40,7 @@ + + # --- bin2c doesn't need anything but a compiler + bin2c$(EXEEXT): bin2c.c +- $(CC) -o $@ $< ++ $(CC_FOR_BUILD) -o $@ $< + + liblua_la_SOURCES = + liblua_la_CFLAGS = @WITH_LUA_SUBDIR_DEF@
meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch +17 -16
@@ -12,10 +12,11 @@ Upstream-Status: Pending Signed-off-by: Mark Hatle <[email protected]> -diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c ---- rpm-5.4.0.orig/lib/psm.c 2010-12-29 07:42:11.000000000 -0600 -+++ rpm-5.4.0/lib/psm.c 2011-11-08 13:38:48.132791154 -0600 -@@ -792,6 +792,10 @@ +Index: rpm-5.4.9/lib/psm.c +=================================================================== +--- rpm-5.4.9.orig/lib/psm.c ++++ rpm-5.4.9/lib/psm.c +@@ -801,6 +801,10 @@ static rpmRC runScript(rpmpsm psm, Heade int xx; int i;
@@ -26,23 +27,23 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c if (psm->sstates != NULL && ix >= 0 && ix < RPMSCRIPT_MAX) ssp = psm->sstates + ix; if (ssp != NULL) -@@ -858,14 +862,29 @@ +@@ -867,14 +871,29 @@ assert(he->p.str != NULL); (F_ISSET(psm, UNORDERED) ? "a" : "")); if (Phe->p.argv == NULL) { -- argv = alloca(5 * sizeof(*argv)); +- argv = (const char **) alloca(5 * sizeof(*argv)); - argv[0] = "/bin/sh"; - argc = 1; -+ argv = alloca(7 * sizeof(*argv)); ++ argv = (const char **) alloca(7 * sizeof(*argv)); + argc = 0; + } else { -+ argv = alloca((Phe->c + 6) * sizeof(*argv)); ++ argv = (const char **) alloca((Phe->c + 6) * sizeof(*argv)); + argc = 0; + } + +#ifdef RPM_VENDOR_POKY + if (scriptletWrapper && *scriptletWrapper) { -+ argv[argc++] = scriptletWrapper; ++ argv[argc++] = scriptletWrapper; + argv[argc] = rpmtsRootDir(ts); + if (!argv[argc] || !*argv[argc]) + argv[argc] = "/";
@@ -51,10 +52,10 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c +#endif + + if (Phe->p.argv == NULL) { -+ argv[argc++] = "/bin/sh"; ++ argv[argc++] = "/bin/sh"; ldconfig_done = 0; } else { -- argv = alloca((Phe->c + 4) * sizeof(*argv)); +- argv = (const char **) alloca((Phe->c + 4) * sizeof(*argv)); - memcpy(argv, Phe->p.argv, Phe->c * sizeof(*argv)); - argc = Phe->c; + memcpy((argv + argc), Phe->p.argv, Phe->c * sizeof(*argv));
@@ -62,7 +63,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c ldconfig_done = (ldconfig_path && !strcmp(argv[0], ldconfig_path) ? 1 : 0); } -@@ -916,7 +935,12 @@ +@@ -925,7 +944,12 @@ assert(he->p.str != NULL); goto exit; if (rpmIsDebug() &&
@@ -76,7 +77,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c { static const char set_x[] = "set -x\n"; nw = Fwrite(set_x, sizeof(set_x[0]), sizeof(set_x)-1, fd); -@@ -1051,12 +1075,22 @@ +@@ -1060,12 +1084,22 @@ assert(he->p.str != NULL); { const char * rootDir = rpmtsRootDir(ts); if (!rpmtsChrootDone(ts) && rootDir != NULL &&
@@ -99,7 +100,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c xx = Chdir("/"); rpmlog(RPMLOG_DEBUG, D_("%s: %s(%s)\texecv(%s) pid %d\n"), psm->stepName, sln, NVRA, -@@ -2961,6 +2995,13 @@ +@@ -2977,6 +3011,13 @@ assert(psm->te != NULL); case PSM_SCRIPT: /* Run current package scriptlets. */ /* XXX running %verifyscript/%sanitycheck doesn't have psm->te */ { rpmtxn _parent = (psm && psm->te ? psm->te->txn : NULL);
@@ -113,7 +114,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c xx = rpmtxnBegin(rpmtsGetRdb(ts), _parent, NULL); rc = runInstScript(psm); if (rc) -@@ -2968,11 +3009,24 @@ +@@ -2984,11 +3025,24 @@ assert(psm->te != NULL); else xx = rpmtxnCommit(rpmtsGetRdb(ts)->db_txn); rpmtsGetRdb(ts)->db_txn = NULL;
@@ -138,7 +139,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c break; case PSM_IMMED_TRIGGERS: /* Run triggers in this package other package(s) set off. */ -@@ -2982,7 +3036,18 @@ +@@ -2998,7 +3052,18 @@ assert(psm->te != NULL); F_SET(psm, GOTTRIGGERS); } if (psm->triggers != NULL)
meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch +11 -15
@@ -16,20 +16,20 @@ RP 2012/2/7 2 files changed, 152 insertions(+), 1 deletions(-) create mode 100644 tools/rpmdeps-oecore.c -diff --git a/tools/Makefile.am b/tools/Makefile.am -index f520843..2eba9bf 100644 ---- a/tools/Makefile.am -+++ b/tools/Makefile.am +Index: rpm-5.4.9/tools/Makefile.am +=================================================================== +--- rpm-5.4.9.orig/tools/Makefile.am ++++ rpm-5.4.9/tools/Makefile.am @@ -58,7 +58,7 @@ pkgbin_PROGRAMS = \ @WITH_AUGEAS_AUGTOOL@ chroot cp @WITH_CUDF_CUDFTOOL@ find mtree \ @WITH_SEMANAGE_SEMODULE@ wget \ rpmcache rpmdigest rpmrepo rpmspecdump \ - rpmcmp rpmdeps sqlite3 @WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@ + rpmcmp rpmdeps rpmdeps-oecore sqlite3 @WITH_KEYUTILS_RPMKEY@ @WITH_LIBELF_DEBUGEDIT@ - dist_man_MANS = rpmgrep.1 - - augtool_SOURCES = augtool.c -@@ -155,6 +155,10 @@ rpmdeps_SOURCES = rpmdeps.c + if WITH_DB + pkgbin_PROGRAMS += dbconvert + endif +@@ -168,6 +168,10 @@ rpmdeps_SOURCES = rpmdeps.c rpmdeps_LDFLAGS = @LDFLAGS_STATIC@ $(LDFLAGS) rpmdeps_LDADD = $(RPM_LDADD_COMMON)
@@ -40,11 +40,10 @@ index f520843..2eba9bf 100644 rpmdigest_SOURCES = rpmdigest.c rpmdigest_LDFLAGS = @LDFLAGS_STATIC@ $(LDFLAGS) rpmdigest_LDADD = $(RPMIO_LDADD_COMMON) -diff --git a/tools/rpmdeps-oecore.c b/tools/rpmdeps-oecore.c -new file mode 100644 -index 0000000..e646da9 +Index: rpm-5.4.9/tools/rpmdeps-oecore.c +=================================================================== --- /dev/null -+++ b/tools/rpmdeps-oecore.c ++++ rpm-5.4.9/tools/rpmdeps-oecore.c @@ -0,0 +1,147 @@ +#include "system.h" +const char *__progname;
@@ -193,6 +192,3 @@ index 0000000..e646da9 + optCon = rpmcliFini(optCon); + return ec; +} --- -1.7.4.1 -
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +54 -68
249 lines not on this page · raw message
meta/recipes-extended/libzypp/libzypp/libzypp-rpm549.patch new file +28 -0
@@ -0,0 +1,28 @@ +commit 6c47ad415246cc3a3edac2e1637106d330574c85 +Author: Mark Hatle <[email protected]> +Date: Fri May 11 19:05:09 2012 -0500 + + RpmHeader.cc: RPM 5.4.9 integration + + _RPMVSF_xxx - NODIGEST, NOSIGNATURES, NOHEADER, and NOPAYLOAD + are now obsolete and no longer supported. + + Signed-off-by: Mark Hatle <[email protected]> + +diff --git a/zypp/target/rpm/RpmHeader.cc b/zypp/target/rpm/RpmHeader.cc +index 1224ecd..c96dae6 100644 +--- a/zypp/target/rpm/RpmHeader.cc ++++ b/zypp/target/rpm/RpmHeader.cc +@@ -230,10 +230,12 @@ RpmHeader::constPtr RpmHeader::readPackage( const Pathname & path_r, + librpmDb::globalInit(); + rpmts ts = ::rpmtsCreate(); + unsigned vsflag = RPMVSF_DEFAULT; ++#if !defined(_RPM_5) + if ( verification_r & NODIGEST ) + vsflag |= _RPMVSF_NODIGESTS; + if ( verification_r & NOSIGNATURE ) + vsflag |= _RPMVSF_NOSIGNATURES; ++#endif + ::rpmtsSetVSFlags( ts, rpmVSFlags(vsflag) ); + + Header nh = 0;
meta/recipes-extended/libzypp/libzypp_git.bb +2 -1
@@ -11,7 +11,7 @@ DEPENDS = "rpm boost curl libxml2 zlib sat-solver expat openssl udev libproxy" S = "${WORKDIR}/git" SRCREV = "15b6c52260bbc52b3d8e585e271b67e10cc7c433" PV = "0.0-git${SRCPV}" -PR = "r20" +PR = "r21" SRC_URI = "git://github.com/openSUSE/libzypp.git;protocol=git \ file://no-doc.patch \
@@ -23,6 +23,7 @@ SRC_URI = "git://github.com/openSUSE/libzypp.git;protocol=git \ file://fix_for_compile_wth_gcc-4.6.0.patch \ file://hardcode-lib-fix.patch \ file://close.patch \ + file://libzypp-rpm549.patch \ " SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch"
Signature · 1 line
1.7.3.4
Re: [PATCH 2/9] rpm: Upgrade RPM to 5.4.9
Quoted 1 line · Mark Hatle
Beside upreving RPM, add necessary integration pathces to libzypp.
Typo there I guess you wanted "patches" there
Quoted 11 lines
Also change the configuration of RPM to support PACKAGECONFIG flags. RPM is highly configurable, the default configuration is good for minimal OE-Core use.
Signed-off-by Mark Hatle <[email protected]>--- meta/recipes-devtools/rpm/rpm/rpm-lua.patch | 29 +++++ .../rpm/rpm/rpm-scriptletexechelper.patch | 33 +++--- meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch | 26 ++--- .../rpm/{rpm_5.4.8.bb => rpm_5.4.9.bb} | 122
+++++++++-----------
Quoted 6 lines
.../libzypp/libzypp/libzypp-rpm549.patch | 28 +++++
meta/recipes-extended/libzypp/libzypp_git.bb | 3 +-
6 files changed, 141 insertions(+), 100 deletions(-)
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-lua.patch
rename meta/recipes-devtools/rpm/{rpm_5.4.8.bb => rpm_5.4.9.bb} (82%)
create mode 100644meta/recipes-extended/libzypp/libzypp/libzypp-rpm549.patch
Review
Quoted 2 lines
(quoted diff) +0
-0
b/meta/recipes-devtools/rpm/rpm/rpm-lua.patch
meta/recipes-devtools/rpm/rpm/rpm-lua.patch line 6
Quoted 11 lines
new file mode 100644
index 0000000..980e1b1meta/recipes-devtools/rpm/rpm/rpm-lua.patch new file +6
-0@@ -0,0 +1,29 @@ +Add support for cross compiling lua + +Signed-off-by: Mark Hatle <[email protected]> + +diff -ur rpm-5.4.9.orig/configure.ac rpm-5.4.9/configure.ac +--- rpm-5.4.9.orig/configure.ac 2012-05-16 12:16:36.589813548
-0500
meta/recipes-devtools/rpm/rpm/rpm-lua.patch
Quoted 13 lines
meta/recipes-devtools/rpm/rpm/rpm-lua.patch new file +13
-0++++ rpm-5.4.9/configure.ac 2012-05-16 12:26:01.070813518 -0500 +@@ -120,6 +120,9 @@ + + AC_PATH_PROG(AS, as, as) + ++CC_FOR_BUILD=${CC_FOR_BUILD-\$(CC)} ++AC_SUBST(CC_FOR_BUILD) ++ + dnl # GCC specifics + AC_PROG_GCC_TRADITIONAL + AC_ARG_ENABLE(build-pic, +diff -ur rpm-5.4.9.orig/lua/Makefile.am rpm-5.4.9/lua/Makefile.am +--- rpm-5.4.9.orig/lua/Makefile.am 2012-04-07 19:15:25.000000000
-0500
Review
Quoted 11 lines
meta/recipes-devtools/rpm/rpm/rpm-lua.patch new file +10
-0++++ rpm-5.4.9/lua/Makefile.am 2012-05-16 12:26:19.556856688 -0500 +@@ -40,7 +40,7 @@ + + # --- bin2c doesn't need anything but a compiler + bin2c$(EXEEXT): bin2c.c +- $(CC) -o $@ $< ++ $(CC_FOR_BUILD) -o $@ $< + + liblua_la_SOURCES = + liblua_la_CFLAGS = @WITH_LUA_SUBDIR_DEF@(quoted diff) +0
-0
b/meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch
Review
Quoted 107 lines
index e4db0e4..8a9e712 100644
meta/recipes-devtools/rpm/rpm/rpm-scriptletexechelper.patch +17
-16@@ -12,10 +12,11 @@ Upstream-Status: Pending Signed-off-by: Mark Hatle <[email protected]> -diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c ---- rpm-5.4.0.orig/lib/psm.c 2010-12-29 07:42:11.000000000 -0600 -+++ rpm-5.4.0/lib/psm.c 2011-11-08 13:38:48.132791154 -0600 -@@ -792,6 +792,10 @@ +Index: rpm-5.4.9/lib/psm.c +=================================================================== +--- rpm-5.4.9.orig/lib/psm.c ++++ rpm-5.4.9/lib/psm.c +@@ -801,6 +801,10 @@ static rpmRC runScript(rpmpsm psm, Heade int xx; int i;@@ -26,23 +27,23 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c if (psm->sstates != NULL && ix >= 0 && ix < RPMSCRIPT_MAX) ssp = psm->sstates + ix; if (ssp != NULL) -@@ -858,14 +862,29 @@ +@@ -867,14 +871,29 @@ assert(he->p.str != NULL); (F_ISSET(psm, UNORDERED) ? "a" : "")); if (Phe->p.argv == NULL) { -- argv = alloca(5 * sizeof(*argv)); +- argv = (const char **) alloca(5 * sizeof(*argv)); - argv[0] = "/bin/sh"; - argc = 1; -+ argv = alloca(7 * sizeof(*argv)); ++ argv = (const char **) alloca(7 * sizeof(*argv)); + argc = 0; + } else { -+ argv = alloca((Phe->c + 6) * sizeof(*argv)); ++ argv = (const char **) alloca((Phe->c + 6) * sizeof(*argv)); + argc = 0; + } + +#ifdef RPM_VENDOR_POKY + if (scriptletWrapper && *scriptletWrapper) { -+ argv[argc++] = scriptletWrapper; ++ argv[argc++] = scriptletWrapper; + argv[argc] = rpmtsRootDir(ts); + if (!argv[argc] || !*argv[argc]) + argv[argc] = "/";@@ -51,10 +52,10 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c +#endif + + if (Phe->p.argv == NULL) { -+ argv[argc++] = "/bin/sh"; ++ argv[argc++] = "/bin/sh"; ldconfig_done = 0; } else { -- argv = alloca((Phe->c + 4) * sizeof(*argv)); +- argv = (const char **) alloca((Phe->c + 4) * sizeof(*argv)); - memcpy(argv, Phe->p.argv, Phe->c * sizeof(*argv)); - argc = Phe->c; + memcpy((argv + argc), Phe->p.argv, Phe->c * sizeof(*argv));@@ -62,7 +63,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c ldconfig_done = (ldconfig_path && !strcmp(argv[0], ldconfig_path) ? 1 : 0); } -@@ -916,7 +935,12 @@ +@@ -925,7 +944,12 @@ assert(he->p.str != NULL); goto exit; if (rpmIsDebug() &&@@ -76,7 +77,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c { static const char set_x[] = "set -x\n"; nw = Fwrite(set_x, sizeof(set_x[0]), sizeof(set_x)-1, fd); -@@ -1051,12 +1075,22 @@ +@@ -1060,12 +1084,22 @@ assert(he->p.str != NULL); { const char * rootDir = rpmtsRootDir(ts); if (!rpmtsChrootDone(ts) && rootDir != NULL &&@@ -99,7 +100,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c xx = Chdir("/"); rpmlog(RPMLOG_DEBUG, D_("%s: %s(%s)\texecv(%s) pid %d\n"), psm->stepName, sln, NVRA, -@@ -2961,6 +2995,13 @@ +@@ -2977,6 +3011,13 @@ assert(psm->te != NULL); case PSM_SCRIPT: /* Run current package scriptlets. */ /* XXX running %verifyscript/%sanitycheck doesn't have psm->te */ { rpmtxn _parent = (psm && psm->te ? psm->te->txn : NULL);@@ -113,7 +114,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c xx = rpmtxnBegin(rpmtsGetRdb(ts), _parent, NULL); rc = runInstScript(psm); if (rc) -@@ -2968,11 +3009,24 @@ +@@ -2984,11 +3025,24 @@ assert(psm->te != NULL); else xx = rpmtxnCommit(rpmtsGetRdb(ts)->db_txn); rpmtsGetRdb(ts)->db_txn = NULL;@@ -138,7 +139,7 @@ diff -ur rpm-5.4.0.orig/lib/psm.c rpm-5.4.0/lib/psm.c break; case PSM_IMMED_TRIGGERS: /* Run triggers in this package other package(s) set off. */ -@@ -2982,7 +3036,18 @@ +@@ -2998,7 +3052,18 @@ assert(psm->te != NULL); F_SET(psm, GOTTRIGGERS); } if (psm->triggers != NULL)(quoted diff) +0
-0
b/meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch
Review
Quoted 55 lines
index 1667901..f29866b 100644
meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch +11
-15@@ -16,20 +16,20 @@ RP 2012/2/7 2 files changed, 152 insertions(+), 1 deletions(-) create mode 100644 tools/rpmdeps-oecore.c -diff --git a/tools/Makefile.am b/tools/Makefile.am -index f520843..2eba9bf 100644 ---- a/tools/Makefile.am -+++ b/tools/Makefile.am +Index: rpm-5.4.9/tools/Makefile.am +=================================================================== +--- rpm-5.4.9.orig/tools/Makefile.am ++++ rpm-5.4.9/tools/Makefile.am @@ -58,7 +58,7 @@ pkgbin_PROGRAMS = \ @WITH_AUGEAS_AUGTOOL@ chroot cp @WITH_CUDF_CUDFTOOL@ find mtree \ @WITH_SEMANAGE_SEMODULE@ wget \ rpmcache rpmdigest rpmrepo rpmspecdump \ - rpmcmp rpmdeps sqlite3 @WITH_KEYUTILS_RPMKEY@@WITH_LIBELF_DEBUGEDIT@ + rpmcmp rpmdeps rpmdeps-oecore sqlite3 @WITH_KEYUTILS_RPMKEY@@WITH_LIBELF_DEBUGEDIT@ - dist_man_MANS = rpmgrep.1 - - augtool_SOURCES = augtool.c -@@ -155,6 +155,10 @@ rpmdeps_SOURCES = rpmdeps.c + if WITH_DB + pkgbin_PROGRAMS += dbconvert + endif +@@ -168,6 +168,10 @@ rpmdeps_SOURCES = rpmdeps.c rpmdeps_LDFLAGS = @LDFLAGS_STATIC@ $(LDFLAGS) rpmdeps_LDADD = $(RPM_LDADD_COMMON)@@ -40,11 +40,10 @@ index f520843..2eba9bf 100644 rpmdigest_SOURCES = rpmdigest.c rpmdigest_LDFLAGS = @LDFLAGS_STATIC@ $(LDFLAGS) rpmdigest_LDADD = $(RPMIO_LDADD_COMMON) -diff --git a/tools/rpmdeps-oecore.c b/tools/rpmdeps-oecore.c -new file mode 100644 -index 0000000..e646da9 +Index: rpm-5.4.9/tools/rpmdeps-oecore.c +=================================================================== --- /dev/null -+++ b/tools/rpmdeps-oecore.c ++++ rpm-5.4.9/tools/rpmdeps-oecore.c @@ -0,0 +1,147 @@ +#include "system.h" +const char *__progname;@@ -193,6 +192,3 @@ index 0000000..e646da9 + optCon = rpmcliFini(optCon); + return ec; +} --- -1.7.4.1 -(quoted diff) +0
-0
rpm_5.4.9.bb
meta/recipes-devtools/rpm/rpm_5.4.9.bb HOMEPAGE = "http://rpm5.org/" · line 43
Quoted 9 lines
similarity index 82%
rename from meta/recipes-devtools/rpm/rpm_5.4.8.bb rename to meta/recipes-devtools/rpm/rpm_5.4.9.bb index ac86ff3..6eba802 100644meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +0
-0@@ -42,14 +42,12 @@ HOMEPAGE = "http://rpm5.org/" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM =
"file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
meta/recipes-devtools/rpm/rpm_5.4.9.bb HOMEPAGE = "http://rpm5.org/" · line 44
Quoted 2 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +0
-1-DEPENDS = "beecrypt bzip2 zlib db openssl elfutils expat libpcre attr
acl popt ${extrarpmdeps}"
meta/recipes-devtools/rpm/rpm_5.4.9.bb HOMEPAGE = "http://rpm5.org/"
Quoted 7 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +2
-3-extrarpmdeps = "python perl file" -extrarpmdeps_virtclass-native = "python-native file-native" -PR = "r39" +DEPENDS = "libpcre attr acl popt file" +PR = "r40" # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is
needed
meta/recipes-devtools/rpm/rpm_5.4.9.bb HOMEPAGE = "http://rpm5.org/" · line 48
Quoted 1 line
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +0
-0# in order to extract the distribution SRPM into a format we can
extract...
meta/recipes-devtools/rpm/rpm_5.4.9.bb HOMEPAGE = "http://rpm5.org/" · line 51
Quoted 1 line
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +0
-1-SRC_URI = "
http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.8-0.20120401.src.rpm;extract=rpm-5.4.8.tar.gz\
meta/recipes-devtools/rpm/rpm_5.4.9.bb HOMEPAGE = "http://rpm5.org/" · line 49
Quoted 1 line
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +1
-0+SRC_URI = "
http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;extract=rpm-5.4.9.tar.gz\
meta/recipes-devtools/rpm/rpm_5.4.9.bb SRC_URI = "
Quoted 4 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +0
-0file://rpm-log-auto-rm.patch \ file://rpm-db-reduce.patch \ file://perfile_rpmdeps.sh \@@ -70,10 +68,11 @@ SRC_URI = "
http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.8-0.20120401.src.rpm;ex
meta/recipes-devtools/rpm/rpm_5.4.9.bb SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.8-0.20120401.src.rpm;ex
Quoted 8 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +1
-2file://rpm-respect-arch.patch \ file://rpm-no-perl-urpm.patch \ file://rpm-macros.patch \ + file://rpm-lua.patch \ " -SRC_URI[md5sum] = "424b60bf2e0a624a218440d943861644" -SRC_URI[sha256sum] =
"56eb5033d4de98c217475fb34d466d551f8912959389e7854a806e2bd9e13380"
meta/recipes-devtools/rpm/rpm_5.4.9.bb SRC_URI = " · line 75
Quoted 2 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +2
-0+SRC_URI[md5sum] = "60d56ace884340c1b3fcac6a1d58e768" +SRC_URI[sha256sum] =
"bac7cc5bd9d0e8262fdc0099349924608da8f680f5cb243751f696552239dde8"
meta/recipes-devtools/rpm/rpm_5.4.9.bb acpaths = "-I ${S}/db/dist/aclocal -I
Quoted 4 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +0
-0inherit autotools gettext@@ -83,63 +82,74 @@ acpaths = "-I ${S}/db/dist/aclocal -I
${S}/db/dist/aclocal_java"
meta/recipes-devtools/rpm/rpm_5.4.9.bb acpaths = "-I ${S}/db/dist/aclocal -I · line 82
Quoted 1 line
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +0
-0rpm_macros =
"%{_usrlibrpm}/macros:%{_usrlibrpm}/poky/macros:%{_usrlibrpm}/poky/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros"
meta/recipes-devtools/rpm/rpm_5.4.9.bb acpaths = "-I ${S}/db/dist/aclocal -I · line 83
Quoted 1 line
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +0
-0rpm_macros_virtclass-native =
"%{_usrlibrpm}/macros:%{_usrlibrpm}/poky/macros:%{_usrlibrpm}/poky/%{_target}/macros:~/.oerpmmacros"
meta/recipes-devtools/rpm/rpm_5.4.9.bb acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java"
Quoted 9 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +4
-3-# Configure values taken from rpm.spec -WITH_BZIP2 = "--with-bzip2" +# sqlite lua tcl augeas nss gcrypt neon xz xar keyutils perl selinux -WITH_XZ = "--with-xz=none" +# Note: perl and sqlite w/o db specified does not currently work. +# tcl, augeas, nss, gcrypt, xar and keyutils support is untested. +PACKAGECONFIG_virtclass-native ??= "db bzip2 zlib beecrypt openssl
libelf python"
meta/recipes-devtools/rpm/rpm_5.4.9.bb acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java" · line 102
Quoted 11 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +6
-2+PACKAGECONFIG ??= "db bzip2 zlib beecrypt openssl libelf python" -WITH_Z = "--with-zlib $WITH_BZIP2 $WITH_XZ" +PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2," +PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz," +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib," +PACKAGECONFIG[xar] = "--with-xar,--without-xar,xar," -WITH_PYTHON = " --with-python=${PYTHON_BASEVERSION} \ +WITH_PYTHON = " --with-python=${PYTHON_BASEVERSION} \
--with-python-inc-dir=${STAGING_INCDIR}/python${PYTHON_BASEVERSION} \
Quoted 1 line
--with-python-lib-dir=${libdir}/python${PYTHON_BASEVERSION} \
Quoted 11 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +3
-4- --without-pythonembed \ - " + --without-pythonembed" +PACKAGECONFIG[python] = "${WITH_PYTHON},--without-python,python," # Perl modules are not built, but they could be enabled fairly easily # the perl module creation and installation would need to be patched. # (currently has host perl contamination issues) -#WITH_PERL = " --with-perl --without-perlembed" -WITH_PERL = " --without-perl --without-perl-urpm" +WITH_PERL = "--with-perl --without-perlembed --without-perl-urpm"
meta/recipes-devtools/rpm/rpm_5.4.9.bb acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java"
Quoted 10 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +6
-2+WITHOUT_PERL = "--without-perl --without-perl-urpm" +PACKAGECONFIG[perl] = "${WITH_PERL},${WITHOUT_PERL},perl," -WITH_PERL_virtclass-native = " --without-perl --without-perl-urpm" +# The --with-dbsql will only tell RPM to check for support, db +# may or may not be built w/ the dbsql support. +WITH_DB = "--with-db --with-dbsql --without-db-tools-integrated" +PACKAGECONFIG[db] = "${WITH_DB},--without-db,db," -WITH_DB = "--with-db --with-dbsql --without-db-tools-integrated
--without-sqlite"
meta/recipes-devtools/rpm/rpm_5.4.9.bb acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java"
Quoted 3 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +1
-1+PACKAGECONFIG[sqlite] = "--with-sqlite,--without-sqlite,sqlite3," -WITH_CRYPTO = "--with-beecrypt --with-openssl --without-nss
--without-gcrypt"
Quoted 18 lines
meta/recipes-devtools/rpm/rpm_5.4.9.bb renamed from meta/recipes-devtools/rpm/rpm_5.4.8.bb +6
-3+PACKAGECONFIG[beecrypt] = "--with-beecrypt,--without-beecrypt,beecrypt," +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl," +PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss," +PACKAGECONFIG[gcrypt] = "--with-gcrypt,--without-gcrypt,gcrypt," +PACKAGECONFIG[keyutils] = "--with-keyutils,--without-keyutils,keyutils," +PACKAGECONFIG[libelf] = "--with-libelf,--without-libelf,elfutils," -WITH_KEYUTILS = "--without-keyutils" -WITH_LIBELF = "--with-libelf" -WITH_SELINUX =--1.7.3.4
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
PATCH v7 3/9 ossp-uuid: Add oss-uuid package and RPM 5.4.9 integration
In reply to Mark HatleRPM 5.4.9 now strongly encourages you to have the ossp-uuid library available.
Add this recipe, and change RPM to use the uuid functionality.
--- .../ossp-uuid/0001-Change-library-name.patch | 112 ++++++++++++++++++++ ...erve-m-option-status-in-v-option-handling.patch | 55 ++++++++++ .../ossp-uuid/0003-Fix-whatis-entries.patch | 51 +++++++++ .../ossp-uuid/0004-fix-data-uuid-from-string.patch | 36 ++++++ .../ossp-uuid/ossp-uuid/uuid-libtool.patch | 24 ++++ .../ossp-uuid/ossp-uuid/uuid-nostrip.patch | 16 +++ meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb | 58 ++++++++++ meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch | 20 ++++ meta/recipes-devtools/rpm/rpm_5.4.9.bb | 11 ++- 9 files changed, 380 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0001-Change-library-name.patch create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0002-uuid-preserve-m-option-status-in-v-option-handling.patch create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0003-Fix-whatis-entries.patch create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/0004-fix-data-uuid-from-string.patch create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/uuid-libtool.patch create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid/uuid-nostrip.patch create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch
meta/recipes-devtools/ossp-uuid/ossp-uuid/0001-Change-library-name.patch new file +112 -0
@@ -0,0 +1,112 @@ +From: Piotr Roszatycki <[email protected]> +Date: Wed, 27 Jan 2010 16:53:11 +0100 +Subject: [PATCH] Change library name + +The soname was changed to ossp-uuid to prevend the name clash with e2fsprogs's +uuid library. +--- + Makefile.in | 6 +++--- + perl/Makefile.PL | 12 ++++++------ + php/config.m4 | 2 +- + uuid-config.in | 2 +- + uuid.pc.in | 4 ++-- + 5 files changed, 13 insertions(+), 13 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index d28f4be..c2ba99d 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -62,13 +62,13 @@ PERL = @PERL@ + PHP = @PHP@ + PG_CONFIG = @PG_CONFIG@ + +-LIB_NAME = libuuid.la ++LIB_NAME = libossp-uuid.la + LIB_OBJS = uuid.lo uuid_md5.lo uuid_sha1.lo uuid_prng.lo uuid_mac.lo uuid_time.lo uuid_ui64.lo uuid_ui128.lo uuid_str.lo + +-DCE_NAME = libuuid_dce.la ++DCE_NAME = libossp-uuid_dce.la + DCE_OBJS = uuid_dce.lo $(LIB_OBJS) + +-CXX_NAME = libuuid++.la ++CXX_NAME = libossp-uuid++.la + CXX_OBJS = uuid++.lo $(LIB_OBJS) + + PRG_NAME = uuid +diff --git a/perl/Makefile.PL b/perl/Makefile.PL +index 92f4494..9c6fee6 100644 +--- a/perl/Makefile.PL ++++ b/perl/Makefile.PL +@@ -33,9 +33,9 @@ use Config; + use ExtUtils::MakeMaker; + + # determine source directory +-my ($srcdir) = map { my $d = $_; $d =~ s/\/libuuid\.la$//; $d } +- grep { -f $_ } ("../libuuid.la", glob("../*/libuuid.la")) +- or die "no source directory found (where libuuid.la is located)"; ++my ($srcdir) = map { my $d = $_; $d =~ s/\/libossp-uuid\.la$//; $d } ++ grep { -f $_ } ("../libossp-uuid.la", glob("../*/libossp-uuid.la")) ++ or die "no source directory found (where libossp-uuid.la is located)"; + + # determine extra build options + my $compat = 0; +@@ -47,15 +47,15 @@ WriteMakefile( + VERSION_FROM => 'uuid.pm', + ABSTRACT_FROM => 'uuid.pod', + PREREQ_PM => {}, +- LIBS => [ "-L$srcdir/.libs -L$srcdir -luuid" ], ++ LIBS => [ "-L$srcdir/.libs -L$srcdir -lossp-uuid" ], + DEFINE => '', + INC => "-I. -I$srcdir", + PM => { 'uuid.pm' => '$(INST_LIBDIR)/uuid.pm', + 'uuid.pod' => '$(INST_LIBDIR)/uuid.pod', + ($compat ? ('uuid_compat.pm' => '$(INST_LIBDIR)/../Data/UUID.pm') : ()), + ($compat ? ('uuid_compat.pod' => '$(INST_LIBDIR)/../Data/UUID.pod') : ()), }, +- MAN3PODS => { 'uuid.pod' => '$(INST_MAN3DIR)/OSSP::uuid.3', +- ($compat ? ('uuid_compat.pod' => '$(INST_MAN3DIR)/Data::UUID.3') : ()), }, ++ MAN3PODS => { 'uuid.pod' => '$(INST_MAN3DIR)/OSSP::uuid.3pm', ++ ($compat ? ('uuid_compat.pod' => '$(INST_MAN3DIR)/Data::UUID.3pm') : ()), }, + TYPEMAPS => [ 'uuid.tm' ], + test => { TESTS => 'uuid.ts' . ($compat ? ' uuid_compat.ts' : '') }, + NO_META => 1, +diff --git a/php/config.m4 b/php/config.m4 +index 5091b96..969b457 100644 +--- a/php/config.m4 ++++ b/php/config.m4 +@@ -34,7 +34,7 @@ if test "$PHP_UUID" != "no"; then + PHP_NEW_EXTENSION(uuid, uuid.c, $ext_shared) + AC_DEFINE(HAVE_UUID, 1, [Have OSSP uuid library]) + PHP_ADD_LIBPATH([..], ) +- PHP_ADD_LIBRARY([uuid],, UUID_SHARED_LIBADD) ++ PHP_ADD_LIBRARY([ossp-uuid],, UUID_SHARED_LIBADD) + PHP_ADD_INCLUDE([..]) + PHP_SUBST(UUID_SHARED_LIBADD) + +diff --git a/uuid-config.in b/uuid-config.in +index 8d2a063..5b58812 100644 +--- a/uuid-config.in ++++ b/uuid-config.in +@@ -121,7 +121,7 @@ do + output_extra="$output_extra $uuid_ldflags" + ;; + --libs) +- output="$output -luuid" ++ output="$output -lossp-uuid" + output_extra="$output_extra $uuid_libs" + ;; + * ) +diff --git a/uuid.pc.in b/uuid.pc.in +index c76ad1e..de00c2f 100644 +--- a/uuid.pc.in ++++ b/uuid.pc.in +@@ -36,7 +36,7 @@ Name: OSSP uuid + Description: Universally Unique Identifier (UUID) Library + Version: @UUID_VERSION_RAW@ + URL: http://www.ossp.org/pkg/lib/uuid/ +-Cflags: -I${includedir} +-Libs: -L${libdir} -luuid ++Cflags: -I${includedir}/ossp ++Libs: -L${libdir} -lossp-uuid + Libs.private: @LIBS@ + +--
meta/recipes-devtools/ossp-uuid/ossp-uuid/0002-uuid-preserve-m-option-status-in-v-option-handling.patch new file +55 -0
55 lines not on this page · raw message
meta/recipes-devtools/ossp-uuid/ossp-uuid/0003-Fix-whatis-entries.patch new file +51 -0
51 lines not on this page · raw message
meta/recipes-devtools/ossp-uuid/ossp-uuid/0004-fix-data-uuid-from-string.patch new file +36 -0
@@ -0,0 +1,36 @@ +Description: Support dash-less args to from_string. +Author: Tim Retout <[email protected]> +Bug-Debian: http://bugs.debian.org/635607 + +The module Data::GUID depends on Data::UUID supporting this behaviour. + +--- a/perl/uuid_compat.pm ++++ b/perl/uuid_compat.pm +@@ -93,7 +93,9 @@ + $uuid->import('str', + $str =~ /^0x/ + ? join '-', unpack('x2 a8 a4 a4 a4 a12', $str) +- : $str ++ : $str =~ /-/ ++ ? $str ++ : join '-', unpack('A8 A4 A4 A4 A12', $str) + ); + return $uuid->export('bin'); + } +--- a/perl/uuid_compat.ts ++++ b/perl/uuid_compat.ts +@@ -28,7 +28,7 @@ + ## uuid_compat.ts: Data::UUID Backward Compatibility Perl API (Perl test suite part) + ## + +-use Test::More tests => 14; ++use Test::More tests => 16; + + BEGIN { + use_ok('Data::UUID'); +@@ -53,3 +53,5 @@ + ok($uuid8 = $ug->from_string("6ba7b811-9dad-11d1-80b4-00c04fd430c8")); + ok($ug->compare($uuid7, $uuid8) == 0); + ++ok($uuid9 = $ug->from_string("6ba7b8119dad11d180b400c04fd430c8")); ++ok($ug->compare($uuid7, $uuid9) == 0);
meta/recipes-devtools/ossp-uuid/ossp-uuid/uuid-libtool.patch new file +24 -0
@@ -0,0 +1,24 @@ +Remove hardcoded libtool name, fall back to generated name + +Signed-off-by: Mark Hatle <[email protected]> + +diff -ur uuid-1.6.2.orig/Makefile.in uuid-1.6.2/Makefile.in +--- uuid-1.6.2.orig/Makefile.in 2012-05-14 14:37:19.579672930 -0500 ++++ uuid-1.6.2/Makefile.in 2012-05-14 14:37:49.112733787 -0500 +@@ -32,6 +32,7 @@ + VPATH = @srcdir@ + srcdir = @srcdir@ + top_srcdir = @top_srcdir@ ++top_builddir = @top_builddir@ + S = $(srcdir) + C = . + +@@ -55,7 +56,7 @@ + CP = cp + RMDIR = rmdir + SHTOOL = $(S)/shtool +-LIBTOOL = $(C)/libtool ++LIBTOOL = @LIBTOOL@ + TRUE = true + POD2MAN = pod2man + PERL = @PERL@
meta/recipes-devtools/ossp-uuid/ossp-uuid/uuid-nostrip.patch new file +16 -0
@@ -0,0 +1,16 @@ +We don't want anything stripped + +Signed-off-by: Mark Hatle <[email protected]> + +diff -ur uuid-1.6.2.orig/Makefile.in uuid-1.6.2/Makefile.in +--- uuid-1.6.2.orig/Makefile.in 2012-05-14 14:42:42.225789456 -0500 ++++ uuid-1.6.2/Makefile.in 2012-05-14 15:03:03.119733400 -0500 +@@ -254,7 +254,7 @@ + -@if [ ".$(WITH_CXX)" = .yes ]; then \ + $(LIBTOOL) --mode=install $(SHTOOL) install -c -m 644 $(CXX_NAME) $(DESTDIR)$(libdir)/; \ + fi +- @$(LIBTOOL) --mode=install $(SHTOOL) install -c -s -m 755 uuid $(DESTDIR)$(bindir)/ ++ @$(LIBTOOL) --mode=install $(SHTOOL) install -c -m 755 uuid $(DESTDIR)$(bindir)/ + $(SHTOOL) install -c -m 644 $(S)/uuid.1 $(DESTDIR)$(mandir)/man1/ + -@if [ ".$(WITH_PERL)" = .yes ]; then \ + (cd $(S)/perl && $(MAKE) $(MFLAGS) install DESTDIR=$(DESTDIR)); \
meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb new file +58 -0
58 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch new file +20 -0
@@ -0,0 +1,20 @@ +Fix integration of ossp-uuid + +We need to avoid including the util-linux uuid library, instead +we need ossp-uuid. There is a related hack in do_configure to +make sure that we use the right .pc file as well. + +Signed-off-by: Mark Hatle <[email protected]> + +diff -ur rpm-5.4.9.orig/configure.ac rpm-5.4.9/configure.ac +--- rpm-5.4.9.orig/configure.ac 2012-05-17 16:37:20.594790192 -0500 ++++ rpm-5.4.9/configure.ac 2012-05-17 16:39:23.126933596 -0500 +@@ -1909,7 +1909,7 @@ + esac + RPM_CHECK_LIB( + [OSSP uuid], [uuid], +- [ossp-uuid uuid], [uuid_import], [uuid.h], ++ [ossp-uuid], [uuid_import], [uuid.h], + [no,external:none], [], + [ dnl # enable OSSP uuid native API support for embedded Lua + if test ".$WITH_LUA" = .yes; then
meta/recipes-devtools/rpm/rpm_5.4.9.bb +8 -3
@@ -42,8 +42,8 @@ HOMEPAGE = "http://rpm5.org/" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" -DEPENDS = "libpcre attr acl popt file" -PR = "r40" +DEPENDS = "libpcre attr acl popt ossp-uuid file" +PR = "r41" # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed # in order to extract the distribution SRPM into a format we can extract...
@@ -69,6 +69,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex file://rpm-no-perl-urpm.patch \ file://rpm-macros.patch \ file://rpm-lua.patch \ + file://rpm-ossp-uuid.patch \ " SRC_URI[md5sum] = "60d56ace884340c1b3fcac6a1d58e768"
@@ -145,7 +146,7 @@ EXTRA_OECONF += "--verbose \ --without-gnutls \ --with-pcre \ --enable-utf8 \ - --without-uuid \ + --with-uuid \ --with-attr \ --with-acl \ --with-popt=external \
@@ -330,6 +331,10 @@ do_configure() { ./autogen.sh + # NASTY hack to make sure configure files the right pkg-config file... + sed -e 's/pkg-config --exists uuid/pkg-config --exists ossp-uuid/g' \ + -e 's/pkg-config uuid/pkg-config ossp-uuid/g' -i configure + export varprefix=${localstatedir} export CC_FOR_BUILD="${BUILD_CC}" oe_runconf
Signature · 1 line
1.7.3.4
PATCH v7 4/9 package_rpm: Add capability to directly query packageorigin
In reply to Mark HatleAdd functionality to RPM to directly query the packageorigin (path) from the resolver database, instead of having to do this via an indirect method.
This results in a minor performance improvement.
--- meta/classes/package_rpm.bbclass | 18 +++++++------- .../rpm/rpm/rpm-packageorigin.patch | 23 ++++++++++++++++++++ meta/recipes-devtools/rpm/rpm_5.4.9.bb | 3 +- 3 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch
meta/classes/package_rpm.bbclass +9 -9
@@ -130,12 +130,12 @@ resolve_package_rpm () { shift local pkg_name="" for solve in `cat ${conffile}`; do - pkg_name=$(${RPM} -D "_dbpath $solve" -D "__dbi_txn create nofsync" -q --yaml $@ | grep -i 'Packageorigin' | cut -d : -f 2) - if [ -n "$pkg_name" ]; then + pkg_name=$(${RPM} -D "_dbpath $solve" -D "__dbi_txn create nofsync" -q --qf "%{packageorigin}\n" "$@" | grep -v "is not installed" || true) + if [ -n "$pkg_name" -a "$pkg_name" != "(none)" ]; then + echo $pkg_name break; fi done - echo $pkg_name } # rpm common command and options
@@ -401,9 +401,9 @@ package_install_internal_rpm () { # Now that we have a solution, pull out a list of what to install... echo "Manifest: ${target_rootfs}/install/install.manifest" - ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --yaml \ + ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --qf "%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \ - | grep -i 'Packageorigin' | cut -d : -f 2 > ${target_rootfs}/install/install_solution.manifest + > ${target_rootfs}/install/install_solution.manifest touch ${target_rootfs}/install/install_multilib_solution.manifest
@@ -421,9 +421,9 @@ package_install_internal_rpm () { # Now that we have a solution, pull out a list of what to install... echo "Manifest: ${target_rootfs}/install/install_multilib.manifest" - ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --yaml \ + ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --qf "%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \ - | grep -i 'Packageorigin' | cut -d : -f 2 > ${target_rootfs}/install/install_multilib_solution.manifest + > ${target_rootfs}/install/install_multilib_solution.manifest fi
@@ -478,9 +478,9 @@ EOF -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ ${target_rootfs}/install/initial_install.manifest - ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --yaml \ + ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf "%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \ - | grep -i 'Packageorigin' | cut -d : -f 2 > ${target_rootfs}/install/initial_solution.manifest + > ${target_rootfs}/install/initial_solution.manifest rpm_update_pkg ${target_rootfs}/install/initial_solution.manifest
meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch new file +23 -0
@@ -0,0 +1,23 @@ +Add the ability to query the packageorigin + +Written by jbj at rpm5.org + +Signed-off-by: Mark Hatle <[email protected]> + +Index: rpm-5.4.8/rpmdb/hdrfmt.c +=================================================================== +--- rpm-5.4.8.orig/rpmdb/hdrfmt.c ++++ rpm-5.4.8/rpmdb/hdrfmt.c +@@ -2403,8 +2403,10 @@ static int pkgoriginTag(Header h, HE_t + int rc = 1; + + he->tag = RPMTAG_PACKAGEORIGIN; +- if (!headerGet(h, he, HEADERGET_NOEXTENSION) +- && (origin = headerGetOrigin(h)) != NULL) ++ /* XXX two sources for tag data: what search precedence? */ ++ if (headerGet(h, he, HEADERGET_NOEXTENSION)) ++ rc = 0; ++ else if ((origin = headerGetOrigin(h)) != NULL) + { + he->t = RPM_STRING_TYPE; + he->p.str = xstrdup(origin);
meta/recipes-devtools/rpm/rpm_5.4.9.bb +2 -1
@@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" DEPENDS = "libpcre attr acl popt ossp-uuid file" -PR = "r41" +PR = "r42" # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed # in order to extract the distribution SRPM into a format we can extract...
@@ -70,6 +70,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex file://rpm-macros.patch \ file://rpm-lua.patch \ file://rpm-ossp-uuid.patch \ + file://rpm-packageorigin.patch \ " SRC_URI[md5sum] = "60d56ace884340c1b3fcac6a1d58e768"
Signature · 1 line
1.7.3.4
Re: [PATCH 4/9] package_rpm: Add capability to directly query packageorigin
Hi Mark,
this can be interesting for me. Please can you explain with an example what really this patch does?
Many thanks,
Giuseppe
2012/6/11 Mark Hatle <[email protected]>
Quoted 151 lines
Add functionality to RPM to directly query the packageorigin (path) from the resolver database, instead of having to do this via an indirect method.
This results in a minor performance improvement.
Signed-off-by Mark Hatle <[email protected]>--- meta/classes/package_rpm.bbclass | 18 +++++++------- .../rpm/rpm/rpm-packageorigin.patch | 23 ++++++++++++++++++++ meta/recipes-devtools/rpm/rpm_5.4.9.bb | 3 +- 3 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patchmeta/classes/package_rpm.bbclass +1
-2@@ -130,12 +130,12 @@ resolve_package_rpm () { shift local pkg_name="" for solve in `cat ${conffile}`; do - pkg_name=$(${RPM} -D "_dbpath $solve" -D "__dbi_txn create nofsync" -q --yaml $@ | grep -i 'Packageorigin' | cut -d : -f 2) - if [ -n "$pkg_name" ]; then + pkg_name=$(${RPM} -D "_dbpath $solve" -D "__dbi_txn createnofsync" -q --qf "%{packageorigin}\n" "$@" | grep -v "is not installed" || true)
meta/classes/package_rpm.bbclass +3
-3+ if [ -n "$pkg_name" -a "$pkg_name" != "(none)" ]; then + echo $pkg_name break; fi done - echo $pkg_name } # rpm common command and options@@ -401,9 +401,9 @@ package_install_internal_rpm () { # Now that we have a solution, pull out a list of what to install... echo "Manifest: ${target_rootfs}/install/install.manifest" - ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --yaml \ + ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --qf "%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \ - | grep -i 'Packageorigin' | cut -d : -f 2 >${target_rootfs}/install/install_solution.manifest
meta/classes/package_rpm.bbclass +1
-0+ > ${target_rootfs}/install/install_solution.manifest touch ${target_rootfs}/install/install_multilib_solution.manifest@@ -421,9 +421,9 @@ package_install_internal_rpm () { # Now that we have a solution, pull out a list of what toinstall...
echo "Manifest:
${target_rootfs}/install/install_multilib.manifest"meta/classes/package_rpm.bbclass +1
-1- ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --yaml \ + ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --qf"%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \- | grep -i 'Packageorigin' | cut -d : -f 2 >
${target_rootfs}/install/install_multilib_solution.manifest
+ >
${target_rootfs}/install/install_multilib_solution.manifestfi
meta/classes/package_rpm.bbclass +1
-3@@ -478,9 +478,9 @@ EOF -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ ${target_rootfs}/install/initial_install.manifest - ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --yaml \ + ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf "%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \ - | grep -i 'Packageorigin' | cut -d : -f 2 >${target_rootfs}/install/initial_solution.manifest
+ >
${target_rootfs}/install/initial_solution.manifest
rpm_update_pkg
${target_rootfs}/install/initial_solution.manifestmeta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch new file +23
-0@@ -0,0 +1,23 @@ +Add the ability to query the packageorigin + +Written by jbj at rpm5.org + +Signed-off-by: Mark Hatle <[email protected]> + +Index: rpm-5.4.8/rpmdb/hdrfmt.c +=================================================================== +--- rpm-5.4.8.orig/rpmdb/hdrfmt.c ++++ rpm-5.4.8/rpmdb/hdrfmt.c +@@ -2403,8 +2403,10 @@ static int pkgoriginTag(Header h, HE_t + int rc = 1; + + he->tag = RPMTAG_PACKAGEORIGIN; +- if (!headerGet(h, he, HEADERGET_NOEXTENSION) +- && (origin = headerGetOrigin(h)) != NULL) ++ /* XXX two sources for tag data: what search precedence? */ ++ if (headerGet(h, he, HEADERGET_NOEXTENSION)) ++ rc = 0; ++ else if ((origin = headerGetOrigin(h)) != NULL) + { + he->t = RPM_STRING_TYPE; + he->p.str = xstrdup(origin);(quoted diff) +0
-0rpm_5.4.9.bb
index 2ca0f58..a38a684 100644meta/recipes-devtools/rpm/rpm_5.4.9.bb +0
-0@@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM ="file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
DEPENDS = "libpcre attr acl popt ossp-uuid file"
meta/recipes-devtools/rpm/rpm_5.4.9.bb +1
-1-PR = "r41" +PR = "r42" # rpm2cpio is a shell script, which is part of the rpm src.rpm. It isneeded
# in order to extract the distribution SRPM into a format we can extract...meta/recipes-devtools/rpm/rpm_5.4.9.bb +0
-0@@ -70,6 +70,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex
file://rpm-macros.patch \ file://rpm-lua.patch \ file://rpm-ossp-uuid.patch \ + file://rpm-packageorigin.patch \ "SRC_URI[md5sum] = "
60d56ace884340c1b3fcac6a1d58e768"
--
1.7.3.4_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Re: [PATCH 4/9] package_rpm: Add capability to directly query packageorigin
Quoted 3 lines · Giuseppe Condorelli
Hi Mark,
this can be interesting for me. Please can you explain with an example what really this patch does?
The resolver database is seeded with all of the items from the packagefeed. When you seed (install) a database, each entry gets a record of where the package file exists on the disk. This is stored in the packageorigin field. It is designed to be used by resolver systems.
Before you could only query the packageorigin field if you were using raw RPM calls or using the --yaml export features. We wanted to be able to query the file path from the resolver via the shell. This patch added that ability.
The packageorigin is likely not useful to anyone, unless you are using it in conjunction w/ an associated package feed/resolver database.
--Mark
Quoted 151 lines
Many thanks,
Giuseppe2012/6/11 Mark Hatle <[email protected] <mailto:[email protected]>>
Add functionality to RPM to directly query the packageorigin (path) from the resolver database, instead of having to do this via an indirect method. This results in a minor performance improvement. Signed-off-by: Mark Hatle <[email protected] <mailto:[email protected]>> --- meta/classes/package_rpm.bbclass | 18 +++++++------- .../rpm/rpm/rpm-packageorigin.patch | 23 ++++++++++++++++++++ meta/recipes-devtools/rpm/rpm_5.4.9.bb <http://rpm_5.4.9.bb> | 3 +- 3 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index 35928ab..097fa12 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass @@ -130,12 +130,12 @@ resolve_package_rpm () { shift local pkg_name="" for solve in `cat ${conffile}`; do - pkg_name=$(${RPM} -D "_dbpath $solve" -D "__dbi_txn create nofsync" -q --yaml $@ | grep -i 'Packageorigin' | cut -d : -f 2) - if [ -n "$pkg_name" ]; then + pkg_name=$(${RPM} -D "_dbpath $solve" -D "__dbi_txn create nofsync" -q --qf "%{packageorigin}\n" "$@" | grep -v "is not installed" || true) + if [ -n "$pkg_name" -a "$pkg_name" != "(none)" ]; then + echo $pkg_name break; fi done - echo $pkg_name } # rpm common command and options @@ -401,9 +401,9 @@ package_install_internal_rpm () { # Now that we have a solution, pull out a list of what to install... echo "Manifest: ${target_rootfs}/install/install.manifest" - ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --yaml \ + ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --qf "%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \ - | grep -i 'Packageorigin' | cut -d : -f 2 > ${target_rootfs}/install/install_solution.manifest + > ${target_rootfs}/install/install_solution.manifest touch ${target_rootfs}/install/install_multilib_solution.manifest @@ -421,9 +421,9 @@ package_install_internal_rpm () { # Now that we have a solution, pull out a list of what to install... echo "Manifest: ${target_rootfs}/install/install_multilib.manifest" - ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --yaml \ + ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --qf "%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \ - | grep -i 'Packageorigin' | cut -d : -f 2 > ${target_rootfs}/install/install_multilib_solution.manifest + > ${target_rootfs}/install/install_multilib_solution.manifest fi @@ -478,9 +478,9 @@ EOF -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ ${target_rootfs}/install/initial_install.manifest - ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --yaml \ + ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf "%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \ - | grep -i 'Packageorigin' | cut -d : -f 2 > ${target_rootfs}/install/initial_solution.manifest + > ${target_rootfs}/install/initial_solution.manifest rpm_update_pkg ${target_rootfs}/install/initial_solution.manifest diff --git a/meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch b/meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch new file mode 100644 index 0000000..3c6dad4 --- /dev/null +++ b/meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch @@ -0,0 +1,23 @@ +Add the ability to query the packageorigin + +Written by jbj at rpm5.org <http://rpm5.org> + +Signed-off-by: Mark Hatle <[email protected] <mailto:[email protected]>> + +Index: rpm-5.4.8/rpmdb/hdrfmt.c +=================================================================== +--- rpm-5.4.8.orig/rpmdb/hdrfmt.c ++++ rpm-5.4.8/rpmdb/hdrfmt.c +@@ -2403,8 +2403,10 @@ static int pkgoriginTag(Header h, HE_t + int rc = 1; + + he->tag = RPMTAG_PACKAGEORIGIN; +- if (!headerGet(h, he, HEADERGET_NOEXTENSION) +- && (origin = headerGetOrigin(h)) != NULL) ++ /* XXX two sources for tag data: what search precedence? */ ++ if (headerGet(h, he, HEADERGET_NOEXTENSION)) ++ rc = 0; ++ else if ((origin = headerGetOrigin(h)) != NULL) + { + he->t = RPM_STRING_TYPE; + he->p.str = xstrdup(origin); diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb <http://rpm_5.4.9.bb> b/meta/recipes-devtools/rpm/rpm_5.4.9.bb <http://rpm_5.4.9.bb> index 2ca0f58..a38a684 100644 --- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb <http://rpm_5.4.9.bb> +++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb <http://rpm_5.4.9.bb> @@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" DEPENDS = "libpcre attr acl popt ossp-uuid file" -PR = "r41" +PR = "r42" # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed # in order to extract the distribution SRPM into a format we can extract... @@ -70,6 +70,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex file://rpm-macros.patch \ file://rpm-lua.patch \ file://rpm-ossp-uuid.patch \ + file://rpm-packageorigin.patch \ " SRC_URI[md5sum] = "60d56ace884340c1b3fcac6a1d58e768" -- 1.7.3.4 _______________________________________________ Openembedded-core mailing list [email protected] <mailto:[email protected]> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Re: [PATCH 4/9] package_rpm: Add capability to directly query packageorigin
Hi Mark,
many thanks for the explanation.
Cheers,
Giuseppe
2012/6/12 Mark Hatle <[email protected]>
Quoted 212 lines · Giuseppe Condorelli
Quoted 6 lines
Hi Mark,
this can be interesting for me. Please can you explain with an example what
really this patch does?The resolver database is seeded with all of the items from the packagefeed. When you seed (install) a database, each entry gets a record of where the package file exists on the disk. This is stored in the packageorigin field. It is designed to be used by resolver systems.
Before you could only query the packageorigin field if you were using raw RPM calls or using the --yaml export features. We wanted to be able to query the file path from the resolver via the shell. This patch added that ability.
The packageorigin is likely not useful to anyone, unless you are using it in conjunction w/ an associated package feed/resolver database.
--Mark
Many thanks,
Quoted 176 lines
Giuseppe
2012/6/11 Mark Hatle <[email protected] <mailto:
mark.hatle@windriver.**com <[email protected]>>>Add functionality to RPM to directly query the packageorigin (path)
from
the resolver database, instead of having to do this via an indirect
method.This results in a minor performance improvement. Signed-off-by: Mark Hatle <[email protected] <mailto:mark.hatle@windriver.**com <[email protected]>>> --- meta/classes/package_rpm.**bbclass | 18 +++++++------- .../rpm/rpm/rpm-packageorigin.**patch | 23 ++++++++++++++++++++ meta/recipes-devtools/rpm/rpm_**5.4.9.bb <http://rpm_5.4.9.bb> <http://rpm_5.4.9.bb> | 3 +-
3 files changed, 34 insertions(+), 10 deletions(-)create mode 100644 meta/recipes-devtools/rpm/rpm/**
rpm-packageorigin.patchdiff --git a/meta/classes/package_rpm.**bbclassb/meta/classes/package_rpm.**bbclass
index 35928ab..097fa12 100644
--- a/meta/classes/package_rpm.**bbclass
+++ b/meta/classes/package_rpm.**bbclass
@@ -130,12 +130,12 @@resolve_package_rpm() {
shift
local pkg_name=""
for solve incat ${conffile}; do
- pkg_name=$(${RPM} -D "_dbpath$solve" -D "__dbi_txncreate nofsync"(quoted diff) +0
-2-q --yaml $@ | grep -i 'Packageorigin' | cut -d : -f 2) - if [ -n "$pkg_name" ]; then + pkg_name=$(${RPM} -D "_dbpath $solve" -D "__dbi_txn create nofsync" -q --qf "%{packageorigin}\n" "$@" | grep -v "is not installed" || true) + if [ -n "$pkg_name" -a "$pkg_name" != "(none)" ]; then + echo $pkg_name break; fi done - echo $pkg_name } # rpm common command and options @@ -401,9 +401,9 @@ package_install_internal_rpm () { # Now that we have a solution, pull out a list of what to install... echo "Manifest: ${target_rootfs}/install/**install.manifest" - ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --yaml \ + ${RPM} -D "_dbpath ${target_rootfs}/install" -qa --qf"%{packageorigin}\n" \
-D "__dbi_txncreate nofsync private" \
- | grep -i 'Packageorigin' | cut -d : -f 2 > ${target_rootfs}/install/**install_solution.manifest
+ > ${target_rootfs}/install/**install_solution.manifesttouch ${target_rootfs}/install/**install_multilib_solution.**manifest @@ -421,9 +421,9 @@ package_install_internal_rpm () {# Now that we have a solution, pull out a list of what to install... echo "Manifest: ${target_rootfs}/install/**install_multilib.manifest"
- ${RPM} -D "_dbpath${target_rootfs}/install" -qa --yaml \
+ ${RPM} -D "_dbpath${target_rootfs}/install" -qa --qf"%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \ - | grep -i 'Packageorigin' | cut -d : -f 2 > ${target_rootfs}/install/**install_multilib_solution.**manifest + > ${target_rootfs}/install/**install_multilib_solution.**manifest fi @@ -478,9 +478,9 @@ EOF -U --justdb --noscripts --notriggers --noparentdirs --nolinktos--ignoresize \
${target_rootfs}/install/**initial_install.manifest- ${RPM} -D "
_dbpath${target_rootfs}/initial" -qa --yaml \
+ ${RPM} -D "_dbpath${target_rootfs}/initial" -qa --qf"%{packageorigin}\n" \ -D "__dbi_txn create nofsync private" \ - | grep -i 'Packageorigin' | cut -d : -f 2 > ${target_rootfs}/install/**initial_solution.manifest + > ${target_rootfs}/install/**initial_solution.manifest rpm_update_pkg ${target_rootfs}/install/**initial_solution.manifest diff --git a/meta/recipes-devtools/rpm/**rpm/rpm-packageorigin.patch b/meta/recipes-devtools/rpm/**rpm/rpm-packageorigin.patch new file mode 100644 index 0000000..3c6dad4 --- /dev/null +++ b/meta/recipes-devtools/rpm/**rpm/rpm-packageorigin.patch @@ -0,0 +1,23 @@ +Add the ability to query the packageorigin + +Written by jbj at rpm5.org <http://rpm5.org> + +Signed-off-by: Mark Hatle <[email protected] <mailto:mark.hatle@windriver.**com <[email protected]>>> + +Index: rpm-5.4.8/rpmdb/hdrfmt.c +=============================**==============================**========
+---rpm-5.4.8.orig/rpmdb/hdrfmt.c
++++rpm-5.4.8/rpmdb/hdrfmt.c
+@@ -2403,8 +2403,10 @@ static int pkgoriginTag(Header h,HE_t
+ int rc = 1;
+
+he->tag=RPMTAG_PACKAGEORIGIN;+- if (!headerGet(h, he, HEADERGET_NOEXTENSION) +- && (origin = headerGetOrigin(h)) != NULL) ++ /* XXX two sources for tag data: what search precedence? */ ++ if (headerGet(h, he, HEADERGET_NOEXTENSION)) ++ rc = 0; ++ else if ((origin = headerGetOrigin(h)) != NULL) + { + he->t = RPM_STRING_TYPE; + he->p.str = xstrdup(origin); diff --git a/meta/recipes-devtools/rpm/rp**m_5.4.9.bb<http://rpm_5.4.9.bb><http://rpm_5.4.9.bb>
b/meta/recipes-devtools/rpm/rp**m_5.4.9.bb <http://rpm_5.4.9.bb> <
http://rpm_5.4.9.bb>
index 2ca0f58..a38a684 100644
--- a/meta/recipes-devtools/rpm/rp**m_5.4.9.bb <http://rpm_5.4.9.bb> <
http://rpm_5.4.9.bb>
+++ b/meta/recipes-devtools/rpm/rp**m_5.4.9.bb <http://rpm_5.4.9.bb> <
http://rpm_5.4.9.bb>@@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=**2d5025d4aa3495befef8f17206a5b0**a1"
DEPENDS = "libpcre attr acl popt ossp-uuid file" -PR = "r41"
+PR = "r42"# rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed # in order to extract the distribution SRPM into a format we can extract... @@ -70,6 +70,7 @@ SRC_URI = "http://www.rpm5.org/files/**rpm/rpm-5.4/rpm-5.4.9-0.** 20120508.src.rpm;ex<http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex> file://rpm-macros.patch \ file://rpm-lua.patch \ file://rpm-ossp-uuid.patch \ + file://rpm-packageorigin.patch \ "SRC_URI[md5sum] = "**60d56ace884340c1b3fcac6a1d58e7**68" -- 1.7.3.4 ______________________________**_________________ Openembedded-core mailing list Openembedded-core@lists.**openembedded.org<[email protected]> <mailto:Openembedded-core@**lists.openembedded.org<[email protected]>Quoted 1 line
http://lists.linuxtogo.org/**cgi-bin/mailman/listinfo/**
openembedded-core<http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core>Quoted 5 lines
______________________________**_________________
Openembedded-core mailing list Openembedded-core@lists.**openembedded.org<[email protected]>
http://lists.linuxtogo.org/**cgi-bin/mailman/listinfo/**openembedded-core<http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core>______________________________**_________________
Openembedded-core mailing list Openembedded-core@lists.**openembedded.org<[email protected]>
http://lists.linuxtogo.org/**cgi-bin/mailman/listinfo/**openembedded-core<http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core>
PATCH v7 5/9 rpm: Bump PR numbers on componets that require RPM
In reply to Mark HatleWith the recent RPM uprev, libzypp, sat-solver and zypper should be rebuilt to ensure they get the right BerkleyDB and rpmdb interfaces.
--- meta/recipes-extended/libzypp/libzypp_git.bb | 2 +- meta/recipes-extended/sat-solver/sat-solver_git.bb | 2 +- meta/recipes-extended/zypper/zypper_git.bb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
meta/recipes-extended/libzypp/libzypp_git.bb +1 -1
@@ -11,7 +11,7 @@ DEPENDS = "rpm boost curl libxml2 zlib sat-solver expat openssl udev libproxy" S = "${WORKDIR}/git" SRCREV = "15b6c52260bbc52b3d8e585e271b67e10cc7c433" PV = "0.0-git${SRCPV}" -PR = "r21" +PR = "r22" SRC_URI = "git://github.com/openSUSE/libzypp.git;protocol=git \ file://no-doc.patch \
meta/recipes-extended/sat-solver/sat-solver_git.bb +1 -1
@@ -8,7 +8,7 @@ DEPENDS = "libcheck rpm zlib expat db" SRCREV = "0a7378d5f482f477a01cf1690d76871ab8bdcc32" PV = "0.0-git${SRCPV}" -PR = "r13" +PR = "r14" PARALLEL_MAKE=""
meta/recipes-extended/zypper/zypper_git.bb +1 -1
@@ -5,7 +5,7 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=3201406e350b39e05a82e28b5020f413" DEPENDS = "libzypp augeas" -PR = "r2" +PR = "r3" SRCREV = "2c5bb6ceb99ecd950ef993e43d77bf0569ea0582" inherit cmake
Signature · 1 line
1.7.3.4
PATCH v7 6/9 rootfs_rpm.bbclass: Update database configuration file
In reply to Mark HatleMove the creation of the database configuration files to just before we perform the install actions. This ensures they will exist even in SDK or other non-target filesystem images.
--- meta/classes/package_rpm.bbclass | 32 ++++++++++++++++++++++++++++++++ meta/classes/rootfs_rpm.bbclass | 31 ------------------------------- 2 files changed, 32 insertions(+), 31 deletions(-)
meta/classes/package_rpm.bbclass +32 -0
@@ -454,6 +454,38 @@ EOF chmod 0755 ${WORKDIR}/scriptlet_wrapper + # Configure RPM... we enforce these settings! + mkdir -p ${target_rootfs}${rpmlibdir} + mkdir -p ${target_rootfs}${rpmlibdir}/log + # After change the __db.* cache size, log file will not be generated automatically, + # that will raise some warnings, so touch a bare log for rpm write into it. + touch ${target_rootfs}${rpmlibdir}/log/log.0000000001 + cat > ${target_rootfs}${rpmlibdir}/DB_CONFIG << EOF +# ================ Environment +set_data_dir . +set_create_dir . +set_lg_dir ./log +set_tmp_dir ./tmp +set_flags db_log_autoremove on + +# -- thread_count must be >= 8 +set_thread_count 64 + +# ================ Logging + +# ================ Memory Pool +set_cachesize 0 1048576 0 +set_mp_mmapsize 268435456 + +# ================ Locking +set_lk_max_locks 16384 +set_lk_max_lockers 16384 +set_lk_max_objects 16384 +mutex_set_max 163840 + +# ================ Replication +EOF + # RPM is special. It can't handle dependencies and preinstall scripts correctly. Its # probably a feature. The only way to convince rpm to actually run the preinstall scripts # for base-passwd and shadow first before installing packages that depend on these packages
meta/classes/rootfs_rpm.bbclass +0 -31
@@ -59,37 +59,6 @@ fakeroot rootfs_rpm_do_rootfs () { # Setup base system configuration mkdir -p ${INSTALL_ROOTFS_RPM}/etc/rpm/ - mkdir -p ${INSTALL_ROOTFS_RPM}${rpmlibdir} - mkdir -p ${INSTALL_ROOTFS_RPM}${rpmlibdir}/log - # After change the __db.* cache size, log file will not be generated automatically, - # that will raise some warnings, so touch a bare log for rpm write into it. - touch ${INSTALL_ROOTFS_RPM}${rpmlibdir}/log/log.0000000001 - cat > ${INSTALL_ROOTFS_RPM}${rpmlibdir}/DB_CONFIG << EOF -# ================ Environment -set_data_dir . -set_create_dir . -set_lg_dir ./log -set_tmp_dir ./tmp -set_flags db_log_autoremove on - -# -- thread_count must be >= 8 -set_thread_count 64 - -# ================ Logging - -# ================ Memory Pool -set_cachesize 0 1048576 0 -set_mp_mmapsize 268435456 - -# ================ Locking -set_lk_max_locks 16384 -set_lk_max_lockers 16384 -set_lk_max_objects 16384 -mutex_set_max 163840 - -# ================ Replication -EOF - # List must be prefered to least preferred order INSTALL_PLATFORM_EXTRA_RPM="" for each_arch in ${MULTILIB_PACKAGE_ARCHS} ${PACKAGE_ARCHS}; do
Signature · 1 line
1.7.3.4
PATCH v7 7/9 createrepo: For compatibility w/ RPM 5.4.9 remove RPMVSF_NOSIGNATURES flag
In reply to Mark HatleThe RPMVSF_NOSIGNATURES flag was removed from RPM5 - 5.4.9 as a result of additional -requires- package validation to help protect from malicious packages. The createrepo "dump" script has been updated to no longer use this flag. This remains compatible with prior versions of RPM.
--- .../createrepo/createrepo/createrepo-rpm549.patch | 19 +++++++++++++++++++ .../createrepo/createrepo_0.4.11.bb | 3 ++- 2 files changed, 21 insertions(+), 1 deletions(-) create mode 100644 meta/recipes-support/createrepo/createrepo/createrepo-rpm549.patch
meta/recipes-support/createrepo/createrepo/createrepo-rpm549.patch new file +19 -0
@@ -0,0 +1,19 @@ +dumpMetadata.py: Fix for RPM5 - 5.4.9 integration + +RPM5 no longer has a switch to disable signature validation. (Due to security +validation concerns.) + +Signed-off-by: Mark Hatle <[email protected]> + +diff -u createrepo-0.4.11.orig/dumpMetadata.py createrepo-0.4.11/dumpMetadata.py +--- createrepo-0.4.11.orig/dumpMetadata.py 2012-06-05 10:12:55.687964222 -0500 ++++ createrepo-0.4.11/dumpMetadata.py 2012-06-05 10:40:08.154060600 -0500 +@@ -92,7 +92,7 @@ + fdno = package # let's assume this is an fdno and go with it :) + except OSError: + raise MDError, "Error opening file" +- ts.setVSFlags((rpm._RPMVSF_NOSIGNATURES|rpm.RPMVSF_NOMD5|rpm.RPMVSF_NEEDPAYLOAD)) ++ ts.setVSFlags((rpm.RPMVSF_NOMD5|rpm.RPMVSF_NEEDPAYLOAD)) + try: + hdr = ts.hdrFromFdno(fdno) + except rpm.error:
meta/recipes-support/createrepo/createrepo_0.4.11.bb +2 -1
@@ -4,11 +4,12 @@ HOMEPAGE = "http://createrepo.baseurl.org/" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760" -PR = "r2" +PR = "r3" SRC_URI= "http://createrepo.baseurl.org/download/${BP}.tar.gz \ file://fix-native-install.patch \ file://python-scripts-should-use-interpreter-from-env.patch \ + file://createrepo-rpm549.patch \ " SRC_URI[md5sum] = "3e9ccf4abcffe3f49af078c83611eda2"
Signature · 1 line
1.7.3.4
PATCH v7 8/9 package_rpm: Verify that the package manifests are not empty
In reply to Mark HatleAn empty manifest will cause a failure condition. We ensure that any install actions occur only with a manifest larger then size 0. Also ensure that padding is added to the end of the manifest, instead of the beginning to enable this size check. (Padding is required for very small manifest files..)
--- meta/classes/package_rpm.bbclass | 59 ++++++++++++++++++++++---------------- 1 files changed, 34 insertions(+), 25 deletions(-)
meta/classes/package_rpm.bbclass +34 -25
@@ -182,6 +182,7 @@ rpm_update_pkg () { # been run by now, so don't have to run them(preun, postun, etc.) when # erase the pkg if [ -s ${target_rootfs}/install/remove.manifest ]; then + echo "# Removal manifest padding...." >> ${target_rootfs}/install/remove.manifest rpm_common_comand --noscripts --nodeps \ -e `cat ${target_rootfs}/install/remove.manifest` fi
@@ -249,7 +250,7 @@ package_install_internal_rpm () { # Setup manifest of packages to install... mkdir -p ${target_rootfs}/install - echo "# Install manifest" > ${target_rootfs}/install/install.manifest + rm -f ${target_rootfs}/install/install.manifest # Uclibc builds don't provide this stuff... if [ x${TARGET_OS} = "xlinux" ] || [ x${TARGET_OS} = "xlinux-gnueabi" ] ; then
@@ -309,12 +310,15 @@ package_install_internal_rpm () { # Generate an install solution by doing a --justdb install, then recreate it with # an actual package install! - ${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ - --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ - -D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}-base_archs.macro`" \ - -D "__dbi_txn create nofsync" \ - -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ - ${target_rootfs}/install/install.manifest + if [ -s ${target_rootfs}/install/install.manifest ]; then + echo "# Install manifest padding" >> ${target_rootfs}/install/install.manifest + ${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ + --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ + -D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}-base_archs.macro`" \ + -D "__dbi_txn create nofsync" \ + -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ + ${target_rootfs}/install/install.manifest + fi if [ ! -z "${package_attemptonly}" ]; then echo "Adding attempt only packages..."
@@ -407,8 +411,9 @@ package_install_internal_rpm () { touch ${target_rootfs}/install/install_multilib_solution.manifest - if [ -e "${target_rootfs}/install/install_multilib.manifest" ]; then + if [ -s "${target_rootfs}/install/install_multilib.manifest" ]; then # multilib package installation + echo "# Install multilib manifest padding" >> ${target_rootfs}/install/install_multilib.manifest # Generate an install solution by doing a --justdb install, then recreate it with # an actual package install!
@@ -493,33 +498,37 @@ EOF if [ "${INC_RPM_IMAGE_GEN}" = "1" -a -f "$pre_btmanifest" ]; then echo "Skipping pre install due to exisitng image" else - echo "# Initial Install manifest" > ${target_rootfs}/install/initial_install.manifest + rm -f ${target_rootfs}/install/initial_install.manifest echo "Installing base dependencies first (base-passwd, base-files and shadow) since rpm is special" grep /base-passwd-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true grep /base-files-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true grep /shadow-[0-9] ${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true - # Generate an install solution by doing a --justdb install, then recreate it with - # an actual package install! - mkdir -p ${target_rootfs}/initial + if [ -s ${target_rootfs}/install/initial_install.manifest ]; then + echo "# Initial Install manifest padding..." >> ${target_rootfs}/install/initial_install.manifest - ${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ - --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ - -D "_dbpath ${target_rootfs}/initial" -D "`cat ${confbase}.macro`" \ - -D "__dbi_txn create nofsync" \ - -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ - ${target_rootfs}/install/initial_install.manifest + # Generate an install solution by doing a --justdb install, then recreate it with + # an actual package install! + mkdir -p ${target_rootfs}/initial - ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf "%{packageorigin}\n" \ - -D "__dbi_txn create nofsync private" \ - > ${target_rootfs}/install/initial_solution.manifest + ${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \ + --predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \ + -D "_dbpath ${target_rootfs}/initial" -D "`cat ${confbase}.macro`" \ + -D "__dbi_txn create nofsync" \ + -U --justdb --noscripts --notriggers --noparentdirs --nolinktos --ignoresize \ + ${target_rootfs}/install/initial_install.manifest + + ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf "%{packageorigin}\n" \ + -D "__dbi_txn create nofsync private" \ + > ${target_rootfs}/install/initial_solution.manifest - rpm_update_pkg ${target_rootfs}/install/initial_solution.manifest + rpm_update_pkg ${target_rootfs}/install/initial_solution.manifest - grep -Fv -f ${target_rootfs}/install/initial_solution.manifest ${target_rootfs}/install/total_solution.manifest > ${target_rootfs}/install/total_solution.manifest.new - mv ${target_rootfs}/install/total_solution.manifest.new ${target_rootfs}/install/total_solution.manifest + grep -Fv -f ${target_rootfs}/install/initial_solution.manifest ${target_rootfs}/install/total_solution.manifest > ${target_rootfs}/install/total_solution.manifest.new + mv ${target_rootfs}/install/total_solution.manifest.new ${target_rootfs}/install/total_solution.manifest - rm -rf ${target_rootfs}/initial + rm -rf ${target_rootfs}/initial + fi fi echo "Installing main solution manifest (${target_rootfs}/install/total_solution.manifest)"
Signature · 1 line
1.7.3.4
Re: [PATCH 8/9] package_rpm: Verify that the package manifests are not empty
Quoted 1 line · Mark Hatle
An empty manifest will cause a failure condition. We ensure that any
install
Quoted 1 line
actions occur only with a manifest larger then size 0. Also ensure that
padding
Quoted 1 line
is added to the end of the manifest, instead of the beginning to enable
this
Quoted 5 lines
size check. (Padding is required for very small manifest files..)
Signed-off-by Mark Hatle <[email protected]>--- meta/classes/package_rpm.bbclass | 59
++++++++++++++++++++++----------------
Review
Quoted 3 lines
1 files changed, 34 insertions(+), 25 deletions(-)(quoted diff) +0
-0
b/meta/classes/package_rpm.bbclass
meta/classes/package_rpm.bbclass rpm_update_pkg () { · line 182
Quoted 5 lines
index b84c044..bb9aa1a 100644
meta/classes/package_rpm.bbclass +0
-0@@ -182,6 +182,7 @@ rpm_update_pkg () { # been run by now, so don't have to run them(preun, postun, etc.)
when
meta/classes/package_rpm.bbclass rpm_update_pkg () {
Quoted 3 lines
meta/classes/package_rpm.bbclass +1
-0# erase the pkg if [ -s ${target_rootfs}/install/remove.manifest ]; then + echo "# Removal manifest padding...." >>
${target_rootfs}/install/remove.manifest
Should this be just 'remove'
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 252
Quoted 8 lines
meta/classes/package_rpm.bbclass +0
-1rpm_common_comand --noscripts --nodeps \ -e `cat ${target_rootfs}/install/remove.manifest` fi@@ -249,7 +250,7 @@ package_install_internal_rpm () { # Setup manifest of packages to install... mkdir -p ${target_rootfs}/install - echo "# Install manifest" >
${target_rootfs}/install/install.manifest
meta/classes/package_rpm.bbclass package_install_internal_rpm () {
Quoted 4 lines
meta/classes/package_rpm.bbclass +1
-0+ rm -f ${target_rootfs}/install/install.manifest # Uclibc builds don't provide this stuff... if [ x${TARGET_OS} = "xlinux" ] || [ x${TARGET_OS} =
"xlinux-gnueabi" ] ; then
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 311
Quoted 3 lines
meta/classes/package_rpm.bbclass +0
-0@@ -309,12 +310,15 @@ package_install_internal_rpm () { # Generate an install solution by doing a --justdb install, then
recreate it with
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 312
Quoted 2 lines
meta/classes/package_rpm.bbclass +0
-1# an actual package install! - ${RPM} --predefine "_rpmds_sysinfo_path
${target_rootfs}/etc/rpm/sysinfo" \
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 313
Quoted 1 line
meta/classes/package_rpm.bbclass +0
-1- --predefine "_rpmrc_platform_path
${target_rootfs}/etc/rpm/platform" \
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 314
Quoted 1 line
meta/classes/package_rpm.bbclass +0
-1- -D "_dbpath ${target_rootfs}/install" -D "`cat
${confbase}-base_archs.macro`" \
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 316
Quoted 2 lines
meta/classes/package_rpm.bbclass +0
-2- -D "__dbi_txn create nofsync" \ - -U --justdb --noscripts --notriggers --noparentdirs
--nolinktos --ignoresize \
meta/classes/package_rpm.bbclass package_install_internal_rpm () {
Quoted 3 lines
meta/classes/package_rpm.bbclass +2
-1- ${target_rootfs}/install/install.manifest + if [ -s ${target_rootfs}/install/install.manifest ]; then + echo "# Install manifest padding" >>
${target_rootfs}/install/install.manifest
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 315
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ ${RPM} --predefine "_rpmds_sysinfo_path
${target_rootfs}/etc/rpm/sysinfo" \
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 316
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ --predefine "_rpmrc_platform_path
${target_rootfs}/etc/rpm/platform" \
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 317
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ -D "_dbpath ${target_rootfs}/install" -D "`cat
${confbase}-base_archs.macro`" \
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 319
Quoted 2 lines
meta/classes/package_rpm.bbclass +2
-0+ -D "__dbi_txn create nofsync" \ + -U --justdb --noscripts --notriggers
--noparentdirs --nolinktos --ignoresize \
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 410
Quoted 10 lines
meta/classes/package_rpm.bbclass +2
-1+ ${target_rootfs}/install/install.manifest + fi if [ ! -z "${package_attemptonly}" ]; then echo "Adding attempt only packages..."@@ -407,8 +411,9 @@ package_install_internal_rpm () { touch ${target_rootfs}/install/install_multilib_solution.manifest - if [ -e "${target_rootfs}/install/install_multilib.manifest" ];
then
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 414
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ if [ -s "${target_rootfs}/install/install_multilib.manifest" ];
then
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 416
Quoted 2 lines
meta/classes/package_rpm.bbclass +1
-0# multilib package installation + echo "# Install multilib manifest padding" >>
${target_rootfs}/install/install_multilib.manifest
meta/classes/package_rpm.bbclass package_install_internal_rpm () { · line 417
Quoted 2 lines
meta/classes/package_rpm.bbclass +0
-0# Generate an install solution by doing a --justdb
install, then recreate it with
meta/classes/package_rpm.bbclass EOF · line 496
Quoted 6 lines
meta/classes/package_rpm.bbclass +0
-1# an actual package install!@@ -493,33 +498,37 @@ EOF if [ "${INC_RPM_IMAGE_GEN}" = "1" -a -f "$pre_btmanifest" ]; then echo "Skipping pre install due to exisitng image" else - echo "# Initial Install manifest" >
${target_rootfs}/install/initial_install.manifest
meta/classes/package_rpm.bbclass EOF · line 502
Quoted 2 lines
meta/classes/package_rpm.bbclass +1
-0+ rm -f ${target_rootfs}/install/initial_install.manifest echo "Installing base dependencies first (base-passwd,
base-files and shadow) since rpm is special"
meta/classes/package_rpm.bbclass EOF · line 503
Quoted 1 line
meta/classes/package_rpm.bbclass +0
-0grep /base-passwd-[0-9]
${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true
meta/classes/package_rpm.bbclass EOF · line 504
Quoted 1 line
meta/classes/package_rpm.bbclass +0
-0grep /base-files-[0-9]
${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true
meta/classes/package_rpm.bbclass EOF · line 505
Quoted 1 line
meta/classes/package_rpm.bbclass +0
-0grep /shadow-[0-9]
${target_rootfs}/install/total_solution.manifest >> ${target_rootfs}/install/initial_install.manifest || true
meta/classes/package_rpm.bbclass EOF · line 501
Quoted 2 lines
meta/classes/package_rpm.bbclass +0
-1- # Generate an install solution by doing a --justdb
install, then recreate it with
meta/classes/package_rpm.bbclass EOF
Quoted 3 lines
meta/classes/package_rpm.bbclass +1
-2- # an actual package install! - mkdir -p ${target_rootfs}/initial + if [ -s ${target_rootfs}/install/initial_install.manifest
]; then
meta/classes/package_rpm.bbclass EOF · line 507
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ echo "# Initial Install manifest padding..." >>
${target_rootfs}/install/initial_install.manifest
meta/classes/package_rpm.bbclass EOF · line 504
Quoted 2 lines
meta/classes/package_rpm.bbclass +0
-1- ${RPM} --predefine "_rpmds_sysinfo_path
${target_rootfs}/etc/rpm/sysinfo" \
meta/classes/package_rpm.bbclass EOF · line 505
Quoted 1 line
meta/classes/package_rpm.bbclass +0
-1- --predefine "_rpmrc_platform_path
${target_rootfs}/etc/rpm/platform" \
meta/classes/package_rpm.bbclass EOF · line 506
Quoted 1 line
meta/classes/package_rpm.bbclass +0
-1- -D "_dbpath ${target_rootfs}/initial" -D "`cat
${confbase}.macro`" \
meta/classes/package_rpm.bbclass EOF · line 508
Quoted 2 lines
meta/classes/package_rpm.bbclass +0
-2- -D "__dbi_txn create nofsync" \ - -U --justdb --noscripts --notriggers
--noparentdirs --nolinktos --ignoresize \
meta/classes/package_rpm.bbclass EOF · line 508
Quoted 2 lines
meta/classes/package_rpm.bbclass +1
-1- ${target_rootfs}/install/initial_install.manifest + # Generate an install solution by doing a
--justdb install, then recreate it with
meta/classes/package_rpm.bbclass EOF
Quoted 4 lines
meta/classes/package_rpm.bbclass +2
-1+ # an actual package install! + mkdir -p ${target_rootfs}/initial - ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa --qf
"%{packageorigin}\n" \
meta/classes/package_rpm.bbclass EOF · line 513
Quoted 2 lines
meta/classes/package_rpm.bbclass +0
-2- -D "__dbi_txn create nofsync private" \ - >
${target_rootfs}/install/initial_solution.manifest
meta/classes/package_rpm.bbclass EOF · line 512
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ ${RPM} --predefine "_rpmds_sysinfo_path
${target_rootfs}/etc/rpm/sysinfo" \
meta/classes/package_rpm.bbclass EOF · line 513
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ --predefine "_rpmrc_platform_path
${target_rootfs}/etc/rpm/platform" \
meta/classes/package_rpm.bbclass EOF · line 514
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ -D "_dbpath ${target_rootfs}/initial" -D
"cat ${confbase}.macro" \
meta/classes/package_rpm.bbclass EOF · line 516
Quoted 2 lines
meta/classes/package_rpm.bbclass +2
-0+ -D "__dbi_txn create nofsync" \ + -U --justdb --noscripts --notriggers
--noparentdirs --nolinktos --ignoresize \
meta/classes/package_rpm.bbclass EOF · line 520
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+
${target_rootfs}/install/initial_install.manifest
meta/classes/package_rpm.bbclass EOF · line 519
Quoted 2 lines
meta/classes/package_rpm.bbclass +2
-0+ + ${RPM} -D "_dbpath ${target_rootfs}/initial" -qa
--qf "%{packageorigin}\n" \
meta/classes/package_rpm.bbclass EOF · line 521
Quoted 2 lines
meta/classes/package_rpm.bbclass +2
-0+ -D "__dbi_txn create nofsync private" \ + >
${target_rootfs}/install/initial_solution.manifest
meta/classes/package_rpm.bbclass EOF · line 514
Quoted 2 lines
meta/classes/package_rpm.bbclass +0
-1- rpm_update_pkg
${target_rootfs}/install/initial_solution.manifest
meta/classes/package_rpm.bbclass EOF · line 522
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ rpm_update_pkg
${target_rootfs}/install/initial_solution.manifest
meta/classes/package_rpm.bbclass EOF · line 515
Quoted 2 lines
meta/classes/package_rpm.bbclass +0
-1- grep -Fv -f
${target_rootfs}/install/initial_solution.manifest ${target_rootfs}/install/total_solution.manifest > ${target_rootfs}/install/total_solution.manifest.new
meta/classes/package_rpm.bbclass EOF · line 516
Quoted 1 line
meta/classes/package_rpm.bbclass +0
-1- mv ${target_rootfs}/install/total_solution.manifest.new
${target_rootfs}/install/total_solution.manifest
meta/classes/package_rpm.bbclass EOF · line 523
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ grep -Fv -f
${target_rootfs}/install/initial_solution.manifest ${target_rootfs}/install/total_solution.manifest > ${target_rootfs}/install/total_solution.manifest.new
meta/classes/package_rpm.bbclass EOF · line 524
Quoted 1 line
meta/classes/package_rpm.bbclass +1
-0+ mv
${target_rootfs}/install/total_solution.manifest.new ${target_rootfs}/install/total_solution.manifest
meta/classes/package_rpm.bbclass EOF
Quoted 7 lines
meta/classes/package_rpm.bbclass +2
-1- rm -rf ${target_rootfs}/initial + rm -rf ${target_rootfs}/initial + fi fi echo "Installing main solution manifest
(${target_rootfs}/install/total_solution.manifest)"
Quoted 9 lines
meta/classes/package_rpm.bbclass +0
-1--1.7.3.4
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
PATCH v7 9/9 rpm: Ensure pkgconfig deps don't stray from the package being built
In reply to Mark HatleForce pkg-config to only look in the install directory, and not be able to fall back to system pkg-config directories for resolution.
--- .../rpm/rpm/rpm-pkgconfigdeps.patch | 34 ++++++++++++++++++++ meta/recipes-devtools/rpm/rpm_5.4.9.bb | 3 +- 2 files changed, 36 insertions(+), 1 deletions(-) create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-pkgconfigdeps.patch
meta/recipes-devtools/rpm/rpm/rpm-pkgconfigdeps.patch new file +34 -0
@@ -0,0 +1,34 @@ +pkgconfigdeps.sh: Change to restricting pkgconfig to the local directory + +Using PKG_CONFIG_PATH will allow pkg-config to fall back to the system paths, +we don't want this as it may lead to inaccurate results in some corner cases. + +PKG_CONFIG_LIBDIR will ensure pkg-config stays within the install directory. + +Signed-off-by: Mark Hatle <[email protected]> + +diff -ur rpm-5.4.9.orig/scripts/pkgconfigdeps.sh rpm-5.4.9/scripts/pkgconfigdeps.sh +--- rpm-5.4.9.orig/scripts/pkgconfigdeps.sh 2009-02-13 08:13:37.000000000 -0600 ++++ rpm-5.4.9/scripts/pkgconfigdeps.sh 2012-06-07 17:35:42.730003847 -0500 +@@ -18,8 +18,8 @@ + *.pc) + # Query the dependencies of the package. + DIR=`dirname ${filename}` +- PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" +- export PKG_CONFIG_PATH ++ PKG_CONFIG_LIBDIR="$DIR:$DIR/../../share/pkgconfig" ++ export PKG_CONFIG_LIBDIR + $pkgconfig --print-provides "$filename" 2> /dev/null | while read n r v ; do + [ -n "$n" ] || continue + # We have a dependency. Make a note that we need the pkgconfig +@@ -42,8 +42,8 @@ + [ -n "$oneshot" ] && echo "$oneshot"; oneshot="" + # Query the dependencies of the package. + DIR=`dirname ${filename}` +- PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" +- export PKG_CONFIG_PATH ++ PKG_CONFIG_LIBDIR="$DIR:$DIR/../../share/pkgconfig" ++ export PKG_CONFIG_LIBDIR + $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do + [ -n "$n" ] || continue + if [ -n "$r" ] && [ -n "$v" ]; then
meta/recipes-devtools/rpm/rpm_5.4.9.bb +2 -1
@@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" DEPENDS = "libpcre attr acl popt ossp-uuid file" -PR = "r42" +PR = "r43" # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed # in order to extract the distribution SRPM into a format we can extract...
@@ -71,6 +71,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex file://rpm-lua.patch \ file://rpm-ossp-uuid.patch \ file://rpm-packageorigin.patch \ + file://rpm-pkgconfigdeps.patch \ " SRC_URI[md5sum] = "60d56ace884340c1b3fcac6a1d58e768"
Signature · 1 line
1.7.3.4
Quoted 3 lines · Mark Hatle
Fix a regression in rpm dependency generated caused by default settings changing. This has been fixed (and verified on the yocto project build servers.) This should be the final version....
Ack'd
I've verified that the initial issues around these patches have been fixed.
-b
Quoted 135 lines
This has been rebased, and patches 1 and 2 were changed to deal with the fix for the macros files.
v6 message follows:
Patch 6/8 was reworked to remove the manifest size check.
Patch 8/8 is new and includes the manifest check removed from 6/8 as well as one that was missed in previous testing.v5 message follows:
Only 7/7 is new in the version. Due to the removal of the
RPMVSF_NOSIGNATURESflag in RPM5 5.4.9, createrepo also needed to have this flag removed.v4 message follows:
Only 6/6 is new in this version. RPM 5.4.9 appears to be more demanding for both the
DB_CONFIGfile and empty manifest files. The new patch resolves this issue by ensuring that theDB_CONFIGis always generated, and empty manifest files do not get installed.Patches 1-5 are identical to the v3 versions.
v3 messages follows:
Rebase of the v2 changes.
Re-disabled the "test" chunk.. this should resolve the hang problem a few people have observed.
v2 message follows:
Berkley DB also gets upreved, and a new package ossp-uuid gets added to the system.
This was -heavily- tested with and without zypper on IA, and PPC.
In addition a minor performance enhancement with a query operation was added.
The uprev also adds the capability of using PACKAGECONFIG settings to tailor the behavior of RPM.
V2 changes:
Fix a problem with libuuid.so from util-linux would sometimes be linked into the binary.
Also force libzypp, sat-solver and zypper to refresh via a PR bump.
The following changes since commit
ba22e4fcf07eb8007f6d500908d503f1d3dbdd16:nasm: updated to 2.10.01 (2012-06-11 13:55:46 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib mhatle/rpm
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=mhatle/rpmMark Hatle (9):
rpm: Upgrade RPM to 5.4.8 (db to 5.3.15)
rpm: Upgrade RPM to 5.4.9
ossp-uuid: Add oss-uuid package and RPM 5.4.9 integration
package_rpm: Add capability to directly query packageorigin
rpm: Bump PR numbers on componets that require RPM rootfs_rpm.bbclass: Update database configuration file
createrepo: For compatibility w/ RPM 5.4.9 removeRPMVSF_NOSIGNATURESflag
package_rpm: Verify that the package manifests are not empty
rpm: Ensure pkgconfig deps don't stray from the package being builtmeta/classes/package_rpm.bbclass | 105 ++++-- meta/classes/rootfs_rpm.bbclass | 29 --
.../ossp-uuid/0001-Change-library-name.patch| 112 +++++ ...erve-m-option-status-in-v-option-handling.patch | 55 +++.../ossp-uuid/0003-Fix-whatis-entries.patch| 51 +++.../ossp-uuid/0004-fix-data-uuid-from-string.patch| 36 ++.../ossp-uuid/ossp-uuid/uuid-libtool.patch| 24 +.../ossp-uuid/ossp-uuid/uuid-nostrip.patch| 16 + meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb | 58 +++.../rpm/rpm/fix_for_automake_1.11.2.patch| 54 ---.../rpm/rpm/fprint-pointer-fix.patch| 35 --.../rpm/rpm/remove-compiled-tests.patch| 443 --------------------meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch| 22 -meta/recipes-devtools/rpm/rpm/rpm-autogen.patch| 41 +--meta/recipes-devtools/rpm/rpm/rpm-db-reduce.patch| 16 +-.../recipes-devtools/rpm/rpm/rpm-log-auto-rm.patch| 12 +-meta/recipes-devtools/rpm/rpm/rpm-lua.patch| 29 ++meta/recipes-devtools/rpm/rpm/rpm-macros.patch| 61 +++.../rpm/rpm/rpm-no-perl-urpm.patch| 43 ++meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch| 36 --meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch| 20 +.../rpm/rpm/rpm-packageorigin.patch| 23 +.../rpm/rpm/rpm-pkgconfigdeps.patch| 34 ++.../rpm/rpm/rpm-scriptletexechelper.patch| 33 +-meta/recipes-devtools/rpm/rpm/rpmdeps-oecore.patch| 26 +- .../rpm/{rpm_5.4.0.bb => rpm_5.4.9.bb} | 160 ++++----.../libzypp/libzypp/libzypp-rpm549.patch| 28 ++ meta/recipes-extended/libzypp/libzypp_git.bb | 3 +- meta/recipes-extended/sat-solver/sat-solver_git.bb | 2 +- meta/recipes-extended/zypper/zypper_git.bb | 2 +-.../createrepo/createrepo/createrepo-rpm549.patch| 19 + .../createrepo/createrepo_0.4.11.bb | 3 +- .../db/{db_5.1.19.bb => db_5.3.15.bb} | 8 +-33 files changed, 822 insertions(+), 817 deletions(-)create mode 100644
meta/recipes-devtools/ossp-uuid/ossp-uuid/0001-Change-library-name.patch
create mode 100644meta/recipes-devtools/ossp-uuid/ossp-uuid/0002-uuid-preserve-m-option-status-in-v-option-handling.patchcreate mode 100644meta/recipes-devtools/ossp-uuid/ossp-uuid/0003-Fix-whatis-entries.patch
create mode 100644meta/recipes-devtools/ossp-uuid/ossp-uuid/0004-fix-data-uuid-from-string.patchcreate mode 100644meta/recipes-devtools/ossp-uuid/ossp-uuid/uuid-libtool.patch
create mode 100644meta/recipes-devtools/ossp-uuid/ossp-uuid/uuid-nostrip.patch
create mode 100644 meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb
delete mode 100644meta/recipes-devtools/rpm/rpm/fix_for_automake_1.11.2.patch
delete mode 100644meta/recipes-devtools/rpm/rpm/fprint-pointer-fix.patch
delete mode 100644meta/recipes-devtools/rpm/rpm/remove-compiled-tests.patch
delete mode 100644meta/recipes-devtools/rpm/rpm/rpm-autoconf.patch
create mode 100644meta/recipes-devtools/rpm/rpm/rpm-lua.patch
create mode 100644meta/recipes-devtools/rpm/rpm/rpm-macros.patch
create mode 100644meta/recipes-devtools/rpm/rpm/rpm-no-perl-urpm.patch
delete mode 100644meta/recipes-devtools/rpm/rpm/rpm-nofsync.patch
create mode 100644meta/recipes-devtools/rpm/rpm/rpm-ossp-uuid.patch
create mode 100644meta/recipes-devtools/rpm/rpm/rpm-packageorigin.patch
create mode 100644meta/recipes-devtools/rpm/rpm/rpm-pkgconfigdeps.patch
rename meta/recipes-devtools/rpm/{rpm_5.4.0.bb => rpm_5.4.9.bb} (76%)
create mode 100644meta/recipes-extended/libzypp/libzypp/libzypp-rpm549.patch
create mode 100644meta/recipes-support/createrepo/createrepo/createrepo-rpm549.patch
rename meta/recipes-support/db/{db_5.1.19.bb => db_5.3.15.bb} (93%)--
1.7.3.4_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 3 lines
Elizabeth Flanagan Yocto Project Build and Release
Richard Purdie
AppliedQuoted 61 lines · Mark Hatle
Fix a regression in rpm dependency generated caused by default settings changing. This has been fixed (and verified on the yocto project build servers.) This should be the final version....
This has been rebased, and patches 1 and 2 were changed to deal with the fix for the macros files.
v6 message follows:
Patch 6/8 was reworked to remove the manifest size check.
Patch 8/8 is new and includes the manifest check removed from 6/8 as well as one that was missed in previous testing.v5 message follows:
Only 7/7 is new in the version. Due to the removal of the
RPMVSF_NOSIGNATURESflag in RPM5 5.4.9, createrepo also needed to have this flag removed.v4 message follows:
Only 6/6 is new in this version. RPM 5.4.9 appears to be more demanding for both the
DB_CONFIGfile and empty manifest files. The new patch resolves this issue by ensuring that theDB_CONFIGis always generated, and empty manifest files do not get installed.Patches 1-5 are identical to the v3 versions.
v3 messages follows:
Rebase of the v2 changes.
Re-disabled the "test" chunk.. this should resolve the hang problem a few people have observed.
v2 message follows:
Berkley DB also gets upreved, and a new package ossp-uuid gets added to the system.
This was -heavily- tested with and without zypper on IA, and PPC.
In addition a minor performance enhancement with a query operation was added.
The uprev also adds the capability of using PACKAGECONFIG settings to tailor the behavior of RPM.
V2 changes:
Fix a problem with libuuid.so from util-linux would sometimes be linked into the binary.
Also force libzypp, sat-solver and zypper to refresh via a PR bump.
The following changes since commit
ba22e4fcf07eb8007f6d500908d503f1d3dbdd16:nasm: updated to 2.10.01 (2012-06-11 13:55:46 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contribmhatle/rpm
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=mhatle/rpm
Quoted 11 lines
Mark Hatle (9):
rpm: Upgrade RPM to 5.4.8 (db to 5.3.15)
rpm: Upgrade RPM to 5.4.9
ossp-uuid: Add oss-uuid package and RPM 5.4.9 integration
package_rpm: Add capability to directly query packageorigin
rpm: Bump PR numbers on componets that require RPM rootfs_rpm.bbclass: Update database configuration file
createrepo: For compatibility w/ RPM 5.4.9 removeRPMVSF_NOSIGNATURES
flag
package_rpm: Verify that the package manifests are not empty
rpm: Ensure pkgconfig deps don't stray from the package being built
Merged to master, thanks.
Richard