dev-util/anjuta: EAPI 8

- drop stable keywords
  - Add new vala support
  - Fix autoconf-2.70 support (bug #817017)

Closes: https://bugs.gentoo.org/817017
Signed-off-by: Matt Turner <mattst88@gentoo.org>
This commit is contained in:
Matt Turner
2022-04-02 19:16:29 -07:00
parent 6be3a318aa
commit 7db644f137
4 changed files with 177 additions and 15 deletions

View File

@@ -1,23 +1,22 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
GNOME2_LA_PUNT="yes"
PYTHON_COMPAT=( python3_{8..9} )
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
# libanjuta-language-vala.so links to a specific slot of libvala; we want to
# avoid automagic behavior.
VALA_MIN_API_VERSION="0.46" # 3.34.0 upstream release supports up to 0.44, but 0.46 vala LTS support was added without any other adjustments post-release; 0.48 will need patches
VALA_MIN_API_VERSION="0.56"
VALA_MAX_API_VERSION="${VALA_MIN_API_VERSION}"
# We inherit autotools explicitly because GNOME2_EAUTORECONF is set only conditionally later, so gnome2.eclass doesn't do it for us
inherit autotools gnome2 flag-o-matic readme.gentoo-r1 python-single-r1 vala
GNOME2_EAUTORECONF="yes"
inherit gnome2 flag-o-matic readme.gentoo-r1 python-single-r1 vala
DESCRIPTION="A versatile IDE for GNOME"
HOMEPAGE="https://wiki.gnome.org/Apps/Anjuta"
HOMEPAGE="https://wiki.gnome.org/Apps/Anjuta https://gitlab.gnome.org/GNOME/anjuta/"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="amd64 ~ppc ~sparc x86"
KEYWORDS="~amd64 ~ppc ~sparc ~x86"
IUSE="debug devhelp glade +introspection subversion terminal test vala"
RESTRICT="!test? ( test )"
@@ -72,7 +71,6 @@ DEPEND="${COMMON_DEPEND}
sys-devel/flex
>=sys-devel/gettext-0.17
virtual/pkgconfig
!!dev-libs/gnome-build
test? (
app-text/docbook-xml-dtd:4.1.2
app-text/docbook-xml-dtd:4.5 )
@@ -82,6 +80,12 @@ DEPEND="${COMMON_DEPEND}
"
# yelp-tools, gi-common and gnome-common are required by eautoreconf
PATCHES=(
"${FILESDIR}"/${PV}-Add-new-vala-support.patch
"${FILESDIR}"/${PV}-autoconf-2.70.patch
"${FILESDIR}"/${PV}-prefer-newer-vala.patch
)
pkg_setup() {
python-single-r1_pkg_setup
}
@@ -95,10 +99,6 @@ will need to:
1. Go to 'Build' -> 'Configure project'
2. Add 'VALAC=/usr/bin/valac-X.XX' (respecting quotes) to
'Configure options'."
# Without removing other vala versions, it ends up picking the oldest vala available, not newest
sed -i -e "s/\[0.44\], \[0.42\], \[0.40\], \[0.38\], \[0.36\], \[0.34\], \[0.32\], \[0.30\], \[0.28\], \[0.26\], \[0.24\], \[0.22\], \[0.20\], \[0.18\]/[${VALA_MAX_API_VERSION}]/" configure.ac || die
GNOME2_EAUTORECONF="yes"
fi
# COPYING is used in Anjuta's help/about entry
@@ -111,7 +111,7 @@ will need to:
sed -e '/SUBDIRS =/ s/benchmark//' \
-i plugins/symbol-db/Makefile.{am,in} || die
use vala && vala_src_prepare
use vala && vala_setup
gnome2_src_prepare
}

View File

