Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package zoitechat for openSUSE:Factory checked in at 2026-10-24 22:04:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/zoitechat (Old) and /work/SRC/openSUSE:Factory/.zoitechat.new.2252680 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zoitechat" Sat Oct 24 22:04:38 2026 rev:2 rq:1392151 version:2.19.1 Changes: -------- --- /work/SRC/openSUSE:Factory/zoitechat/zoitechat.changes 2026-08-26 19:52:19.141765669 +0200 +++ /work/SRC/openSUSE:Factory/.zoitechat.new.2252680/zoitechat.changes 2026-10-24 22:06:05.202282082 +0200 @@ -1,0 +2,29 @@ +Fri Oct 23 19:47:01 UTC 2026 - Dirk Müller <[email protected]> + +- update to 2.19.1: + * ZoiteChat 2.19.1 is a bug fix release for the 2.19 series. No + major new features here, mostly fixing issues found since + * Fixed `/msg` messages showing twice on servers using IRCv3 + `echo-message`. + * Fixed escaping a leading command slash so `//text` sends + `/text` as normal chat. + * Fixed automatic away clearing when sending messages on + servers using `echo-message`. + * Fixed other users' away status not updating until rejoining a + channel when `away-notify` updates are missed. + * Fixed private messages and `/me` actions being routed to the + wrong window when using WeeChat's IRC relay, while preserving + channel ACTION routing. + * Fixed a Flatpak startup error caused by the D-Bus service + still using the old HexChat app ID. + * Fixed optional Windows 10 theme downloads in the Windows + installer. + * Fixed the GTK warning when switching from channel tabs to the + channel tree. + * Fixed GTK3 theme archive root detection so themes with an + `index.theme` file are preferred correctly. + * Fixed source-build configuration when plugin AppStream + metadata installation is disabled, and corrected the minimum + Meson version to 0.59. + +------------------------------------------------------------------- Old: ---- zoitechat-2.19.0.tar.gz New: ---- zoitechat-2.19.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ zoitechat.spec ++++++ --- /var/tmp/diff_new_pack.21LxOG/_old 2026-10-24 22:06:05.959313722 +0200 +++ /var/tmp/diff_new_pack.21LxOG/_new 2026-10-24 22:06:05.960313764 +0200 @@ -17,7 +17,7 @@ Name: zoitechat -Version: 2.19.0 +Version: 2.19.1 Release: 0 Summary: A graphical IRC (chat) client, fork of HexChat License: GPL-2.0-or-later @@ -28,7 +28,7 @@ BuildRequires: hicolor-icon-theme BuildRequires: intltool BuildRequires: lua-devel -BuildRequires: meson +BuildRequires: meson >= 0.59 BuildRequires: pkgconfig BuildRequires: publicsuffix BuildRequires: python3-cffi ++++++ zoitechat-2.19.0.tar.gz -> zoitechat-2.19.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/.github/workflows/appimage-build.yml new/zoitechat-2.19.1/.github/workflows/appimage-build.yml --- old/zoitechat-2.19.0/.github/workflows/appimage-build.yml 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/.github/workflows/appimage-build.yml 2026-09-15 21:04:10.000000000 +0200 @@ -2,7 +2,7 @@ on: push: - branches: [master] + branches: [master, 'release/**'] pull_request: branches: [master] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/.github/workflows/flatpak-build.yml new/zoitechat-2.19.1/.github/workflows/flatpak-build.yml --- old/zoitechat-2.19.0/.github/workflows/flatpak-build.yml 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/.github/workflows/flatpak-build.yml 2026-09-15 21:04:10.000000000 +0200 @@ -2,7 +2,7 @@ on: push: - branches: [master] + branches: [master, 'release/**'] pull_request: branches: [master] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/.github/workflows/windows-build.yml new/zoitechat-2.19.1/.github/workflows/windows-build.yml --- old/zoitechat-2.19.0/.github/workflows/windows-build.yml 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/.github/workflows/windows-build.yml 2026-09-15 21:04:10.000000000 +0200 @@ -4,6 +4,7 @@ push: branches: - master + - 'release/**' pull_request: branches: - master diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/VERSION new/zoitechat-2.19.1/VERSION --- old/zoitechat-2.19.0/VERSION 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/VERSION 2026-09-15 21:04:10.000000000 +0200 @@ -1 +1 @@ -2.19.0 +2.19.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/data/misc/meson.build new/zoitechat-2.19.1/data/misc/meson.build --- old/zoitechat-2.19.0/data/misc/meson.build 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/data/misc/meson.build 2026-09-15 21:04:10.000000000 +0200 @@ -2,6 +2,7 @@ metainfodir = join_paths(get_option('datadir'), 'metainfo') mimedir = join_paths(get_option('datadir'), 'mime', 'packages') desktop_utils = find_program('desktop-file-validate', required: false) +appstreamcli = find_program('appstreamcli', required: false) if get_option('gtk-frontend') if get_option('install-appdata') @@ -13,7 +14,6 @@ install_dir: metainfodir ) - appstreamcli = find_program('appstreamcli', required: false) if appstreamcli.found() test('Validate net.zoite.Zoitechat.appdata.xml', appstreamcli, args: ['validate', zoitechat_appdata] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/meson.build new/zoitechat-2.19.1/meson.build --- old/zoitechat-2.19.0/meson.build 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/meson.build 2026-09-15 21:04:10.000000000 +0200 @@ -1,6 +1,6 @@ project('zoitechat', 'c', version: run_command('cat', 'VERSION', check: true).stdout().strip(), - meson_version: '>= 0.55.0', + meson_version: '>= 0.59.0', default_options: [ 'c_std=c17', 'buildtype=debugoptimized', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/src/common/ctcp.c new/zoitechat-2.19.1/src/common/ctcp.c --- old/zoitechat-2.19.0/src/common/ctcp.c 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/src/common/ctcp.c 2026-09-15 21:04:10.000000000 +0200 @@ -126,7 +126,21 @@ if (ctcp_check (sess, nick, word, word_eol, word[4] + ctcp_offset)) goto generic; - inbound_action (sess, to, nick, ip, msg + 7, FALSE, tags_data->identified, tags_data); + { + gboolean private_fromme = !serv->p_cmp (nick, serv->nick) && !is_channel (serv, to); + + if (private_fromme) + { + session *target = find_dialog (serv, to); + + if (target) + sess = target; + else if (serv->front_session) + sess = serv->front_session; + } + + inbound_action (sess, to, nick, ip, msg + 7, private_fromme, tags_data->identified, tags_data); + } return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/src/common/dbus/meson.build new/zoitechat-2.19.1/src/common/dbus/meson.build --- old/zoitechat-2.19.0/src/common/dbus/meson.build 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/src/common/dbus/meson.build 2026-09-15 21:04:10.000000000 +0200 @@ -13,9 +13,9 @@ dbus_service_dir = join_paths(get_option('datadir'), 'dbus-1/services') if get_option('dbus-service-use-appid') - dbus_service_name = 'io.github.Hexchat' - dbus_output_file = 'io.github.Hexchat.service' - dbus_cargs = '-DDBUS_SERVICE="io.github.Hexchat"' + dbus_service_name = 'net.zoite.Zoitechat' + dbus_output_file = 'net.zoite.Zoitechat.service' + dbus_cargs = '-DDBUS_SERVICE="net.zoite.Zoitechat"' else dbus_service_name = 'org.zoitechat.service' dbus_output_file = 'org.zoitechat.service.service' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/src/common/gtk3-theme-service.c new/zoitechat-2.19.1/src/common/gtk3-theme-service.c --- old/zoitechat-2.19.0/src/common/gtk3-theme-service.c 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/src/common/gtk3-theme-service.c 2026-09-15 21:04:10.000000000 +0200 @@ -858,8 +858,10 @@ static gint theme_root_candidate_compare (gconstpointer a, gconstpointer b) { - const ThemeRootCandidate *ca = a; - const ThemeRootCandidate *cb = b; + /* g_ptr_array_sort() passes pointers to the array slots, not the values + * stored in those slots. Dereference once before comparing candidates. */ + const ThemeRootCandidate *ca = *(ThemeRootCandidate * const *) a; + const ThemeRootCandidate *cb = *(ThemeRootCandidate * const *) b; if (ca->has_index_theme != cb->has_index_theme) return ca->has_index_theme ? -1 : 1; if (ca->depth != cb->depth) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/src/common/inbound.c new/zoitechat-2.19.1/src/common/inbound.c --- old/zoitechat-2.19.0/src/common/inbound.c 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/src/common/inbound.c 2026-09-15 21:04:10.000000000 +0200 @@ -675,7 +675,8 @@ if (fromme) { - if (prefs.hex_away_auto_unmark && serv->is_away && !tags_data->timestamp) + if (prefs.hex_away_auto_unmark && serv->is_away && + (!tags_data->timestamp || serv->have_echo_message)) sess->server->p_set_back (sess->server); reply_context_print (sess, tags_data); EMIT_SIGNAL_TIMESTAMP (XP_TE_UCHANMSG, sess, from, text, nickchar, NULL, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/src/common/outbound.c new/zoitechat-2.19.1/src/common/outbound.c --- old/zoitechat-2.19.0/src/common/outbound.c 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/src/common/outbound.c 2026-09-15 21:04:10.000000000 +0200 @@ -3025,7 +3025,7 @@ newsess->server->nick, msg + offset, TRUE, FALSE, &no_tags); } - else + else if (!sess->server->have_echo_message) { /* mask out passwords */ if (g_ascii_strcasecmp (nick, "nickserv") == 0) @@ -5058,6 +5058,11 @@ handle_say (sess, text, TRUE); return 1; } + if (text[0] == cmd_char && text[1] == cmd_char) + { + handle_say (sess, text + 1, TRUE); + return 1; + } for (i = 1; text[i]; i++) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/src/common/proto-irc.c new/zoitechat-2.19.1/src/common/proto-irc.c --- old/zoitechat-2.19.0/src/common/proto-irc.c 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/src/common/proto-irc.c 2026-09-15 21:04:10.000000000 +0200 @@ -1368,7 +1368,7 @@ { if (ignore_check (word[1], IG_PRIV)) return; - if (serv->have_echo_message && !serv->p_cmp (nick, serv->nick)) + if (!serv->p_cmp (nick, serv->nick)) { session *target_sess = find_dialog (serv, to); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/src/common/zoitechat.c new/zoitechat-2.19.1/src/common/zoitechat.c --- old/zoitechat-2.19.0/src/common/zoitechat.c 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/src/common/zoitechat.c 2026-09-15 21:04:10.000000000 +0200 @@ -463,8 +463,7 @@ while (list) { sess = list->data; - if (!sess->server->have_awaynotify) - sess->done_away_check = FALSE; + sess->done_away_check = FALSE; list = list->next; } loop++; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/src/fe-gtk/chanview-tree.c new/zoitechat-2.19.1/src/fe-gtk/chanview-tree.c --- old/zoitechat-2.19.0/src/fe-gtk/chanview-tree.c 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/src/fe-gtk/chanview-tree.c 2026-09-15 21:04:10.000000000 +0200 @@ -301,26 +301,35 @@ path = gtk_tree_model_get_path (model, &ch->iter); if (path) { - /* This full section does what - * gtk_tree_view_scroll_to_cell (tree, path, NULL, TRUE, 0.5, 0.5); - * does, except it only scrolls the window if the provided cell is - * not visible. Basic algorithm taken from gtktreeview.c */ + if (!gtk_widget_get_realized (GTK_WIDGET (tree))) + { + /* Layout changes can restore focus before the new tree is realized. + * Let GTK track the row and scroll once its geometry is available. */ + gtk_tree_view_scroll_to_cell (tree, path, NULL, TRUE, 0.5, 0.5); + } + else + { + /* This full section does what + * gtk_tree_view_scroll_to_cell (tree, path, NULL, TRUE, 0.5, 0.5); + * does, except it only scrolls the window if the provided cell is + * not visible. Basic algorithm taken from gtktreeview.c */ - /* obtain information to see if the cell is visible */ - gtk_tree_view_get_background_area (tree, path, NULL, &cell_rect); - gtk_tree_view_get_visible_rect (tree, &vis_rect); + /* obtain information to see if the cell is visible */ + gtk_tree_view_get_background_area (tree, path, NULL, &cell_rect); + gtk_tree_view_get_visible_rect (tree, &vis_rect); - /* The cordinates aren't offset correctly */ - gtk_tree_view_convert_widget_to_bin_window_coords ( tree, cell_rect.x, cell_rect.y, NULL, &cell_rect.y ); + /* The cordinates aren't offset correctly */ + gtk_tree_view_convert_widget_to_bin_window_coords ( tree, cell_rect.x, cell_rect.y, NULL, &cell_rect.y ); - /* only need to scroll if out of bounds */ - if (cell_rect.y < vis_rect.y || - cell_rect.y + cell_rect.height > vis_rect.y + vis_rect.height) - { - dest_y = cell_rect.y - ((vis_rect.height - cell_rect.height) * 0.5); - if (dest_y < 0) - dest_y = 0; - gtk_tree_view_scroll_to_point (tree, -1, dest_y); + /* only need to scroll if out of bounds */ + if (cell_rect.y < vis_rect.y || + cell_rect.y + cell_rect.height > vis_rect.y + vis_rect.height) + { + dest_y = cell_rect.y - ((vis_rect.height - cell_rect.height) * 0.5); + if (dest_y < 0) + dest_y = 0; + gtk_tree_view_scroll_to_point (tree, -1, dest_y); + } } /* theft done, now make it focused like */ gtk_tree_view_set_cursor (tree, path, NULL, FALSE); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zoitechat-2.19.0/win32/installer/zoitechat.iss.tt new/zoitechat-2.19.1/win32/installer/zoitechat.iss.tt --- old/zoitechat-2.19.0/win32/installer/zoitechat.iss.tt 2026-07-28 18:26:04.000000000 +0200 +++ new/zoitechat-2.19.1/win32/installer/zoitechat.iss.tt 2026-09-15 21:04:10.000000000 +0200 @@ -373,10 +373,10 @@ idpClearFiles; if WizardIsComponentSelected('themes\windows10') then - idpAddFile('https://dl.zoitechat.zoite.net/themes/GTK3Themes/Windows-10-3.2.1.zip', ExpandConstant('{tmp}\Windows-10-3.2.1.zip')); + idpAddFile('https://dl.zoitechat.org/themes/GTK3Themes/Windows-10-3.2.1.zip', ExpandConstant('{tmp}\Windows-10-3.2.1.zip')); if WizardIsComponentSelected('themes\windows10dark') then - idpAddFile('https://dl.zoitechat.zoite.net/themes/GTK3Themes/Windows-10-Dark-3.2.1-dark.zip', ExpandConstant('{tmp}\Windows-10-Dark-3.2.1-dark.zip')); + idpAddFile('https://dl.zoitechat.org/themes/GTK3Themes/Windows-10-Dark-3.2.1-dark.zip', ExpandConstant('{tmp}\Windows-10-Dark-3.2.1-dark.zip')); if not WizardIsTaskSelected('portable') then begin
