This does need to be tested, and it does need examples. Can you rework create_rpm_index() from meta/classes-recipe/testimage.bbclass to use this class instead of package-index?
Alex On Mon, 31 Jul 2023 at 23:53, Charlie Johnston <charlie.johns...@ni.com> wrote: > > Add a new bbclass that allows building a feed using the > new oe.package_manager class. Additionally, there are > packagefeed_<type> bbclasses to define package type > specific configurations. > > The do_packagefeed task currently does no use SSTATE > data and is set to always run via [nostamp] = "1". > > The variable FEED_DEPENDS is used to specify feeds that > the packagefeed depends on and will be available > side-by-side. This prevents duplicate packages in the > two feeds. > > Signed-off-by: Charlie Johnston <charlie.johns...@ni.com> > --- > meta/classes-recipe/packagefeed.bbclass | 27 +++++++++++++++++++++ > meta/classes-recipe/packagefeed_deb.bbclass | 8 ++++++ > meta/classes-recipe/packagefeed_ipk.bbclass | 8 ++++++ > meta/classes-recipe/packagefeed_rpm.bbclass | 8 ++++++ > 4 files changed, 51 insertions(+) > create mode 100644 meta/classes-recipe/packagefeed.bbclass > create mode 100644 meta/classes-recipe/packagefeed_deb.bbclass > create mode 100644 meta/classes-recipe/packagefeed_ipk.bbclass > create mode 100644 meta/classes-recipe/packagefeed_rpm.bbclass > > diff --git a/meta/classes-recipe/packagefeed.bbclass > b/meta/classes-recipe/packagefeed.bbclass > new file mode 100644 > index 0000000000..04b45e7723 > --- /dev/null > +++ b/meta/classes-recipe/packagefeed.bbclass > @@ -0,0 +1,27 @@ > +# > +# Copyright OpenEmbedded Contributors > +# > +# SPDX-License-Identifier: MIT > +# > + > +PKGFEED_INHERITS = "${@' '.join(['packagefeed_' + x for x in > d.getVar('PACKAGE_CLASSES').replace("package_", "").split()])}" > +inherit ${PKGFEED_INHERITS} nopackages > + > +LICENSE ?= "MIT" > + > +# Feeds listed in FEED_DEPENDS and their dependencies will be excluded from > the feed. > +# This allows for side-by-side feeds without duplicate packages. > +FEED_DEPENDS ??= "" > + > +fakeroot python do_packagefeed() { > + from oe.package_manager import generate_feed_dirs, generate_index_files > + > + pn = d.getVar("PN") > + generate_feed_dirs(d, pn, d.getVar("FEED_DEPENDS")) > + generate_index_files(d, pn) > +} > +addtask packagefeed before do_build > +do_packagefeed[recrdeptask] += "do_package_qa" > +do_packagefeed[nostamp] = "1" > +do_packagefeed[rdepends] += "${@' '.join([x + ':do_packagefeed' for x in > d.getVar('FEED_DEPENDS').split()])}" > +do_packagefeed[cleandirs] += "${DEPLOY_DIR_FEED_DEB}/${PN} > ${DEPLOY_DIR_FEED_IPK}/${PN} ${DEPLOY_DIR_FEED_RPM}/${PN}" > diff --git a/meta/classes-recipe/packagefeed_deb.bbclass > b/meta/classes-recipe/packagefeed_deb.bbclass > new file mode 100644 > index 0000000000..2decc70a4f > --- /dev/null > +++ b/meta/classes-recipe/packagefeed_deb.bbclass > @@ -0,0 +1,8 @@ > +# > +# Copyright OpenEmbedded Contributors > +# > +# SPDX-License-Identifier: MIT > +# > + > +do_packagefeed[depends] += "apt-native:do_populate_sysroot" > +do_packagefeed[recrdeptask] += "do_package_write_deb" > diff --git a/meta/classes-recipe/packagefeed_ipk.bbclass > b/meta/classes-recipe/packagefeed_ipk.bbclass > new file mode 100644 > index 0000000000..89d296200b > --- /dev/null > +++ b/meta/classes-recipe/packagefeed_ipk.bbclass > @@ -0,0 +1,8 @@ > +# > +# Copyright OpenEmbedded Contributors > +# > +# SPDX-License-Identifier: MIT > +# > + > +do_packagefeed[depends] += "opkg-native:do_populate_sysroot > opkg-utils-native:do_populate_sysroot" > +do_packagefeed[recrdeptask] += "do_package_write_ipk" > diff --git a/meta/classes-recipe/packagefeed_rpm.bbclass > b/meta/classes-recipe/packagefeed_rpm.bbclass > new file mode 100644 > index 0000000000..8ce37cc855 > --- /dev/null > +++ b/meta/classes-recipe/packagefeed_rpm.bbclass > @@ -0,0 +1,8 @@ > +# > +# Copyright OpenEmbedded Contributors > +# > +# SPDX-License-Identifier: MIT > +# > + > +do_packagefeed[depends] += "createrepo-c-native:do_populate_sysroot" > +do_packagefeed[recrdeptask] += "do_package_write_rpm" > -- > 2.41.0 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#185233): https://lists.openembedded.org/g/openembedded-core/message/185233 Mute This Topic: https://lists.openembedded.org/mt/100471807/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-