Gentoo Archives: gentoo-portage-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-portage-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>
Subject: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK redesign, part I
Date: Sun, 22 May 2016 06:56:14
Message-Id: 20160522065604.10593-1-mgorny@gentoo.org
1 Hello, everyone.
2
3 As part of new GLEP effort, I'm working on improving INSTALL_MASK
4 support in Portage to make it cleaner and more featureful. Here's
5 the first set of commits resulting from this.
6
7 The previous implementation of INSTALL_MASK was done purely in bash.
8 Long story short, Portage removed all files matching one of INSTALL_MASK
9 patterns from the installation image.
10
11 My implementation is done purely as a filter in Python. The ebuild
12 configuration bits now generate final list of INSTALL_MASK. It is
13 afterwards used in vartree bits to filter files while checking for
14 collisions, merging and unmerging appropriately.
15
16 The major differences/improvements are:
17
18 * The files are actually left in image directory. Not that it makes any
19 real difference but it is a bit cleaner and more like real mask this
20 way.
21
22 * The pre-install "removing" output has been replaced by listing files
23 with "###" zing in merging output (which means "not installed due
24 to INSTALL_MASK").
25
26 * All masked files are now listed in vdb CONTENTS. Therefore, tools
27 like app-portage/install-mask can now figure out to which packages
28 masks were applied and rebuild them on mask changes appropriately.
29
30 * Mask exclusions are supported now. Which means you can do e.g.:
31 INSTALL_MASK="/usr/share/locale -/usr/share/locale/foo".
32
33 * The code is now whitespace-safe. While patterns specified
34 in INSTALL_MASK directly still can not contain spaces, pattern groups
35 will be able to use them.
36
37 In a few days, I'll try to provide a part II that would implement
38 the actual mask groups. However, I may need some help adding support
39 for the configuration files.
40
41 I'm not touching PKG_INSTALL_MASK for now since it's harder and outside
42 of the scope of what I'm trying to achieve.
43
44
45
46 Michał Górny (3):
47 portage.package.ebuild.config: Move FEATURES=no* handling there
48 Move INSTALL_MASK handling into merging
49 portage.dbapi.vartree: Support exclusions in INSTALL_MASK
50
51 bin/misc-functions.sh | 30 ----------
52 pym/portage/dbapi/vartree.py | 104 ++++++++++++++++++++++-------------
53 pym/portage/package/ebuild/config.py | 10 ++++
54 3 files changed, 76 insertions(+), 68 deletions(-)
55
56 --
57 2.8.3

Replies