diff --git a/SOURCES/0001-build-ensure-access-to-resources-in-corelib-build.patch b/SOURCES/0001-build-ensure-access-to-resources-in-corelib-build.patch new file mode 100644 index 0000000..48cebe1 --- /dev/null +++ b/SOURCES/0001-build-ensure-access-to-resources-in-corelib-build.patch @@ -0,0 +1,147 @@ +From fa324fc228691cd2b1aa86dbbde43f37a5dd7758 Mon Sep 17 00:00:00 2001 +From: Christian Hergert +Date: Sun, 7 Mar 2021 08:54:15 -0800 +Subject: [PATCH 1/1] build: ensure access to resources in corelib build + +This should help with some transient build failures in dependent projects. +--- + gtksourceview/meson.build | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/gtksourceview/meson.build b/gtksourceview/meson.build +index fd080a9c..b6192604 100644 +--- a/gtksourceview/meson.build ++++ b/gtksourceview/meson.build +@@ -145,122 +145,123 @@ core_enums_header = ''' + + #if !defined (GTK_SOURCE_H_INSIDE) && !defined (GTK_SOURCE_COMPILATION) + # error "Only can be included directly." + #endif + + #include + ''' + + core_enums = gnome.mkenums_simple('gtksource-enumtypes', + sources: core_public_h, + identifier_prefix: 'GtkSource', + symbol_prefix: 'gtk_source', + header_prefix: core_enums_header, + decorator: 'GTK_SOURCE_ENUM_EXTERN', + install_header: true, + install_dir: join_paths(pkgincludedir, 'gtksourceview'), + ) + + version_h = configuration_data() + version_h.set('GTK_SOURCE_MAJOR_VERSION', version_major) + version_h.set('GTK_SOURCE_MINOR_VERSION', version_minor) + version_h.set('GTK_SOURCE_MICRO_VERSION', version_micro) + + gtksourceversion_h = configure_file( + input: 'gtksourceversion.h.in', + output: 'gtksourceversion.h', + configuration: version_h, + install_dir: join_paths(pkgincludedir, 'gtksourceview'), + ) + ++gtksource_res = gnome.compile_resources( ++ 'gtksourceview-gresources', ++ 'gtksourceview.gresource.xml' ++) ++ + core_sources = [ + core_public_c, + core_private_c, + core_enums, + gtksourceversion_h, + core_marshallers, ++ gtksource_res, + ] + + install_headers( + core_public_h, + install_dir: join_paths(pkgincludedir, 'gtksourceview'), + ) + + core_enums_h = core_enums.get(1) + + # Unfortunately, Visual Studio builds must build the core + # sources twice, once for the GtkSourceView DLL, and once for + # the tests (static core lib), so that we can ensure that + # all the items from the core sources are properly linked into + # the final GtkSourceView DLL and exported from it. + core_lib = static_library(package_string + 'core', core_sources, + include_directories: gtksourceview_include_dirs, + dependencies: core_deps, + c_args: core_c_args, + install: false + ) + + core_dep = declare_dependency( + link_with: core_lib, + include_directories: rootdir, + dependencies: core_deps, + sources: [core_enums_h] + ) + + gtksource_deps = [ + core_dep, + ] + + gtksource_libs = [core_lib] + + extra_public_sources = [] + + subdir('completion-providers') + +-gtksource_res = gnome.compile_resources( +- 'gtksourceview-gresources', +- 'gtksourceview.gresource.xml' +-) +- + + # We can't use the static libs on Visual Studio builds + # to form our DLL here directly, so we must use + # extract_all_objects() to extract all the core and word + # completion provider objects that we previously built + # into static .lib's and link them into the main DLL + # instead + gtksource_objs = [] + foreach int_lib : gtksource_libs + gtksource_objs += int_lib.extract_all_objects() + endforeach + +-gtksource_lib = shared_library(package_string, gtksource_res, ++gtksource_lib = shared_library(package_string, + version: lib_version, + darwin_versions: lib_osx_version, + include_directories: gtksourceview_include_dirs, + dependencies: cc.get_id() == 'msvc' ? core_deps : gtksource_deps, + objects: cc.get_id() == 'msvc' ? gtksource_objs : [], + link_whole: cc.get_id() == 'msvc' ? [] : gtksource_libs, + c_args: core_c_args, + link_args: release_link_args, + install: true, + gnu_symbol_visibility: 'hidden', + ) + + gtksource_dep_sources = [ + core_enums_h, + ] + + if generate_gir + gtksource_gir_sources = [ + core_public_c, + core_public_h, + core_enums_h, + extra_public_sources, + ] + + gtksource_gir = gnome.generate_gir(gtksource_lib, + sources: gtksource_gir_sources, + nsversion: api_version, + namespace: 'GtkSource', + symbol_prefix: 'gtk_source', + identifier_prefix: 'GtkSource', +-- +2.39.1 + diff --git a/SOURCES/0001-view-fix-decrement-of-negative-numbers.patch b/SOURCES/0001-view-fix-decrement-of-negative-numbers.patch new file mode 100644 index 0000000..f306436 --- /dev/null +++ b/SOURCES/0001-view-fix-decrement-of-negative-numbers.patch @@ -0,0 +1,90 @@ +From d33ed342af50b66c7c49c2843d7495febfd663e9 Mon Sep 17 00:00:00 2001 +From: Christian Hergert +Date: Wed, 28 Jul 2021 17:49:40 -0700 +Subject: [PATCH 1/1] view: fix decrement of negative numbers + +Fixes #117 +--- + gtksourceview/gtksourceview.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c +index e10584aa..377cdd8d 100644 +--- a/gtksourceview/gtksourceview.c ++++ b/gtksourceview/gtksourceview.c +@@ -360,61 +360,72 @@ gtk_source_view_move_to_matching_bracket (GtkSourceView *view, + gtk_text_buffer_move_mark (buffer, insert_mark, &bracket_match); + } + else + { + gtk_text_buffer_place_cursor (buffer, &bracket_match); + } + + gtk_text_view_scroll_mark_onscreen (text_view, insert_mark); + } + } + + static void + gtk_source_view_change_number (GtkSourceView *view, + gint count) + { + GtkTextView *text_view = GTK_TEXT_VIEW (view); + GtkTextBuffer *buffer; + GtkTextIter start, end; + gchar *str; + + buffer = gtk_text_view_get_buffer (text_view); + if (!GTK_SOURCE_IS_BUFFER (buffer)) + { + return; + } + + if (!gtk_text_buffer_get_selection_bounds (buffer, &start, &end)) + { + if (!gtk_text_iter_starts_word (&start)) + { ++ GtkTextIter prev; ++ + gtk_text_iter_backward_word_start (&start); ++ ++ /* Include the negative sign if there is one. ++ * https://gitlab.gnome.org/GNOME/gtksourceview/-/issues/117 ++ */ ++ prev = start; ++ if (gtk_text_iter_backward_char (&prev) && gtk_text_iter_get_char (&prev) == '-') ++ { ++ start = prev; ++ } + } + + if (!gtk_text_iter_ends_word (&end)) + { + gtk_text_iter_forward_word_end (&end); + } + } + + str = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); + + if (str != NULL && *str != '\0') + { + gchar *p; + gint64 n; + glong len; + + len = gtk_text_iter_get_offset (&end) - gtk_text_iter_get_offset (&start); + g_assert (len > 0); + + n = g_ascii_strtoll (str, &p, 10); + + /* do the action only if strtoll succeeds (p != str) and + * the whole string is the number, e.g. not 123abc + */ + if ((p - str) == len) + { + gchar *newstr; + + newstr = g_strdup_printf ("%"G_GINT64_FORMAT, (n + count)); + +-- +2.39.1 + diff --git a/SPECS/gtksourceview4.spec b/SPECS/gtksourceview4.spec index 3444386..4628ad1 100644 --- a/SPECS/gtksourceview4.spec +++ b/SPECS/gtksourceview4.spec @@ -3,7 +3,7 @@ Name: gtksourceview4 Version: 4.8.1 -Release: 3%{?dist} +Release: 5%{?dist} Summary: Source code editing widget License: LGPLv2+ @@ -12,6 +12,7 @@ Source0: https://download.gnome.org/sources/gtksourceview/4.8/gtksourcevi BuildRequires: gcc BuildRequires: gettext +BuildRequires: git BuildRequires: gtk-doc BuildRequires: itstool BuildRequires: meson @@ -27,6 +28,11 @@ BuildRequires: vala Requires: glib2%{?_isa} >= %{glib_version} Requires: gtk3%{?_isa} >= %{gtk_version} +# Fixes build and test suite on single cpu VMs +Patch10001: 0001-build-ensure-access-to-resources-in-corelib-build.patch + +Patch20001: 0001-view-fix-decrement-of-negative-numbers.patch + %description GtkSourceView is a GNOME library that extends GtkTextView, the standard GTK+ widget for multiline text editing. GtkSourceView adds support for syntax @@ -53,7 +59,7 @@ The %{name}-tests package contains tests that can be used to verify the functionality of the installed %{name} package. %prep -%autosetup -n gtksourceview-%{version} +%autosetup -n gtksourceview-%{version} -S git %build %meson -Dgtk_doc=true -Dglade_catalog=true -Dinstall_tests=true @@ -98,6 +104,14 @@ the functionality of the installed %{name} package. * Wed Mar 15 2023 MSVSphere Packaging Team - 4.8.1-3 - Rebuilt for MSVSphere 9.1. +* Thu Jan 26 2023 Ray Strode - 4.8.1-5 +- Add build and test suite fix for single core VMs + Related: #2062786 + +* Wed Jan 25 2023 Ray Strode - 4.8.1-3 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688