commit:     e1db307d107f5010057a4e3495e08b1f51820add
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Sep  9 15:31:42 2024 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue Sep 10 10:29:10 2024 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=e1db307d

unpack: Match file extensions case-sensitively in old EAPIs

This fixes PMS compliance and at the same time simplifies the code.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 bin/phase-helpers.sh | 97 +++++-----------------------------------------------
 1 file changed, 9 insertions(+), 88 deletions(-)

diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index 164f62143d..4e23d10a8b 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -370,6 +370,12 @@ unpack() {
                        txz)     ___eapi_unpack_supports_txz && suffix_known=1 
;;
                esac
 
+               if ___eapi_unpack_is_case_sensitive \
+                               && ! has "${suffix}" "${suffix_insensitive}" \
+                                       ZIP Z 7Z RAR LHA LHa; then
+                       suffix_known=""
+               fi
+
                if [[ -n ${suffix_known} ]]; then
                        __vecho ">>> Unpacking ${x} to ${PWD}"
                else
@@ -378,13 +384,9 @@ unpack() {
                fi
 
                __unpack_tar() {
-                       if [[ ${y_insensitive} == tar ]] ; then
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ tar != ${y} ]] ; then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "secondary suffix '${y}' which 
is unofficially" \
-                                               "supported with EAPI '${EAPI}'. 
Instead use 'tar'."
-                               fi
+                       if [[ ${y_insensitive} == tar ]] \
+                                       && ! ___eapi_unpack_is_case_sensitive \
+                                       || [[ ${y} == tar ]]; then
                                $1 -c -- "${srcdir}${x}" | tar xof -
                                __assert_sigpipe_ok "${myfail}"
                        else
@@ -397,62 +399,25 @@ unpack() {
                myfail="unpack: failure unpacking ${x}"
                case "${suffix_insensitive}" in
                        tar)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ tar != ${suffix} ]] ; then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'tar'."
-                               fi
                                tar xof "${srcdir}${x}" || die "${myfail}"
                                ;;
                        tgz)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ tgz != ${suffix} ]] ; then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'tgz'."
-                               fi
                                tar xozf "${srcdir}${x}" || die "${myfail}"
                                ;;
                        tbz|tbz2)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " tbz tbz2 " != *" ${suffix} "* ]] ; 
then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'tbz' or 'tbz2'."
-                               fi
                                
${PORTAGE_BUNZIP2_COMMAND:-${PORTAGE_BZIP2_COMMAND} -d} -c -- "${srcdir}${x}" | 
tar xof -
                                __assert_sigpipe_ok "${myfail}"
                                ;;
                        zip|jar)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " ZIP zip jar " != *" ${suffix} "* 
]] ; then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'." \
-                                               "Instead use 'ZIP', 'zip', or 
'jar'."
-                               fi
                                # unzip will interactively prompt under some 
error conditions,
                                # as reported in bug #336285
                                ( set +x ; while true ; do echo n || break ; 
done ) | \
                                unzip -qo "${srcdir}${x}" || die "${myfail}"
                                ;;
                        gz|z)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " gz z Z " != *" ${suffix} "* ]] ; 
then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'gz', 'z', or 'Z'."
-                               fi
                                __unpack_tar "gzip -d"
                                ;;
                        bz2|bz)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " bz bz2 " != *" ${suffix} "* ]] ; 
then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'bz' or 'bz2'."
-                               fi
                                __unpack_tar 
"${PORTAGE_BUNZIP2_COMMAND:-${PORTAGE_BZIP2_COMMAND} -d}"
                                ;;
                        7z)
@@ -464,41 +429,15 @@ unpack() {
                                fi
                                ;;
                        rar)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " rar RAR " != *" ${suffix} "* ]] ; 
then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'rar' or 'RAR'."
-                               fi
                                unrar x -idq -o+ "${srcdir}${x}" || die 
"${myfail}"
                                ;;
                        lha|lzh)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " LHA LHa lha lzh " != *" ${suffix} 
"* ]] ; then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'." \
-                                               "Instead use 'LHA', 'LHa', 
'lha', or 'lzh'."
-                               fi
                                lha xfq "${srcdir}${x}" || die "${myfail}"
                                ;;
                        a)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " a " != *" ${suffix} "* ]] ; then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'a'."
-                               fi
                                ar x "${srcdir}${x}" || die "${myfail}"
                                ;;
                        deb)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " deb " != *" ${suffix} "* ]] ; then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'deb'."
-                               fi
-
                                # Unpacking .deb archives can not always be 
done with
                                # `ar`.  For instance on AIX this doesn't work 
out.
                                # If `ar` is not the GNU binutils version and 
we have
@@ -533,30 +472,12 @@ unpack() {
                                fi
                                ;;
                        lzma)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " lzma " != *" ${suffix} "* ]] ; then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'lzma'."
-                               fi
                                __unpack_tar "lzma -d"
                                ;;
                        xz)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " xz " != *" ${suffix} "* ]] ; then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'xz'."
-                               fi
                                __unpack_tar "xz -T$(___makeopts_jobs) -d"
                                ;;
                        txz)
-                               if ___eapi_unpack_is_case_sensitive && \
-                                       [[ " txz " != *" ${suffix} "* ]] ; then
-                                       eqawarn "QA Notice: unpack called with" 
\
-                                               "suffix '${suffix}' which is 
unofficially supported" \
-                                               "with EAPI '${EAPI}'. Instead 
use 'txz'."
-                               fi
                                XZ_OPT="-T$(___makeopts_jobs)" tar xof 
"${srcdir}${x}" || die "${myfail}"
                                ;;
                esac

Reply via email to