> > > Looks like 'arch/amd64/no-multilib' profile inclusion is kept in > > > sync with 'features/64bit-native' one: [1]. Exception is > > > 'hardened/linux/amd64/no-multilib' profile. Looks like a bug. > > > > Synced this bit with a fix: > > > > | 11 Feb 2012; Sergei Trofimovich <sly...@gentoo.org> > > | hardened/linux/amd64/no-multilib/parent: > > | Make hardened/linux/amd64/no-multilib include arch/amd64/no-multilib > > | > > (http://archives.gentoo.org/gentoo-dev/msg_7c41ab6653426048c2e8b0f271637bf3.x > > | ml). > > And the change brought the breakage: > > New profiles popped up: > | /usr/portage/profiles/arch/base > | /usr/portage/profiles/features/multilib > | /usr/portage/profiles/features/multilib/lib32 > > Likely because of double inclusion of some suspicious > parent profiles. > > Reverted the change :[
Zorry and blueness helped me to investigated the issue further. 'default/linux/amd64/10.0/no-multilib' contains duplicate inheritance chain: Simple script [1] shows us profile loading order: /subvolumes/gentoo-portage/profiles/base /subvolumes/gentoo-portage/profiles/default/linux /subvolumes/gentoo-portage/profiles/arch/base /subvolumes/gentoo-portage/profiles/features/multilib /subvolumes/gentoo-portage/profiles/features/multilib/lib32 /subvolumes/gentoo-portage/profiles/arch/amd64 /subvolumes/gentoo-portage/profiles/default/linux/amd64 /subvolumes/gentoo-portage/profiles/releases /subvolumes/gentoo-portage/profiles/releases/10.0 /subvolumes/gentoo-portage/profiles/default/linux/amd64/10.0 /subvolumes/gentoo-portage/profiles/arch/base /subvolumes/gentoo-portage/profiles/features/multilib /subvolumes/gentoo-portage/profiles/features/multilib/lib32 /subvolumes/gentoo-portage/profiles/arch/amd64 /subvolumes/gentoo-portage/profiles/arch/amd64/no-multilib /subvolumes/gentoo-portage/profiles/features/64bit-native /subvolumes/gentoo-portage/profiles/default/linux/amd64/10.0/no-multilib What we see here is repeating block: /subvolumes/gentoo-portage/profiles/arch/base /subvolumes/gentoo-portage/profiles/features/multilib /subvolumes/gentoo-portage/profiles/features/multilib/lib32 /subvolumes/gentoo-portage/profiles/arch/amd64 /subvolumes/gentoo-portage/profiles/default/linux/amd64 which can rollback all changes introduced by the profiles: /subvolumes/gentoo-portage/profiles/releases /subvolumes/gentoo-portage/profiles/releases/10.0 /subvolumes/gentoo-portage/profiles/default/linux/amd64/10.0 Does not sound like a good thing. For those who can't read: http://dev.gentoo.org/~slyfox/profiles_default.png Notice the 'arch/amd64' inheritance both by 'arch/amd64/no-multilib' 'default/linux/amd64' I think 'arch/amd64/no-multilib' does not need any parents as any profile belongs to some arch, so pulls it explicitely. Even thing like prefix (has the same double-inclusion "feature" as well): http://dev.gentoo.org/~slyfox/profiles_prefix.png I suggest to: - drop 'parents' for 'profiles/arch/amd64/no-multilib' - [optionally] move 'profiles/arch/amd64/no-multilib' to 'features/amd64-no-multilib' - and 'profiles/arch/amd64/no-multilib' back to 'hardened/linux/amd64/no-multilib' It would state explicitely that it does not inherit anything. [ Another option would be to simplify 'default/linux/amd64' thing not to include 'profiles/arch' ] Thoughts? Feature request: Can we add a double-inclusion detector for profiles to repoman? Thanks for your patience! [1] #!/usr/bin/env python import portage for p in portage.settings.profiles: print "%s" % p -- Sergei
signature.asc
Description: PGP signature