Your message dated Sun, 05 Mar 2017 18:01:00 +0000
with message-id <[email protected]>
and subject line Re: Bug#856868: unblock: ifupdown2/1.0~git20170223-1
has caused the Debian Bug report #856868,
regarding unblock: ifupdown2/1.0~git20170223-1
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 [email protected]
immediately.)


-- 
856868: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=856868
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock

Please unblock package ifupdown2

Hello,

Our latest upload made it into sid. This upload (1.0~git20170223-1) fixes all
the recent bugs we faced. This version fixes 2 bugs (1 serious and 1 important)

We would appreciate if you could unblock this latest version to allow our users
and stretch to benefit from these fixes.

Thank you,
Julien - Cumulus Networks

diff -Nru ifupdown2-1.0~git20170114/addons/tunnel.py 
ifupdown2-1.0~git20170223/addons/tunnel.py
--- ifupdown2-1.0~git20170114/addons/tunnel.py  1970-01-01 01:00:00.000000000 
+0100
+++ ifupdown2-1.0~git20170223/addons/tunnel.py  2017-03-05 18:21:55.000000000 
+0100
@@ -0,0 +1,151 @@
+#!/usr/bin/python
+#
+# Maximilian Wilhelm <[email protected]>
+#  --  Mon 10 Oct 2016 10:53:13 PM CEST
+#
+
+from ifupdown.iface import *
+from ifupdownaddons.modulebase import moduleBase
+from ifupdownaddons.iproute2 import iproute2
+import ifupdown.ifupdownflags as ifupdownflags
+import logging
+
+#
+# TODO: Add checks for ipip tunnels.
+#
+class tunnel (moduleBase):
+    _modinfo = { 'mhelp' : 'create/configure GRE/IPIP/SIT tunnel interfaces',
+                 'attrs' : {
+                   'mode' :
+                        { 'help' : 'type of tunnel as in \'ip link\' command.',
+                          'validvals' : ['gre' 'ipip', 'sit'],
+                          'required' : True,
+                          'example' : ['mode gre']},
+                   'local' :
+                        { 'help' : 'IP of local tunnel endpoint',
+                          'validvals' : ['<ipv4>', '<ipv6>'],
+                          'required' : True,
+                          'example' : ['local 192.2.0.42']},
+                   'endpoint' :
+                        { 'help' : 'IP of remote tunnel endpoint',
+                          'validvals' : ['<ipv4>', '<ipv6>'],
+                          'required' : True,
+                          'example' : ['endpoint 192.2.0.23']},
+                   'ttl' :
+                        { 'help' : 'TTL for tunnel packets',
+                          'validvals' : ['<number>'],
+                          'required' : False,
+                          'example' : ['ttl 64']},
+                   'tunnel-physdev' :
+                        { 'help' : 'Physical underlay device to use for tunnel 
packets',
+                          'validvals' : ['<interface>'],
+                          'required' : False,
+                          'example' : ['tunnel-physdev eth1']},
+                 }
+               }
+
+
+    def __init__ (self, *args, **kargs):
+        moduleBase.__init__ (self, *args, **kargs)
+        self.ipcmd = None
+
+
+    def _is_my_interface (self, ifaceobj):
+        if ifaceobj.addr_method == "tunnel" and ifaceobj.get_attr_value_first 
('mode'):
+            return True
+        return False
+
+
+    def _up (self, ifaceobj):
+        attr_map = {
+            # attr_name -> ip route param name
+            'local' : 'local',
+            'endpoint' : 'remote',
+            'ttl' : 'ttl',
+            'tunnel-physdev' : 'dev',
+        }
+
+        mode = ifaceobj.get_attr_value_first ('mode')
+        attrs = {}
+
+        # Only include attributes which have been set and map ifupdown2 names
+        # to attribute names expected by iproute
+        for attr, iproute_attr in attr_map.items ():
+            attr_val = ifaceobj.get_attr_value_first (attr)
+            if attr_val != None:
+                attrs[iproute_attr] = attr_val
+
+        self.ipcmd.link_create (ifaceobj.name, mode, attrs)
+
+
+    def _down (self, ifaceobj):
+        if not ifupdownflags.flags.PERFMODE and not self.ipcmd.link_exists 
(ifaceobj.name):
+           return
+        try:
+            self.ipcmd.link_delete (ifaceobj.name)
+        except Exception, e:
+            self.log_warn (str (e))
+
+
+    def _query_check_n_update (self, ifaceobj, ifaceobjcurr, attrname, attrval,
+                               running_attrval):
+        if not ifaceobj.get_attr_value_first (attrname):
+            return
+
+        if running_attrval and attrval == running_attrval:
+           ifaceobjcurr.update_config_with_status (attrname, attrval, 0)
+        else:
+           ifaceobjcurr.update_config_with_status (attrname, running_attrval, 
1)
+
+
+    def _query_check (self, ifaceobj, ifaceobjcurr):
+        if not self.ipcmd.link_exists (ifaceobj.name):
+            return
+
+        tunattrs = self.ipcmd.link_get_linkinfo_attrs (ifaceobj.name)
+        if not tunattrs:
+            ifaceobjcurr.check_n_update_config_with_status_many (ifaceobj, 
self.get_mod_attrs (), -1)
+            return
+
+        for attr in self.get_mod_attrs ():
+            if not ifaceobj.get_attr_value_first (attr):
+                continue
+
+            # Validate all interface attributes set in the config.
+            # Remote any leading 'tunnel-' prefix in front of the attr name
+            # when accessing tunattrs parsed from 'ip -d link'.
+            self._query_check_n_update (ifaceobj, ifaceobjcurr, attr,
+                                        ifaceobj.get_attr_value_first (attr),
+                                        tunattrs.get (attr.replace ("tunnel-", 
"")))
+
+
+    # Operations supported by this addon (yet).
+    _run_ops = {
+        'pre-up' : _up,
+        'post-down' : _down,
+        'query-checkcurr' : _query_check
+    }
+
+
+    def get_ops (self):
+        return self._run_ops.keys()
+
+
+    def _init_command_handlers (self):
+        if not self.ipcmd:
+            self.ipcmd = iproute2 ()
+
+
+    def run (self, ifaceobj, operation, query_ifaceobj = None, **extra_args):
+        op_handler = self._run_ops.get (operation)
+        if not op_handler:
+            return
+
+        if operation != 'query-running' and not self._is_my_interface 
(ifaceobj):
+            return
+
+        self._init_command_handlers ()
+        if operation == 'query-checkcurr':
+            op_handler (self, ifaceobj, query_ifaceobj)
+        else:
+            op_handler (self, ifaceobj)
diff -Nru ifupdown2-1.0~git20170114/config/addons.conf 
ifupdown2-1.0~git20170223/config/addons.conf
--- ifupdown2-1.0~git20170114/config/addons.conf        2017-01-14 
04:15:27.000000000 +0100
+++ ifupdown2-1.0~git20170223/config/addons.conf        2017-03-05 
18:21:55.000000000 +0100
@@ -1,4 +1,5 @@
 pre-up,link
