Re: [OE-core] [PATCH 2/2] connman: set service to conflict with systemd-networkd

Jack Mitchell
2020-11-30T21:02:27Z

On 02/11/2020 09:20, Yi Zhao wrote:
> Do not run systemd-networkd and connman simultaneously. These two
> network managers may conflict with each other.
>
> Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
> ---
> ...stop-systemd-networkd-when-using-con.patch | 29 +++++++++++++++++++
> .../connman/connman_1.38.bb | 1 +
> 2 files changed, 30 insertions(+)
> create mode 100644 meta/recipes-connectivity/connman/connman/0001-connman.service-stop-systemd-networkd-when-using-con.patch
>
> diff --git a/meta/recipes-connectivity/connman/connman/0001-connman.service-stop-systemd-networkd-when-using-con.patch b/meta/recipes-connectivity/connman/connman/0001-connman.service-stop-systemd-networkd-when-using-con.patch
> new file mode 100644
> index 0000000000..dd012750a4
> --- /dev/null
> +++ b/meta/recipes-connectivity/connman/connman/0001-connman.service-stop-systemd-networkd-when-using-con.patch
> @@ -0,0 +1,29 @@
> +From 9fea099d0a3ece37d80ad70d32ebb8a93f8f3280 Mon Sep 17 00:00:00 2001
> +From: Yi Zhao <yi.zhao@windriver.com>
> +Date: Fri, 30 Oct 2020 13:48:45 +0800
> +Subject: [PATCH] connman.service: stop systemd-networkd when using connman
> +
> +Stop systemd-networkd service when we use connman as network manager.
> +
> +Upstream-Status: Inappropriate [configuration]
> +
> +Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
> +---
> + src/connman.service.in | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/src/connman.service.in b/src/connman.service.in
> +index 79e75d6..014eafe 100644
> +--- a/src/connman.service.in
> ++++ b/src/connman.service.in
> +@@ -6,6 +6,7 @@ RequiresMountsFor=@localstatedir@/lib/connman
> + After=dbus.service network-pre.target systemd-sysusers.service
> + Before=network.target multi-user.target shutdown.target
> + Wants=network.target
> ++Conflicts=systemd-networkd.service systemd-networkd.socket
> + Conflicts=systemd-resolved.service
> +
> + [Service]
> +--
> +2.17.1
> +
> diff --git a/meta/recipes-connectivity/connman/connman_1.38.bb b/meta/recipes-connectivity/connman/connman_1.38.bb
> index 027c41e9af..45c2934dec 100644
> --- a/meta/recipes-connectivity/connman/connman_1.38.bb
> +++ b/meta/recipes-connectivity/connman/connman_1.38.bb
> @@ -3,6 +3,7 @@ require connman.inc
> SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
> file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
> file://0001-connman.service-stop-systemd-resolved-when-we-use-co.patch \
> + file://0001-connman.service-stop-systemd-networkd-when-using-con.patch \
> file://connman \
> file://no-version-scripts.patch \
> "
>

Hi Yi,

This breaks our usecase where we have been using connman and
systemd-networkd in tandem for a long time. IMO this should be reverted
as if the two applications are conflicting then the correct fix is that
they should be configured so that they don't both try to configure the
same interfaces. As systemd-networkd doesn't ship with any rules by
default it shouldn't be doing anything to interfere?

With this patch I can no-longer run both services as it's a hard
conflict with no option to either revert locally, or bbappend this patch
out.

Regards,
Jack.