[Build-common-hackers] Bug#525436: cdbs: distutils does not call setup.py install any more
dr at jones.dk
Sat Apr 25 07:36:44 UTC 2009
-----BEGIN PGP SIGNED MESSAGE-----
retitle 525436 distutils calls setup.py install later than earlier
On Fri, Apr 24, 2009 at 06:07:46PM +0200, Martin Pitt wrote:
>I now bisected this to svn r341 . All previous versions work, all
>future versions fail.
>However, I'm afraid I need to blow some dust off my Make fu to even
>fully understand that change. Jonas, any idea what broke here?
Right, that's where it broke. And I am to blame for that :-(
That commit switched from using the earlier package-independent
common-install-* targets to the slightly later package-dependent
My change did not take into account packages relying on python
installation being finished at the time of install/* targets.
In other words, the problem is not that python install rule does no
longer get invoked, but that it now gets invoked in parallel (or in
undefined order of) other install/* rules.
Concretely for calibre, it seems to me that the install/* target is
being abused for non-install routine (it is cleanup of other installs,
not additional - independent - install). I believe it would be better
for that package to _depend_ on install rule instead _be_ one. Like
rm -r ...
Still, from the perspective of this CDBS backwards-compatibility bug,
above is only a workaround, not "calibre approach is wrong".
I really want to keep the CDBS change (i.e. not revert r341) but
acknowledge that backwards-compatibility needs to be improved somehow.
As I wrote in the commit message, the change both cleans up some ugly
restrictions (use of ifeq) and paves the way for future improvements:
> Use package-specific build targets and avoid ifeq constructs.
> ifeq constructs are evil: They are resolved early, so any variables
> used needs to be declared _before_. CDBS snippets should ideally
> allow options declared either before or after including the snippets.
> This change gets rid of some of some needless ifeq constructs.
> Also, the replacement build targets are carefully constructed to use
> trailing binary package names, so $(cdbs_curdir) is properly expanded,
> so allows per-package customized options.
* Jonas Smedegaard - idealist og Internet-arkitekt
* Tlf.: +45 40843136 Website: http://dr.jones.dk/
[x] quote me freely [ ] ask before reusing [ ] keep private
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
-----END PGP SIGNATURE-----
More information about the Build-common-hackers