+pre-up,tunnel
 pre-up,bond
 pre-up,batman_adv
 pre-up,vlan
@@ -35,3 +36,4 @@
 post-down,batman_adv
 post-down,usercmds
 post-down,link
+post-down,tunnel
diff -Nru ifupdown2-1.0~git20170114/debian/changelog 
ifupdown2-1.0~git20170223/debian/changelog
--- ifupdown2-1.0~git20170114/debian/changelog  2017-01-14 03:59:54.000000000 
+0100
+++ ifupdown2-1.0~git20170223/debian/changelog  2017-02-23 11:24:37.000000000 
+0100
@@ -1,3 +1,17 @@
+ifupdown2 (1.0~git20170223-1) unstable; urgency=medium
+
+  * drop the dependency to pkg_resources, hardcode version number (closes: 
#855401)
+  * adjust allow-hotplug behavior to ifupdown (closes: #855598)
+
+ -- Julien Fortin <[email protected]>  Thu, 23 Feb 2017 11:24:37 +0100
+
+ifupdown2 (1.0~git20170214-1) unstable; urgency=medium
+
+  * closes: #854325 debian: control: add back "Conflicts: ifupdown"
+  * New. Enabled: support for GRE/SIT tunnels
+
+ -- Julien Fortin <[email protected]>  Tue, 14 Feb 2017 21:47:26 +0100
+
 ifupdown2 (1.0~git20170114-1) unstable; urgency=medium
 
   * closes: #843848 diversion handling broken
diff -Nru ifupdown2-1.0~git20170114/debian/control 
ifupdown2-1.0~git20170223/debian/control
--- ifupdown2-1.0~git20170114/debian/control    2017-01-14 03:59:54.000000000 
+0100
+++ ifupdown2-1.0~git20170223/debian/control    2017-02-23 11:24:37.000000000 
+0100
@@ -12,6 +12,7 @@
 Suggests: python-gvgen, python-mako
 Replaces: ifupdown
 Provides: ifupdown
+Conflicts: ifupdown
 Depends: ${python:Depends}, ${misc:Depends}, python-argcomplete, 
python-ipaddr, iproute2
 Recommends: isc-dhcp-client | dhcp-client
 Description: Network Interface Management tool similar to ifupdown
diff -Nru ifupdown2-1.0~git20170114/debian/ifupdown2.preinst 
ifupdown2-1.0~git20170223/debian/ifupdown2.preinst
--- ifupdown2-1.0~git20170114/debian/ifupdown2.preinst  2017-01-14 
03:59:54.000000000 +0100
+++ ifupdown2-1.0~git20170223/debian/ifupdown2.preinst  2017-02-23 
11:24:37.000000000 +0100
@@ -27,14 +27,6 @@
             preinst_divert "/usr/share/man/man8/$filename.8.gz"
         done
         preinst_divert "/usr/share/man/man5/interfaces.5.gz"
-
-        # workaround 3.0.0 internal install error.  This can be removed in a
-        # few weeks.
-        if [ -f /etc/default/networking/networking.default ]; then
-            dpkg-maintscript-helper rm_conffile 
/etc/default/networking/networking.default 1.1 -- $@
-            rm -f /etc/default/networking/networking.default
-            rmdir /etc/default/networking
-        fi
         ;;
 esac
 
diff -Nru ifupdown2-1.0~git20170114/ifupdown/networkinterfaces.py 
ifupdown2-1.0~git20170223/ifupdown/networkinterfaces.py
--- ifupdown2-1.0~git20170114/ifupdown/networkinterfaces.py     2017-01-14 
04:15:27.000000000 +0100
+++ ifupdown2-1.0~git20170223/ifupdown/networkinterfaces.py     2017-03-05 
18:21:55.000000000 +0100
@@ -27,8 +27,8 @@
     callbacks = {}
     auto_all = False
 
-    _addrfams = {'inet' : ['static', 'manual', 'loopback', 'dhcp', 'dhcp6'],
-                 'inet6' : ['static', 'manual', 'loopback', 'dhcp', 'dhcp6']}
+    _addrfams = {'inet' : ['static', 'manual', 'loopback', 'dhcp', 'dhcp6', 
'tunnel'],
+                 'inet6' : ['static', 'manual', 'loopback', 'dhcp', 'dhcp6', 
'tunnel']}
 
     def __init__(self, interfacesfile='/etc/network/interfaces',
                  interfacesfileiobuf=None, interfacesfileformat='native',
diff -Nru ifupdown2-1.0~git20170114/ifupdownaddons/iproute2.py 
ifupdown2-1.0~git20170223/ifupdownaddons/iproute2.py
--- ifupdown2-1.0~git20170114/ifupdownaddons/iproute2.py        2017-01-14 
04:15:27.000000000 +0100
+++ ifupdown2-1.0~git20170223/ifupdownaddons/iproute2.py        2017-03-05 
18:21:55.000000000 +0100
@@ -103,6 +103,24 @@
                         linkattrs['state'] = citems[i + 1]
                     elif citems[i] == 'link/ether':
                         linkattrs['hwaddress'] = citems[i + 1]
+                    elif citems[i] in [ 'link/gre', 'link/sit' ]:
+                        linkattrs['kind'] = 'tunnel'
+                        tunattrs = {'mode' : citems[i].split ('/')[1],
+                                    'endpoint' : None,
+                                    'local' : None,
+                                    'ttl' : None,
+                                    'physdev' : None}
+                        for j in range(i + 2, len(citems)):
+                            if citems[j] == 'local':
+                                tunattrs['local'] = citems[j + 1]
+                            elif citems[j] == 'remote':
+                                tunattrs['endpoint'] = citems[j + 1]
+                            elif citems[j] == 'ttl':
+                                tunattrs['ttl'] = citems[j + 1]
+                            elif citems[j] == 'dev':
+                                tunattrs['physdev'] = citems[j + 1]
+                        linkattrs['linkinfo'] = tunattrs
+                        break
                     elif citems[i] == 'vlan':
                         vlanid = self._get_vland_id(citems, i, warn)
                         if vlanid:
diff -Nru ifupdown2-1.0~git20170114/sbin/ifupdown2 
ifupdown2-1.0~git20170223/sbin/ifupdown2
--- ifupdown2-1.0~git20170114/sbin/ifupdown2    2017-01-14 04:15:27.000000000 
+0100
+++ ifupdown2-1.0~git20170223/sbin/ifupdown2    2017-03-05 18:21:55.000000000 
+0100
@@ -15,10 +15,11 @@
 import logging
 import logging.handlers
 import resource
-import pkg_resources
 from ifupdown.ifupdownmain import *
 from ifupdown.utils import *
 
+IFUPDOWN2_VERSION = '20170223-1'
+
 lockfile="/run/network/.lock"
 configfile="/etc/network/ifupdown2/ifupdown2.conf"
 configmap_g=None
@@ -397,10 +398,9 @@
 def update_common_argparser(argparser):
     ''' general parsing rules '''
 
-    package = pkg_resources.get_distribution("ifupdown2")
     argparser.add_argument('-V', '--version',
                 action='version',
-                version='ifupdown2:%(prog)s ' + package.version,
+                version='ifupdown2:%(prog)s ' + IFUPDOWN2_VERSION,
                 help='display current ifupdown2 version')
 
 def parse_args(argsv, op):
diff -Nru ifupdown2-1.0~git20170114/sbin/start-networking 
ifupdown2-1.0~git20170223/sbin/start-networking
--- ifupdown2-1.0~git20170114/sbin/start-networking     2017-01-14 
04:15:27.000000000 +0100
+++ ifupdown2-1.0~git20170223/sbin/start-networking     2017-03-05 
18:21:55.000000000 +0100
@@ -87,7 +87,8 @@
                            do
                                    link=${iface##:*}
                                    link=${link##.*}
-                                   if [ -e "/sys/class/net/$link" ] && [ 
"$(cat /sys/class/net/$link/operstate)" = up ]
+                                   ip link set "$iface" up || true
+                                   if [ "$(cat 
/sys/class/net/$link/operstate)" = up ]
                                    then
                                            echo "$iface"
                                    fi
diff -Nru ifupdown2-1.0~git20170114/setup.py ifupdown2-1.0~git20170223/setup.py
--- ifupdown2-1.0~git20170114/setup.py  2017-01-14 04:15:27.000000000 +0100
+++ ifupdown2-1.0~git20170223/setup.py  2017-03-05 18:21:55.000000000 +0100
@@ -16,7 +16,7 @@
                       'addons/dhcp.py', 'addons/usercmds.py',
                       'addons/ethtool.py',
                       'addons/addressvirtual.py', 'addons/vxlan.py',
-                      'addons/link.py', 'addons/vrf.py',
+                      'addons/link.py', 'addons/tunnel.py', 'addons/vrf.py',
                       'addons/bridgevlan.py', 'addons/batman_adv.py']),
                    ('/usr/share/ifupdown2/nlmanager/',
                     ['nlmanager/nllistener.py',


unblock ifupdown2/1.0~git20170223-1

-- System Information:
Debian Release: 9.0
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'unstable'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

--- End Message ---
--- Begin Message ---
Julien Fortin:
> Package: release.debian.org
> Severity: normal
> User: [email protected]
> Usertags: unblock
> 
> Please unblock package ifupdown2
> 
> Hello,
> 
> Our latest upload made it into sid. This upload (1.0~git20170223-1) fixes all
> the recent bugs we faced. This version fixes 2 bugs (1 serious and 1 
> important)
> 
> We would appreciate if you could unblock this latest version to allow our 
> users
> and stretch to benefit from these fixes.
> 
> Thank you,
> Julien - Cumulus Networks
> 
> [...]
> 
> unblock ifupdown2/1.0~git20170223-1
> 
> [...]

Unblocked, thanks.

~Niels

--- End Message ---

Reply via email to