Re: [gentoo-dev] About forcing rebuilds of perl modules

2012-07-06 Thread Kent Fredric
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

2012-07-06 Thread Zac Medico
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

2012-06-30 Thread Torsten Veller
* 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

2012-06-30 Thread Ian Stakenvicius
-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-