blob: ce504c54b03d6dddf43acec60d43d6f5aa582331 [file] [log] [blame]
# Copyright 2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
import portage
from portage import os
from portage.const import GLOBAL_CONFIG_PATH
COMPAT_FEATURES = 'FEATURES="${FEATURES} -binpkg-multi-instance"'
def main():
"""
If the current installation is still has binpkg-multi-instance
disabled, then patch make.globals inside ${ED} to maintain backward
compatibility. This is intended to be called from the ebuild as
follows:
pkg_preinst() {
python_setup
env -u FEATURES -u PORTAGE_REPOSITORIES \
PYTHONPATH="${D}$(python_get_sitedir)${PYTHONPATH:+:${PYTHONPATH}}" \
"${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die
}
"""
if "binpkg-multi-instance" not in portage.settings.features:
portage.output.EOutput().einfo(
"Setting make.globals default {} for backward compatibility".format(
COMPAT_FEATURES
)
)
config_path = os.path.join(
os.environ["ED"], GLOBAL_CONFIG_PATH.lstrip(os.sep), "make.globals"
)
with open(config_path, "at") as f:
f.write("{}\n".format(COMPAT_FEATURES))
if __name__ == "__main__":
main()