From 07ec8ddbf4470e2ccba2f02eb7058df64ae491a3 Mon Sep 17 00:00:00 2001 From: zenobit Date: Thu, 19 Oct 2023 21:54:42 +0200 Subject: [PATCH 1/2] geany: update to 2.0.0 --- srcpkgs/geany/patches/sidebar.patch | 53 +++++++++++++++++++++++++++++ srcpkgs/geany/template | 17 +++++---- 2 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 srcpkgs/geany/patches/sidebar.patch diff --git a/srcpkgs/geany/patches/sidebar.patch b/srcpkgs/geany/patches/sidebar.patch new file mode 100644 index 0000000000000..d334cfd9d43b0 --- /dev/null +++ b/srcpkgs/geany/patches/sidebar.patch @@ -0,0 +1,53 @@ +From a7b4dbb144c8dfa788a087298a0b47183e92a107 Mon Sep 17 00:00:00 2001 +From: 6t8k <58048945+6t8k@users.noreply.github.com> +Date: Sun, 5 Nov 2023 17:01:31 +0100 +Subject: [PATCH] Skip `tests/test_sidebar` if GTK initialisation fails + +This may happen in headless environments. + +The return value of `gtk_init_check` was not examined before; according +to [1], "calling any GTK function or instantiating any GTK type after +this function returns FALSE results in undefined behavior." + +The value 77 can be returned to tell Automake and Meson that the test +was skipped.[2][3][4] + +Fixes #3674 + +[1] https://docs.gtk.org/gtk3/func.init_check.html +[2] https://www.gnu.org/software/automake/manual/automake.html#index-Exit-status-77_002c-special-interpretation +[3] https://docs.gtk.org/glib/func.test_run.html +[4] https://mesonbuild.com/Unit-tests.html#skipped-tests-and-hard-errors +--- + tests/test_sidebar.c | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +diff --git a/tests/test_sidebar.c b/tests/test_sidebar.c +index 9659dc72e7..c03d1aa649 100644 +--- a/tests/test_sidebar.c ++++ b/tests/test_sidebar.c +@@ -137,12 +137,21 @@ void test_sidebar_openfiles_tree(void) + + int main(int argc, char **argv) + { +- g_test_init(&argc, &argv, NULL); +- /* Not sure if we can really continue without DISPLAY. Fake X display perhaps? ++ /* In headless environments that do not provide a virtual display, ++ * GTK initialisation is expected to fail and gtk_init_check() ++ * will return FALSE. Calling any GTK function or instantiating ++ * any GTK type afterwards results in undefined behavior. + * +- * This test seems to work, at least. ++ * By returning 77, we can tell test harnesses compatible with ++ * the GNU standard approach to regard the test as skipped. + */ +- gtk_init_check(&argc, &argv); ++ if (! gtk_init_check(&argc, &argv)) ++ { ++ g_test_message("GTK initialization failed; skipping. Running inside a headless environment?"); ++ return 77; ++ } ++ ++ g_test_init(&argc, &argv, NULL); + + main_init_headless(); diff --git a/srcpkgs/geany/template b/srcpkgs/geany/template index aee031b264141..0cf1fb9c6df1d 100644 --- a/srcpkgs/geany/template +++ b/srcpkgs/geany/template @@ -1,20 +1,23 @@ # Template file for 'geany' pkgname=geany -version=1.38 +version=2.0.0 revision=1 build_style=gnu-configure -configure_args="--enable-vte --enable-gtk3" -hostmakedepends="pkg-config libtool intltool" -makedepends="gtk+3-devel" +configure_args="--host=${arch}" +hostmakedepends="pkg-config automake autoconf intltool libtool python3-docutils gettext-devel-tools" +makedepends="gtk+3-devel libglib-devel" depends="hicolor-icon-theme desktop-file-utils" short_desc="Fast and lightweight IDE" maintainer="Benjamín Albiñana " license="GPL-2.0-or-later" homepage="https://www.geany.org" changelog="https://raw.githubusercontent.com/geany/geany/master/NEWS" -distfiles="https://download.${pkgname}.org/${pkgname}-${version}.tar.bz2" -checksum=abff176e4d48bea35ee53037c49c82f90b6d4c23e69aed6e4a5ca8ccd3aad546 -python_version=3 +distfiles="https://github.com/geany/geany/archive/refs/tags/${version}.tar.gz" +checksum=a744ab9ae3e58b371de4b50990c44227c499f82e2a8ee6753307ef107748e4df + +pre_configure() { + ./autogen.sh --host "${arch}" +} geany-devel_package() { depends="libglib-devel gtk+3-devel ${sourcepkg}>=${version}_${revision}" From c0295de41e49368a9e90c37d30b254e693fea6f1 Mon Sep 17 00:00:00 2001 From: zenobit Date: Thu, 19 Oct 2023 21:54:49 +0200 Subject: [PATCH 2/2] geany-plugins: update to 2.0.0 --- ...ebar-Simplify-libgit2-version-checks.patch | 49 ------- ...hangebar-Add-support-for-libgit2-1.4.patch | 124 ------------------ srcpkgs/geany-plugins/template | 8 +- 3 files changed, 4 insertions(+), 177 deletions(-) delete mode 100644 srcpkgs/geany-plugins/patches/0001-git-changebar-Simplify-libgit2-version-checks.patch delete mode 100644 srcpkgs/geany-plugins/patches/0002-git-changebar-Add-support-for-libgit2-1.4.patch diff --git a/srcpkgs/geany-plugins/patches/0001-git-changebar-Simplify-libgit2-version-checks.patch b/srcpkgs/geany-plugins/patches/0001-git-changebar-Simplify-libgit2-version-checks.patch deleted file mode 100644 index 29d3ef78fd90f..0000000000000 --- a/srcpkgs/geany-plugins/patches/0001-git-changebar-Simplify-libgit2-version-checks.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 668f5d07eef16e227402eab09141c738b315d94b Mon Sep 17 00:00:00 2001 -From: Colomban Wendling -Date: Sun, 5 Jun 2022 23:11:20 +0200 -Subject: [PATCH 1/2] git-changebar: Simplify libgit2 version checks - -Introduce a custom macro for libgit2 version checks for them to be both -easier to read and write. ---- - git-changebar/src/gcb-plugin.c | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/git-changebar/src/gcb-plugin.c b/git-changebar/src/gcb-plugin.c -index f8ce20cd..bee8c865 100644 ---- a/git-changebar/src/gcb-plugin.c -+++ b/git-changebar/src/gcb-plugin.c -@@ -32,11 +32,19 @@ - #include - #include - --#if ! defined (LIBGIT2_VER_MINOR) || ( (LIBGIT2_VER_MAJOR == 0) && (LIBGIT2_VER_MINOR < 22) ) -+#ifdef LIBGIT2_VER_MINOR -+# define CHECK_LIBGIT2_VERSION(MAJOR, MINOR) \ -+ ((LIBGIT2_VER_MAJOR == (MAJOR) && LIBGIT2_VER_MINOR >= (MINOR)) || \ -+ LIBGIT2_VER_MAJOR > (MAJOR)) -+#else /* ! defined(LIBGIT2_VER_MINOR) */ -+# define CHECK_LIBGIT2_VERSION(MAJOR, MINOR) 0 -+#endif -+ -+#if ! CHECK_LIBGIT2_VERSION(0, 22) - # define git_libgit2_init git_threads_init - # define git_libgit2_shutdown git_threads_shutdown - #endif --#if ! defined (LIBGIT2_VER_MINOR) || ( (LIBGIT2_VER_MAJOR == 0) && (LIBGIT2_VER_MINOR < 23) ) -+#if ! CHECK_LIBGIT2_VERSION(0, 23) - /* 0.23 added @p binary_cb */ - # define git_diff_buffers(old_buffer, old_len, old_as_path, \ - new_buffer, new_len, new_as_path, options, \ -@@ -45,7 +53,7 @@ - new_buffer, new_len, new_as_path, options, \ - file_cb, hunk_cb, line_cb, payload) - #endif --#if ! defined (LIBGIT2_VER_MINOR) || ( (LIBGIT2_VER_MAJOR == 0) && (LIBGIT2_VER_MINOR < 28) ) -+#if ! CHECK_LIBGIT2_VERSION(0, 28) - # define git_buf_dispose git_buf_free - # define git_error_last giterr_last - #endif --- -2.38.0 - diff --git a/srcpkgs/geany-plugins/patches/0002-git-changebar-Add-support-for-libgit2-1.4.patch b/srcpkgs/geany-plugins/patches/0002-git-changebar-Add-support-for-libgit2-1.4.patch deleted file mode 100644 index 3de6e09df7cc3..0000000000000 --- a/srcpkgs/geany-plugins/patches/0002-git-changebar-Add-support-for-libgit2-1.4.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 5d9f1bc6d010e6b4c6a21af8a39b90922f89a82c Mon Sep 17 00:00:00 2001 -From: Colomban Wendling -Date: Sun, 5 Jun 2022 23:22:59 +0200 -Subject: [PATCH 2/2] git-changebar: Add support for libgit2 1.4 - -The buffer API changed a lot in libgit2 1.4, so compatibility is a bit -nastier than one could hope for. - -Fixes #1164. ---- - git-changebar/src/gcb-plugin.c | 76 ++++++++++++++++++++++++---------- - 1 file changed, 54 insertions(+), 22 deletions(-) - -diff --git a/git-changebar/src/gcb-plugin.c b/git-changebar/src/gcb-plugin.c -index bee8c865..76208cd0 100644 ---- a/git-changebar/src/gcb-plugin.c -+++ b/git-changebar/src/gcb-plugin.c -@@ -219,30 +219,19 @@ static const struct { - }; - - --/* workaround https://github.com/libgit2/libgit2/pull/3187 */ --static int --gcb_git_buf_grow (git_buf *buf, -- size_t target_size) --{ -- if (buf->asize == 0) { -- if (target_size == 0) { -- target_size = buf->size; -- } -- if ((target_size & 7) == 0) { -- target_size++; -- } -- } -- return git_buf_grow (buf, target_size); --} --#define git_buf_grow gcb_git_buf_grow -- - static void - buf_zero (git_buf *buf) - { - if (buf) { - buf->ptr = NULL; - buf->size = 0; -+#if ! CHECK_LIBGIT2_VERSION(1, 4) - buf->asize = 0; -+#else -+ /* we don't really need this field, but the documentation states that all -+ * fields should be set to 0, so fill it as well */ -+ buf->reserved = 0; -+#endif - } - } - -@@ -256,6 +245,52 @@ clear_cached_blob_contents (void) - G_blob_contents_tag = 0; - } - -+/* similar to old git_blob_filtered_content() but makes sure the caller owns -+ * the data in the output buffer -- and uses a boolean return */ -+static gboolean -+get_blob_contents (git_buf *out, -+ git_blob *blob, -+ const char *as_path, -+ int check_for_binary_data) -+{ -+/* libgit2 1.4 changed buffer API quite a bit */ -+#if ! CHECK_LIBGIT2_VERSION(1, 4) -+ gboolean success = TRUE; -+ -+ if (git_blob_filtered_content (out, blob, as_path, -+ check_for_binary_data) != 0) -+ return FALSE; -+ -+ /* Workaround for https://github.com/libgit2/libgit2/pull/3187 -+ * We want to own the buffer, which git_buf_grow(buf, 0) was supposed to do, -+ * but there is a corner case where it doesn't do what it should and -+ * truncates the buffer contents, so we fix this manually. */ -+ if (out->asize == 0) { -+ size_t target_size = out->size; -+ if ((target_size & 7) == 0) { -+ target_size++; -+ } -+ success = (git_buf_grow (out, target_size) == 0); -+ } -+ -+ return success; -+#else /* libgit2 >= 1.4 */ -+ /* Here we can assume we will always get a buffer we own (at least as of -+ * 2022-06-05 it is the case), so there's no need for a pendent to the -+ * previous git_buf_grow() shenanigans. -+ * This code path does the same as the older git_blob_filtered_content() -+ * but with non-deprecated API */ -+ git_blob_filter_options opts = GIT_BLOB_FILTER_OPTIONS_INIT; -+ -+ if (check_for_binary_data) -+ opts.flags |= GIT_BLOB_FILTER_CHECK_FOR_BINARY; -+ else -+ opts.flags &= ~GIT_BLOB_FILTER_CHECK_FOR_BINARY; -+ -+ return git_blob_filter(out, blob, as_path, &opts) == 0; -+#endif -+} -+ - /* get the file blob for @relpath at HEAD */ - static gboolean - repo_get_file_blob_contents (git_repository *repo, -@@ -279,11 +314,8 @@ repo_get_file_blob_contents (git_repository *repo, - git_blob *blob; - - if (git_blob_lookup (&blob, repo, git_tree_entry_id (entry)) == 0) { -- if (git_blob_filtered_content (contents, blob, relpath, -- check_for_binary_data) == 0 && -- git_buf_grow (contents, 0) == 0) { -- success = TRUE; -- } -+ success = get_blob_contents (contents, blob, relpath, -+ check_for_binary_data); - git_blob_free (blob); - } - git_tree_entry_free (entry); --- -2.38.0 - diff --git a/srcpkgs/geany-plugins/template b/srcpkgs/geany-plugins/template index f0bb0b04ed80b..480fccc062350 100644 --- a/srcpkgs/geany-plugins/template +++ b/srcpkgs/geany-plugins/template @@ -1,12 +1,12 @@ # Template file for 'geany-plugins' pkgname=geany-plugins -version=1.38.0 -revision=3 +version=2.0.0 +revision=1 build_style=gnu-configure configure_args="--enable-all-plugins --disable-devhelp --disable-webhelper --disable-debugger --disable-geanypy --disable-multiterm" hostmakedepends="automake gettext-devel intltool libtool pkg-config vala - glib-devel" + glib-devel ncurses-devel" makedepends="geany-devel lua51-devel ctpl-devel zlib-devel gpgme-devel enchant2-devel libgit2-devel libsoup-devel gtkspell-devel webkit2gtk-devel vte3-devel" @@ -16,7 +16,7 @@ license="GPL-2.0-or-later" homepage="http://plugins.geany.org" changelog="https://raw.githubusercontent.com/geany/geany-plugins/master/NEWS" distfiles="https://github.com/geany/${pkgname}/archive/${version}.tar.gz" -checksum=86d2fe05290136d020b0d22f849a1aaa74b83cb49b767ae2dc19aaedcdf3d469 +checksum=a706c37cd6441a1418a2538857a503550d70860e913f3aa9a66f9fb1a0b26489 pre_configure() { NOCONFIGURE=1 ./autogen.sh