--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock
Please unblock package netscript-2.4
2 serious bugs have been fixed in 5.4.8:
#717871 netscript: fails to install due to insserv rejecting the script
header: There is a loop between service networking and netscript if started
This is due to the ifupdown providing insserv support for $network, and
netscript-2.4 also doing the same. Both packages configure networking. The
setting for $network is configured in /etc/insserv/insserv.conf, but there is
no way of overriding that, is there?
This is fixed by removing init.d support for insserv/sysvinit, and depending on
systemd-sysv
#773772/#773773 netscript-2.4: Interace names with '-' in them cannot be set
up, and network configuration fails.
Netscript overloads variable names by adding the interface name at the start.
'-' are not acceptable parts of /bin/bash environment variable names. The
changes for this convert '-' in interface names to '_', which also should be
done to interface names in /etc/netscript/network.conf
This bug was fixed in 5.4.7 and I forgot to put a 'Closes' in the changelog and
had to close #773772/3 via the bugs.debian.org control interface.
A small fix involving quoting misplacement to do with bridge configuration is
also in 5.4.8. I know this is a minor change that fixes an 'Important' level
bug I found.
I am the upstream author for Netscript and a Debian Developer (since the early
2000s), and upstream is actually released directly into Debian, hence no -1 -2
package release levels. It was one of my first Debian packages. I would
release it differently now. It has functional heurestics that would be nice to
have in ifupdown. The useful iptables handling is available as a seperate
package netscript-ipfilter, which is better than iptables-persistent as it has
history, and 'helper' chains.
The above fixes are all minor 5.4.x version bug fixes. Note that new 5.x
functionality has been added. Please unblock the package, even though it has
the bridge handling quoting fixes.
All the above has been tested on an openstack server on Jessie/unstable I am
setting up to learn about Openstack
Changlog entries for 5.4.7 and 5.4.8
(include/attach the debdiff against the package in testing)
unblock netscript-2.4/5.4.8
-- System Information:
Debian Release: 8.0
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_NZ.utf8, LC_CTYPE=en_NZ.utf8 (charmap=UTF-8)
diff -Nru netscript-2.4-5.4.6/debian/changelog netscript-2.4-5.4.8/debian/changelog
--- netscript-2.4-5.4.6/debian/changelog 2014-12-22 19:48:40.000000000 +1300
+++ netscript-2.4-5.4.8/debian/changelog 2014-12-23 18:05:08.000000000 +1300
@@ -1,6 +1,21 @@
+netscript-2.4 (5.4.8) unstable; urgency=medium
+
+ * Remove sysvint/inserv support for package. (Closes: #771871)
+ Revert totally removing ifupdown emulation/Provides as this breaks too
+ many things. This just removes the dependency loop in /etc/init.d files
+ which is unfixable.
+
+ -- Matthew Grant <m...@mattgrant.net.nz> Tue, 23 Dec 2014 17:50:04 +1300
+
+netscript-2.4 (5.4.7) unstable; urgency=medium
+
+ * Convert '-' in interface names to '_' (Closes: #773772)
+
+ -- Matthew Grant <m...@mattgrant.net.nz> Mon, 22 Dec 2014 21:10:30 +1300
+
netscript-2.4 (5.4.6) unstable; urgency=medium
- * Remove ifupdown emulation (Closes: #771871)
+ * Remove ifupdown emulation
-- Matthew Grant <m...@mattgrant.net.nz> Mon, 22 Dec 2014 19:48:20 +1300
diff -Nru netscript-2.4-5.4.6/debian/control netscript-2.4-5.4.8/debian/control
--- netscript-2.4-5.4.6/debian/control 2014-12-22 19:50:08.000000000 +1300
+++ netscript-2.4-5.4.8/debian/control 2014-12-23 18:06:20.000000000 +1300
@@ -7,8 +7,8 @@
Package: netscript-2.4
Architecture: all
-Depends: iproute2 | iproute (>= 20001007), bridge-utils (>= 0.9.3), iptables, netbase, bash (>= 2.03), isc-dhcp-client | dhcpcd | pump, ${misc:Depends}
-Provides: netscript
+Depends: iproute2 | iproute (>= 20001007), bridge-utils (>= 0.9.3), iptables, netbase, bash (>= 2.03), isc-dhcp-client | dhcpcd | pump, systemd-sysv, ${misc:Depends}
+Provides: netscript, ifupdown
Conflicts: netscript, netscript-2.2, ifupdown, netscript-ipfilter
Replaces: netscript, ifupdown
Suggests: whereami, dnsmasq, resolvconf, wpasupplicant, wicd, quagga, radvd, bird
diff -Nru netscript-2.4-5.4.6/debian/netscript-2.4.links netscript-2.4-5.4.8/debian/netscript-2.4.links
--- netscript-2.4-5.4.6/debian/netscript-2.4.links 2014-12-22 19:46:26.000000000 +1300
+++ netscript-2.4-5.4.8/debian/netscript-2.4.links 2014-12-23 17:43:57.000000000 +1300
@@ -2,3 +2,7 @@
usr/share/man/man5/netscript-2.4.conf.5.gz usr/share/man/man5/if.conf.5.gz
usr/share/man/man5/netscript-2.4.conf.5.gz usr/share/man/man5/qos.conf.5.gz
usr/share/man/man5/netscript-2.4.conf.5.gz usr/share/man/man5/ipfilter.conf.5.gz
+usr/share/man/man8/netscript.8.gz usr/share/man/man8/ifup.8.gz
+usr/share/man/man8/netscript.8.gz usr/share/man/man8/ifdown.8.gz
+sbin/netscript sbin/ifup
+sbin/netscript sbin/ifdown
diff -Nru netscript-2.4-5.4.6/debian/README.Debian netscript-2.4-5.4.8/debian/README.Debian
--- netscript-2.4-5.4.6/debian/README.Debian 2014-12-22 18:00:21.000000000 +1300
+++ netscript-2.4-5.4.8/debian/README.Debian 2014-12-23 18:39:52.000000000 +1300
@@ -1,21 +1,7 @@
netscript-2.4 for Debian
----------------------
-This package is still experimental, and under rapid evolution so it does not
-come with much documentation. It is designed to work best with a router
-software like zebra.
-
-Install a router flavour kernel, or one generated from the accompanying
-kernel configuration.
-
-To configure kernel run:
-
-make mrproper
-cp /usr/share/doc/2.2.x-kernel.config .config
-make menuconfig
-
-and configure your kernel, save configuration, make dep; make bzImage;
-make modules as usual.
+It is designed to work best with a router software like quagga or bird.
Most of the interface level configuration you will need will be found in
/etc/netscript/network.conf including lower level protocol
@@ -35,12 +21,8 @@
CONFIGURATION
-------------
-NB: To get this package working, for sysvinit:
-
-you will HAVE to edit /etc/network/interfaces removing/commenting out all
-interfacesi (or declaure as inet/inet6 manual'), and edit
-/etc/default/networking by inserting 'exit 0' near the top before the first
-commands in the file.
+Sysvinit is no longer supported, thanks to ome irresolvable boot order
+dependency loops with the ifupdown package.
For systemd:
@@ -48,11 +30,16 @@
systemctl mask ifupdown
systemctl mask ifup\@.service
+Or saving /etc/network/interfaces and purging ifupdown should suffice.
+A lot cleaner.
+
+cp /etc/network/interfaces /tmp
+dpkg --purge ifupdown
+cp /tmp/interfaces /etc/network
+
You may also want to mask all the NetworkManager services as well, it likes
configuring things that are not in /etc/network/interfaces.
-should suffice. A lot cleaner.
-
You may also want to disable inetd and/or portmap from starting up, but check
that you have something like ssh setup to run in daemon mode first before doing
inetd! The commands would be:
diff -Nru netscript-2.4-5.4.6/if.conf netscript-2.4-5.4.8/if.conf
--- netscript-2.4-5.4.6/if.conf 2014-12-22 18:34:08.000000000 +1300
+++ netscript-2.4-5.4.8/if.conf 2014-12-22 21:06:59.000000000 +1300
@@ -9,7 +9,7 @@
#
###############################################################################
-SED_IFSTR='s/\([A-Za-z]*\)[0-9]*$/\1/'
+SED_IFSTR='s/\([-A-Za-z]*\)[0-9]*$/\1/'
SED_IPV4STR='s/^.*inet \([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+[/0-9]\+\) .*$/\1/'
SED_IPV6STR='s/^.*inet6 \([0-9a-f]\+\:.*\:[0-9a-f]\+[/0-9]\+\) .*$/\1/'
SED_IPV6ADDR="sed -e 's/:0\+\([0-9a-fA-F]\+\)/:\1/g' | sed -e 's/^0\+\([0-9a-fA-F]\+\)/\1/'| sed -e 's/\(:0\)\+:\(:0\)*\|\(:0\)*:\(:0\)\+/:/'"
@@ -116,36 +116,37 @@
if_up () {
local ADDR
+ local IF_NODASH=`echo "$1" | sed -e 's/\-/_/g'`
# sort out a few things to make life easier - here so that you
# can see what is done and so that you can add anything if needed
- eval IPADDR=\${"$1"_IPADDR:-""} # I am also a good genius
- eval MASKLEN=\${"$1"_MASKLEN:-""}
- eval BROADCAST=\${"$1"_BROADCAST:-""}
- eval PTPADDR=\${"$1"_PTPADDR:-""}
- eval IP_EXTRA_ADDRS=\${"$1"_IP_EXTRA_ADDRS:-""}
- eval MTU=\${"$1"_MTU:-""}
- eval MULTICAST=\${"$1"_MULTICAST:-""}
- eval HB_TICKLE=\${"$1"_HB_TICKLE:-""}
- eval BRIDGE=\${"$1"_BRIDGE:-""}
- eval RESOLVCONF=\${"$1"_RESOLVCONF:-""}
- eval local DEFAULT_GW=\${"$1"_DEFAULT_GW:-""}
- eval local FAIRQ=\${"$1"_FAIRQ:-""}
- eval local TXQLEN=\${"$1"_TXQLEN:-""}
- eval local IP_SPOOF=\${"$1"_IP_SPOOF:-""}
- eval local IP_KRNL_LOGMARTIANS=\${"$1"_IP_KRNL_LOGMARTIANS:-""}
- eval local IP_SHARED_MEDIA=\${"$1"_IP_SHARED_MEDIA:-""}
- eval local IP_SEND_REDIRECTS=\${"$1"_IP_SEND_REDIRECTS:-""}
- eval local PROXY_ARP=\${"$1"_PROXY_ARP:-""}
- eval IPV6_ACCEPT_REDIRECTS=\${"$1"_IPV6_ACCEPT_REDIRECTS:-""}
- eval IPV6_ACCEPT_RA=\${"$1"_IPV6_ACCEPT_RA:-""}
- eval IPV6_ACCEPT_RA_PINFO=\${"$1"_IPV6_ACCEPT_RA_PINFO:-""}
- eval IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=\${"$1"_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN:-""}
- eval IPV6_DISABLE=\${"$1"_IPV6_DISABLE:-""}
- eval IPV6_FWDING=\${"$1"_IPV6_FWDING:-""}
- eval IPV6_PRIVACY=\${"$1"_IPV6_PRIVACY:-""}
- eval IPV6_ROUTER_SOLICITATIONS=\${"$1"_IPV6_ROUTER_SOLICITATIONS:-""}
- eval IPV6_MTU=\${"$1"_IPV6_MTU:-""}
+ eval IPADDR=\${"${IF_NODASH}"_IPADDR:-""} # I am also a good genius
+ eval MASKLEN=\${"${IF_NODASH}"_MASKLEN:-""}
+ eval BROADCAST=\${"${IF_NODASH}"_BROADCAST:-""}
+ eval PTPADDR=\${"${IF_NODASH}"_PTPADDR:-""}
+ eval IP_EXTRA_ADDRS=\${"${IF_NODASH}"_IP_EXTRA_ADDRS:-""}
+ eval MTU=\${"${IF_NODASH}"_MTU:-""}
+ eval MULTICAST=\${"${IF_NODASH}"_MULTICAST:-""}
+ eval HB_TICKLE=\${"${IF_NODASH}"_HB_TICKLE:-""}
+ eval BRIDGE=\${"${IF_NODASH}"_BRIDGE:-""}
+ eval RESOLVCONF=\${"${IF_NODASH}"_RESOLVCONF:-""}
+ eval local DEFAULT_GW=\${"${IF_NODASH}"_DEFAULT_GW:-""}
+ eval local FAIRQ=\${"${IF_NODASH}"_FAIRQ:-""}
+ eval local TXQLEN=\${"${IF_NODASH}"_TXQLEN:-""}
+ eval local IP_SPOOF=\${"${IF_NODASH}"_IP_SPOOF:-""}
+ eval local IP_KRNL_LOGMARTIANS=\${"${IF_NODASH}"_IP_KRNL_LOGMARTIANS:-""}
+ eval local IP_SHARED_MEDIA=\${"${IF_NODASH}"_IP_SHARED_MEDIA:-""}
+ eval local IP_SEND_REDIRECTS=\${"${IF_NODASH}"_IP_SEND_REDIRECTS:-""}
+ eval local PROXY_ARP=\${"${IF_NODASH}"_PROXY_ARP:-""}
+ eval IPV6_ACCEPT_REDIRECTS=\${"${IF_NODASH}"_IPV6_ACCEPT_REDIRECTS:-""}
+ eval IPV6_ACCEPT_RA=\${"${IF_NODASH}"_IPV6_ACCEPT_RA:-""}
+ eval IPV6_ACCEPT_RA_PINFO=\${"${IF_NODASH}"_IPV6_ACCEPT_RA_PINFO:-""}
+ eval IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=\${"${IF_NODASH}"_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN:-""}
+ eval IPV6_DISABLE=\${"${IF_NODASH}"_IPV6_DISABLE:-""}
+ eval IPV6_FWDING=\${"${IF_NODASH}"_IPV6_FWDING:-""}
+ eval IPV6_PRIVACY=\${"${IF_NODASH}"_IPV6_PRIVACY:-""}
+ eval IPV6_ROUTER_SOLICITATIONS=\${"${IF_NODASH}"_IPV6_ROUTER_SOLICITATIONS:-""}
+ eval IPV6_MTU=\${"${IF_NODASH}"_IPV6_MTU:-""}
if [ -n "DEFAULT_GW" -a -z "$IPV4_DEFAULT_GW" ]; then
IPV4_DEFAULT_GW="$DEFAULT_GW"
IPV4_DEFAULT_GWDEV="$1"
diff -Nru netscript-2.4-5.4.6/netscript netscript-2.4-5.4.8/netscript
--- netscript-2.4-5.4.6/netscript 2014-12-22 18:34:08.000000000 +1300
+++ netscript-2.4-5.4.8/netscript 2014-12-22 21:06:59.000000000 +1300
@@ -326,7 +326,8 @@
return 0
;;
esac
- eval local IF_CHAIN_AUTO=\"\${"$1"_IF_CHAIN_AUTO:-""}\"
+ local IF_NODASH=`echo "$1" | sed -e 's/\-/_/g'`
+ eval local IF_CHAIN_AUTO=\"\${"${IF_NODASH}"_IF_CHAIN_AUTO:-""}\"
if_up $1 && vb echo -n " $1"
for IF in $IF_CHAIN_AUTO; do
if_up $IF && vb echo -n " $IF"
@@ -366,8 +367,9 @@
;;
esac
local REV_IF_CHAIN
- eval local IF_CHAIN=\"\${"$1"_IF_CHAIN:-""}\"
- eval local IF_CHAIN_AUTO=\"\${"$1"_IF_CHAIN_AUTO:-""}\"
+ local IF_NODASH=`echo "$1" | sed -e 's/\-/_/g'`
+ eval local IF_CHAIN=\"\${"${IF_NODASH}"_IF_CHAIN:-""}\"
+ eval local IF_CHAIN_AUTO=\"\${"${IF_NODASH}"_IF_CHAIN_AUTO:-""}\"
IF_CHAIN="$IF_CHAIN_AUTO $IF_CHAIN"
for IF in $IF_CHAIN; do
REV_IF_CHAIN="$REV_IF_CHAIN $IF"
@@ -543,16 +545,15 @@
esac
BRG_DEVLIST=`brctl show | sed -e '1d' | grep '^[-a-zA-Z0-9_]' | sed -e 's/^\([a-zA-Z0-9_\-]\+\)[ ].*$/\1/'`
-
for BRG in $BRG_DEVLIST; do
- ANS=`echo $BRG_LIST | grep $BRG`
+ ANS=`echo "$BRG_LIST" | grep "$BRG"`
if [ -z "$ANS" ]; then
- qt ip link set dev $BRG down
- brctl delbr $BRG
+ qt ip link set dev "$BRG" down
+ brctl delbr "$BRG"
fi
done
for BRG in $BRG_LIST; do
- brctl addbr $BRG > /dev/null 2>&1
+ brctl addbr "$BRG" > /dev/null 2>&1
done
brg_unbind_netfilter
@@ -574,9 +575,9 @@
BRG=$3
fi
[ -z "$BRG" ] && return 0
- ANS="echo $BRG_LIST | grep $BRG"
+ ANS=`echo "$BRG_LIST" | grep "$BRG"`
if [ -n "$ANS" ]; then
- brctl addif $BRG $1 > /dev/null 2>&1
+ brctl addif "$BRG" $1 > /dev/null 2>&1
[ -z "$4" ] && ifv6_setproc $1 disable_ipv6 YES
fi
;;
diff -Nru netscript-2.4-5.4.6/netscript.ppp.ip-down netscript-2.4-5.4.8/netscript.ppp.ip-down
--- netscript-2.4-5.4.6/netscript.ppp.ip-down 2014-12-22 18:34:08.000000000 +1300
+++ netscript-2.4-5.4.8/netscript.ppp.ip-down 2014-12-22 21:06:59.000000000 +1300
@@ -12,8 +12,9 @@
. /etc/netscript/qos.conf
REV_PPP_CHAIN=''
-eval PPP_CHAIN=\"\${"$PPP_IFACE"_PPP_CHAIN:-""}\"
-eval PPP_CHAIN_AUTO=\"\${"$PPP_IFACE"_PPP_CHAIN_AUTO:-""}\"
+IF_NODASH=`echo "$PPP_IFACE" | sed -e 's/\-/_/g'`
+eval PPP_CHAIN=\"\${"${IF_NODASH}"_PPP_CHAIN:-""}\"
+eval PPP_CHAIN_AUTO=\"\${"${IF_NODASH}"_PPP_CHAIN_AUTO:-""}\"
PPP_CHAIN="$PPP_CHAIN_AUTO $PPP_CHAIN"
for IF in $PPP_CHAIN; do
REV_PPP_CHAIN="$REV_PPP_CHAIN $IF"
diff -Nru netscript-2.4-5.4.6/netscript.ppp.ip-up netscript-2.4-5.4.8/netscript.ppp.ip-up
--- netscript-2.4-5.4.6/netscript.ppp.ip-up 2014-12-22 18:34:08.000000000 +1300
+++ netscript-2.4-5.4.8/netscript.ppp.ip-up 2014-12-22 21:06:59.000000000 +1300
@@ -16,7 +16,9 @@
ip_QoS $PPP_IFACE
fi
-eval TXQLEN=\${"$PPP_IFACE"_TXQLEN:-""}
+IF_NODASH=`echo "$PPP_IFACE" | sed -e 's/\-/_/g'`
+
+eval TXQLEN=\${"${IF_NODASH}"_TXQLEN:-""}
[ -z "$TXQLEN" ] && eval TXQLEN=\${ppp_TXQLEN:-""}
[ -n "$TXQLEN" ] \
&& ip link set dev $PPP_IFACE txqlen $TXQLEN
@@ -28,7 +30,7 @@
${PPP_IFACE}_network_ppp $PPP_IFACE
fi
-eval PPP_CHAIN_AUTO=\"\${"$PPP_IFACE"_PPP_CHAIN_AUTO:-""}\"
+eval PPP_CHAIN_AUTO=\"\${"${IF_NODASH}"_PPP_CHAIN_AUTO:-""}\"
for IF in $PPP_CHAIN_AUTO; do
if_up $IF
done
diff -Nru netscript-2.4-5.4.6/qos.conf netscript-2.4-5.4.8/qos.conf
--- netscript-2.4-5.4.6/qos.conf 2014-12-22 18:34:08.000000000 +1300
+++ netscript-2.4-5.4.8/qos.conf 2014-12-22 21:06:59.000000000 +1300
@@ -57,19 +57,20 @@
}
ip_QoS () {
+ local IF_NODASH=`echo "$1" | sed -e 's/\-/_/g'`
# Set some vaiables
- eval local HNDL1=\${"$1"_HNDL1:-""}
- eval local HNDL2=\${"$1"_HNDL2:-""}
- eval local FAIRQ=\${"$1"_FAIRQ:-""}
- eval local BNDWIDTH=\${"$1"_BNDWIDTH:-""}
- eval local PXMTU=\${"$1"_PXMTU:-""}
- eval local CARATE=\${"$1"_CARATE:-""}
- eval local IARATE=\${"$1"_IARATE:-""}
- eval local IABURST=\${"$1"_IABURST:-""}
- eval local SPQUEUE=\${"$1"_SPQUEUE:-""}
- eval local PEAKRATE=\${"$1"_PEAKRATE:-"$BNDWIDTH"}
- eval local BULKRATE=\${"$1"_BULKRATE:-"$CARATE"}
+ eval local HNDL1=\${"${IF_NODASH}"_HNDL1:-""}
+ eval local HNDL2=\${"${IF_NODASH}"_HNDL2:-""}
+ eval local FAIRQ=\${"${IF_NODASH}"_FAIRQ:-""}
+ eval local BNDWIDTH=\${"${IF_NODASH}"_BNDWIDTH:-""}
+ eval local PXMTU=\${"${IF_NODASH}"_PXMTU:-""}
+ eval local CARATE=\${"${IF_NODASH}"_CARATE:-""}
+ eval local IARATE=\${"${IF_NODASH}"_IARATE:-""}
+ eval local IABURST=\${"${IF_NODASH}"_IABURST:-""}
+ eval local SPQUEUE=\${"${IF_NODASH}"_SPQUEUE:-""}
+ eval local PEAKRATE=\${"${IF_NODASH}"_PEAKRATE:-"$BNDWIDTH"}
+ eval local BULKRATE=\${"${IF_NODASH}"_BULKRATE:-"$CARATE"}
if [ ! -x /sbin/tc ]; then
return 1
--- End Message ---