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

Re: multiarch and interpreters/runtimes



Helmut Grohne wrote:
> On Sat, Apr 20, 2013 at 04:44:08AM +0300, Uoti Urpala wrote:
> > 3) P runs a script using system interpreter X, and depends on the
> >    interpreter environment supporting functionality provided by Q.
> >    Q needs to work for the arch matching installed version of X.
> 
> P (all) +--> X (any)
>         `--> Q (any)
> 
> The interpreter will most likely be M-A:allowed. So all P has to do here
> is not add ":any" to its dependencies. Then everything should work out
> here.

But that 'not add ":any"' is completely impractical. The default system
interpreter can only have one architecture - what "#!/usr/bin/python3"
executes. Multiple versions of that can not be coinstallable, and so
it's completely unreasonable for a foreign package containing Python
scripts to demand that you change your _default_ Python interpreter to
another architecture. It would immediately lead to conflicts. In a sane
system scripts written in pure Python must work with the default system
interpreter, whatever architecture that is.


> In the light of the above I do not quite understand what is missing to
> support your use cases yet (besides an implementation). Can you explain
> them in more detail? Examples would be helpful.

Consider a package that contains a Python script (#!/usr/bin/python)
doing image manipulation using python-imaging (Depends: python,
python-imaging) and an i686 binary using embedded Python (Depends:
libpython2.7, python-levenshtein). As above, installing this package
must not require changing your default system python to i686. So the
effective dependencies are: python:any, python-imaging:<whatever python
is>, libpython2.7:i686, python-levenshtein:i686.



Reply to: