mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-08-27 17:31:33 +02:00
testing/sane: new port
http://www.sane-project.org Scanner Access Now Easy
This commit is contained in:
parent
0c857465fd
commit
a2225b51a1
42
testing/sane/10-network.patch
Normal file
42
testing/sane/10-network.patch
Normal file
@ -0,0 +1,42 @@
|
||||
diff --git a/sanei/sanei_tcp.c b/sanei/sanei_tcp.c
|
||||
index a57d7c7..d0a1e92 100644
|
||||
--- a/sanei/sanei_tcp.c
|
||||
+++ b/sanei/sanei_tcp.c
|
||||
@@ -45,6 +45,7 @@
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
+#include <time.h>
|
||||
|
||||
#ifdef HAVE_WINSOCK2_H
|
||||
#include <winsock2.h>
|
||||
@@ -123,14 +124,27 @@ sanei_tcp_write(int fd, const u_char * buf, int count)
|
||||
ssize_t
|
||||
sanei_tcp_read(int fd, u_char * buf, int count)
|
||||
{
|
||||
- ssize_t bytes_recv = 0, rc = 1;
|
||||
+ ssize_t bytes_recv = 0, rc = 1;
|
||||
+ int retry = 5;
|
||||
|
||||
while (bytes_recv < count && rc > 0)
|
||||
{
|
||||
rc = recv(fd, buf+bytes_recv, count-bytes_recv, 0);
|
||||
+ DBG(1, "%s: bytes received %d\n", __FUNCTION__, rc);
|
||||
if (rc > 0)
|
||||
bytes_recv += rc;
|
||||
-
|
||||
+ else {
|
||||
+ if ( errno == EAGAIN && retry-- ) {
|
||||
+ DBG(1, "%s: waiting %d\n", __FUNCTION__, retry);
|
||||
+ /* wait for max 1s */
|
||||
+ struct timespec req;
|
||||
+ struct timespec rem;
|
||||
+ req.tv_sec = 0;
|
||||
+ req.tv_nsec= 100000000;
|
||||
+ nanosleep(&req, &rem);
|
||||
+ rc = 1;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
return bytes_recv;
|
||||
}
|
98
testing/sane/20-segfault-avahi-fix-kodakio.patch
Normal file
98
testing/sane/20-segfault-avahi-fix-kodakio.patch
Normal file
@ -0,0 +1,98 @@
|
||||
From 37523b867d411c2f82d08128246be7e38bc9812c Mon Sep 17 00:00:00 2001
|
||||
From: Paul Newall <quandry@ntlworld.com>
|
||||
Date: Mon, 14 Oct 2013 22:22:53 +0100
|
||||
Subject: [PATCH] Bugfix in kodakaio.c to fix segfault when non kodak scanners
|
||||
return unexpected data via avahi auto discovery
|
||||
|
||||
---
|
||||
backend/kodakaio.c | 43 ++++++++++++++++++++++++++++++----------
|
||||
doc/descriptions/kodakaio.desc | 2 +-
|
||||
3 files changed, 37 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/backend/kodakaio.c b/backend/kodakaio.c
|
||||
index 8c4583a..b442e50 100644
|
||||
--- a/backend/kodakaio.c
|
||||
+++ b/backend/kodakaio.c
|
||||
@@ -127,7 +127,7 @@ for ubuntu 12.10
|
||||
|
||||
#define KODAKAIO_VERSION 02
|
||||
#define KODAKAIO_REVISION 4
|
||||
-#define KODAKAIO_BUILD 6
|
||||
+#define KODAKAIO_BUILD 7
|
||||
|
||||
/* for usb (but also used for net though it's not required). */
|
||||
#define MAX_BLOCK_SIZE 32768
|
||||
@@ -2184,6 +2184,7 @@ static void resolve_callback(
|
||||
AvahiLookupResultFlags flags,
|
||||
AVAHI_GCC_UNUSED void* userdata) {
|
||||
|
||||
+ AvahiStringList *vid_pair_list = NULL, *pid_pair_list = NULL;
|
||||
char *pidkey, *pidvalue;
|
||||
char *vidkey, *vidvalue;
|
||||
size_t valuesize;
|
||||
@@ -2204,20 +2205,40 @@ static void resolve_callback(
|
||||
avahi_address_snprint(a, sizeof(a), address);
|
||||
|
||||
/* Output short for Kodak ESP */
|
||||
- DBG(min(10,DBG_AUTO), "%s:%u %s ", a,port,host_name);
|
||||
- avahi_string_list_get_pair(avahi_string_list_find(txt, "vid"),
|
||||
- &vidkey, &vidvalue, &valuesize);
|
||||
- DBG(min(10,DBG_AUTO), "%s=%s ", vidkey, vidvalue);
|
||||
- avahi_string_list_get_pair(avahi_string_list_find(txt, "pid"),
|
||||
- &pidkey, &pidvalue, &valuesize);
|
||||
- DBG(min(10,DBG_AUTO), "%s=%s\n", pidkey, pidvalue);
|
||||
+ DBG(min(10,DBG_AUTO), "%s:%u %s\n", a,port,host_name);
|
||||
|
||||
+ vid_pair_list = avahi_string_list_find(txt, "vid");
|
||||
+ if(vid_pair_list != NULL) {
|
||||
+ avahi_string_list_get_pair(vid_pair_list, &vidkey, &vidvalue, &valuesize);
|
||||
+ DBG(min(10,DBG_AUTO), "%s=%s ", vidkey, vidvalue);
|
||||
+ }
|
||||
+ else DBG(min(10,DBG_AUTO), "failed to find key vid\n");
|
||||
+
|
||||
+ pid_pair_list = avahi_string_list_find(txt, "pid");
|
||||
+ if(pid_pair_list != NULL) {
|
||||
+ avahi_string_list_get_pair(pid_pair_list, &pidkey, &pidvalue, &valuesize);
|
||||
+ DBG(min(10,DBG_AUTO), "%s=%s\n", pidkey, pidvalue);
|
||||
+ }
|
||||
+ else DBG(min(10,DBG_AUTO), "failed to find key pid\n");
|
||||
+
|
||||
+ if(pid_pair_list != NULL && vid_pair_list != NULL) {
|
||||
ProcessAvahiDevice(name, vidvalue, pidvalue, a);
|
||||
- avahi_free(vidkey); avahi_free(vidvalue);
|
||||
- avahi_free(pidkey); avahi_free(pidvalue);
|
||||
+ }
|
||||
+ else DBG(min(10,DBG_AUTO), "didn't call ProcessAvahiDevice\n");
|
||||
+
|
||||
+ if(vid_pair_list != NULL) {
|
||||
+ avahi_free(vidkey);
|
||||
+ avahi_free(vidvalue);
|
||||
+ DBG(min(15,DBG_AUTO), "vidkey and vidvalue freed\n");
|
||||
+ }
|
||||
+ if(pid_pair_list != NULL) {
|
||||
+ avahi_free(pidkey);
|
||||
+ avahi_free(pidvalue);
|
||||
+ DBG(min(15,DBG_AUTO), "pidkey and pidvalue freed\n");
|
||||
+ }
|
||||
}
|
||||
}
|
||||
-
|
||||
+ DBG(min(10,DBG_AUTO), "ending resolve_callback\n");
|
||||
avahi_service_resolver_free(r);
|
||||
}
|
||||
|
||||
diff --git a/doc/descriptions/kodakaio.desc b/doc/descriptions/kodakaio.desc
|
||||
index 7882513..5fb18ed 100644
|
||||
--- a/doc/descriptions/kodakaio.desc
|
||||
+++ b/doc/descriptions/kodakaio.desc
|
||||
@@ -1,6 +1,6 @@
|
||||
:backend "kodakaio"
|
||||
:url "http://sourceforge.net/projects/cupsdriverkodak/"
|
||||
-:version "2.4.6"
|
||||
+:version "2.4.7"
|
||||
:manpage "sane-kodakaio"
|
||||
:comment "Backend for Kodak AiO ESP and Hero printers. Also possibly Advent AWL10"
|
||||
:devicetype :scanner
|
||||
--
|
||||
1.7.10.4
|
||||
|
51
testing/sane/30-musl-header-fixes.patch
Normal file
51
testing/sane/30-musl-header-fixes.patch
Normal file
@ -0,0 +1,51 @@
|
||||
--- ./include/sane/sanei_udp.h.orig
|
||||
+++ ./include/sane/sanei_udp.h
|
||||
@@ -19,6 +19,7 @@
|
||||
#define sanei_udp_h
|
||||
|
||||
#include <sane/sane.h>
|
||||
+#include <sys/types.h>
|
||||
|
||||
#ifdef HAVE_WINSOCK2_H
|
||||
#include <winsock2.h>
|
||||
--- ./backend/hp5400_sanei.c.orig
|
||||
+++ ./backend/hp5400_sanei.c
|
||||
@@ -57,6 +57,7 @@
|
||||
#include "hp5400_debug.h"
|
||||
#include <stdio.h>
|
||||
#include "../include/sane/sanei_usb.h"
|
||||
+#include <sys/types.h>
|
||||
|
||||
#define CMD_INITBULK1 0x0087 /* send 0x14 */
|
||||
#define CMD_INITBULK2 0x0083 /* send 0x24 */
|
||||
--- ./backend/hp5590_low.c.orig
|
||||
+++ ./backend/hp5590_low.c
|
||||
@@ -50,6 +50,7 @@
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
# include <netinet/in.h>
|
||||
#endif /* HAVE_NETINET_IN_H */
|
||||
+#include <sys/types.h>
|
||||
|
||||
#include "byteorder.h"
|
||||
|
||||
--- ./backend/kvs20xx_cmd.h.orig
|
||||
+++ ./backend/kvs20xx_cmd.h
|
||||
@@ -9,6 +9,8 @@
|
||||
Panasonic KV-S20xx USB-SCSI scanners.
|
||||
*/
|
||||
|
||||
+#include <sys/types.h>
|
||||
+
|
||||
#define COMMAND_BLOCK 1
|
||||
#define DATA_BLOCK 2
|
||||
#define RESPONSE_BLOCK 3
|
||||
--- ./backend/kvs40xx.h.orig
|
||||
+++ ./backend/kvs40xx.h
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
#include "../include/sane/config.h"
|
||||
#include <semaphore.h>
|
||||
+#include <sys/types.h>
|
||||
|
||||
#undef BACKEND_NAME
|
||||
#define BACKEND_NAME kvs40xx
|
81
testing/sane/APKBUILD
Normal file
81
testing/sane/APKBUILD
Normal file
@ -0,0 +1,81 @@
|
||||
# Contributor: Fabio Riga <rifabio@dpersonam.me>
|
||||
# Maintainer:
|
||||
pkgname=sane
|
||||
pkgver=1.0.24
|
||||
pkgrel=0
|
||||
pkgdesc="Scanner Access Now Easy"
|
||||
url="http://www.sane-project.org/"
|
||||
arch="all"
|
||||
license="GPL"
|
||||
depends=""
|
||||
depends_dev="tiff-dev libjpeg-turbo-dev libgphoto2-dev libusb-dev cups-dev
|
||||
v4l-utils-dev avahi-dev bash net-snmp-dev"
|
||||
makedepends="$depends_dev"
|
||||
install=""
|
||||
subpackages="$pkgname-dev $pkgname-doc"
|
||||
source="https://alioth.debian.org/frs/download.php/file/3958/$pkgname-backends-$pkgver.tar.gz
|
||||
10-network.patch
|
||||
20-segfault-avahi-fix-kodakio.patch
|
||||
30-musl-header-fixes.patch
|
||||
"
|
||||
|
||||
_builddir="${srcdir}/${pkgname}-backends-${pkgver}"
|
||||
prepare() {
|
||||
local i
|
||||
cd "$_builddir"
|
||||
for i in $source; do
|
||||
case $i in
|
||||
*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "$_builddir"
|
||||
./configure \
|
||||
--prefix=/usr \
|
||||
--sbindir=/usr/bin \
|
||||
--sysconfdir=/etc \
|
||||
--localstatedir=/var \
|
||||
--with-docdir=/usr/share/doc/sane \
|
||||
--enable-avahi \
|
||||
--enable-pthread \
|
||||
--disable-rpath \
|
||||
--disable-latex \
|
||||
--enable-libusb_1_0 \
|
||||
--disable-locking \
|
||||
|| return 1
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$_builddir"
|
||||
make DESTDIR="${pkgdir}" install
|
||||
# fix hp officejets
|
||||
echo "#hpaio" >> "${pkgdir}/etc/sane.d/dll.conf"
|
||||
# install udev files
|
||||
install -D -m0644 tools/udev/libsane.rules \
|
||||
"${pkgdir}/usr/lib/udev/rules.d/49-sane.rules"
|
||||
# fix udev rules
|
||||
sed -i 's|NAME="%k", ||g' "${pkgdir}/usr/lib/udev/rules.d/49-sane.rules"
|
||||
# Install the pkg-config file
|
||||
install -D -m644 tools/sane-backends.pc \
|
||||
"${pkgdir}/usr/lib/pkgconfig/sane-backends.pc"
|
||||
# Remove libtool files
|
||||
rm "$pkgdir"/usr/lib/*.la
|
||||
rm "$pkgdir"/usr/lib/sane/*.la
|
||||
}
|
||||
|
||||
md5sums="1ca68e536cd7c1852322822f5f6ac3a4 sane-backends-1.0.24.tar.gz
|
||||
9084841146b6d10b957c60594f707937 10-network.patch
|
||||
039524a38af8721f2e97d45e889295ca 20-segfault-avahi-fix-kodakio.patch
|
||||
dd5c05ee306a1ca2cd4cbb0149997007 30-musl-header-fixes.patch"
|
||||
sha256sums="27c7085a54f1505d8b551e6f1e69d30e1ee57328b18429bb2225dabf4c45462d sane-backends-1.0.24.tar.gz
|
||||
8400ed2fb2109447eb9d4e343e2964ece964ba5999b2eb6553762e9c984092c3 10-network.patch
|
||||
91e01450f87d52fa82e5e0e112a3ac7f5355f5a133467b8a38d0e1f52e94d25a 20-segfault-avahi-fix-kodakio.patch
|
||||
3147e7011d64297f6fa0229a51f5451fee151ccfe09dd2cc05d9feaf2f45fcf2 30-musl-header-fixes.patch"
|
||||
sha512sums="1e9f962bb9d27f17067eb662dabfc0a1aa0d06e16bec4bd28868124b468578d82f14f6d2c1f5de63d2cec57ca4584ec12d3b2c2b1de20f1199aece581453ebc5 sane-backends-1.0.24.tar.gz
|
||||
9cb595841f59b5105ecc85e4c0ad8781c52caa2354fb823c920ec467e88afbe47f2b3f4a7a3980bef5dbf22983c5786f051a9d10aea97b4bf7c4a05378592029 10-network.patch
|
||||
43e91fe2452eca4fbfbd256aae3f44a28674af7210f59b60b34c1149f0cd208318678a810313aabff84f18bb712982e10ae320ef3179b6437e413adda6298fbe 20-segfault-avahi-fix-kodakio.patch
|
||||
f7a2ce1826a967fdd1ee8e2bfa2080e79547564dec28012cc8fcc3955730eac8a352d55e1b2478e6092bd968f17745feb81ce8462ccd582a2282ff572c46e351 30-musl-header-fixes.patch"
|
Loading…
x
Reference in New Issue
Block a user