[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