On Thu, 2018-03-15 at 22:10 -0700, Zac Medico wrote: > On 03/15/2018 12:22 PM, Michał Górny wrote: > > Hi, > > > > Here are three of four INSTALL_MASK updates I've sent long time ago > > which were not really reviewed. The fourth patch added support > > for repo-defined install-mask.conf and I'll do that separately. > > > > Those patches focus on smaller changes. What they change, in order: > > > > 1. Removes explicit file removal code for FEATURES=no*. Instead, those > > values are converted into additional INSTALL_MASK entries > > and handled directly via INSTALL_MASK processing. > > > > 2. Rework INSTALL_MASK to filter files while installing instead of > > pre-stripping them. In other words, before: INSTALL_MASK removes > > files from ${D} before merge. After: ${D} contains all the files, > > Portage just skip INSTALL_MASK-ed stuff, verbosely indicating that. > > > > 3. Adds support for exclusions in INSTALL_MASK. In other words, you > > can do stuff like: > > > > INSTALL_MASK="/usr/share/locale -/usr/share/locale/en_US" > > > > I have been using this via user patches since the last submission. > > Guessing by 'git log', this means almost 2 years now. > > > > -- > > Best regards, > > Michał Górny > > > > Michał Górny (3): > > portage.package.ebuild.config: Move FEATURES=no* handling there > > portage.dbapi.vartree: Move INSTALL_MASK handling into merging > > portage.dbapi.vartree: Support exclusions in INSTALL_MASK > > > > bin/misc-functions.sh | 30 ---------- > > pym/portage/dbapi/vartree.py | 104 > > ++++++++++++++++++++++------------- > > pym/portage/package/ebuild/config.py | 11 ++++ > > 3 files changed, 77 insertions(+), 68 deletions(-) > > I like this patch set but here are some important things that I want it > to do differently: > > 1) For the unmerge code, it needs to read the appropriate > /var/db/pkg/*/*/{PKG,}INSTALL_MASK file in order to account for the > {PKG,}INSTALL_MASK settings that existed when the package was built > (PKG_INSTALL_MASK) and merged (INSTALL_MASK). A binary package should > use the value of INSTALL_MASK that existed at build time.
Why does unmerge code need to know PKG_INSTALL_MASK? The files are not installed so nothing to filter ? similarly for merge of binary pkgs I guess, PKG_INSTALL_MASKed files are not in the binary packed so no need to something special in this case ? > > 2) In order to support bashrc {PKG,}INSTALL_MASK settings, we need to > write the values from the environment to > ${PORTAGE_BUILDDIR}/build-info/{PKG,}INSTALL_MASK and read them from > there (we do this for many other variables including QA_PREBUILT).