[OE-core] [PATCH] dnf, libdnf: Ignore if PACKAGE_CLASSES does not have rpm

Khem Raj raj.khem at gmail.com
Wed Feb 12 15:11:32 UTC 2020


On Tue, Feb 11, 2020 at 11:11 PM Alexander Kanavin
<alex.kanavin at gmail.com> wrote:
>
> Please let’s try to avoid anonymous python. What problem does this solve? If package_rpm is not enabled, then there should not be a dependency chain that builds these anyway.

for non rpm backend opkg, rpm is pulled in which is not desired
because opkg depends on libsolv
and libsolv by default depends on rpm which I sent another patch to
decouple, This caused opkg images to fail tests because testing infra
found rpm in the image and ran tests for it which obviously would
fail.

 libsolv does have rpm support as packageconfig but when that
is disabled then libdnf does not build anymore since it expects rpmdb
support in libsolv.

so when we do world builds with opkg as package management then dnf
and libdbf starts to fail
due to their RPM needs.

IF there was an override to identity packaging backends then we could
have used that

If you have better suggestions to avoid anon python here, I am all ears.

>
> Alex
>
> On Wed 12. Feb 2020 at 6.20, Khem Raj <raj.khem at gmail.com> wrote:
>>
>> dnf does not work with opkg or dpkg/apt anyway
>>
>> Signed-off-by: Khem Raj <raj.khem at gmail.com>
>> ---
>>  meta/recipes-devtools/dnf/dnf_4.2.2.bb        | 8 ++++++++
>>  meta/recipes-devtools/libdnf/libdnf_0.28.1.bb | 7 +++++++
>>  2 files changed, 15 insertions(+)
>>
>> diff --git a/meta/recipes-devtools/dnf/dnf_4.2.2.bb b/meta/recipes-devtools/dnf/dnf_4.2.2.bb
>> index f38167f1ad..9e6d5741af 100644
>> --- a/meta/recipes-devtools/dnf/dnf_4.2.2.bb
>> +++ b/meta/recipes-devtools/dnf/dnf_4.2.2.bb
>> @@ -84,3 +84,11 @@ SYSTEMD_SERVICE_${PN} = "dnf-makecache.service dnf-makecache.timer \
>>                           dnf-automatic-notifyonly.service dnf-automatic-notifyonly.timer \
>>  "
>>  SYSTEMD_AUTO_ENABLE ?= "disable"
>> +
>> +python () {
>> +    pkgb = d.getVar("PACKAGE_CLASSES")
>> +    pkgn = d.getVar("PN")
>> +    pkgv = d.getVar("PV")
>> +    if "package_rpm" not in pkgb:
>> +        raise bb.parse.SkipPackage("%s-%s Needs rpmdb support in libsolv" % (pkgn, pkgv))
>> +}
>> diff --git a/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb b/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb
>> index 882c435b32..5c9326ca64 100644
>> --- a/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb
>> +++ b/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb
>> @@ -27,3 +27,10 @@ EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_GIR=OFF"
>>
>>  BBCLASSEXTEND = "native nativesdk"
>>
>> +python () {
>> +    pkgb = d.getVar("PACKAGE_CLASSES")
>> +    pkgn = d.getVar("PN")
>> +    pkgv = d.getVar("PV")
>> +    if "package_rpm" not in pkgb:
>> +        raise bb.parse.SkipPackage("%s-%s Needs rpmdb support in libsolv" % (pkgn, pkgv))
>> +}
>> --
>> 2.25.0
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list