diff options
Diffstat (limited to 'debian')
28 files changed, 1117 insertions, 104 deletions
diff --git a/debian/changelog b/debian/changelog index 4208140..3917c26 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,43 @@ +sane-backends (1.0.31-1~experimental1) experimental; urgency=medium + + * New upstream release (Closes: #968949, #962539). + * Add back libsane transitional package, to ease upgrades (Closes: #962936): + - debian/control: Add package libsane as oldlibs. + Thanks to Gianfranco Costamagna <locutusofborg@debian.org>. + * debian/copyright: + - Fix lintian *-globbing-patterns errors. + - Refresh to the new upstream release. + * Convert debian/po/de.po to utf-8. + * New patches: + - debian/patches/0045-disable_lock_test_at_build_time.patch + - debian/patches/0050-Use-python3-shebang.patch + - debian/patches/0055-Fix_build_error.patch + - debian/patches/0165-respect_local_only_parameter.patch + * debian/rules: + - Use --enable-locking instead --disable-locking. + * debian/control: + - Add libpoppler-glib-dev to Build-Depends. + - Add ipp-usb to libsane1 Recommends (Closes: #968953). + * debian/libsane1.symbols: + - Remove 7 not longer available symbols. + * debian/saned@.service: + - Switch Standard[Output|Error] from syslog to append:/var/log/saned.log. + - New debian/sane-utils.logrotate to pack and remove old logs. + * debian/libsane-common.lintian-overrides: + - Rename tags. + * debian/patches/0125-multiarch_dll_search_path.patch: + - Add $(prefix)/lib64/sane to lib search path (Closes: #931297). + * Fix FTCBFS: (Closes: #948711) + - 0060-cross.patch: Make gphoto2 detection use the host architecture + pkg-config. + - Build tools/sane-desc for the build architecture. + - Thanks to Helmut Grohne <helmut@subdivi.de>. + * Remove files no longer needed: + - debian/saned.socket + - debian/saned@.service + + -- Jörg Frings-Fürst <debian@jff.email> Sat, 05 Sep 2020 17:48:20 +0200 + sane-backends (1.0.30-1~experimental2) experimental; urgency=medium * debian/not-installed: diff --git a/debian/control b/debian/control index fe40df3..b5e3f42 100644 --- a/debian/control +++ b/debian/control @@ -17,6 +17,7 @@ Build-Depends: libieee1284-3-dev [!hurd-i386], libjpeg-dev, libltdl3-dev, + libpoppler-glib-dev, libsnmp-dev [!kfreebsd-any], libsystemd-dev [linux-any], libtiff-dev, @@ -24,7 +25,8 @@ Build-Depends: libxml2-dev, pkg-config, po-debconf, - xutils-dev + xutils-dev, + python3-minimal Homepage: http://www.sane-project.org Vcs-Git: git://jff.email/opt/git/sane-backends.git Vcs-Browser: https://jff.email/cgit/sane-backends.git @@ -94,7 +96,9 @@ Depends: udev [linux-any], ${misc:Depends}, ${shlibs:Depends} -Recommends: sane-utils (>= ${binary:Version}) +Recommends: + sane-utils (>= ${binary:Version}), + ipp-usb Suggests: avahi-daemon, hplip Description: API library for scanners SANE stands for "Scanner Access Now Easy" and is an application @@ -131,3 +135,24 @@ Description: API development library for scanners [development files] . This package contains the files needed to build your applications using SANE. + +Package: libsane +Architecture: any +Multi-Arch: same +Section: oldlibs +Depends: + libsane1 (>= ${source:Version}), + ${misc:Depends} +Description: API library for scanners [transitional package] + SANE stands for "Scanner Access Now Easy" and is an application + programming interface (API) that provides standardized access to any + raster image scanner hardware (flatbed scanner, hand-held scanner, + video- and still-cameras, frame-grabbers, etc.). The SANE standard is + free and its discussion and development are open to everybody. The + current source code is written to support several operating systems, + including GNU/Linux, OS/2, Win32 and various Unices and is available + under the GNU General Public License (commercial applications and + backends are welcome, too, however). + . + This package is here to ensure smooth upgrades. It can be removed when + you see fit. diff --git a/debian/copyright b/debian/copyright index 80efaa3..9d9458a 100644 --- a/debian/copyright +++ b/debian/copyright @@ -121,7 +121,7 @@ License: GPL-2+ with sane exception Files: backend/escl/* Copyright: 2019 Touboul Nathane - 2019 Thierry HUCHARD <thierry@ordissimo.com> + 2019-2020 Thierry HUCHARD <thierry@ordissimo.com> License: GPL-2+ with sane exception Files: backend/epjitsu*.* @@ -181,7 +181,10 @@ License: GPL-2+ with sane exception Files: backend/genesys/error.cpp backend/genesys/serialize.h backend/genesys/error.h -Copyright: 2019 Povilas Kanapickas <povilas@radix.lt> + backend/genesys/value_filter.h + backend/genesys/tables_memory_layout.cpp + backend/genesys/gl842.cpp +Copyright: 2019-2020 Povilas Kanapickas <povilas@radix.lt> License: GPL-2+ with sane exception Files: backend/genesys/gl646.h @@ -253,6 +256,7 @@ Files: backend/hp5400.* backend/hp5400_xfer.* Copyright: 2003 Martijn van Oosterhout <kleptog@svana.org> 2003 Thomas Soumarmon <thomas.soumarmon@cogitae.net> + 2020 2020 Ralph Little <skelband@gmail.com> License: GPL-2+ with sane exception Files: backend/hp5400_internal.* @@ -260,6 +264,7 @@ Files: backend/hp5400_internal.* Copyright: 2003 Martijn van Oosterhout <kleptog@svana.org> 2003 Thomas Soumarmon <thomas.soumarmon@cogitae.net> 2003 Henning Meier-Geinitz, <henning@meier-geinitz.de> + 2020 Ralph Little <skelband@gmail.com> License: GPL-2+ with sane exception Files: backend/hp5590*.* @@ -299,7 +304,6 @@ License: GPL-2+ Files: backend/leo.* backend/matsushita.* backend/sceptre.* - backend/sceptre.c backend/teco1.* backend/teco3.* backend/umax-usb.c @@ -424,7 +428,7 @@ License: GPL-2+ with sane exception Files: backend/pixma/pixma*.* Copyright: 2007-2008 Nicolas Martin, <nicols-guest@alioth.debian.org> 2006-2007 Wittawat Yamwong <wittawat@web.de> - 2011-2019 Rolf Bensch <rolf@bensch-online.de> + 2011-2020 Rolf Bensch <rolf@bensch-online.de> License: GPL-2+ with sane exception Files: backend/pixma/pixma_bjnp*.* @@ -727,7 +731,11 @@ License: GPL-2+ with sane exception Files: po/he.po po/ca@valencia.po po/ca.po -Copyright: 2018 The SANE developers +Copyright: 2018-2020 The SANE developers +License: GPL-2+ with sane exception + +Files: po/de.po +Copyright: 2002-2020 SANE Project License: GPL-2+ with sane exception Files: po/fr.po @@ -864,16 +872,12 @@ Copyright: 2001-2005 Henning Meier-Geinitz 2011 Reinhold Kainhofer <reinhold@kainhofer.com> License: GPL-2+ with sane exception -Files: testsuite/backend/Makefile.am - testsuite/backend/genesys/Makefile.am -Copyright: 2019 Sane Developers -License: GPL-2+ with sane exception - Files: testsuite/backend/genesys/* Copyright: 2019 Povilas Kanapickas <povilas@radix.lt> License: GPL-2+ with sane exception -Files: testsuite/backend/genesys/Makefile.am +Files: testsuite/backend/Makefile.am + testsuite/backend/genesys/Makefile.am Copyright: 2019 Sane Developers License: GPL-2+ with sane exception @@ -893,10 +897,6 @@ Copyright: 2003-2005 Henning Meier-Geinitz <henning@meier-geinitz.de> 2003 Gerard Klaver <gerard@gkall.hobby.nl> License: GPL-2+ with sane exception -Files: tools/gamma4scanimage.c -Copyright: 1997-2004 Oliver Rauch -License: GPL-2+ - Files: tools/mustek600iin-off.c Copyright: 1997-1999 Andreas Czechanowski License: GPL-2+ diff --git a/debian/libsane-common.lintian-overrides b/debian/libsane-common.lintian-overrides index 1386138..4eede3d 100644 --- a/debian/libsane-common.lintian-overrides +++ b/debian/libsane-common.lintian-overrides @@ -1,6 +1,6 @@ # # doc/gt68xx/gt68xx.CHANGES:442:- Added "afe" option for gt68xx.conf for selecting default afe values. # -libsane-common: spelling-error-in-manpage usr/share/man/man5/sane-gt68xx.5.gz afe safe -libsane-common: spelling-error-in-manpage usr/share/man/man5/sane-gt68xx.5.gz afe safe -libsane-common: spelling-error-in-manpage usr/share/man/man5/sane-gt68xx.5.gz afe safe +libsane-common: typo-in-manual-page usr/share/man/man5/sane-gt68xx.5.gz afe safe +libsane-common: typo-in-manual-page usr/share/man/man5/sane-gt68xx.5.gz afe safe +libsane-common: typo-in-manual-page usr/share/man/man5/sane-gt68xx.5.gz afe safe diff --git a/debian/libsane1.symbols b/debian/libsane1.symbols index ee8e53d..45a21ff 100644 --- a/debian/libsane1.symbols +++ b/debian/libsane1.symbols @@ -79,10 +79,10 @@ libsane.so.1 libsane1 #MINVER# sanei_usb_testing_get_backend@Base 1.0.29 sanei_usb_testing_record_message@Base 1.0.29 sanei_usb_write_bulk@Base 1.0.29 - testing_append_commands_node@Base 1.0.29 - testing_known_commands_input_failed@Base 1.0.29 - testing_last_known_seq@Base 1.0.29 - testing_record_backend@Base 1.0.29 - testing_xml_doc@Base 1.0.29 - testing_xml_next_tx_node@Base 1.0.29 - testing_xml_path@Base 1.0.29 +#MISSING: 1.0.31# testing_append_commands_node@Base 1.0.29 +#MISSING: 1.0.31# testing_known_commands_input_failed@Base 1.0.29 +#MISSING: 1.0.31# testing_last_known_seq@Base 1.0.29 +#MISSING: 1.0.31# testing_record_backend@Base 1.0.29 +#MISSING: 1.0.31# testing_xml_doc@Base 1.0.29 +#MISSING: 1.0.31# testing_xml_next_tx_node@Base 1.0.29 +#MISSING: 1.0.31# testing_xml_path@Base 1.0.29 diff --git a/debian/patches/0040-remove_git.patch b/debian/patches/0040-remove_git.patch index 290f43b..d3df568 100644 --- a/debian/patches/0040-remove_git.patch +++ b/debian/patches/0040-remove_git.patch @@ -13,7 +13,7 @@ Index: trunk/configure.ac dnl and remove the git suffix. dnl ****************************************************************** -AC_INIT([sane-backends],m4_esyscmd_s([git describe --dirty]), -+AC_INIT([sane-backends],[1.0.29-debian], ++AC_INIT([sane-backends],[1.0.31-debian], [sane-devel@alioth-lists.debian.net]) AC_PREREQ([2.69]) dnl minimum autoconf version required AC_CONFIG_MACRO_DIR([m4]) diff --git a/debian/patches/0045-disable_lock_test_at_build_time.patch b/debian/patches/0045-disable_lock_test_at_build_time.patch new file mode 100644 index 0000000..e5f82f3 --- /dev/null +++ b/debian/patches/0045-disable_lock_test_at_build_time.patch @@ -0,0 +1,27 @@ +Description: Disable lock test at buildtime +Author: Jörg Frings-Fürst <debian@jff.emaill> +Forwarded: not-needed +Last-Update: 2020-08-28 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/acinclude.m4 +=================================================================== +--- trunk.orig/acinclude.m4 ++++ trunk/acinclude.m4 +@@ -359,11 +359,11 @@ AC_DEFUN([SANE_CHECK_LOCKING], + touch sanetest.file + chgrp $LOCKPATH_GROUP sanetest.file 2>/dev/null || lasterror=$? + rm -f sanetest.file +- if test ! -z "$lasterror"; then +- AC_MSG_WARN([Group $LOCKPATH_GROUP does not exist on this system.]) +- AC_MSG_WARN([Locking feature will be disabled.]) +- use_locking=no +- fi ++# if test ! -z "$lasterror"; then ++# AC_MSG_WARN([Group $LOCKPATH_GROUP does not exist on this system.]) ++# AC_MSG_WARN([Locking feature will be disabled.]) ++# use_locking=no ++# fi + fi + if test $use_locking = yes ; then + INSTALL_LOCKPATH=install-lockpath diff --git a/debian/patches/0050-Use-python3-shebang.patch b/debian/patches/0050-Use-python3-shebang.patch new file mode 100644 index 0000000..c3e85be --- /dev/null +++ b/debian/patches/0050-Use-python3-shebang.patch @@ -0,0 +1,16 @@ +Description: Use python3 shebang +Author: Jörg Frings-Fürst <debian@jff.email> +Forwarded: not-needed +Last-Update: 2020-08-28 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/backend/pixma/scripts/pixma_gen_options.py +=================================================================== +--- trunk.orig/backend/pixma/scripts/pixma_gen_options.py ++++ trunk/backend/pixma/scripts/pixma_gen_options.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + from __future__ import print_function + import sys,os,re diff --git a/debian/patches/0055-Fix_build_error.patch b/debian/patches/0055-Fix_build_error.patch new file mode 100644 index 0000000..3816692 --- /dev/null +++ b/debian/patches/0055-Fix_build_error.patch @@ -0,0 +1,36 @@ +Description: Fix build error +Author: Jörg Frings-Fürst <debian@jff.email> +Forwarded: not-needed +Last-Update: 2020-08-28 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/po/POTFILES.in +=================================================================== +--- trunk.orig/po/POTFILES.in ++++ trunk/po/POTFILES.in +@@ -65,7 +65,7 @@ backend/p5.c + backend/p5.h + backend/p5_device.c + backend/pixma/pixma.c +-backend/pixma/pixma_sane_options.c ++#backend/pixma/pixma_sane_options.c + backend/plustek.c + backend/plustek_pp.c + backend/pnm.c +Index: trunk/backend/Makefile.am +=================================================================== +--- trunk.orig/backend/Makefile.am ++++ trunk/backend/Makefile.am +@@ -947,10 +947,10 @@ $(srcdir)/pixma/pixma.c: \ + + $(srcdir)/pixma/pixma_sane_options.h: + @echo Generating $@ from $(@D)/pixma.c +- @(cd $(@D); python scripts/pixma_gen_options.py h < pixma.c > $(@F)) ++ @(cd $(@D); python3 scripts/pixma_gen_options.py h < pixma.c > $(@F)) + $(srcdir)/pixma/pixma_sane_options.c: + @echo Generating $@ from $(@D)/pixma.c +- @(cd $(@D); python scripts/pixma_gen_options.py < pixma.c > $(@F)) ++ @(cd $(@D); python3 scripts/pixma_gen_options.py < pixma.c > $(@F)) + + EXTRA_DIST += pixma/pixma_sane_options.c + EXTRA_DIST += pixma/pixma_sane_options.h diff --git a/debian/patches/0060-cross.patch b/debian/patches/0060-cross.patch new file mode 100644 index 0000000..4087882 --- /dev/null +++ b/debian/patches/0060-cross.patch @@ -0,0 +1,54 @@ +Description: Make gphoto2 detection use the host architecture pkg-config +Author: Helmut Grohne <helmut@subdivi.de> +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=948711 +Forwarded: not-needed +Last-Update: 2020-08-30 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/acinclude.m4 +=================================================================== +--- trunk.orig/acinclude.m4 ++++ trunk/acinclude.m4 +@@ -439,15 +439,19 @@ AC_DEFUN([SANE_CHECK_GPHOTO2], + # a program. And, if that works, then add the -l flags to + # GPHOTO2_LIBS and any other flags to GPHOTO2_LDFLAGS to pass to + # sane-config. +- if test "$with_gphoto2" != "no" ; then +- AC_CHECK_TOOL(HAVE_GPHOTO2, pkg-config, false) ++ AS_IF([test "$with_gphoto2" != "no"],[ ++ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) ++ if test "x$PKG_CONFIG" = x; then ++ HAVE_GPHOTO2=false ++ else ++ HAVE_GPHOTO2=$PKG_CONFIG ++ fi + + if test ${HAVE_GPHOTO2} != "false" ; then +- if pkg-config --exists libgphoto2 ; then +- with_gphoto2="`pkg-config --modversion libgphoto2`" +- GPHOTO2_CPPFLAGS="`pkg-config --cflags libgphoto2`" +- GPHOTO2_LIBS="`pkg-config --libs libgphoto2`" +- ++ if $PKG_CONFIG --exists libgphoto2 ; then ++ with_gphoto2="`$PKG_CONFIG --modversion libgphoto2`" ++ GPHOTO2_CPPFLAGS="`$PKG_CONFIG --cflags libgphoto2`" ++ GPHOTO2_LIBS="`$PKG_CONFIG --libs libgphoto2`" + saved_CPPFLAGS="${CPPFLAGS}" + CPPFLAGS="${GPHOTO2_CPPFLAGS}" + saved_LIBS="${LIBS}" +@@ -467,13 +471,13 @@ AC_DEFUN([SANE_CHECK_GPHOTO2], + GPHOTO2_LIBS="" + else + SANE_EXTRACT_LDFLAGS(GPHOTO2_LIBS, GPHOTO2_LDFLAGS) +- if pkg-config --atleast-version=2.5.0 libgphoto2; then ++ if $PKG_CONFIG --atleast-version=2.5.0 libgphoto2; then + AC_DEFINE([GPLOGFUNC_NO_VARGS], [1], + [Define if GPLogFunc does not take a va_list.]) + fi + fi + fi +- fi ++ ]) + AC_SUBST(GPHOTO2_CPPFLAGS) + AC_SUBST(GPHOTO2_LIBS) + AC_SUBST(GPHOTO2_LDFLAGS) diff --git a/debian/patches/0100-source_spelling.patch b/debian/patches/0100-source_spelling.patch index baca168..493c3ae 100644 --- a/debian/patches/0100-source_spelling.patch +++ b/debian/patches/0100-source_spelling.patch @@ -1,5 +1,6 @@ Description: Correct source typos Author: Jörg Frings-Fürst <debian@jff-webhosting.net> +Forwarded: not needed Last-Update: 2019-04-28 ---- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ @@ -63,7 +64,7 @@ Index: trunk/doc/sane-pixma.man =================================================================== --- trunk.orig/doc/sane-pixma.man +++ trunk/doc/sane-pixma.man -@@ -307,7 +307,7 @@ This will cause all further statements i +@@ -328,7 +328,7 @@ This will cause all further statements i .IP - A line that contains .B auto_detection=no @@ -72,7 +73,7 @@ Index: trunk/doc/sane-pixma.man .SH USB SUPPORT USB scanners will be auto-detected and require no configuration. .SH NETWORKING SUPPORT -@@ -337,7 +337,7 @@ common subnet for scanning. +@@ -358,7 +358,7 @@ common subnet for scanning. .PP Scanner detection is slightly more complicated. The pixma backend sends a broadcast on all direct connected subnets it can find (provided your OS diff --git a/debian/patches/0125-multiarch_dll_search_path.patch b/debian/patches/0125-multiarch_dll_search_path.patch index a213060..25726c7 100644 --- a/debian/patches/0125-multiarch_dll_search_path.patch +++ b/debian/patches/0125-multiarch_dll_search_path.patch @@ -7,7 +7,7 @@ Index: trunk/backend/dll.c =================================================================== --- trunk.orig/backend/dll.c +++ trunk/backend/dll.c -@@ -466,7 +466,7 @@ load (struct backend *be) +@@ -470,7 +470,7 @@ load (struct backend *be) if (path) { @@ -16,7 +16,7 @@ Index: trunk/backend/dll.c src = malloc (src_len); if (!src) { -@@ -476,11 +476,11 @@ load (struct backend *be) +@@ -480,11 +480,11 @@ load (struct backend *be) if (orig_src) free (orig_src); orig_src = src; @@ -39,7 +39,7 @@ Index: trunk/backend/Makefile.am ## included LICENSE file for license information. -AM_CPPFLAGS += -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include $(USB_CFLAGS) -DLIBDIR="\"$(libdir)/sane\"" -+AM_CPPFLAGS += -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include $(USB_CFLAGS) -DLIBDIR="\"$(libdir)/sane\"" -DDEB_DLL_LIBDIR="\"$(libdir)/sane:$(prefix)/lib/sane\"" ++AM_CPPFLAGS += -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include $(USB_CFLAGS) -DLIBDIR="\"$(libdir)/sane\"" -DDEB_DLL_LIBDIR="\"$(libdir)/sane:$(prefix)/lib/sane\:$(prefix)/lib64/sane\"" AM_LDFLAGS += $(STRICT_LDFLAGS) # The -rpath option is added because we are creating _LTLIBRARIES based diff --git a/debian/patches/0140-avahi.patch b/debian/patches/0140-avahi.patch index 89ec3f1..9c993b0 100644 --- a/debian/patches/0140-avahi.patch +++ b/debian/patches/0140-avahi.patch @@ -1,6 +1,7 @@ Description: Avoid assertion failure when net_avahi_init failed Author: Andreas Henriksson <andreas@fatal.se> Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=861112 +Forwarded: not needed Last-Update: 2017-06-20 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ @@ -8,45 +9,80 @@ Index: trunk/backend/net.c =================================================================== --- trunk.orig/backend/net.c +++ trunk/backend/net.c -@@ -1045,12 +1045,12 @@ sane_init (SANE_Int * version_code, SANE +@@ -771,7 +771,7 @@ net_avahi_browse_callback (AvahiServiceB + { + case AVAHI_BROWSER_FAILURE: + DBG (1, "net_avahi_browse_callback: %s\n", avahi_strerror (avahi_client_errno (avahi_service_browser_get_client (b)))); +- avahi_threaded_poll_quit (avahi_thread); ++ if (avahi_thread) avahi_threaded_poll_quit (avahi_thread); + return; + + case AVAHI_BROWSER_NEW: +@@ -836,7 +836,7 @@ net_avahi_callback (AvahiClient *c, Avah + if (avahi_browser == NULL) + { + DBG (1, "net_avahi_callback: could not create service browser: %s\n", avahi_strerror (avahi_client_errno (c))); +- avahi_threaded_poll_quit (avahi_thread); ++ if (avahi_thread) avahi_threaded_poll_quit (avahi_thread); + } + break; + +@@ -859,14 +859,14 @@ net_avahi_callback (AvahiClient *c, Avah + if (avahi_client == NULL) + { + DBG (1, "net_avahi_init: could not create Avahi client: %s\n", avahi_strerror (error)); +- avahi_threaded_poll_quit (avahi_thread); ++ if (avahi_thread) avahi_threaded_poll_quit (avahi_thread); + } + } + else + { + /* Another error happened - game over */ + DBG (1, "net_avahi_callback: server connection failure: %s\n", avahi_strerror (error)); +- avahi_threaded_poll_quit (avahi_thread); ++ if (avahi_thread) avahi_threaded_poll_quit (avahi_thread); + } + break; + } +@@ -1045,12 +1041,12 @@ sane_init (SANE_Int * version_code, SANE continue; } - #ifdef WITH_AVAHI + #if WITH_AVAHI - avahi_threaded_poll_lock (avahi_thread); + if (avahi_thread) avahi_threaded_poll_lock (avahi_thread); #endif /* WITH_AVAHI */ DBG (2, "sane_init: trying to add %s\n", device_name); add_device (device_name, 0); - #ifdef WITH_AVAHI + #if WITH_AVAHI - avahi_threaded_poll_unlock (avahi_thread); + if (avahi_thread) avahi_threaded_poll_unlock (avahi_thread); #endif /* WITH_AVAHI */ } -@@ -1096,12 +1096,12 @@ sane_init (SANE_Int * version_code, SANE +@@ -1096,12 +1092,12 @@ sane_init (SANE_Int * version_code, SANE continue; #endif /* ENABLE_IPV6 */ - #ifdef WITH_AVAHI + #if WITH_AVAHI - avahi_threaded_poll_lock (avahi_thread); + if (avahi_thread) avahi_threaded_poll_lock (avahi_thread); #endif /* WITH_AVAHI */ DBG (2, "sane_init: trying to add %s\n", host); add_device (host, 0); - #ifdef WITH_AVAHI + #if WITH_AVAHI - avahi_threaded_poll_unlock (avahi_thread); + if (avahi_thread) avahi_threaded_poll_unlock (avahi_thread); #endif /* WITH_AVAHI */ } free (copy); -@@ -1519,11 +1519,11 @@ sane_open (SANE_String_Const full_name, +@@ -1519,11 +1520,11 @@ sane_open (SANE_String_Const full_name, "sane_open: device %s not found, trying to register it anyway\n", nd_name); - #ifdef WITH_AVAHI + #if WITH_AVAHI - avahi_threaded_poll_lock (avahi_thread); + if (avahi_thread) avahi_threaded_poll_lock (avahi_thread); #endif /* WITH_AVAHI */ status = add_device (nd_name, &dev); - #ifdef WITH_AVAHI + #if WITH_AVAHI - avahi_threaded_poll_unlock (avahi_thread); + if (avahi_thread) avahi_threaded_poll_unlock (avahi_thread); #endif /* WITH_AVAHI */ diff --git a/debian/patches/0145-avahi.patch b/debian/patches/0145-avahi.patch index 023dec5..67c874b 100644 --- a/debian/patches/0145-avahi.patch +++ b/debian/patches/0145-avahi.patch @@ -1,6 +1,7 @@ Description: scanimage assert failure: *** Error in `scanimage': double free or corruption (top) Author: Laurent Vivier Laurent@vivier.eu Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/sane-backends/+bug/1208091 +Forwarded: not needed Last-Update: 2017-06-20 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ @@ -12,21 +13,22 @@ Index: trunk/backend/net.c first_device = NULL; first_handle = NULL; --#ifdef WITH_AVAHI +-#if WITH_AVAHI - net_avahi_init (); -#endif /* WITH_AVAHI */ - auth_callback = authorize; /* Return the version number of the sane-backends package to allow -@@ -1119,6 +1115,10 @@ sane_init (SANE_Int * version_code, SANE +@@ -1119,6 +1115,11 @@ sane_init (SANE_Int * version_code, SANE DBG (2, "sane_init: connect timeout set to %d seconds from env\n", connect_timeout); } -+#ifdef WITH_AVAHI ++#if WITH_AVAHI + net_avahi_init (); +#endif /* WITH_AVAHI */ + ++ DBG (2, "sane_init: done\n"); return SANE_STATUS_GOOD; } diff --git a/debian/patches/0150-i386-test.patch b/debian/patches/0150-i386-test.patch index 211fc84..864d32a 100644 --- a/debian/patches/0150-i386-test.patch +++ b/debian/patches/0150-i386-test.patch @@ -1,5 +1,6 @@ Description: Disable some tests that fail on i386 Author: Jörg Frings-Fürst <debian@jff.email> +Forwarded: not needed Last-Update: 2020-04-01 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ diff --git a/debian/patches/0155-hurd_PATH_MAX.patch b/debian/patches/0155-hurd_PATH_MAX.patch index 4a76248..41952c6 100644 --- a/debian/patches/0155-hurd_PATH_MAX.patch +++ b/debian/patches/0155-hurd_PATH_MAX.patch @@ -20,7 +20,7 @@ Index: trunk/backend/escl/escl.h =================================================================== --- trunk.orig/backend/escl/escl.h +++ trunk/backend/escl/escl.h -@@ -61,6 +61,10 @@ +@@ -62,6 +62,10 @@ # define DBGDUMP(level, buf, size) #endif @@ -30,7 +30,7 @@ Index: trunk/backend/escl/escl.h + #define ESCL_CONFIG_FILE "escl.conf" - typedef struct { + Index: trunk/backend/canon630u.c =================================================================== --- trunk.orig/backend/canon630u.c @@ -110,7 +110,7 @@ Index: trunk/backend/hp5400_sane.c =================================================================== --- trunk.orig/backend/hp5400_sane.c +++ trunk/backend/hp5400_sane.c -@@ -109,6 +109,9 @@ +@@ -88,6 +88,9 @@ #define NUM_GAMMA_ENTRIES 65536 @@ -349,8 +349,8 @@ Index: trunk/backend/pixma/pixma_bjnp.c =================================================================== --- trunk.orig/backend/pixma/pixma_bjnp.c +++ trunk/backend/pixma/pixma_bjnp.c -@@ -110,6 +110,12 @@ - # define SSIZE_MAX LONG_MAX +@@ -117,6 +117,12 @@ + # endif #endif +#ifndef HOST_NAME_MAX diff --git a/debian/patches/0165-respect_local_only_parameter.patch b/debian/patches/0165-respect_local_only_parameter.patch new file mode 100644 index 0000000..24fd39c --- /dev/null +++ b/debian/patches/0165-respect_local_only_parameter.patch @@ -0,0 +1,768 @@ +Description: respect 'local_only' parameter of sane_get_devices() +Author: Barnabás PÅ‘cze <pobrn@protonmail.com> +Origin: backport, https://gitlab.com/sane-project/backends/-/commit/245564dffe96ddf0fd1c703c48973cd35fddd268 +Bug: https://gitlab.com/sane-project/backends/-/merge_requests/502/ +Forwarded: no +Last-Update: 2020-09-05 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/backend/dell1600n_net.c +=================================================================== +--- trunk.orig/backend/dell1600n_net.c ++++ trunk/backend/dell1600n_net.c +@@ -288,8 +288,7 @@ sane_exit (void) + /***********************************************************/ + + SANE_Status +-sane_get_devices (const SANE_Device *** device_list, +- SANE_Bool __sane_unused__ local_only) ++sane_get_devices (const SANE_Device *** device_list, SANE_Bool local_only) + { + + int ret; +@@ -312,6 +311,10 @@ sane_get_devices (const SANE_Device *** + sock = 0; + pDevice = NULL; + optYes = 1; ++ ++ if (local_only) ++ return ret; ++ + InitComBuf (&queryPacket); + + /* clear previous results */ +Index: trunk/backend/epson2.c +=================================================================== +--- trunk.orig/backend/epson2.c ++++ trunk/backend/epson2.c +@@ -813,10 +813,11 @@ attach_one_pio(const char *dev) + } + + static SANE_Status +-attach_one_config(SANEI_Config __sane_unused__ *config, const char *line) ++attach_one_config(SANEI_Config __sane_unused__ *config, const char *line, ++ void *data) + { + int vendor, product; +- ++ SANE_Bool local_only = *(SANE_Bool*) data; + int len = strlen(line); + + DBG(7, "%s: len = %d, line = %s\n", __func__, len, line); +@@ -847,13 +848,16 @@ attach_one_config(SANEI_Config __sane_un + + } else if (strncmp(line, "net", 3) == 0) { + +- /* remove the "net" sub string */ +- const char *name = sanei_config_skip_whitespace(line + 3); +- +- if (strncmp(name, "autodiscovery", 13) == 0) +- e2_network_discovery(); +- else +- attach_one_net(name); ++ if (!local_only) { ++ /* remove the "net" sub string */ ++ const char *name = ++ sanei_config_skip_whitespace(line + 3); ++ ++ if (strncmp(name, "autodiscovery", 13) == 0) ++ e2_network_discovery(); ++ else ++ attach_one_net(name); ++ } + + } else if (strncmp(line, "pio", 3) == 0) { + +@@ -889,14 +893,14 @@ free_devices(void) + } + + static void +-probe_devices(void) ++probe_devices(SANE_Bool local_only) + { + DBG(5, "%s\n", __func__); + + free_devices(); + + sanei_configure_attach(EPSON2_CONFIG_FILE, NULL, +- attach_one_config); ++ attach_one_config, &local_only); + } + + SANE_Status +@@ -926,14 +930,14 @@ sane_exit(void) + } + + SANE_Status +-sane_get_devices(const SANE_Device ***device_list, SANE_Bool __sane_unused__ local_only) ++sane_get_devices(const SANE_Device ***device_list, SANE_Bool local_only) + { + Epson_Device *dev; + int i; + + DBG(5, "%s\n", __func__); + +- probe_devices(); ++ probe_devices(local_only); + + devlist = malloc((num_devices + 1) * sizeof(devlist[0])); + if (!devlist) { +@@ -1470,7 +1474,7 @@ sane_open(SANE_String_Const name, SANE_H + /* probe if empty device name provided */ + if (l == 0) { + +- probe_devices(); ++ probe_devices(SANE_FALSE); + + if (first_dev == NULL) { + DBG(1, "no device detected\n"); +@@ -1507,7 +1511,7 @@ sane_open(SANE_String_Const name, SANE_H + */ + + if (first_dev == NULL) +- probe_devices(); ++ probe_devices(SANE_FALSE); + + s = device_detect(name, SANE_EPSON_NODEV, 0, &status); + if (s == NULL) { +Index: trunk/backend/epsonds.c +=================================================================== +--- trunk.orig/backend/epsonds.c ++++ trunk/backend/epsonds.c +@@ -481,10 +481,11 @@ attach_one_net(const char *dev) + + + static SANE_Status +-attach_one_config(SANEI_Config __sane_unused__ *config, const char *line) ++attach_one_config(SANEI_Config __sane_unused__ *config, const char *line, ++ void *data) + { + int vendor, product; +- ++ SANE_Bool local_only = *(SANE_Bool*) data; + int len = strlen(line); + + DBG(7, "%s: len = %d, line = %s\n", __func__, len, line); +@@ -513,13 +514,16 @@ attach_one_config(SANEI_Config __sane_un + + } else if (strncmp(line, "net", 3) == 0) { + +- /* remove the "net" sub string */ +- const char *name = sanei_config_skip_whitespace(line + 3); +- +- if (strncmp(name, "autodiscovery", 13) == 0) +- e2_network_discovery(); +- else +- attach_one_net(name); ++ if (!local_only) { ++ /* remove the "net" sub string */ ++ const char *name = ++ sanei_config_skip_whitespace(line + 3); ++ ++ if (strncmp(name, "autodiscovery", 13) == 0) ++ e2_network_discovery(); ++ else ++ attach_one_net(name); ++ } + + } else { + DBG(0, "unable to parse config line: %s\n", line); +@@ -545,12 +549,13 @@ free_devices(void) + } + + static void +-probe_devices(void) ++probe_devices(SANE_Bool local_only) + { + DBG(5, "%s\n", __func__); + + free_devices(); +- sanei_configure_attach(EPSONDS_CONFIG_FILE, NULL, attach_one_config); ++ sanei_configure_attach(EPSONDS_CONFIG_FILE, NULL, ++ attach_one_config, &local_only); + } + + /**** SANE API ****/ +@@ -581,14 +586,14 @@ sane_exit(void) + } + + SANE_Status +-sane_get_devices(const SANE_Device ***device_list, SANE_Bool __sane_unused__ local_only) ++sane_get_devices(const SANE_Device ***device_list, SANE_Bool local_only) + { + int i; + epsonds_device *dev; + + DBG(5, "** %s\n", __func__); + +- probe_devices(); ++ probe_devices(local_only); + + devlist = malloc((num_devices + 1) * sizeof(devlist[0])); + if (!devlist) { +@@ -793,7 +798,7 @@ sane_open(SANE_String_Const name, SANE_H + /* probe if empty device name provided */ + if (name[0] == '\0') { + +- probe_devices(); ++ probe_devices(SANE_FALSE); + + if (first_dev == NULL) { + DBG(1, "no devices detected\n"); +Index: trunk/backend/escl/escl.c +=================================================================== +--- trunk.orig/backend/escl/escl.c ++++ trunk/backend/escl/escl.c +@@ -383,7 +383,8 @@ sane_exit(void) + * \return escl_add_in_list(escl_device) if the parsing worked, SANE_STATUS_GOOD otherwise. + */ + static SANE_Status +-attach_one_config(SANEI_Config __sane_unused__ *config, const char *line) ++attach_one_config(SANEI_Config __sane_unused__ *config, const char *line, ++ void __sane_unused__ *data) + { + int port = 0; + SANE_Status status; +@@ -487,7 +488,8 @@ sane_get_devices(const SANE_Device ***de + + if (device_list == NULL) + return (SANE_STATUS_INVAL); +- status = sanei_configure_attach(ESCL_CONFIG_FILE, NULL, attach_one_config); ++ status = sanei_configure_attach(ESCL_CONFIG_FILE, NULL, ++ attach_one_config, NULL); + if (status != SANE_STATUS_GOOD) + return (status); + escl_devices(&status); +Index: trunk/backend/genesys/genesys.cpp +=================================================================== +--- trunk.orig/backend/genesys/genesys.cpp ++++ trunk/backend/genesys/genesys.cpp +@@ -5186,7 +5186,8 @@ static SANE_Status attach_one_device(SAN + + // this function is passed to C API, it must not throw + static SANE_Status +-config_attach_genesys(SANEI_Config __sane_unused__ *config, const char *devname) noexcept ++config_attach_genesys(SANEI_Config __sane_unused__ *config, const char *devname, ++ void __sane_unused__ *data) noexcept + { + /* the devname has been processed and is ready to be used + * directly. Since the backend is an USB only one, we can +@@ -5214,7 +5215,8 @@ static void probe_genesys_devices() + config.values = nullptr; + config.count = 0; + +- auto status = sanei_configure_attach(GENESYS_CONFIG_FILE, &config, config_attach_genesys); ++ auto status = sanei_configure_attach(GENESYS_CONFIG_FILE, &config, ++ config_attach_genesys, NULL); + if (status == SANE_STATUS_ACCESS_DENIED) { + dbg.vlog(DBG_error0, "Critical error: Couldn't access configuration file '%s'", + GENESYS_CONFIG_FILE); +Index: trunk/backend/kodakaio.c +=================================================================== +--- trunk.orig/backend/kodakaio.c ++++ trunk/backend/kodakaio.c +@@ -2513,10 +2513,11 @@ attach_one_net(const char *dev, unsigned + } + + static SANE_Status +-attach_one_config(SANEI_Config __sane_unused__ *config, const char *line) ++attach_one_config(SANEI_Config __sane_unused__ *config, const char *line, ++ void *data) + { + int vendor, product, timeout; +- ++ SANE_Bool local_only = *(SANE_Bool*) data; + int len = strlen(line); + + DBG(7, "%s: len = %d, line = %s\n", __func__, len, line); +@@ -2550,27 +2551,30 @@ attach_one_config(SANEI_Config __sane_un + + } else if (strncmp(line, "net", 3) == 0) { + +- /* remove the "net" sub string */ +- const char *name = sanei_config_skip_whitespace(line + 3); +- char IP[1024]; +- unsigned int model = 0; +- +- if (strncmp(name, "autodiscovery", 13) == 0) { +- +-#if WITH_AVAHI +- DBG (30, "%s: Initiating network autodiscovery via avahi\n", __func__); +- kodak_network_discovery(NULL); +-#else +- DBG (20, "%s: Network autodiscovery not done because not configured with avahi.\n", __func__); +-#endif +- +- } else if (sscanf(name, "%s %x", IP, &model) == 2) { +- DBG(30, "%s: Using network device on IP %s, forcing model 0x%x\n", __func__, IP, model); +- attach_one_net(IP, model); +- } else { ++ if (!local_only) { ++ /* remove the "net" sub string */ ++ const char *name = ++ sanei_config_skip_whitespace(line + 3); ++ char IP[1024]; ++ unsigned int model = 0; ++ ++ if (strncmp(name, "autodiscovery", 13) == 0) { ++ ++ #if WITH_AVAHI ++ DBG (30, "%s: Initiating network autodiscovery via avahi\n", __func__); ++ kodak_network_discovery(NULL); ++ #else ++ DBG (20, "%s: Network autodiscovery not done because not configured with avahi.\n", __func__); ++ #endif ++ ++ } else if (sscanf(name, "%s %x", IP, &model) == 2) { ++ DBG(30, "%s: Using network device on IP %s, forcing model 0x%x\n", __func__, IP, model); ++ attach_one_net(IP, model); ++ } else { + DBG(1, "%s: net entry %s may be a host name?\n", __func__, name); + attach_one_net(name, 0); + } ++ } + + } else if (sscanf(line, "snmp-timeout %i\n", &timeout)) { + /* Timeout for auto network discovery */ +@@ -2646,7 +2650,7 @@ sane_exit(void) + } + + SANE_Status +-sane_get_devices(const SANE_Device ***device_list, SANE_Bool __sane_unused__ local_only) ++sane_get_devices(const SANE_Device ***device_list, SANE_Bool local_only) + { + Kodak_Device *dev, *s, *prev=0; + int i; +@@ -2662,7 +2666,7 @@ sane_get_devices(const SANE_Device ***de + + /* Read the config, mark each device as found, possibly add new devs */ + sanei_configure_attach(KODAKAIO_CONFIG_FILE, NULL, +- attach_one_config); ++ attach_one_config, &local_only); + + /*delete missing scanners from list*/ + for (s = first_dev; s;) { +Index: trunk/backend/magicolor.c +=================================================================== +--- trunk.orig/backend/magicolor.c ++++ trunk/backend/magicolor.c +@@ -2157,10 +2157,11 @@ attach_one_net(const char *dev, unsigned + } + + static SANE_Status +-attach_one_config(SANEI_Config __sane_unused__ *config, const char *line) ++attach_one_config(SANEI_Config __sane_unused__ *config, const char *line, ++ void *data) + { + int vendor, product, timeout; +- ++ SANE_Bool local_only = *(SANE_Bool*) data; + int len = strlen(line); + + DBG(7, "%s: len = %d, line = %s\n", __func__, len, line); +@@ -2189,24 +2190,27 @@ attach_one_config(SANEI_Config __sane_un + + } else if (strncmp(line, "net", 3) == 0) { + +- /* remove the "net" sub string */ +- const char *name = sanei_config_skip_whitespace(line + 3); +- char IP[1024]; +- unsigned int model = 0; +- +- if (strncmp(name, "autodiscovery", 13) == 0) { +- DBG (50, "%s: Initiating network autodiscovervy via SNMP\n", __func__); +- mc_network_discovery(NULL); +- } else if (sscanf(name, "%s %x", IP, &model) == 2) { +- DBG(50, "%s: Using network device on IP %s, forcing model 0x%x\n", __func__, IP, model); +- attach_one_net(IP, model); +- } else { +- /* use SNMP to detect the type. If not successful, +- * add the host with model type 0 */ +- DBG(50, "%s: Using network device on IP %s, trying to autodetect model\n", __func__, IP); +- if (mc_network_discovery(name)==0) { +- DBG(1, "%s: Autodetecting device model failed, using default model\n", __func__); +- attach_one_net(name, 0); ++ if (!local_only) { ++ /* remove the "net" sub string */ ++ const char *name = ++ sanei_config_skip_whitespace(line + 3); ++ char IP[1024]; ++ unsigned int model = 0; ++ ++ if (strncmp(name, "autodiscovery", 13) == 0) { ++ DBG (50, "%s: Initiating network autodiscovervy via SNMP\n", __func__); ++ mc_network_discovery(NULL); ++ } else if (sscanf(name, "%s %x", IP, &model) == 2) { ++ DBG(50, "%s: Using network device on IP %s, forcing model 0x%x\n", __func__, IP, model); ++ attach_one_net(IP, model); ++ } else { ++ /* use SNMP to detect the type. If not successful, ++ * add the host with model type 0 */ ++ DBG(50, "%s: Using network device on IP %s, trying to autodetect model\n", __func__, IP); ++ if (mc_network_discovery(name)==0) { ++ DBG(1, "%s: Autodetecting device model failed, using default model\n", __func__); ++ attach_one_net(name, 0); ++ } + } + } + +@@ -2279,7 +2283,7 @@ sane_exit(void) + } + + SANE_Status +-sane_get_devices(const SANE_Device ***device_list, SANE_Bool __sane_unused__ local_only) ++sane_get_devices(const SANE_Device ***device_list, SANE_Bool local_only) + { + Magicolor_Device *dev, *s, *prev=0; + int i; +@@ -2295,7 +2299,7 @@ sane_get_devices(const SANE_Device ***de + + /* Read the config, mark each device as found, possibly add new devs */ + sanei_configure_attach(MAGICOLOR_CONFIG_FILE, NULL, +- attach_one_config); ++ attach_one_config, &local_only); + + /*delete missing scanners from list*/ + for (s = first_dev; s;) { +Index: trunk/backend/p5.c +=================================================================== +--- trunk.orig/backend/p5.c ++++ trunk/backend/p5.c +@@ -1566,7 +1566,8 @@ probe_p5_devices (void) + config.count = NUM_CFG_OPTIONS; + + /* generic configure and attach function */ +- status = sanei_configure_attach (P5_CONFIG_FILE, &config, config_attach); ++ status = sanei_configure_attach (P5_CONFIG_FILE, &config, ++ config_attach, NULL); + /* free allocated options */ + for (i = 0; i < NUM_CFG_OPTIONS; i++) + { +@@ -1590,7 +1591,8 @@ probe_p5_devices (void) + * SANE_STATUS_INVAL in case of error + */ + static SANE_Status +-config_attach (SANEI_Config * config, const char *devname) ++config_attach (SANEI_Config __sane_unused__ * config, const char *devname, ++ void __sane_unused__ *data) + { + /* currently, the config is a global variable so config is useless here */ + /* the correct thing would be to have a generic sanei_attach_matching_devices +Index: trunk/backend/p5.h +=================================================================== +--- trunk.orig/backend/p5.h ++++ trunk/backend/p5.h +@@ -195,7 +195,8 @@ typedef struct P5_Session + + static SANE_Status probe_p5_devices (void); + static P5_Model *probe (const char *devicename); +-static SANE_Status config_attach (SANEI_Config * config, const char *devname); ++static SANE_Status config_attach (SANEI_Config * config, const char *devname, ++ void *data); + static SANE_Status attach_p5 (const char *name, SANEI_Config * config); + static SANE_Status init_options (struct P5_Session *session); + static SANE_Status compute_parameters (struct P5_Session *session); +Index: trunk/backend/pixma/pixma.c +=================================================================== +--- trunk.orig/backend/pixma/pixma.c ++++ trunk/backend/pixma/pixma.c +@@ -159,10 +159,11 @@ static void mark_all_button_options_cach + ss -> button_option_is_cached[i] = 1; + } + +-static SANE_Status config_attach_pixma(SANEI_Config * config, const char *devname) ++static SANE_Status config_attach_pixma(SANEI_Config __sane_unused__ * config, ++ const char *devname, ++ void __sane_unused__ *data) + { + int i; +- UNUSED(config); + for (i=0; i < (MAX_CONF_DEVICES -1); i++) + { + if(conf_devices[i] == NULL) +@@ -1656,8 +1657,8 @@ sane_init (SANE_Int * version_code, SANE + config.descriptors = NULL; + config.values = NULL; + +- if (sanei_configure_attach(PIXMA_CONFIG_FILE, &config, config_attach_pixma) != +- SANE_STATUS_GOOD) ++ if (sanei_configure_attach(PIXMA_CONFIG_FILE, &config, ++ config_attach_pixma, NULL) != SANE_STATUS_GOOD) + PDBG(pixma_dbg(2, "Could not read pixma configuration file: %s\n", + PIXMA_CONFIG_FILE)); + +Index: trunk/backend/rts8891.c +=================================================================== +--- trunk.orig/backend/rts8891.c ++++ trunk/backend/rts8891.c +@@ -217,7 +217,7 @@ static Rts8891_Config rtscfg; + /* ------------------------------------------------------------------------- */ + static SANE_Status probe_rts8891_devices (void); + static SANE_Status config_attach_rts8891 (SANEI_Config * config, +- const char *devname); ++ const char *devname, void *data); + static SANE_Status attach_rts8891 (const char *name); + static SANE_Status set_lamp_brightness (struct Rts8891_Device *dev, + int level); +@@ -2374,7 +2374,7 @@ probe_rts8891_devices (void) + + /* generic configure and attach function */ + status = sanei_configure_attach (RTS8891_CONFIG_FILE, &config, +- config_attach_rts8891); ++ config_attach_rts8891, NULL); + /* free allocated options */ + for (i = 0; i < NUM_CFG_OPTIONS; i++) + { +@@ -2398,7 +2398,8 @@ probe_rts8891_devices (void) + * SANE_STATUS_INVAL in case of error + */ + static SANE_Status +-config_attach_rts8891 (SANEI_Config * config, const char *devname) ++config_attach_rts8891 (SANEI_Config * config, const char *devname, ++ void __sane_unused__ *data) + { + /* currently, the config is a global variable so config is useless here */ + /* the correct thing would be to have a generic sanei_attach_matching_devices +Index: trunk/backend/umax_pp.c +=================================================================== +--- trunk.orig/backend/umax_pp.c ++++ trunk/backend/umax_pp.c +@@ -419,7 +419,8 @@ umax_pp_auto_attach (SANEI_Config * conf + * device name to use for attach try. + */ + static SANE_Status +-umax_pp_configure_attach (SANEI_Config * config, const char *devname) ++umax_pp_configure_attach (SANEI_Config * config, const char *devname, ++ void __sane_unused__ *data) + { + const char *lp; + SANE_Char *token; +@@ -961,7 +962,7 @@ sane_init (SANE_Int * version_code, SANE + + /* generic configure and attach function */ + status = sanei_configure_attach (UMAX_PP_CONFIG_FILE, &config, +- umax_pp_configure_attach); ++ umax_pp_configure_attach, NULL); + + /* free option descriptors */ + for (i = 0; i < NUM_CFG_OPTIONS; i++) +Index: trunk/backend/xerox_mfp.c +=================================================================== +--- trunk.orig/backend/xerox_mfp.c ++++ trunk/backend/xerox_mfp.c +@@ -1028,7 +1028,8 @@ list_one_device(SANE_String_Const devnam + + /* SANE API ignores return code of this callback */ + static SANE_Status +-list_conf_devices(UNUSED(SANEI_Config *config), const char *devname) ++list_conf_devices(SANEI_Config __sane_unused__ *config, const char *devname, ++ void __sane_unused__ *data) + { + return tr_from_devname(devname)->configure_device(devname, list_one_device); + } +@@ -1080,7 +1081,7 @@ sane_get_devices(const SANE_Device *** d + config.count = 0; + config.descriptors = NULL; + config.values = NULL; +- sanei_configure_attach(XEROX_CONFIG_FILE, &config, list_conf_devices); ++ sanei_configure_attach(XEROX_CONFIG_FILE, &config, list_conf_devices, NULL); + + for (dev_count = 0, dev = devices_head; dev; dev = dev->next) + dev_count++; +Index: trunk/include/sane/sanei_config.h +=================================================================== +--- trunk.orig/include/sane/sanei_config.h ++++ trunk/include/sane/sanei_config.h +@@ -166,7 +166,9 @@ typedef struct + extern SANE_Status sanei_configure_attach ( + const char *config_file, + SANEI_Config *config, +- SANE_Status (*config_attach)(SANEI_Config *config, const char *devname) ++ SANE_Status (*config_attach)(SANEI_Config *config, const char *devname, ++ void *data), ++ void *data + ); + + /** Return the list of config directories, extracted from the SANE_CONFIG_DIR +Index: trunk/sanei/sanei_config.c +=================================================================== +--- trunk.orig/sanei/sanei_config.c ++++ trunk/sanei/sanei_config.c +@@ -239,7 +239,8 @@ sanei_config_read (char *str, int n, FIL + SANE_Status + sanei_configure_attach (const char *config_file, SANEI_Config * config, + SANE_Status (*attach) (SANEI_Config * config, +- const char *devname)) ++ const char *devname, void *data), ++ void *data) + { + SANE_Char line[PATH_MAX]; + SANE_Char *token, *string; +@@ -443,7 +444,7 @@ sanei_configure_attach (const char *conf + DBG (3, "sanei_configure_attach: trying to attach with '%s'\n", + lp2); + if(attach!=NULL) +- attach (config, lp2); ++ attach (config, lp2, data); + } + } + +Index: trunk/testsuite/sanei/sanei_config_test.c +=================================================================== +--- trunk.orig/testsuite/sanei/sanei_config_test.c ++++ trunk/testsuite/sanei/sanei_config_test.c +@@ -63,7 +63,8 @@ static const SANE_String_Const string_li + static char *lastdevname = NULL; + + static SANE_Status +-check_config_attach (SANEI_Config * config, const char *devname) ++check_config_attach (SANEI_Config * config, const char *devname, ++ void __sane_unused__ *data) + { + /* silence compiler warning for now */ + if (config == NULL) +@@ -97,7 +98,8 @@ inexistent_config (void) + config.descriptors = NULL; + config.values = NULL; + status = sanei_configure_attach (CONFIG_PATH +- "/data/inexistent.conf", &config, NULL); ++ "/data/inexistent.conf", &config, ++ NULL, NULL); + + /* check results */ + assert (status != SANE_STATUS_GOOD); +@@ -114,7 +116,7 @@ null_config (void) + + status = + sanei_configure_attach (CONFIG_PATH "/data/umax_pp.conf", NULL, +- check_config_attach); ++ check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); +@@ -130,7 +132,7 @@ null_attach (void) + SANE_Status status; + + status = sanei_configure_attach (CONFIG_PATH +- "/data/umax_pp.conf", NULL, NULL); ++ "/data/umax_pp.conf", NULL, NULL, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); +@@ -151,7 +153,7 @@ empty_config (void) + config.values = NULL; + status = + sanei_configure_attach (CONFIG_PATH "/data/empty.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); +@@ -206,7 +208,7 @@ string_option (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/string.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); +@@ -250,7 +252,7 @@ int_option (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/int.conf", &config, +- check_config_attach); ++ check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); +@@ -293,7 +295,7 @@ wrong_range_int_option (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/wrong-range.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_INVAL); +@@ -336,7 +338,7 @@ word_array_option (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/word-array.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); +@@ -382,7 +384,7 @@ string_list_option (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/string-list.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); +@@ -428,7 +430,7 @@ wrong_string_list_option (void) + status = + sanei_configure_attach (CONFIG_PATH + "/data/wrong-string-list.conf", &config, +- check_config_attach); ++ check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_INVAL); +@@ -563,7 +565,7 @@ umax_pp (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/umax_pp.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); +@@ -631,7 +633,7 @@ wrong_bool_option (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/wrong-boolean.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_INVAL); +@@ -696,7 +698,7 @@ bool_option (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/boolean.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); +@@ -767,7 +769,7 @@ fixed_option (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/fixed.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); +@@ -814,7 +816,7 @@ wrong_fixed_option (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/wrong-fixed.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_INVAL); +@@ -852,7 +854,7 @@ snapscan (void) + /* configure and attach */ + status = + sanei_configure_attach (CONFIG_PATH "/data/snapscan.conf", +- &config, check_config_attach); ++ &config, check_config_attach, NULL); + + /* check results */ + assert (status == SANE_STATUS_GOOD); diff --git a/debian/patches/0600-scanimage_manpage.patch b/debian/patches/0600-scanimage_manpage.patch index 26cedf4..e163e9c 100644 --- a/debian/patches/0600-scanimage_manpage.patch +++ b/debian/patches/0600-scanimage_manpage.patch @@ -1,7 +1,7 @@ Description: Add remark to options. Author: Jörg Frings-Fürst <debian@jff-webhosting.net> Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=418630 -Forwarded: +Forwarded: not needed Last-Update: 2015-01-18 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ diff --git a/debian/patches/0700-mk_reproducible_results.patch b/debian/patches/0700-mk_reproducible_results.patch index 1b0a7bc..78f9e5b 100644 --- a/debian/patches/0700-mk_reproducible_results.patch +++ b/debian/patches/0700-mk_reproducible_results.patch @@ -1,5 +1,6 @@ Description: Make build reproducible. Author: Jörg Frings-Fürst <debian@jff-webhosting.net> +Forwarded: not needed Last-Update: 2019-08-11 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ diff --git a/debian/patches/0725-fix_link_60-libsane_rule.patch b/debian/patches/0725-fix_link_60-libsane_rule.patch index 018e796..ec851cf 100644 --- a/debian/patches/0725-fix_link_60-libsane_rule.patch +++ b/debian/patches/0725-fix_link_60-libsane_rule.patch @@ -9,7 +9,7 @@ Index: trunk/tools/sane-desc.c =================================================================== --- trunk.orig/tools/sane-desc.c +++ trunk/tools/sane-desc.c -@@ -3665,7 +3665,7 @@ print_udevhwdb_header (void) +@@ -3651,7 +3651,7 @@ print_udevhwdb_header (void) ("#\n" "# udev rules file for supported USB and SCSI devices\n" "#\n" diff --git a/debian/patches/series b/debian/patches/series index 75a0ddc..d79cdd7 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -5,10 +5,15 @@ 0140-avahi.patch 0145-avahi.patch 0600-scanimage_manpage.patch -0700-mk_reproducible_results.patch +#0700-mk_reproducible_results.patch 0705-kfreebsd.patch -0715-20-sane.hwdb_multi-arch.patch +#0715-20-sane.hwdb_multi-arch.patch 0725-fix_link_60-libsane_rule.patch 0150-i386-test.patch 0155-hurd_PATH_MAX.patch -0160-big_endian.patch +#0160-big_endian.patch +0045-disable_lock_test_at_build_time.patch +0050-Use-python3-shebang.patch +0055-Fix_build_error.patch +0060-cross.patch +0165-respect_local_only_parameter.patch diff --git a/debian/po/de.po b/debian/po/de.po index 54ff942..175e51c 100644 --- a/debian/po/de.po +++ b/debian/po/de.po @@ -27,7 +27,7 @@ msgstr "Aktiviere Saned als Einzel-Server?" msgid "" "The saned server, when enabled, makes scanners available over the network." msgstr "" -"Der Saned-Server stellt Scanner über das Netz zu Verfügung, wenn er " +"Der Saned-Server stellt Scanner über das Netz zu Verfügung, wenn er " "aktiviert ist." #. Type: boolean @@ -41,10 +41,10 @@ msgid "" "runs in the background all by itself and listens for client connections." msgstr "" "Es gibt zwei Arten, Saned zu betreiben:\n" -" - als Inetd-Service, gestartet über den Inetd-Superserver. In diesem Modus\n" +" - als Inetd-Service, gestartet über den Inetd-Superserver. In diesem Modus\n" "wird Saned nach Bedarf gestartet, wenn sich ein Client mit dem Server\n" "verbindet.\n" -" - als Einzel-Server, gestartet beim Systemstart. In diesem Modus läuft " +" - als Einzel-Server, gestartet beim Systemstart. In diesem Modus läuft " "Saned\n" " selbst im Hintergrund und wartet auf Anfragen von Clients." @@ -58,24 +58,24 @@ msgid "" "from your clients. This feature is experimental and requires a running Avahi " "daemon." msgstr "" -"Im Einzel-Server-Modus macht sich Saned über das Netz bekannt und kann von " +"Im Einzel-Server-Modus macht sich Saned über das Netz bekannt und kann von " "SANE-Clients ohne Konfiguration auf der Clientseite automatisch erkannt " -"werden. Sie müssen dennoch den Server konfigurieren, damit er Verbindungen " -"von den Clients akzeptiert. Diese Funktionalität ist experimentell und " -"benötigt einen laufenden Avahi-Daemon." +"werden. Sie müssen dennoch den Server konfigurieren, damit er Verbindungen " +"von den Clients akzeptiert. Diese Funktionalität ist experimentell und " +"benötigt einen laufenden Avahi-Daemon." #. Type: boolean #. Description #: ../sane-utils.templates:1001 msgid "Accept this option if you want to make use of this feature." msgstr "" -"Akzeptieren Sie diese Option, falls Sie diese Funktionalität nutzen wollen." +"Akzeptieren Sie diese Option, falls Sie diese Funktionalität nutzen wollen." #. Type: boolean #. Description #: ../sane-utils.templates:2001 msgid "Add saned user to the scanner group?" -msgstr "Saned-Benutzer zu der Scanner-Gruppe hinzufügen?" +msgstr "Saned-Benutzer zu der Scanner-Gruppe hinzufügen?" #. Type: boolean #. Description @@ -86,9 +86,9 @@ msgid "" "your machine, you can control which ones will be made available over the " "network." msgstr "" -"Falls er aktiviert wird, stellt der Saned-Server Scanner über das Netz " +"Falls er aktiviert wird, stellt der Saned-Server Scanner über das Netz " "bereit. Durch Verteilen verschiedener Rechte auf verschiedene Scanner an " -"Ihrer Maschine können Sie steuern, welche davon über Netz bereitgestellt " +"Ihrer Maschine können Sie steuern, welche davon über Netz bereitgestellt " "werden." #. Type: boolean @@ -99,8 +99,8 @@ msgid "" "permissions for saned. By default, saned is run under the saned user and " "group." msgstr "" -"Lesen Sie /usr/share/doc/sane-utils/README.Debian für Details über die " -"Rechteverwaltung für Saned. Standardmäßig läuft Saned unter dem saned-" +"Lesen Sie /usr/share/doc/sane-utils/README.Debian für Details über die " +"Rechteverwaltung für Saned. Standardmäßig läuft Saned unter dem saned-" "Benutzer und dessen Gruppe." #. Type: boolean @@ -110,5 +110,5 @@ msgid "" "Accept this option if you want to make all your scanners available over the " "network without restriction." msgstr "" -"Akzeptieren Sie diese Option, falls Sie alle Ihre Scanner über das Netz ohne " -"Einschränkungen zur Verfügung stellen wollen." +"Akzeptieren Sie diese Option, falls Sie alle Ihre Scanner über das Netz ohne " +"Einschränkungen zur Verfügung stellen wollen." diff --git a/debian/rules b/debian/rules index eac8ba3..8bab3c0 100755 --- a/debian/rules +++ b/debian/rules @@ -23,10 +23,24 @@ endif %: dh $@ +ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) +SANE_DESC = $(CURDIR)/tools/sane-desc +else +SANE_DESC = $(CURDIR)/debian/sane-desc +endif + override_dh_auto_configure: autoconf - dh_auto_configure -- --host=$(DEB_HOST_GNU_TYPE) \ - --build=$(DEB_BUILD_GNU_TYPE) \ +ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) + dpkg-architecture -f "-a$(DEB_BUILD_ARCH)" -c dh_auto_configure + $(MAKE) -C $(CURDIR)/lib liblib.la + $(MAKE) -C $(CURDIR)/sanei libsanei.la + $(MAKE) -C $(CURDIR)/tools sane-desc + mv $(CURDIR)/tools/sane-desc $(CURDIR)/debian/sane-desc + $(RM) include/byteorder.h include/_stdint.h + dh_auto_clean +endif + dh_auto_configure -- \ --prefix=/usr \ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ --sysconfdir=/etc \ @@ -34,7 +48,7 @@ override_dh_auto_configure: --datadir=\$${prefix}/share \ --mandir=\$${prefix}/share/man \ --docdir=\$${prefix}/share/doc/libsane \ - --disable-locking \ + --enable-locking \ --enable-static \ --enable-pthread \ --with-gphoto2 \ @@ -49,8 +63,8 @@ override_dh_autoreconf: override_dh_auto_build-indep: # generate POT file for translators - (cd po && make sane-backends.pot) $(MAKE) + (cd po && make sane-backends.pot) override_dh_auto_clean: # Autoconf-generated files @@ -59,6 +73,7 @@ override_dh_auto_clean: [ ! -f Makefile ] || $(MAKE) distclean $(RM) debian/libsane1.udev dh_auto_clean + $(RM) $(SANE_DESC) override_dh_auto_install-arch: $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp @@ -75,6 +90,7 @@ override_dh_install-arch: # Install the pkg-config file mkdir -p debian/libsane-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/ cp tools/sane-backends.pc debian/libsane-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/ + cp debian/sane-utils.logrotate debian/sane-utils/etc/logrotate.d/sane-utils override_dh_install-indep: dh_install @@ -116,8 +132,9 @@ override_dh_installudev-arch: ifeq (linux,$(DEB_HOST_ARCH_OS)) # udev support # Generate the udev rules file - $(CURDIR)/tools/sane-desc -s $(CURDIR)/doc/descriptions -m udev+hwdb > $(CURDIR)/debian/libsane1.udev - $(CURDIR)/tools/sane-desc -s $(CURDIR)/doc/descriptions -m hwdb > $(CURDIR)/debian/20-sane.hwdb + $(SANE_DESC) -s $(CURDIR)/doc/descriptions -m udev+hwdb > $(CURDIR)/debian/libsane1.udev + $(SANE_DESC) -s $(CURDIR)/doc/descriptions -m hwdb > $(CURDIR)/debian/20-sane.hwdb + cp $(CURDIR)/debian/20-sane.hwdb $(CURDIR)/debian/libsane1/lib/udev/hwdb.d/ dh_installudev endif diff --git a/debian/sane-utils.dirs b/debian/sane-utils.dirs new file mode 100644 index 0000000..ebf3df5 --- /dev/null +++ b/debian/sane-utils.dirs @@ -0,0 +1 @@ +/etc/logrotate.d diff --git a/debian/sane-utils.logrotate b/debian/sane-utils.logrotate new file mode 100644 index 0000000..654e370 --- /dev/null +++ b/debian/sane-utils.logrotate @@ -0,0 +1,9 @@ +/var/log/saned.log { + daily + missingok + rotate 7 + compress + copytruncate + notifempty + create 640 saned saned +} diff --git a/debian/sane-utils.saned@.service b/debian/sane-utils.saned@.service index 425ee7a..2ef2d2f 100644 --- a/debian/sane-utils.saned@.service +++ b/debian/sane-utils.saned@.service @@ -7,8 +7,8 @@ ExecStart=/usr/sbin/saned User=saned Group=saned StandardInput=null -StandardOutput=syslog -StandardError=syslog +StandardOutput=append:/var/log/saned.log +StandardError=append:/var/log/saned.log Environment=SANE_CONFIG_DIR=/etc/sane.d # Environment=SANE_CONFIG_DIR=/etc/sane.d SANE_DEBUG_DLL=255 diff --git a/debian/saned.socket b/debian/saned.socket deleted file mode 100644 index a14daef..0000000 --- a/debian/saned.socket +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=saned incoming socket - -[Socket] -ListenStream=6566 -Accept=yes -MaxConnections=64 - -[Install] -WantedBy=sockets.target diff --git a/debian/saned@.service b/debian/saned@.service deleted file mode 100644 index 425ee7a..0000000 --- a/debian/saned@.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Scanner Service -Requires=saned.socket - -[Service] -ExecStart=/usr/sbin/saned -User=saned -Group=saned -StandardInput=null -StandardOutput=syslog -StandardError=syslog -Environment=SANE_CONFIG_DIR=/etc/sane.d -# Environment=SANE_CONFIG_DIR=/etc/sane.d SANE_DEBUG_DLL=255 - -[Install] -Also=saned.socket |