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

Khem Raj raj.khem at gmail.com
Wed Feb 12 17:18:04 UTC 2020


On 2/12/20 8:32 AM, Martin Jansa wrote:
> Will this work for you without anonymous python? I think it should.
> 
> PNBLACKLIST[dnf] ?= "${@oe.utils.conditional('PACKAGE_CLASSES', 
> 'package_rpm', '' 'does not build correctly without package_rpm in 
> PACKAGE_CLASSES', d)}"

I like this better than anon python. Perhaps worth it in a v2

> 
> On Wed, Feb 12, 2020 at 4:12 PM Khem Raj <raj.khem at gmail.com 
> <mailto:raj.khem at gmail.com>> wrote:
> 
>     On Tue, Feb 11, 2020 at 11:11 PM Alexander Kanavin
>     <alex.kanavin at gmail.com <mailto: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
>     <mailto: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
>     <mailto:raj.khem at gmail.com>>
>      >> ---
>      >>  meta/recipes-devtools/dnf/dnf_4.2.2.bb <http://dnf_4.2.2.bb>   
>          | 8 ++++++++
>      >>  meta/recipes-devtools/libdnf/libdnf_0.28.1.bb
>     <http://libdnf_0.28.1.bb> | 7 +++++++
>      >>  2 files changed, 15 insertions(+)
>      >>
>      >> diff --git a/meta/recipes-devtools/dnf/dnf_4.2.2.bb
>     <http://dnf_4.2.2.bb> b/meta/recipes-devtools/dnf/dnf_4.2.2.bb
>     <http://dnf_4.2.2.bb>
>      >> index f38167f1ad..9e6d5741af 100644
>      >> --- a/meta/recipes-devtools/dnf/dnf_4.2.2.bb <http://dnf_4.2.2.bb>
>      >> +++ b/meta/recipes-devtools/dnf/dnf_4.2.2.bb <http://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
>     <http://libdnf_0.28.1.bb>
>     b/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb
>     <http://libdnf_0.28.1.bb>
>      >> index 882c435b32..5c9326ca64 100644
>      >> --- a/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb
>     <http://libdnf_0.28.1.bb>
>      >> +++ b/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb
>     <http://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
>     <mailto:Openembedded-core at lists.openembedded.org>
>      >> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>     -- 
>     _______________________________________________
>     Openembedded-core mailing list
>     Openembedded-core at lists.openembedded.org
>     <mailto:Openembedded-core at lists.openembedded.org>
>     http://lists.openembedded.org/mailman/listinfo/openembedded-core
> 



More information about the Openembedded-core mailing list