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

Reply via email to