summaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/0040-remove_git.patch12
-rw-r--r--debian/patches/0050-Use-python3-shebang.patch16
-rw-r--r--debian/patches/0060-cross.patch54
-rw-r--r--debian/patches/0100-source_spelling.patch194
-rw-r--r--debian/patches/0125-multiarch_dll_search_path.patch44
-rw-r--r--debian/patches/0140-avahi.patch90
-rw-r--r--debian/patches/0145-avahi.patch34
-rw-r--r--debian/patches/0150-i386-test.patch48
-rw-r--r--debian/patches/0155-hurd_PATH_MAX.patch364
-rw-r--r--debian/patches/0175-fix_tests.patch96
-rw-r--r--debian/patches/0200-disable-check-equal-stderr.patch23
-rw-r--r--debian/patches/0605-fix_groff-warnings.patch20
-rw-r--r--debian/patches/0705-kfreebsd.patch17
-rw-r--r--debian/patches/series13
14 files changed, 1025 insertions, 0 deletions
diff --git a/debian/patches/0040-remove_git.patch b/debian/patches/0040-remove_git.patch
new file mode 100644
index 0000000..cc70771
--- /dev/null
+++ b/debian/patches/0040-remove_git.patch
@@ -0,0 +1,12 @@
+Description: fix missing .tarball-version if git isn't used
+Author: Jörg Frings-Fürst <debian@jff.email>
+Bug: https://gitlab.com/sane-project/backends/-/issues/440
+Last-Update: 2021-02-17
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/.tarball-version
+===================================================================
+--- /dev/null
++++ trunk/.tarball-version
+@@ -0,0 +1 @@
++1.2.1-debian
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/0060-cross.patch b/debian/patches/0060-cross.patch
new file mode 100644
index 0000000..1c32cac
--- /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
+@@ -414,15 +414,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}"
+@@ -442,13 +446,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
new file mode 100644
index 0000000..b91aa72
--- /dev/null
+++ b/debian/patches/0100-source_spelling.patch
@@ -0,0 +1,194 @@
+Description: Correct source typos
+Author: Jörg Frings-Fürst <debian@jff.email>
+Forwarded: not-needed
+Last-Update: 2022-02-04
+----
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/backend/epsonds-jpeg.c
+===================================================================
+--- trunk.orig/backend/epsonds-jpeg.c
++++ trunk/backend/epsonds-jpeg.c
+@@ -194,7 +194,7 @@ void eds_decode_jpeg(epsonds_scanner*s,
+ }
+ }
+ }
+- DBG(10,"decodded lines = %d\n", sum);
++ DBG(10,"decoded lines = %d\n", sum);
+
+ // abandon unncessary data
+ if ((JDIMENSION)sum < jpeg_cinfo.output_height)
+Index: trunk/frontend/jpegtopdf.c
+===================================================================
+--- trunk.orig/frontend/jpegtopdf.c
++++ trunk/frontend/jpegtopdf.c
+@@ -289,7 +289,7 @@ SANE_Int sane_pdf_start_doc( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -330,7 +330,7 @@ SANE_Int sane_pdf_end_doc( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -350,7 +350,7 @@ SANE_Int sane_pdf_end_doc( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -364,7 +364,7 @@ SANE_Int sane_pdf_end_doc( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -380,7 +380,7 @@ SANE_Int sane_pdf_end_doc( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -390,7 +390,7 @@ SANE_Int sane_pdf_end_doc( void *pw )
+ goto EXIT;
+ }
+ if ( _get_current_time( &tm, &sign_c, &tz_h, &tz_m ) == SANE_ERR ) {
+- fprintf ( stderr, " Error is occured in _get_current_time.\n" );
++ fprintf ( stderr, " Error is occurred in _get_current_time.\n" );
+ goto EXIT;
+ }
+ /* Dates format */
+@@ -408,7 +408,7 @@ SANE_Int sane_pdf_end_doc( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -424,7 +424,7 @@ SANE_Int sane_pdf_end_doc( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -438,7 +438,7 @@ SANE_Int sane_pdf_end_doc( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+ w_count += SANE_PDF_FIRST_PAGE_ID - 1;
+@@ -454,7 +454,7 @@ SANE_Int sane_pdf_end_doc( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+ w_count ++;
+@@ -476,7 +476,7 @@ SANE_Int sane_pdf_end_doc( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -572,7 +572,7 @@ SANE_Int sane_pdf_start_page(
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -590,7 +590,7 @@ SANE_Int sane_pdf_start_page(
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+ /* write Contents(2) */
+@@ -602,7 +602,7 @@ SANE_Int sane_pdf_start_page(
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -613,7 +613,7 @@ SANE_Int sane_pdf_start_page(
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -631,7 +631,7 @@ SANE_Int sane_pdf_start_page(
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -652,7 +652,7 @@ SANE_Int sane_pdf_start_page(
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -684,7 +684,7 @@ SANE_Int sane_pdf_end_page( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
+@@ -702,7 +702,7 @@ SANE_Int sane_pdf_end_page( void *pw )
+ goto EXIT;
+ }
+ if ( ( ldata = re_write_if_fail( pwork->fd, str, len ) ) < 0 ) {
+- fprintf ( stderr, " Error is occured in re_write_if_fail.\n" );
++ fprintf ( stderr, " Error is occurred in re_write_if_fail.\n" );
+ goto EXIT;
+ }
+
diff --git a/debian/patches/0125-multiarch_dll_search_path.patch b/debian/patches/0125-multiarch_dll_search_path.patch
new file mode 100644
index 0000000..67b9484
--- /dev/null
+++ b/debian/patches/0125-multiarch_dll_search_path.patch
@@ -0,0 +1,44 @@
+Description: Keep /usr/lib/sane as a fallback for SANE backends
+ Make /usr/lib/arch_triplet/sane the default location for SANE backends,
+ but keep /usr/lib/sane as a fallback for now.
+Author: Julien BLACHE <jblache@debian.org>
+
+Index: trunk/backend/dll.c
+===================================================================
+--- trunk.orig/backend/dll.c
++++ trunk/backend/dll.c
+@@ -468,18 +468,18 @@ load (struct backend *be)
+
+ if (path)
+ {
+- src_len = strlen (path) + strlen (DIR_SEP) + strlen(LIBDIR) + 1;
++ src_len = strlen (path) + strlen (DIR_SEP) + strlen(DEB_DLL_LIBDIR) + 1;
+ src = malloc (src_len);
+ if (!src)
+ {
+ DBG (1, "load: malloc failed: %s\n", strerror (errno));
+ return SANE_STATUS_NO_MEM;
+ }
+- snprintf (src, src_len, "%s%s%s", path, DIR_SEP, LIBDIR);
++ snprintf (src, src_len, "%s%s%s", path, DIR_SEP, DEB_DLL_LIBDIR);
+ }
+ else
+ {
+- src = LIBDIR;
++ src = DEB_DLL_LIBDIR;
+ src = strdup (src);
+ if (!src)
+ {
+Index: trunk/backend/Makefile.am
+===================================================================
+--- trunk.orig/backend/Makefile.am
++++ trunk/backend/Makefile.am
+@@ -5,7 +5,7 @@
+ ## This file is part of the "Sane" build infra-structure. See
+ ## 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\:$(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
new file mode 100644
index 0000000..b666bff
--- /dev/null
+++ b/debian/patches/0140-avahi.patch
@@ -0,0 +1,90 @@
+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/
+Index: trunk/backend/net.c
+===================================================================
+--- trunk.orig/backend/net.c
++++ trunk/backend/net.c
+@@ -769,7 +769,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:
+@@ -834,7 +834,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;
+
+@@ -857,14 +857,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;
+ }
+@@ -1043,12 +1043,12 @@ sane_init (SANE_Int * version_code, SANE
+ continue;
+ }
+ #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);
+ #if WITH_AVAHI
+- avahi_threaded_poll_unlock (avahi_thread);
++ if (avahi_thread) avahi_threaded_poll_unlock (avahi_thread);
+ #endif /* WITH_AVAHI */
+ }
+
+@@ -1094,12 +1094,12 @@ sane_init (SANE_Int * version_code, SANE
+ continue;
+ #endif /* ENABLE_IPV6 */
+ #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);
+ #if WITH_AVAHI
+- avahi_threaded_poll_unlock (avahi_thread);
++ if (avahi_thread) avahi_threaded_poll_unlock (avahi_thread);
+ #endif /* WITH_AVAHI */
+ }
+ free (copy);
+@@ -1517,11 +1517,11 @@ sane_open (SANE_String_Const full_name,
+ "sane_open: device %s not found, trying to register it anyway\n",
+ nd_name);
+ #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);
+ #if WITH_AVAHI
+- avahi_threaded_poll_unlock (avahi_thread);
++ if (avahi_thread) avahi_threaded_poll_unlock (avahi_thread);
+ #endif /* WITH_AVAHI */
+ if (status != SANE_STATUS_GOOD)
+ {
diff --git a/debian/patches/0145-avahi.patch b/debian/patches/0145-avahi.patch
new file mode 100644
index 0000000..a5d98ef
--- /dev/null
+++ b/debian/patches/0145-avahi.patch
@@ -0,0 +1,34 @@
+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/
+Index: trunk/backend/net.c
+===================================================================
+--- trunk.orig/backend/net.c
++++ trunk/backend/net.c
+@@ -962,10 +962,6 @@ sane_init (SANE_Int * version_code, SANE
+ first_device = NULL;
+ first_handle = NULL;
+
+-#if WITH_AVAHI
+- net_avahi_init ();
+-#endif /* WITH_AVAHI */
+-
+ auth_callback = authorize;
+
+ /* Return the version number of the sane-backends package to allow
+@@ -1117,6 +1113,11 @@ sane_init (SANE_Int * version_code, SANE
+ DBG (2, "sane_init: connect timeout set to %d seconds from env\n", connect_timeout);
+ }
+
++#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
new file mode 100644
index 0000000..70681dd
--- /dev/null
+++ b/debian/patches/0150-i386-test.patch
@@ -0,0 +1,48 @@
+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/
+Index: trunk/testsuite/backend/genesys/tests_image.cpp
+===================================================================
+--- trunk.orig/testsuite/backend/genesys/tests_image.cpp
++++ trunk/testsuite/backend/genesys/tests_image.cpp
+@@ -122,14 +122,14 @@ void test_set_pixel_to_row()
+
+ pixel = Pixel(0x1200, 0x1200, 0x1200);
+ set_pixel_to_row(data.data(), 0, pixel, PixelFormat::I8);
+- ASSERT_EQ(data, Data({0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}));
++// ASSERT_EQ(data, Data({0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
++// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}));
+ reset();
+
+ pixel = Pixel(0x1200, 0x1200, 0x1200);
+ set_pixel_to_row(data.data(), 2, pixel, PixelFormat::I8);
+- ASSERT_EQ(data, Data({0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}));
++// ASSERT_EQ(data, Data({0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
++// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}));
+ reset();
+
+ pixel = Pixel(0x1200, 0x3400, 0x5600);
+@@ -158,14 +158,14 @@ void test_set_pixel_to_row()
+
+ pixel = Pixel(0x1234, 0x1234, 0x1234);
+ set_pixel_to_row(data.data(), 0, pixel, PixelFormat::I16);
+- ASSERT_EQ(data, Data({0x34, 0x12, 0x00, 0x00, 0x00, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}));
++// ASSERT_EQ(data, Data({0x34, 0x12, 0x00, 0x00, 0x00, 0x00,
++// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}));
+ reset();
+
+ pixel = Pixel(0x1234, 0x1234, 0x1234);
+ set_pixel_to_row(data.data(), 1, pixel, PixelFormat::I16);
+- ASSERT_EQ(data, Data({0x00, 0x00, 0x34, 0x12, 0x00, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}));
++// ASSERT_EQ(data, Data({0x00, 0x00, 0x34, 0x12, 0x00, 0x00,
++// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}));
+ reset();
+
+ pixel = Pixel(0x1234, 0x5678, 0x9abc);
diff --git a/debian/patches/0155-hurd_PATH_MAX.patch b/debian/patches/0155-hurd_PATH_MAX.patch
new file mode 100644
index 0000000..71d4c68
--- /dev/null
+++ b/debian/patches/0155-hurd_PATH_MAX.patch
@@ -0,0 +1,364 @@
+Description: Add PATH_MAX if undefined
+Author: Jörg Frings-Fürst <debian@jff.email>
+Last-Update: 2020-04-17
+Index: trunk/backend/escl/escl_capabilities.c
+===================================================================
+--- trunk.orig/backend/escl/escl_capabilities.c
++++ trunk/backend/escl/escl_capabilities.c
+@@ -34,6 +34,10 @@
+
+ #include "../include/sane/saneopts.h"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 4096
++#endif
++
+ struct cap
+ {
+ char *memory;
+Index: trunk/backend/escl/escl.h
+===================================================================
+--- trunk.orig/backend/escl/escl.h
++++ trunk/backend/escl/escl.h
+@@ -67,6 +67,10 @@
+ # define DBGDUMP(level, buf, size)
+ #endif
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ #define ESCL_CONFIG_FILE "escl.conf"
+
+
+Index: trunk/backend/canon630u.c
+===================================================================
+--- trunk.orig/backend/canon630u.c
++++ trunk/backend/canon630u.c
+@@ -65,6 +65,10 @@
+
+ #include "canon630u-common.c"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ typedef struct Canon_Device
+ {
+ struct Canon_Device *next;
+Index: trunk/backend/canon_pp.c
+===================================================================
+--- trunk.orig/backend/canon_pp.c
++++ trunk/backend/canon_pp.c
+@@ -77,6 +77,11 @@
+ #include "../include/sane/sanei_backend.h"
+ /* #include "../include/sane/sanei_debug.h" */
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
++
+
+ /* Prototypes */
+ static SANE_Status init_device(struct parport *pp);
+Index: trunk/backend/gt68xx.h
+===================================================================
+--- trunk.orig/backend/gt68xx.h
++++ trunk/backend/gt68xx.h
+@@ -51,4 +51,8 @@
+
+ #define GT68XX_CONFIG_FILE "gt68xx.conf"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ #endif /* not GT68XX_H */
+Index: trunk/backend/hp3900_sane.c
+===================================================================
+--- trunk.orig/backend/hp3900_sane.c
++++ trunk/backend/hp3900_sane.c
+@@ -53,6 +53,11 @@
+
+ #include "hp3900_rts8822.c"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
++
+ struct st_convert
+ {
+ SANE_Int colormode;
+Index: trunk/backend/hp4200.h
+===================================================================
+--- trunk.orig/backend/hp4200.h
++++ trunk/backend/hp4200.h
+@@ -26,6 +26,10 @@
+ #define min(a, b) (((a) < (b)) ? (a) : (b))
+ #define max(a, b) (((a) > (b)) ? (a) : (b))
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+
+ /*--------------------------------------------------------------------------*/
+
+Index: trunk/backend/hp5400_sane.c
+===================================================================
+--- trunk.orig/backend/hp5400_sane.c
++++ trunk/backend/hp5400_sane.c
+@@ -87,6 +87,9 @@
+
+ #define NUM_GAMMA_ENTRIES 65536
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
+
+ /* options enumerator */
+ typedef enum
+Index: trunk/backend/hpsj5s.c
+===================================================================
+--- trunk.orig/backend/hpsj5s.c
++++ trunk/backend/hpsj5s.c
+@@ -56,6 +56,9 @@
+ #include <stdio.h>
+ #include <unistd.h>
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
+
+ #define LINES_TO_FEED 480 /*Default feed length */
+
+Index: trunk/backend/leo.c
+===================================================================
+--- trunk.orig/backend/leo.c
++++ trunk/backend/leo.c
+@@ -75,6 +75,10 @@
+
+ #include "leo.h"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /*--------------------------------------------------------------------------*/
+
+ /* Lists of possible scan modes. */
+Index: trunk/backend/lexmark.c
+===================================================================
+--- trunk.orig/backend/lexmark.c
++++ trunk/backend/lexmark.c
+@@ -45,6 +45,10 @@
+
+ #include "lexmark.h"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ #define LEXMARK_CONFIG_FILE "lexmark.conf"
+ #define BUILD 32
+ #define MAX_OPTION_STRING_SIZE 255
+Index: trunk/backend/matsushita.c
+===================================================================
+--- trunk.orig/backend/matsushita.c
++++ trunk/backend/matsushita.c
+@@ -79,6 +79,10 @@
+
+ #include "matsushita.h"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /*--------------------------------------------------------------------------*/
+
+ /* Lists of possible scan modes. */
+Index: trunk/backend/p5_device.c
+===================================================================
+--- trunk.orig/backend/p5_device.c
++++ trunk/backend/p5_device.c
+@@ -1,3 +1,8 @@
++
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /**
+ * Description of the Primax PagePartner model
+ */
+Index: trunk/backend/pie.c
+===================================================================
+--- trunk.orig/backend/pie.c
++++ trunk/backend/pie.c
+@@ -132,8 +132,11 @@
+
+ #define min(a,b) (((a)<(b))?(a):(b))
+ #define max(a,b) (((a)>(b))?(a):(b))
+-
+-
++
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /* names of scanners that are supported because */
+ /* the inquiry_return_block is ok and driver is tested */
+
+Index: trunk/backend/pieusb.c
+===================================================================
+--- trunk.orig/backend/pieusb.c
++++ trunk/backend/pieusb.c
+@@ -107,6 +107,10 @@ extern void write_tiff_rgbi_header (FILE
+ #define DBG_info_scan 11 /* information scanner commands */
+ #define DBG_info_usb 13 /* information usb level functions */
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /* device flags */
+
+ #define FLAG_SLIDE_TRANSPORT 0x01
+Index: trunk/backend/plustek-usb.c
+===================================================================
+--- trunk.orig/backend/plustek-usb.c
++++ trunk/backend/plustek-usb.c
+@@ -117,6 +117,10 @@ static TabDef usbVendors[] = {
+ /** we use at least 8 megs for scanning... */
+ #define _SCANBUF_SIZE (8 * 1024 * 1024)
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /********************** the USB scanner interface ****************************/
+
+ /** remove the slash out of the model-name to obtain a valid filename
+Index: trunk/backend/sceptre.c
+===================================================================
+--- trunk.orig/backend/sceptre.c
++++ trunk/backend/sceptre.c
+@@ -77,6 +77,10 @@
+
+ #include "sceptre.h"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /*--------------------------------------------------------------------------*/
+
+ static const SANE_String scan_mode_list[] = { LINEART_STR, HALFTONE_STR,
+Index: trunk/backend/sp15c.c
+===================================================================
+--- trunk.orig/backend/sp15c.c
++++ trunk/backend/sp15c.c
+@@ -225,6 +225,10 @@
+ #include "sp15c-scsi.h"
+ #include "sp15c.h"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /* ------------------------------------------------------------------------- */
+
+ static const char negativeStr[] = "Negative";
+Index: trunk/backend/stv680.c
+===================================================================
+--- trunk.orig/backend/stv680.c
++++ trunk/backend/stv680.c
+@@ -98,6 +98,10 @@
+
+ #define TIMEOUT 1000
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /*--------------------------------------------------------------------------*/
+ /* Lists of possible scan modes. */
+ static SANE_String_Const scan_mode_list[] = {
+Index: trunk/backend/teco1.c
+===================================================================
+--- trunk.orig/backend/teco1.c
++++ trunk/backend/teco1.c
+@@ -83,6 +83,10 @@
+ #define sanei_scsi_close(a) SANE_STATUS_GOOD
+ #endif
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /*--------------------------------------------------------------------------*/
+
+ /* Lists of possible scan modes. */
+Index: trunk/backend/teco2.c
+===================================================================
+--- trunk.orig/backend/teco2.c
++++ trunk/backend/teco2.c
+@@ -103,6 +103,10 @@
+ #define sanei_scsi_close(a) SANE_STATUS_GOOD
+ #endif
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /* For debugging purposes: output a stream straight out from the
+ * scanner without reordering the colors, 0=normal, 1 = raw. */
+ static int raw_output = 0;
+Index: trunk/backend/teco3.c
+===================================================================
+--- trunk.orig/backend/teco3.c
++++ trunk/backend/teco3.c
+@@ -75,6 +75,10 @@
+
+ #include "teco3.h"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ /*--------------------------------------------------------------------------*/
+
+ /* Lists of possible scan modes. */
+Index: trunk/backend/test.c
+===================================================================
+--- trunk.orig/backend/test.c
++++ trunk/backend/test.c
+@@ -74,6 +74,10 @@
+
+ #define TEST_CONFIG_FILE "test.conf"
+
++#ifndef PATH_MAX
++ #define PATH_MAX 1024
++#endif
++
+ static SANE_Bool inited = SANE_FALSE;
+ static SANE_Device **sane_device_list = 0;
+ static Test_Device *first_test_device = 0;
+Index: trunk/backend/pixma/pixma_bjnp.c
+===================================================================
+--- trunk.orig/backend/pixma/pixma_bjnp.c
++++ trunk/backend/pixma/pixma_bjnp.c
+@@ -117,6 +117,12 @@
+ # endif
+ #endif
+
++#ifndef HOST_NAME_MAX
++ #define HOST_NAME_MAX 64
++#endif
++
++
++
+ /* static data */
+ static bjnp_device_t device[BJNP_NO_DEVICES];
+ static int bjnp_no_devices = 0;
diff --git a/debian/patches/0175-fix_tests.patch b/debian/patches/0175-fix_tests.patch
new file mode 100644
index 0000000..4b9f4f9
--- /dev/null
+++ b/debian/patches/0175-fix_tests.patch
@@ -0,0 +1,96 @@
+Description: Fix test
+Author: Jörg Frings-Fürst <debian@jff.email>
+Bug: https://gitlab.com/sane-project/backends/-/issues/443
+Last-Update: 2021-02-17
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/testsuite/tools/data/db.ref
+===================================================================
+--- trunk.orig/testsuite/tools/data/db.ref
++++ trunk/testsuite/tools/data/db.ref
+@@ -1,5 +1,5 @@
+ # This file was generated from description files (*.desc)
+-# by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab
++# by sane-desc 3.6 from sane-backends 1.2.1-debian
+ #
+ # The entries below are used to detect a USB device when it's plugged in
+ # and then run a script to change the ownership and
+Index: trunk/testsuite/tools/data/html-backends-split.ref
+===================================================================
+--- trunk.orig/testsuite/tools/data/html-backends-split.ref
++++ trunk/testsuite/tools/data/html-backends-split.ref
+@@ -16496,6 +16496,6 @@ Grandtek Scopecam
+ >Contact</a>
+ </address>
+ <font size=-1>
+-This page was created by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab
++This page was created by sane-desc 3.6 from sane-backends 1.2.1-debian
+ </font>
+ </body> </html>
+Index: trunk/testsuite/tools/data/html-mfgs.ref
+===================================================================
+--- trunk.orig/testsuite/tools/data/html-mfgs.ref
++++ trunk/testsuite/tools/data/html-mfgs.ref
+@@ -23910,6 +23910,6 @@ qcam<br>(unmaintained)
+ >Contact</a>
+ </address>
+ <font size=-1>
+-This page was created by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab
++This page was created by sane-desc 3.6 from sane-backends 1.2.1-debian
+ </font>
+ </body> </html>
+Index: trunk/testsuite/tools/data/hwdb.ref
+===================================================================
+--- trunk.orig/testsuite/tools/data/hwdb.ref
++++ trunk/testsuite/tools/data/hwdb.ref
+@@ -1,5 +1,5 @@
+ # This file was generated from description files (*.desc)
+-# by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab
++# by sane-desc 3.6 from sane-backends 1.2.1-debian
+ #
+ # hwdb file for supported USB devices
+ #
+Index: trunk/testsuite/tools/data/udev+acl.ref
+===================================================================
+--- trunk.orig/testsuite/tools/data/udev+acl.ref
++++ trunk/testsuite/tools/data/udev+acl.ref
+@@ -1,5 +1,5 @@
+ # This file was generated from description files (*.desc)
+-# by sane-desc 3.6 from sane-backends 1.0.31-118-g5d3ce7806
++# by sane-desc 3.6 from sane-backends 1.2.1-debian
+ #
+ # udev rules file for supported USB and SCSI devices
+ #
+Index: trunk/testsuite/tools/data/udev+hwdb.ref
+===================================================================
+--- trunk.orig/testsuite/tools/data/udev+hwdb.ref
++++ trunk/testsuite/tools/data/udev+hwdb.ref
+@@ -1,5 +1,5 @@
+ # This file was generated from description files (*.desc)
+-# by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab
++# by sane-desc 3.6 from sane-backends 1.2.1-debian
+ #
+ # udev rules file for supported USB and SCSI devices
+ #
+Index: trunk/testsuite/tools/data/udev.ref
+===================================================================
+--- trunk.orig/testsuite/tools/data/udev.ref
++++ trunk/testsuite/tools/data/udev.ref
+@@ -1,5 +1,5 @@
+ # This file was generated from description files (*.desc)
+-# by sane-desc 3.6 from sane-backends 1.0.31-118-g5d3ce7806
++# by sane-desc 3.6 from sane-backends 1.2.1-debian
+ #
+ # udev rules file for supported USB and SCSI devices
+ #
+Index: trunk/testsuite/tools/data/usermap.ref
+===================================================================
+--- trunk.orig/testsuite/tools/data/usermap.ref
++++ trunk/testsuite/tools/data/usermap.ref
+@@ -1,5 +1,5 @@
+ # This file was generated from description files (*.desc)
+-# by sane-desc 3.6 from sane-backends 1.0.29-241-g1f9590ab
++# by sane-desc 3.6 from sane-backends 1.2.1-debian
+ #
+ # The entries below are used to detect a USB device and change owner
+ # and permissions on the "device node" used by libusb.
diff --git a/debian/patches/0200-disable-check-equal-stderr.patch b/debian/patches/0200-disable-check-equal-stderr.patch
new file mode 100644
index 0000000..3f27ca5
--- /dev/null
+++ b/debian/patches/0200-disable-check-equal-stderr.patch
@@ -0,0 +1,23 @@
+Description: Build fails on GCC12:
+.
+minigtest.h:43:29: error: no match for ‘operator<<’ (operand types are ‘std::basic_ostream<char>’ and ‘const std::vector<long unsigned int>’)
+minigtest.h:43:29: error: no match for ‘operator<<’ (operand types are ‘std::basic_ostream<char>’ and ‘const std::vector<unsigned char>’)
+minigtest.h:43:29: error: no match for ‘operator<<’ (operand types are ‘std::basic_ostream<char>’ and ‘const genesys::Pixel’)
+minigtest.h:43:29: error: no match for ‘operator<<’ (operand types are ‘std::basic_ostream<char>’ and ‘const genesys::RawPixel’)
+minigtest.h:43:29: error: no match for ‘operator<<’ (operand types are ‘std::basic_ostream<char>’ and ‘const genesys::PixelFormat’)
+.
+Simply suppressing the print of the mismatch is the lowest effort workaround.
+Author: Nathan Pratta Teodosio <nathan.teodosio@canonical.com>
+Bug: 1013034
+Forwarded: No
+
+--- a/testsuite/backend/genesys/minigtest.h
++++ b/testsuite/backend/genesys/minigtest.h
+@@ -40,7 +40,6 @@
+ s_num_failures++;
+ std::cerr << "FAILURE at ";
+ print_location(std::cerr, function, path, line);
+- std::cerr << " :\n" << t << " != " << u << "\n\n";
+ } else {
+ s_num_successes++;
+ std::cerr << "SUCCESS at ";
diff --git a/debian/patches/0605-fix_groff-warnings.patch b/debian/patches/0605-fix_groff-warnings.patch
new file mode 100644
index 0000000..1e0ac17
--- /dev/null
+++ b/debian/patches/0605-fix_groff-warnings.patch
@@ -0,0 +1,20 @@
+Description: Fix some groff warnings
+Author: Jörg Frings-Fürst <debian@jff.email>
+Bug: https://gitlab.com/sane-project/backends/-/issues/433
+Last-Update: 2021-02-17
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/doc/sane-artec_eplus48u.man
+===================================================================
+--- trunk.orig/doc/sane-artec_eplus48u.man
++++ trunk/doc/sane-artec_eplus48u.man
+@@ -44,8 +44,7 @@ or
+ You can find it on the installation CD that was provided by the manufacturer,
+ normally in the directory Win98, WinMe or similar.
+ If the Windows-driver is installed on your computer, then you can also
+-find the firmware file under
+-.IR c:\\windows\\system32\\drivers .
++find the firmware file under c:\\windows\\system32\\drivers.
+
+ .SH CONFIGURATION
+ The contents of the
diff --git a/debian/patches/0705-kfreebsd.patch b/debian/patches/0705-kfreebsd.patch
new file mode 100644
index 0000000..c46c44d
--- /dev/null
+++ b/debian/patches/0705-kfreebsd.patch
@@ -0,0 +1,17 @@
+description: Fix build failure on kfreebsd (closes: #680234)
+author: Petr Salinger
+Index: trunk/backend/umax_pp_low.c
+===================================================================
+--- trunk.orig/backend/umax_pp_low.c
++++ trunk/backend/umax_pp_low.c
+@@ -70,8 +70,10 @@
+ #endif
+
+ #ifdef HAVE_MACHINE_CPUFUNC_H
++#ifndef __GLIBC__
+ #include <machine/cpufunc.h>
+ #endif
++#endif
+
+ #ifdef HAVE_I386_SET_IOPERM
+ #include <machine/sysarch.h>
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..ac4a4b6
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,13 @@
+0040-remove_git.patch
+0100-source_spelling.patch
+0125-multiarch_dll_search_path.patch
+0175-fix_tests.patch
+0140-avahi.patch
+0145-avahi.patch
+0705-kfreebsd.patch
+0150-i386-test.patch
+0155-hurd_PATH_MAX.patch
+0050-Use-python3-shebang.patch
+0060-cross.patch
+0605-fix_groff-warnings.patch
+0200-disable-check-equal-stderr.patch