On 09/03/2020 04:53 PM, Lei, Maohui wrote:
Hi, Chen
> Besides, checking the macros file, it has already set %_usr,
%_prefix, %_libdir to point to locations under SDK. I think that also
implies that it's not supposed to be used with '--root'. And that's we
should do the same for %_var.
“it has already set %_usr, %_prefix, %_libdir to point to locations
under SDK” is just because %_usr and %_libdir are not necessary for rpm,
Hmm... I really doubt this. If they are unnecessary, why rpm gives user
choice to configure them?
I suspect they should have effect on at least rpmbuild.
so they are not set in EXTRA_OECONF_append_class-nativesdk and
EXTRA_OECONF_append_class-native. After all, nobody likes to do
unnecessary works. And the same as native-rpm, nativesdk-rpm only sets
%s_etc and %_var, just because they are necessary config.
Besides, with nativesdk-rpm –help, you can get “--root” option, but
users can’t use it. I think it doesn't make sense.
From your description, I guess the problem you met is that you want to
use nativesdk-rpm to do package management or generate a rootfs.
You can add in ROOTFS/etc/rpm/macros "%_var /var", so that the default
value of nativesdk-rpm is overridden.
Regards,
Chen Qi
Best regards
Lei
*From:*openembedded-core@lists.openembedded.org
<openembedded-core@lists.openembedded.org> *On Behalf Of *Chen Qi
*Sent:* Thursday, September 3, 2020 2:52 PM
*To:* Lei, Maohui <leimao...@cn.fujitsu.com>; Richard Purdie
(richard.pur...@linuxfoundation.org) <richard.pur...@linuxfoundation.org>
*Cc:* openembedded-core@lists.openembedded.org
*Subject:* Re: [OE-core][PATCH] rpm: fix nativesdk's default var location
Hi Lei,
The rpm in SDK uses a wrapper, and looking at the settings I don't
think it's supposed to be used with '--root'.
export RPM_CONFIGDIR=`dirname $realpath`/../lib/rpm
RPM_ETCCONFIGDIR=${RPM_ETCCONFIGDIR-`dirname $realpath`/../../etc/..}
MAGIC=`dirname $realpath`/../share/misc/magic.mgc
RPM_NO_CHROOT_FOR_SCRIPTS=1
exec -a "$0" $realdir/rpm.real "$@"
Besides, checking the macros file, it has already set %_usr, %_prefix,
%_libdir to point to locations under SDK. I think that also implies
that it's not supposed to be used with '--root'. And that's we should
do the same for %_var.
Regards,
Chen Qi
On 09/03/2020 01:40 PM, leimaohui wrote:
Hi,
I'm sorry but I don't understand this patch.
error: cannot open Packages index using db5 - Permission denied (13)
error: cannot open Packages database in /var/lib/rpm
I think these two error messages is just because invoking nativesdk-rpm without
"--root=":
-------------------------------------------------
$ /opt/poky/3.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/rpm -qplv
attr-2.4.48-r0.core2_64.rpm
error: cannot open Packages index using db5 - Permission denied (13)
error: cannot open Packages database in
/opt/poky/3.1+snapshot/sysroots/x86_64-pokysdk-linux/var/lib/rpm
drwxr-xr-x 2 root root 0 Jun 19 2018 /etc
-rw-r--r-- 1 root root 642 Jun 19 2018
/etc/xattr.conf
...
Same as nativesdk-gcc adding "--sysroot=", nativesdk-rpm should be invoked with
"--root=":
--------------------------------------------------
$ /opt/poky/3.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/rpm -qplv
attr-2.4.48-r0.core2_64.rpm --root=/home/leimh/test-rootfs/
drwxr-xr-x 2 root root 0 Jun 19 2018 /etc
-rw-r--r-- 1 root root 642 Jun 19 2018
/etc/xattr.conf
......
But now with this patch, "--root=" doesn't work for nativesdk-rpm. Even I use nativesdk-rpm
with "--root=", the database of nativesdk-rpm still is written to ${SDK_INTALL_DIR}/var/lib/rpm/,
not the directory that I set by "--root=".
Best regards
Lei
-----Original Message-----
From:openembedded-core@lists.openembedded.org
<mailto:openembedded-core@lists.openembedded.org> <openembedded-
c...@lists.openembedded.org <mailto:c...@lists.openembedded.org>> On
Behalf Of Chen Qi
Sent: Thursday, July 16, 2020 2:57 PM
To:openembedded-core@lists.openembedded.org
<mailto:openembedded-core@lists.openembedded.org>
Subject: [OE-core][PATCH] rpm: fix nativesdk's default var location
For now, the nativesdk-rpm's %_var in /usr/lib/rpm/macros is '/var'.
This is
causing error when running `rpm -qplv A.rpm'.
error: cannot open Packages index using db5 - Permission denied (13)
error: cannot open Packages database in /var/lib/rpm
The rpm in SDK should be using its own database. So we should remove
this
configure option, letting the SDK's native sysroot prefix to be there
in %_var. In
fact, '%_usr' in macros has already got the prefix.
After this change, we have in the macros file lines like below.
"""
%_usr
/opt/windriver/wrlinux/20.29/sysroots/x86_64-wrlinuxsdk-
linux/usr
%_usrsrc %{_usr}/src
%_var
/opt/windriver/wrlinux/20.29/sysroots/x86_64-wrlinuxsdk-
linux/var
"""
Signed-off-by: Chen Qi<qi.c...@windriver.com>
<mailto:qi.c...@windriver.com>
---
meta/recipes-devtools/rpm/rpm_4.15.1.bb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/rpm/rpm_4.15.1.bb b/meta/recipes-
devtools/rpm/rpm_4.15.1.bb
index cbe1acffe2..b5a0ac9382 100644
--- a/meta/recipes-devtools/rpm/rpm_4.15.1.bb
+++ b/meta/recipes-devtools/rpm/rpm_4.15.1.bb
@@ -67,7 +67,7 @@ EXTRA_OECONF_append_libc-musl = " --disable-nls --
disable-openmp"
# Disable dbus for native, so that rpm doesn't attempt to inhibit
shutdown via
session dbus even when plugins support is enabled.
# Also disable plugins by default for native.
EXTRA_OECONF_append_class-native = " --sysconfdir=/etc --
localstatedir=/var --disable-plugins"
-EXTRA_OECONF_append_class-nativesdk = " --sysconfdir=/etc --
localstatedir=/var --disable-plugins"
+EXTRA_OECONF_append_class-nativesdk = " --sysconfdir=/etc --disable-
plugins"
BBCLASSEXTEND = "native nativesdk"
--
2.17.1
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#142160):
https://lists.openembedded.org/g/openembedded-core/message/142160
Mute This Topic: https://lists.openembedded.org/mt/75536801/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-