Gentoo Archives: gentoo-portage-dev

From: Brian Dolbec <dolsen@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [PATCH 2/2] Add profile-formats=build-id (bug 150031)
Date: Tue, 17 Feb 2015 18:58:38
Message-Id: 20150217105831.424731db.dolsen@gentoo.org
In Reply to: [gentoo-portage-dev] [PATCH 2/2] Add profile-formats=build-id (bug 150031) by Zac Medico
1 On Tue, 17 Feb 2015 00:37:13 -0800
2 Zac Medico <zmedico@g.o> wrote:
3
4 > When "profile-formats = build-id" is enabled in layout.conf of the
5 > containing repository, a dependency atom in the profile can refer
6 > to a specific build, using the build-id that is assigned when
7 > FEATURES=binpkg-multi-instance is enabled. A build-id atom is
8 > identical to a version-specific atom, except that the version is
9 > followed by a hyphen and an integer build-id.
10 >
11 > With the build-id profile format, it is possible to assemble a system
12 > using specific builds of binary packages, as users of "binary"
13 > distros might be accustomed to. For example, an atom in the "packages"
14 > file can pull a specific build of a package into the @system set, and
15 > an atom in the "package.keywords" file can be used to modify the
16 > effective KEYWORDS of a specific build of a package.
17 >
18 > Refering to specific builds can be useful for a number of reasons. For
19 > example, if a particular build needs to undergo a large amount of
20 > testing in a complex environment in order to verify reliability, then
21 > it can be useful to lock a profile to a specific build that has been
22 > thoroughly tested.
23 >
24 > X-Gentoo-Bug: 150031
25 > X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=150031
26 > ---
27 > man/portage.5 | 8 +-
28 > pym/_emerge/is_valid_package_atom.py | 5 +-
29 > pym/portage/_sets/ProfilePackageSet.py | 3 +-
30 > pym/portage/_sets/profiles.py | 3 +-
31 > pym/portage/dep/__init__.py | 35 +++++-
32 > .../package/ebuild/_config/KeywordsManager.py | 3 +-
33 > .../package/ebuild/_config/LocationsManager.py | 8 +-
34 > pym/portage/package/ebuild/_config/MaskManager.py | 21 +++-
35 > pym/portage/package/ebuild/_config/UseManager.py | 14 ++-
36 > pym/portage/package/ebuild/config.py | 15 ++-
37 > pym/portage/repository/config.py | 2 +-
38 > pym/portage/tests/dep/test_isvalidatom.py | 8 +-
39 > .../test_build_id_profile_format.py | 134
40 > +++++++++++++++++++++
41 > pym/portage/util/__init__.py | 13 +- 14 files
42 > changed, 234 insertions(+), 38 deletions(-) create mode 100644
43 > pym/portage/tests/resolver/binpkg_multi_instance/test_build_id_profile_format.py
44 >
45
46
47 class Atom()
48
49 if allow_repo is None:
50 allow_repo = True
51 + if allow_build_id is None:
52 + allow_build_id = True
53
54
55 these can be written as
56 allow_repo = allow_repo or True
57 allow_build_id = allow_build_id or True
58
59
60 Otherwise looks decent.
61
62 --
63 Brian Dolbec <dolsen>

Replies