• [gentoo-dev] [PATCH] eapi9-ver.eclass: New eclass

    From =?UTF-8?q?Ulrich=20M=C3=BCller?=@21:1/5 to All on Mon Feb 10 20:20:01 2025
    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>
    ---
    eclass/eapi9-ver.eclass | 50 +++++++++++++++++++++++++++++++++++++++++
    1 file changed, 50 insertions(+)
    create mode 100644 eclass/eapi9-ver.eclass

    diff --git a/eclass/eapi9-ver.eclass b/eclass/eapi9-ver.eclass
    new file mode 100644
    index 000000000000..9908fec37de8
    --- /dev/null
    +++ b/eclass/eapi9-ver.eclass
    @@ -0,0 +1,50 @@
    +# 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