Hello, On Tue, 16 Oct 2012 10:07:01 +0200 Julien Cristau <jcristau@debian.org> wrote: > What about 679549? I'm fine with that. A new debdiff attached. -- WBR, Andrew
diff -Nru ifupdown-0.7.2/debian/changelog ifupdown-0.7.3/debian/changelog --- ifupdown-0.7.2/debian/changelog 2012-08-16 23:23:03.000000000 +0200 +++ ifupdown-0.7.3/debian/changelog 2012-10-16 10:42:05.000000000 +0200 @@ -1,3 +1,13 @@ +ifupdown (0.7.3) unstable; urgency=low + + * Fix the calculation of broadcast addresses of obsolete scheme; + previously, a network mask was mistakenly used instead of them. + * Follow RFC 3021 regarding broadcast addresses in /31 subnets: + they should use limited broadcast address (Closes: #690561). + * Add upstart support (patch provided by Steve Langasek, closes: #679549). + + -- Andrew O. Shadura <bugzilla@tut.by> Tue, 16 Oct 2012 10:39:24 +0200 + ifupdown (0.7.2) unstable; urgency=low * Don't install /etc/default/networking as executable (Closes: #679623). diff -Nru ifupdown-0.7.2/debian/control ifupdown-0.7.3/debian/control --- ifupdown-0.7.2/debian/control 2012-06-22 00:05:10.000000000 +0200 +++ ifupdown-0.7.3/debian/control 2012-10-16 10:38:55.000000000 +0200 @@ -4,7 +4,7 @@ Maintainer: Andrew O. Shadura <bugzilla@tut.by> Uploaders: Petter Reinholdtsen <pere@debian.org> Standards-Version: 3.9.3 -Build-Depends: debhelper (>= 8.1.0~), noweb +Build-Depends: debhelper (>= 9.20120410~), noweb Vcs-Hg: http://anonscm.debian.org/hg/collab-maint/ifupdown/ Vcs-Browser: http://anonscm.debian.org/hg/collab-maint/ifupdown/ diff -Nru ifupdown-0.7.2/debian/ifupdown.networking.upstart ifupdown-0.7.3/debian/ifupdown.networking.upstart --- ifupdown-0.7.2/debian/ifupdown.networking.upstart 1970-01-01 01:00:00.000000000 +0100 +++ ifupdown-0.7.3/debian/ifupdown.networking.upstart 2012-10-16 10:38:55.000000000 +0200 @@ -0,0 +1,66 @@ +# networking - configure virtual network devices +# +# This task causes virtual network devices that do not have an associated +# kernel object to be started on boot. + +description "configure virtual network devices" + +emits static-network-up +emits net-device-up + +start on (local-filesystems + and (stopped udevtrigger or container)) +stop on unmounted-remote-filesystems + +pre-start script + mkdir -p /run/network + ifup -a +end script + +post-stop script + log_warning_msg() { + echo $* + } + + # These checks were taken from the Debian ifupdown.networking.init script + check_network_file_systems() { + [ -e /proc/mounts ] || return 0 + + if [ -e /etc/iscsi/iscsi.initramfs ]; then + log_warning_msg "not deconfiguring network interfaces: iSCSI root is mounted." + exit 0 + fi + + while read DEV MTPT FSTYPE REST; do + case $DEV in + /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*) + log_warning_msg "not deconfiguring network interfaces: network devices still mounted." + exit 0 + ;; + esac + case $FSTYPE in + nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs) + log_warning_msg "not deconfiguring network interfaces: network file systems still mounted." + exit 0 + ;; + esac + done < /proc/mounts + } + + check_network_swap() { + [ -e /proc/swaps ] || return 0 + + while read DEV MTPT FSTYPE REST; do + case $DEV in + /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*) + log_warning_msg "not deconfiguring network interfaces: network swap still mounted." + exit 0 + ;; + esac + done < /proc/swaps + } + + check_network_file_systems + check_network_swap + ifdown -a +end script diff -Nru ifupdown-0.7.2/debian/ifupdown.network-interface-container.upstart ifupdown-0.7.3/debian/ifupdown.network-interface-container.upstart --- ifupdown-0.7.2/debian/ifupdown.network-interface-container.upstart 1970-01-01 01:00:00.000000000 +0100 +++ ifupdown-0.7.3/debian/ifupdown.network-interface-container.upstart 2012-10-16 10:38:55.000000000 +0200 @@ -0,0 +1,19 @@ +# network-interface-container - woarkound for missing events in container +# +# This service emits missing net-device-added events for containers. +# It's needed in cases where devices are created before the container +# starts and so won't get a udev event. + +description "workaround for missing events in container" +start on container + +emits net-device-added + +task +script + case "$CONTAINER" in + lxc|lxc-libvirt) + initctl emit --no-wait net-device-added INTERFACE=lo || true + ;; + esac +end script diff -Nru ifupdown-0.7.2/debian/ifupdown.network-interface-security.upstart ifupdown-0.7.3/debian/ifupdown.network-interface-security.upstart --- ifupdown-0.7.2/debian/ifupdown.network-interface-security.upstart 1970-01-01 01:00:00.000000000 +0100 +++ ifupdown-0.7.3/debian/ifupdown.network-interface-security.upstart 2012-10-16 10:38:55.000000000 +0200 @@ -0,0 +1,34 @@ +# network-interface-security - configure network device security +# +# This is a one-time start-up script to load AppArmor profiles needed +# before the network comes up. + +description "configure network device security" + +# In order to avoid upstart bug LP: #447654, we cannot have an AND +# statement here (with the ORs). An "and virtual-filesystems" is desired +# here to make sure that the securityfs is mounted, but since each of the +# ORed services already require virtual-filesystems be mounted, this is safe: +start on (starting network-interface + or starting network-manager + or starting networking) + +# 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 +# else another one might run while we're running, and not wait for us to +# finish. +instance $JOB${INTERFACE:+/}${INTERFACE:-} + +# Since we need these profiles to be loaded before any of the above services +# begin running, this service must be a pre-start so that its pre-start +# script finishes before the above services' start scripts begin. +pre-start script + [ -f /run/network-interface-security ] && exit 0 # already ran + [ -d /rofs/etc/apparmor.d ] && exit 0 # do not load on liveCD + [ -d /sys/module/apparmor ] || exit 0 # do not load without AppArmor + [ -x /sbin/apparmor_parser ] || exit 0 # do not load without parser + for link in /etc/apparmor/init/network-interface-security/* ; do + [ -L $link ] && /sbin/apparmor_parser -r -W $link || true + done + > /run/network-interface-security +end script diff -Nru ifupdown-0.7.2/debian/ifupdown.network-interface.upstart ifupdown-0.7.3/debian/ifupdown.network-interface.upstart --- ifupdown-0.7.2/debian/ifupdown.network-interface.upstart 1970-01-01 01:00:00.000000000 +0100 +++ ifupdown-0.7.3/debian/ifupdown.network-interface.upstart 2012-10-16 10:38:55.000000000 +0200 @@ -0,0 +1,30 @@ +# network-interface - configure network device +# +# This service causes network devices to be brought up or down as a result +# of hardware being added or removed, including that which isn't ordinarily +# removable. + +description "configure network device" + +emits net-device-up +emits net-device-down +emits static-network-up + +start on net-device-added +stop on net-device-removed INTERFACE=$INTERFACE + +instance $INTERFACE +export INTERFACE + +pre-start script + if [ "$INTERFACE" = lo ]; then + # bring this up even if /etc/network/interfaces is broken + ifconfig lo 127.0.0.1 up || true + initctl emit -n net-device-up \ + IFACE=lo LOGICAL=lo ADDRFAM=inet METHOD=loopback || true + fi + mkdir -p /run/network + exec ifup --allow auto $INTERFACE +end script + +post-stop exec ifdown --allow auto $INTERFACE diff -Nru ifupdown-0.7.2/debian/ifupdown.upstart.if-down ifupdown-0.7.3/debian/ifupdown.upstart.if-down --- ifupdown-0.7.2/debian/ifupdown.upstart.if-down 1970-01-01 01:00:00.000000000 +0100 +++ ifupdown-0.7.3/debian/ifupdown.upstart.if-down 2012-10-16 10:38:55.000000000 +0200 @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +initctl emit -n net-device-down \ + "IFACE=$IFACE" \ + "LOGICAL=$LOGICAL" \ + "ADDRFAM=$ADDRFAM" \ + "METHOD=$METHOD" diff -Nru ifupdown-0.7.2/debian/ifupdown.upstart.if-up ifupdown-0.7.3/debian/ifupdown.upstart.if-up --- ifupdown-0.7.2/debian/ifupdown.upstart.if-up 1970-01-01 01:00:00.000000000 +0100 +++ ifupdown-0.7.3/debian/ifupdown.upstart.if-up 2012-10-16 10:38:55.000000000 +0200 @@ -0,0 +1,48 @@ +#!/bin/sh +MARK_DEV_PREFIX="/run/network/ifup." +MARK_STATIC_NETWORK_EMITTED="/run/network/static-network-up-emitted" + +set -e + +# Let's ignore meta entries (ifup -a) +if [ "$ADDRFAM" = "meta" ]; then + return 0 +fi + +# lo emission handled by /etc/init/network-interface.conf +if [ "$IFACE" != lo ]; then + initctl emit -n net-device-up \ + "IFACE=$IFACE" \ + "LOGICAL=$LOGICAL" \ + "ADDRFAM=$ADDRFAM" \ + "METHOD=$METHOD" +fi + +get_auto_interfaces() { + # write to stdout a list of interfaces configured as 'auto' in interfaces(5) + local found="" + # stderr redirected as it outputs things like: + # Ignoring unknown interface eth0=eth0. + found=$(ifquery --list --allow auto 2>/dev/null) || return + set -- ${found} + echo "$@" +} + +all_interfaces_up() { + # return true if all interfaces listed in /etc/network/interfaces as 'auto' + # are up. if no interfaces are found there, then "all [given] were up" + local prefix="$1" iface="" + for iface in $(get_auto_interfaces); do + # if cur interface does is not up, then all have not been brought up + [ -f "${prefix}${iface}" ] || return 1 + done + return 0 +} + +# touch our own "marker" indicating that this interface has been brought up. +: > "${MARK_DEV_PREFIX}$IFACE" + +if all_interfaces_up "${MARK_DEV_PREFIX}" && + mkdir "${MARK_STATIC_NETWORK_EMITTED}" 2>/dev/null; then + initctl emit --no-wait static-network-up +fi diff -Nru ifupdown-0.7.2/debian/networking.init ifupdown-0.7.3/debian/networking.init --- ifupdown-0.7.2/debian/networking.init 2012-08-16 23:21:03.000000000 +0200 +++ ifupdown-0.7.3/debian/networking.init 2012-10-16 10:38:55.000000000 +0200 @@ -114,6 +114,9 @@ case "$1" in start) + if init_is_upstart; then + exit 1 + fi process_options check_ifstate @@ -134,6 +137,9 @@ ;; stop) + if init_is_upstart; then + exit 0 + fi check_network_file_systems check_network_swap @@ -159,6 +165,9 @@ ;; force-reload|restart) + if init_is_upstart; then + exit 1 + fi process_options log_warning_msg "Running $0 $1 is deprecated because it may not re-enable some interfaces" diff -Nru ifupdown-0.7.2/debian/rules ifupdown-0.7.3/debian/rules --- ifupdown-0.7.2/debian/rules 2012-08-16 23:20:54.000000000 +0200 +++ ifupdown-0.7.3/debian/rules 2012-10-16 10:38:55.000000000 +0200 @@ -52,6 +52,13 @@ override_dh_installinit: dh_installinit --name=networking --no-start -- start 40 S . start 35 0 6 . install -p -m 0644 debian/networking.defaults $(DESTDIR)/etc/default/networking + dh_installinit --name=network-interface-container --noscripts + dh_installinit --name=network-interface-security --noscripts + dh_installinit --name=network-interface --noscripts + dh_installinit --name=networking --noscripts + +override_dh_installifupdown: + dh_installifupdown --name=upstart override_dh_auto_clean: $(MAKE) clean diff -Nru ifupdown-0.7.2/debian/testbuild-linux ifupdown-0.7.3/debian/testbuild-linux --- ifupdown-0.7.2/debian/testbuild-linux 2012-08-15 12:17:16.000000000 +0200 +++ ifupdown-0.7.3/debian/testbuild-linux 2012-10-16 10:38:04.000000000 +0200 @@ -4,7 +4,7 @@ mkdir tests cat >tests/testcase.1 <<EOF # RUN: -a -auto eth0 eth1 eth2 +auto eth0 eth1 eth2 eth3 iface eth0 inet static address 1.2.3.4 netmask 255.255.255.0 @@ -24,6 +24,25 @@ broadcast 1.2.3.127 up echo hi post-up echo hello + +iface eth3 inet static + address 1.2.3.4/24 + broadcast - + up true + +iface eth3 inet static + address 1.2.3.4/30 + broadcast - + up true + +iface eth3 inet static + address 1.2.3.4/31 + up true + +iface eth3 inet static + address 1.2.3.4/31 + broadcast - + up true EOF cat >tests/up.1 <<EOF ====stdout==== @@ -53,6 +72,34 @@ echo hi echo hello run-parts --verbose /etc/network/if-up.d +Configuring interface eth3=eth3 (inet) +run-parts --verbose /etc/network/if-pre-up.d +ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.0 dev eth3 label eth3 +ip link set dev eth3 up + +true +run-parts --verbose /etc/network/if-up.d +Configuring interface eth3=eth3 (inet) +run-parts --verbose /etc/network/if-pre-up.d +ip addr add 1.2.3.4/255.255.255.252 broadcast 1.2.3.4 dev eth3 label eth3 +ip link set dev eth3 up + +true +run-parts --verbose /etc/network/if-up.d +Configuring interface eth3=eth3 (inet) +run-parts --verbose /etc/network/if-pre-up.d +ip addr add 1.2.3.4/255.255.255.254 broadcast 255.255.255.255 dev eth3 label eth3 +ip link set dev eth3 up + +true +run-parts --verbose /etc/network/if-up.d +Configuring interface eth3=eth3 (inet) +run-parts --verbose /etc/network/if-pre-up.d +ip addr add 1.2.3.4/255.255.255.254 broadcast 0.0.0.0 dev eth3 label eth3 +ip link set dev eth3 up + +true +run-parts --verbose /etc/network/if-up.d run-parts --verbose /etc/network/if-up.d EOF diff -Nru ifupdown-0.7.2/ifupdown.nw ifupdown-0.7.3/ifupdown.nw --- ifupdown-0.7.2/ifupdown.nw 2012-08-13 20:20:19.000000000 +0200 +++ ifupdown-0.7.3/ifupdown.nw 2012-10-16 10:38:04.000000000 +0200 @@ -4793,12 +4793,22 @@ free(s); if (r != 1) return; - if (!strcmp(*pparam, "+")) { - addr.s_addr |= ~mask.s_addr; - } + if (mask.s_addr != htonl(0xfffffffe)) { + if (!strcmp(*pparam, "+")) { + addr.s_addr |= ~mask.s_addr; + } + + if (!strcmp(*pparam, "-")) { + addr.s_addr &= mask.s_addr; + } + } else { + if (!strcmp(*pparam, "+")) { + addr.s_addr = 0xffffffff; + } - if (!strcmp(*pparam, "-")) { - addr.s_addr |= mask.s_addr; + if (!strcmp(*pparam, "-")) { + addr.s_addr = 0; + } } char buffer[INET_ADDRSTRLEN + 1]; diff -Nru ifupdown-0.7.2/Makefile ifupdown-0.7.3/Makefile --- ifupdown-0.7.2/Makefile 2012-08-13 20:20:24.000000000 +0200 +++ ifupdown-0.7.3/Makefile 2012-10-16 10:38:04.000000000 +0200 @@ -13,7 +13,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
Attachment:
signature.asc
Description: PGP signature