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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to