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

Martin Jansa martin.jansa at gmail.com
Wed Feb 12 16:32:55 UTC 2020


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)}"

On Wed, Feb 12, 2020 at 4:12 PM Khem Raj <raj.khem at gmail.com> wrote:

> 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
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20200212/de3ab5c7/attachment.html>


More information about the Openembedded-core mailing list