Gentoo Archives: gentoo-dev

From: "Ulrich Müller" <ulm@g.o>
To: gentoo-dev@l.g.o
Cc: "Ulrich Müller" <ulm@g.o>, Mart Raudsepp <leio@g.o>
Subject: [gentoo-dev] [PATCH] vala.eclass: Support EAPI 8
Date: Wed, 16 Feb 2022 18:39:58
Message-Id: 20220216183938.23347-1-ulm@gentoo.org
1 Function vala_src_prepare did not call eapply_user, so it could not be
2 used as a stand-alone phase function but must be called explicitly.
3 Rename it to vala_setup, which can be called either from pkg_setup or
4 from src_prepare. Add a trivial vala_src_prepare wrapper in existing
5 EAPIs, so that functionality there does not change.
6
7 Apparently, eutils and multilib eclasses are not used, therefore no
8 longer inherit them in EAPI 8.
9
10 Reviewed-by: Mart Raudsepp <leio@g.o>
11 Signed-off-by: Ulrich Müller <ulm@g.o>
12 ---
13 eclass/vala.eclass | 36 +++++++++++++++++++++++++-----------
14 1 file changed, 25 insertions(+), 11 deletions(-)
15
16 diff --git a/eclass/vala.eclass b/eclass/vala.eclass
17 index 677520748c62..0b5b786b8408 100644
18 --- a/eclass/vala.eclass
19 +++ b/eclass/vala.eclass
20 @@ -6,7 +6,7 @@
21 # gnome@g.o
22 # @AUTHOR:
23 # Alexandre Rostovtsev <tetromino@g.o>
24 -# @SUPPORTED_EAPIS: 6 7
25 +# @SUPPORTED_EAPIS: 6 7 8
26 # @BLURB: Sets up the environment for using a specific version of vala.
27 # @DESCRIPTION:
28 # This eclass sets up commonly used environment variables for using a specific
29 @@ -14,15 +14,17 @@
30 # packages whose build systems assume the existence of certain unversioned vala
31 # executables, pkgconfig files, etc., which Gentoo does not provide.
32 #
33 -# This eclass provides one phase function: src_prepare.
34 -
35 -case ${EAPI:-0} in
36 - [67]) inherit eutils multilib ;;
37 +# This eclass provides one phase function in EAPIs 6 and 7: src_prepare.
38 +
39 +case ${EAPI} in
40 + 6|7)
41 + inherit eutils multilib
42 + EXPORT_FUNCTIONS src_prepare
43 + ;;
44 + 8) ;;
45 *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
46 esac
47
48 -EXPORT_FUNCTIONS src_prepare
49 -
50 if [[ -z ${_VALA_ECLASS} ]] ; then
51 _VALA_ECLASS=1
52
53 @@ -103,14 +105,17 @@ vala_depend() {
54 # VALA_MAX_API_VERSION, VALA_MIN_API_VERSION, and VALA_USE_DEPEND.
55 vala_best_api_version() {
56 local u v
57 + local hv_opt="-b"
58 + [[ ${EAPI} == 6 ]] && hv_opt=""
59 +
60 u=$(_vala_use_depend)
61
62 for v in $(vala_api_versions); do
63 - has_version $([[ $EAPI == [1-6] ]] || echo -b) "dev-lang/vala:${v}${u}" && echo "${v}" && return
64 + has_version ${hv_opt} "dev-lang/vala:${v}${u}" && echo "${v}" && return
65 done
66 }
67
68 -# @FUNCTION: vala_src_prepare
69 +# @FUNCTION: vala_setup
70 # @USAGE: [--ignore-use] [--vala-api-version api_version]
71 # @DESCRIPTION:
72 # Sets up the environment variables and pkgconfig files for the
73 @@ -120,8 +125,10 @@ vala_best_api_version() {
74 # Is a no-op if called without --ignore-use when USE=-vala.
75 # Dies if the USE check is passed (or ignored) and a suitable vala
76 # version is not available.
77 -vala_src_prepare() {
78 +vala_setup() {
79 local p d valafoo version ignore_use
80 + local hv_opt="-b"
81 + [[ ${EAPI} == 6 ]] && hv_opt=""
82
83 while [[ $1 ]]; do
84 case $1 in
85 @@ -140,7 +147,7 @@ vala_src_prepare() {
86 fi
87
88 if [[ ${version} ]]; then
89 - has_version $([[ $EAPI == [1-6] ]] || echo -b) "dev-lang/vala:${version}" || die "No installed vala:${version}"
90 + has_version ${hv_opt} "dev-lang/vala:${version}" || die "No installed vala:${version}"
91 else
92 version=$(vala_best_api_version)
93 [[ ${version} ]] || die "No installed vala in $(vala_depend)"
94 @@ -175,4 +182,11 @@ vala_src_prepare() {
95 export PKG_CONFIG_PATH="${T}/pkgconfig:${PKG_CONFIG_PATH}"
96 }
97
98 +# @FUNCTION: vala_src_prepare
99 +# @DESCRIPTION:
100 +# Exported phase function in EAPIs 6 and 7. Calls vala_setup.
101 +if [[ ${EAPI} == [67] ]]; then
102 + vala_src_prepare() { vala_setup "$@"; }
103 +fi
104 +
105 fi
106 --
107 2.35.1

Replies

Subject Author
Re: [gentoo-dev] [PATCH] vala.eclass: Support EAPI 8 Mart Raudsepp <leio@g.o>