From: Zac Medico <zmedico@gentoo.org>
To: gentoo-portage-dev@lists.gentoo.org, "Michał Górny" <mgorny@gentoo.org>
Subject: Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit
Date: Fri, 16 Mar 2018 10:07:07 -0700 [thread overview]
Message-ID: <a3df2b98-f2f8-c17a-ae48-aaf898aa5c68@gentoo.org> (raw)
In-Reply-To: <1521194919.1183.4.camel@gentoo.org>
[-- Attachment #1.1: Type: text/plain, Size: 3485 bytes --]
On 03/16/2018 03:08 AM, Michał Górny wrote:
> W dniu czw, 15.03.2018 o godzinie 22∶10 -0700, użytkownik Zac Medico
> napisał:
>> 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.
>
>> 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).
>
> I presume bin/phase-functions.sh __dyn_install is where I'm supposed to
> write them. Could you suggest where is the best place to read them back?
We can read them back just when they are needed.
PKG_INSTALL_MASK should be handled in the EbuildPhase class when
self.phase is "package". In order to preserve behavior, EbuildPhase will
have to create a temporary copy of ${D} and apply PKG_INSTALL_MASK to
it, for __dyn_package to use.
INSTALL_MASK should be handled in the dblink treewalk method like it is now.
> Should the merge code do that explicitly while handling INSTALL_MASK, or
> should some of the config classes do that?
The config class only needs to be involved if we want to expose some API
related to {PKG,}INSTALL_MASK there, but the config class is bloated
enough as it is so it's better to expose a helper class like the
ConfigProtect class.
--
Thanks,
Zac
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 224 bytes --]
next prev parent reply other threads:[~2018-03-16 17:07 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-15 19:22 [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit Michał Górny
2018-03-15 19:22 ` [gentoo-portage-dev] [PATCH 1/3] portage.package.ebuild.config: Move FEATURES=no* handling there Michał Górny
2018-03-15 19:22 ` [gentoo-portage-dev] [PATCH 2/3] portage.dbapi.vartree: Move INSTALL_MASK handling into merging Michał Górny
2018-03-15 19:22 ` [gentoo-portage-dev] [PATCH 3/3] portage.dbapi.vartree: Support exclusions in INSTALL_MASK Michał Górny
2018-03-15 21:02 ` Alec Warner
2018-03-15 21:17 ` Michał Górny
2018-03-15 21:44 ` Joakim Tjernlund
2018-03-16 7:50 ` Michał Górny
2018-03-16 8:08 ` Joakim Tjernlund
2018-03-16 5:10 ` [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit Zac Medico
2018-03-16 8:31 ` Joakim Tjernlund
2018-03-16 10:08 ` Michał Górny
2018-03-16 17:07 ` Zac Medico [this message]
2018-03-16 21:13 ` Michał Górny
2018-03-16 21:25 ` Zac Medico
2018-03-18 9:03 ` Michał Górny
2018-03-18 18:22 ` Zac Medico
2018-03-19 6:27 ` Joakim Tjernlund
2018-03-16 8:11 ` Joakim Tjernlund
2018-03-16 8:13 ` Michał Górny
2018-03-18 9:57 ` Joakim Tjernlund
2018-03-19 22:59 ` Zac Medico
2018-03-23 0:52 ` Joakim Tjernlund
2018-03-23 1:09 ` Zac Medico
2018-03-23 8:33 ` Michał Górny
2018-03-23 9:05 ` Joakim Tjernlund
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a3df2b98-f2f8-c17a-ae48-aaf898aa5c68@gentoo.org \
--to=zmedico@gentoo.org \
--cc=gentoo-portage-dev@lists.gentoo.org \
--cc=mgorny@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox