[Build-common-hackers] Bug#525436: Bug#525436: cdbs: distutils does not call setup.py install any more
Jonas Smedegaard
dr at jones.dk
Sat Apr 25 09:40:50 UTC 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Sat, Apr 25, 2009 at 10:42:43AM +0200, Martin Pitt wrote:
>Jonas Smedegaard [2009-04-25 9:36 +0200]:
>> 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.
>
>So if I first include distutils.mk and then define an "install/foo::"
>rule, my own rule isn't guaranteed to be invoked later than the
>distutils ones? I always understood "::" as an "append" operator, not
>"throw it into the set". It's entirely possible that I was wrong all
>the time, of course.
I might be wrong, but yes, my understanding of :: rules is that even if
they often in practice run in the order defined, that is not ensured.
Besides, ideally CDBS snippets should not require to be declared in a
specific order, even if some make expressions really do keep order -
CDBS should try to avoid those, then (as is the case if ifeq).
>> install/calibre:: calibre-fixup
>> calibre-fixup:
>> rm -r ...
>
>I don't understand how this would help? Wouldn't this mean that
>calibre-fixup would run _before_ install/calibre (since it is now a
>dependency), thus aggravating the problem even further?
Stupid me - above is completely upside down. The following should work:
common-binary-arch common-binary-indep:: calibre-fixup
calibre-fixup: install/calibre
rm -r ...
Or to be exact, above works using buildcore.mk, and I believe also using
python-distutils.mk and debhelper.mk - if using other snippets too, you
may need to adjust to the additional rules you want it to be invoked
in-between.
>> Still, from the perspective of this CDBS backwards-compatibility bug,
>> above is only a workaround, not "calibre approach is wrong".
>
>If calibre is the only (or amongst very few) packages which break
>because they used the install target wrongly, I'm fine with keeping
>current cdbs and fixing calibre's debian/rules accordingly.
>
>Basically, I need to do a cleanup at a point when setup.py install was
>run already, but dh_install* etc. didn't start yet. The reason is that
>the extra libraries must not go into the .debs, and doing the cleanup
>after all the dh_* magic makes it much harder to ensure that none of
>the dh_* stuff copied the files to anywhere.
Makes sense. As already said, it is not exactly wrong of you to use the
install/* target, but as it really is a "post-install" routine it makes
better sense to treat it as such.
Help investigating if any other package uses python-distutils.mk and add
custom install/* rules is much appreciated!
Kind regards,
- Jonas
- --
* 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)
iEYEARECAAYFAkny2qEACgkQn7DbMsAkQLhGWwCdEzZPvyLuvkUJE9ywT8JLhJuh
l4AAn1f/A3O7ouetBjCDqlXz4CiJFsHV
=5uxh
-----END PGP SIGNATURE-----
More information about the Build-common-hackers
mailing list