[Buildroot] [PATCH 3/3] package/ifupdown-scripts: add openrc support

unixmania at gmail.com unixmania at gmail.com
Mon Mar 9 02:50:03 UTC 2020


From: Carlos Santos <unixmania at gmail.com>

The "network" script allows configuring an interface by means of two
/etc/ifup.<if_name> and /etc/ifdown.<if_name> files with the commands
required to bring it up and down, respectively. So we can support the
BR2_SYSTEM_DHCP config if netifrc is not selected.

- Replace the dependency on !BR2_PACKAGE_OPENRC in Config.in by a
  dependency on !BR2_PACKAGE_NETIFRC.

- Add an IFUPDOWN_SCRIPTS_PREAMBLE macro to create an empty interfaces
  file.

- Make the IFUPDOWN_SCRIPTS_LOCALHOST macro append the "lo" setup to the
  interfaces file.

- Add an IFUPDOWN_SCRIPTS_DHCP_OPENRC macro to create the ifup.<if_name>
  and ifdown.<if_name> files.

- Add an IFUPDOWN_SCRIPTS_INSTALL_INIT_OPENRC hook that includes the
  IFUPDOWN_SCRIPTS_{PREAMBLE,DHCP,DHCP_OPENRC} macros. LOCALHOST is not
  required, since "lo" is configured by the "loopback" script.

Signed-off-by: Carlos Santos <unixmania at gmail.com>
---
 package/ifupdown-scripts/Config.in           |  2 +-
 package/ifupdown-scripts/ifupdown-scripts.mk | 22 ++++++++++++++++++--
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/package/ifupdown-scripts/Config.in b/package/ifupdown-scripts/Config.in
index 4b984bc30c..166094c511 100644
--- a/package/ifupdown-scripts/Config.in
+++ b/package/ifupdown-scripts/Config.in
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_IFUPDOWN_SCRIPTS
 	bool "ifupdown scripts"
 	default y if BR2_ROOTFS_SKELETON_DEFAULT
-	depends on !BR2_PACKAGE_SYSTEMD_NETWORKD && !BR2_PACKAGE_OPENRC
+	depends on !BR2_PACKAGE_SYSTEMD_NETWORKD && !BR2_PACKAGE_NETIFRC
 	help
 	  Set of scripts used by ifupdown (either the standalone one,
 	  or the busybox one) to bring network up, or tear it down.
diff --git a/package/ifupdown-scripts/ifupdown-scripts.mk b/package/ifupdown-scripts/ifupdown-scripts.mk
index 16fef783dd..5ef032142c 100644
--- a/package/ifupdown-scripts/ifupdown-scripts.mk
+++ b/package/ifupdown-scripts/ifupdown-scripts.mk
@@ -4,13 +4,17 @@
 #
 ################################################################################
 
+define IFUPDOWN_SCRIPTS_PREAMBLE
+	echo "# interface file auto-generated by buildroot" \
+		> $(TARGET_DIR)/etc/network/interfaces
+endef
+
 define IFUPDOWN_SCRIPTS_LOCALHOST
 	( \
-		echo "# interface file auto-generated by buildroot"; \
 		echo ; \
 		echo "auto lo"; \
 		echo "iface lo inet loopback"; \
-	) > $(TARGET_DIR)/etc/network/interfaces
+	) >> $(TARGET_DIR)/etc/network/interfaces
 endef
 
 IFUPDOWN_SCRIPTS_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP))
@@ -26,6 +30,12 @@ define IFUPDOWN_SCRIPTS_DHCP
 		echo "  hostname \$$(hostname)"; \
 	) >> $(TARGET_DIR)/etc/network/interfaces
 endef
+define IFUPDOWN_SCRIPTS_DHCP_OPENRC
+	echo "ifup $(IFUPDOWN_SCRIPTS_DHCP_IFACE)" \
+		> $(TARGET_DIR)/etc/ifup.$(IFUPDOWN_SCRIPTS_DHCP_IFACE)
+	echo "ifdown $(IFUPDOWN_SCRIPTS_DHCP_IFACE)" \
+		> $(TARGET_DIR)/etc/ifdown.$(IFUPDOWN_SCRIPTS_DHCP_IFACE)
+endef
 endif
 
 define IFUPDOWN_SCRIPTS_INSTALL_TARGET_CMDS
@@ -34,9 +44,16 @@ define IFUPDOWN_SCRIPTS_INSTALL_TARGET_CMDS
 	$(call SYSTEM_RSYNC,$(IFUPDOWN_SCRIPTS_PKGDIR)/network,$(TARGET_DIR)/etc/network)
 endef
 
+define IFUPDOWN_SCRIPTS_INSTALL_INIT_OPENRC
+	$(IFUPDOWN_SCRIPTS_PREAMBLE)
+	$(IFUPDOWN_SCRIPTS_DHCP)
+	$(IFUPDOWN_SCRIPTS_DHCP_OPENRC)
+endef
+
 define IFUPDOWN_SCRIPTS_INSTALL_INIT_SYSV
 	$(INSTALL) -D -m 0755 $(IFUPDOWN_SCRIPTS_PKGDIR)/S40network \
 		$(TARGET_DIR)/etc/init.d/S40network
+	$(IFUPDOWN_SCRIPTS_PREAMBLE)
 	$(IFUPDOWN_SCRIPTS_LOCALHOST)
 	$(IFUPDOWN_SCRIPTS_DHCP)
 endef
@@ -47,6 +64,7 @@ endef
 define IFUPDOWN_SCRIPTS_INSTALL_INIT_SYSTEMD
 	$(INSTALL) -D -m 644 $(IFUPDOWN_SCRIPTS_PKGDIR)/network.service \
 		$(TARGET_DIR)/etc/systemd/system/network.service
+	$(IFUPDOWN_SCRIPTS_PREAMBLE)
 	$(IFUPDOWN_SCRIPTS_LOCALHOST)
 	$(IFUPDOWN_SCRIPTS_DHCP)
 endef
-- 
2.18.2




More information about the buildroot mailing list