commit: 5ed5adad0197d06d6f3dbe7d4ea16b2bf7e4ed2d
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 24 08:25:10 2020 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Apr 24 08:25:10 2020 +0000
URL: https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=5ed5adad
profile: Add initial support for arches.desc
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
.../tests/profiles/arches-desc/profiles/arch.list | 45 ++++
.../profiles/arches-desc/profiles/arches.desc | 17 ++
.../profiles/arches-desc/profiles/profiles.desc | 295 +++++++++++++++++++++
pym/gentoolkit/profile.py | 28 +-
pym/gentoolkit/test/test_profile.py | 12 +
5 files changed, 394 insertions(+), 3 deletions(-)
diff --git
a/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arch.list
b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arch.list
new file mode 100644
index 0000000..e4787c0
--- /dev/null
+++ b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arch.list
@@ -0,0 +1,45 @@
+alpha
+amd64
+amd64-fbsd
+arm
+arm64
+hppa
+ia64
+m68k
+mips
+ppc
+ppc64
+s390
+sh
+sparc
+sparc-fbsd
+x86
+x86-fbsd
+
+# Prefix keywords
+ppc-aix
+x86-freebsd
+x64-freebsd
+sparc64-freebsd
+hppa-hpux
+ia64-hpux
+x86-interix
+amd64-linux
+arm-linux
+ia64-linux
+ppc64-linux
+x86-linux
+ppc-macos
+x86-macos
+x64-macos
+m68k-mint
+x86-netbsd
+ppc-openbsd
+x86-openbsd
+x64-openbsd
+sparc-solaris
+sparc64-solaris
+x64-solaris
+x86-solaris
+x86-winnt
+x86-cygwin
diff --git
a/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arches.desc
b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arches.desc
new file mode 100644
index 0000000..ca9f946
--- /dev/null
+++ b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arches.desc
@@ -0,0 +1,17 @@
+alpha testing
+amd64 stable
+amd64-fbsd testing
+arm stable
+arm64 stable
+hppa stable
+ia64 testing
+m68k testing
+mips testing
+ppc stable
+ppc64 stable
+s390 stable
+sh stable
+sparc stable
+sparc-fbsd testing
+x86 stable
+x86-fbsd testing
diff --git
a/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/profiles.desc
b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/profiles.desc
new file mode 100644
index 0000000..be751a8
--- /dev/null
+++ b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/profiles.desc
@@ -0,0 +1,295 @@
+#############################################
+# This is a list of valid profiles for each architecture. This file is used by
+# repoman when doing a repoman scan or repoman full.
+# DO NOT ADD PROFILES WITH A "die" or "exit" IN THEM OR IT KILLS REPOMAN
+#
+#layout:
+#arch profile_directory status
+
+# Alpha Profiles
+alpha default/linux/alpha/13.0 stable
+alpha default/linux/alpha/13.0/desktop stable
+alpha default/linux/alpha/13.0/desktop/gnome stable
+alpha default/linux/alpha/13.0/desktop/gnome/systemd stable
+alpha default/linux/alpha/13.0/desktop/kde stable
+alpha default/linux/alpha/13.0/desktop/kde/systemd stable
+alpha default/linux/alpha/13.0/developer stable
+
+# AMD64 Profiles
+amd64 default/linux/amd64/13.0 stable
+amd64 default/linux/amd64/13.0/selinux dev
+amd64 default/linux/amd64/13.0/desktop stable
+amd64 default/linux/amd64/13.0/desktop/gnome stable
+amd64 default/linux/amd64/13.0/desktop/gnome/systemd stable
+amd64 default/linux/amd64/13.0/desktop/kde stable
+amd64 default/linux/amd64/13.0/desktop/kde/systemd stable
+amd64 default/linux/amd64/13.0/developer stable
+amd64 default/linux/amd64/13.0/no-multilib dev
+amd64 default/linux/amd64/13.0/x32 dev
+
+# ARM Profiles
+arm default/linux/arm/13.0 stable
+arm default/linux/arm/13.0/desktop dev
+arm default/linux/arm/13.0/desktop/gnome dev
+arm default/linux/arm/13.0/desktop/gnome/systemd dev
+arm default/linux/arm/13.0/desktop/kde dev
+arm default/linux/arm/13.0/desktop/kde/systemd dev
+arm default/linux/arm/13.0/developer dev
+arm default/linux/arm/13.0/armv4 dev
+arm default/linux/arm/13.0/armv4/desktop dev
+arm default/linux/arm/13.0/armv4/desktop/gnome dev
+arm default/linux/arm/13.0/armv4/desktop/kde dev
+arm default/linux/arm/13.0/armv4/developer dev
+arm default/linux/arm/13.0/armv4t dev
+arm default/linux/arm/13.0/armv4t/desktop dev
+arm default/linux/arm/13.0/armv4t/desktop/gnome dev
+arm default/linux/arm/13.0/armv4t/desktop/kde dev
+arm default/linux/arm/13.0/armv4t/developer dev
+arm default/linux/arm/13.0/armv5te dev
+arm default/linux/arm/13.0/armv5te/desktop dev
+arm default/linux/arm/13.0/armv5te/desktop/gnome dev
+arm default/linux/arm/13.0/armv5te/desktop/kde dev
+arm default/linux/arm/13.0/armv5te/developer dev
+arm default/linux/arm/13.0/armv6j dev
+arm default/linux/arm/13.0/armv6j/desktop dev
+arm default/linux/arm/13.0/armv6j/desktop/gnome dev
+arm default/linux/arm/13.0/armv6j/desktop/kde dev
+arm default/linux/arm/13.0/armv6j/developer dev
+arm default/linux/arm/13.0/armv7a dev
+arm default/linux/arm/13.0/armv7a/desktop dev
+arm default/linux/arm/13.0/armv7a/desktop/gnome dev
+arm default/linux/arm/13.0/armv7a/desktop/kde dev
+arm default/linux/arm/13.0/armv7a/developer dev
+
+# ARM64 Profiles
+arm64 default/linux/arm64/13.0 exp
+arm64 default/linux/arm64/13.0/desktop exp
+arm64 default/linux/arm64/13.0/developer exp
+
+# HPPA Profiles
+hppa default/linux/hppa/13.0 stable
+hppa default/linux/hppa/13.0/desktop dev
+hppa default/linux/hppa/13.0/developer dev
+
+# IA64 Profiles
+ia64 default/linux/ia64/13.0 stable
+ia64 default/linux/ia64/13.0/desktop stable
+ia64 default/linux/ia64/13.0/desktop/gnome stable
+ia64 default/linux/ia64/13.0/desktop/gnome/systemd stable
+ia64 default/linux/ia64/13.0/desktop/kde stable
+ia64 default/linux/ia64/13.0/desktop/kde/systemd stable
+ia64 default/linux/ia64/13.0/developer stable
+
+# M68K Profiles
+m68k default/linux/m68k/13.0 dev
+m68k default/linux/m68k/13.0/desktop dev
+m68k default/linux/m68k/13.0/desktop/gnome dev
+m68k default/linux/m68k/13.0/desktop/kde dev
+m68k default/linux/m68k/13.0/developer dev
+
+# MIPS Profiles
+mips default/linux/mips/13.0 dev
+mips default/linux/mips/13.0/n32 dev
+mips default/linux/mips/13.0/n64 exp
+mips default/linux/mips/13.0/multilib dev
+mips default/linux/mips/13.0/multilib/n32 dev
+mips default/linux/mips/13.0/multilib/n64 exp
+mips default/linux/mips/13.0/mipsel dev
+mips default/linux/mips/13.0/mipsel/n32 dev
+mips default/linux/mips/13.0/mipsel/n64 exp
+mips default/linux/mips/13.0/mipsel/multilib dev
+mips default/linux/mips/13.0/mipsel/multilib/n32 dev
+mips default/linux/mips/13.0/mipsel/multilib/n64 exp
+
+# PPC32 Profiles
+ppc default/linux/powerpc/ppc32/13.0 stable
+ppc default/linux/powerpc/ppc32/13.0/desktop stable
+ppc default/linux/powerpc/ppc32/13.0/desktop/gnome stable
+ppc default/linux/powerpc/ppc32/13.0/desktop/gnome/systemd stable
+ppc default/linux/powerpc/ppc32/13.0/desktop/kde stable
+ppc default/linux/powerpc/ppc32/13.0/desktop/kde/systemd stable
+ppc default/linux/powerpc/ppc32/13.0/developer stable
+
+# PPC64 Profiles
+ppc default/linux/powerpc/ppc64/13.0/32bit-userland
stable
+ppc default/linux/powerpc/ppc64/13.0/32bit-userland/desktop
stable
+ppc default/linux/powerpc/ppc64/13.0/32bit-userland/desktop/gnome
stable
+ppc
default/linux/powerpc/ppc64/13.0/32bit-userland/desktop/gnome/systemd stable
+ppc default/linux/powerpc/ppc64/13.0/32bit-userland/desktop/kde
stable
+ppc
default/linux/powerpc/ppc64/13.0/32bit-userland/desktop/kde/systemd stable
+ppc default/linux/powerpc/ppc64/13.0/32bit-userland/developer
stable
+ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland
stable
+ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland/desktop
stable
+ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland/desktop/gnome
stable
+ppc64
default/linux/powerpc/ppc64/13.0/64bit-userland/desktop/gnome/systemd stable
+ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland/desktop/kde
stable
+ppc64
default/linux/powerpc/ppc64/13.0/64bit-userland/desktop/kde/systemd stable
+ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland/developer
stable
+
+# S390 Profiles
+s390 default/linux/s390/13.0 dev
+s390 default/linux/s390/13.0/s390x dev
+
+# SH Profiles
+sh default/linux/sh/13.0 dev
+sh default/linux/sh/13.0/desktop dev
+sh default/linux/sh/13.0/desktop/gnome dev
+sh default/linux/sh/13.0/desktop/kde dev
+sh default/linux/sh/13.0/developer dev
+
+# SPARC Profiles
+sparc default/linux/sparc/13.0 stable
+sparc default/linux/sparc/13.0/desktop stable
+sparc default/linux/sparc/13.0/desktop/gnome stable
+sparc default/linux/sparc/13.0/desktop/kde stable
+sparc default/linux/sparc/13.0/developer stable
+
+# x86 Profiles
+x86 default/linux/x86/13.0 stable
+x86 default/linux/x86/13.0/selinux dev
+x86 default/linux/x86/13.0/desktop stable
+x86 default/linux/x86/13.0/desktop/gnome stable
+x86 default/linux/x86/13.0/desktop/gnome/systemd stable
+x86 default/linux/x86/13.0/desktop/kde stable
+x86 default/linux/x86/13.0/desktop/kde/systemd stable
+x86 default/linux/x86/13.0/developer stable
+
+# Gentoo/FreeBSD Profiles
+amd64-fbsd default/bsd/fbsd/amd64/9.1 stable
+amd64-fbsd default/bsd/fbsd/amd64/9.2 dev
+amd64-fbsd default/bsd/fbsd/amd64/9.1/clang exp
+amd64-fbsd default/bsd/fbsd/amd64/9.2/clang exp
+sparc-fbsd default/bsd/fbsd/sparc/8.2 exp
+x86-fbsd default/bsd/fbsd/x86/9.1 dev
+x86-fbsd default/bsd/fbsd/x86/9.2 dev
+
+# Hardened Profiles
+amd64 hardened/linux/amd64 stable
+amd64 hardened/linux/amd64/selinux stable
+amd64 hardened/linux/amd64/no-multilib stable
+amd64 hardened/linux/amd64/no-multilib/selinux stable
+amd64 hardened/linux/amd64/x32 dev
+amd64 hardened/linux/uclibc/amd64 dev
+arm hardened/linux/arm/armv7a dev
+arm hardened/linux/arm/armv6j dev
+arm hardened/linux/uclibc/arm/armv7a dev
+ia64 hardened/linux/ia64 dev
+mips hardened/linux/uclibc/mips exp
+mips hardened/linux/uclibc/mips/mipsel exp
+ppc hardened/linux/powerpc/ppc32 dev
+ppc hardened/linux/powerpc/ppc64/32bit-userland dev
+ppc64 hardened/linux/powerpc/ppc64/64bit-userland dev
+x86 hardened/linux/x86 stable
+x86 hardened/linux/x86/selinux stable
+x86 hardened/linux/uclibc/x86 dev
+
+# uclibc/embedded multiarch profiles
+#amd64 uclibc/amd64 dev
+#arm uclibc/arm dev
+#arm uclibc/arm/2.4 dev
+#mips uclibc/mips dev
+#mips uclibc/mips/hardened dev
+#ppc uclibc/ppc dev
+#ppc uclibc/ppc/2.4 dev
+#ppc uclibc/ppc/hardened dev
+#ppc uclibc/ppc/hardened/2.4 dev
+#sh uclibc/sh dev
+#sh uclibc/sh/2.4 dev
+#x86 uclibc/x86 dev
+#x86 uclibc/x86/2.4 dev
+#x86 uclibc/x86/2005.1 dev
+#x86 uclibc/x86/2005.1/2.4 dev
+#x86 uclibc/x86/hardened dev
+#x86 uclibc/x86/hardened/2.4 dev
+
+
+# These are Gentoo Prefix profiles, maintained by the Prefix team
+
+# Linux Profiles
+amd64-linux prefix/linux/amd64 exp
+arm-linux prefix/linux/arm exp
+ia64-linux prefix/linux/ia64 exp
+ppc64-linux prefix/linux/ppc64 exp
+x86-linux prefix/linux/x86 exp
+
+# Mac OS X Profiles
+ppc-macos prefix/darwin/macos/10.4/ppc exp
+x86-macos prefix/darwin/macos/10.4/x86 exp
+ppc-macos prefix/darwin/macos/10.5/ppc exp
+x86-macos prefix/darwin/macos/10.5/x86 exp
+x64-macos prefix/darwin/macos/10.5/x64 exp
+x86-macos prefix/darwin/macos/10.6/x86 exp
+x64-macos prefix/darwin/macos/10.6/x64 exp
+x86-macos prefix/darwin/macos/10.7/x86 exp
+x64-macos prefix/darwin/macos/10.7/x64 exp
+x86-macos prefix/darwin/macos/10.8/x86 exp
+x64-macos prefix/darwin/macos/10.8/x64 exp
+x86-macos prefix/darwin/macos/10.9/x86 exp
+x64-macos prefix/darwin/macos/10.9/x64 exp
+
+# Solaris Profiles
+sparc-solaris prefix/sunos/solaris/5.9/sparc exp
+sparc-solaris prefix/sunos/solaris/5.10/sparc exp
+sparc64-solaris prefix/sunos/solaris/5.10/sparc64
exp
+x86-solaris prefix/sunos/solaris/5.10/x86 exp
+x64-solaris prefix/sunos/solaris/5.10/x64 exp
+sparc-solaris prefix/sunos/solaris/5.11/sparc exp
+sparc64-solaris prefix/sunos/solaris/5.11/sparc64
exp
+x86-solaris prefix/sunos/solaris/5.11/x86 exp
+x64-solaris prefix/sunos/solaris/5.11/x64 exp
+
+# AIX Profiles
+ppc-aix prefix/aix/5.2.0.0/ppc
exp
+ppc-aix prefix/aix/5.3.0.0/ppc
exp
+ppc-aix prefix/aix/6.1.0.0/ppc
exp
+
+# Interix Profiles
+x86-interix prefix/windows/interix/3.5/x86 exp
+x86-interix prefix/windows/interix/5.2/x86 exp
+x86-interix prefix/windows/interix/6.0/x86 exp
+x86-interix prefix/windows/interix/6.1/x86 exp
+
+# Windows Profiles
+x86-winnt prefix/windows/winnt/3.5/x86 exp
+x86-winnt prefix/windows/winnt/5.2/x86 exp
+x86-winnt prefix/windows/winnt/6.0/x86 exp
+x86-winnt prefix/windows/winnt/6.1/x86 exp
+
+# Cygwin Profiles
+x86-cygwin prefix/windows/cygwin/1.7/x86 exp
+
+# HP-UX Profiles
+ia64-hpux prefix/hpux/B.11.23/ia64 exp
+hppa-hpux prefix/hpux/B.11.31/hppa2.0 exp
+ia64-hpux prefix/hpux/B.11.31/ia64 exp
+
+# FreeBSD Profiles
+x86-freebsd prefix/bsd/freebsd/7.1/x86 exp
+x64-freebsd prefix/bsd/freebsd/7.1/x64 exp
+x86-freebsd prefix/bsd/freebsd/7.2/x86 exp
+x64-freebsd prefix/bsd/freebsd/7.2/x64 exp
+x86-freebsd prefix/bsd/freebsd/8.0/x86 exp
+x64-freebsd prefix/bsd/freebsd/8.0/x64 exp
+x86-freebsd prefix/bsd/freebsd/8.1/x86 exp
+x64-freebsd prefix/bsd/freebsd/8.1/x64 exp
+sparc64-freebsd prefix/bsd/freebsd/8.1/sparc64
exp
+x86-freebsd prefix/bsd/freebsd/8.2/x86 exp
+x64-freebsd prefix/bsd/freebsd/8.2/x64 exp
+x86-freebsd prefix/bsd/freebsd/9.0/x86 exp
+x64-freebsd prefix/bsd/freebsd/9.0/x64 exp
+x86-freebsd prefix/bsd/freebsd/9.1/x86 exp
+x64-freebsd prefix/bsd/freebsd/9.1/x64 exp
+
+
+# OpenBSD Profiles
+ppc-openbsd prefix/bsd/openbsd/4.2/ppc exp
+x86-openbsd prefix/bsd/openbsd/4.2/x86 exp
+x64-openbsd prefix/bsd/openbsd/4.2/x64 exp
+
+# NetBSD Profiles
+x86-netbsd prefix/bsd/netbsd/4.0/x86 exp
+
+# FreeMiNT
+m68k-mint prefix/mint/m68k exp
+
+# vim: set ts=8:
diff --git a/pym/gentoolkit/profile.py b/pym/gentoolkit/profile.py
index 031b497..01f823a 100644
--- a/pym/gentoolkit/profile.py
+++ b/pym/gentoolkit/profile.py
@@ -81,12 +81,34 @@ def load_profile_data(portdir=None, repo='gentoo'):
warning('could not read profile files: %s' % arch_list)
warning('will not be able to verify args are correct')
- # TODO: support arches.desc once the GLEP is finalized
- # for now, we just hardcode everything + *-* (fbsd, prefix)
+ arches_desc = {}
+ try:
+ arches_list = os.path.join(portdir, 'profiles', 'arches.desc')
+ with open(_unicode_encode(arches_list,
encoding=_encodings['fs']),
+ encoding=_encodings['content']) as f:
+ for line in f:
+ line = line.split('#', 1)[0].split()
+ if line:
+ arch, status = line
+ arches_desc[arch] = status
+ except IOError:
+ # backwards compatibility
+ arches_desc = {
+ 'alpha': 'testing',
+ 'ia64': 'testing',
+ 'm68k': 'testing',
+ 'mips': 'testing',
+ 'riscv': 'testing',
+ }
+ for k in arch_status:
+ if '-' in k:
+ arches_desc[k] = 'testing'
+
for k, v in arch_status.items():
- if k in ('alpha', 'ia64', 'm68k', 'mips', 'riscv') or '-' in k:
+ if arches_desc.get(k) == 'testing':
arch_status[k] = (v, '~arch')
else:
+ # TODO: explicit distinction of transitional, bad
values?
arch_status[k] = (v, 'arch')
return arch_status
diff --git a/pym/gentoolkit/test/test_profile.py
b/pym/gentoolkit/test/test_profile.py
index 038525d..f91de6d 100644
--- a/pym/gentoolkit/test/test_profile.py
+++ b/pym/gentoolkit/test/test_profile.py
@@ -43,6 +43,18 @@ class TestLoadProfileData(unittest.TestCase):
self.assertIn('arm64', ret)
self.assertEqual(ret['arm64'], ('exp', 'arch'))
+ def testLoadArchesDesc(self):
+ """Test loading arch.list, arches.desc and profiles.desc"""
+ ret = self._test('arches-desc')
+ self.assertIn('arm', ret)
+ self.assertEqual(ret['arm'], ('stable', 'arch'))
+ self.assertIn('arm64', ret)
+ self.assertEqual(ret['arm64'], ('exp', 'arch'))
+ self.assertIn('alpha', ret)
+ self.assertEqual(ret['alpha'], ('stable', '~arch'))
+ self.assertIn('sparc-fbsd', ret)
+ self.assertEqual(ret['sparc-fbsd'], ('exp', '~arch'))
+
def testLoadNone(self):
"""Test running when neither files exists"""
ret = self._test('none')