summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhixiong Chi <Zhixiong.Chi@windriver.com>2016-09-05 12:08:13 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-23 15:26:19 +0100
commitb55e1de5b7371e06ec999fdf588052b4babbc3d2 (patch)
tree903f34dda32a08c66d468d3d255c2cb9fc6c9db4
parent6a09190c7b7b316c9988b7e5e279bd124f331b17 (diff)
downloadopenembedded-core-contrib-b55e1de5b7371e06ec999fdf588052b4babbc3d2.tar.gz
openembedded-core-contrib-b55e1de5b7371e06ec999fdf588052b4babbc3d2.tar.bz2
openembedded-core-contrib-b55e1de5b7371e06ec999fdf588052b4babbc3d2.zip
rpm: ensure rpm2cpio call rpm relocation code
We need to call rpmcliInit to ensure the rpm relocation code is called. when we allow rpm2cpio to be relocatable, The adjusted path used to find the macro files was being built into the binary and this path was valid for the machine it was built on and some of our other build machines, but invalid on some others, and was not being properly overridden at runtime. when we export the wrsdk and source the sdk, then execute rpm2cpio xxx.rpm|cpio -t. we will get the following error : "rpm-5.4.14/rpmdb/dbconfig.c:493: db3New: Assertion `dbOpts != ((void *)0) && *dbOpts != '\0'' failed. (From OE-Core rev: aea2bf5c8101ac0bb27776a5614be345835c4a03) Signed-off-by: Zhixiong Chi <Zhixiong.Chi@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch25
-rw-r--r--meta/recipes-devtools/rpm/rpm_5.4.16.bb1
2 files changed, 26 insertions, 0 deletions
diff --git a/meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch b/meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch
new file mode 100644
index 0000000000..63af100245
--- /dev/null
+++ b/meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch
@@ -0,0 +1,25 @@
+We need to call rpmcliInit to ensure the rpm relocation code is called
+and it correctly honours the relocation environmental variables.
+
+when we export the wrsdk and source the sdk, then execute rpm2cpio xxx.rpm|cpio -t.
+we will get the following error :
+"rpm-5.4.14/rpmdb/dbconfig.c:493:
+db3New: Assertion `dbOpts != ((void *)0) && *dbOpts != '\0'' failed.
+
+Upstream-Status: Pending
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+Index: rpm-5.4.15/tools/rpm2cpio.c
+===================================================================
+--- rpm-5.4.15.orig/tools/rpm2cpio.c 2012-04-27 01:46:51.000000000 +0800
++++ rpm-5.4.15/tools/rpm2cpio.c 2016-09-05 11:07:30.419903338 +0800
+@@ -87,6 +87,8 @@
+ #endif
+ (void) rpmtsSetVSFlags(ts, vsflags);
+
++ rpmcliInit(argc, argv, NULL);
++
+ /*@-mustmod@*/ /* LCL: segfault */
+ rc = rpmReadPackageFile(ts, fdi, "rpm2cpio", &h);
+ /*@=mustmod@*/
diff --git a/meta/recipes-devtools/rpm/rpm_5.4.16.bb b/meta/recipes-devtools/rpm/rpm_5.4.16.bb
index b737b9c107..2ffb3aa5cd 100644
--- a/meta/recipes-devtools/rpm/rpm_5.4.16.bb
+++ b/meta/recipes-devtools/rpm/rpm_5.4.16.bb
@@ -118,6 +118,7 @@ SRC_URI += " \
file://0001-Disable-__sync_add_and_fetch_8-on-nios2.patch \
file://gcc6-stdlib.patch \
file://0001-system.h-query.c-support-nosignature.patch \
+ file://rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch \
"
# OE specific changes