[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#698381: marked as done (unblock: ifupdown/0.7.7)



Your message dated Tue, 9 Apr 2013 21:16:56 +0200
with message-id <20130409191656.GP5725@radis.cristau.org>
and subject line Re: Bug#698381: unblock: ifupdown/0.7.7
has caused the Debian Bug report #698381,
regarding unblock: ifupdown/0.7.7
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
698381: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698381
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package ifupdown. This release fixes some important issues with ifupdown,
and also brings upstart support up to date.

ifupdown (0.7.6) unstable; urgency=low

  [ Andrew O. Shadura ]
  * Don't configure bridge interfaces as tagged VLAN interfaces
    (Closes: #696642).
  * Add "tryonce" option to DHCP-enabled methods (Closes: #694541).
  * Update manual pages.

  [ Stéphane Graber ]
  * Patches for upstart support from Ubuntu:
    - Start the job on runlevel [2345]. This is a no-op during a normal
      boot since the network will be started *before* runlevel is emitted,
      but is needed to restart the network after a change from runlevel 1
      (LP: #752481).
    - Don't bring 'lo' down (add it to --exclude).
    - Emit deconfiguring-networking (LP: #1061639).
    - Update network-interface-security job to stop when the parent job is
      stopped itself. This avoids leftover instances (LP: #1065684).
  * Set MTU of tunnel devices (LP: #1074048).
  * Actually set the new calculated value for duplicate entries
    (LP: #1086517).


unblock ifupdown/0.7.6

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.6-trunk-686-pae (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_GB.UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru ifupdown-0.7.5/debian/changelog ifupdown-0.7.6/debian/changelog
--- ifupdown-0.7.5/debian/changelog	2012-11-02 18:31:00.000000000 +0100
+++ ifupdown-0.7.6/debian/changelog	2013-01-08 01:47:04.000000000 +0100
@@ -1,3 +1,27 @@
+ifupdown (0.7.6) unstable; urgency=low
+
+  [ Andrew O. Shadura ]
+  * Don't configure bridge interfaces as tagged VLAN interfaces
+    (Closes: #696642).
+  * Add "tryonce" option to DHCP-enabled methods (Closes: #694541).
+  * Update manual pages.
+
+  [ Stéphane Graber ]
+  * Patches for upstart support from Ubuntu:
+    - Start the job on runlevel [2345]. This is a no-op during a normal
+      boot since the network will be started *before* runlevel is emitted,
+      but is needed to restart the network after a change from runlevel 1
+      (LP: #752481).
+    - Don't bring 'lo' down (add it to --exclude).
+    - Emit deconfiguring-networking (LP: #1061639).
+    - Update network-interface-security job to stop when the parent job is
+      stopped itself. This avoids leftover instances (LP: #1065684).
+  * Set MTU of tunnel devices (LP: #1074048).
+  * Actually set the new calculated value for duplicate entries
+    (LP: #1086517).
+
+ -- Andrew O. Shadura <bugzilla@tut.by>  Sun, 06 Jan 2013 19:36:49 +0100
+
 ifupdown (0.7.5) unstable; urgency=low
 
   * Fix upstart hooks (Closes: #692110).
diff -Nru ifupdown-0.7.5/debian/ifupdown.networking.upstart ifupdown-0.7.6/debian/ifupdown.networking.upstart
--- ifupdown-0.7.5/debian/ifupdown.networking.upstart	2012-10-16 10:38:55.000000000 +0200
+++ ifupdown-0.7.6/debian/ifupdown.networking.upstart	2013-01-06 19:26:34.000000000 +0100
@@ -7,9 +7,10 @@
 
 emits static-network-up
 emits net-device-up
+emits deconfiguring-networking
 
 start on (local-filesystems
-      and (stopped udevtrigger or container))
+      and (stopped udevtrigger or container)) or runlevel [2345]
 stop on unmounted-remote-filesystems
 
 pre-start script
@@ -62,5 +63,8 @@
 
     check_network_file_systems
     check_network_swap
-    ifdown -a
+
+    # Anything that manages network interfaces *MUST* wait for this event
+    initctl emit deconfiguring-networking
+    ifdown -a --exclude=lo
 end script
diff -Nru ifupdown-0.7.5/debian/ifupdown.network-interface-security.upstart ifupdown-0.7.6/debian/ifupdown.network-interface-security.upstart
--- ifupdown-0.7.5/debian/ifupdown.network-interface-security.upstart	2012-10-16 10:38:55.000000000 +0200
+++ ifupdown-0.7.6/debian/ifupdown.network-interface-security.upstart	2013-01-06 19:36:14.000000000 +0100
@@ -12,6 +12,9 @@
 start on (starting network-interface
           or starting network-manager
           or starting networking)
+stop on (stopped network-interface JOB=$JOB INTERFACE=$INTERFACE
+          or stopped network-manager JOB=$JOB
+          or stopped networking JOB=$JOB)
 
 # In order to handle the lack of upstart feature LP: #568860, we need to
 # run multiple times, for each of the above "starting" service instances, or
diff -Nru ifupdown-0.7.5/debian/testbuild-linux ifupdown-0.7.6/debian/testbuild-linux
--- ifupdown-0.7.5/debian/testbuild-linux	2012-10-16 10:38:04.000000000 +0200
+++ ifupdown-0.7.6/debian/testbuild-linux	2013-01-07 01:42:19.000000000 +0100
@@ -344,7 +344,7 @@
 
 cat >tests/testcase.7 <<EOF
 # RUN: -a
-auto eth0 eth0.1 eth0.0201 tunnel
+auto eth0 eth0.1 eth0.0201 br0.0201 br0.0202 tunnel
 iface eth0 inet static
   address 1.2.3.4
   netmask 255.255.255.0
@@ -358,6 +358,9 @@
   netmask 64
 iface eth0.0201 inet static
   address 192.168.0.1/25
+iface br0.0201 inet manual
+  bridge_ports eth0.0201
+iface br0.0202 inet manual
 iface tunnel inet6 6to4
   local 1.2.3.4
 EOF
@@ -399,6 +402,13 @@
 ip link set dev eth0.0201   up
 
 run-parts --verbose /etc/network/if-up.d
+Configuring interface br0.0201=br0.0201 (inet)
+run-parts --verbose /etc/network/if-pre-up.d
+run-parts --verbose /etc/network/if-up.d
+if test -d /sys/class/net/br0 -a             ! -d /sys/class/net/br0.0202 ;     then         ip link set up dev br0;         ip link add link br0 name br0.0202 type vlan id 202;     fi
+Configuring interface br0.0202=br0.0202 (inet)
+run-parts --verbose /etc/network/if-pre-up.d
+run-parts --verbose /etc/network/if-up.d
 Configuring interface tunnel=tunnel (inet6)
 run-parts --verbose /etc/network/if-pre-up.d
 modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
@@ -486,8 +496,114 @@
 run-parts --verbose /etc/network/if-up.d
 EOF
 
+cat >tests/testcase.10 <<EOF
+# RUN: -a
+auto eth0 eth1 eth2 eth3
+
+iface eth0 inet dhcp
+
+iface eth0 inet6 dhcp
+
+iface eth1 inet dhcp
+    tryonce yes
+
+iface eth1 inet6 dhcp
+    tryonce yes
+
+iface eth2 inet dhcp
+    tryonce no
+
+iface eth2 inet6 dhcp
+    tryonce no
+
+iface eth3 inet6 auto
+    dhcp yes
+    tryonce yes
+
+iface eth3 inet6 auto
+    dhcp yes
+    tryonce no
+
+iface eth3 inet6 auto
+    dhcp no
+    tryonce yes
+
+EOF
+cat >tests/up.10 <<EOF
+====stdout====
+====stderr====
+run-parts --verbose /etc/network/if-pre-up.d
+Configuring interface eth0=eth0 (inet)
+run-parts --verbose /etc/network/if-pre-up.d
+
+dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 	
+run-parts --verbose /etc/network/if-up.d
+Configuring interface eth0=eth0 (inet6)
+run-parts --verbose /etc/network/if-pre-up.d
+modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
+sysctl -q -e -w net.ipv6.conf.eth0.accept_ra=0
+
+ip link set dev eth0  up
+dhclient -6 -1 -pf /run/dhclient6.eth0.pid -lf /var/lib/dhcp/dhclient6.eth0.leases eth0
+run-parts --verbose /etc/network/if-up.d
+Configuring interface eth1=eth1 (inet)
+run-parts --verbose /etc/network/if-pre-up.d
+
+dhclient -1 -v -pf /run/dhclient.eth1.pid -lf /var/lib/dhcp/dhclient.eth1.leases eth1 	
+run-parts --verbose /etc/network/if-up.d
+Configuring interface eth1=eth1 (inet6)
+run-parts --verbose /etc/network/if-pre-up.d
+modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
+sysctl -q -e -w net.ipv6.conf.eth1.accept_ra=0
+
+ip link set dev eth1  up
+dhclient -6 -1 -pf /run/dhclient6.eth1.pid -lf /var/lib/dhcp/dhclient6.eth1.leases eth1
+run-parts --verbose /etc/network/if-up.d
+Configuring interface eth2=eth2 (inet)
+run-parts --verbose /etc/network/if-pre-up.d
+
+dhclient  -v -pf /run/dhclient.eth2.pid -lf /var/lib/dhcp/dhclient.eth2.leases eth2 	
+run-parts --verbose /etc/network/if-up.d
+Configuring interface eth2=eth2 (inet6)
+run-parts --verbose /etc/network/if-pre-up.d
+modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
+sysctl -q -e -w net.ipv6.conf.eth2.accept_ra=0
+
+ip link set dev eth2  up
+dhclient -6  -pf /run/dhclient6.eth2.pid -lf /var/lib/dhcp/dhclient6.eth2.leases eth2
+run-parts --verbose /etc/network/if-up.d
+Configuring interface eth3=eth3 (inet6)
+run-parts --verbose /etc/network/if-pre-up.d
+modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
+
+sysctl -q -e -w net.ipv6.conf.eth3.accept_ra=1
+sysctl -q -e -w net.ipv6.conf.eth3.autoconf=1
+ip link set dev eth3 up
+dhclient -6 -1 -S -pf /run/dhclient6.eth3.pid -lf /var/lib/dhcp/dhclient6.eth3.leases eth3
+run-parts --verbose /etc/network/if-up.d
+Configuring interface eth3=eth3 (inet6)
+run-parts --verbose /etc/network/if-pre-up.d
+modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
+
+sysctl -q -e -w net.ipv6.conf.eth3.accept_ra=1
+sysctl -q -e -w net.ipv6.conf.eth3.autoconf=1
+ip link set dev eth3 up
+dhclient -6  -S -pf /run/dhclient6.eth3.pid -lf /var/lib/dhcp/dhclient6.eth3.leases eth3
+run-parts --verbose /etc/network/if-up.d
+Configuring interface eth3=eth3 (inet6)
+run-parts --verbose /etc/network/if-pre-up.d
+modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
+
+sysctl -q -e -w net.ipv6.conf.eth3.accept_ra=1
+sysctl -q -e -w net.ipv6.conf.eth3.autoconf=1
+ip link set dev eth3 up
+run-parts --verbose /etc/network/if-up.d
+run-parts --verbose /etc/network/if-up.d
+EOF
+
+
 result=true
-for test in 1 2 3 4 5 6 7 8 9; do
+for test in 1 2 3 4 5 6 7 8 9 10; do
         args="$(cat tests/testcase.$test | sed -n 's/^# RUN: //p')"
         ./ifup -nv --force -i tests/testcase.$test $args \
                 >tests/up-res-out.$test 2>tests/up-res-err.$test || 
diff -Nru ifupdown-0.7.5/ifupdown.nw ifupdown-0.7.6/ifupdown.nw
--- ifupdown-0.7.5/ifupdown.nw	2012-10-16 10:38:04.000000000 +0200
+++ ifupdown-0.7.6/ifupdown.nw	2013-01-07 01:42:19.000000000 +0100
@@ -161,7 +161,7 @@
 	$(patsubst %.defn,%.o,$(DEFNFILES)) arch$(ARCH).o meta.o link.o
 
 MAN := $(patsubst %.defn,%.man,$(DEFNFILES))
-DEFNFILES += meta.defn
+DEFNFILES += meta.defn link.defn
 
 default : executables
 all : executables docs
@@ -2144,6 +2144,7 @@
 
 				currif->option[i].value[l] = '\n';
 				strcpy(&(currif->option[i].value[l + 1]), rest);
+				strcpy(rest, currif->option[i].value);
 			}
 		}
 	}
@@ -3212,11 +3213,14 @@
 varvalue = get_var(command, namelen, ifd);
 @ 
 
-We also define an exported [[var_true()]] function to allow methods to
-have lines of code that are conditional on the value of a variable.
+We also define an exported [[var_true()]], [[var_set()]] and [[var_set_anywhere()]] functions
+to allow methods to have lines of code that are conditional on the value
+of a variable.
 
 <<exported symbols>>=
 int var_true(char *id, interface_defn *ifd);
+int var_set(char *id, interface_defn *ifd);
+int var_set_anywhere(char *id, interface_defn *ifd);
 @
 
 <<execute functions>>=
@@ -3225,7 +3229,7 @@
 
 	varvalue = get_var(id, strlen(id), ifd);
 	if (varvalue) {
-		if (strcmp(varvalue, "1") == 0 ||
+		if (atoi(varvalue) ||
 			strcasecmp(varvalue, "on") == 0 ||
 			strcasecmp(varvalue, "true") == 0 ||
 			strcasecmp(varvalue, "yes") == 0)
@@ -3239,6 +3243,34 @@
 	} else
 		return 0;
 }
+
+int var_set(char *id, interface_defn *ifd) {
+	char *varvalue;
+
+	varvalue = get_var(id, strlen(id), ifd);
+	if (varvalue) {
+		free(varvalue);
+		return 1;
+	} else {
+		return 0;
+	}
+}
+
+int var_set_anywhere(char *id, interface_defn *ifd) {
+	char *varvalue;
+	interface_defn *currif;
+
+	for (currif = defn->ifaces; currif; currif = currif->next) {
+		if (strcmp(ifd->logical_iface, currif->logical_iface) == 0) {
+			varvalue = get_var(id, strlen(id), currif);
+			if (varvalue) {
+				free(varvalue);
+				return 1;
+			}
+		}
+	}
+	return 0;
+}
 @
 
 \subsection{Mapping Scripts}
@@ -3876,7 +3908,11 @@
 Since this has all been covered in a previous section, this is pretty
 trivial.
 
-<<variables local to main>>=
+<<exported symbols>>=
+extern interfaces_file *defn;
+@ 
+
+<<main global variables>>=
 interfaces_file *defn;
 @ 
 
@@ -4064,6 +4100,7 @@
 	if (!okay && <<we're bringing interfaces up>>) {
 		interface_defn link = {
 		    .real_iface = iface,
+		    .logical_iface = liface,
 		    .max_options = 0,
 		    .address_family = &addr_link,
 		    .method = &(addr_link.method[0]),
@@ -4649,6 +4686,7 @@
 void set_preferred_lft(interface_defn *ifd, char **pparam, int argc, char ** argv);
 void get_token(interface_defn *ifd, char **pparam, int argc, char ** argv);
 void to_decimal(interface_defn *ifd, char **pparam, int argc, char ** argv);
+void map_value(interface_defn *ifd, char **pparam, int argc, char ** argv);
 @ 
 
 <<common functions implementations>>=
@@ -4873,6 +4911,28 @@
 	snprintf(*pparam, strlen(*pparam) + 1, "%ld", value);
 }
 
+void map_value(interface_defn *ifd UNUSED, char **pparam, int argc, char ** argv)
+{
+	if (argc < 2) return;
+
+	int value;
+	if (argc == 2) {
+		value = (atoi(*pparam) ||
+			strcasecmp(*pparam, "on") == 0 ||
+			strcasecmp(*pparam, "true") == 0 ||
+			strcasecmp(*pparam, "yes") == 0);
+	}
+	if ((value < argc) && (argv[value] != NULL)) {
+		*pparam = realloc(*pparam, strlen(argv[value]) + 1);
+		if (*pparam == NULL) return;
+		strcpy(*pparam, argv[value]);
+	} else {
+		*pparam = realloc(*pparam, 1);
+		if (*pparam == NULL) return;
+		*pparam[0] = 0;
+	}
+}
+
 @ 
 
 \subsection{Linux-specific functions}
@@ -5081,16 +5141,18 @@
     vendor vendor           -- Vendor class identifier (dhcpcd)
     client client           -- Client identifier (dhcpcd, udhcpc)
     hwaddress address       -- Hardware address.
+    tryonce bool            -- Try to acquire lease just once (dhclient). [yes]
 
   conversion
     hwaddress cleanup_hwaddress
+    tryonce (map_value "" -1)
 
   up
     [[ip link set dev %iface% address %hwaddress%]]
-    dhclient -1 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \
+    dhclient [[%tryonce%]] -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \
 	[[-e IF_METRIC=%metric%]] \
         if (execable("/sbin/dhclient"))
-    dhclient3 -1 -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \
+    dhclient3 [[%tryonce%]] -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \
 	[[-e IF_METRIC=%metric%]] \
         elsif (execable("/sbin/dhclient3"))
     pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]] \
@@ -5160,7 +5222,7 @@
   up
     ip tunnel add %iface% mode %mode% remote %endpoint% [[local %local%]] \
        [[ttl %ttl%]]
-    ip link set %iface% up
+    ip link set %iface% up [[mtu %mtu%]]
     ip addr add %address%/%netmask% dev %iface% [[peer %dstaddr%]]
     [[ ip route add default via %gateway% ]]
   down
@@ -5239,13 +5301,18 @@
   options
     privext int            -- Privacy extensions (RFC3041) (0=off, 1=assign, 2=prefer)
     dhcp int               -- Use stateless DHCPv6 (0=off, 1=on)
+    tryonce bool           -- For DHCPv6, try to acquire lease just once. [yes]
+
+  conversion
+    tryonce (map_value "" -1)
+
   up
     modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
     [[sysctl -q -e -w net.ipv6.conf.%iface/.//%.use_tempaddr=%privext%]]
     sysctl -q -e -w net.ipv6.conf.%iface/.//%.accept_ra=1
     sysctl -q -e -w net.ipv6.conf.%iface/.//%.autoconf=1
     ip link set dev %iface% up
-    dhclient -6 -1 -S -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
+    dhclient -6 [[%tryonce%]] -S -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
         if (var_true("dhcp", ifd) && execable("/sbin/dhclient"))
   down
     ip -6 addr flush dev %iface% scope global
@@ -5322,16 +5389,18 @@
     hwaddress address      -- Hardware address
     accept_ra int          -- Accept router advertisements (0=off, 1=on) [0]
     autoconf int           -- Perform stateless autoconfiguration (0=off, 1=on)
+    tryonce bool           -- Try to acquire lease just once. [yes]
 
   conversion
     hwaddress cleanup_hwaddress
+    tryonce (map_value "" -1)
 
   up
     modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
     [[sysctl -q -e -w net.ipv6.conf.%iface/.//%.accept_ra=%accept_ra%]]
     [[sysctl -q -e -w net.ipv6.conf.%iface/.//%.autoconf=%autoconf%]]
     ip link set dev %iface% [[address %hwaddress%]] up
-    dhclient -6 -1 -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
+    dhclient -6 [[%tryonce%]] -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
         if (execable("/sbin/dhclient"))
 
   down
@@ -5568,16 +5637,18 @@
     vendor vendor           -- Vendor class identifier (dhcpcd)
     client client           -- Client identifier (dhcpcd, udhcpc)
     hwaddress address       -- Hardware Address.
+    tryonce bool            -- Try to acquire lease just once (dhclient). [yes]
 
   conversion
     hwaddress cleanup_hwaddress
+    tryonce (map_value "" -1)
 
   up
     [[ifconfig %iface% link %hwaddress%]]
-    dhclient -1 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \
+    dhclient [[%tryonce%]] -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \
 	[[-e IF_METRIC=%metric%]] \
         if (execable("/sbin/dhclient"))
-    dhclient3 -1 -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \
+    dhclient3 [[%tryonce%]] -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \
 	[[-e IF_METRIC=%metric%]] \
         elsif (execable("/sbin/dhclient3"))
     udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-H %hostname%]] \
@@ -5657,13 +5728,15 @@
 
   options
     hwaddress address      -- Hardware address
+    tryonce bool           -- Try to acquire lease just once. [yes]
 
   conversion
     hwaddress cleanup_hwaddress
+    tryonce (map_value "" -1)
 
   up
     ifconfig %iface% [[link %hwaddress%]] up
-    dhclient -6 -1 -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
+    dhclient -6 [[%tryonce%]] -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
         if (execable("/sbin/dhclient"))
 
   down
@@ -5758,13 +5831,15 @@
     vendor vendor           -- Vendor class identifier (dhcpcd)
     client client           -- Client identifier (dhcpcd, udhcpc)
     hwaddress address       -- Hardware Address (Not yet supported)
+    tryonce bool            -- Try to acquire lease just once (dhclient). [yes]
 
   conversion
     hwaddress cleanup_hwaddress
+    tryonce (map_value "" -1)
 
   up
     [[Warning: Option hwaddress: %hwaddress% not yet supported]]
-    dhclient -1 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \
+    dhclient [[%tryonce%]] -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \
         if (execable("/sbin/dhclient"))
     udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-H %hostname%]] \
            [[-c %client%]] \
@@ -5839,14 +5914,16 @@
 
   options
     hwaddress address      -- Hardware address (Not yet supported)
+    tryonce bool           -- Try to acquire lease just once. [yes]
 
   conversion
     hwaddress cleanup_hwaddress
+    tryonce (map_value "" -1)
 
   up
     [[Warning: Option hwaddress: %hwaddress% not yet supported]]
     inetutils-ifconfig --interface %iface% --up
-    dhclient -6 -1 -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
+    dhclient -6 [[%tryonce%]] -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
         if (execable("/sbin/dhclient"))
 
   down
@@ -5900,9 +5977,9 @@
     then \
         ip link set up dev %link%; \
         ip link add link %link% name %iface0% type vlan id %vlan_id%; \
-    fi if (iface_has("."))
+    fi if (iface_has(".") && (!var_set_anywhere("bridge_ports", ifd)))
   down
-    ip link del %iface% if (iface_has("."))
+    ip link del %iface% if (iface_has(".") && (!var_set_anywhere("bridge_ports", ifd)))
 
 architecture kfreebsd
 
diff -Nru ifupdown-0.7.5/interfaces.5.pre ifupdown-0.7.6/interfaces.5.pre
--- ifupdown-0.7.5/interfaces.5.pre	2012-06-21 23:52:38.000000000 +0200
+++ ifupdown-0.7.6/interfaces.5.pre	2013-01-06 19:26:34.000000000 +0100
@@ -137,6 +137,24 @@
 .P
 Options are usually indented for clarity (as in the example above)
 but are not required to be.
+.P
+.SH VLAN AND BRIDGE INTERFACES
+To ease the configuration of VLAN interfaces, interfaces having
+.B .
+(full stop character) in the name are configured as 802.1q tagged
+virtual LAN interface. For example, interface
+.B eth0.1
+is a virtual interface having
+.B eth0
+as physical link, with VLAN ID 1.
+.P
+For compatibility with
+.B bridge-utils
+package, if
+.B bridge_ports
+option is specified, VLAN interface configuration is
+.B not
+performed.
 .SH IFACE OPTIONS
 The following "command" options are available for every family and method.
 Each of these options can be given multiple times in a single stanza,
@@ -278,7 +296,8 @@
 .BR ifup (8),
 .BR ip (8),
 .BR ifconfig (8),
-.BR run\-parts (8).
+.BR run\-parts (8),
+.BR resolvconf (8).
 .P
 For advice on configuring this package read the
 .B Network Configuration

--- End Message ---
--- Begin Message ---
On Sun, Mar 31, 2013 at 15:53:06 +0200, Andrew Shadura wrote:

> Hello,
> 
> On Sun, 31 Mar 2013 14:46:59 +0100
> Steven Chamberlain <steven@pyro.eu.org> wrote:
> 
> > Control: retitle -1 unblock: ifupdown/0.7.7
> 
> Steven, thanks for updating the unblock request; I should've done that
> myself and forgot to.
> 
Unblocked now.

Cheers,
Julien

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply to: