summaryrefslogtreecommitdiff
path: root/media-gfx/sane-backends
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-11-04 09:13:50 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-11-04 09:13:50 +0000
commit0bb8253b38dc8638a46b66ba909c1bfd1054e1ef (patch)
treed408176c81eb4f81d8b3e95a66abc8eedec620e4 /media-gfx/sane-backends
parent1f709ed82b8014b4c156f87c66cee7d0d1d3905d (diff)
gentoo auto-resync : 04:11:2022 - 09:13:50
Diffstat (limited to 'media-gfx/sane-backends')
-rw-r--r--media-gfx/sane-backends/Manifest10
-rw-r--r--media-gfx/sane-backends/files/66-saned.rules-r12
-rw-r--r--media-gfx/sane-backends/files/sane-backends-1.1.1-configure-clang16.patch43
-rw-r--r--media-gfx/sane-backends/files/sane-backends-1.1.1-gcc12-tests.patch78
-rw-r--r--media-gfx/sane-backends/files/sane-backends-1.1.1-musl.patch34
-rw-r--r--media-gfx/sane-backends/files/saned_at.service-r118
-rw-r--r--media-gfx/sane-backends/metadata.xml9
-rw-r--r--media-gfx/sane-backends/sane-backends-1.1.1-r4.ebuild1
-rw-r--r--media-gfx/sane-backends/sane-backends-1.1.1-r5.ebuild377
9 files changed, 566 insertions, 6 deletions
diff --git a/media-gfx/sane-backends/Manifest b/media-gfx/sane-backends/Manifest
index 9c1304857d00..2b26f1d642d9 100644
--- a/media-gfx/sane-backends/Manifest
+++ b/media-gfx/sane-backends/Manifest
@@ -1,14 +1,20 @@
AUX 66-saned.rules 176 BLAKE2B c9c6ba224b9b27f4ecc6b1ded6621a8abb52b1ded2d9078e4cad31177290b788e286fad74545a5cb09e1f6726515adc22003988eb646dc986e87f1a8061a0e27 SHA512 d0d1b6bd6fbb04d610e7186e26d04c2233a620cc7c731ca3acd7fb860dd033fbe99d8974ffa1dd59c8affcc4aa2664d76ab3dfd6f7b2a734b31d7e3832359c41
+AUX 66-saned.rules-r1 174 BLAKE2B e5e4d30a368980b85d0a157ab5eabf15af3e9d01e7427250659455e2327036f3b9e0b82f87aa458d38f8d6d7c8401b83199f4deae101b46aa4b66d71701bf603 SHA512 0919f0402d2139981aa8c5e74205102b118e5c2f8d961a28fb6cdc73c2f084820e55a5e3df22bc042206fbb654f950560095fd98903d8a68cfa29e723d8bf1bc
AUX sane-backends-1.0.24-saned_pidfile_location.patch 345 BLAKE2B dcf7cbd5787c7a225450e03663e7c1ca69dd40fc58e3de9d994fde6a66635d6a3ca20d2886fe7cbc6a7ed3202f8f3a8c7e3d9ea4072b4418a7a43048427a06c3 SHA512 49519b8fea68292b8cbd7bdcaf5b4803a1b890800e17015ace1d662e4503cc0844f191793c8f42cd6aa7e9922ee9f961d4784e30f22abc497973be1978bf1b24
AUX sane-backends-1.0.27-disable-usb-tests.patch 336 BLAKE2B 00fd225a4426405d515f5b6641c86e6d9035a588a776aaec26eaa4e10beebf0a9fd97da991646b7964a867c422da2bc1cf93560d1ba326f0086675036338ff00 SHA512 64cce489e87de31e1a865b86d5829ae4914a30f47e27b07fba68629261cefcd617b8eed272c94b7554545e4802283c5bd5b53f79f54403d875726b38378ae74d
AUX sane-backends-1.0.30-add_hpaio_epkowa_dll.conf.patch 459 BLAKE2B d127c054b3e4f8aca5de54888e7a37c986515350aac84bb66ca195fca57138cbe3ac3f29b0982e4019b5b599b81984dceacd5523f794a04cfb5d416a051a1e61 SHA512 d9bcce33482db2f15ee094a244359fafdce196984a799509d9b16e24f46feb3aecd419520e65ca9513b40ff4975d793bec05924bfdd69586d9a6f3feb42cccc3
+AUX sane-backends-1.1.1-configure-clang16.patch 1537 BLAKE2B 5908f8a11ab78b37b1def559b3e59f7c84fa0d744d81fa130d1816b45ebf058c77caf7fd56ba6b8c97d864a018bcaedddb31525f6c8cd84bac8bb5d7d9a07da1 SHA512 2a1c2addde06841761051f93432da187241f4840568c39f074dc503c3038ab2d5cf57f4f807e728c15d40049c1e06eb8e7939b41daff33c937afd510fc676601
+AUX sane-backends-1.1.1-gcc12-tests.patch 2293 BLAKE2B bd25816934b11b857d226058578511916c8711af5bbe6cb31d0d5138dd4fca3353cb65c753c63b94be2f4f7562e162c8d384be1c9afaeaeaca450251ab40ff3c SHA512 2ac36d4a6fe0591fe78d245ec0927e5a00a29d1311bf2b9e6d3518d02536e802074f765eb7a35b0908cf1e983edee7041211a77774384a71b34779093b63fa65
AUX sane-backends-1.1.1-genesys-gl845-crash.patch 553 BLAKE2B 8fafda9bf9904733c02db56975c0e6d7c594140f2c568f7d46524e726b69ebd33b4487fb9b5b7d701a4ddacf079ac75b1315139c4e377caf414211ac02652764 SHA512 a07a82d25e009b30056965974d6d3088772803632aa57030a4261ebf596f7cdf0a468212dd234a5dda7821ee75ff665dbcf66df43b1d3c9c10a649ad5e36483c
+AUX sane-backends-1.1.1-musl.patch 1308 BLAKE2B 1dacf69a26e4955a07848f8cb89c5d7fbae71641de666b8f45a0ca0f57df48d335f0a609b6813114f730296752ef661fa2dd56b889bcf168489c725bd344c9de SHA512 febff2ff17ffe486122e8a5630adc01aed16398bf1d36628faa64b61d3cf423bcc66e683701e601071d2b3320b502c0416cd5b21b463004b516b75286eb64e3b
AUX saned 150 BLAKE2B 306d57a0c09856b387c3c50eb27aaafdb194972c2fdb5d1cb7de3118f0c71cf234898ce958f0d6bd17a5e1f2b5bde458e014a7bfdec52403a6204ebf51aee039 SHA512 26f3d66c6b1e75d87d7d430518aa878c77d5ab8d76a45847cef3ff15566341938eedf46c50d0fa8cdeef828df9cddefdd6fdd767c5de30d3aa7d64ed1911d910
AUX saned.confd 76 BLAKE2B cac74b6f117f7f78a71b951433bc6b155f8641e2cf1bd747871165764e97ed368d10551075761c34ff01f51f7cae1b8a9c5692fb9666a300b45134fe255ea3c1 SHA512 8f4a99ef24c19b3a7213b3d25ea16f5bca8623735cf25d21e3a706e9e0135ac8cce5d0b8fb8728845977f41dcefe6bd858076d755515fc91b00e05ee5817d751
AUX saned.initd 294 BLAKE2B 571bd4032b2330c627a31459a18baf2044852ec1b40f0216bd5b5a546d61133522cdc98c7011669feaadc2d030ffeb49a86130075f22a18edab5f4c925780681 SHA512 655200141339f14bf7fc6f4fff3403cf9504809b7f023aa5425aad691c5baa65772100da0a6311669f83ed1dce73b7d65ca20aa31345b13c48dfdb1b30ce5dbd
AUX saned.socket 132 BLAKE2B 5e9f0350a1553fc75aea88ce355fb68b881e3b2194ac0e3c6f3cecdae79111fb1db1cfe3b4933eca15af5f985fc6b89e4d9af3844b6e9cfd542828b6b9e57ed9 SHA512 a23ceeeb02bd9e214702003a3165886858ecbdd93df89cd37ad5f00581745454548ccda0ab656f2dc0acbf2896a8781568c786797e64a07014be003d6140a093
AUX saned_at.service 434 BLAKE2B 6dad3c809e01c17c0064a52c4103486b19294ed3cf8fc71faad18edaf71b920584366ac988d354f45bc07607ea64a97ea480fe152ac9a1cd896df99ff457cbf7 SHA512 891c751261107676f8159f403e0f4d4254099b709b9ba0ac9f2af97a9ed30f677411ad6bc316c2e6e673c616ba988253479d5e30c9617e3ae279beb79f70e965
+AUX saned_at.service-r1 432 BLAKE2B e6dab788c0bf705087974642ed714b5f41b3e676b80b5197a753227934b977ce6d1175872163e831e916b6aa36d6c5dd86effa44801494cff6fc669e6c24acaf SHA512 2c8725f9981216129f94a7c4cd75efab37bb75c891fdf7dbd4297161d8d4cd3b1c5fa0eebcaabe1f038aab8500f8b5579d776935f180fb2553bd2cb77506c29d
DIST sane-backends-1.1.1.tar.gz 7447569 BLAKE2B 02ac1822beabb12f19ce2d7c053f0f727313d13e0f9380325492a2f0048094f78a118f7659b4c6e39b60c4ea319d862a242f8866a67c84e5649d9ae2691d9473 SHA512 25bd9f90d550cfe6a6d01c48e83716a53f4b0e3a294287e455ecb5e5b80c8fe1699f45c6c87f694475cceb85745c70597e18a7b1094669d5091c5fb183dfe94d
EBUILD sane-backends-1.1.1-r2.ebuild 9349 BLAKE2B 2e89b8f941354bd632ed5965cd6402b53a2db212e4050e1c618aa5e952c35fda2a9eb6769b26cc85b62dbcc6209ae7da8abf600a49afe2b3839020ad85cb504a SHA512 79605c0a0cb97d4c49c6f864de91a7824eea945ae2cd36346e81e3e61116816ae687525bcfae6a75c67857effa7e866aef3f7edc3fc0eb21f52226c16b4a9400
-EBUILD sane-backends-1.1.1-r4.ebuild 9385 BLAKE2B 24cc82d6a6600f3772bb029758eca2818ac28591a1ee7fb49a087d846099a42e5c21b3a836393310a136cf34ae4ad32efda5c31224c019055b13b7123d7d9390 SHA512 66817e15649743d86268b400ea79bf57202607a8c31bdc28d95d43f25b595297d6986ac57ab7f23bf854315c2b46e7e0e8e7039e134cffe32821f15e1403f2ab
-MISC metadata.xml 267 BLAKE2B cf3ca2583acfc7c5d4b3e053cef4d72bf240aa58c54e8a0f72b9393ee8587bd587d4a88bad4b041cfd50d4465879ed546afa71b6e4570477b376a92ab47bb415 SHA512 d471748b0a9f7d7d4aca203c6bd1ff222f3faa455e7d1df2f8437a188922a40e3a656a5e20032256caf58d664e0f723e25055871e62d102e0c677264942b6fb1
+EBUILD sane-backends-1.1.1-r4.ebuild 9423 BLAKE2B fd4f6cc013dc035edf1f4b4582e3b7ee78c052e40ae354290d1413fcc090caefd43df45211fb1de98e5a972f30513fb09825d711869fff65cfa1ef7c45c2be00 SHA512 bb392e581b696fa806d46b09dc8bcc41ed74786f0c9e6f3ecd4741e40f88f518cf62bb948cc0f4757ac3021a6683a7c2319d4bc9f3ceaa53d120c11e72f8d730
+EBUILD sane-backends-1.1.1-r5.ebuild 9583 BLAKE2B bbe9709c9dff5964b1e1bf7f2292d7ab05badc98fea893ea8f92af30a31cb9077b87c24053d7a844735105da477991498666a0981f1e5fd6f71d49a472d55c0a SHA512 56a1481c735fb07a3f7528a3e47cbbc833d29583159b308d199225c7d83b1717f0df663659f7fb7ecdaf07ecfcf18e13f6c97da45b3c427ee20789dca5ad8a0a
+MISC metadata.xml 333 BLAKE2B 7d543cb4daa6542f7facef3e1f57c09144baed3198010d7c39df40398ab82791f56271375bce36e829a1364350d05f81c332a2359e7038b047df31407543d331 SHA512 52ac311d50fcfe020b4ec891bcbc1df2834d5d1e3ade7ab6926c6f85a31712dd5886b834739f6155873e1e09967c8f565b913c807acd7ea47a4d3b94160fff37
diff --git a/media-gfx/sane-backends/files/66-saned.rules-r1 b/media-gfx/sane-backends/files/66-saned.rules-r1
new file mode 100644
index 000000000000..4e1fe9507eae
--- /dev/null
+++ b/media-gfx/sane-backends/files/66-saned.rules-r1
@@ -0,0 +1,2 @@
+# udev rule for saned (SANE scanning daemon) to be able to write on usb port
+ENV{libsane_matched}=="yes", ENV{DEVNAME}!="", RUN+="/bin/setfacl -m g:scanner:rw $env{DEVNAME}"
diff --git a/media-gfx/sane-backends/files/sane-backends-1.1.1-configure-clang16.patch b/media-gfx/sane-backends/files/sane-backends-1.1.1-configure-clang16.patch
new file mode 100644
index 000000000000..cc8a48b18b67
--- /dev/null
+++ b/media-gfx/sane-backends/files/sane-backends-1.1.1-configure-clang16.patch
@@ -0,0 +1,43 @@
+https://gitlab.com/sane-project/backends/-/merge_requests/763
+
+From 300b460970f538ab515835f14650785e88808a8f Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 4 Nov 2022 04:04:46 +0000
+Subject: [PATCH] acinclude.m4: fix -Wimplicit-function-declaration
+
+-Wimplicit-function-declaration will become an error by default
+in Clang 16.
+
+Fixes errors like:
+```
+error: call to undeclared library function 'exit' with type 'void (int) __attribute__((noreturn))'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
+```
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -471,6 +471,7 @@ AC_DEFUN([SANE_CHECK_IPV6],
+ if test "$ipv6" != "no" ; then
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #define INET6
++ #include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/socket.h> ]], [[
+ /* AF_INET6 available check */
+@@ -492,6 +493,7 @@ AC_DEFUN([SANE_CHECK_IPV6],
+ AC_MSG_CHECKING([whether struct sockaddr_storage has an ss_family member])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #define INET6
++ #include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/socket.h> ]], [[
+ /* test if the ss_family member exists in struct sockaddr_storage */
+@@ -504,6 +506,7 @@ AC_DEFUN([SANE_CHECK_IPV6],
+ ], [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #define INET6
++ #include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/socket.h> ]], [[
+ /* test if the __ss_family member exists in struct sockaddr_storage */
+GitLab
diff --git a/media-gfx/sane-backends/files/sane-backends-1.1.1-gcc12-tests.patch b/media-gfx/sane-backends/files/sane-backends-1.1.1-gcc12-tests.patch
new file mode 100644
index 000000000000..25a1e4db265e
--- /dev/null
+++ b/media-gfx/sane-backends/files/sane-backends-1.1.1-gcc12-tests.patch
@@ -0,0 +1,78 @@
+https://bugs.gentoo.org/840137
+https://gitlab.com/sane-project/backends/-/commit/6b99447f5b12758ff015b5c360a6dcbcf9b0a72d
+https://gitlab.com/sane-project/backends/-/issues/597
+https://gitlab.com/sane-project/backends/-/issues/557
+
+From edfc90450ee06149537fadb3095ba4b215c5c4fa Mon Sep 17 00:00:00 2001
+From: Ralph Little <skelband@gmail.com>
+Date: Sun, 2 Oct 2022 18:14:25 -0700
+Subject: [PATCH] genesys: corrections to include file order.
+
+minigtest.h has items that require the definitions in tests_printers.h.
+Pre-GCC-12, this didn't seem to matter but GCC12 seems to have a
+problem with this and requires the template definitions to have already
+appeared.
+--- a/testsuite/backend/genesys/minigtest.cpp
++++ b/testsuite/backend/genesys/minigtest.cpp
+@@ -18,10 +18,10 @@
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+-#include "minigtest.h"
+-
+ #define DEBUG_DECLARE_ONLY
+
++#include "minigtest.h"
++
+ size_t s_num_successes = 0;
+ size_t s_num_failures = 0;
+
+--- a/testsuite/backend/genesys/tests_image.cpp
++++ b/testsuite/backend/genesys/tests_image.cpp
+@@ -21,8 +21,8 @@
+ #define DEBUG_DECLARE_ONLY
+
+ #include "tests.h"
+-#include "minigtest.h"
+ #include "tests_printers.h"
++#include "minigtest.h"
+
+ #include "../../../backend/genesys/image.h"
+ #include "../../../backend/genesys/image_pipeline.h"
+--- a/testsuite/backend/genesys/tests_image_pipeline.cpp
++++ b/testsuite/backend/genesys/tests_image_pipeline.cpp
+@@ -21,8 +21,8 @@
+ #define DEBUG_DECLARE_ONLY
+
+ #include "tests.h"
+-#include "minigtest.h"
+ #include "tests_printers.h"
++#include "minigtest.h"
+
+ #include "../../../backend/genesys/image_pipeline.h"
+
+--- a/testsuite/backend/genesys/tests_motor.cpp
++++ b/testsuite/backend/genesys/tests_motor.cpp
+@@ -21,8 +21,8 @@
+ #define DEBUG_DECLARE_ONLY
+
+ #include "tests.h"
+-#include "minigtest.h"
+ #include "tests_printers.h"
++#include "minigtest.h"
+
+ #include "../../../backend/genesys/low.h"
+ #include "../../../backend/genesys/enums.h"
+--- a/testsuite/backend/genesys/tests_utilities.cpp
++++ b/testsuite/backend/genesys/tests_utilities.cpp
+@@ -21,8 +21,8 @@
+ #define DEBUG_DECLARE_ONLY
+
+ #include "tests.h"
+-#include "minigtest.h"
+ #include "tests_printers.h"
++#include "minigtest.h"
+
+ #include "../../../backend/genesys/utilities.h"
+
+GitLab
diff --git a/media-gfx/sane-backends/files/sane-backends-1.1.1-musl.patch b/media-gfx/sane-backends/files/sane-backends-1.1.1-musl.patch
new file mode 100644
index 000000000000..8aebb50672a1
--- /dev/null
+++ b/media-gfx/sane-backends/files/sane-backends-1.1.1-musl.patch
@@ -0,0 +1,34 @@
+https://gitlab.com/sane-project/backends/-/commit/12560890a6e298091bd63b8093a35604416eb92a
+
+From 12560890a6e298091bd63b8093a35604416eb92a Mon Sep 17 00:00:00 2001
+From: David Ward <david.ward@gatech.edu>
+Date: Thu, 21 Apr 2022 23:37:33 -0400
+Subject: [PATCH] Fix header file used for poll()
+
+POSIX specifies the header to include is <poll.h>, not <sys/poll.h>.
+This results in a compiler warning with musl libc (on Alpine Linux).
+--- a/configure.ac
++++ b/configure.ac
+@@ -202,7 +202,7 @@ AC_HEADER_STDC
+ AC_CHECK_HEADERS(fcntl.h unistd.h libc.h sys/dsreq.h sys/select.h \
+ sys/time.h sys/shm.h sys/ipc.h sys/scanio.h os2.h \
+ sys/socket.h sys/io.h sys/hw.h sys/types.h linux/ppdev.h \
+- dev/ppbus/ppi.h machine/cpufunc.h sys/sem.h sys/poll.h \
++ dev/ppbus/ppi.h machine/cpufunc.h sys/sem.h poll.h \
+ windows.h be/kernel/OS.h limits.h sys/ioctl.h asm/types.h\
+ netinet/in.h tiffio.h ifaddrs.h pwd.h getopt.h)
+ AC_CHECK_HEADERS([asm/io.h],,,[#include <sys/types.h>])
+--- a/frontend/saned.c
++++ b/frontend/saned.c
+@@ -84,8 +84,8 @@
+
+ #include "lgetopt.h"
+
+-#if defined(HAVE_SYS_POLL_H) && defined(HAVE_POLL)
+-# include <sys/poll.h>
++#if defined(HAVE_POLL_H) && defined(HAVE_POLL)
++# include <poll.h>
+ #else
+ /*
+ * This replacement poll() using select() is only designed to cover
+GitLab
diff --git a/media-gfx/sane-backends/files/saned_at.service-r1 b/media-gfx/sane-backends/files/saned_at.service-r1
new file mode 100644
index 000000000000..b7d6179bba71
--- /dev/null
+++ b/media-gfx/sane-backends/files/saned_at.service-r1
@@ -0,0 +1,18 @@
+[Unit]
+Description=Scanner Service
+Requires=saned.socket
+
+[Service]
+ExecStart=/usr/sbin/saned
+User=saned
+Group=scanner
+StandardInput=null
+StandardOutput=syslog
+StandardError=syslog
+Environment=SANE_CONFIG_DIR=/etc/sane.d
+# If you need to debug your configuration uncomment the next line and
+# change it as appropriate to set the desired debug options
+# Environment=SANE_DEBUG_DLL=255 SANE_DEBUG_NET=255
+
+[Install]
+Also=saned.socket
diff --git a/media-gfx/sane-backends/metadata.xml b/media-gfx/sane-backends/metadata.xml
index 972a9391d288..809900125a1b 100644
--- a/media-gfx/sane-backends/metadata.xml
+++ b/media-gfx/sane-backends/metadata.xml
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<!-- maintainer-needed -->
-<upstream>
-<remote-id type="cpe">cpe:/a:sane-backends_project:sane-backends</remote-id>
-</upstream>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="cpe">cpe:/a:sane-backends_project:sane-backends</remote-id>
+ <remote-id type="gitlab">sane-project/backends</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/media-gfx/sane-backends/sane-backends-1.1.1-r4.ebuild b/media-gfx/sane-backends/sane-backends-1.1.1-r4.ebuild
index 6bff44a1f891..e34fadb86e95 100644
--- a/media-gfx/sane-backends/sane-backends-1.1.1-r4.ebuild
+++ b/media-gfx/sane-backends/sane-backends-1.1.1-r4.ebuild
@@ -182,6 +182,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.0.30-add_hpaio_epkowa_dll.conf.patch
# https://gitlab.com/sane-project/backends/-/merge_requests/688
"${FILESDIR}"/${PN}-1.1.1-genesys-gl845-crash.patch
+ "${FILESDIR}"/${P}-gcc12-tests.patch
)
MULTILIB_CHOST_TOOLS=(
diff --git a/media-gfx/sane-backends/sane-backends-1.1.1-r5.ebuild b/media-gfx/sane-backends/sane-backends-1.1.1-r5.ebuild
new file mode 100644
index 000000000000..e319cc9e20b1
--- /dev/null
+++ b/media-gfx/sane-backends/sane-backends-1.1.1-r5.ebuild
@@ -0,0 +1,377 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+# python-any-r1 required for a script in
+# backends/pixma/scripts/
+inherit autotools flag-o-matic multilib-minimal optfeature python-any-r1 systemd toolchain-funcs udev
+
+# gphoto and v4l are handled by their usual USE flags.
+# The pint backend was disabled because I could not get it to compile.
+IUSE_SANE_BACKENDS=(
+ abaton
+ agfafocus
+ apple
+ artec
+ artec_eplus48u
+ as6e
+ avision
+ bh
+ canon
+ canon630u
+ canon_dr
+ canon_lide70
+ canon_pp
+ cardscan
+ coolscan
+ coolscan2
+ coolscan3
+ dc210
+ dc240
+ dc25
+ dell1600n_net
+ dmc
+ epjitsu
+ epson
+ epson2
+ epsonds
+ escl
+ fujitsu
+ genesys
+ gt68xx
+ hp
+ hp3500
+ hp3900
+ hp4200
+ hp5400
+ hp5590
+ hpljm1005
+ hpsj5s
+ hs2p
+ ibm
+ kodak
+ kodakaio
+ kvs1025
+ kvs20xx
+ kvs40xx
+ leo
+ lexmark
+ ma1509
+ magicolor
+ matsushita
+ microtek
+ microtek2
+ mustek
+ mustek_pp
+ mustek_usb
+ mustek_usb2
+ nec
+ net
+ niash
+ p5
+ pie
+ pieusb
+ pixma
+ plustek
+ plustek_pp
+ pnm
+ qcam
+ ricoh
+ ricoh2
+ rts8891
+ s9036
+ sceptre
+ sharp
+ sm3600
+ sm3840
+ snapscan
+ sp15c
+ st400
+ stv680
+ tamarack
+ teco1
+ teco2
+ teco3
+ test
+ u12
+ umax
+ umax1220u
+ umax_pp
+ xerox_mfp
+)
+
+IUSE="gphoto2 snmp systemd threads usb v4l xinetd +zeroconf"
+
+for GBACKEND in ${IUSE_SANE_BACKENDS[@]}; do
+ case ${GBACKEND} in
+ # Disable backends that require parallel ports as no one has those anymore.
+ canon_pp|hpsj5s|mustek_pp|\
+ pnm|mustek_usb2|kvs40xx)
+ IUSE+=" sane_backends_${GBACKEND}"
+ ;;
+ *)
+ IUSE+=" +sane_backends_${GBACKEND}"
+ esac
+done
+
+REQUIRED_USE="
+ sane_backends_escl? ( zeroconf )
+ sane_backends_kvs40xx? ( threads )
+ sane_backends_mustek_usb2? ( threads )
+"
+
+DESCRIPTION="Scanner Access Now Easy - Backends"
+HOMEPAGE="http://www.sane-project.org/"
+SRC_URI="https://gitlab.com/sane-project/backends/uploads/7d30fab4e115029d91027b6a58d64b43/${P}.tar.gz"
+
+LICENSE="GPL-2 public-domain"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+# For pixma: see https://gitlab.com/sane-project/backends/-/releases/1.0.28#build
+RDEPEND="
+ acct-user/saned
+ acct-group/scanner
+ gphoto2? (
+ >=media-libs/libgphoto2-2.5.3.1:=[${MULTILIB_USEDEP}]
+ media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
+ )
+ sane_backends_canon_pp? ( >=sys-libs/libieee1284-0.2.11-r3[${MULTILIB_USEDEP}] )
+ sane_backends_dc210? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
+ sane_backends_dc240? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
+ sane_backends_dell1600n_net? (
+ >=media-libs/tiff-3.9.7-r1:0=[${MULTILIB_USEDEP}]
+ media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
+ )
+ sane_backends_escl? (
+ app-text/poppler[cairo]
+ || (
+ net-dns/avahi[dbus]
+ net-dns/avahi[gtk]
+ )
+ net-dns/avahi[${MULTILIB_USEDEP}]
+ net-misc/curl[${MULTILIB_USEDEP}]
+ )
+ sane_backends_hpsj5s? ( >=sys-libs/libieee1284-0.2.11-r3[${MULTILIB_USEDEP}] )
+ sane_backends_mustek_pp? ( >=sys-libs/libieee1284-0.2.11-r3[${MULTILIB_USEDEP}] )
+ sane_backends_pixma? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
+ snmp? ( net-analyzer/net-snmp:0= )
+ systemd? ( sys-apps/systemd:0= )
+ usb? ( >=virtual/libusb-1-r1:1=[${MULTILIB_USEDEP}] )
+ v4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] )
+ xinetd? ( sys-apps/xinetd )
+ zeroconf? ( >=net-dns/avahi-0.6.31-r2[${MULTILIB_USEDEP}] )
+"
+
+DEPEND="${RDEPEND}
+ dev-libs/libxml2
+ v4l? ( sys-kernel/linux-headers )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ sys-devel/autoconf-archive
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.0.24-saned_pidfile_location.patch
+ "${FILESDIR}"/${PN}-1.0.27-disable-usb-tests.patch
+ "${FILESDIR}"/${PN}-1.0.30-add_hpaio_epkowa_dll.conf.patch
+ # https://gitlab.com/sane-project/backends/-/merge_requests/688
+ "${FILESDIR}"/${PN}-1.1.1-genesys-gl845-crash.patch
+ "${FILESDIR}"/${P}-gcc12-tests.patch
+ "${FILESDIR}"/${PN}-1.1.1-configure-clang16.patch
+ "${FILESDIR}"/${P}-musl.patch
+)
+
+MULTILIB_CHOST_TOOLS=(
+ /usr/bin/sane-config
+)
+
+src_prepare() {
+ default
+
+ # Patch out the git reference so we can run eautoreconf
+ sed \
+ -e "s/m4_esyscmd_s(\[git describe --dirty\])/${PV}/" \
+ -e '/^AM_MAINTAINER_MODE/d' \
+ -i configure.ac || die
+ eautoreconf
+
+ # Fix for "make check". Upstream sometimes forgets to update this.
+ local ver=$(./configure --version | awk '{print $NF; exit 0}')
+ sed -i \
+ -e "/by sane-desc 3.5 from sane-backends/s:sane-backends .*:sane-backends ${ver}:" \
+ testsuite/tools/data/html* || die
+
+ # don't bleed user LDFLAGS into pkgconfig files
+ sed 's|@LDFLAGS@ ||' -i tools/*.pc.in || die
+
+ # Needed for udev rules generation/installation
+ multilib_copy_sources
+}
+
+src_configure() {
+ # From Fedora
+ append-flags -fno-strict-aliasing
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # the blank is intended - an empty string would result in building ALL backends.
+ local lbackends=" "
+
+ use gphoto2 && lbackends="gphoto2"
+ use v4l && lbackends+=" v4l"
+ use sane_backends_escl && multilib_is_native_abi && lbackends+=" escl"
+ local backend
+ for backend in ${IUSE_SANE_BACKENDS[@]} ; do
+ if use "sane_backends_${backend}" && [[ "${backend}" != pnm ]] && [[ "${backend}" != escl ]] ; then
+ lbackends+=" ${backend}"
+ fi
+ done
+
+ local myconf=(
+ $(use_with usb)
+ $(multilib_native_use_with snmp)
+
+ $(multilib_native_use_with sane_backends_escl poppler-glib)
+ # you can only enable this backend, not disable it...
+ $(usex sane_backends_pnm --enable-pnm-backend '')
+ $(usex sane_backends_mustek_pp --enable-parport-directio '')
+ )
+
+ if ! { use sane_backends_canon_pp || use sane_backends_hpsj5s || use sane_backends_mustek_pp ; } ; then
+ myconf+=( sane_cv_use_libieee1284=no )
+ fi
+
+ # relative path must be used for tests to work properly
+ # All distributions pass --disable-locking because /var/lock/sane/ would be a world-writable directory
+ # that break in many ways, bug #636202, #668232, #668350
+ # People can refer to the "Programmer's Documentation" at http://www.sane-project.org/docs.html
+ myconf+=(
+ --enable-ipv6
+ --disable-locking
+ $(use_with gphoto2)
+ $(multilib_native_use_with systemd)
+ $(use_with v4l)
+ $(use_enable threads pthread)
+ $(use_with zeroconf avahi)
+ )
+
+ ECONF_SOURCE="${S}" \
+ SANEI_JPEG="sanei_jpeg.o" SANEI_JPEG_LO="sanei_jpeg.lo" \
+ BACKENDS="${lbackends}" \
+ econf "${myconf[@]}"
+}
+
+multilib_src_compile() {
+ emake VARTEXFONTS="${T}/fonts"
+
+ if tc-is-cross-compiler ; then
+ pushd "${BUILD_DIR}"/tools >/dev/null || die
+
+ # The build system sucks and doesn't handle this properly.
+ # https://alioth.debian.org/tracker/index.php?func=detail&aid=314236&group_id=30186&atid=410366
+ tc-export_build_env BUILD_CC
+ ${BUILD_CC} ${BUILD_CPPFLAGS} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \
+ -I. -I../include -I"${S}"/include \
+ "${S}"/sanei/sanei_config.c "${S}"/sanei/sanei_constrain_value.c \
+ "${S}"/sanei/sanei_init_debug.c "${S}"/tools/sane-desc.c -o sane-desc || die
+ local dirs=( hal hotplug hotplug-ng udev )
+ local targets=(
+ hal/libsane.fdi
+ hotplug/libsane.usermap
+ hotplug-ng/libsane.db
+ udev/libsane.rules
+ )
+ mkdir -p "${dirs[@]}" || die
+ emake "${targets[@]}"
+
+ popd >/dev/null || die
+ fi
+
+ if use usb ; then
+ sed -i -e '/^$/d' \
+ tools/hotplug/libsane.usermap || die
+ fi
+}
+
+multilib_src_install() {
+ emake INSTALL_LOCKPATH="" DESTDIR="${D}" install \
+ docdir="${EPREFIX}"/usr/share/doc/${PF}
+
+ if multilib_is_native_abi ; then
+ if use usb ; then
+ insinto /etc/hotplug/usb
+ doins tools/hotplug/libsane.usermap
+ fi
+
+ insinto "/usr/share/pkgconfig"
+ doins tools/sane-backends.pc
+
+ # From Fedora and Arch, prevent permission conflicts
+ # https://github.com/OpenPrinting/cups/issues/314
+ # https://gitlab.com/sane-project/backends/-/issues/546
+ #
+ # Generate udev udev+hwdb, not needing scanner group
+ install -vdm 755 "${ED}/$(get_udevdir)/rules.d/" || die
+ tools/sane-desc -m udev+hwdb -s doc/descriptions/ > "${ED}/$(get_udevdir)/rules.d/65-${PN}.rules" || die
+ tools/sane-desc -m udev+hwdb -s doc/descriptions-external/ >> "${ED}/$(get_udevdir)/rules.d/65-${PN}.rules" || die
+ # generate udev hwdb
+ install -vdm 755 "${ED}/$(get_udevdir)/hwdb.d/" || die
+ tools/sane-desc -m hwdb -s doc/descriptions/ > "${ED}/$(get_udevdir)/hwdb.d/20-${PN}.hwdb"
+ # NOTE: an empty new line is required between the two .desc collections
+ printf "\n" >> "${ED}/$(get_udevdir)/hwdb.d/20-${PN}.hwdb" || die
+ tools/sane-desc -m hwdb -s doc/descriptions-external/ >> "${ED}/$(get_udevdir)/hwdb.d/20-${PN}.hwdb" || die
+ # udev rule for saned (SANE scanning daemon) to be able to write on usb port
+ udev_newrules "${FILESDIR}/66-saned.rules-r1" 66-saned.rules
+ fi
+}
+
+multilib_src_install_all() {
+ dodir /etc/env.d
+
+ if use systemd ; then
+ systemd_newunit "${FILESDIR}"/saned_at.service-r1 "saned@.service"
+ systemd_newunit "${FILESDIR}"/saned.socket saned.socket
+ fi
+
+ if use usb ; then
+ exeinto /etc/hotplug/usb
+ doexe tools/hotplug/libusbscanner
+ newdoc tools/hotplug/README README.hotplug
+ fi
+
+ dodoc NEWS AUTHORS PROBLEMS README README.linux
+ find "${ED}" -name '*.la' -delete || die
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ doins "${FILESDIR}"/saned
+ fi
+
+ newinitd "${FILESDIR}"/saned.initd saned
+ newconfd "${FILESDIR}"/saned.confd saned
+}
+
+pkg_postrm() {
+ udev_reload
+}
+
+pkg_postinst() {
+ udev_reload
+
+ optfeature "Network scanner backend" media-gfx/sane-airscan
+ optfeature "Epson-specific backend" media-gfx/iscan
+ optfeature "HP-specific backend" net-print/hplip
+
+ if use xinetd ; then
+ elog "If you want remote clients to connect, edit"
+ elog "/etc/sane.d/saned.conf and /etc/hosts.allow"
+ fi
+}