Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package sane-airscan for openSUSE:Factory 
checked in at 2026-03-17 19:05:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sane-airscan (Old)
 and      /work/SRC/openSUSE:Factory/.sane-airscan.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sane-airscan"

Tue Mar 17 19:05:23 2026 rev:11 rq:1339551 version:0.99.37

Changes:
--------
--- /work/SRC/openSUSE:Factory/sane-airscan/sane-airscan.changes        
2025-07-25 17:07:37.859028898 +0200
+++ /work/SRC/openSUSE:Factory/.sane-airscan.new.8177/sane-airscan.changes      
2026-03-17 19:07:22.295818039 +0100
@@ -1,0 +2,13 @@
+Tue Mar 17 09:19:22 UTC 2026 - [email protected]
+
+- Update to version 0.99.37:
+  * Document support for Canon Pixma TR4527
+  * mdns: fixed assertion, if avahi_service_browser_new returns NULL
+  * Fixed SIGSEGV in http_data_set_content_type()
+  * Fixed compilation with ISO C23-capable compiler
+  * Document support for Brother DCP-L2530DW
+  * Document support for Brother DCP-L2660DW
+  * Documented Canon MF660C Series support
+  * Add EPSON EW-M752T to support list
+
+-------------------------------------------------------------------

Old:
----
  sane-airscan-0.99.36.tar.zst

New:
----
  sane-airscan-0.99.37.tar.zst

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ sane-airscan.spec ++++++
--- /var/tmp/diff_new_pack.Wo1JIZ/_old  2026-03-17 19:07:22.807839258 +0100
+++ /var/tmp/diff_new_pack.Wo1JIZ/_new  2026-03-17 19:07:22.811839424 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package sane-airscan
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           sane-airscan
-Version:        0.99.36
+Version:        0.99.37
 Release:        0
 Summary:        Universal driver for Apple AirScan (eSCL) and WSD
 License:        SUSE-GPL-2.0+-with-sane-exception
@@ -53,7 +53,7 @@
 
 %install
 %meson_install
-rm %{buildroot}%{_libdir}/sane/libsane-airscan.so
+rm %{buildroot}%{_libdir}/sane/lib%{name}.so
 
 %files
 %license LICENSE COPYING
@@ -61,7 +61,7 @@
 %{_bindir}/airscan-discover
 %config(noreplace) %{_sysconfdir}/sane.d/airscan.conf
 %config %{_sysconfdir}/sane.d/dll.d/airscan
-%{_libdir}/sane/libsane-airscan.so.1
+%{_libdir}/sane/lib%{name}.so.1
 %{_mandir}/man?/{sane-airscan,airscan-discover}.?%{?ext_man}
 %if 0%{?suse_version} == 1500
 %dir %{_sysconfdir}/sane.d/dll.d

++++++ _service ++++++
--- /var/tmp/diff_new_pack.Wo1JIZ/_old  2026-03-17 19:07:22.851841081 +0100
+++ /var/tmp/diff_new_pack.Wo1JIZ/_new  2026-03-17 19:07:22.855841247 +0100
@@ -2,7 +2,7 @@
   <service name="tar_scm" mode="manual">
     <param name="url">https://github.com/alexpevzner/sane-airscan.git</param>
     <param name="scm">git</param>
-    <param name="revision">0.99.36</param>
+    <param name="revision">0.99.37</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
   </service>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Wo1JIZ/_old  2026-03-17 19:07:22.887842573 +0100
+++ /var/tmp/diff_new_pack.Wo1JIZ/_new  2026-03-17 19:07:22.895842905 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/alexpevzner/sane-airscan.git</param>
-              <param 
name="changesrevision">48cfe8d3ae4ad22006fa002852c9363627d0f78d</param></service></servicedata>
+              <param 
name="changesrevision">03eddd0d8058c482462bccabadad0e56e8400cb4</param></service></servicedata>
 (No newline at EOF)
 

