Re: Double build failures
On Fri, May 04, 2012 at 01:28:57PM -0400, Éric Araujo wrote:
> Hi list,
>
> Le 04/05/2012 13:23, Sandro Tosi a écrit :
> >CPython upstreams are developing a new module to replace distutils and
> >setuptools: packaging. It might be worth check with them if it will
> >handle this case.
>
> Can you explain what the problem is? (I never packaged something
> that uses setuptools.)
>
> In distutils2/packaging, a dist-info directory is created (successor
> of the egg-info dir, see PEP 376) on installation, and it includes a
> file named RECORD with paths to installed files. The clean command
> only removes build by-products though, so it wouldn’t remove the
> dist-info dir by design (just as now it does not remove the egg-info
> file or dir).
Hmm, no one responded to Éric, so I'll give it a try. Feel free to
correct me if I don't explain enough or get it wrong (as is likely).
AFAIK, the problem is double build failures because dpkg detects that
there are leftovers/changes from the first build. You end up with
failures when a second build is attempted [1].
This leads people to use workarounds like this snippet taken from the
style guide [2]:
override_dh_auto_clean:
dh_auto_clean
rm -rf build
rm -rf *.egg-info
Which work sometimes, but sometimes cause other bugs with the second
build. For example, when setup.py uses setuptools+include_package_data
without specifying a MANIFEST.in. In that case deleting *.egg-info
causes missing files in the built package.
I think that most people here are arguing that "setup.py clean" should
cleanup all build products and get you back to some kind of pristine
state.
[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=645186
[2] http://wiki.debian.org/Python/LibraryStyleGuide
--
Brian Sutherland
Reply to: