summaryrefslogtreecommitdiff
path: root/metadata/install-qa-check.d/60python-pyc
diff options
context:
space:
mode:
Diffstat (limited to 'metadata/install-qa-check.d/60python-pyc')
-rw-r--r--metadata/install-qa-check.d/60python-pyc125
1 files changed, 0 insertions, 125 deletions
diff --git a/metadata/install-qa-check.d/60python-pyc b/metadata/install-qa-check.d/60python-pyc
deleted file mode 100644
index fe4f3f62c4ef..000000000000
--- a/metadata/install-qa-check.d/60python-pyc
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright 2019-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# QA check: ensure that Python modules are compiled after installing
-# Maintainer: Python project <python@gentoo.org>
-
-python_pyc_check() {
- local save=$(shopt -p nullglob)
- shopt -s nullglob
- local progs=( "${EPREFIX}"/usr/lib/python-exec/*/gpep517 )
- ${save}
-
- local invalid=()
- local mismatched_timestamp=()
- local mismatched_data=()
- local missing=()
- local stray=()
-
- # Avoid running the check if sufficiently new gpep517 is not installed
- # yet. It's valid to schedule (for merge order) >=gpep517-8 after
- # packages which have this check run if they don't use distutils-r1.
- if [[ ${EAPI} == [0123] ]] || ! nonfatal has_version ">=dev-python/gpep517-8" ; then
- return
- fi
-
- for prog in "${progs[@]}"; do
- local impl=${prog%/*}
- impl=${impl##*/}
-
- # NB: using ${impl}* to catch pypy3.* for pypy3
- [[ -d "${ED}"/usr/lib/${impl}*/site-packages ]] || continue
-
- einfo "Verifying compiled files for ${impl}"
- local kind pyc py
- while IFS=: read -r kind pyc py extra; do
- case ${kind} in
- invalid)
- invalid+=( "${pyc}" )
- ;;
- mismatched)
- case ${extra} in
- timestamp)
- mismatched_timestamp+=( "${pyc}" )
- ;;
- *)
- mismatched_data+=( "${pyc}" )
- ;;
- esac
- ;;
- missing)
- missing+=( "${pyc}" )
- ;;
- older)
- # older warnings were produced by earlier version
- # of gpep517 but the check was incorrect, so we just
- # ignore them
- ;;
- stray)
- stray+=( "${pyc}" )
- ;;
- esac
- done < <("${prog}" verify-pyc --destdir "${D}" --prefix "${EPREFIX}"/usr)
- done
-
- local found=
- if [[ ${missing[@]} ]]; then
- eqawarn
- eqawarn "QA Notice: This package installs one or more Python modules that are"
- eqawarn "not byte-compiled."
- eqawarn "The following files are missing:"
- eqawarn
- eqatag -v python-pyc.missing "${missing[@]}"
- found=1
- fi
-
- if [[ ${invalid[@]} ]]; then
- eqawarn
- eqawarn "QA Notice: This package installs one or more compiled Python modules"
- eqawarn "that seem to be invalid (do not have the correct header)."
- eqawarn "The following files are invalid:"
- eqawarn
- eqatag -v python-pyc.invalid "${invalid[@]}"
- found=1
- fi
-
- if [[ ${mismatched_data[@]} ]]; then
- eqawarn
- eqawarn "QA Notice: This package installs one or more compiled Python modules whose"
- eqawarn ".py files have different content (size or hash) than recorded:"
- eqawarn
- eqatag -v python-pyc.mismatched.data "${mismatched_data[@]}"
- found=1
- fi
-
- if [[ ${mismatched_timestamp[@]} ]]; then
- eqawarn
- eqawarn "QA Notice: This package installs one or more compiled Python modules whose"
- eqawarn ".py files have different timestamps than recorded:"
- eqawarn
- eqatag -v python-pyc.mismatched.timestamp "${mismatched_timestamp[@]}"
- found=1
- fi
-
- if [[ ${stray[@]} ]]; then
- eqawarn
- eqawarn "QA Notice: This package installs one or more compiled Python modules"
- eqawarn "that do not match installed modules (or their implementation)."
- eqawarn "The following files are stray:"
- eqawarn
- eqatag -v python-pyc.stray "${stray[@]}"
- found=1
- fi
-
- if [[ ${found} ]]; then
- eqawarn
- eqawarn "For more information on bytecode files and related issues, please see:"
- eqawarn " https://projects.gentoo.org/python/guide/qawarn.html#compiled-bytecode-related-warnings"
- fi
-}
-
-python_pyc_check
-
-: # guarantee successful exit
-
-# vim:ft=ebuild