Clean up connman-conf
v3 cover Clean up connman-conf
As reported in YP#8399[1] we currently hack the connman service to try and execute a script which is only installed on qemu targets. This set of patches changes the connman-conf recipe to install a oneshot systemd unit that is called before ConnMan, removes the ExecStartPre and adds an override to the RRECOMMENDS so that the connman-conf is only installed by default for qemu machines.
SysV init based images are unaffected by this change, the existing mechanisms to check for the presence of the wired-setup script from the init script remain in place.
Since the earlier version of the series I've changed connman-conf to be an allarch package — as the series only adds connman-conf to RRECOMMENDS for qemu machines I don't think there's any reason to prevent people from choosing to install the generated packages if a pre-configured network would be useful.
Regards,
Joshua
The following changes since commit 7e8ff7b9d793b7be106415c3c80b687977217566:
bitbake: toaster: toasterui Add ParseStarted/ParseProgress events to mask (2015-12-09 09:03:35 +0000)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib joshuagl/connman
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=joshuagl/connman
Joshua Lock (3):
connman-conf: convert to systemd oneshot
connman: tidy up connman-conf usage
connman-conf: convert to an allarch package
meta/recipes-connectivity/connman/connman-conf.bb | 15 ++++++++++-----
.../connman/connman-conf/wired-connection.service | 10 ++++++++++
.../connman/connman-conf/{qemuall => }/wired-setup | 0
.../connman/connman-conf/{qemuall => }/wired.config | 0
meta/recipes-connectivity/connman/connman.inc | 5 -----
meta/recipes-connectivity/connman/connman_1.30.bb | 3 +--
6 files changed, 21 insertions(+), 12 deletions(-)
create mode 100644 meta/recipes-connectivity/connman/connman-conf/wired-connection.service
rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-setup (100%)
rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired.config (100%)--
2.5.0
PATCH v3 1/3 connman-conf: convert to systemd oneshot
Install a oneshot unit file that is started before ConnMan to configure a wired network inteface with the wired-setup script, rather than requiring this script to be manually run some how.
--- meta/recipes-connectivity/connman/connman-conf.bb | 9 ++++++++- .../connman/connman-conf/qemuall/wired-connection.service | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-connectivity/connman/connman-conf/qemuall/wired-connection.service
meta/recipes-connectivity/connman/connman-conf.bb +8 -1
@@ -4,8 +4,11 @@ network interface for a qemu machine." LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +inherit systemd + SRC_URI_append_qemuall = " file://wired.config \ file://wired-setup \ + file://wired-connection.service \ " PR = "r2"
@@ -17,10 +20,14 @@ FILES_${PN} = "${localstatedir}/* ${datadir}/*" do_install() { #Configure Wired network interface in case of qemu* machines - if test -e ${WORKDIR}/wired.config && test -e ${WORKDIR}/wired-setup; then + if test -e ${WORKDIR}/wired.config && + test -e ${WORKDIR}/wired-setup && + test -e ${WORKDIR}/wired-connection.service; then install -d ${D}${localstatedir}/lib/connman install -m 0644 ${WORKDIR}/wired.config ${D}${localstatedir}/lib/connman install -d ${D}${datadir}/connman install -m 0755 ${WORKDIR}/wired-setup ${D}${datadir}/connman + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/wired-connection.service ${D}${systemd_system_unitdir} fi }
meta/recipes-connectivity/connman/connman-conf/qemuall/wired-connection.service new file +10 -0
@@ -0,0 +1,10 @@ +[Unit] +Description=Setup a wired interface +Before=connman.service + +[Service] +Type=oneshot +ExecStart=/usr/lib/connman/wired-setup + +[Install] +WantedBy=network.target
Signature · 1 line
2.5.0
PATCH v3 2/3 connman: tidy up connman-conf usage
In reply to Joshua Lockconnman-conf is now a systemd oneshot and therefore doesn't need to be sed'ed in to the ConnMan service file.
Furthermore we add connman-conf as RRECCOMENDS only for qemu machines.
This cleans up connman-conf so that it is not automatically installed and unconditionally calling a script that doesn't exist for most machines.
Note: this doesn't affect sysvinit where we provide a ConnMan init script which checks for the presence of the wired-networking script and, if it exists, executes it as part of the connman init.
[YOCTO #8399]
--- meta/recipes-connectivity/connman/connman.inc | 5 ----- meta/recipes-connectivity/connman/connman_1.30.bb | 3 +-- 2 files changed, 1 insertion(+), 7 deletions(-)
meta/recipes-connectivity/connman/connman.inc +0 -5
@@ -68,11 +68,6 @@ python __anonymous () { SYSTEMD_SERVICE_${PN} = "connman.service" SYSTEMD_SERVICE_${PN}-vpn = "connman-vpn.service" -SYSTEMD_WIRED_SETUP = "ExecStartPre=-${datadir}/connman/wired-setup" - -do_compile_append() { - sed -i "s#ExecStart=#${SYSTEMD_WIRED_SETUP}\nExecStart=#" ${B}/src/connman.service -} do_install_append() { if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
meta/recipes-connectivity/connman/connman_1.30.bb +1 -2
@@ -10,5 +10,4 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ SRC_URI[md5sum] = "4a3efdbd6796922db9c6f66da57887fa" SRC_URI[sha256sum] = "5c5e464bacc9c27ed4e7269fb9b5059f07947f5be26433b59212133663ffa991" -RRECOMMENDS_${PN} = "connman-conf" - +RRECOMMENDS_${PN}_qemuall = "connman-conf"
Signature · 1 line
2.5.0
PATCH v3 3/3 connman-conf: convert to an allarch package
In reply to Joshua LockThis recipe just installs some data files and a script and isn't machine or architecture specific. Even though it was designed to be used only for qemu machines there's no reason it can't be used elsewhere.
---
meta/recipes-connectivity/connman/connman-conf.bb | 10 ++++------
.../connman-conf/{qemuall => }/wired-connection.service | 0
.../connman/connman-conf/{qemuall => }/wired-setup | 0
.../connman/connman-conf/{qemuall => }/wired.config | 0
4 files changed, 4 insertions(+), 6 deletions(-)
rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-connection.service (100%)
rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-setup (100%)
rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired.config (100%)meta/recipes-connectivity/connman/connman-conf.bb +4 -6
@@ -4,18 +4,16 @@ network interface for a qemu machine." LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" -inherit systemd +inherit systemd allarch -SRC_URI_append_qemuall = " file://wired.config \ - file://wired-setup \ - file://wired-connection.service \ +SRC_URI = "file://wired.config \ + file://wired-setup \ + file://wired-connection.service \ " PR = "r2" S = "${WORKDIR}" -PACKAGE_ARCH = "${MACHINE_ARCH}" - FILES_${PN} = "${localstatedir}/* ${datadir}/*" do_install() {
meta/recipes-connectivity/connman/connman-conf/wired-connection.service renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired-connection.service +0 -0
meta/recipes-connectivity/connman/connman-conf/wired-setup renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup +0 -0
meta/recipes-connectivity/connman/connman-conf/wired.config renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config +0 -0
Signature · 1 line
2.5.0
Re: [PATCH v3 3/3] connman-conf: convert to an allarch package
Quoted 3 lines · Joshua Lock
This recipe just installs some data files and a script and isn't machine or architecture specific. Even though it was designed to be used only for qemu machines there's no reason it can't be used elsewhere.
Sorry if I wasn't clear before.
I think it was better as machine specific.
We're using it in our layers to provide static configuration for connman and that's often MACHINE specific (even the qemu config sets MAC which you probably don't want to use the same across all MACHINEs built with OE).
That's the reason why this recipe is in SIGGEN_EXCLUDERECIPES_ABISAFE.
This change also sets this static configuration for all builds, is current wired.config really suitable for all devices? I don't think so.
Quoted 58 lines
Signed-off-by Joshua Lock <[email protected]>--- meta/recipes-connectivity/connman/connman-conf.bb | 10 ++++------ .../connman-conf/{qemuall => }/wired-connection.service | 0 .../connman/connman-conf/{qemuall => }/wired-setup | 0 .../connman/connman-conf/{qemuall => }/wired.config | 0 4 files changed, 4 insertions(+), 6 deletions(-) rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-connection.service (100%) rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-setup (100%) rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired.config (100%)meta/recipes-connectivity/connman/connman-conf.bb +4
-6@@ -4,18 +4,16 @@ network interface for a qemu machine." LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" -inherit systemd +inherit systemd allarch -SRC_URI_append_qemuall = " file://wired.config \ - file://wired-setup \ - file://wired-connection.service \ +SRC_URI = "file://wired.config \ + file://wired-setup \ + file://wired-connection.service \ " PR = "r2" S = "${WORKDIR}" -PACKAGE_ARCH = "${MACHINE_ARCH}" - FILES_${PN} = "${localstatedir}/* ${datadir}/*" do_install() {meta/recipes-connectivity/connman/connman-conf/wired-connection.service renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired-connection.service +0
-0meta/recipes-connectivity/connman/connman-conf/wired-setup renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup +0
-0meta/recipes-connectivity/connman/connman-conf/wired.config renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config +0
-0Signature · 7 lines
2.5.0 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Re: [PATCH v3 3/3] connman-conf: convert to an allarch package
Quoted 5 lines · Martin Jansa
Quoted 3 lines · Joshua Lock
This recipe just installs some data files and a script and isn't machine or architecture specific. Even though it was designed to be used only for qemu machines there's no reason it can't be used elsewhere.
Quoted 8 lines
Sorry if I wasn't clear before.
I think it was better as machine specific.
We're using it in our layers to provide static configuration for connman and that's often MACHINE specific (even the qemu config sets MAC which you probably don't want to use the same across all MACHINEs built with OE).
Ah, it wasn't clear that you were making use of this recipe and I had also completely missed that it sets the MAC address. You are of course right, this should probably stay MACHINE specific.
All I really care about is not having
"connman.service: Failed at step EXEC spawning /usr/lib/connman/wired-setup: No such file or directory"
in the journal all the time, 1/3 and 2/3 should resolve this so I will just drop 3/3.
Quoted 4 lines
That's the reason why this recipe is in
SIGGEN_EXCLUDERECIPES_ABISAFE.This change also sets this static configuration for all builds, is current wired.config really suitable for all devices? I don't think so.
All builds which include connman-conf. Which with the change to RRECOMMENDS_qemuall in 2/3 by default is only builds for qemu builds, right?
Quoted 60 lines
Quoted 59 lines
Signed-off-by Joshua Lock <[email protected]>--- meta/recipes-connectivity/connman/connman-conf.bb | 10 ++++------ .../connman-conf/{qemuall => }/wired-connection.service | 0 .../connman/connman-conf/{qemuall => }/wired-setup | 0 .../connman/connman-conf/{qemuall => }/wired.config | 0 4 files changed, 4 insertions(+), 6 deletions(-)rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-connection.service (100%) rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-setup (100%) rename meta/recipes-connectivity/connman/connman-conf/{qemuall =>
}/wired.config(100%)meta/recipes-connectivity/connman/connman-conf.bb +4
-6@@ -4,18 +4,16 @@ network interface for a qemu machine." LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" -inherit systemd +inherit systemd allarch -SRC_URI_append_qemuall = " file://wired.config \ - file://wired-setup \ - file://wired-connection.service \ +SRC_URI = "file://wired.config \ + file://wired-setup \ + file://wired-connection.service \ " PR = "r2" S = "${WORKDIR}" -PACKAGE_ARCH = "${MACHINE_ARCH}" - FILES_${PN} = "${localstatedir}/* ${datadir}/*" do_install() {meta/recipes-connectivity/connman/connman-conf/wired-connection.service renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired-connection.service +0
-0meta/recipes-connectivity/connman/connman-conf/wired-setup renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup +0
-0meta/recipes-connectivity/connman/connman-conf/wired.config renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config +0
-1--2.5.0
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [PATCH v3 3/3] connman-conf: convert to an allarch package
Quoted 27 lines · Joshua Lock
Quoted 5 lines · Martin Jansa
Quoted 3 lines · Joshua Lock
This recipe just installs some data files and a script and isn't machine or architecture specific. Even though it was designed to be used only for qemu machines there's no reason it can't be used elsewhere.
Quoted 8 lines
Sorry if I wasn't clear before.
I think it was better as machine specific.
We're using it in our layers to provide static configuration for connman and that's often MACHINE specific (even the qemu config sets MAC which you probably don't want to use the same across all MACHINEs built with OE).
Ah, it wasn't clear that you were making use of this recipe and I had also completely missed that it sets the MAC address. You are of course right, this should probably stay MACHINE specific.
All I really care about is not having
"connman.service: Failed at step EXEC spawning
/usr/lib/connman/wired-setup: No such file or directory"in the journal all the time, 1/3 and 2/3 should resolve this so I will just drop 3/3.
Quoted 7 lines
Quoted 4 lines
That's the reason why this recipe is in
SIGGEN_EXCLUDERECIPES_ABISAFE.This change also sets this static configuration for all builds, is current wired.config really suitable for all devices? I don't think so.
All builds which include connman-conf. Which with the change to
RRECOMMENDS_qemuallin 2/3 by default is only builds for qemu builds, right?
Do you need to change this RRECOMMENDS? if the package is empty (by default for non-qemu MACHINEs) the PN will be empty and not created, so RRECOMMENDS will be no-op and for layers actually using connman-conf to provide MACHINE specific configuration it will work OOB without having to re-add the runtime recommendation.
Quoted 60 lines
Quoted 59 lines
Quoted 58 lines
Signed-off-by Joshua Lock <[email protected]>--- meta/recipes-connectivity/connman/connman-conf.bb | 10 ++++------ .../connman-conf/{qemuall => }/wired-connection.service | 0 .../connman/connman-conf/{qemuall => }/wired-setup | 0 .../connman/connman-conf/{qemuall => }/wired.config | 0 4 files changed, 4 insertions(+), 6 deletions(-)rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-connection.service (100%) rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-setup (100%) rename meta/recipes-connectivity/connman/connman-conf/{qemuall =>
}/wired.config(100%)meta/recipes-connectivity/connman/connman-conf.bb +4
-6@@ -4,18 +4,16 @@ network interface for a qemu machine." LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" -inherit systemd +inherit systemd allarch -SRC_URI_append_qemuall = " file://wired.config \ - file://wired-setup \ - file://wired-connection.service \ +SRC_URI = "file://wired.config \ + file://wired-setup \ + file://wired-connection.service \ " PR = "r2" S = "${WORKDIR}" -PACKAGE_ARCH = "${MACHINE_ARCH}" - FILES_${PN} = "${localstatedir}/* ${datadir}/*" do_install() {meta/recipes-connectivity/connman/connman-conf/wired-connection.service renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired-connection.service +0
-0meta/recipes-connectivity/connman/connman-conf/wired-setup renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup +0
-0meta/recipes-connectivity/connman/connman-conf/wired.config renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config +0
-1--2.5.0
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Re: [PATCH v3 3/3] connman-conf: convert to an allarch package
Quoted 33 lines · Martin Jansa
Quoted 32 lines · Joshua Lock
Quoted 5 lines · Martin Jansa
Quoted 3 lines · Joshua Lock
This recipe just installs some data files and a script and isn't machine or architecture specific. Even though it was designed to be used only for qemu machines there's no reason it can't be used elsewhere.
Quoted 8 lines
Sorry if I wasn't clear before.
I think it was better as machine specific.
We're using it in our layers to provide static configuration for connman and that's often MACHINE specific (even the qemu config sets MAC which you probably don't want to use the same across all MACHINEs built with OE).
Ah, it wasn't clear that you were making use of this recipe and I had also completely missed that it sets the MAC address. You are of course right, this should probably stay MACHINE specific.
All I really care about is not having
"connman.service: Failed at step EXEC spawning
/usr/lib/connman/wired-setup: No such file or directory"in the journal all the time, 1/3 and 2/3 should resolve this so I will just drop 3/3.
Quoted 4 lines
That's the reason why this recipe is in
SIGGEN_EXCLUDERECIPES_ABISAFE.This change also sets this static configuration for all builds, is current wired.config really suitable for all devices? I don't think so.
Quoted 8 lines
Quoted 2 lines
All builds which include connman-conf. Which with the change to
RRECOMMENDS_qemuallin 2/3 by default is only builds for qemu builds, right?Do you need to change this RRECOMMENDS? if the package is empty (by default for non-qemu MACHINEs) the PN will be empty and not created, so RRECOMMENDS will be no-op and for layers actually using connman-conf to provide MACHINE specific configuration it will work OOB without having to re-add the runtime recommendation.
Need? No, I was just trying to make the intent as I understood it explicit — I hadn't heard of folks using this recipe outside of the autobuilder environment before today.
Joshua
Quoted 62 lines
Quoted 61 lines
Quoted 60 lines
Quoted 59 lines
Signed-off-by Joshua Lock <[email protected]>--- meta/recipes-connectivity/connman/connman-conf.bb | 10 ++++------ .../connman-conf/{qemuall => }/wired-connection.service | 0 .../connman/connman-conf/{qemuall => }/wired-setup | 0 .../connman/connman-conf/{qemuall => }/wired.config | 0 4 files changed, 4 insertions(+), 6 deletions(-)rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-connection.service (100%) rename meta/recipes-connectivity/connman/connman-conf/{qemuall => }/wired-setup (100%) rename meta/recipes-connectivity/connman/connman-conf/{qemuall =>
}/wired.config(100%)meta/recipes-connectivity/connman/connman-conf.bb +4
-6@@ -4,18 +4,16 @@ network interface for a qemu machine." LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" -inherit systemd +inherit systemd allarch -SRC_URI_append_qemuall = " file://wired.config \ - file://wired-setup \ - file://wired-connection.service \ +SRC_URI = "file://wired.config \ + file://wired-setup \ + file://wired-connection.service \ " PR = "r2" S = "${WORKDIR}" -PACKAGE_ARCH = "${MACHINE_ARCH}" - FILES_${PN} = "${localstatedir}/* ${datadir}/*" do_install() {meta/recipes-connectivity/connman/connman-conf/wired-connection.service renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired-connection.service +0
-0meta/recipes-connectivity/connman/connman-conf/wired-setup renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired-setup +0
-0meta/recipes-connectivity/connman/connman-conf/wired.config renamed from meta/recipes-connectivity/connman/connman-conf/qemuall/wired.config +0
-1--2.5.0
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core