On 04/01/2018 06:54 AM, Michał Górny wrote: > W dniu czw, 29.03.2018 o godzinie 15∶34 -0700, użytkownik Zac Medico > napisał: >> For binary packages, honor the INSTALL_MASK configuration that >> exists at install time, since it might differ from the build time >> setting. >> >> Fixes: 3416876c0ee7 ("{,PKG_}INSTALL_MASK: python implementation") >> Bug: https://bugs.gentoo.org/651952 >> --- >> bin/misc-functions.sh | 23 +++++++++++++++++++++++ >> bin/phase-functions.sh | 10 +--------- >> pym/portage/dbapi/vartree.py | 5 +++++ >> 3 files changed, 29 insertions(+), 9 deletions(-) >> >> diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh >> index 26f589915..a6330ee93 100755 >> --- a/bin/misc-functions.sh >> +++ b/bin/misc-functions.sh >> @@ -323,6 +323,29 @@ postinst_qa_check() { >> done < <(printf "%s\0" "${qa_checks[@]}" | LC_ALL=C sort -u -z) >> } >> >> +preinst_mask() { >> + # Remove man pages, info pages, docs if requested. This is >> + # implemented in bash in order to respect INSTALL_MASK settings >> + # from bashrc. >> + local f x >> + for f in man info doc; do >> + if has no${f} ${FEATURES}; then >> + INSTALL_MASK+=" /usr/share/${f}" >> + fi >> + done >> + >> + # Store modified variables in build-info. >> + cd "${PORTAGE_BUILDDIR}"/build-info || die >> + set -f >> + >> + IFS=$' \t\n\r' >> + for f in INSTALL_MASK; do > > This loop along with the whole indirection is entirely pointless, given > that you're processing exactly one variable.
I did this for consistency with the related loop in dyn_install, since we might save values of other variables from the binary package environment. In fact, I think we should record DOC_SYMLINKS_DIR here, since it affects CONTENTS, much like INSTALL_MASK. >> + x=$(echo -n ${!f}) >> + [[ -n ${x} ]] && echo "${x}" > "${f}" > > There's probably no point in this [[ -n ... ]], as that: > > a. requires you to special-handle missing INSTALL_MASK file, while it's > easier to just ensure that it's there (and I think you requested > the same thing from me before you rewritten my commit into breakage), > > b. makes it impossible to distinguish packages from before INSTALL_MASK > storing was added from those where it is empty. Maybe this only matters within the context of bug 364633 [1], and for that I think we need to introduce a separate CONTENTS.INSTALL_MASK file so that we can easily toggle collision-protect behavior to use CONTENTS.INSTALL_MASK when desired. [1] https://bugs.gentoo.org/364633 -- Thanks, Zac
signature.asc
Description: OpenPGP digital signature