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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to