++++++ sane-airscan-0.99.36.tar.zst -> sane-airscan-0.99.37.tar.zst ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sane-airscan-0.99.36/README.md 
new/sane-airscan-0.99.37/README.md
--- old/sane-airscan-0.99.36/README.md  2025-07-25 13:41:45.000000000 +0200
+++ new/sane-airscan-0.99.37/README.md  2026-03-10 18:26:18.000000000 +0100
@@ -61,8 +61,10 @@
 | Brother DCP-7070DW                 | No                        | Yes         
              |
 | Brother DCP-9020CDW                | No                        | Yes         
              |
 | Brother DCP-J552DW                 | No                        | Yes         
              |
+| Brother DCP-L2530DW                | Yes                       | Yes         
              |
 | Brother DCP-L2540DW                | No                        | Yes         
              |
 | Brother DCP-L2550DN / DCP-L2550DW  | Yes                       |             
              |
+| Brother DCP-L2660DW                | Yes                       |             
              |
 | Brother HL-L2380DW series          | No                        | Yes         
              |
 | Brother HL-L2395DW series          | Yes                       |             
              |
 | Brother MFC-7360N                  | No                        | Yes         
              |
@@ -105,6 +107,7 @@
 | Canon MF440 Series                 | Yes                       | Yes         
              |
 | Canon MF645Cx                      | Yes                       |             
              |
 | Canon MF650C Series                | Yes                       |             
              |
+| Canon MF660C Series                | Yes                       |             
              |
 | Canon MF745C/746C                  | Yes                       | Yes         
              |
 | Canon MG5200 series                | No                        | Yes         
              |
 | Canon MG5300 series                | No                        | Yes         
              |
@@ -116,6 +119,7 @@
 | Canon PIXMA MG7700 Series          | Yes                       |             
              |
 | Canon PIXMA TS5000 Series          | Yes                       |             
              |
 | Canon PIXMA TS 9550 Series         | Yes                       |             
              |
+| Canon TR4527                       | Yes                       |             
              |
 | Canon TR4529 (PIXMA TR4500 Series) | Yes                       | Yes         
              |
 | Canon TR4700 series                | Yes                       |             
              |
 | Canon TR7500 Series                | No                        | Yes         
              |
@@ -142,6 +146,7 @@
 | EPSON ET-4750 Series               | No                        | Yes         
              |
 | EPSON ET-4850 Series               | Yes                       |             
              |
 | EPSON ET-M2170 Series              | Yes                       |             
              |
+| EPSON EW-M752T Series              | No                        | Yes         
              |
 | EPSON L6570 Series                 | Yes                       | Yes         
              |
 | EPSON Stylus SX535WD               | No                        | Yes         
              |
 | EPSON WF-2760 Series               |                           | Yes         
              |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sane-airscan-0.99.36/airscan-http.c 
new/sane-airscan-0.99.37/airscan-http.c
--- old/sane-airscan-0.99.36/airscan-http.c     2025-07-25 13:41:45.000000000 
+0200
+++ new/sane-airscan-0.99.37/airscan-http.c     2026-03-10 18:26:18.000000000 
+0100
@@ -662,7 +662,7 @@
 /* Find 1st occurrence of the character in the string,
  * defined by begin and end pointers
  */
