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: