All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-oe][PATCH] lmsensors: add a PACKAGECONFIG for sensord
@ 2019-09-16  0:28 Dan Callaghan
  0 siblings, 0 replies; only message in thread
From: Dan Callaghan @ 2019-09-16  0:28 UTC (permalink / raw)
  To: openembedded-devel

We don't install the lmsensors-sensord subpackage in our images, but
our build process still has to build the subpackage and all its
dependencies, including rrdtool.

Adding a PACKAGECONFIG for sensord lets us entirely avoid building
rrdtool and its dependency chain, which reduces our image build process
by 141 tasks.
---
 .../lm_sensors/lmsensors-config_1.0.bb        | 23 +++++++----
 .../recipes-bsp/lm_sensors/lmsensors_3.5.0.bb | 41 ++++++++++++++-----
 2 files changed, 44 insertions(+), 20 deletions(-)

diff --git a/meta-oe/recipes-bsp/lm_sensors/lmsensors-config_1.0.bb b/meta-oe/recipes-bsp/lm_sensors/lmsensors-config_1.0.bb
index b0091d657..b55bd5161 100644
--- a/meta-oe/recipes-bsp/lm_sensors/lmsensors-config_1.0.bb
+++ b/meta-oe/recipes-bsp/lm_sensors/lmsensors-config_1.0.bb
@@ -14,6 +14,9 @@ SRC_URI = "file://fancontrol \
 "
 S = "${WORKDIR}"
 
+PACKAGECONFIG ??= "sensord"
+PACKAGECONFIG[sensord] = ",,"
+
 RDEPENDS_${PN}-dev = ""
 
 do_install() {
@@ -25,27 +28,29 @@ do_install() {
     install -d ${D}${sysconfdir}/sensors.d
     install -m 0644 ${WORKDIR}/sensors.conf ${D}${sysconfdir}/sensors.d
 
-    # Install sensord configuration file
-    install -m 0644 ${WORKDIR}/sensord.conf ${D}${sysconfdir}
+    if ${@bb.utils.contains('PACKAGECONFIG', 'sensord', 'true', 'false', d)}; then
+        # Install sensord configuration file
+        install -m 0644 ${WORKDIR}/sensord.conf ${D}${sysconfdir}
 
-    # Install sensord.cgi script and create world-writable
-    # web-accessible sensord directory
-    install -d ${D}/www/pages/cgi-bin
-    install -m 0755 ${WORKDIR}/sensord.cgi ${D}/www/pages/cgi-bin
-    install -d -m a=rwxs ${D}/www/pages/sensord
+        # Install sensord.cgi script and create world-writable
+        # web-accessible sensord directory
+        install -d ${D}/www/pages/cgi-bin
+        install -m 0755 ${WORKDIR}/sensord.cgi ${D}/www/pages/cgi-bin
+        install -d -m a=rwxs ${D}/www/pages/sensord
+    fi
 }
 
 # libsensors configuration
 PACKAGES =+ "${PN}-libsensors"
 
 # sensord logging daemon configuration
-PACKAGES =+ "${PN}-sensord"
+PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-sensord', '', d)}"
 
 # fancontrol script configuration
 PACKAGES =+ "${PN}-fancontrol"
 
 # sensord web cgi support
-PACKAGES =+ "${PN}-cgi"
+PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-cgi', '', d)}"
 RRECOMMENDS_${PN}-cgi = "lighttpd lighttpd-module-cgi"
 RDEPENDS_${PN}-cgi = "${PN}-sensord rrdtool"
 FILES_${PN}-cgi = "/www/*"
diff --git a/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.5.0.bb b/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.5.0.bb
index 585dc9481..ffafd17f8 100644
--- a/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.5.0.bb
+++ b/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.5.0.bb
@@ -23,14 +23,26 @@ inherit update-rc.d systemd
 
 RDEPENDS_${PN}-dev = ""
 
-INITSCRIPT_PACKAGES = "${PN}-fancontrol ${PN}-sensord"
+PACKAGECONFIG ??= "sensord"
+PACKAGECONFIG[sensord] = "sensord,,rrdtool"
+
+INITSCRIPT_PACKAGES = "\
+    ${PN}-fancontrol \
+    ${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-sensord', '', d)} \
+    "
 INITSCRIPT_NAME_${PN}-fancontrol = "fancontrol"
 INITSCRIPT_NAME_${PN}-sensord = "sensord"
 INITSCRIPT_PARAMS_${PN}-fancontrol = "defaults 66"
 INITSCRIPT_PARAMS_${PN}-sensord = "defaults 67"
 
-SYSTEMD_PACKAGES = "${PN}-sensord"
-SYSTEMD_SERVICE_${PN}-sensord = "sensord.service lm_sensors.service fancontrol.service"
+SYSTEMD_PACKAGES = "\
+    ${PN} \
+    ${PN}-fancontrol \
+    ${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-sensord', '', d)} \
+    "
+SYSTEMD_SERVICE_${PN} = "lm_sensors.service"
+SYSTEMD_SERVICE_${PN}-fancontrol = "fancontrol.service"
+SYSTEMD_SERVICE_${PN}-sensord = "sensord.service"
 SYSTEMD_AUTO_ENABLE = "disable"
 
 S = "${WORKDIR}/git"
@@ -46,13 +58,15 @@ do_compile() {
     sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' ${S}/Makefile
     sed -i -e 's/\$(LIBSHSONAME) -o/$(LIBSHSONAME) \$(LDFLAGS) -o/g' \
                 ${S}/lib/Module.mk
-    oe_runmake user PROG_EXTRA="sensors sensord"
+    oe_runmake user PROG_EXTRA="sensors ${PACKAGECONFIG_CONFARGS}"
 }
 
 do_install() {
     oe_runmake user_install DESTDIR=${D}
-    install -m 0755 ${S}/prog/sensord/sensord ${D}${sbindir}
-    install -m 0644 ${S}/prog/sensord/sensord.8 ${D}${mandir}/man8
+    if ${@bb.utils.contains('PACKAGECONFIG', 'sensord', 'true', 'false', d)}; then
+        install -m 0755 ${S}/prog/sensord/sensord ${D}${sbindir}
+        install -m 0644 ${S}/prog/sensord/sensord.8 ${D}${mandir}/man8
+    fi
 
     # Install directory
     install -d ${D}${INIT_D_DIR}
@@ -60,12 +74,17 @@ do_install() {
     # Install fancontrol init script
     install -m 0755 ${WORKDIR}/fancontrol.init ${D}${INIT_D_DIR}/fancontrol
 
-    # Install sensord init script
-    install -m 0755 ${WORKDIR}/sensord.init ${D}${INIT_D_DIR}/sensord
+    if ${@bb.utils.contains('PACKAGECONFIG', 'sensord', 'true', 'false', d)}; then
+        # Install sensord init script
+        install -m 0755 ${WORKDIR}/sensord.init ${D}${INIT_D_DIR}/sensord
+    fi
 
     # Insall sensord service script
-    install -d ${D}${systemd_system_unitdir}
-    install -m 0644 ${S}/prog/init/*.service ${D}${systemd_system_unitdir}
+    install -d ${D}${systemd_unitdir}/system
+    install -m 0644 ${S}/prog/init/*.service ${D}${systemd_unitdir}/system
+    if ! ${@bb.utils.contains('PACKAGECONFIG', 'sensord', 'true', 'false', d)}; then
+        rm ${D}${systemd_system_unitdir}/sensord.service
+    fi
 }
 
 RPROVIDES_${PN}-dbg += "${PN}-libsensors-dbg ${PN}-sensors-dbg ${PN}-sensord-dbg ${PN}-isatools-dbg"
@@ -89,7 +108,7 @@ PACKAGES =+ "${PN}-libsensors ${PN}-libsensors-dev ${PN}-libsensors-staticdev ${
 PACKAGES =+ "${PN}-sensors ${PN}-sensors-doc"
 
 # sensord logging daemon
-PACKAGES =+ "${PN}-sensord ${PN}-sensord-doc"
+PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-sensord ${PN}-sensord-doc', '', d)}"
 
 # fancontrol script
 PACKAGES =+ "${PN}-fancontrol ${PN}-fancontrol-doc"
-- 
2.20.1



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2019-09-16  0:28 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-16  0:28 [meta-oe][PATCH] lmsensors: add a PACKAGECONFIG for sensord Dan Callaghan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.