summaryrefslogtreecommitdiff
path: root/dev-scheme/guile-gi
diff options
context:
space:
mode:
Diffstat (limited to 'dev-scheme/guile-gi')
-rw-r--r--dev-scheme/guile-gi/Manifest4
-rw-r--r--dev-scheme/guile-gi/files/guile-gi-0.3.2-function-cast.patch89
-rw-r--r--dev-scheme/guile-gi/guile-gi-0.3.2-r100.ebuild64
-rw-r--r--dev-scheme/guile-gi/guile-gi-9999.ebuild40
4 files changed, 178 insertions, 19 deletions
diff --git a/dev-scheme/guile-gi/Manifest b/dev-scheme/guile-gi/Manifest
index 4a5183434a10..747bb99dfc2b 100644
--- a/dev-scheme/guile-gi/Manifest
+++ b/dev-scheme/guile-gi/Manifest
@@ -1,4 +1,6 @@
+AUX guile-gi-0.3.2-function-cast.patch 2489 BLAKE2B 7a607e6b7fa53fd7ad0bbf8161aea54b9de036df1b7f6b881c5cca7778e424c0f3090b7a65a59c21d0091591c8b2ba9d5530ded1f4c9b1ee1ab8959c03e1e63b SHA512 257485540f30c78935bbb0cb9ff68470b115c2b9969b8727fcb79bfeb4382a6df08550004633fe3a674f67aa33ae275bf73e8311589c80c48fbd1d5c6211b7d4
DIST guile-gi-0.3.2.tar.gz 350346 BLAKE2B 8680891e3a0854b2741a26847ad0f75262d83ba240caa6afc38765445477cd3d9b4abfecf0c2dc68b05c61efe6cdbde633c16d98cbb6db49e2727adfb83004c3 SHA512 88a58ac8c97a2bb0c9304183423b77831365706aafb9a98185a555b19783247aaf7bf80963a3b75090a9774a8360b3767583e8cdd8416fdad0d3c23973fb37c6
+EBUILD guile-gi-0.3.2-r100.ebuild 1205 BLAKE2B 000847f9c9fb2e67af4533dc1a8beb50fa269867ef48bcddc182c4054234c052b049cc4b4f5d5c8b611d6531d6fc4ad08e4d89f0b436d84fd96ee047b8d992b9 SHA512 e2d97bca342495c75258e3646f1adc2cc568c615d9767c26f5272d9c1986cf603154ac68d5fbd9cd8e4aa5e8ca81ccc694a2ec441361a6d1cff1c2f070199915
EBUILD guile-gi-0.3.2-r2.ebuild 1326 BLAKE2B 3de6889f185415946490ebc8d47d6143ac31db9c934f405144bf50e0a55563cc3110418c31b1a08eabcf75692c761e12c2612b3ba6703745a865f548dffab8db SHA512 791ca984a2c37941538de9091ac9b24ffc51f8cf3e79b46aa8d7d00ae3194ecd2c8d45d8b0a16210258ffa5c00daae389774b3e6efd49c6ca4e68c84ee50ba5a
-EBUILD guile-gi-9999.ebuild 1326 BLAKE2B 3de6889f185415946490ebc8d47d6143ac31db9c934f405144bf50e0a55563cc3110418c31b1a08eabcf75692c761e12c2612b3ba6703745a865f548dffab8db SHA512 791ca984a2c37941538de9091ac9b24ffc51f8cf3e79b46aa8d7d00ae3194ecd2c8d45d8b0a16210258ffa5c00daae389774b3e6efd49c6ca4e68c84ee50ba5a
+EBUILD guile-gi-9999.ebuild 1205 BLAKE2B 000847f9c9fb2e67af4533dc1a8beb50fa269867ef48bcddc182c4054234c052b049cc4b4f5d5c8b611d6531d6fc4ad08e4d89f0b436d84fd96ee047b8d992b9 SHA512 e2d97bca342495c75258e3646f1adc2cc568c615d9767c26f5272d9c1986cf603154ac68d5fbd9cd8e4aa5e8ca81ccc694a2ec441361a6d1cff1c2f070199915
MISC metadata.xml 930 BLAKE2B 6a48602d7421f891f2c6596b1e39725218febc0b49f00f9e1aa4c5b7b362505a050ccc6adfaf324d5122d11d0f890b6240d4bf6f3aa4c9428ee12cc9811b172a SHA512 c48c0021ccdd9e0e17c13f98c170986866a120bf70f56e74db19df99fca7cdfa245a264c92d017dbe259927e90d344fb28a9da4235403618e6970444a712df1e
diff --git a/dev-scheme/guile-gi/files/guile-gi-0.3.2-function-cast.patch b/dev-scheme/guile-gi/files/guile-gi-0.3.2-function-cast.patch
new file mode 100644
index 000000000000..74d325bf7c20
--- /dev/null
+++ b/dev-scheme/guile-gi/files/guile-gi-0.3.2-function-cast.patch
@@ -0,0 +1,89 @@
+https://bugs.gentoo.org/880955
+
+Based on https://github.com/spk121/guile-gi/commit/94144d0beffa96bf62c03bc71b498b94dafacc46
+
+--- a/src/gig_callback.c
++++ b/src/gig_callback.c
+@@ -296,6 +296,12 @@ callback_binding_inner(struct callback_binding_args *args)
+ return (void *)1;
+ }
+
++inline static void *
++callback_binding_inner_v(void *args)
++{
++ return callback_binding_inner(args);
++}
++
+ void
+ callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user_data)
+ {
+@@ -314,7 +320,7 @@ callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user_d
+ if (scm_is_true(scm_fluid_ref(gig_callback_thread_fluid)))
+ callback_binding_inner(&args);
+ else {
+- if (NULL == scm_with_guile(callback_binding_inner, &args))
++ if (NULL == scm_with_guile(callback_binding_inner_v, &args))
+ scm_c_eval_string("(quit EXIT_FAILURE)");
+ }
+ }
+@@ -365,6 +371,12 @@ c_callback_binding_inner(struct callback_binding_args *args)
+ return (void *)1;
+ }
+
++inline static void *
++c_callback_binding_inner_v(void *args)
++{
++ return c_callback_binding_inner(args);
++}
++
+ void
+ c_callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user_data)
+ {
+@@ -383,7 +395,7 @@ c_callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user
+ if (scm_is_true(scm_fluid_ref(gig_callback_thread_fluid)))
+ c_callback_binding_inner(&args);
+ else {
+- if (NULL == scm_with_guile(c_callback_binding_inner, &args))
++ if (NULL == scm_with_guile(c_callback_binding_inner_v, &args))
+ scm_c_eval_string("(quit EXIT_FAILURE)");
+ }
+ }
+@@ -692,10 +704,16 @@ callback_free(GigCallback *gcb)
+ g_free(gcb);
+ }
+
++inline static void
++callback_free_v(void *gcb)
++{
++ callback_free(gcb);
++}
++
+ static void
+ gig_fini_callback(void)
+ {
+ g_debug("Freeing callbacks");
+- g_slist_free_full(callback_list, (GDestroyNotify)callback_free);
++ g_slist_free_full(callback_list, (GDestroyNotify)callback_free_v);
+ callback_list = NULL;
+ }
+--- a/src/gig_type_private.c
++++ b/src/gig_type_private.c
+@@ -59,8 +59,14 @@ _boxed_funcs_free(GigBoxedFuncs *funcs)
+ g_free(funcs);
+ }
+
++inline static void
++_boxed_funcs_free_v(void *funcs)
++{
++ _boxed_funcs_free(funcs);
++}
++
+ void
+ _free_boxed_funcs()
+ {
+- g_slist_free_full(_boxed_funcs, (GDestroyNotify)_boxed_funcs_free);
++ g_slist_free_full(_boxed_funcs, (GDestroyNotify)_boxed_funcs_free_v);
+ }
+--
+2.46.0
+
diff --git a/dev-scheme/guile-gi/guile-gi-0.3.2-r100.ebuild b/dev-scheme/guile-gi/guile-gi-0.3.2-r100.ebuild
new file mode 100644
index 000000000000..1d232ddf9d51
--- /dev/null
+++ b/dev-scheme/guile-gi/guile-gi-0.3.2-r100.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GUILE_COMPAT=( 2-2 3-0 )
+inherit virtualx autotools guile
+
+DESCRIPTION="Bindings for GObject Introspection and libgirepository for Guile"
+HOMEPAGE="https://spk121.github.io/guile-gi/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/spk121/${PN}.git"
+else
+ SRC_URI="https://github.com/spk121/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+
+REQUIRED_USED="${GUILE_REQUIRED_USE}"
+
+DEPEND="
+ ${GUILE_DEPS}
+ dev-libs/gobject-introspection
+ x11-libs/gtk+:3[introspection]
+"
+RDEPEND="${DEPEND}"
+BDEPEND="sys-apps/texinfo"
+
+PATCHES=(
+ "${FILESDIR}"/guile-gi-0.3.2-function-cast.patch
+)
+
+src_prepare() {
+ guile_src_prepare
+
+ eautoreconf
+}
+
+src_configure() {
+ guile_foreach_impl econf --enable-introspection=yes
+}
+
+src_compile() {
+ my_compile() {
+ mkdir test || die
+ default
+ }
+ guile_foreach_impl my_compile
+}
+
+src_test() {
+ guile_foreach_impl virtx default
+}
+
+src_install() {
+ guile_src_install
+
+ mv "${ED}"/usr/share/doc/${PN} "${ED}"/usr/share/doc/${PF} || die
+ find "${ED}" -type f -name '*.la' -delete || die
+}
diff --git a/dev-scheme/guile-gi/guile-gi-9999.ebuild b/dev-scheme/guile-gi/guile-gi-9999.ebuild
index 75b8c4278d3a..1d232ddf9d51 100644
--- a/dev-scheme/guile-gi/guile-gi-9999.ebuild
+++ b/dev-scheme/guile-gi/guile-gi-9999.ebuild
@@ -1,9 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit virtualx autotools
+GUILE_COMPAT=( 2-2 3-0 )
+inherit virtualx autotools guile
DESCRIPTION="Bindings for GObject Introspection and libgirepository for Guile"
HOMEPAGE="https://spk121.github.io/guile-gi/"
@@ -19,42 +20,45 @@ fi
LICENSE="GPL-3"
SLOT="0"
+REQUIRED_USED="${GUILE_REQUIRED_USE}"
+
DEPEND="
- >=dev-scheme/guile-2.0.9:=
+ ${GUILE_DEPS}
dev-libs/gobject-introspection
x11-libs/gtk+:3[introspection]
"
RDEPEND="${DEPEND}"
BDEPEND="sys-apps/texinfo"
-# guile generates ELF files without use of C or machine code
-# It's a portage's false positive. bug #677600
-QA_PREBUILT='*[.]go'
+PATCHES=(
+ "${FILESDIR}"/guile-gi-0.3.2-function-cast.patch
+)
src_prepare() {
- default
-
- # http://debbugs.gnu.org/cgi/bugreport.cgi?bug=38112
- find "${S}" -name "*.scm" -exec touch {} + || die
+ guile_src_prepare
eautoreconf
}
src_configure() {
- econf --disable-static --enable-introspection=yes
+ guile_foreach_impl econf --enable-introspection=yes
+}
+
+src_compile() {
+ my_compile() {
+ mkdir test || die
+ default
+ }
+ guile_foreach_impl my_compile
}
src_test() {
- virtx default
+ guile_foreach_impl virtx default
}
src_install() {
- default
+ guile_src_install
- mv "${D}"/usr/share/doc/${PN} "${D}"/usr/share/doc/${PF} || die
+ mv "${ED}"/usr/share/doc/${PN} "${ED}"/usr/share/doc/${PF} || die
find "${ED}" -type f -name '*.la' -delete || die
-
- # Workaround llvm-strip problem of mangling guile ELF debug
- # sections. Bug https://bugs.gentoo.org/905898
- dostrip -x /usr/$(get_libdir)/guile
}