diff options
Diffstat (limited to 'dev-scheme/guile-gi')
-rw-r--r-- | dev-scheme/guile-gi/Manifest | 4 | ||||
-rw-r--r-- | dev-scheme/guile-gi/files/guile-gi-0.3.2-function-cast.patch | 89 | ||||
-rw-r--r-- | dev-scheme/guile-gi/guile-gi-0.3.2-r100.ebuild | 64 | ||||
-rw-r--r-- | dev-scheme/guile-gi/guile-gi-9999.ebuild | 40 |
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 } |