On Sun, 2018-09-30 at 22:45 -0700, Zac Medico wrote:
> The QA_INSTALL_PATHS variable exempts paths from "unexpected paths"
> warnings generated by install-qa-check.d/08gentoo-paths. This is
> useful for QT packages that are expected to install a directory
> named /usr/share/doc/${PN}-${VERSION} (which may differ from the
> usual /usr/share/doc/${PF} location as reported in bug 667280).
> 
> Bug: https://bugs.gentoo.org/667378
> Signed-off-by: Zac Medico <zmed...@gentoo.org>
> ---
>  bin/install-qa-check.d/08gentoo-paths | 21 +++++++++++++++++++++
>  man/ebuild.5                          |  7 +++++++
>  man/make.conf.5                       |  4 ++++
>  3 files changed, 32 insertions(+)
> 
> diff --git a/bin/install-qa-check.d/08gentoo-paths 
> b/bin/install-qa-check.d/08gentoo-paths
> index 3ee887df0..a00f9f6af 100644
> --- a/bin/install-qa-check.d/08gentoo-paths
> +++ b/bin/install-qa-check.d/08gentoo-paths
> @@ -60,6 +60,27 @@ gentoo_path_check() {
>  
>       ${shopt_save}
>  
> +     if [[ ${#bad_paths[@]} -gt 0 && ${QA_INSTALL_PATHS} &&
> +             ${QA_STRICT_INSTALL_PATHS-unset} == unset ]]; then
> +             local filtered_paths=()
> +             local sed_args=()
> +             local qa_install_paths
> +             if [[ $(declare -p QA_INSTALL_PATHS) == "declare -a "* ]]; then
> +                     qa_install_paths=("${QA_INSTALL_PATHS[@]}")
> +             else
> +                     set -f
> +                     qa_install_paths=(${QA_INSTALL_PATHS})
> +                     set +f
> +             fi
> +             for x in "${qa_install_paths[@]}"; do
> +                     sed_args+=(-e "s#^/${x#/}\$##")
> +             done
> +             while read -r -d ''; do
> +                     [[ ${REPLY} ]] && filtered_paths+=("${REPLY}")
> +             done < <(printf -- '%s\0' "${bad_paths[@]}" | sed -z 
> "${sed_args[@]}")
> +             bad_paths=("${filtered_paths[@]}")
> +     fi
> +
>       # report
>       # ------
>       if [[ -n ${bad_paths[@]} ]]; then
> diff --git a/man/ebuild.5 b/man/ebuild.5
> index 9f491dd73..01f3e09aa 100644
> --- a/man/ebuild.5
> +++ b/man/ebuild.5
> @@ -791,6 +791,13 @@ characters.
>  This variable is intended to be used on files of binary packages which ignore
>  CFLAGS, CXXFLAGS, FFLAGS, FCFLAGS, and LDFLAGS variables.
>  .TP
> +.B QA_INSTALL_PATHS
> +This should contain a list of file paths (may be an array), relative to the
> +image directory, of files that are exempt from QA notices regarding ebuilds
> +that install files to unusual locations.
> +The paths may contain regular expressions with escape\-quoted special
> +characters.
> +.TP
>  .B QA_MULTILIB_PATHS
>  This should contain a list of file paths, relative to the image directory, of
>  files that should be ignored for the multilib\-strict checks.
> diff --git a/man/make.conf.5 b/man/make.conf.5
> index a33929143..d97d83767 100644
> --- a/man/make.conf.5
> +++ b/man/make.conf.5
> @@ -1060,6 +1060,10 @@ settings from ebuilds.  See also \fBebuild\fR(5).
>  Set this to cause portage to ignore any \fIQA_FLAGS_IGNORED\fR override
>  settings from ebuilds.  See also \fBebuild\fR(5).
>  .TP
> +\fBQA_STRICT_INSTALL_PATHS = \fI"set"\fR
> +Set this to cause portage to ignore any \fIQA_INSTALL_PATHS\fR override
> +settings from ebuilds.  See also \fBebuild\fR(5).
> +.TP
>  \fBQA_STRICT_MULTILIB_PATHS = \fI"set"\fR
>  Set this to cause portage to ignore any \fIQA_MULTILIB_PATHS\fR override
>  settings from ebuilds.  See also \fBebuild\fR(5).

QA NAK on this.  The purpose of QA checks is not for ebuilds to
officially override them because histerical raisins.

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to