[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: