diff options
author | Fabio Riga <rifabio@dpersonam.me> | 2015-02-27 17:27:16 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2015-03-16 12:04:41 +0000 |
commit | a2225b51a19076ad46c069573c500742d771556f (patch) | |
tree | 6eefec3be86cf0863f856232915d361bcd464732 | |
parent | 0c857465fd1158fd67381b697b4d4a046737bf1d (diff) | |
download | aports-a2225b51a19076ad46c069573c500742d771556f.tar.bz2 aports-a2225b51a19076ad46c069573c500742d771556f.tar.xz |
testing/sane: new port
http://www.sane-project.org
Scanner Access Now Easy
-rw-r--r-- | testing/sane/10-network.patch | 42 | ||||
-rw-r--r-- | testing/sane/20-segfault-avahi-fix-kodakio.patch | 98 | ||||
-rw-r--r-- | testing/sane/30-musl-header-fixes.patch | 51 | ||||
-rw-r--r-- | testing/sane/APKBUILD | 81 |
4 files changed, 272 insertions, 0 deletions
diff --git a/testing/sane/10-network.patch b/testing/sane/10-network.patch new file mode 100644 index 0000000000..4e422e28d2 --- /dev/null +++ b/testing/sane/10-network.patch @@ -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; + } diff --git a/testing/sane/20-segfault-avahi-fix-kodakio.patch b/testing/sane/20-segfault-avahi-fix-kodakio.patch new file mode 100644 index 0000000000..23f9d1ca9e --- /dev/null +++ b/testing/sane/20-segfault-avahi-fix-kodakio.patch @@ -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 + diff --git a/testing/sane/30-musl-header-fixes.patch b/testing/sane/30-musl-header-fixes.patch new file mode 100644 index 0000000000..6e10361043 --- /dev/null +++ b/testing/sane/30-musl-header-fixes.patch @@ -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 diff --git a/testing/sane/APKBUILD b/testing/sane/APKBUILD new file mode 100644 index 0000000000..68e6c415ec --- /dev/null +++ b/testing/sane/APKBUILD @@ -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" |