Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ghex for openSUSE:Factory checked in at 2025-11-06 18:13:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghex (Old) and /work/SRC/openSUSE:Factory/.ghex.new.1980 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghex" Thu Nov 6 18:13:20 2025 rev:80 rq:1315782 version:48.3 Changes: -------- --- /work/SRC/openSUSE:Factory/ghex/ghex.changes 2025-09-01 17:18:11.250933716 +0200 +++ /work/SRC/openSUSE:Factory/.ghex.new.1980/ghex.changes 2025-11-06 18:15:00.195978451 +0100 @@ -1,0 +2,12 @@ +Tue Nov 4 18:09:02 UTC 2025 - Bjørn Lie <[email protected]> + +- Update to version 48.3: + + This is a bugfix release that contains a stability fix for + lengthy, and subsequently cancelled, find/replace operations. + + Changes and bugfixes since 48.1: + - findrep: Cancelling find ops should allow to search again + right away + - lib: Fix lifetimes issue with threaded find/rep operations + + This release includes libgtkhex 4.10.1. + +------------------------------------------------------------------- Old: ---- ghex-48.1.obscpio New: ---- ghex-48.3.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghex.spec ++++++ --- /var/tmp/diff_new_pack.jXI0ff/_old 2025-11-06 18:15:00.812004440 +0100 +++ /var/tmp/diff_new_pack.jXI0ff/_new 2025-11-06 18:15:00.816004609 +0100 @@ -22,7 +22,7 @@ %define soname libgtkhex-%{ghex_abi}-%{so_ver} Name: ghex -Version: 48.1 +Version: 48.3 Release: 0 Summary: GNOME Binary Editor License: GPL-2.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.jXI0ff/_old 2025-11-06 18:15:00.864006634 +0100 +++ /var/tmp/diff_new_pack.jXI0ff/_new 2025-11-06 18:15:00.868006803 +0100 @@ -3,7 +3,7 @@ <service name="obs_scm" mode="manual"> <param name="scm">git</param> <param name="url">https://gitlab.gnome.org/GNOME/ghex.git</param> - <param name="revision">48.1</param> + <param name="revision">48.3</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ ghex-48.1.obscpio -> ghex-48.3.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghex-48.1/.gitlab-ci.yml new/ghex-48.3/.gitlab-ci.yml --- old/ghex-48.1/.gitlab-ci.yml 2025-08-29 21:12:20.000000000 +0200 +++ new/ghex-48.3/.gitlab-ci.yml 2025-11-04 17:48:42.000000000 +0100 @@ -5,18 +5,15 @@ inputs: dist-job-name: "flatpak" -variables: #<1.> - FLATPAK_MODULE: "ghex" - flatpak: extends: '.flatpak' + dependencies: [] variables: + FLATPAK_MODULE: "ghex" MANIFEST_PATH: "org.gnome.GHex.Devel.json" - RUNTIME_REPO: 'https://sdk.gnome.org/gnome-nightly.flatpakrepo' APP_ID: "org.gnome.GHex.Devel" BUNDLE: "ghex-dev.flatpak" nightly: extends: '.publish_nightly' - dependencies: ['flatpak'] needs: ['flatpak'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghex-48.1/NEWS new/ghex-48.3/NEWS --- old/ghex-48.1/NEWS 2025-08-29 21:12:20.000000000 +0200 +++ new/ghex-48.3/NEWS 2025-11-04 17:48:42.000000000 +0100 @@ -1,4 +1,30 @@ ========= +GHex 48.3 +========= + +This version contains no code changes since 48.2 - it simply contains a CI +update to fix the generation of tarballs. + +Due to the nature of this fix, there is no tarball for GHex 48.2. + +Changes and bugfixes since 48.2: +- ci fixes (Logan Rathbone; thanks to alatiera). + +========= +GHex 48.2 +========= + +This is a bugfix release that contains a stability fix for lengthy, and +subsequently cancelled, find/replace operations. + +Changes and bugfixes since 48.1 +- findrep: Cancelling find ops should allow to search again right away (Logan + Rathbone) +- lib: Fix lifetimes issue with threaded find/rep operations (Logan Rathbone) + +This release includes libgtkhex 4.10.1 + +========= GHex 48.1 ========= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghex-48.1/data/org.gnome.GHex.metainfo.xml.in.in new/ghex-48.3/data/org.gnome.GHex.metainfo.xml.in.in --- old/ghex-48.1/data/org.gnome.GHex.metainfo.xml.in.in 2025-08-29 21:12:20.000000000 +0200 +++ new/ghex-48.3/data/org.gnome.GHex.metainfo.xml.in.in 2025-11-04 17:48:42.000000000 +0100 @@ -30,6 +30,8 @@ <kudo>UserDocs</kudo> </kudos> <releases> + <release version="48.3" date="2025-11-04" /> + <release version="48.2" date="2025-10-30" /> <release version="48.1" date="2025-08-29" /> <release version="48.0" date="2025-08-16" /> </releases> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghex-48.1/meson.build new/ghex-48.3/meson.build --- old/ghex-48.1/meson.build 2025-08-29 21:12:20.000000000 +0200 +++ new/ghex-48.3/meson.build 2025-11-04 17:48:42.000000000 +0100 @@ -1,6 +1,6 @@ project( 'ghex', 'c', - version: '48.1', + version: '48.3', meson_version: '>=0.59.0', license: 'GPL2' ) @@ -39,7 +39,7 @@ libgtkhex_api_version = 4 libgtkhex_version_major = 1 # for soname (ABI major version) only libgtkhex_version_minor = 10 -libgtkhex_version_micro = 0 +libgtkhex_version_micro = 1 libgtkhex_version = '@0@.@1@.@2@'.format(libgtkhex_api_version, libgtkhex_version_minor, libgtkhex_version_micro) ghex_prefix = get_option('prefix') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghex-48.1/org.gnome.GHex.Devel.json new/ghex-48.3/org.gnome.GHex.Devel.json --- old/ghex-48.1/org.gnome.GHex.Devel.json 2025-08-29 21:12:20.000000000 +0200 +++ new/ghex-48.3/org.gnome.GHex.Devel.json 2025-11-04 17:48:42.000000000 +0100 @@ -4,7 +4,6 @@ "runtime-version": "master", "sdk": "org.gnome.Sdk", "command": "ghex", - "branch": "master", "finish-args": [ "--device=dri", "--share=ipc", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghex-48.1/src/findreplace.c new/ghex-48.3/src/findreplace.c --- old/ghex-48.1/src/findreplace.c 2025-08-29 21:12:20.000000000 +0200 +++ new/ghex-48.3/src/findreplace.c 2025-11-04 17:48:42.000000000 +0100 @@ -203,8 +203,12 @@ { FindDialog *self = FIND_DIALOG(user_data); FindDialogPrivate *f_priv = find_dialog_get_instance_private (self); + PaneDialogPrivate *priv = pane_dialog_get_instance_private (PANE_DIALOG(self)); g_cancellable_cancel (f_priv->cancellable); + + mark_gh_busy (priv->gh, FALSE); + pane_dialog_update_busy_state (PANE_DIALOG(self)); } static void @@ -287,7 +291,7 @@ * an error, but not much we can do to report a search error anyway. */ if (! find_data) - goto out; + return; flags = search_flags_from_checkboxes (f_priv); @@ -317,8 +321,6 @@ } mark_gh_busy (priv->gh, FALSE); pane_dialog_update_busy_state (PANE_DIALOG(self)); -out: - g_object_unref (task); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ghex-48.1/src/hex-document.c new/ghex-48.3/src/hex-document.c --- old/ghex-48.1/src/hex-document.c 2025-08-29 21:12:20.000000000 +0200 +++ new/ghex-48.3/src/hex-document.c 2025-11-04 17:48:42.000000000 +0100 @@ -809,7 +809,7 @@ else g_task_return_boolean (task, FALSE); - goto cleanup; + return; } /* Initialize data for new doc */ @@ -820,9 +820,6 @@ g_signal_emit (G_OBJECT(doc), hex_signals[FILE_LOADED], 0); g_task_return_boolean (task, TRUE); - -cleanup: - g_object_unref (task); } /** @@ -969,8 +966,6 @@ else g_task_return_boolean (doc_task, FALSE); } - - g_object_unref (doc_task); /* g_task_return_* takes a ref. */ } /** @@ -1424,6 +1419,33 @@ return retval; } +gboolean +find_forward_full_helper (HexDocument *doc, + HexDocumentFindData *find_data, + GCancellable *cancellable) +{ + gint64 pos; + gint64 payload = hex_buffer_get_payload_size ( + hex_document_get_buffer (doc)); + + g_return_val_if_fail (find_data != NULL, FALSE); + + pos = find_data->start; + while (pos < payload) + { + if (g_cancellable_is_cancelled (cancellable)) + return FALSE; + + if (hex_document_compare_data_full (doc, find_data, pos) == 0) + { + find_data->offset = pos; + return TRUE; + } + pos++; + } + + return FALSE; +} /** * hex_document_find_forward_full: * @find_data: a #HexDocumentFindData structure @@ -1445,24 +1467,7 @@ hex_document_find_forward_full (HexDocument *doc, HexDocumentFindData *find_data) { - gint64 pos; - gint64 payload = hex_buffer_get_payload_size ( - hex_document_get_buffer (doc)); - - g_return_val_if_fail (find_data != NULL, FALSE); - - pos = find_data->start; - while (pos < payload) - { - if (hex_document_compare_data_full (doc, find_data, pos) == 0) - { - find_data->offset = pos; - return TRUE; - } - pos++; - } - - return FALSE; + return find_forward_full_helper (doc, find_data, NULL); } /** @@ -1535,13 +1540,13 @@ \ g_return_if_fail (find_data); \ \ - find_data->found = FUNC_TO_CALL (doc, find_data); \ + find_data->found = FUNC_TO_CALL (doc, find_data, cancellable); \ \ g_task_return_pointer (task, find_data, g_free); \ } FIND_FULL_THREAD_TEMPLATE(hex_document_find_forward_full_thread, - hex_document_find_forward_full) + find_forward_full_helper) static void hex_document_find_forward_thread (GTask *task, @@ -1570,9 +1575,9 @@ GTask *task; \ \ task = g_task_new (doc, cancellable, callback, user_data); \ - g_task_set_return_on_cancel (task, TRUE); \ - g_task_set_task_data (task, find_data, g_free); \ + g_task_set_task_data (task, find_data, NULL); \ g_task_run_in_thread (task, FUNC_TO_CALL); \ + g_object_unref (task); /* _run_in_thread takes a ref */ \ } /** @@ -1632,8 +1637,7 @@ find_data->not_found_msg = not_found_msg; \ \ task = g_task_new (doc, cancellable, callback, user_data); \ - g_task_set_return_on_cancel (task, TRUE); \ - g_task_set_task_data (task, find_data, g_free); \ + g_task_set_task_data (task, find_data, NULL); \ g_task_run_in_thread (task, FUNC_TO_CALL); \ g_object_unref (task); /* _run_in_thread takes a ref */ \ } @@ -1641,6 +1645,31 @@ FIND_ASYNC_TEMPLATE(hex_document_find_forward_async, hex_document_find_forward_thread) +static gboolean +find_backward_full_helper (HexDocument *doc, + HexDocumentFindData *find_data, + GCancellable *cancellable) +{ + gint64 pos = find_data->start; + + if (pos == 0) + return FALSE; + + do { + if (g_cancellable_is_cancelled (cancellable)) + return FALSE; + + pos--; + + if (hex_document_compare_data_full (doc, find_data, pos) == 0) { + find_data->offset = pos; + return TRUE; + } + } while (pos > 0); + + return FALSE; +} + /** * hex_document_find_backward_full: * @find_data: a #HexDocumentFindData structure @@ -1662,20 +1691,7 @@ hex_document_find_backward_full (HexDocument *doc, HexDocumentFindData *find_data) { - gint64 pos = find_data->start; - - if (pos == 0) - return FALSE; - - do { - pos--; - if (hex_document_compare_data_full (doc, find_data, pos) == 0) { - find_data->offset = pos; - return TRUE; - } - } while (pos > 0); - - return FALSE; + return find_backward_full_helper (doc, find_data, NULL); } /** @@ -1718,7 +1734,7 @@ } FIND_FULL_THREAD_TEMPLATE(hex_document_find_backward_full_thread, - hex_document_find_backward_full) + find_backward_full_helper) static void hex_document_find_backward_thread (GTask *task, ++++++ ghex.obsinfo ++++++ --- /var/tmp/diff_new_pack.jXI0ff/_old 2025-11-06 18:15:01.536034986 +0100 +++ /var/tmp/diff_new_pack.jXI0ff/_new 2025-11-06 18:15:01.544035323 +0100 @@ -1,5 +1,5 @@ name: ghex -version: 48.1 -mtime: 1756494740 -commit: 045f27298c6cba52dd741b089d488943704c418b +version: 48.3 +mtime: 1762274922 +commit: c0b6a2ca1f8dc9019d4eb25dcb5c5ebad6752bce
