* [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy @ 2012-02-11 14:38 Sergei Trofimovich 2012-02-11 17:09 ` Markos Chandras 2012-02-11 18:48 ` Sergei Trofimovich 0 siblings, 2 replies; 11+ messages in thread From: Sergei Trofimovich @ 2012-02-11 14:38 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1713 bytes --] We have 2 files in gentoo-x86 with slightly out-of-sync data: profiles/arch/amd64/no-multilib/package.mask profiles/features/64bit-native/package.use.mask They both essentially block x86-only stuff. AFAIU profiles/features/64bit-native/package.use.mask should contain bits, which are portable across arches, but actively hate 64-bit userland. 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. Why do we need to keep both 'package.mask' files the same? Why not drop '64bit-native/package.use.mask' or at least shrink it down to software keyworded for non-x86 and non-amd64? Thanks! [1]: $ portage/gentoo-x86/profiles: fgrep -R amd64/no-multilib . | grep -v ChangeLog | grep -v '$Header' | grep -v /CVS/ ./default/linux/amd64/10.0/no-multilib/parent:../../../../../arch/amd64/no-multilib ./default/linux/amd64/2008.0/no-multilib/parent:../../../../../arch/amd64/no-multilib ./hardened/linux/amd64/10.0/no-multilib/deprecated:hardened/linux/amd64/no-multilib $ portage/gentoo-x86/profiles: fgrep -R features/64bit-native . | grep -v ChangeLog | grep -v '$Header' | grep -v /CVS/ ./arch/powerpc/ppc64/64ul/parent:../../../../features/64bit-native ./default/linux/amd64/10.0/no-multilib/parent:../../../../../features/64bit-native ./default/linux/amd64/2008.0/no-multilib/parent:../../../../../features/64bit-native ./hardened/linux/amd64/no-multilib/parent:../../../../features/64bit-native ./hardened/linux/powerpc/ppc64/64bit-userland/parent:../../../../../features/64bit-native -- Sergei [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy 2012-02-11 14:38 [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy Sergei Trofimovich @ 2012-02-11 17:09 ` Markos Chandras 2012-02-11 18:03 ` Sergei Trofimovich 2012-02-11 18:48 ` Sergei Trofimovich 1 sibling, 1 reply; 11+ messages in thread From: Markos Chandras @ 2012-02-11 17:09 UTC (permalink / raw To: gentoo-dev -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 02/11/2012 02:38 PM, Sergei Trofimovich wrote: > We have 2 files in gentoo-x86 with slightly out-of-sync data: > > profiles/arch/amd64/no-multilib/package.mask > profiles/features/64bit-native/package.use.mask > > They both essentially block x86-only stuff. > > AFAIU profiles/features/64bit-native/package.use.mask should > contain bits, which are portable across arches, but actively hate > 64-bit userland. > > 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. > > Why do we need to keep both 'package.mask' files the same? Why not > drop '64bit-native/package.use.mask' or at least shrink it down to > software keyworded for non-x86 and non-amd64? > > Thanks! > > [1]: > AFAIK features/64bit-native is for other 64-bit arches too like ia64 and ppc64. So we can't really drop this. And we can't drop the per-arch 64bit file because if a package does not work on ia64 it does not mean that it doesn't work on amd64 no-multilib. - -- Regards, Markos Chandras / Gentoo Linux Developer / Key ID: B4AFF2C2 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (GNU/Linux) iQIcBAEBCgAGBQJPNqDXAAoJEPqDWhW0r/LCI+sP+wRlvgeFu74wAHKHgLqkENBM 5bsmSqPL9kPV8PKYtem4W748EI7PVv5K0ztSHVgzi8fxyZW4kvtjPhXnAuSaCuIJ xIB03hlgC3CKj0mtOAmSFStvDzlE2WLZG5FuGmmRBUekluB9C5ieoWxCQjxUc1QD 6mXp3Puqy6P1qMl4i5v2exT09gEr2dy9S/fXPv5KlMuysPX0oeUYopQtd0DRpft6 ViJ+TNcKySG3c6pcENhlEsL+mJGskZpyedNtdZFsmnIceeZVCHfuka7lbau8OOe7 H/nA4r8ikNU4mdnDVrV3qiJzHcHI2Es1u7W//bx0+9XhOZrvfWGNa4pKOw973V5l tzQyMV2nCdgxJjvJms5SqWGImdhGhErB7u2RkGsqnYBcqh8Ogxw8pJapnfLrigMN fxPX0GWCSh+ANf5GgCMTo57gteT0iNbcTOsDjTv0y6uwK9UEAOAUw5OtvLGtQuyH dksBlmyaJ6H4iUL3vb0WXyI9GdcglYl7WIFbDgBflj0nO5G6Q3ndiV08ndS1P0QM Vkxja29KHG0JJ4h4CwlVdEqCAZmqxr4IE6m4qfQVE3fCWGBm6FBlHJcQ8I0mWmuR ZXAaDFSDFlY9fkepnZWlSe1C8zjiMJ6f/dYCSEsHeavpQMoYCb+4YcQyu6F2o62w jfiMvKIglrlGC1jDHKVD =Tsl6 -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy 2012-02-11 17:09 ` Markos Chandras @ 2012-02-11 18:03 ` Sergei Trofimovich 0 siblings, 0 replies; 11+ messages in thread From: Sergei Trofimovich @ 2012-02-11 18:03 UTC (permalink / raw To: gentoo-dev -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 > AFAIK features/64bit-native is for other 64-bit arches too like ia64 > and ppc64. So we can't really drop this. And we can't drop the > per-arch 64bit file because if a package does not work on ia64 it does > not mean that it doesn't work on amd64 no-multilib. At a first glance $grep -v ^# features/64bit-native/package.mask | xargs -n 1 eshowkw only: app-accessibility/mbrola app-office/ooextras app-text/bibus dev-lang/icc games-emulation/caps games-emulation/snes9express games-fps/quake3-ra3 games-strategy/dominions2 games-strategy/majesty-demo games-strategy/smac net-p2p/sancho-bin sci-libs/ipp are keyworded on non-x86/amd64. I guess the rest can be removed from 'features/64bit-native/package.mask'. And I believe even _these_ should be moved to their no-multilib/pure-64bit equivalents (if yet/supported). If any of those would release native 64-bit binary this file will lose any meaning. - -- Sergei -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (GNU/Linux) iEYEARECAAYFAk82rX4ACgkQcaHudmEf86pRHwCcD2PS+I+A2n1KcE1trx2qk+ik CWkAnjPqdPsmyjeMNtmG2uoFgoRPjZPd =nZyp -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy 2012-02-11 14:38 [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy Sergei Trofimovich 2012-02-11 17:09 ` Markos Chandras @ 2012-02-11 18:48 ` Sergei Trofimovich 2012-02-11 19:41 ` Sergei Trofimovich 1 sibling, 1 reply; 11+ messages in thread From: Sergei Trofimovich @ 2012-02-11 18:48 UTC (permalink / raw To: gentoo-dev; +Cc: gentoo-hardened [-- Attachment #1: Type: text/plain, Size: 1714 bytes --] [ CCed gentoo-hardened@lists.gentoo.org to warn against possible breakage. Touching profiles make me nervous. TS: http://archives.gentoo.org/gentoo-dev/msg_7c41ab6653426048c2e8b0f271637bf3.xml ] > 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 <slyfox@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). Approved by Zorry. Thanks! > [1]: > > $ portage/gentoo-x86/profiles: fgrep -R amd64/no-multilib . | grep -v ChangeLog | grep -v '$Header' | grep -v /CVS/ > ./default/linux/amd64/10.0/no-multilib/parent:../../../../../arch/amd64/no-multilib > ./default/linux/amd64/2008.0/no-multilib/parent:../../../../../arch/amd64/no-multilib > ./hardened/linux/amd64/10.0/no-multilib/deprecated:hardened/linux/amd64/no-multilib > $ portage/gentoo-x86/profiles: fgrep -R features/64bit-native . | grep -v ChangeLog | grep -v '$Header' | grep -v /CVS/ > ./arch/powerpc/ppc64/64ul/parent:../../../../features/64bit-native > ./default/linux/amd64/10.0/no-multilib/parent:../../../../../features/64bit-native > ./default/linux/amd64/2008.0/no-multilib/parent:../../../../../features/64bit-native > ./hardened/linux/amd64/no-multilib/parent:../../../../features/64bit-native > ./hardened/linux/powerpc/ppc64/64bit-userland/parent:../../../../../features/64bit-native -- Sergei [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy 2012-02-11 18:48 ` Sergei Trofimovich @ 2012-02-11 19:41 ` Sergei Trofimovich 2012-02-12 18:15 ` Sergei Trofimovich 0 siblings, 1 reply; 11+ messages in thread From: Sergei Trofimovich @ 2012-02-11 19:41 UTC (permalink / raw To: gentoo-dev; +Cc: gentoo-hardened [-- Attachment #1: Type: text/plain, Size: 827 bytes --] > > 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 <slyfox@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 :[ -- Sergei [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy 2012-02-11 19:41 ` Sergei Trofimovich @ 2012-02-12 18:15 ` Sergei Trofimovich 2012-02-12 20:40 ` Zac Medico 0 siblings, 1 reply; 11+ messages in thread From: Sergei Trofimovich @ 2012-02-12 18:15 UTC (permalink / raw To: gentoo-dev; +Cc: gentoo-hardened [-- Attachment #1: Type: text/plain, Size: 3761 bytes --] > > > 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 <slyfox@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 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy 2012-02-12 18:15 ` Sergei Trofimovich @ 2012-02-12 20:40 ` Zac Medico 2012-02-13 16:16 ` Sergei Trofimovich 0 siblings, 1 reply; 11+ messages in thread From: Zac Medico @ 2012-02-12 20:40 UTC (permalink / raw To: gentoo-dev; +Cc: gentoo-hardened [-- Attachment #1: Type: text/plain, Size: 291 bytes --] On 02/12/2012 10:15 AM, Sergei Trofimovich wrote: > Feature request: > Can we add a double-inclusion detector for profiles to repoman? If it's not too noisy. Right now, profiles.desc contains 83 profiles with double inclusions like this. See attached data and scripts. -- Thanks, Zac [-- Attachment #2: double_inclusion.txt --] [-- Type: text/plain, Size: 5541 bytes --] default/linux/alpha/10.0/desktop/gnome targets/desktop default/linux/alpha/10.0/desktop/kde targets/desktop default/linux/amd64/10.0/desktop/gnome targets/desktop default/linux/amd64/10.0/desktop/kde targets/desktop default/linux/amd64/10.0/no-multilib arch/amd64 arch/base features/multilib features/multilib/lib32 default/linux/arm/10.0/armv4 arch/arm arch/base default/linux/arm/10.0/armv4/desktop arch/arm arch/base default/linux/arm/10.0/armv4/desktop/gnome arch/arm arch/base targets/desktop default/linux/arm/10.0/armv4/desktop/kde arch/arm arch/base targets/desktop default/linux/arm/10.0/armv4/developer arch/arm arch/base default/linux/arm/10.0/armv4/server arch/arm arch/base default/linux/arm/10.0/armv4t arch/arm arch/base default/linux/arm/10.0/armv4t/desktop arch/arm arch/base default/linux/arm/10.0/armv4t/desktop/gnome arch/arm arch/base targets/desktop default/linux/arm/10.0/armv4t/desktop/kde arch/arm arch/base targets/desktop default/linux/arm/10.0/armv4t/developer arch/arm arch/base default/linux/arm/10.0/armv4t/server arch/arm arch/base default/linux/arm/10.0/armv5te arch/arm arch/base default/linux/arm/10.0/armv5te/desktop arch/arm arch/base default/linux/arm/10.0/armv5te/desktop/gnome arch/arm arch/base targets/desktop default/linux/arm/10.0/armv5te/desktop/kde arch/arm arch/base targets/desktop default/linux/arm/10.0/armv5te/developer arch/arm arch/base default/linux/arm/10.0/armv5te/server arch/arm arch/base default/linux/arm/10.0/armv6j arch/arm arch/base default/linux/arm/10.0/armv6j/desktop arch/arm arch/base default/linux/arm/10.0/armv6j/desktop/gnome arch/arm arch/base targets/desktop default/linux/arm/10.0/armv6j/desktop/kde arch/arm arch/base targets/desktop default/linux/arm/10.0/armv6j/developer arch/arm arch/base default/linux/arm/10.0/armv6j/server arch/arm arch/base default/linux/arm/10.0/armv7a arch/arm arch/base default/linux/arm/10.0/armv7a/desktop arch/arm arch/base default/linux/arm/10.0/armv7a/desktop/gnome arch/arm arch/base targets/desktop default/linux/arm/10.0/armv7a/desktop/kde arch/arm arch/base targets/desktop default/linux/arm/10.0/armv7a/developer arch/arm arch/base default/linux/arm/10.0/armv7a/server arch/arm arch/base default/linux/arm/10.0/desktop/gnome targets/desktop default/linux/arm/10.0/desktop/kde targets/desktop default/linux/hppa/10.0/desktop/gnome targets/desktop default/linux/hppa/10.0/desktop/kde targets/desktop default/linux/ia64/10.0/desktop/gnome targets/desktop default/linux/ia64/10.0/desktop/kde targets/desktop default/linux/m68k/10.0/desktop/gnome targets/desktop default/linux/m68k/10.0/desktop/kde targets/desktop default/linux/mips/10.0 base default/linux/mips/10.0/mipsel arch/mips base default/linux/mips/10.0/mipsel/multilib arch/mips arch/mips/mipsel base default/linux/mips/10.0/mipsel/multilib/n32 arch/mips arch/mips/mipsel base default/linux/mips/10.0/mipsel/multilib/n64 arch/mips arch/mips/mipsel base default/linux/mips/10.0/mipsel/n32 arch/mips arch/mips/mipsel base default/linux/mips/10.0/mipsel/n64 arch/mips arch/mips/mipsel base default/linux/mips/10.0/multilib arch/mips base default/linux/mips/10.0/multilib/n32 arch/mips base default/linux/mips/10.0/multilib/n64 arch/mips base default/linux/mips/10.0/n32 arch/mips base default/linux/mips/10.0/n64 arch/mips base default/linux/powerpc/ppc32/10.0 arch/base arch/powerpc default/linux/powerpc/ppc32/10.0/desktop arch/base arch/powerpc default/linux/powerpc/ppc32/10.0/desktop/gnome arch/base arch/powerpc targets/desktop default/linux/powerpc/ppc32/10.0/desktop/kde arch/base arch/powerpc targets/desktop default/linux/powerpc/ppc32/10.0/developer arch/base arch/powerpc default/linux/powerpc/ppc32/10.0/server arch/base arch/powerpc default/linux/powerpc/ppc64/10.0/32bit-userland arch/base arch/powerpc arch/powerpc/ppc64 default/linux/powerpc/ppc64/10.0/32bit-userland/desktop arch/base arch/powerpc arch/powerpc/ppc64 default/linux/powerpc/ppc64/10.0/32bit-userland/desktop/gnome arch/base arch/powerpc arch/powerpc/ppc64 targets/desktop default/linux/powerpc/ppc64/10.0/32bit-userland/desktop/kde arch/base arch/powerpc arch/powerpc/ppc64 targets/desktop default/linux/powerpc/ppc64/10.0/32bit-userland/developer arch/base arch/powerpc arch/powerpc/ppc64 default/linux/powerpc/ppc64/10.0/32bit-userland/server arch/base arch/powerpc arch/powerpc/ppc64 default/linux/powerpc/ppc64/10.0/64bit-userland arch/base arch/powerpc arch/powerpc/ppc64 default/linux/powerpc/ppc64/10.0/64bit-userland/desktop arch/base arch/powerpc arch/powerpc/ppc64 default/linux/powerpc/ppc64/10.0/64bit-userland/desktop/gnome arch/base arch/powerpc arch/powerpc/ppc64 targets/desktop default/linux/powerpc/ppc64/10.0/64bit-userland/desktop/kde arch/base arch/powerpc arch/powerpc/ppc64 targets/desktop default/linux/powerpc/ppc64/10.0/64bit-userland/developer arch/base arch/powerpc arch/powerpc/ppc64 default/linux/powerpc/ppc64/10.0/64bit-userland/server arch/base arch/powerpc arch/powerpc/ppc64 default/linux/sh/10.0/desktop/gnome targets/desktop default/linux/sh/10.0/desktop/kde targets/desktop default/linux/sparc/10.0/desktop/gnome targets/desktop default/linux/sparc/10.0/desktop/kde targets/desktop default/linux/x86/10.0/desktop/gnome targets/desktop default/linux/x86/10.0/desktop/kde targets/desktop hardened/linux/powerpc/ppc32 arch/base arch/powerpc hardened/linux/powerpc/ppc64/32bit-userland arch/base arch/powerpc hardened/linux/powerpc/ppc64/64bit-userland arch/base arch/powerpc prefix/linux/amd64 arch/amd64 arch/base features/multilib features/multilib/lib32 [-- Attachment #3: profile-double-inclusion.py --] [-- Type: text/x-python, Size: 1140 bytes --] #!/usr/bin/env python import operator import os import sys import portage def grab_profiles_desc(repo_path): lines = portage.util.grablines( os.path.join(repo_path, "profiles", "profiles.desc")) profiles = [] for line in lines: if line.startswith("#"): continue line_split = line.split() if line_split: profiles.append(line_split) return profiles def check_double_inclusion(repo_path, profile, out): profiles_dir = os.path.join(repo_path, "profiles") profile_path = os.path.join(profiles_dir, profile[1]) c = portage.config(config_profile_path=profile_path) if len(c.profiles) != len(set(c.profiles)): previous = set() duplicates = set() for x in c.profiles: if x in previous: duplicates.add(x) previous.add(x) out.write("%s\t%s\n" % (profile[1], "\t".join((x[len(profiles_dir)+1:] for x in sorted(duplicates))))) def main(): portdir = portage.settings["PORTDIR"] profiles_desc = grab_profiles_desc(portdir) profiles_desc.sort(key=operator.itemgetter(1)) for profile in profiles_desc: check_double_inclusion(portdir, profile, sys.stdout) if __name__ == "__main__": main() [-- Attachment #4: profile-debug.py --] [-- Type: text/x-python, Size: 156 bytes --] #!/usr/bin/env python import sys import portage c = portage.config(config_profile_path=sys.argv[1]) for x in c.profiles: sys.stdout.write("%s\n" % (x,)) ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy 2012-02-12 20:40 ` Zac Medico @ 2012-02-13 16:16 ` Sergei Trofimovich 2012-02-13 17:31 ` Zac Medico ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Sergei Trofimovich @ 2012-02-13 16:16 UTC (permalink / raw To: gentoo-dev; +Cc: gentoo-hardened [-- Attachment #1: Type: text/plain, Size: 877 bytes --] On Sun, 12 Feb 2012 12:40:04 -0800 Zac Medico <zmedico@gentoo.org> wrote: > On 02/12/2012 10:15 AM, Sergei Trofimovich wrote: > > Feature request: > > Can we add a double-inclusion detector for profiles to repoman? > > If it's not too noisy. Right now, profiles.desc contains 83 profiles > with double inclusions like this. See attached data and scripts. Looks nice! 'desktop/*' thing needs serious effort to restructure that. If teams are willing to make things saner, I would go for warning addition (maybe, guarded by --include-dev option). some mips profiles are scary too: http://dev.gentoo.org/~slyfox/profiles_mips.png Another alternative would be to skip double-inclusion of identical profiles at the portage level, but it sounds very fragile and counterintuitive. Maybe, a bit less fragile, than current state. -- Sergei [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy 2012-02-13 16:16 ` Sergei Trofimovich @ 2012-02-13 17:31 ` Zac Medico 2012-02-13 18:36 ` Matt Turner 2012-03-22 20:28 ` Sergei Trofimovich 2 siblings, 0 replies; 11+ messages in thread From: Zac Medico @ 2012-02-13 17:31 UTC (permalink / raw To: gentoo-dev; +Cc: gentoo-hardened On 02/13/2012 08:16 AM, Sergei Trofimovich wrote: > Another alternative would be to skip double-inclusion of identical profiles at > the portage level, but it sounds very fragile and counterintuitive. > > Maybe, a bit less fragile, than current state. Either way is prone to unintended results, so it's better to fix the root problem which is poor profile structuring. If we did skip the double-inclusions automatically, then that would be a PMS change, and I doubt that any of the PMS folks would be in favor of it. -- Thanks, Zac ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy 2012-02-13 16:16 ` Sergei Trofimovich 2012-02-13 17:31 ` Zac Medico @ 2012-02-13 18:36 ` Matt Turner 2012-03-22 20:28 ` Sergei Trofimovich 2 siblings, 0 replies; 11+ messages in thread From: Matt Turner @ 2012-02-13 18:36 UTC (permalink / raw To: gentoo-dev; +Cc: gentoo-hardened On Mon, Feb 13, 2012 at 11:16 AM, Sergei Trofimovich <slyfox@gentoo.org> wrote: > some mips profiles are scary too: > http://dev.gentoo.org/~slyfox/profiles_mips.png Weird. I'll take a look at that. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy 2012-02-13 16:16 ` Sergei Trofimovich 2012-02-13 17:31 ` Zac Medico 2012-02-13 18:36 ` Matt Turner @ 2012-03-22 20:28 ` Sergei Trofimovich 2 siblings, 0 replies; 11+ messages in thread From: Sergei Trofimovich @ 2012-03-22 20:28 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 676 bytes --] > > > Feature request: > > > Can we add a double-inclusion detector for profiles to repoman? > > > > If it's not too noisy. Right now, profiles.desc contains 83 profiles > > with double inclusions like this. See attached data and scripts. > > Looks nice! > > 'desktop/*' thing needs serious effort to restructure that. > If teams are willing to make things saner, I would go for > warning addition (maybe, guarded by --include-dev option). Seems they don't. Ran 'profile-double-inclusion.py' and got similar results. The script is rather slow to use on per-commit basis. Maybe it's worth putting on http://qa-reports.gentoo.org/ ? -- Sergei [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-03-22 20:25 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-02-11 14:38 [gentoo-dev] profiles/features/64bit-native/package.use.mask contents redundancy Sergei Trofimovich 2012-02-11 17:09 ` Markos Chandras 2012-02-11 18:03 ` Sergei Trofimovich 2012-02-11 18:48 ` Sergei Trofimovich 2012-02-11 19:41 ` Sergei Trofimovich 2012-02-12 18:15 ` Sergei Trofimovich 2012-02-12 20:40 ` Zac Medico 2012-02-13 16:16 ` Sergei Trofimovich 2012-02-13 17:31 ` Zac Medico 2012-02-13 18:36 ` Matt Turner 2012-03-22 20:28 ` Sergei Trofimovich
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox