package/ifupdown-scripts: do not expect localhost to precede DHCP
authorYann E. MORIN <yann.morin.1998@free.fr>
Wed, 11 Mar 2020 20:46:22 +0000 (21:46 +0100)
committerYann E. MORIN <yann.morin.1998@free.fr>
Wed, 11 Mar 2020 21:12:17 +0000 (22:12 +0100)
Currently, we always suppose that localhost settings will always come
before the (optional) DHCP ones. This is always true when using
sysvinit/busybox or systemd.

However, with openrc, this will no longer be the case: only the DHCP
settings will be present (OpenRC handles lo on his own).

So, prepare the macros to be independent one from the other, and for
symetry, in both:
  - use append-redirection >> to populate the interfaces file,
  - prepend a leading empty line at the beginning of each section.

The origianl singe '>' redirection would ensure the file would not grow
on a reinstall, but that's no longer the case, so reset the file prior
to filling it, using the canned preamble.

Signed-off-by: Carlos Santos <unixmania@gmail.com>
[yann.morin.1998@free.fr: split off to its own patch]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
package/ifupdown-scripts/ifupdown-scripts.mk

index 16fef783dd5579477f57b5c9e76e0e633434de3d..8a2337e46b1b388a89ed88651b5b0e8ddcc2c0b2 100644 (file)
@@ -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))
@@ -37,6 +41,7 @@ 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 +52,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