Gentoo Archives: gentoo-portage-dev

From: Joakim Tjernlund <Joakim.Tjernlund@××××××××.com>
To: "mgorny@g.o" <mgorny@g.o>, "gentoo-portage-dev@l.g.o" <gentoo-portage-dev@l.g.o>
Subject: Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit
Date: Fri, 16 Mar 2018 08:31:21
Message-Id: 1521189073.4790.201.camel@infinera.com
In Reply to: Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit by Zac Medico
1 On Thu, 2018-03-15 at 22:10 -0700, Zac Medico wrote:
2 > On 03/15/2018 12:22 PM, Michał Górny wrote:
3 > > Hi,
4 > >
5 > > Here are three of four INSTALL_MASK updates I've sent long time ago
6 > > which were not really reviewed. The fourth patch added support
7 > > for repo-defined install-mask.conf and I'll do that separately.
8 > >
9 > > Those patches focus on smaller changes. What they change, in order:
10 > >
11 > > 1. Removes explicit file removal code for FEATURES=no*. Instead, those
12 > > values are converted into additional INSTALL_MASK entries
13 > > and handled directly via INSTALL_MASK processing.
14 > >
15 > > 2. Rework INSTALL_MASK to filter files while installing instead of
16 > > pre-stripping them. In other words, before: INSTALL_MASK removes
17 > > files from ${D} before merge. After: ${D} contains all the files,
18 > > Portage just skip INSTALL_MASK-ed stuff, verbosely indicating that.
19 > >
20 > > 3. Adds support for exclusions in INSTALL_MASK. In other words, you
21 > > can do stuff like:
22 > >
23 > > INSTALL_MASK="/usr/share/locale -/usr/share/locale/en_US"
24 > >
25 > > I have been using this via user patches since the last submission.
26 > > Guessing by 'git log', this means almost 2 years now.
27 > >
28 > > --
29 > > Best regards,
30 > > Michał Górny
31 > >
32 > > Michał Górny (3):
33 > > portage.package.ebuild.config: Move FEATURES=no* handling there
34 > > portage.dbapi.vartree: Move INSTALL_MASK handling into merging
35 > > portage.dbapi.vartree: Support exclusions in INSTALL_MASK
36 > >
37 > > bin/misc-functions.sh | 30 ----------
38 > > pym/portage/dbapi/vartree.py | 104 ++++++++++++++++++++++-------------
39 > > pym/portage/package/ebuild/config.py | 11 ++++
40 > > 3 files changed, 77 insertions(+), 68 deletions(-)
41 >
42 > I like this patch set but here are some important things that I want it
43 > to do differently:
44 >
45 > 1) For the unmerge code, it needs to read the appropriate
46 > /var/db/pkg/*/*/{PKG,}INSTALL_MASK file in order to account for the
47 > {PKG,}INSTALL_MASK settings that existed when the package was built
48 > (PKG_INSTALL_MASK) and merged (INSTALL_MASK). A binary package should
49 > use the value of INSTALL_MASK that existed at build time.
50
51 Why does unmerge code need to know PKG_INSTALL_MASK? The files are not
52 installed so nothing to filter ?
53 similarly for merge of binary pkgs I guess, PKG_INSTALL_MASKed files are not
54 in the binary packed so no need to something special in this case ?
55
56 >
57 > 2) In order to support bashrc {PKG,}INSTALL_MASK settings, we need to
58 > write the values from the environment to
59 > ${PORTAGE_BUILDDIR}/build-info/{PKG,}INSTALL_MASK and read them from
60 > there (we do this for many other variables including QA_PREBUILT).