diff mbox series

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

Message ID 20200309025003.26466-4-unixmania@gmail.com
State Accepted
Headers show
Series package/ifupdown-scripts: add openrc support | expand

Commit Message

Carlos Santos March 9, 2020, 2:50 a.m. UTC
From: Carlos Santos <unixmania@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@gmail.com>
---
 package/ifupdown-scripts/Config.in           |  2 +-
 package/ifupdown-scripts/ifupdown-scripts.mk | 22 ++++++++++++++++++--
 2 files changed, 21 insertions(+), 3 deletions(-)

Comments

Yann E. MORIN March 11, 2020, 9:15 p.m. UTC | #1
CarloS< All,

On 2020-03-08 23:50 -0300, unixmania@gmail.com spake thusly:
> From: Carlos Santos <unixmania@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.

I've split that to its own patch. Thus, the patch adding openrc support
is smaller and more self-contained.

Thanks for your work on OpenRC, it's nice to see someone taking care of
it :-) Now, if we could have even more runtime test of it (network,
etc..) that would be even better! ;-]

Regards,
Yann E. MORIN.

> - 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@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
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
diff mbox series

Patch

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