Gentoo Archives: gentoo-portage-dev

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

Replies