Package: python-nemu
Version: 0.1-1
Severity: grave
Tags: patch upstream
Justification: renders package unusable

Nemu depends on /bin/ip to get addresses of interfaces:
  ip -o addr list

But recent iproute/iproute2 does not show link information anymore,
making Nemu fail with following traceback:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/nemu/protocol.py", line 272, in run
    cmd[0](cmd[1], *cmd[2])
  File "/usr/lib/python2.7/dist-packages/nemu/protocol.py", line 480, in 
do_ADDR_ADD
    nemu.iproute.add_addr(ifnr, a)
  File "/usr/lib/python2.7/dist-packages/nemu/iproute.py", line 461, in add_addr
    addresses = get_addr_data()[1][ifname]
  File "/usr/lib/python2.7/dist-packages/nemu/iproute.py", line 440, in 
get_addr_data
    bynam[name].append(_parse_ip_addr(match.group(4)))
KeyError: 'lo'


iproute 20120521 is the latest version that lists addresses in expected format. 
So this bug does not affect Wheezy.

Attached patch fixes parsing of /bin/ip output.

-- System Information:
Debian Release: 7.0
  APT prefers unstable
  APT policy: (900, 'unstable'), (400, 'testing'), (300, 'experimental'), (200, 
'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.10.10+ (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-nemu depends on:
ii  bridge-utils    1.5-6
ii  iproute         1:3.11.0-1
ii  procps          1:3.3.4-2
ii  python          2.7.3-5
ii  python-passfd   0.2-1
ii  python-unshare  0.1-2

python-nemu recommends no packages.

Versions of packages python-nemu suggests:
ii  xauth  1:1.0.7-1

-- no debconf information
--- src/nemu/iproute.py	2012-04-02 05:00:00.000000000 +0200
+++ src/nemu/iproute.py	2013-10-04 13:46:16.318263897 +0200
@@ -434,9 +434,10 @@
             raise RuntimeError("Invalid `ip' command output")
         idx = int(match.group(1))
         name = match.group(2)
-        if match.group(3):
+        if name not in bynam:
             bynam[name] = byidx[idx] = []
-            continue # link info
+            if match.group(3): # BBB: old iproute also shows link info
+                continue
         bynam[name].append(_parse_ip_addr(match.group(4)))
     return byidx, bynam
 

Reply via email to