mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-07-26 08:55:57 +02:00
This implements the ver_replacing command, as proposed for EAPI 9: | Takes an operator and a version string as arguments, which follow | the same specification as in ver_test. Iterates over the elements | of REPLACING_VERSIONS, using ver_test to compare each element with | the version string. Returns shell true (0) if the specified relation | is fulfilled for any element. Note that if REPLACING_VERSIONS is | empty, shell false (1) is returned. The command is only meaningful | in phases where \t{REPLACING_VERSIONS} is defined. Bug: https://bugs.gentoo.org/947530 Signed-off-by: Ulrich Müller <ulm@gentoo.org>
50 lines
1.4 KiB
Bash
50 lines
1.4 KiB
Bash
# Copyright 2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
# @ECLASS: eapi9-ver.eclass
|
|
# @MAINTAINER:
|
|
# Ulrich Müller <ulm@gentoo.org>
|
|
# @AUTHOR:
|
|
# Ulrich Müller <ulm@gentoo.org>
|
|
# @SUPPORTED_EAPIS: 7 8
|
|
# @BLURB: Testing implementation of EAPI 9 ver_replacing
|
|
# @DESCRIPTION:
|
|
# A stand-alone implementation of the ver_replacing function aimed
|
|
# for EAPI 9. Intended to be used for wider testing of the proposed
|
|
# function and to allow ebuilds to switch to the new model early, with
|
|
# minimal change needed for the actual EAPI 9.
|
|
#
|
|
# @CODE
|
|
# if ver_replacing -lt 1.2; then
|
|
# elog "The frobnicate command was dropped in version 1.2"
|
|
# fi
|
|
# @CODE
|
|
|
|
case ${EAPI} in
|
|
7|8) ;;
|
|
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
|
|
esac
|
|
|
|
# @FUNCTION: ver_replacing
|
|
# @USAGE: <op> <ver>
|
|
# @RETURN: 0 if any element of REPLACING_VERSIONS qualifies, 1 otherwise
|
|
# @DESCRIPTION:
|
|
# Compare each element <v> of REPLACING_VERSIONS with version <ver>
|
|
# using ver_test(). Return 0 (true) if any element <v> fulfills
|
|
# "ver_test <v> <op> <ver>", 1 (false) otherwise.
|
|
#
|
|
# Note: If REPLACING_VERSIONS is empty, 1 (false) is returned.
|
|
ver_replacing() {
|
|
case ${EBUILD_PHASE} in
|
|
pretend|setup|preinst|postinst) ;;
|
|
*) die "ver_replacing is meaningless in the ${EBUILD_PHASE} phase" ;;
|
|
esac
|
|
|
|
[[ $# -eq 2 ]] || die "Usage: ver_replacing <op> <ver>"
|
|
|
|
local v
|
|
for v in ${REPLACING_VERSIONS}; do
|
|
ver_test "${v}" "$@" && return 0
|
|
done
|
|
return 1
|
|
}
|