Package: libapache2-mod-wsgi-py3
Version: 4.3.0-1
Severity: serious
Tags: stretch sid

I run a derivative called raspbian and I noticed our auto-binnmuer was repeatedly binnmuing mod-wsgi. Further investigation reveealed that every time it was rebuilt it was getting dependencies like.

python3 (>= 3.5), python3 (<<  3.5)

Which is obviously unsatisfiable.

I was able to reproduce this with a manual test build in a Debian sid environment.

Further investigation showed that the code in debian/rules assumed that supported python3 versions would be listed from lowest to highest but the current version of py3versions -vs always lists the default version last. My memory tells me this was a recent behaviour change and that would seem to fit with the fact that in Debian this package was successfully binnmu'd to add python 3.5 support.

As a quick fix I added some commands to debian/rules to sort the list before extracting the first and last entries and uploaded to Raspbian. A debdiff is attached, no intent to NMU in Debian.

 ccing debian-python for their opinion on

1: whether they were aware that this behaviour change could break packages
2: whether there is a better way to get the highest and lowest currently supported python3 version.

diff -Nru mod-wsgi-4.3.0/debian/changelog mod-wsgi-4.3.0/debian/changelog
--- mod-wsgi-4.3.0/debian/changelog     2014-10-05 10:28:06.000000000 +0000
+++ mod-wsgi-4.3.0/debian/changelog     2015-11-18 05:22:24.000000000 +0000
@@ -1,3 +1,9 @@
+mod-wsgi (4.3.0-1+rpi1) stretch-staging; urgency=medium
+  * Sort python 3 versions to prevent generation of impossible dependencies.
+ -- Peter Michael Green <>  Wed, 18 Nov 2015 04:39:47 
 mod-wsgi (4.3.0-1) unstable; urgency=medium
   [ Felix Geyer ]
diff -Nru mod-wsgi-4.3.0/debian/rules mod-wsgi-4.3.0/debian/rules
--- mod-wsgi-4.3.0/debian/rules 2014-10-05 10:19:11.000000000 +0000
+++ mod-wsgi-4.3.0/debian/rules 2015-11-18 05:25:03.000000000 +0000
@@ -7,7 +7,7 @@
 PYDEFAULT=$(shell pyversions -dv)
 PYMIN=$(shell echo $(PYVERS) | awk '{print $$1}')
 PYMAX=$(shell echo $(PYVERS) | LANG=C awk '{print $$NF+0.1}')
-PY3VERS=$(shell py3versions -vs)
+PY3VERS=$(shell py3versions -vs | tr ' ' '\n' | sort -n | tr '\n' ' ' | paste 
-s -d ' ')
 PY3DEFAULT=$(shell py3versions -dv)
 PY3MIN=$(shell echo $(PY3VERS) | awk '{print $$1}')
 PY3MAX=$(shell echo $(PY3VERS) | LANG=C awk '{print $$NF+0.1}')

Reply via email to