Pierre Habouzit a écrit :
> Package: commit-tool
> Severity: important
> 
>   your build system sets the shebangs to #!/usr/bin/pythonX.Y whereas
> there is no point in doing so, and that breaks the natural upgrades of
> your packages when the default python changes.

There is point of doing so. The upstream maintainer use a kind of build
system so that the /usr/bin/gct binary contains _compiled_ binary code:
[...]
__builtin__.__import__ = MyImport
addModule('mysubprocess', ';\xf2\r\n\xf2\xbf\x9dDc\x00...
[...]

This code is python version dependant (at least, this is not the same
code with python2.3 and python2.4)

If I put /usr/bin/python at the start of the program, it will break when
the python symlink will not be the same version as of one when the
package is built.

With my script, I ensure that:
1) my package is compiled with the current default python
   [ie if the current default python is modified, a bin-NMU will update
    my package, no source change needed]
2) if the current default python change (as now with the transition
   2.3->2.4), my package is still correct (dependency upon and use of
   the correct python interpreter for the binary python code used in
   the programme.

I think the real good thing would be to convince upstream to use more
standard ways to build, install and run its python program. But until
this happen, I will close this bug report (and trigger a rebuild of the
package so that it use python2.4)

  I close this bug, but feel free to reopen it if your are not convinced
by my argument, or if one of theses assertions is false (I do not know
python enough to be sure) :
* python bytecode is specific to one python version
* python bytecode is arch dependent (then the package needs to be
  arch: any)

  Best regards,
    Vincent




Reply via email to