Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoolkit:master commit in: pym/gentoolkit/, pym/gentoolkit/test/, ...
Date: Fri, 24 Apr 2020 08:34:16
Message-Id: 1587716710.5ed5adad0197d06d6f3dbe7d4ea16b2bf7e4ed2d.mgorny@gentoo
1 commit: 5ed5adad0197d06d6f3dbe7d4ea16b2bf7e4ed2d
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Fri Apr 24 08:25:10 2020 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Fri Apr 24 08:25:10 2020 +0000
6 URL: https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=5ed5adad
7
8 profile: Add initial support for arches.desc
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 .../tests/profiles/arches-desc/profiles/arch.list | 45 ++++
13 .../profiles/arches-desc/profiles/arches.desc | 17 ++
14 .../profiles/arches-desc/profiles/profiles.desc | 295 +++++++++++++++++++++
15 pym/gentoolkit/profile.py | 28 +-
16 pym/gentoolkit/test/test_profile.py | 12 +
17 5 files changed, 394 insertions(+), 3 deletions(-)
18
19 diff --git a/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arch.list b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arch.list
20 new file mode 100644
21 index 0000000..e4787c0
22 --- /dev/null
23 +++ b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arch.list
24 @@ -0,0 +1,45 @@
25 +alpha
26 +amd64
27 +amd64-fbsd
28 +arm
29 +arm64
30 +hppa
31 +ia64
32 +m68k
33 +mips
34 +ppc
35 +ppc64
36 +s390
37 +sh
38 +sparc
39 +sparc-fbsd
40 +x86
41 +x86-fbsd
42 +
43 +# Prefix keywords
44 +ppc-aix
45 +x86-freebsd
46 +x64-freebsd
47 +sparc64-freebsd
48 +hppa-hpux
49 +ia64-hpux
50 +x86-interix
51 +amd64-linux
52 +arm-linux
53 +ia64-linux
54 +ppc64-linux
55 +x86-linux
56 +ppc-macos
57 +x86-macos
58 +x64-macos
59 +m68k-mint
60 +x86-netbsd
61 +ppc-openbsd
62 +x86-openbsd
63 +x64-openbsd
64 +sparc-solaris
65 +sparc64-solaris
66 +x64-solaris
67 +x86-solaris
68 +x86-winnt
69 +x86-cygwin
70
71 diff --git a/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arches.desc b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arches.desc
72 new file mode 100644
73 index 0000000..ca9f946
74 --- /dev/null
75 +++ b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/arches.desc
76 @@ -0,0 +1,17 @@
77 +alpha testing
78 +amd64 stable
79 +amd64-fbsd testing
80 +arm stable
81 +arm64 stable
82 +hppa stable
83 +ia64 testing
84 +m68k testing
85 +mips testing
86 +ppc stable
87 +ppc64 stable
88 +s390 stable
89 +sh stable
90 +sparc stable
91 +sparc-fbsd testing
92 +x86 stable
93 +x86-fbsd testing
94
95 diff --git a/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/profiles.desc b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/profiles.desc
96 new file mode 100644
97 index 0000000..be751a8
98 --- /dev/null
99 +++ b/pym/gentoolkit/ekeyword/tests/profiles/arches-desc/profiles/profiles.desc
100 @@ -0,0 +1,295 @@
101 +#############################################
102 +# This is a list of valid profiles for each architecture. This file is used by
103 +# repoman when doing a repoman scan or repoman full.
104 +# DO NOT ADD PROFILES WITH A "die" or "exit" IN THEM OR IT KILLS REPOMAN
105 +#
106 +#layout:
107 +#arch profile_directory status
108 +
109 +# Alpha Profiles
110 +alpha default/linux/alpha/13.0 stable
111 +alpha default/linux/alpha/13.0/desktop stable
112 +alpha default/linux/alpha/13.0/desktop/gnome stable
113 +alpha default/linux/alpha/13.0/desktop/gnome/systemd stable
114 +alpha default/linux/alpha/13.0/desktop/kde stable
115 +alpha default/linux/alpha/13.0/desktop/kde/systemd stable
116 +alpha default/linux/alpha/13.0/developer stable
117 +
118 +# AMD64 Profiles
119 +amd64 default/linux/amd64/13.0 stable
120 +amd64 default/linux/amd64/13.0/selinux dev
121 +amd64 default/linux/amd64/13.0/desktop stable
122 +amd64 default/linux/amd64/13.0/desktop/gnome stable
123 +amd64 default/linux/amd64/13.0/desktop/gnome/systemd stable
124 +amd64 default/linux/amd64/13.0/desktop/kde stable
125 +amd64 default/linux/amd64/13.0/desktop/kde/systemd stable
126 +amd64 default/linux/amd64/13.0/developer stable
127 +amd64 default/linux/amd64/13.0/no-multilib dev
128 +amd64 default/linux/amd64/13.0/x32 dev
129 +
130 +# ARM Profiles
131 +arm default/linux/arm/13.0 stable
132 +arm default/linux/arm/13.0/desktop dev
133 +arm default/linux/arm/13.0/desktop/gnome dev
134 +arm default/linux/arm/13.0/desktop/gnome/systemd dev
135 +arm default/linux/arm/13.0/desktop/kde dev
136 +arm default/linux/arm/13.0/desktop/kde/systemd dev
137 +arm default/linux/arm/13.0/developer dev
138 +arm default/linux/arm/13.0/armv4 dev
139 +arm default/linux/arm/13.0/armv4/desktop dev
140 +arm default/linux/arm/13.0/armv4/desktop/gnome dev
141 +arm default/linux/arm/13.0/armv4/desktop/kde dev
142 +arm default/linux/arm/13.0/armv4/developer dev
143 +arm default/linux/arm/13.0/armv4t dev
144 +arm default/linux/arm/13.0/armv4t/desktop dev
145 +arm default/linux/arm/13.0/armv4t/desktop/gnome dev
146 +arm default/linux/arm/13.0/armv4t/desktop/kde dev
147 +arm default/linux/arm/13.0/armv4t/developer dev
148 +arm default/linux/arm/13.0/armv5te dev
149 +arm default/linux/arm/13.0/armv5te/desktop dev
150 +arm default/linux/arm/13.0/armv5te/desktop/gnome dev
151 +arm default/linux/arm/13.0/armv5te/desktop/kde dev
152 +arm default/linux/arm/13.0/armv5te/developer dev
153 +arm default/linux/arm/13.0/armv6j dev
154 +arm default/linux/arm/13.0/armv6j/desktop dev
155 +arm default/linux/arm/13.0/armv6j/desktop/gnome dev
156 +arm default/linux/arm/13.0/armv6j/desktop/kde dev
157 +arm default/linux/arm/13.0/armv6j/developer dev
158 +arm default/linux/arm/13.0/armv7a dev
159 +arm default/linux/arm/13.0/armv7a/desktop dev
160 +arm default/linux/arm/13.0/armv7a/desktop/gnome dev
161 +arm default/linux/arm/13.0/armv7a/desktop/kde dev
162 +arm default/linux/arm/13.0/armv7a/developer dev
163 +
164 +# ARM64 Profiles
165 +arm64 default/linux/arm64/13.0 exp
166 +arm64 default/linux/arm64/13.0/desktop exp
167 +arm64 default/linux/arm64/13.0/developer exp
168 +
169 +# HPPA Profiles
170 +hppa default/linux/hppa/13.0 stable
171 +hppa default/linux/hppa/13.0/desktop dev
172 +hppa default/linux/hppa/13.0/developer dev
173 +
174 +# IA64 Profiles
175 +ia64 default/linux/ia64/13.0 stable
176 +ia64 default/linux/ia64/13.0/desktop stable
177 +ia64 default/linux/ia64/13.0/desktop/gnome stable
178 +ia64 default/linux/ia64/13.0/desktop/gnome/systemd stable
179 +ia64 default/linux/ia64/13.0/desktop/kde stable
180 +ia64 default/linux/ia64/13.0/desktop/kde/systemd stable
181 +ia64 default/linux/ia64/13.0/developer stable
182 +
183 +# M68K Profiles
184 +m68k default/linux/m68k/13.0 dev
185 +m68k default/linux/m68k/13.0/desktop dev
186 +m68k default/linux/m68k/13.0/desktop/gnome dev
187 +m68k default/linux/m68k/13.0/desktop/kde dev
188 +m68k default/linux/m68k/13.0/developer dev
189 +
190 +# MIPS Profiles
191 +mips default/linux/mips/13.0 dev
192 +mips default/linux/mips/13.0/n32 dev
193 +mips default/linux/mips/13.0/n64 exp
194 +mips default/linux/mips/13.0/multilib dev
195 +mips default/linux/mips/13.0/multilib/n32 dev
196 +mips default/linux/mips/13.0/multilib/n64 exp
197 +mips default/linux/mips/13.0/mipsel dev
198 +mips default/linux/mips/13.0/mipsel/n32 dev
199 +mips default/linux/mips/13.0/mipsel/n64 exp
200 +mips default/linux/mips/13.0/mipsel/multilib dev
201 +mips default/linux/mips/13.0/mipsel/multilib/n32 dev
202 +mips default/linux/mips/13.0/mipsel/multilib/n64 exp
203 +
204 +# PPC32 Profiles
205 +ppc default/linux/powerpc/ppc32/13.0 stable
206 +ppc default/linux/powerpc/ppc32/13.0/desktop stable
207 +ppc default/linux/powerpc/ppc32/13.0/desktop/gnome stable
208 +ppc default/linux/powerpc/ppc32/13.0/desktop/gnome/systemd stable
209 +ppc default/linux/powerpc/ppc32/13.0/desktop/kde stable
210 +ppc default/linux/powerpc/ppc32/13.0/desktop/kde/systemd stable
211 +ppc default/linux/powerpc/ppc32/13.0/developer stable
212 +
213 +# PPC64 Profiles
214 +ppc default/linux/powerpc/ppc64/13.0/32bit-userland stable
215 +ppc default/linux/powerpc/ppc64/13.0/32bit-userland/desktop stable
216 +ppc default/linux/powerpc/ppc64/13.0/32bit-userland/desktop/gnome stable
217 +ppc default/linux/powerpc/ppc64/13.0/32bit-userland/desktop/gnome/systemd stable
218 +ppc default/linux/powerpc/ppc64/13.0/32bit-userland/desktop/kde stable
219 +ppc default/linux/powerpc/ppc64/13.0/32bit-userland/desktop/kde/systemd stable
220 +ppc default/linux/powerpc/ppc64/13.0/32bit-userland/developer stable
221 +ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland stable
222 +ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland/desktop stable
223 +ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland/desktop/gnome stable
224 +ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland/desktop/gnome/systemd stable
225 +ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland/desktop/kde stable
226 +ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland/desktop/kde/systemd stable
227 +ppc64 default/linux/powerpc/ppc64/13.0/64bit-userland/developer stable
228 +
229 +# S390 Profiles
230 +s390 default/linux/s390/13.0 dev
231 +s390 default/linux/s390/13.0/s390x dev
232 +
233 +# SH Profiles
234 +sh default/linux/sh/13.0 dev
235 +sh default/linux/sh/13.0/desktop dev
236 +sh default/linux/sh/13.0/desktop/gnome dev
237 +sh default/linux/sh/13.0/desktop/kde dev
238 +sh default/linux/sh/13.0/developer dev
239 +
240 +# SPARC Profiles
241 +sparc default/linux/sparc/13.0 stable
242 +sparc default/linux/sparc/13.0/desktop stable
243 +sparc default/linux/sparc/13.0/desktop/gnome stable
244 +sparc default/linux/sparc/13.0/desktop/kde stable
245 +sparc default/linux/sparc/13.0/developer stable
246 +
247 +# x86 Profiles
248 +x86 default/linux/x86/13.0 stable
249 +x86 default/linux/x86/13.0/selinux dev
250 +x86 default/linux/x86/13.0/desktop stable
251 +x86 default/linux/x86/13.0/desktop/gnome stable
252 +x86 default/linux/x86/13.0/desktop/gnome/systemd stable
253 +x86 default/linux/x86/13.0/desktop/kde stable
254 +x86 default/linux/x86/13.0/desktop/kde/systemd stable
255 +x86 default/linux/x86/13.0/developer stable
256 +
257 +# Gentoo/FreeBSD Profiles
258 +amd64-fbsd default/bsd/fbsd/amd64/9.1 stable
259 +amd64-fbsd default/bsd/fbsd/amd64/9.2 dev
260 +amd64-fbsd default/bsd/fbsd/amd64/9.1/clang exp
261 +amd64-fbsd default/bsd/fbsd/amd64/9.2/clang exp
262 +sparc-fbsd default/bsd/fbsd/sparc/8.2 exp
263 +x86-fbsd default/bsd/fbsd/x86/9.1 dev
264 +x86-fbsd default/bsd/fbsd/x86/9.2 dev
265 +
266 +# Hardened Profiles
267 +amd64 hardened/linux/amd64 stable
268 +amd64 hardened/linux/amd64/selinux stable
269 +amd64 hardened/linux/amd64/no-multilib stable
270 +amd64 hardened/linux/amd64/no-multilib/selinux stable
271 +amd64 hardened/linux/amd64/x32 dev
272 +amd64 hardened/linux/uclibc/amd64 dev
273 +arm hardened/linux/arm/armv7a dev
274 +arm hardened/linux/arm/armv6j dev
275 +arm hardened/linux/uclibc/arm/armv7a dev
276 +ia64 hardened/linux/ia64 dev
277 +mips hardened/linux/uclibc/mips exp
278 +mips hardened/linux/uclibc/mips/mipsel exp
279 +ppc hardened/linux/powerpc/ppc32 dev
280 +ppc hardened/linux/powerpc/ppc64/32bit-userland dev
281 +ppc64 hardened/linux/powerpc/ppc64/64bit-userland dev
282 +x86 hardened/linux/x86 stable
283 +x86 hardened/linux/x86/selinux stable
284 +x86 hardened/linux/uclibc/x86 dev
285 +
286 +# uclibc/embedded multiarch profiles
287 +#amd64 uclibc/amd64 dev
288 +#arm uclibc/arm dev
289 +#arm uclibc/arm/2.4 dev
290 +#mips uclibc/mips dev
291 +#mips uclibc/mips/hardened dev
292 +#ppc uclibc/ppc dev
293 +#ppc uclibc/ppc/2.4 dev
294 +#ppc uclibc/ppc/hardened dev
295 +#ppc uclibc/ppc/hardened/2.4 dev
296 +#sh uclibc/sh dev
297 +#sh uclibc/sh/2.4 dev
298 +#x86 uclibc/x86 dev
299 +#x86 uclibc/x86/2.4 dev
300 +#x86 uclibc/x86/2005.1 dev
301 +#x86 uclibc/x86/2005.1/2.4 dev
302 +#x86 uclibc/x86/hardened dev
303 +#x86 uclibc/x86/hardened/2.4 dev
304 +
305 +
306 +# These are Gentoo Prefix profiles, maintained by the Prefix team
307 +
308 +# Linux Profiles
309 +amd64-linux prefix/linux/amd64 exp
310 +arm-linux prefix/linux/arm exp
311 +ia64-linux prefix/linux/ia64 exp
312 +ppc64-linux prefix/linux/ppc64 exp
313 +x86-linux prefix/linux/x86 exp
314 +
315 +# Mac OS X Profiles
316 +ppc-macos prefix/darwin/macos/10.4/ppc exp
317 +x86-macos prefix/darwin/macos/10.4/x86 exp
318 +ppc-macos prefix/darwin/macos/10.5/ppc exp
319 +x86-macos prefix/darwin/macos/10.5/x86 exp
320 +x64-macos prefix/darwin/macos/10.5/x64 exp
321 +x86-macos prefix/darwin/macos/10.6/x86 exp
322 +x64-macos prefix/darwin/macos/10.6/x64 exp
323 +x86-macos prefix/darwin/macos/10.7/x86 exp
324 +x64-macos prefix/darwin/macos/10.7/x64 exp
325 +x86-macos prefix/darwin/macos/10.8/x86 exp
326 +x64-macos prefix/darwin/macos/10.8/x64 exp
327 +x86-macos prefix/darwin/macos/10.9/x86 exp
328 +x64-macos prefix/darwin/macos/10.9/x64 exp
329 +
330 +# Solaris Profiles
331 +sparc-solaris prefix/sunos/solaris/5.9/sparc exp
332 +sparc-solaris prefix/sunos/solaris/5.10/sparc exp
333 +sparc64-solaris prefix/sunos/solaris/5.10/sparc64 exp
334 +x86-solaris prefix/sunos/solaris/5.10/x86 exp
335 +x64-solaris prefix/sunos/solaris/5.10/x64 exp
336 +sparc-solaris prefix/sunos/solaris/5.11/sparc exp
337 +sparc64-solaris prefix/sunos/solaris/5.11/sparc64 exp
338 +x86-solaris prefix/sunos/solaris/5.11/x86 exp
339 +x64-solaris prefix/sunos/solaris/5.11/x64 exp
340 +
341 +# AIX Profiles
342 +ppc-aix prefix/aix/5.2.0.0/ppc exp
343 +ppc-aix prefix/aix/5.3.0.0/ppc exp
344 +ppc-aix prefix/aix/6.1.0.0/ppc exp
345 +
346 +# Interix Profiles
347 +x86-interix prefix/windows/interix/3.5/x86 exp
348 +x86-interix prefix/windows/interix/5.2/x86 exp
349 +x86-interix prefix/windows/interix/6.0/x86 exp
350 +x86-interix prefix/windows/interix/6.1/x86 exp
351 +
352 +# Windows Profiles
353 +x86-winnt prefix/windows/winnt/3.5/x86 exp
354 +x86-winnt prefix/windows/winnt/5.2/x86 exp
355 +x86-winnt prefix/windows/winnt/6.0/x86 exp
356 +x86-winnt prefix/windows/winnt/6.1/x86 exp
357 +
358 +# Cygwin Profiles
359 +x86-cygwin prefix/windows/cygwin/1.7/x86 exp
360 +
361 +# HP-UX Profiles
362 +ia64-hpux prefix/hpux/B.11.23/ia64 exp
363 +hppa-hpux prefix/hpux/B.11.31/hppa2.0 exp
364 +ia64-hpux prefix/hpux/B.11.31/ia64 exp
365 +
366 +# FreeBSD Profiles
367 +x86-freebsd prefix/bsd/freebsd/7.1/x86 exp
368 +x64-freebsd prefix/bsd/freebsd/7.1/x64 exp
369 +x86-freebsd prefix/bsd/freebsd/7.2/x86 exp
370 +x64-freebsd prefix/bsd/freebsd/7.2/x64 exp
371 +x86-freebsd prefix/bsd/freebsd/8.0/x86 exp
372 +x64-freebsd prefix/bsd/freebsd/8.0/x64 exp
373 +x86-freebsd prefix/bsd/freebsd/8.1/x86 exp
374 +x64-freebsd prefix/bsd/freebsd/8.1/x64 exp
375 +sparc64-freebsd prefix/bsd/freebsd/8.1/sparc64 exp
376 +x86-freebsd prefix/bsd/freebsd/8.2/x86 exp
377 +x64-freebsd prefix/bsd/freebsd/8.2/x64 exp
378 +x86-freebsd prefix/bsd/freebsd/9.0/x86 exp
379 +x64-freebsd prefix/bsd/freebsd/9.0/x64 exp
380 +x86-freebsd prefix/bsd/freebsd/9.1/x86 exp
381 +x64-freebsd prefix/bsd/freebsd/9.1/x64 exp
382 +
383 +
384 +# OpenBSD Profiles
385 +ppc-openbsd prefix/bsd/openbsd/4.2/ppc exp
386 +x86-openbsd prefix/bsd/openbsd/4.2/x86 exp
387 +x64-openbsd prefix/bsd/openbsd/4.2/x64 exp
388 +
389 +# NetBSD Profiles
390 +x86-netbsd prefix/bsd/netbsd/4.0/x86 exp
391 +
392 +# FreeMiNT
393 +m68k-mint prefix/mint/m68k exp
394 +
395 +# vim: set ts=8:
396
397 diff --git a/pym/gentoolkit/profile.py b/pym/gentoolkit/profile.py
398 index 031b497..01f823a 100644
399 --- a/pym/gentoolkit/profile.py
400 +++ b/pym/gentoolkit/profile.py
401 @@ -81,12 +81,34 @@ def load_profile_data(portdir=None, repo='gentoo'):
402 warning('could not read profile files: %s' % arch_list)
403 warning('will not be able to verify args are correct')
404
405 - # TODO: support arches.desc once the GLEP is finalized
406 - # for now, we just hardcode everything + *-* (fbsd, prefix)
407 + arches_desc = {}
408 + try:
409 + arches_list = os.path.join(portdir, 'profiles', 'arches.desc')
410 + with open(_unicode_encode(arches_list, encoding=_encodings['fs']),
411 + encoding=_encodings['content']) as f:
412 + for line in f:
413 + line = line.split('#', 1)[0].split()
414 + if line:
415 + arch, status = line
416 + arches_desc[arch] = status
417 + except IOError:
418 + # backwards compatibility
419 + arches_desc = {
420 + 'alpha': 'testing',
421 + 'ia64': 'testing',
422 + 'm68k': 'testing',
423 + 'mips': 'testing',
424 + 'riscv': 'testing',
425 + }
426 + for k in arch_status:
427 + if '-' in k:
428 + arches_desc[k] = 'testing'
429 +
430 for k, v in arch_status.items():
431 - if k in ('alpha', 'ia64', 'm68k', 'mips', 'riscv') or '-' in k:
432 + if arches_desc.get(k) == 'testing':
433 arch_status[k] = (v, '~arch')
434 else:
435 + # TODO: explicit distinction of transitional, bad values?
436 arch_status[k] = (v, 'arch')
437
438 return arch_status
439
440 diff --git a/pym/gentoolkit/test/test_profile.py b/pym/gentoolkit/test/test_profile.py
441 index 038525d..f91de6d 100644
442 --- a/pym/gentoolkit/test/test_profile.py
443 +++ b/pym/gentoolkit/test/test_profile.py
444 @@ -43,6 +43,18 @@ class TestLoadProfileData(unittest.TestCase):
445 self.assertIn('arm64', ret)
446 self.assertEqual(ret['arm64'], ('exp', 'arch'))
447
448 + def testLoadArchesDesc(self):
449 + """Test loading arch.list, arches.desc and profiles.desc"""
450 + ret = self._test('arches-desc')
451 + self.assertIn('arm', ret)
452 + self.assertEqual(ret['arm'], ('stable', 'arch'))
453 + self.assertIn('arm64', ret)
454 + self.assertEqual(ret['arm64'], ('exp', 'arch'))
455 + self.assertIn('alpha', ret)
456 + self.assertEqual(ret['alpha'], ('stable', '~arch'))
457 + self.assertIn('sparc-fbsd', ret)
458 + self.assertEqual(ret['sparc-fbsd'], ('exp', '~arch'))
459 +
460 def testLoadNone(self):
461 """Test running when neither files exists"""
462 ret = self._test('none')