package/dhcpcd: systemv and systemd services conflict with NetworkManager
authorJim Brennan <jbrennan@impinj.com>
Tue, 1 May 2018 00:02:45 +0000 (00:02 +0000)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Wed, 6 Feb 2019 14:57:09 +0000 (15:57 +0100)
When NetworkManager and dhcpcd packages are both enabled, dhcpcd
services and NetworkManager both spawn dhcpcd. This causes the network
port to retrieve an IP address and later lose it a few seconds after
startup.

This patch prevents dhcpcd services from launching dhcpcd if
NetworkManager is enabled.

Signed-off-by: Jim Brennan <jbrennan@impinj.com>
[Thomas: add a comment in the code to explain the seemingly strange
condition.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/dhcpcd/dhcpcd.mk

index 92a78cd7ad9085fc5d432610848f05cabb89b3ef..ae16c340d69c32a454c71a047fd20bb26b06eb48 100644 (file)
@@ -36,6 +36,10 @@ define DHCPCD_INSTALL_TARGET_CMDS
        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install DESTDIR=$(TARGET_DIR)
 endef
 
+# When network-manager is enabled together with dhcpcd, it will use
+# dhcpcd as a DHCP client, and will be in charge of running, so we
+# don't want the init script or service file to be installed.
+ifeq ($(BR2_PACKAGE_NETWORK_MANAGER),)
 define DHCPCD_INSTALL_INIT_SYSV
        $(INSTALL) -m 755 -D package/dhcpcd/S41dhcpcd \
                $(TARGET_DIR)/etc/init.d/S41dhcpcd
@@ -48,6 +52,7 @@ define DHCPCD_INSTALL_INIT_SYSTEMD
        ln -sf ../../../../usr/lib/systemd/system/dhcpcd.service \
                $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/dhcpcd.service
 endef
+endif
 
 # NOTE: Even though this package has a configure script, it is not generated
 # using the autotools, so we have to use the generic package infrastructure.