Add a new bbclass that allows building a feed using the
new oe.packagefeed class. This new bbclass inherits
from packagegroup so that there is also a package in the
feed that represents all packages in the feed.

The variable FEED_DEPENDS can be used to specify a feed
that the packagefeed depends on and will be available
side-by-side. This prevents duplicate packages in the
two feeds.

Additionally, there are packagefeed_<type> bbclasses to
define package type specific configurations.

Signed-off-by: Charlie Johnston <[email protected]>
---
 meta/classes-recipe/packagefeed.bbclass     | 16 ++++++++++++++++
 meta/classes-recipe/packagefeed_deb.bbclass |  2 ++
 meta/classes-recipe/packagefeed_ipk.bbclass |  2 ++
 meta/classes-recipe/packagefeed_rpm.bbclass |  2 ++
 4 files changed, 22 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..7dfccbb58b
--- /dev/null
+++ b/meta/classes-recipe/packagefeed.bbclass
@@ -0,0 +1,16 @@
+
+FEED_CLASSES = "packagefeed_${IMAGE_PKGTYPE} packagegroup"
+inherit ${FEED_CLASSES}
+
+FEED_PATH = "${DEPLOY_DIR_FEED}/${PN}"
+FEED_DEPENDS ??= ""
+
+fakeroot python do_packagefeed() {
+    from oe.packagefeed import create_packagefeed
+
+    create_packagefeed(d)
+}
+addtask packagefeed before do_build
+do_packagefeed[nostamp] = "1"
+do_packagefeed[cleandirs] += "${FEED_PATH}"
+do_packagefeed[rdepends] += "${@' '.join([x + ':do_packagefeed' for x in 
d.getVar('FEED_DEPENDS').split()])}"
diff --git a/meta/classes-recipe/packagefeed_deb.bbclass 
b/meta/classes-recipe/packagefeed_deb.bbclass
new file mode 100644
index 0000000000..6ca5a33e93
--- /dev/null
+++ b/meta/classes-recipe/packagefeed_deb.bbclass
@@ -0,0 +1,2 @@
+do_packagefeed[depends] += "dpkg-native:do_populate_sysroot 
apt-native:do_populate_sysroot"
+do_packagefeed[recrdeptask] += "do_package_write_deb do_package_qa"
diff --git a/meta/classes-recipe/packagefeed_ipk.bbclass 
b/meta/classes-recipe/packagefeed_ipk.bbclass
new file mode 100644
index 0000000000..00ef8a30df
--- /dev/null
+++ b/meta/classes-recipe/packagefeed_ipk.bbclass
@@ -0,0 +1,2 @@
+do_packagefeed[depends] += "opkg-native:do_populate_sysroot"
+do_packagefeed[recrdeptask] += "do_package_write_ipk do_package_qa"
diff --git a/meta/classes-recipe/packagefeed_rpm.bbclass 
b/meta/classes-recipe/packagefeed_rpm.bbclass
new file mode 100644
index 0000000000..862ba99290
--- /dev/null
+++ b/meta/classes-recipe/packagefeed_rpm.bbclass
@@ -0,0 +1,2 @@
+do_packagefeed[depends] += "rpm-native:do_populate_sysroot 
dnf-native:do_populate_sysroot createrepo-c-native:do_populate_sysroot"
+do_packagefeed[recrdeptask] += "do_package_write_rpm do_package_qa"
-- 
2.41.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#184604): 
https://lists.openembedded.org/g/openembedded-core/message/184604
Mute This Topic: https://lists.openembedded.org/mt/100243060/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to