On Sat, Mar 22, 2008 at 04:42:36PM +0100, "Martin v. Löwis" wrote:
I speak for Debian, so for Debian: yes. The setup.py would have to be pretty bad for a packager to not use it. There is no reason to re-write upstream's installation procedure as you would have to figure out which files need to be installed where and this would create many bugs.
The canonical way is something like this:
$ pythonX.Y setup.py --root=$(pwd)/debian/tmp $ # Fixup anything done wrong/badly (for debian) by setup.py $ # Make a tarball of $(pwd)/debian/tmp
In reality it's slightly more complicated of course.
More than slightly so, with pycentral, pysupport, and all that.
I still doubt that the database would show up in a directory on sys.path.
If not it would be a bug in pycentral/pysupport. Only two bugs to file, not that bad I think!
At [1] there are many packages, paste and parallelpython are good examples if you're interested (look in the debian/rules file).
I started with nevow. It uses cdbs, so its debian/rules is nearly empty, and does not include a call to setup.py at all.
Instead, the distutils support is in
/usr/share/cdbs/1/class/python-distutils.mk [...]
Again, that would be a bug in CDBS. For the specific snippet you showed, yes that does essentially "pythonX.Y setup.py --root=$some_alternate_root" as I said above. As an aside I also happen to be in the camp that dislikes CDBS... The specifics and complications don't matter for this discussion I think. If setup.py installs the correct file into the installdb then it will work in almost all cases, Neal Becker confirmed this is true for Fedora as well. Regards Floris -- Debian GNU/Linux -- The Power of Freedom www.debian.org | www.gnu.org | www.kernel.org