commit:     2de6636b83ae5648353fbb5fbdc8d1c13a4185d8
Author:     Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
AuthorDate: Thu Oct 16 14:42:19 2025 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Fri Oct 17 14:20:30 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=2de6636b

crystal-utils.eclass: support setting minimum and maximum version

Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq.in>

 eclass/crystal-utils.eclass | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/eclass/crystal-utils.eclass b/eclass/crystal-utils.eclass
index fa57f3b801..74a25e4cce 100644
--- a/eclass/crystal-utils.eclass
+++ b/eclass/crystal-utils.eclass
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: crystal-utils.eclass
@@ -26,16 +26,34 @@ _CRYSTAL_UTILS_ECLASS=1
 
 inherit edo flag-o-matic multiprocessing
 
+# @ECLASS_VARIABLE: CRYSTAL_MAX_VER
+# @DEFAULT_UNSET
+# @PRE_INHERIT
+# @DESCRIPTION:
+# Highest Crystal version supported by the package. If unset, no upper bound
+# is assumed.
+
+# @ECLASS_VARIABLE: CRYSTAL_MIN_VER
+# @PRE_INHERIT
+# @DESCRIPTION:
+# Lowest Crystal version supported by the package.
+: "${CRYSTAL_MIN_VER:=1.16.3}"
+
 # @ECLASS_VARIABLE: CRYSTAL_DEPS
 # @OUTPUT_VARIABLE
 # @DESCRIPTION:
 # This is an eclass-generated Crystal dependency string.
 CRYSTAL_DEPS="
        || (
-               dev-lang/crystal
-               dev-lang/crystal-bin
+               >=dev-lang/crystal-${CRYSTAL_MIN_VER}
+               >=dev-lang/crystal-bin-${CRYSTAL_MIN_VER}
        )
-"
+${CRYSTAL_MAX_VER:+\
+       || (
+               <=dev-lang/crystal-${CRYSTAL_MAX_VER}
+               <=dev-lang/crystal-bin-${CRYSTAL_MAX_VER}
+       )
+}"
 
 # @ECLASS_VARIABLE: SHARDS_DEPS
 # @OUTPUT_VARIABLE

Reply via email to