[OE-core] [RFC - WIP v2 01/10] conf-files: New recipe to create single recipe for config files

Saul Wold sgw at linux.intel.com
Thu Jun 12 05:56:20 UTC 2014


This recipe will create 1 package for config files, we could optionally add
a bbclass file to ensure consistency with RRECOMMENDS_ = =conf

This is a work in progress, the do_install might even beable to automagically
generated.  We don't want to create a bbclass for these since it will cause
the actual recipe/packaging to become machine specific, using this recipe will
ioslate that.

[YOCTO #4011]

Signed-off-by: Saul Wold <sgw at linux.intel.com>
---
 meta/classes/conf-files.bbclass               |  3 +
 meta/recipes-bsp/conf-files/conf-files_1.0.bb | 84 +++++++++++++++++++++++++++
 2 files changed, 87 insertions(+)
 create mode 100644 meta/classes/conf-files.bbclass
 create mode 100644 meta/recipes-bsp/conf-files/conf-files_1.0.bb

diff --git a/meta/classes/conf-files.bbclass b/meta/classes/conf-files.bbclass
new file mode 100644
index 0000000..b937268
--- /dev/null
+++ b/meta/classes/conf-files.bbclass
@@ -0,0 +1,3 @@
+
+
+RRECOMMENDS_${PN} = "${PN}-conf"
diff --git a/meta/recipes-bsp/conf-files/conf-files_1.0.bb b/meta/recipes-bsp/conf-files/conf-files_1.0.bb
new file mode 100644
index 0000000..de7d893
--- /dev/null
+++ b/meta/recipes-bsp/conf-files/conf-files_1.0.bb
@@ -0,0 +1,84 @@
+SUMMARY = "Configuartion files master recipe"
+DESCRIPTION = "This package provides Configuration files for different packages that may need some kind of customization on a BSP level"
+
+LICENSE = "BSD || MIT || GPLv2"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+SRC_URI = ""
+S = "${WORKDIR}"
+
+
+CONF_PACKAGES = " \
+                 apmd \
+                 alsa-state \
+                 connman \
+                 formfactor \
+                 init-ifupdown \
+                 pointercal \
+                 xinput-calibrator \
+                 xorg-xf86-config \
+                "
+
+#                 bluze4 \
+#                 bluez5 \
+#                 keymaps \
+#                 tslib \
+#
+
+CONF_PACKAGES[apmd] = "${datadir}/apmd/apmd_proxy.conf"
+CONF_SUMMARY[apmd] = ""
+CONF_DESCRIPTION[apmd] = ""
+CONF_PACKAGES[alsa-state] = "${sysconfdir}/asound.conf"
+CONF_PACKAGES[bluez4] = "${sysconfdir}/dbus-1/system.d/bluetooth.conf"
+CONF_PACKAGES[bluez5] = "${sysconfdir}/dbus-1/system.d/bluetooth.conf"
+CONF_PACKAGES[connman] = "${localstatedir}/lib/connman/wired.config ${libdir}/connman/wired-setup"
+CONF_PACKAGES[formfactor] = "${sysconfdir}/formfactor/machconfig"
+CONF_PACKAGES[init-ifupdown] = "${sysconfdir}/network/interfaces"
+CONF_PACKAGES[pointercal] = "${sysconfdir}/pointercal"
+CONF_PACKAGES[tslib] = "${sysconfdir}/ts.conf"
+DEBIAN_NORENAME = "1"
+
+CONF_PACKAGES[xinput-calibrator] = "${sysconfdir}/pointercal.xinput"
+RCONFLICTS_xinput-calibrator = "pointercal.xinput"
+RPROVIDES_xinput-calibrator = "pointercal.xinput"
+RREPLACES_xinput-calibrator = "pointercal.xinput"
+
+CONF_PACKAGES[xorg-xf86-config] = "${sysconfdir}/X11/xorg.conf"
+CONF_PACKAGES_NOAPPEND[xorg-xf86-config] = "1"
+
+PACKAGES = ""
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+INHIBIT_DEFAULT_DEPS = "1"
+
+python __anonymous() {
+
+    do_install_cmd = ""
+    packages = (d.getVar('CONF_PACKAGES', True) or "").split()
+    for pn in packages:
+        if not d.getVarFlag('CONF_PACKAGES_NOAPPEND', pn):
+            pn_conf = pn + "-conf"
+        else:
+            pn_conf = pn
+
+        d.appendVar('PACKAGES', pn_conf + " ")
+        d.setVar('ALLOW_EMPTY_' + pn_conf, "1")
+        d.setVar('FILES_' + pn_conf, "")
+        d.setVar('CONFFILES_' + pn_conf, "")
+        conf_paths = (d.getVarFlag('CONF_PACKAGES', pn, True) or "").split()
+        print("conf_paths: %s" % (conf_paths))
+        for conf_path in conf_paths:
+            print("conf_path: %s" % (conf_path))
+            conf_dir = os.path.dirname(conf_path)
+            conf_file = os.path.basename(conf_path)
+            d.appendVar('SRC_URI', 'file://' + conf_file + " ")
+            d.appendVar('FILES_' + pn_conf, conf_path + " ")
+            d.appendVar('CONFFILES_' + pn_conf, conf_path + " ")
+
+            # Build do_install() fragment for each config file, only if it exists
+            do_install_cmd = do_install_cmd + "if test -s ${S}/" + conf_file + "; then\n"
+            do_install_cmd = do_install_cmd + "\tinstall -d ${D}" + conf_dir + "\n"
+            do_install_cmd = do_install_cmd + "\tinstall -m 0644 ${S}/" + conf_file + " ${D}" + conf_dir + "\n"
+            do_install_cmd = do_install_cmd + "fi\n"
+
+    d.setVar('do_install', do_install_cmd)
+}
-- 
1.8.3.2




More information about the Openembedded-core mailing list