@@ -0,0 +1,132 @@
This is a combination of 7 upstream commits:
build: Allow building with vala 0.46 and drop support for 0.30 and earlier
language-support-vala: Support for vala 0.48 API
build: Allow building with vala 0.48
build: Allow building with vala 0.50
build: Allow building with vala 0.50 and 0.52
build: Allow building with vala 0.54
build: Allow building with vala 0.56
---
configure.ac | 4 +--
plugins/language-support-vala/plugin.vala | 37 ++++++++++++++++++-----
2 files changed, 31 insertions(+), 10 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3b4c99504..4fbad5392 100644
--- a/configure.ac
+++ b/configure.ac
@@ -338,7 +338,7 @@ if test "$user_disabled_vala" = 1; then
else
AC_MSG_RESULT(no)
AC_MSG_CHECKING(if libvala is available)
- m4_foreach([VERSION], [[0.44], [0.42], [0.40], [0.38], [0.36], [0.34], [0.32], [0.30], [0.28], [0.26], [0.24], [0.22], [0.20], [0.18]],
+ m4_foreach_w([VERSION], [0.56 0.54 0.52 0.50 0.48 0.46 0.44 0.42 0.40 0.38 0.36 0.34 0.32],
[PKG_CHECK_EXISTS([ libvala-VERSION ],
[ valaver="-VERSION" ])
])
@@ -350,7 +350,7 @@ else
else
AC_MSG_RESULT(no)
enable_vala="no"
- VALA_REQUIRED=0.18.0
+ VALA_REQUIRED=0.32.0
fi
AC_SUBST(LIBVALA)
fi
diff --git a/plugins/language-support-vala/plugin.vala b/plugins/language-support-vala/plugin.vala
index 13d35fec4..d94634c7f 100644
--- a/plugins/language-support-vala/plugin.vala
+++ b/plugins/language-support-vala/plugin.vala
@@ -78,7 +78,11 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
void init_context () {
context = new Vala.CodeContext();
+#if VALA_0_50
+ context.set_target_profile (Vala.Profile.GOBJECT);
+#else
context.profile = Vala.Profile.GOBJECT;
+#endif
context.report = report;
report.clear_error_indicators ();
@@ -414,11 +418,19 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
builder.append_printf ("%s sender", widget.get_full_name ());
foreach (var param in sig.get_parameters ()) {
+#if VALA_0_48
+ builder.append_printf (", %s %s", param.variable_type.type_symbol.get_full_name (), param.name);
+#else
builder.append_printf (", %s %s", param.variable_type.data_type.get_full_name (), param.name);
+#endif
}
} else {
foreach (var param in sig.get_parameters ()) {
+#if VALA_0_48
+ builder.append_printf ("%s %s, ", param.variable_type.type_symbol.get_full_name (), param.name);
+#else
builder.append_printf ("%s %s, ", param.variable_type.data_type.get_full_name (), param.name);
+#endif
}
builder.append_printf ("%s sender", widget.get_full_name ());
@@ -563,6 +575,15 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
}
return matching_symbols;
}
+
+ inline List<Vala.Symbol> symbol_lookup_inherited_for_type (Vala.DataType data_type, string name, bool prefix_match, bool invocation = false) {
+#if VALA_0_48
+ return symbol_lookup_inherited (data_type.type_symbol, name, prefix_match, invocation);
+#else
+ return symbol_lookup_inherited (data_type.data_type, name, prefix_match, invocation);
+#endif
+ }
+
List<Vala.Symbol> symbol_lookup_inherited (Vala.Symbol? sym, string name, bool prefix_match, bool invocation = false) {
List<Vala.Symbol> result = null;
@@ -580,32 +601,32 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
}
if (invocation && sym is Vala.Method) {
var func = (Vala.Method) sym;
- result.concat (symbol_lookup_inherited (func.return_type.data_type, name, prefix_match));
+ result.concat (symbol_lookup_inherited_for_type (func.return_type, name, prefix_match));
} else if (sym is Vala.Class) {
var cl = (Vala.Class) sym;
foreach (var base_type in cl.get_base_types ()) {
- result.concat (symbol_lookup_inherited (base_type.data_type, name, prefix_match));
+ result.concat (symbol_lookup_inherited_for_type (base_type, name, prefix_match));
}
} else if (sym is Vala.Struct) {
var st = (Vala.Struct) sym;
- result.concat (symbol_lookup_inherited (st.base_type.data_type, name, prefix_match));
+ result.concat (symbol_lookup_inherited_for_type (st.base_type, name, prefix_match));
} else if (sym is Vala.Interface) {
var iface = (Vala.Interface) sym;
foreach (var prerequisite in iface.get_prerequisites ()) {
- result.concat (symbol_lookup_inherited (prerequisite.data_type, name, prefix_match));
+ result.concat (symbol_lookup_inherited_for_type (prerequisite, name, prefix_match));
}
} else if (sym is Vala.LocalVariable) {
var variable = (Vala.LocalVariable) sym;
- result.concat (symbol_lookup_inherited (variable.variable_type.data_type, name, prefix_match));
+ result.concat (symbol_lookup_inherited_for_type (variable.variable_type, name, prefix_match));
} else if (sym is Vala.Field) {
var field = (Vala.Field) sym;
- result.concat (symbol_lookup_inherited (field.variable_type.data_type, name, prefix_match));
+ result.concat (symbol_lookup_inherited_for_type (field.variable_type, name, prefix_match));
} else if (sym is Vala.Property) {
var prop = (Vala.Property) sym;
- result.concat (symbol_lookup_inherited (prop.property_type.data_type, name, prefix_match));
+ result.concat (symbol_lookup_inherited_for_type (prop.property_type, name, prefix_match));
} else if (sym is Vala.Parameter) {
var fp = (Vala.Parameter) sym;
- result.concat (symbol_lookup_inherited (fp.variable_type.data_type, name, prefix_match));
+ result.concat (symbol_lookup_inherited_for_type (fp.variable_type, name, prefix_match));
}
return result;
--
2.35.1

View File

@@ -0,0 +1,15 @@
https://gitlab.gnome.org/GNOME/anjuta/-/merge_requests/13
diff --git a/configure.ac b/configure.ac
index c637f9cf3..4b101c35e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -85,8 +85,6 @@ case "$YACC" in
AC_MSG_ERROR(bison is required)
;;
esac
-AC_LANG([C])
-AC_LANG([C++])
AC_PROG_CXX
AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],,
AC_MSG_ERROR([C++ Compiler required to compile Anjuta]))

View File

@@ -0,0 +1,15 @@
https://gitlab.gnome.org/GNOME/anjuta/-/merge_requests/14
diff --git a/configure.ac b/configure.ac
index c637f9cf3..b34e103b2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -338,7 +338,7 @@ if test "$user_disabled_vala" = 1; then
else
AC_MSG_RESULT(no)
AC_MSG_CHECKING(if libvala is available)
- m4_foreach_w([VERSION], [0.56 0.54 0.52 0.50 0.48 0.46 0.44 0.42 0.40 0.38 0.36 0.34 0.32],
+ m4_foreach_w([VERSION], [0.32 0.34 0.36 0.38 0.40 0.42 0.44 0.46 0.48 0.50 0.52 0.54 0.56],
[PKG_CHECK_EXISTS([ libvala-VERSION ],
[ valaver="-VERSION" ])
])