* [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit @ 2018-03-15 19:22 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 ` (5 more replies) 0 siblings, 6 replies; 26+ messages in thread From: Michał Górny @ 2018-03-15 19:22 UTC (permalink / raw To: gentoo-portage-dev; +Cc: Michał Górny 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(-) -- 2.16.2 ^ permalink raw reply [flat|nested] 26+ messages in thread
* [gentoo-portage-dev] [PATCH 1/3] portage.package.ebuild.config: Move FEATURES=no* handling there 2018-03-15 19:22 [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit Michał Górny @ 2018-03-15 19:22 ` 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 ` (4 subsequent siblings) 5 siblings, 0 replies; 26+ messages in thread From: Michał Górny @ 2018-03-15 19:22 UTC (permalink / raw To: gentoo-portage-dev; +Cc: Michał Górny Move the code responsible for adding additional paths to INSTALL_MASK into portage.package.ebuild.config. --- bin/misc-functions.sh | 13 ------------- pym/portage/package/ebuild/config.py | 10 ++++++++++ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh index 7643af7b5..6a5c2ea05 100755 --- a/bin/misc-functions.sh +++ b/bin/misc-functions.sh @@ -375,20 +375,7 @@ preinst_mask() { # in there in case any tools were built with -pg in CFLAGS. cd "${T}" - # remove man pages, info pages, docs if requested - local f - for f in man info doc; do - if has no${f} $FEATURES; then - INSTALL_MASK="${INSTALL_MASK} /usr/share/${f}" - fi - done - install_mask "${ED}" "${INSTALL_MASK}" - - # remove share dir if unnessesary - if has nodoc $FEATURES || has noman $FEATURES || has noinfo $FEATURES; then - rmdir "${ED%/}/usr/share" &> /dev/null - fi } preinst_sfperms() { diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index 3dc64a067..3f575fcaf 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -2465,6 +2465,16 @@ class config(object): myflags.difference_update(self.usemask) self.configlist[-1]["USE"]= " ".join(sorted(myflags)) + # Prepare the final value of INSTALL_MASK + install_mask = self.get("INSTALL_MASK", '').split() + if 'nodoc' in self.features: + install_mask.append("/usr/share/doc") + if 'noinfo' in self.features: + install_mask.append("/usr/share/info") + if 'noman' in self.features: + install_mask.append("/usr/share/man") + self["INSTALL_MASK"] = ' '.join(install_mask) + if self.mycpv is None: # Generate global USE_EXPAND variables settings that are # consistent with USE, for display by emerge --info. For -- 2.16.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* [gentoo-portage-dev] [PATCH 2/3] portage.dbapi.vartree: Move INSTALL_MASK handling into merging 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 ` 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 ` (3 subsequent siblings) 5 siblings, 0 replies; 26+ messages in thread From: Michał Górny @ 2018-03-15 19:22 UTC (permalink / raw To: gentoo-portage-dev; +Cc: Michał Górny Introduce a new logic for INSTALL_MASK handling in merging code, replacing the old code that removed matching files and directories from imagedir in bash. The new code actually ignores matching files on-the-fly while testing for file collisions and merging files. The files are still written to CONTENTS, and output using "###" zing to indicate being masked, yet are not actually merged to the filesystem. --- bin/misc-functions.sh | 17 ------ pym/portage/dbapi/vartree.py | 102 ++++++++++++++++++++++------------- pym/portage/package/ebuild/config.py | 3 +- 3 files changed, 66 insertions(+), 56 deletions(-) diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh index 6a5c2ea05..59391816b 100755 --- a/bin/misc-functions.sh +++ b/bin/misc-functions.sh @@ -361,23 +361,6 @@ install_mask() { set -${shopts} } -preinst_mask() { - if [ -z "${D}" ]; then - eerror "${FUNCNAME}: D is unset" - return 1 - fi - - if ! ___eapi_has_prefix_variables; then - local ED=${D} - fi - - # Make sure $PWD is not ${D} so that we don't leave gmon.out files - # in there in case any tools were built with -pg in CFLAGS. - cd "${T}" - - install_mask "${ED}" "${INSTALL_MASK}" -} - preinst_sfperms() { if [ -z "${D}" ]; then eerror "${FUNCNAME}: D is unset" diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 8b1b77f7d..21904edca 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -2491,7 +2491,7 @@ class dblink(object): (statobj.st_dev, statobj.st_ino), []).append(relative_path) - if is_owned: + if is_owned and not self._is_install_masked(relative_path[1:]): show_unmerge("---", unmerge_desc["replaced"], file_type, obj) continue elif relative_path in cfgfiledict: @@ -3689,6 +3689,24 @@ class dblink(object): def _emerge_log(self, msg): emergelog(False, msg) + def _is_install_masked(self, relative_path): + ret = False + for pattern in self.settings.install_mask: + # absolute path pattern + if pattern.startswith('/'): + # match either exact path or one of parent dirs + # the latter is done via matching pattern/* + if (fnmatch.fnmatch(relative_path, pattern[1:]) + or fnmatch.fnmatch(relative_path, pattern[1:] + '/*')): + ret = True + break + # filename + else: + if fnmatch.fnmatch(os.path.basename(relative_path), pattern): + ret = True + break + return ret + def treewalk(self, srcroot, destroot, inforoot, myebuild, cleanup=0, mydbapi=None, prev_mtimes=None, counter=None): """ @@ -3848,16 +3866,6 @@ class dblink(object): max_dblnk = dblnk self._installed_instance = max_dblnk - # Apply INSTALL_MASK before collision-protect, since it may - # be useful to avoid collisions in some scenarios. - # We cannot detect if this is needed or not here as INSTALL_MASK can be - # modified by bashrc files. - phase = MiscFunctionsProcess(background=False, - commands=["preinst_mask"], phase="preinst", - scheduler=self._scheduler, settings=self.settings) - phase.start() - phase.wait() - # We check for unicode encoding issues after src_install. However, # the check must be repeated here for binary packages (it's # inexpensive since we call os.walk() here anyway). @@ -3929,6 +3937,10 @@ class dblink(object): relative_path = fpath[srcroot_len:] + # filter on INSTALL_MASK + if self._is_install_masked(relative_path): + continue + if line_ending_re.search(relative_path) is not None: paths_with_newlines.append(relative_path) @@ -4658,6 +4670,7 @@ class dblink(object): while mergelist: relative_path = mergelist.pop() + instmasked = self._is_install_masked(relative_path) mysrc = join(srcroot, relative_path) mydest = join(destroot, relative_path) # myrealdest is mydest without the $ROOT prefix (makes a difference if ROOT!="/") @@ -4744,7 +4757,7 @@ class dblink(object): destmd5 = None moveme = True - if protected: + if protected and not instmasked: mydest, protected, moveme = self._protect(cfgfiledict, protect_if_modified, mymd5, myto, mydest, myrealdest, mydmode, destmd5, mydest_link) @@ -4772,7 +4785,7 @@ class dblink(object): # we can simply test for existence of this file to see if the target has been merged yet myrealto = normalize_path(os.path.join(destroot, myabsto)) if mydmode is not None and stat.S_ISDIR(mydmode): - if not protected: + if not protected and not instmasked: # we can't merge a symlink over a directory newdest = self._new_backup_path(mydest) msg = [] @@ -4792,26 +4805,32 @@ class dblink(object): # it later. secondhand.append(mysrc[len(srcroot):]) continue - # unlinking no longer necessary; "movefile" will overwrite symlinks atomically and correctly - if moveme: - zing = ">>>" - mymtime = movefile(mysrc, mydest, newmtime=thismtime, - sstat=mystat, mysettings=self.settings, - encoding=_encodings['merge']) - try: - self._merged_path(mydest, os.lstat(mydest)) - except OSError: - pass + if instmasked: + zing = "###" + # pass mymtime through from initial stat + else: + # unlinking no longer necessary; "movefile" will overwrite symlinks atomically and correctly + if moveme: + zing = ">>>" + mymtime = movefile(mysrc, mydest, newmtime=thismtime, + sstat=mystat, mysettings=self.settings, + encoding=_encodings['merge']) + + try: + self._merged_path(mydest, os.lstat(mydest)) + except OSError: + pass if mymtime != None: - # Use lexists, since if the target happens to be a broken - # symlink then that should trigger an independent warning. - if not (os.path.lexists(myrealto) or - os.path.lexists(join(srcroot, myabsto))): - self._eqawarn('preinst', - [_("QA Notice: Symbolic link /%s points to /%s which does not exist.") - % (relative_path, myabsto)]) + if not instmasked: + # Use lexists, since if the target happens to be a broken + # symlink then that should trigger an independent warning. + if not (os.path.lexists(myrealto) or + os.path.lexists(join(srcroot, myabsto))): + self._eqawarn('preinst', + [_("QA Notice: Symbolic link /%s points to /%s which does not exist.") + % (relative_path, myabsto)]) showMessage("%s %s -> %s\n" % (zing, mydest, myto)) if sys.hexversion >= 0x3030000: @@ -4826,7 +4845,9 @@ class dblink(object): return 1 elif stat.S_ISDIR(mymode): # we are merging a directory - if mydmode != None: + if instmasked: + showMessage("### %s/\n" % mydest) + elif mydmode != None: # destination exists if bsd_chflags: @@ -4913,10 +4934,11 @@ class dblink(object): os.chown(mydest, mystat[4], mystat[5]) showMessage(">>> %s/\n" % mydest) - try: - self._merged_path(mydest, os.lstat(mydest)) - except OSError: - pass + if not instmasked: + try: + self._merged_path(mydest, os.lstat(mydest)) + except OSError: + pass outfile.write("dir "+myrealdest+"\n") # recurse and merge this directory @@ -4925,7 +4947,7 @@ class dblink(object): elif stat.S_ISREG(mymode): # we are merging a regular file - if not protected and \ + if not protected and not instmasked and \ mydmode is not None and stat.S_ISDIR(mydmode): # install of destination is blocked by an existing directory with the same name newdest = self._new_backup_path(mydest) @@ -4939,9 +4961,11 @@ class dblink(object): self._eerror("preinst", msg) mydest = newdest + if instmasked: + zing = "###" # whether config protection or not, we merge the new file the # same way. Unless moveme=0 (blocking directory) - if moveme: + elif moveme: # Create hardlinks only for source files that already exist # as hardlinks (having identical st_dev and st_ino). hardlink_key = (mystat.st_dev, mystat.st_ino) @@ -4974,7 +4998,9 @@ class dblink(object): else: # we are merging a fifo or device node zing = "!!!" - if mydmode is None: + if instmasked: + zing = "###" + elif mydmode is None: # destination doesn't exist if movefile(mysrc, mydest, newmtime=thismtime, sstat=mystat, mysettings=self.settings, diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index 3f575fcaf..d04baacf9 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -271,6 +271,7 @@ class config(object): self.mycpv = clone.mycpv self._setcpv_args_hash = clone._setcpv_args_hash self._soname_provided = clone._soname_provided + self.install_mask = clone.install_mask # immutable attributes (internal policy ensures lack of mutation) self._locations_manager = clone._locations_manager @@ -2473,7 +2474,7 @@ class config(object): install_mask.append("/usr/share/info") if 'noman' in self.features: install_mask.append("/usr/share/man") - self["INSTALL_MASK"] = ' '.join(install_mask) + self.install_mask = tuple(install_mask) if self.mycpv is None: # Generate global USE_EXPAND variables settings that are -- 2.16.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* [gentoo-portage-dev] [PATCH 3/3] portage.dbapi.vartree: Support exclusions in INSTALL_MASK 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 ` Michał Górny 2018-03-15 21:02 ` Alec Warner 2018-03-16 5:10 ` [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit Zac Medico ` (2 subsequent siblings) 5 siblings, 1 reply; 26+ messages in thread From: Michał Górny @ 2018-03-15 19:22 UTC (permalink / raw To: gentoo-portage-dev; +Cc: Michał Górny Allow INSTALL_MASK patterns to start with '-' to indicate that a specific match is to be excluded from being masked. In this case, the last matching pattern determines whether the file is actually filtered out or kept. --- pym/portage/dbapi/vartree.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 21904edca..16c246b11 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -3692,19 +3692,21 @@ class dblink(object): def _is_install_masked(self, relative_path): ret = False for pattern in self.settings.install_mask: + # if pattern starts with -, possibly exclude this path + pat_res = not pattern.startswith('-') + if not pat_res: + pattern = pattern[1:] # absolute path pattern if pattern.startswith('/'): # match either exact path or one of parent dirs # the latter is done via matching pattern/* if (fnmatch.fnmatch(relative_path, pattern[1:]) or fnmatch.fnmatch(relative_path, pattern[1:] + '/*')): - ret = True - break + ret = pat_res # filename else: if fnmatch.fnmatch(os.path.basename(relative_path), pattern): - ret = True - break + ret = pat_res return ret def treewalk(self, srcroot, destroot, inforoot, myebuild, cleanup=0, -- 2.16.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 3/3] portage.dbapi.vartree: Support exclusions in INSTALL_MASK 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 0 siblings, 2 replies; 26+ messages in thread From: Alec Warner @ 2018-03-15 21:02 UTC (permalink / raw To: gentoo-portage-dev; +Cc: Michał Górny [-- Attachment #1: Type: text/plain, Size: 2323 bytes --] On Thu, Mar 15, 2018 at 3:22 PM, Michał Górny <mgorny@gentoo.org> wrote: > Allow INSTALL_MASK patterns to start with '-' to indicate that > a specific match is to be excluded from being masked. In this case, > the last matching pattern determines whether the file is actually > filtered out or kept. > --- > pym/portage/dbapi/vartree.py | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py > index 21904edca..16c246b11 100644 > --- a/pym/portage/dbapi/vartree.py > +++ b/pym/portage/dbapi/vartree.py > @@ -3692,19 +3692,21 @@ class dblink(object): > def _is_install_masked(self, relative_path): > ret = False > for pattern in self.settings.install_mask: > + # if pattern starts with -, possibly exclude this > path > + pat_res = not pattern.startswith('-') > + if not pat_res: > + pattern = pattern[1:] > Maybe consider: pattern = pattern[1:] if pattern.startswith('-') else pattern I'm not super keen on this pattern in python, but it seems doable here. > # absolute path pattern > if pattern.startswith('/'): > # match either exact path or one of parent > dirs > # the latter is done via matching pattern/* > if (fnmatch.fnmatch(relative_path, > pattern[1:]) > or > fnmatch.fnmatch(relative_path, pattern[1:] + '/*')): > - ret = True > - break > + ret = pat_res > # filename > else: > if fnmatch.fnmatch(os.path.basename(relative_path), > pattern): > - ret = True > - break > + ret = pat_res > return ret > > def treewalk(self, srcroot, destroot, inforoot, myebuild, > cleanup=0, > -- > 2.16.2 > > > [-- Attachment #2: Type: text/html, Size: 4660 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 3/3] portage.dbapi.vartree: Support exclusions in INSTALL_MASK 2018-03-15 21:02 ` Alec Warner @ 2018-03-15 21:17 ` Michał Górny 2018-03-15 21:44 ` Joakim Tjernlund 1 sibling, 0 replies; 26+ messages in thread From: Michał Górny @ 2018-03-15 21:17 UTC (permalink / raw To: gentoo-portage-dev W dniu czw, 15.03.2018 o godzinie 17∶02 -0400, użytkownik Alec Warner napisał: > On Thu, Mar 15, 2018 at 3:22 PM, Michał Górny <mgorny@gentoo.org> wrote: > > > Allow INSTALL_MASK patterns to start with '-' to indicate that > > a specific match is to be excluded from being masked. In this case, > > the last matching pattern determines whether the file is actually > > filtered out or kept. > > --- > > pym/portage/dbapi/vartree.py | 10 ++++++---- > > 1 file changed, 6 insertions(+), 4 deletions(-) > > > > diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py > > index 21904edca..16c246b11 100644 > > --- a/pym/portage/dbapi/vartree.py > > +++ b/pym/portage/dbapi/vartree.py > > @@ -3692,19 +3692,21 @@ class dblink(object): > > def _is_install_masked(self, relative_path): > > ret = False > > for pattern in self.settings.install_mask: > > > > + # if pattern starts with -, possibly exclude this > > path > > + pat_res = not pattern.startswith('-') > > + if not pat_res: > > + pattern = pattern[1:] > > > > Maybe consider: > > pattern = pattern[1:] if pattern.startswith('-') else pattern > > I'm not super keen on this pattern in python, but it seems doable here. I still need pat_res to know whether it's '+' or '-'. > > > > # absolute path pattern > > if pattern.startswith('/'): > > # match either exact path or one of parent > > dirs > > # the latter is done via matching pattern/* > > if (fnmatch.fnmatch(relative_path, > > pattern[1:]) > > or > > fnmatch.fnmatch(relative_path, pattern[1:] + '/*')): > > - ret = True > > - break > > + ret = pat_res > > # filename > > else: > > if fnmatch.fnmatch(os.path.basename(relative_path), > > pattern): > > - ret = True > > - break > > + ret = pat_res > > return ret > > > > def treewalk(self, srcroot, destroot, inforoot, myebuild, > > cleanup=0, > > -- > > 2.16.2 > > > > > > -- Best regards, Michał Górny ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 3/3] portage.dbapi.vartree: Support exclusions in INSTALL_MASK 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 1 sibling, 1 reply; 26+ messages in thread From: Joakim Tjernlund @ 2018-03-15 21:44 UTC (permalink / raw To: gentoo-portage-dev@lists.gentoo.org; +Cc: mgorny@gentoo.org On Thu, 2018-03-15 at 17:02 -0400, Alec Warner wrote: > > > On Thu, Mar 15, 2018 at 3:22 PM, Michał Górny <mgorny@gentoo.org> wrote: > > Allow INSTALL_MASK patterns to start with '-' to indicate that > > a specific match is to be excluded from being masked. In this case, > > the last matching pattern determines whether the file is actually > > filtered out or kept. > > --- Yes, please ! I just needed this feature 2 hours ago. I need the same for PKG_INSTALL_MASK I hope this allows me to do: INSTALL_MASK="/usr/share/i18n/locales/* -/usr/share/i18n/locales/en_GB -/usr/share/i18n/locales/sv_SE" to all in /usr/share/i18n/locales/* but /usr/share/i18n/locales/en_GB and /usr/share/i18n/locales/sv_SE removed in usr/share/i18n/locales/ ? Jocke ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 3/3] portage.dbapi.vartree: Support exclusions in INSTALL_MASK 2018-03-15 21:44 ` Joakim Tjernlund @ 2018-03-16 7:50 ` Michał Górny 2018-03-16 8:08 ` Joakim Tjernlund 0 siblings, 1 reply; 26+ messages in thread From: Michał Górny @ 2018-03-16 7:50 UTC (permalink / raw To: gentoo-portage-dev W dniu czw, 15.03.2018 o godzinie 21∶44 +0000, użytkownik Joakim Tjernlund napisał: > On Thu, 2018-03-15 at 17:02 -0400, Alec Warner wrote: > > > > > > On Thu, Mar 15, 2018 at 3:22 PM, Michał Górny <mgorny@gentoo.org> wrote: > > > Allow INSTALL_MASK patterns to start with '-' to indicate that > > > a specific match is to be excluded from being masked. In this case, > > > the last matching pattern determines whether the file is actually > > > filtered out or kept. > > > --- > > Yes, please ! I just needed this feature 2 hours ago. > I need the same for PKG_INSTALL_MASK > > I hope this allows me to do: > INSTALL_MASK="/usr/share/i18n/locales/* -/usr/share/i18n/locales/en_GB -/usr/share/i18n/locales/sv_SE" > to all in /usr/share/i18n/locales/* but /usr/share/i18n/locales/en_GB and /usr/share/i18n/locales/sv_SE > removed in usr/share/i18n/locales/ ? > Yes, that is the intended use case. -- Best regards, Michał Górny ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 3/3] portage.dbapi.vartree: Support exclusions in INSTALL_MASK 2018-03-16 7:50 ` Michał Górny @ 2018-03-16 8:08 ` Joakim Tjernlund 0 siblings, 0 replies; 26+ messages in thread From: Joakim Tjernlund @ 2018-03-16 8:08 UTC (permalink / raw To: gentoo-portage-dev@lists.gentoo.org On Fri, 2018-03-16 at 08:50 +0100, Michał Górny wrote: > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. > > > W dniu czw, 15.03.2018 o godzinie 21∶44 +0000, użytkownik Joakim > Tjernlund napisał: > > On Thu, 2018-03-15 at 17:02 -0400, Alec Warner wrote: > > > > > > > > > On Thu, Mar 15, 2018 at 3:22 PM, Michał Górny <mgorny@gentoo.org> wrote: > > > > Allow INSTALL_MASK patterns to start with '-' to indicate that > > > > a specific match is to be excluded from being masked. In this case, > > > > the last matching pattern determines whether the file is actually > > > > filtered out or kept. > > > > --- > > > > Yes, please ! I just needed this feature 2 hours ago. > > I need the same for PKG_INSTALL_MASK > > > > I hope this allows me to do: > > INSTALL_MASK="/usr/share/i18n/locales/* -/usr/share/i18n/locales/en_GB -/usr/share/i18n/locales/sv_SE" > > to all in /usr/share/i18n/locales/* but /usr/share/i18n/locales/en_GB and /usr/share/i18n/locales/sv_SE > > removed in usr/share/i18n/locales/ ? > > > > Yes, that is the intended use case. Thanks, while on the subject I had a similar idea for stripping: Today one have to build all files in glibc with debug syms just to get debug syms for perf/valgrind in ld.so so it would be great if one could specify that just some files should have debug syms. Jocke ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-15 19:22 [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit Michał Górny ` (2 preceding siblings ...) 2018-03-15 19:22 ` [gentoo-portage-dev] [PATCH 3/3] portage.dbapi.vartree: Support exclusions in INSTALL_MASK Michał Górny @ 2018-03-16 5:10 ` Zac Medico 2018-03-16 8:31 ` Joakim Tjernlund ` (2 more replies) 2018-03-16 8:11 ` Joakim Tjernlund 2018-03-19 22:59 ` Zac Medico 5 siblings, 3 replies; 26+ messages in thread From: Zac Medico @ 2018-03-16 5:10 UTC (permalink / raw To: gentoo-portage-dev, Michał Górny [-- Attachment #1.1: Type: text/plain, Size: 2349 bytes --] 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). -- Thanks, Zac [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 224 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 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-18 9:03 ` Michał Górny 2 siblings, 0 replies; 26+ messages in thread From: Joakim Tjernlund @ 2018-03-16 8:31 UTC (permalink / raw To: mgorny@gentoo.org, gentoo-portage-dev@lists.gentoo.org 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). ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 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 2018-03-18 9:03 ` Michał Górny 2 siblings, 1 reply; 26+ messages in thread From: Michał Górny @ 2018-03-16 10:08 UTC (permalink / raw To: gentoo-portage-dev 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 ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-16 10:08 ` Michał Górny @ 2018-03-16 17:07 ` Zac Medico 2018-03-16 21:13 ` Michał Górny 0 siblings, 1 reply; 26+ messages in thread From: Zac Medico @ 2018-03-16 17:07 UTC (permalink / raw To: gentoo-portage-dev, Michał Górny [-- 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 --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-16 17:07 ` Zac Medico @ 2018-03-16 21:13 ` Michał Górny 2018-03-16 21:25 ` Zac Medico 0 siblings, 1 reply; 26+ messages in thread From: Michał Górny @ 2018-03-16 21:13 UTC (permalink / raw To: gentoo-portage-dev W dniu pią, 16.03.2018 o godzinie 10∶07 -0700, użytkownik Zac Medico napisał: > 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. But do I need to change anything for PKG_INSTALL_MASK? My original patch did not touch that, so it can just continue happening as it is now. > INSTALL_MASK should be handled in the dblink treewalk method like it is now. But we also need to read it for unmerge, correct? > > 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. -- Best regards, Michał Górny ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-16 21:13 ` Michał Górny @ 2018-03-16 21:25 ` Zac Medico 0 siblings, 0 replies; 26+ messages in thread From: Zac Medico @ 2018-03-16 21:25 UTC (permalink / raw To: gentoo-portage-dev, Michał Górny [-- Attachment #1.1: Type: text/plain, Size: 4166 bytes --] On 03/16/2018 02:13 PM, Michał Górny wrote: > W dniu pią, 16.03.2018 o godzinie 10∶07 -0700, użytkownik Zac Medico > napisał: >> 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. > > But do I need to change anything for PKG_INSTALL_MASK? My original patch > did not touch that, so it can just continue happening as it is now. > >> INSTALL_MASK should be handled in the dblink treewalk method like it is now. > > But we also need to read it for unmerge, correct? Oh right. We should load it in the dblink _match_contents or getcontents method, since we need it for operation of the _match_contents method which is called by isowner. >>> 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 --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 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-18 9:03 ` Michał Górny 2018-03-18 18:22 ` Zac Medico 2018-03-19 6:27 ` Joakim Tjernlund 2 siblings, 2 replies; 26+ messages in thread From: Michał Górny @ 2018-03-18 9:03 UTC (permalink / raw To: gentoo-portage-dev W dniu czw, 15.03.2018 o godzinie 22∶10 -0700, użytkownik Zac Medico napisał: > A binary package should > use the value of INSTALL_MASK that existed at build time. > Wait a minute! This doesn't make any sense. The whole point of having separate PKG_INSTALL_MASK and INSTALL_MASK is to be able to strip stuff from more complete binary packages, not to force original restrictions forever. -- Best regards, Michał Górny ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-18 9:03 ` Michał Górny @ 2018-03-18 18:22 ` Zac Medico 2018-03-19 6:27 ` Joakim Tjernlund 1 sibling, 0 replies; 26+ messages in thread From: Zac Medico @ 2018-03-18 18:22 UTC (permalink / raw To: gentoo-portage-dev, Michał Górny [-- Attachment #1.1: Type: text/plain, Size: 953 bytes --] On 03/18/2018 02:03 AM, Michał Górny wrote: > W dniu czw, 15.03.2018 o godzinie 22∶10 -0700, użytkownik Zac Medico > napisał: >> A binary package should >> use the value of INSTALL_MASK that existed at build time. >> > > Wait a minute! This doesn't make any sense. The whole point of having > separate PKG_INSTALL_MASK and INSTALL_MASK is to be able to strip stuff > from more complete binary packages, not to force original restrictions > forever. Okay, we should apply latest INSTALL_MASK settings when installing a binary package? That seems reasonable. I want to respect settings embedded in the binary package whenever it could be useful, since my intention if for binhost clients to be able to treat the binhost as a single source of truth, so that binary packages can be installed without dependency on source ebuild repositories/profiles, as discussed here: https://bugs.gentoo.org/644990 -- Thanks, Zac [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 224 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-18 9:03 ` Michał Górny 2018-03-18 18:22 ` Zac Medico @ 2018-03-19 6:27 ` Joakim Tjernlund 1 sibling, 0 replies; 26+ messages in thread From: Joakim Tjernlund @ 2018-03-19 6:27 UTC (permalink / raw To: gentoo-portage-dev@lists.gentoo.org On Sun, 2018-03-18 at 10:03 +0100, Michał Górny wrote: > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. > > > W dniu czw, 15.03.2018 o godzinie 22∶10 -0700, użytkownik Zac Medico > napisał: > > A binary package should > > use the value of INSTALL_MASK that existed at build time. > > > > Wait a minute! This doesn't make any sense. The whole point of having > separate PKG_INSTALL_MASK and INSTALL_MASK is to be able to strip stuff > from more complete binary packages, not to force original restrictions > forever. These discussions also mentions PKG_INSTALL_MASK while the actual patches only mention INSTALL_MASK. I am getting somewhat confused, does the patches support PKG_INSTALL_MASK too or do you only intend to support this new exclusion syntax in INSTALL_MASK? Jocke ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-15 19:22 [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit Michał Górny ` (3 preceding siblings ...) 2018-03-16 5:10 ` [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit Zac Medico @ 2018-03-16 8:11 ` Joakim Tjernlund 2018-03-16 8:13 ` Michał Górny 2018-03-19 22:59 ` Zac Medico 5 siblings, 1 reply; 26+ messages in thread From: Joakim Tjernlund @ 2018-03-16 8:11 UTC (permalink / raw To: gentoo-portage-dev@lists.gentoo.org; +Cc: mgorny@gentoo.org On Thu, 2018-03-15 at 20:22 +0100, Michał Górny wrote: > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. > > > 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. Will this also remove corresponding split debug files? There would be little/no point in keeping debug syms if the binary has been MASKed Jocke ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-16 8:11 ` Joakim Tjernlund @ 2018-03-16 8:13 ` Michał Górny 2018-03-18 9:57 ` Joakim Tjernlund 0 siblings, 1 reply; 26+ messages in thread From: Michał Górny @ 2018-03-16 8:13 UTC (permalink / raw To: gentoo-portage-dev W dniu pią, 16.03.2018 o godzinie 08∶11 +0000, użytkownik Joakim Tjernlund napisał: > On Thu, 2018-03-15 at 20:22 +0100, Michał Górny wrote: > > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. > > > > > > 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. > > Will this also remove corresponding split debug files? > There would be little/no point in keeping debug syms if the binary has been > MASKed > Nope. Add both paths to INSTALL_MASK. Expecting it to do implicit magic is a very bad idea. -- Best regards, Michał Górny ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-16 8:13 ` Michał Górny @ 2018-03-18 9:57 ` Joakim Tjernlund 0 siblings, 0 replies; 26+ messages in thread From: Joakim Tjernlund @ 2018-03-18 9:57 UTC (permalink / raw To: gentoo-portage-dev@lists.gentoo.org On Fri, 2018-03-16 at 09:13 +0100, Michał Górny wrote: > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. > > > W dniu pią, 16.03.2018 o godzinie 08∶11 +0000, użytkownik Joakim > Tjernlund napisał: > > On Thu, 2018-03-15 at 20:22 +0100, Michał Górny wrote: > > > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. > > > > > > > > > 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. > > > > Will this also remove corresponding split debug files? > > There would be little/no point in keeping debug syms if the binary has been > > MASKed > > > > Nope. Add both paths to INSTALL_MASK. Expecting it to do implicit magic > is a very bad idea. Maybe but it also makes senses to get rid of them. To me it is only a matter of applying PKG_INSTALL_MASK before applying strip debug, does that make sense ? Jocke ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-15 19:22 [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit Michał Górny ` (4 preceding siblings ...) 2018-03-16 8:11 ` Joakim Tjernlund @ 2018-03-19 22:59 ` Zac Medico 2018-03-23 0:52 ` Joakim Tjernlund 5 siblings, 1 reply; 26+ messages in thread From: Zac Medico @ 2018-03-19 22:59 UTC (permalink / raw To: gentoo-portage-dev, Michał Górny [-- Attachment #1.1: Type: text/plain, Size: 2177 bytes --] 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(-) > As mentioned in #gentoo-portage today, the rationale for including the INSTALL_MASKed files in CONTENTS is to that we can detect collisions that would have occurred had people not been using INSTALL_MASK. Since people can use INSTALL_MASK to intentionally prevent collisions, in cases where COLLISION_IGNORE is not appropriate (this is common practice at my workplace), we'll need a new FEATURES setting to trigger the new behavior where INSTALL_MASKed files still trigger file collisions. -- Thanks, Zac [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 224 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 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 0 siblings, 2 replies; 26+ messages in thread From: Joakim Tjernlund @ 2018-03-23 0:52 UTC (permalink / raw To: mgorny@gentoo.org, gentoo-portage-dev@lists.gentoo.org On Mon, 2018-03-19 at 15:59 -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(-) > > > > As mentioned in #gentoo-portage today, the rationale for including the > INSTALL_MASKed files in CONTENTS is to that we can detect collisions > that would have occurred had people not been using INSTALL_MASK. > > Since people can use INSTALL_MASK to intentionally prevent collisions, > in cases where COLLISION_IGNORE is not appropriate (this is common > practice at my workplace), we'll need a new FEATURES setting to trigger > the new behavior where INSTALL_MASKed files still trigger file collisions. Are we going to see this in Portage soon? And PKG_INSTALL_MASK too ? ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-23 0:52 ` Joakim Tjernlund @ 2018-03-23 1:09 ` Zac Medico 2018-03-23 8:33 ` Michał Górny 1 sibling, 0 replies; 26+ messages in thread From: Zac Medico @ 2018-03-23 1:09 UTC (permalink / raw To: gentoo-portage-dev, Joakim Tjernlund, mgorny@gentoo.org [-- Attachment #1.1: Type: text/plain, Size: 2548 bytes --] On 03/22/2018 05:52 PM, Joakim Tjernlund wrote: > On Mon, 2018-03-19 at 15:59 -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(-) >>> >> >> As mentioned in #gentoo-portage today, the rationale for including the >> INSTALL_MASKed files in CONTENTS is to that we can detect collisions >> that would have occurred had people not been using INSTALL_MASK. >> >> Since people can use INSTALL_MASK to intentionally prevent collisions, >> in cases where COLLISION_IGNORE is not appropriate (this is common >> practice at my workplace), we'll need a new FEATURES setting to trigger >> the new behavior where INSTALL_MASKed files still trigger file collisions. > > Are we going to see this in Portage soon? And PKG_INSTALL_MASK too ? Yes, I'll clean up the patches an resubmit them. Bug filed: https://bugs.gentoo.org/651214 -- Thanks, Zac [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 224 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 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 1 sibling, 1 reply; 26+ messages in thread From: Michał Górny @ 2018-03-23 8:33 UTC (permalink / raw To: gentoo-portage-dev W dniu pią, 23.03.2018 o godzinie 00∶52 +0000, użytkownik Joakim Tjernlund napisał: > On Mon, 2018-03-19 at 15:59 -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(-) > > > > > > > As mentioned in #gentoo-portage today, the rationale for including the > > INSTALL_MASKed files in CONTENTS is to that we can detect collisions > > that would have occurred had people not been using INSTALL_MASK. > > > > Since people can use INSTALL_MASK to intentionally prevent collisions, > > in cases where COLLISION_IGNORE is not appropriate (this is common > > practice at my workplace), we'll need a new FEATURES setting to trigger > > the new behavior where INSTALL_MASKed files still trigger file collisions. > > Are we going to see this in Portage soon? And PKG_INSTALL_MASK too ? It's in sys-apps/portage-mgorny. Whatever's going to land in sys- apps/portage, it's probably going to be half-broken to satisfy somebody's colleague's corner case of misusing INSTALL_MASK. -- Best regards, Michał Górny ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [gentoo-portage-dev] [PATCH 0/3] INSTALL_MASK refurbishing resubmit 2018-03-23 8:33 ` Michał Górny @ 2018-03-23 9:05 ` Joakim Tjernlund 0 siblings, 0 replies; 26+ messages in thread From: Joakim Tjernlund @ 2018-03-23 9:05 UTC (permalink / raw To: gentoo-portage-dev@lists.gentoo.org On Fri, 2018-03-23 at 09:33 +0100, Michał Górny wrote: > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. > > > W dniu pią, 23.03.2018 o godzinie 00∶52 +0000, użytkownik Joakim > Tjernlund napisał: > > On Mon, 2018-03-19 at 15:59 -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(-) > > > > > > > > > > As mentioned in #gentoo-portage today, the rationale for including the > > > INSTALL_MASKed files in CONTENTS is to that we can detect collisions > > > that would have occurred had people not been using INSTALL_MASK. > > > > > > Since people can use INSTALL_MASK to intentionally prevent collisions, > > > in cases where COLLISION_IGNORE is not appropriate (this is common > > > practice at my workplace), we'll need a new FEATURES setting to trigger > > > the new behavior where INSTALL_MASKed files still trigger file collisions. > > > > Are we going to see this in Portage soon? And PKG_INSTALL_MASK too ? > > It's in sys-apps/portage-mgorny. Whatever's going to land in sys- > apps/portage, it's probably going to be half-broken to satisfy > somebody's colleague's corner case of misusing INSTALL_MASK. I looked and saw the INSTALL_MASK part but no mention of PKG_INSTALL_MASK(which is what I need) ^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2018-03-23 9:05 UTC | newest] Thread overview: 26+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox