[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [PATCH] Support :any architecture qualifiers for multiarch



On Wed, Sep 18, 2013 at 06:24:13PM +0200, Jakub Wilk wrote:
> Following the “if it didn't happen on a mailing list, it didn't
> happen”, I repeat here what I said on IRC:

> 12:26 < kwilk> So I rebuilt src:python-aalib, and I ended up these Depends: "python3:any (>= 3.3.2-2~), libaa1".
> 12:27 < kwilk> This is wrong; the package only works if the interpreter architecture is the same as libaa1 architecture.
> 12:27 < kwilk> Please revert this ":any" mess.
> 12:30 < kwilk> In general, just because a script or a module is pure-Python doesn't mean it doesn't care about interpreter's architecture.
> 12:30 < kwilk> And there's no way to determine automatically whether it cares or not.

Nonsense.  It's not in the purview of the script/module to care about the
architecture of the interpreter.

There are cases for which a package that ships a python script / pure python
module *does* care about the architecture of the interpreter, but this is
*not* because of the script / module itself - it's only because of
architecture-specific python extensions included in the same package, which
is expressed via a separate arch-specific dependency on libpython; or
because of restrictions on the architecture-availability of the other python
modules the package depends on, which should be handled by the package
manager and *not* hard-coded in the dependencies of the package in question.

The operative principle is that the admin should be able to select a
/usr/bin/python of any architecture capable of being run on the hardware,
and packages that only contain python scripts/modules should Just Work, with
apt doing the heavy lifting to ensure the right set of compiled extensions
are available to match.  This is important for users to be able to
successfully cross-grade from one architecture to another, but it's even
more important for cross-building, because packages that build-depend on
python-using packages need to be able to install the foreign-arch version of
those packages *without* changing the architecture of the python
interpreter.

There are admittedly bugs in apt that caused the first cut of the dh-python
support to not work as expected (bug #723586 filed on apt), but that doesn't
warrant reverting the :any handling.  Piotr has already updated dh-python to
address the serious symptoms of bug #723586 to avoid propagating any further
breakage while we identify a better solution.

As a strawman, if there's a consensus that it's important to preserve the
capability to install jessie module packages on top of wheezy's python, we
could generate dependencies such as:

   python:any (>= 2.7.5-5) | python (>= 2.6.6-3)

which I think would DTRT in all cases except where you try to cross-install
on top of the wheezy python, which is a negligible use case.

-- 
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 Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Attachment: signature.asc
Description: Digital signature


Reply to: