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>
This commit is contained in:
Zhixiong Chi 2016-09-05 12:08:13 +08:00 committed by Richard Purdie
parent 92fc3ef973
commit 0abb1d7e22
2 changed files with 26 additions and 0 deletions

View File

@ -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@*/

View File

@ -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