Re: [gentoo-dev] About forcing rebuilds of perl modules
On 1 July 2012 05:12, Ian Stakenvicius a...@gentoo.org wrote: Do all packages need to be rebuilt when some of these use flags change? Maybe auto-appending those particular flags (ithreads, debug) to IUSE and putting them on the dev-lang/perl dep is all that'll be needed, if this is the case. Not all packages need rebuilding, but *every* package with XS parts need rebuilding, as code built with DEBUG/ITHREADS enabled will not execute on perls with different DEBUG/ITHREADS options. ( And as a preventative measure, they're installed in entirely different dirs ) @INC: /etc/perl /usr/local/lib64/perl5/5.16.0/x86_64-linux - binary /usr/local/lib64/perl5/5.16.0 /usr/lib64/perl5/vendor_perl/5.16.0/x86_64-linux -- binary /usr/lib64/perl5/vendor_perl/5.16.0 /usr/lib64/perl5/5.16.0/x86_64-linux -- binary /usr/lib64/perl5/5.16.0 . . ( At least, the dir name switching used to be a thing, I can't see it in the code anymore so I could be wrong, I don't tend to twiddle those USE flags often ) Also, it would appear that in some cases ( ie: dev-perl/Mouse ) , they don't install any binary code , but the .pm files themselves are installed into the x86_64-linux folder, which, if that path is removed from @INC when you rebuild perl with different USE flags, will break them, despite not having any binary code. But either way, if SlotABI is supposed to convey A change that can occur to a package that means other packages that were built on it need to be rebuilt , then this is something we need. -- Kent perl -e print substr( \edrgmaM SPA NOcomil.ic\\@tfrken\, \$_ * 3, 3 ) for ( 9,8,0,7,1,6,5,4,3,2 ); http://kent-fredric.fox.geek.nz
Re: [gentoo-dev] About forcing rebuilds of perl modules
On 07/06/2012 06:17 PM, Kent Fredric wrote: But either way, if SlotABI is supposed to convey A change that can occur to a package that means other packages that were built on it need to be rebuilt , then this is something we need. Much like SLOT, SLOT/ABI-sub-slot as it's implemented in EAPI 4-slot-abi [1] is intended to correlate to some extent with the package version. Rebuilds involving USE changes have already been supported since EAPI 2 via USE deps. With existing versions of portage, you have to run something like `emerge --newuse -uD @world` to ensure that everything is rebuilt to match current USE settings. However, it would be fairly easy to make emerge more pro-active about triggering rebuilds to satisfy reverse USE dependencies when necessary. [1] http://blogs.gentoo.org/zmedico/2012/06/23/automatic-rebuilds-with-experimental-eapi-4-slot-abi/ -- Thanks, Zac
[gentoo-dev] About forcing rebuilds of perl modules
* Ian Stakenvicius a...@gentoo.org: FYI, all the work subslotting the perl stuff doesn't work yet, so it's probably best to wait a few days before trying it out. Perl modules have to be rebuilt if dev-lang/perl's useflags are changed. That would make dev-lang/perl's SLOT depend on users USE flags settings which is forbidden. Or will it work for sub-slot part? SLOT=0/5.16(?ithreads:-ithreads)(?debug:-debug) -- Thanks Torsten
Re: [gentoo-dev] About forcing rebuilds of perl modules
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 On 30/06/12 05:30 AM, Zac Medico wrote: On 06/30/2012 01:46 AM, Torsten Veller wrote: * Ian Stakenvicius a...@gentoo.org: FYI, all the work subslotting the perl stuff doesn't work yet, so it's probably best to wait a few days before trying it out. Perl modules have to be rebuilt if dev-lang/perl's useflags are changed. That would make dev-lang/perl's SLOT depend on users USE flags settings which is forbidden. Or will it work for sub-slot part? SLOT=0/5.16(?ithreads:-ithreads)(?debug:-debug) Maybe this useflags synchronization thing is best managed with the existing USE deps support? So, if something interacts with perls ithreads and debug flags, its dependency should be something like dev-lang/perl[ithreads=][debug=]. I think this makes a lot of sense too -- use-flag synchronization would probably be best handled outside of SLOT, otherwise we'd have to implement dynamic slots to get this properly supported. Now, that being said, it might be worthwhile if perl-module was expanded a bit in relation to the *DEPEND it adds -- having a PERL_MODULE_USES var or something, that could automatically append to IUSE (if necessary) and set the use-deps on dev-lang/perl, would make this a fairly simple implementation I think. Do all packages need to be rebuilt when some of these use flags change? Maybe auto-appending those particular flags (ithreads, debug) to IUSE and putting them on the dev-lang/perl dep is all that'll be needed, if this is the case. - - On an semi-related note, I have noticed that there are a fair number of ebuilds in the tree that are using perl-module at EAPI=4 and have 'perl? (dev-lang/perl)' in *DEPEND, but are not setting GENTOO_DEPEND_ON_PERL=no before their inherit (and so perl is ALWAYS a dep). I'm thinking of filing bugs against all of these... - - Finally, thanks for testing!! I hope to improve the overlay a bit by the middle of next week, including a script that'll patch /var/db/pkg to simulate 4-slot-abi always existing (so one doesn't have to emerge - -e @world to get their environment ready to test). -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.19 (GNU/Linux) iF4EAREIAAYFAk/vM28ACgkQ2ugaI38ACPAXlAD+KvzYGYMaTbgYS3eT6ADGzhEv 4+ehZ4PQ+9fNEyBMpn8A/2GXQqWY9erx+Dd8FL/jwk8KbReJoMwfffPEWCe38rfW =4DDP -END PGP SIGNATURE-