* Ben Burton <[EMAIL PROTECTED]> [011112 18:22]: > > Hi. So I'm packaging decompyle which decompiles a .pyc bytecode file and > converts it back to python source. > > Thing is, decompyle needs to be run with the same version of python that was > used to create the bytecode. > > So the question arises as to what should go in /usr/bin. Options I see are: > > a) A wrapper script /usr/bin/decompyle which takes an addition argument > specifying the python version to run and calls the real decompyle with that > version of python (and defaulting to the default version of python); > > b) A series of binaries /usr/bin/decompyle1.5, /usr/bin/decompyle2.1, etc > with the additional /usr/bin/decompyle that uses the default debian version > of python.
Hmm, how about an third option: c) A wrapper that auto-detects the format of the .pyc file and calls the according variant (detection of the .pyc format should be pretty easy, it's just a magic number, cf. /usr/share/misc/magic). The doesn't resolve the original problem, but then you could issue a message to the user that he needs to install an according Python version. In the end, this case should be pretty rare, since in most cases, it seems to be a reasonable expectation that a user has an according Python version on the system. > I'm leaning towards option (b), but this then leads to the issue of how the > binaries should be packaged. Should there be a single package decompyle > which provides all of these binaries? Or should there be packages > decompyle1.5, decompyle2.1, etc.? > > If there are several packages then each package will literally contain a > single script and a symlink to a man page and would depend on > decompyle-common which contains the actual decompyle itself. This seems a > bit of an overkill. But on the other hand I don't want to provide binaries > that people can't run (if the appropriate python version is not installed) > and I don't want decompyle to depend on *every* version of python in debian. Umm, are you talking about a *binary* or an *script* ? If binaries, how big are they ? Would it really be an issue to include three of them in a single package ? If you include that autodetection stuff, I would say go on and ship them into a single package (since the user gets a meaningful message if something doesn't work due to the lack of the correct Python version). Gregor