From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 776FA1382C5 for ; Fri, 16 Mar 2018 10:08:45 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 49F4DE0896; Fri, 16 Mar 2018 10:08:44 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 1051AE0876 for ; Fri, 16 Mar 2018 10:08:44 +0000 (UTC) Received: from pomiot (d202-252.icpnet.pl [109.173.202.252]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: mgorny) by smtp.gentoo.org (Postfix) with ESMTPSA id 61C58335C80; Fri, 16 Mar 2018 10:08:42 +0000 (UTC) Message-ID: <1521194919.1183.4.camel@gentoo.org> Subject: Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit From: =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?= To: gentoo-portage-dev@lists.gentoo.org Date: Fri, 16 Mar 2018 11:08:39 +0100 In-Reply-To: <00e6fab0-ee21-f67d-5d9e-b5196ce48074@gentoo.org> References: <20180315192212.13454-1-mgorny@gentoo.org> <00e6fab0-ee21-f67d-5d9e-b5196ce48074@gentoo.org> Organization: Gentoo Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.24.6 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-portage-dev@lists.gentoo.org Reply-to: gentoo-portage-dev@lists.gentoo.org Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Archives-Salt: 70069aa9-4c73-4470-8a73-3c97cc742160 X-Archives-Hash: 66bad25117605ad84a866c0c5383f045 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? Should the merge code do that explicitly while handling INSTALL_MASK, or should some of the config classes do that? -- Best regards, Michał Górny