-static char *
+static const char *
 http_uri_str_chr(const char *beg, const char *end, char c)
 {
     return memchr(beg, c, end - beg);
@@ -737,8 +737,8 @@
          *     the next "/" character or the end of the input buffer.
          */
         } else {
-            char   *s = http_uri_str_chr(input + 1, end, '/');
-            size_t sz = s ? s - input : end - input;
+            const char *s = http_uri_str_chr(input + 1, end, '/');
+            size_t     sz = s ? s - input : end - input;
 
             memmove(path_end, input, sz);
             path_end += sz;
@@ -1783,13 +1783,14 @@
     if (content_type == NULL) {
         content_type = str_dup("text/plain");
     } else {
-        char *s;
+        char *content_type2 = str_dup_tolower(content_type);
+        char *s = strchr(content_type2, ';');
 
-        content_type = str_dup_tolower(content_type);
-        s = strchr(content_type, ';');
         if (s != NULL) {
             *s = '\0';
         }
+
+        content_type = content_type2;
     }
 
     data->content_type = content_type;
@@ -2156,7 +2157,8 @@
 static void
 http_query_set_host (http_query *q)
 {
-    char                  *host, *end, *buf;
+    const char            *host, *end;
+    char                  *buf;
     size_t                len;
     const struct sockaddr *addr = http_uri_addr(q->uri);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sane-airscan-0.99.36/airscan-mdns.c 
new/sane-airscan-0.99.37/airscan-mdns.c
--- old/sane-airscan-0.99.36/airscan-mdns.c     2025-07-25 13:41:45.000000000 
+0200
+++ new/sane-airscan-0.99.37/airscan-mdns.c     2026-03-10 18:26:18.000000000 
+0100
@@ -75,6 +75,7 @@
 static const AvahiPoll *mdns_avahi_poll;
 static AvahiTimeout *mdns_avahi_restart_timer;
 static AvahiClient *mdns_avahi_client;
+static bool mdns_avahi_client_set_pending;
 static bool mdns_avahi_browser_running;
 static AvahiServiceBrowser *mdns_avahi_browser[NUM_MDNS_SERVICE];
 static bool mdns_initscan[NUM_MDNS_SERVICE];
@@ -109,12 +110,12 @@
         sprintf(ifname, "%d", interface);
     }
 
-    if (in_name == NULL) {
+    if (in_name != NULL && in_type != NULL) {
+        snprintf(buf, sizeof(buf), "\"%s\", \"%s\"", in_type, in_name);
+    } else if (in_type != NULL) {
         snprintf(buf, sizeof(buf), "\"%s\"", in_type);
-    } else if (in_type == NULL) {
+    } else if (in_name != NULL) {
         snprintf(buf, sizeof(buf), "\"%s\"", in_name);
-    } else {
-        snprintf(buf, sizeof(buf), "\"%s\", \"%s\"", in_type, in_name);
     }
 
     flags &= AVAHI_LOOKUP_RESULT_CACHED |
@@ -901,7 +902,10 @@
          * return, so mdns_avahi_client may be still unset.
          * Fix it here
          */
-        mdns_avahi_client = client;
+        if (mdns_avahi_client_set_pending) {
+            mdns_avahi_client = client;
+            mdns_avahi_client_set_pending = false;
+        }
 
         if (!mdns_avahi_browser_running) {
             if (!mdns_avahi_browser_start()) {
@@ -946,12 +950,28 @@
 static void
 mdns_avahi_client_start (void)
 {
-    int error;
+    int         error;
+    AvahiClient *client;
 
     log_assert(mdns_log, mdns_avahi_client == NULL);
 
-    mdns_avahi_client = avahi_client_new (mdns_avahi_poll,
+    /* Note: mdns_avahi_client_callback may be invoked before
+     * avahi_client_new() returns. In that case, the callback will
+     * save the mdns_avahi_client pointer.  The callback may also
+     * initiate further operations that could fail, in which case it
+     * might reset mdns_avahi_client to NULL. To prevent this function
+     * from overwriting the callback's updates to mdns_avahi_client,
+     * we use the mdns_avahi_client_set_pending flag to coordinate access.
+     */
+    mdns_avahi_client_set_pending = true;
+    client = avahi_client_new (mdns_avahi_poll,
         AVAHI_CLIENT_NO_FAIL, mdns_avahi_client_callback, NULL, &error);
+
+    if (mdns_avahi_client_set_pending) {
+        mdns_avahi_client = client;
+        mdns_avahi_client_set_pending = false;
+    }
+
     if (mdns_avahi_client == NULL) {
        log_debug(mdns_log, "avahi_client_new failed: %s", 
avahi_strerror(error));
     }

Reply via email to