[tahoe-dev] [tahoe-lafs] #1168: make setup.py more easily patchable by OS packagers

Zooko O'Whielacronx zooko at zooko.com
Wed Aug 11 23:52:10 UTC 2010


On Wed, Aug 11, 2010 at 4:50 PM, Greg Troxel <gdt at ir.bbn.com> wrote:
>
> pkgsrc doesn't have a notion of try to do the build one way, and then
> run something, and then if ok undo all that and build it the other way.

I don't really understand. The script that I showed is not doing that.
It is just building one way and then testing whether you have all the
dependencies installed. Also if you prefer, you could leave off the
second step if you prefer.

How does the pkgsrc build work? Could we script the buildbot to do
that so that we could tell whether any patch that we commit to
tahoe-lafs trunk is breaking that build system?

> What I think I want (not knowing python well enough) is something like
> the behavior of the autoconf macro used with pkg-config, where
> ./configure errors out if a dependency is not present.

The command lines that I showed [1] have behavior similar to that. Is
there something wrong with using those command lines for that purpose?

> setup.py is
> almost doing that, except it is downloading things from the net when it
> doesn't find something.  So it seems like it should be straightforward
> to turn that into an error, and I don't understand why that isn't an
> option in the python world already, since everyone who packages anything
> in python has basically the same desire.

I'll be happy to open a ticket on the Distribute project asking for
this to be added, but I'd like to understand what exactly happens now
and what exactly people want to happen.

> The patch in #1168 seems to do what I want (from reading; haven't tried
> it yet), unless I'm confused.

I don't think so. The patch [2] disables install requirements, build
requirements, and test requirements. It doesn't give warnings or
failures about missing requirements, it just disables all
requirements. I think using --single-version-externally-managed is
strictly better than using that patch, because
--single-version-externally-managed omits checking the
install-requirements when installing (but still leaves the install
requirements listed in the metadata, which seems good) but doesn't
change the build requirements or test requirements. Also it doesn't
require any patch to setup.py.

Regards,

Zooko

[1] http://tahoe-lafs.org/pipermail/tahoe-dev/2010-August/004964.html
[2] http://tahoe-lafs.org/trac/tahoe-lafs/attachment/ticket/1168/setup.py.diff



More information about the tahoe-dev mailing list