summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'python-updater')
-rwxr-xr-xpython-updater24
1 files changed, 22 insertions, 2 deletions
diff --git a/python-updater b/python-updater
index f5d2681..2408fe0 100755
--- a/python-updater
+++ b/python-updater
@@ -717,21 +717,41 @@ for contents_file in $(find ${PKG_DBDIR}/ -name CONTENTS | sort); do
if [[ -n "${PYTHON_MULTIPLE_ABIS}" && "${EAPI}" =~ ^4-python$ ]]; then
# Potentially update USE flags in IUSE in EAPI >= 4-python.
if [[ "${PRETEND}" -eq 0 && -f "${contents_file%CONTENTS}IUSE" && -f "${contents_file%CONTENTS}USE" && -f "${contents_file%CONTENTS}repository" ]]; then
+ get_vdb_variable PYTHON_RESTRICTED_ABIS "${environment_file}"
IUSE="$(<"${contents_file%CONTENTS}IUSE")"
USE="$(<"${contents_file%CONTENTS}USE")"
repository="$(<"${contents_file%CONTENTS}repository")"
[[ "${repository}" == "python" ]] && repository="progress"
if [[ -n "${#PYTHON_GLOBALLY_SUPPORTED_USE_FLAGS[${repository}]}" ]]; then
+ deleted_USE_flags=""
+ added_USE_flags=""
+ # Delete no longer available USE flags.
for USE_flag in ${IUSE}; do
- if ! has "${USE_flag}" ${PYTHON_GLOBALLY_SUPPORTED_USE_FLAGS[${repository}]} && ! has "${USE_flag}" ${USE}; then
+ USE_flag="${USE_flag#[+-]}"
+ if [[ "${USE_flag}" == python_abis_* ]] && ! has "${USE_flag}" ${PYTHON_GLOBALLY_SUPPORTED_USE_FLAGS[${repository}]} && ! has "${USE_flag}" ${USE}; then
+ deleted_USE_flags+="${deleted_USE_flags:+ }${USE_flag}"
sed -e "s/\(^\| \)${USE_flag}\($\| \)/\1\2/;s/^ //;s/ / /g;s/ $//" -i "${contents_file%CONTENTS}IUSE"
fi
done
+ # Add newly available USE flags.
for USE_flag in ${PYTHON_GLOBALLY_SUPPORTED_USE_FLAGS[${repository}]}; do
- if ! has "${USE_flag}" ${IUSE}; then
+ if ! has "${USE_flag}" ${IUSE} && ! check_python_abi_matching --patterns-list "${USE_flag#python_abis_}" "${PYTHON_RESTRICTED_ABIS}"; then
+ added_USE_flags+="${added_USE_flags:+ }${USE_flag}"
sed -e "s/$/ ${USE_flag}/" -i "${contents_file%CONTENTS}IUSE"
fi
done
+ if [[ -n "${deleted_USE_flags}" || -n "${added_USE_flags}" ]]; then
+ # Update mtime of directory.
+ touch "${contents_file%/CONTENTS}"
+ fi
+ eindent
+ if [[ -n "${deleted_USE_flags}" ]]; then
+ veinfo 1 "Deleted USE flags: ${deleted_USE_flags}"
+ fi
+ if [[ -n "${added_USE_flags}" ]]; then
+ veinfo 1 "Added USE flags: ${added_USE_flags}"
+ fi
+ eoutdent
fi
fi
# Don't run any checks in EAPI >= 4-python.