Bug#722045: Please support python:any dependencies for multiarch compatibility

2013-09-23 Thread Colin Watson
On Mon, Sep 16, 2013 at 03:45:45PM +0100, Colin Watson wrote:
> On Mon, Sep 16, 2013 at 10:31:46AM -0400, Scott Kitterman wrote:
> > The current dh-python in Unstable is now uninstallable, which makes it 
> > impossible to build any package using python3.  Making dozens of packages 
> > unbuildable isn't a good way to have a test case.
> 
> OK, now I understand; Julien's previous comment was a little bit too
> telegraphic for me, given that I had been engaged in fixing a rather
> similar bug in wanna-build.  I guess this is a bug in edos-distcheck;
> maybe we need to move to dose-builddebcheck sooner rather than later,
> since it's really not very smart to keep this kind of thing blocked on
> infrastructure indefinitely.

Julien knows this already from IRC, but for the record in this bug log,
wanna-build is now using dose-builddebcheck so this is fixed.

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#722045: Please support python:any dependencies for multiarch compatibility

2013-09-16 Thread Colin Watson
On Mon, Sep 16, 2013 at 10:31:46AM -0400, Scott Kitterman wrote:
> The current dh-python in Unstable is now uninstallable, which makes it 
> impossible to build any package using python3.  Making dozens of packages 
> unbuildable isn't a good way to have a test case.

OK, now I understand; Julien's previous comment was a little bit too
telegraphic for me, given that I had been engaged in fixing a rather
similar bug in wanna-build.  I guess this is a bug in edos-distcheck;
maybe we need to move to dose-builddebcheck sooner rather than later,
since it's really not very smart to keep this kind of thing blocked on
infrastructure indefinitely.

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#722045: Please support python:any dependencies for multiarch compatibility

2013-09-16 Thread Colin Watson
On Mon, Sep 16, 2013 at 04:26:22PM +0200, Julien Cristau wrote:
> On Mon, Sep 16, 2013 at 15:21:05 +0100, Colin Watson wrote:
> > On Sat, Sep 14, 2013 at 04:04:26PM +0200, Julien Cristau wrote:
> > > On Fri, Sep  6, 2013 at 17:09:40 -0700, Steve Langasek wrote:
> > > > My understanding is that all the pieces are now in place for the 
> > > > archive to
> > > > support :any dependencies on interpreter packages.
> > > 
> > > No they're not, and this change seems to make anything python
> > > unbuildable on the buildds.  Please revert.
> > 
> > What specific buildd problems are you talking about?  I'd be happy to
> > look into them but will need details.
> 
> The specific problem that as of saturday before it got broken,
> wanna-build considered that dependency unsatisfiable.

That bug in wanna-build only concerned Build-Depends.  This bug is about
adding :any to Depends of python packages.  The two are unrelated.

In any case, since aba has applied my patch, once grieg gets unscrewed
after its upgrade it should support :any in Build-Depends too.

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#722045: Please support python:any dependencies for multiarch compatibility

2013-09-16 Thread Scott Kitterman
On Monday, September 16, 2013 15:21:05 Colin Watson wrote:
> On Sat, Sep 14, 2013 at 04:04:26PM +0200, Julien Cristau wrote:
> > On Fri, Sep  6, 2013 at 17:09:40 -0700, Steve Langasek wrote:
> > > My understanding is that all the pieces are now in place for the archive
> > > to
> > > support :any dependencies on interpreter packages.
> > 
> > No they're not, and this change seems to make anything python
> > unbuildable on the buildds.  Please revert.
> 
> What specific buildd problems are you talking about?  I'd be happy to
> look into them but will need details.
> 
> (See also the britney patch I sent to -release today, which this change
> definitely triggers - but I don't see that as a reason to revert since
> we need to fix this anyway and it makes a good test case.)

We already have a test case that isn't hurting anything (python3-defaults).  
The current dh-python in Unstable is now uninstallable, which makes it 
impossible to build any package using python3.  Making dozens of packages 
unbuildable isn't a good way to have a test case.

Scott K


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#722045: Please support python:any dependencies for multiarch compatibility

2013-09-16 Thread Julien Cristau
On Mon, Sep 16, 2013 at 15:21:05 +0100, Colin Watson wrote:

> On Sat, Sep 14, 2013 at 04:04:26PM +0200, Julien Cristau wrote:
> > On Fri, Sep  6, 2013 at 17:09:40 -0700, Steve Langasek wrote:
> > > My understanding is that all the pieces are now in place for the archive 
> > > to
> > > support :any dependencies on interpreter packages.
> > 
> > No they're not, and this change seems to make anything python
> > unbuildable on the buildds.  Please revert.
> 
> What specific buildd problems are you talking about?  I'd be happy to
> look into them but will need details.
> 
The specific problem that as of saturday before it got broken,
wanna-build considered that dependency unsatisfiable.

Cheers,
Julien


signature.asc
Description: Digital signature


Bug#722045: Please support python:any dependencies for multiarch compatibility

2013-09-16 Thread Colin Watson
On Sat, Sep 14, 2013 at 04:04:26PM +0200, Julien Cristau wrote:
> On Fri, Sep  6, 2013 at 17:09:40 -0700, Steve Langasek wrote:
> > My understanding is that all the pieces are now in place for the archive to
> > support :any dependencies on interpreter packages.
> 
> No they're not, and this change seems to make anything python
> unbuildable on the buildds.  Please revert.

What specific buildd problems are you talking about?  I'd be happy to
look into them but will need details.

(See also the britney patch I sent to -release today, which this change
definitely triggers - but I don't see that as a reason to revert since
we need to fix this anyway and it makes a good test case.)

-- 
Colin Watson   [cjwat...@debian.org]


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#722045: Please support python:any dependencies for multiarch compatibility

2013-09-14 Thread Julien Cristau
On Fri, Sep  6, 2013 at 17:09:40 -0700, Steve Langasek wrote:

> Package: dh-python
> Version: 1.20130903-1
> Tags: patch
> User: ubuntu-de...@lists.ubuntu.com
> Usertags: origin-ubuntu ubuntu-patch saucy
> X-Debbugs-Cc: hel...@subdivi.de
> 
> Hi Piotr,
> 
> My understanding is that all the pieces are now in place for the archive to
> support :any dependencies on interpreter packages.

No they're not, and this change seems to make anything python
unbuildable on the buildds.  Please revert.

Cheers,
Julien


signature.asc
Description: Digital signature


Bug#722045: Please support python:any dependencies for multiarch compatibility

2013-09-06 Thread Steve Langasek
Package: dh-python
Version: 1.20130903-1
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch saucy
X-Debbugs-Cc: hel...@subdivi.de

Hi Piotr,

My understanding is that all the pieces are now in place for the archive to
support :any dependencies on interpreter packages.  Since dh_python* are the
usual ways that these dependencies are generated, it would be helpful if
these tools would output the appropriately-tagged dependencies by default.

The immediate benefit of such a patch is that it makes packages like
libglib2.0-dev, which include python programs and private modules,
cross-installable.  I haven't tested beyond glib so far, but I want to
submit the patch for your review in case you have any preliminary feedback.

Also Cc:ing Helmut, who may notice something that I've overlooked here from
the multiarch-interpreter POV.

I will submit a similar patch against python-defaults, since that's the
implementation of dh_python2 which glib2.0 is actually using at present.

Thanks,
-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org
From 9fa8dff3ae74267f6448d81d4b515ef42e7b4a0f Mon Sep 17 00:00:00 2001
From: Steve Langasek 
Date: Fri, 6 Sep 2013 17:02:53 -0700
Subject: [PATCH] Adjust dh_python to be multiarch-friendly.

To be able to cross-install packages that use python as a shebang,
dependencies need to be generated on 'python:any' instead of just on
'python'.  This should work without introducing problems for compiled
extensions, since those will have dependencies on libpythonX.Y instead of
just on python.
---
 debian/changelog |  4 
 dhpython/__init__.py |  4 ++--
 dhpython/depends.py  | 22 +-
 3 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 88e5b8e..1c43eb4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,11 @@
 dh-python (1.20130913-1) UNRELEASED; urgency=low
 
+  [ Piotr Ożarowski ]
   * dh_py*: add --requires option
 
+  [ Steve Langasek ]
+  * Adjust dh_python to be multiarch-friendly.
+
  -- Piotr Ożarowski   Fri, 06 Sep 2013 20:27:05 +0200
 
 dh-python (1.20130903-1) unstable; urgency=low
diff --git a/dhpython/__init__.py b/dhpython/__init__.py
index b330192..57fcbc4 100644
--- a/dhpython/__init__.py
+++ b/dhpython/__init__.py
@@ -25,8 +25,8 @@ PKG_PREFIX_MAP = {'cpython2': 'python',
   'pypy': 'pypy'}
 
 # minimum version required for compile/clean scripts:
-MINPYCDEP = {'cpython2': 'python (>= 2.6.6-3)',
- 'cpython3': 'python3 (>= 3.2.3-3~)',
+MINPYCDEP = {'cpython2': 'python:any (>= 2.6.6-3)',
+ 'cpython3': 'python3:any (>= 3.2.3-3~)',
  'pypy': 'pypy'}
 
 PUBLIC_DIR_RE = {
diff --git a/dhpython/depends.py b/dhpython/depends.py
index 1d93305..989d4fa 100644
--- a/dhpython/depends.py
+++ b/dhpython/depends.py
@@ -100,9 +100,21 @@ class Dependencies:
 vtpl = self.ipkg_vtpl
 vrange = options.vrange
 
+	# Shebang depends are the only things that get python:any
+if vrange and stats['shebangs']:
+minv = vrange.minver
+# note it's an open interval (i.e. do not add 1 here!):
+maxv = vrange.maxver
+if minv == maxv:
+self.depend(vtpl % minv)
+minv = maxv = None
+if minv:
+self.depend("%s:any (>= %s)" % (tpl, minv))
+if maxv:
+self.depend("%s:any (<< %s)" % (tpl, maxv))
+
 if vrange and any((stats['compile'], stats['public_vers'],
-  stats['ext_vers'], stats['ext_no_version'],
-  stats['shebangs'])):
+  stats['ext_vers'], stats['ext_no_version'])):
 minv = vrange.minver
 # note it's an open interval (i.e. do not add 1 here!):
 maxv = vrange.maxver
@@ -140,7 +152,7 @@ class Dependencies:
 self.depend(MINPYCDEP[self.impl])
 
 for ipreter in stats['shebangs']:
-self.depend(str(ipreter))
+self.depend("%s:any" % str(ipreter))
 
 supported_versions = supported(self.impl)
 default_version = default(self.impl)
@@ -149,13 +161,13 @@ class Dependencies:
 
 for v in versions:
 if v in supported_versions:
-self.depend(vtpl % v)
+self.depend("%s:any" % (vtpl % v))
 else:
 log.info('dependency on %s (from shebang) ignored'
  ' - it\'s not supported anymore', vtpl % v)
 # /usr/bin/python{,3} shebang → add python{,3} to Depends
 if any(True for i in details.get('shebangs', []) if i.version is None):
-