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