Package: netcfg Version: 1.139 Hello,
netcfg still configures a "lo" (loopback) device in /etc/network/interfaces, although this hasn't been necessary since ifupdown 0.7.41 in 2013: https://anonscm.debian.org/cgit/collab-maint/ifupdown.git/commit/?id=2127aa19d9416 Please drop it as this is unnecessary extra parsing work at boot. I attach an untested (only build-tested) initial patch. The main thing I'm not sure about is whether this actually needs to clear /etc/network/interfaces when NetworkManager is installed -- would anything write "real" interfaces to /e/n/i in this case? OOI, how can an updated netcfg be tested locally? In a more general vein, ifupdown creates an appropriate /e/n/i on package installation already. It would be nicer if netcfg would not completly overwrite this and instead just add files to /etc/network/interfaces.d/ Thanks for considering, Martin -- Martin Pitt | http://www.piware.de Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
>From 3f576e1f4f6068712c64988ec7b405cd890f989a Mon Sep 17 00:00:00 2001 From: Martin Pitt <martin.p...@ubuntu.com> Date: Tue, 30 Aug 2016 10:08:51 +0200 Subject: [PATCH] untested: Remove write_loopback --- base-installer.d/40netcfg | 4 ---- dhcp.c | 1 - finish-install.d/55netcfg-copy-config | 6 +----- netcfg-common.c | 17 ----------------- netcfg.h | 1 - static.c | 1 - 6 files changed, 1 insertion(+), 29 deletions(-) diff --git a/base-installer.d/40netcfg b/base-installer.d/40netcfg index f09b20a..da51feb 100755 --- a/base-installer.d/40netcfg +++ b/base-installer.d/40netcfg @@ -1,10 +1,6 @@ #!/bin/sh -e # Copy all relevant networking-related files to /target. -if [ ! -f /etc/network/interfaces ]; then - netcfg write_loopback -fi - for file in /etc/network/interfaces /etc/networks /etc/hostname /etc/resolv.conf /etc/hosts; do if [ -f "$file" ]; then mkdir /target/$(dirname $file) -p diff --git a/dhcp.c b/dhcp.c index fe06950..c3792d8 100644 --- a/dhcp.c +++ b/dhcp.c @@ -611,7 +611,6 @@ int netcfg_activate_dhcp (struct debconfclient *client, struct netcfg_interface else { di_debug("Network config complete"); netcfg_write_common("", hostname, domain); - netcfg_write_loopback(); netcfg_write_interface(interface); netcfg_write_resolv(domain, interface); #if !defined(__FreeBSD_kernel__) diff --git a/finish-install.d/55netcfg-copy-config b/finish-install.d/55netcfg-copy-config index 74e96a3..f727150 100755 --- a/finish-install.d/55netcfg-copy-config +++ b/finish-install.d/55netcfg-copy-config @@ -58,14 +58,10 @@ case $RET in # Copy NM config file. First make sure the directory exists mkdir -p /target/$FILE_PATH_NM_CONFIG cp /$FILE_PATH_NM_CONFIG/* /target/$FILE_PATH_NM_CONFIG/ - - # Rewrite /etc/network/interfaces to contain only loopback - netcfg write_loopback ;; $CONFIG_LOOPBACK) - # Rewrite /etc/network/interfaces to contain only loopback - netcfg write_loopback + # no-op ;; esac diff --git a/netcfg-common.c b/netcfg-common.c index c6d1d8d..074c99c 100644 --- a/netcfg-common.c +++ b/netcfg-common.c @@ -1108,18 +1108,6 @@ int netcfg_get_domain(struct debconfclient *client, char domain[]) return 0; } -void netcfg_write_loopback (void) -{ - struct netcfg_interface lo; - - netcfg_interface_init(&lo); - lo.name = LO_IF; - lo.loopback = 1; - - netcfg_write_interface(NULL); - netcfg_write_interface(&lo); -} - /* * ipaddress.s_addr may be 0 * domain may be null @@ -1348,11 +1336,6 @@ void parse_args (int argc, char ** argv) exit(EXIT_SUCCESS); } } - if (!strcmp(argv[1], "write_loopback")) { - netcfg_write_loopback(); - exit(EXIT_SUCCESS); - } - exit(EXIT_FAILURE); } } diff --git a/netcfg.h b/netcfg.h index 00a2cea..e8eddda 100644 --- a/netcfg.h +++ b/netcfg.h @@ -200,7 +200,6 @@ extern void sigchld_handler (int sig __attribute__ ((unused))); extern int ask_dhcp_options (struct debconfclient *client, const char *if_name); -extern void netcfg_write_loopback (void); extern void netcfg_write_common (const char *ipaddress, const char *hostname, const char *domain); void netcfg_nameservers_to_array(const char *nameservers, struct netcfg_interface *interface); diff --git a/static.c b/static.c index ea12fba..15682b4 100644 --- a/static.c +++ b/static.c @@ -679,7 +679,6 @@ int netcfg_get_static(struct debconfclient *client, struct netcfg_interface *ifa netcfg_write_etc_networks(NULL); } netcfg_write_common(iface->ipaddress, hostname, domain); - netcfg_write_loopback(); netcfg_write_interface(iface); netcfg_write_resolvconf_options(domain, iface); netcfg_write_resolv(domain, iface); -- 2.9.3