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

Alexander Kanavin alex.kanavin at gmail.com
Wed Feb 12 15:30:19 UTC 2020


Maybe we can package rpm better so that the binaries and the libraries go
into separate packages? Then libsolv would only pull in the rpm libraries
and rpm tests would be skipped?

Alex

On Wed 12. Feb 2020 at 16.12, 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20200212/2c377da9/attachment.html>


More information about the Openembedded-core mailing list