Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package sane-backends for openSUSE:Factory checked in at 2026-10-18 22:54:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sane-backends (Old) and /work/SRC/openSUSE:Factory/.sane-backends.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sane-backends" Sun Oct 18 22:54:14 2026 rev:99 rq:1385986 version:1.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/sane-backends/sane-backends.changes 2025-04-25 22:18:27.905407672 +0200 +++ /work/SRC/openSUSE:Factory/.sane-backends.new.3698736/sane-backends.changes 2026-10-18 22:54:40.172503771 +0200 @@ -1,0 +2,29 @@ +Sun Oct 18 05:57:39 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to 1.4.0: + * avision: support Xerox Book Scanner 4167 (rebadged FB6080E) + * canon_dr: new function-number option for Canon DR-3010 + * escl: validate Brother MFC-J453DW, Epson XP-4200, Canon PIXMA TS5100; + fix Kyocera reset-to-idle, Canon GX6050 SSL/TLS and HTTP2 header + case issues; lineart mode for ADF source + * hp5590: fix algorithmic error misreported as buffer size issue + * magicolor: support Toshiba TEC e-STUDIO2323AM plus ESTUDIO fixes + * pixma: support new PIXMA TS/G/E and imageClass MF4500w models; + fix buffer overflow for networked scanners + * rts8891: support Umax Astra 4400/4450 + * saned: network scanner relay (-n/--allow-network) and child + process lifecycle fixes + * Build fixes for MacOS/clang16 and the sm3600 C23 bool typedef; + Turkish translations added +- Drop remove_unnecessary_unicode_character.patch and c23-keywords.patch, + both fixed upstream +- Spec cleanup (spec-cleaner normalization); drop the now-redundant + libsane.la removal already covered by the .la cleanup + +------------------------------------------------------------------- +Fri Oct 16 07:42:37 UTC 2026 - Bernhard Wiedemann <[email protected]> + +- Add upstream sanei_thread-deferred-cancellation.patch + to to avoid stuck tests in perl-Image-Sane in 1-core-VM (boo#1170639) + +------------------------------------------------------------------- @@ -2291 +2319,0 @@ - @@ -2295 +2322,0 @@ -------------------------------------------- Old: ---- c23-keywords.patch remove_unnecessary_unicode_character.patch sane-backends-1.3.1.tar.gz New: ---- sane-backends-1.4.0.tar.gz sanei_thread-deferred-cancellation.patch ----------(Old B)---------- Old: Turkish translations added - Drop remove_unnecessary_unicode_character.patch and c23-keywords.patch, both fixed upstream Old: Turkish translations added - Drop remove_unnecessary_unicode_character.patch and c23-keywords.patch, both fixed upstream ----------(Old E)---------- ----------(New B)---------- New: - Add upstream sanei_thread-deferred-cancellation.patch to to avoid stuck tests in perl-Image-Sane in 1-core-VM (boo#1170639) ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sane-backends.spec ++++++ --- /var/tmp/diff_new_pack.Y0Zd7A/_old 2026-10-18 22:54:41.207547100 +0200 +++ /var/tmp/diff_new_pack.Y0Zd7A/_new 2026-10-18 22:54:41.208547142 +0200 @@ -1,7 +1,7 @@ # # spec file for package sane-backends # -# Copyright (c) 2024 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 @@ -16,45 +16,19 @@ # +%define libname libsane1 +# SANE build systems mangles backend SONAMEs to be libsane.so.x +%define __provides_exclude_from %{_libdir}/sane # Cf. https://rpm.org/user_doc/conditional_builds.html # by default enable support for PWG eSCL network backend %bcond_without escl # by default disable support for PWG eSCL network backend #bcond_with escl - Name: sane-backends -BuildRequires: autoconf-archive -BuildRequires: automake -BuildRequires: gcc-c++ -BuildRequires: libjpeg-devel -BuildRequires: libpng-devel -BuildRequires: libtiff-devel -BuildRequires: libtool -BuildRequires: libv4l-devel -BuildRequires: net-snmp-devel -BuildRequires: pkgconfig -%if %{with escl} -BuildRequires: pkgconfig(avahi-client) >= 0.6.24 -BuildRequires: pkgconfig(libcurl) -# since sane-backends 1.0.31 the escl backend requires libpoppler-glib-devel -# cf. https://gitlab.com/sane-project/backends/-/blob/master/INSTALL.linux -BuildRequires: libpoppler-glib-devel -%endif -BuildRequires: pkgconfig(libusb-1.0) -# The pixma backend requires libxml2 -BuildRequires: pkgconfig(libxml-2.0) -BuildRequires: pkgconfig(systemd) -%systemd_requires - -%define libname libsane1 -# SANE build systems mangles backend SONAMEs to be libsane.so.x -%define __provides_exclude_from %{_libdir}/sane - -Summary: SANE (Scanner Access Now Easy) Scanner Drivers -License: GPL-2.0-or-later AND SUSE-GPL-2.0+-with-sane-exception AND SUSE-Public-Domain -Group: Hardware/Scanner -Version: 1.3.1 +Version: 1.4.0 Release: 0 +Summary: SANE (Scanner Access Now Easy) Scanner Drivers +License: GPL-2.0-or-later AND SUSE-GPL-2.0+-with-sane-exception AND LicenseRef-SUSE-Public-Domain URL: http://www.sane-project.org/ # On https://gitlab.com/sane-project/backends/-/releases , the "Source code (tar.gz)" link # is a tarball auto-generated by GitLab and contains a snapshot of the git repository. @@ -85,10 +59,6 @@ # Sources 202 and 203 are files to enable socket based service activation which replaced xinetd Source202: [email protected] Source203: saned.socket -# PATCH-FIX-UPSTREAM - gl/sane-project/backends#848 - backend/kodakio.c: Remove unnecessary Unicode character -Patch0: remove_unnecessary_unicode_character.patch -# PATCH-FIX-UPSTREAM - gl/sane-project/backends#862 -Patch1: c23-keywords.patch # Patch100... is SUSE specific stuff: # Patch102 adapt_epkowa.desc_for_yast2-scanner.patch adapts epkowa.desc for yast2-scanner # (see https://bugzilla.opensuse.org/show_bug.cgi?id=788756#c14). @@ -101,18 +71,45 @@ # Furthermore it removes "unsupported" models from epkowa.desc because # otherwise there would be confusing model entries shown in yast2-scanner: Patch102: adapt_epkowa.desc_for_yast2-scanner.patch -# See https://bugzilla.novell.com/show_bug.cgi?id=437293 -%ifarch ppc64 -Obsoletes: sane-64bit -%endif +Patch103: https://gitlab.com/sane-project/backends/-/merge_requests/881.patch#/sanei_thread-deferred-cancellation.patch +BuildRequires: autoconf-archive +BuildRequires: automake +BuildRequires: gcc-c++ +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: libtool +BuildRequires: pkgconfig +BuildRequires: pkgconfig(libtiff-4) +BuildRequires: pkgconfig(libusb-1.0) +BuildRequires: pkgconfig(libv4l1) +BuildRequires: pkgconfig(libv4l2) +BuildRequires: pkgconfig(libv4l2rds) +BuildRequires: pkgconfig(libv4lconvert) +# The pixma backend requires libxml2 +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(netsnmp) +BuildRequires: pkgconfig(netsnmp-agent) +BuildRequires: pkgconfig(systemd) +# Pull in the same version, not just matching soname +Requires: %{libname} = %{version} # Up to SLE10 there was the package name 'sane' for 'sane-backends'. # Therefore this RPM provides 'sane' and it also obsoletes it. # The {version} is needed in both Provides and Obsoletes # to avoid a RPMLINT warning that the package obsoletes itself: Provides: sane = %{version} Obsoletes: sane < %{version} -# Pull in the same version, not just matching soname -Requires: %{libname} = %{version} +%systemd_requires +%if %{with escl} +BuildRequires: pkgconfig(avahi-client) >= 0.6.24 +BuildRequires: pkgconfig(libcurl) +# since sane-backends 1.0.31 the escl backend requires libpoppler-glib-devel +# cf. https://gitlab.com/sane-project/backends/-/blob/master/INSTALL.linux +BuildRequires: pkgconfig(poppler-glib) +%endif +# See https://bugzilla.novell.com/show_bug.cgi?id=437293 +%ifarch ppc64 +Obsoletes: sane-64bit +%endif %description The software consists of SANE scanner drivers, @@ -130,8 +127,7 @@ %package devel Summary: Development files for sane-backends -License: GPL-2.0-or-later AND SUSE-GPL-2.0+-with-sane-exception AND SUSE-Public-Domain -Group: Development/Libraries/C and C++ +License: GPL-2.0-or-later AND SUSE-GPL-2.0+-with-sane-exception AND LicenseRef-SUSE-Public-Domain Requires: %{libname} = %{version} %description devel @@ -139,10 +135,9 @@ %package -n %{libname} Summary: Core SANE library -License: GPL-2.0-or-later AND LGPL-2.1-or-later AND SUSE-Public-Domain -Group: Hardware/Scanner -Conflicts: sane-backends < %{version} +License: GPL-2.0-or-later AND LGPL-2.1-or-later AND LicenseRef-SUSE-Public-Domain Recommends: sane-backends +Conflicts: sane-backends < %{version} %description -n %{libname} This contains the SANE library. Individual scanner backends are provided @@ -150,8 +145,7 @@ %package autoconfig Summary: USB Scanner Autoconfiguration -License: GPL-2.0-or-later AND LGPL-2.1-or-later AND SUSE-Public-Domain -Group: Hardware/Scanner +License: GPL-2.0-or-later AND LGPL-2.1-or-later AND LicenseRef-SUSE-Public-Domain Requires: %{libname} = %{version} # When sane-backends is already installed, try to install also sane-backends-autoconfig if available: Supplements: sane-backends @@ -167,7 +161,7 @@ When a USB scanner is connected and its USB IDs match to an entry in the 56-sane-backends-autoconfig.rules file, the matching scanner driver -is activated (i.e. the driver line in /etc/sane.d/dll.conf is +is activated (i.e. the driver line in %{_sysconfdir}/sane.d/dll.conf is activated). It enables scanner drivers but never disables them. The reason is that @@ -181,10 +175,9 @@ %package -n sane-saned Summary: Sane network server -License: GPL-2.0-or-later AND LGPL-2.1-or-later AND SUSE-Public-Domain -Group: Hardware/Scanner -Provides: sane-backends:%{_sbindir}/saned +License: GPL-2.0-or-later AND LGPL-2.1-or-later AND LicenseRef-SUSE-Public-Domain Conflicts: %{name} < %{version} +Provides: sane-backends:%{_sbindir}/saned %description -n sane-saned Saned allows access to locally attached scanners over the network. @@ -193,10 +186,9 @@ # Patch100... is SUSE specific stuff: # Patch102 adapt_epkowa.desc_for_yast2-scanner.patch adapts epkowa.desc for yast2-scanner # see https://bugzilla.opensuse.org/show_bug.cgi?id=788756#c14 -%setup -n backends-%{version} -%patch -P0 -p1 -%patch -P1 -p1 -%patch -P102 -p0 +%setup -q -n backends-%{version} +%patch -P102 +%patch -P103 -p1 # Remove hpoj.desc completely to avoid confusion with its successor hpaio.desc # because since openSUSE 10.3 the package hp-officeJet (for hpoj.desc) is dropped. @@ -219,13 +211,13 @@ %build export CFLAGS="%{optflags} -D_GNU_SOURCE -DGIMP_ENABLE_COMPAT_CRUFT=1 -fno-strict-aliasing" -export LDFLAGS="-L/%_lib $LDFLAGS" +export LDFLAGS="-L/%{_lib} $LDFLAGS" ./autogen.sh # Enable pthread instead of fork (used in Debian since Feb 2009 and no issues so far), # see https://bugzilla.novell.com/show_bug.cgi?id=633780 # Disable locking because /var/lock/sane/ would be a world-writable directory. -./configure --prefix=/usr \ - --exec-prefix=/usr \ +./configure --prefix=%{_prefix} \ + --exec-prefix=%{_prefix} \ --sysconfdir=%{_sysconfdir} \ --libdir=%{_libdir} \ --sbindir=%{_sbindir} \ @@ -248,7 +240,7 @@ %make_build %install -%makeinstall +%make_install # The actual driver modules are installed as libsane-<driver>.so.{version} # and two libsane-<driver>.so.1 and libsane-<driver>.so links point to them. # Additionally a libsane-<driver>.la libtool archive file is installed @@ -259,7 +251,7 @@ # RPMLINT complains about libsane-<driver>.so with "devel-file-in-non-devel-package". # Therefore the libsane-<driver>.so and libsane-<driver>.la files are simply removed. rm %{buildroot}%{_libdir}/sane/libsane-*.so -rm %{buildroot}%{_libdir}/sane/libsane-*.la +find %{buildroot} -type f -name "*.la" -delete -print # Because of https://bugzilla.novell.com/show_bug.cgi?id=592143 for openSUSE 11.3 # even the /usr/lib/libsane.la file for the dll meta-backend is removed # regardless that it is unknown how whatever third-party scanning frontend @@ -268,7 +260,7 @@ # /usr/bin/xsane, and /usr/bin/skanlite do not need it. # The /usr/lib/libsane.so link for the dll meta-backend is kept because it is needed # during build-time by other packages which need sane-backends to build. -rm %{buildroot}%{_libdir}/libsane.la +# (Removed by the *.la cleanup above together with all other libtool archives.) # Disable all backends in /etc/sane.d/dll.conf to avoid problems when backends are active by default: perl -pi -e 's/^([^#].*)$/#$1/' %{buildroot}%{_sysconfdir}/sane.d/dll.conf # Allow all users to write into /var/lock/sane/ so that the backends work for normal users @@ -342,7 +334,7 @@ # and where the support status is "complete" or "good"). # Modify create_scanner_database to find the description files in the BuildRoot directory # (the usual delimiter '/' cannot be used because buildroot contains it too): -sed -i -e 's|/usr/share/sane/descriptions|%{buildroot}/usr/share/sane/descriptions|' create_scanner_database +sed -i -e 's|%{_datadir}/sane/descriptions|%{buildroot}%{_datadir}/sane/descriptions|' create_scanner_database # Create the scanner database and store it because it is also needed later # to disable "unsupported" model entries in the udev libsane.rules file. # The file name "scanner.database" is used hardcoded in create_sane-backends-autoconfig.rules. @@ -421,11 +413,11 @@ # must be removed, otherwise the upgrade will fail, # see https://bugzilla.opensuse.org/show_bug.cgi?id=1074054#c5 # and https://bugzilla.opensuse.org/attachment.cgi?id=760460 - if [ -d /usr/lib/systemd/system/saned.socket ] ; then - /usr/bin/rmdir /usr/lib/systemd/system/saned.socket + if [ -d %{_unitdir}/saned.socket ] ; then + %{_bindir}/rmdir %{_unitdir}/saned.socket fi - if [ -d /usr/lib/systemd/system/[email protected] ] ; then - /usr/bin/rmdir /usr/lib/systemd/system/[email protected] + if [ -d %{_unitdir}/[email protected] ] ; then + %{_bindir}/rmdir %{_unitdir}/[email protected] fi fi %service_add_pre saned.socket @@ -448,7 +440,7 @@ %{_sbindir}/saned %{_unitdir}/[email protected] %{_unitdir}/saned.socket -%doc %{_mandir}/man8/saned.8.gz +%{_mandir}/man8/saned.8%{?ext_man} %files -f sane-backends.lang %dir %{_sysconfdir}/sane.d @@ -463,11 +455,11 @@ %exclude %{_libdir}/sane/libsane-dll.so.* #dir /var/lock/sane %doc %{_defaultdocdir}/sane-backends/ -%doc %{_mandir}/man1/scanimage.1.gz -%doc %{_mandir}/man1/sane-find-scanner.1.gz -%doc %{_mandir}/man1/gamma4scanimage.1.gz -%doc %{_mandir}/man5/sane-*.5.gz -%doc %{_mandir}/man7/sane.7.gz +%{_mandir}/man1/scanimage.1%{?ext_man} +%{_mandir}/man1/sane-find-scanner.1%{?ext_man} +%{_mandir}/man1/gamma4scanimage.1%{?ext_man} +%{_mandir}/man5/sane-*.5%{?ext_man} +%{_mandir}/man7/sane.7%{?ext_man} %files -n %{libname} %dir %{_libdir}/sane/ @@ -481,7 +473,7 @@ %{_includedir}/sane/ %{_libdir}/libsane.so %{_libdir}/pkgconfig/sane-backends.pc -%doc %{_mandir}/man1/sane-config.1.gz +%{_mandir}/man1/sane-config.1%{?ext_man} %files autoconfig %{_udevrulesdir}/56-sane-backends-autoconfig.rules ++++++ sane-backends-1.3.1.tar.gz -> sane-backends-1.4.0.tar.gz ++++++ ++++ 23576 lines of diff (skipped) ++++++ sanei_thread-deferred-cancellation.patch ++++++ >From 8acc267d5f4049d8438456821137ae56e91baea9 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal <[email protected]> Date: Mon, 14 Jul 2025 10:02:34 +0200 Subject: [PATCH] sanei_thread.c: Use deferred cancellation mode The change prevents hangs in projects who run scanimage in their unit tests in rapid speeds, such as perl-Image-Sane. Without the patch, you can reproduce the issue with this command: `while true; do scanimage --verbose --device=test --batch-count=2; done` The command hangs after several iterations. --- sanei/sanei_thread.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sanei/sanei_thread.c b/sanei/sanei_thread.c index a5dcae154..c7f408b67 100644 --- a/sanei/sanei_thread.c +++ b/sanei/sanei_thread.c @@ -333,6 +333,10 @@ local_thread( void *arg ) static int status; pThreadDataDef ltd = (pThreadDataDef)arg; + /* Set signal handlers for Mac and Mach. On other systems, + * thread cancellation is enabled in deferred mode, + * which is glibc default. + */ #if defined (__APPLE__) && defined (__MACH__) struct sigaction act; @@ -340,11 +344,6 @@ local_thread( void *arg ) act.sa_flags = 0; act.sa_handler = thread_exit_handler; sigaction( SIGUSR2, &act, 0 ); -#else - int old; - - pthread_setcancelstate( PTHREAD_CANCEL_ENABLE, &old ); - pthread_setcanceltype ( PTHREAD_CANCEL_ASYNCHRONOUS, &old ); #endif DBG( 2, "thread started, calling func() now...\n" ); -- GitLab
