commit:     42ed3b068b5b440e956a9a2a465fba5724862d9d
Author:     Felix Janda <felix.janda <AT> posteo <DOT> de>
AuthorDate: Sat Jul 19 19:51:41 2014 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Jul 20 22:15:32 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-dev.git;a=commit;h=42ed3b06

media-gfx/sane-backends: Add missing #include <sys/types.h>

---
 .../sane-backends/files/niash_array_index.patch    | 140 +++++++++
 .../sane-backends-1.0.24-automagic_systemd.patch   |  40 +++
 .../sane-backends-1.0.24-kodakaio_avahi.patch      |  84 ++++++
 ...ne-backends-1.0.24-saned_pidfile_location.patch |  11 +
 .../sane-backends-1.0.24-systemd_pkgconfig.patch   |  37 +++
 .../files/sane-backends-1.0.24-u_char.patch        |  11 +
 .../files/sane-backends-1.0.24-unused-cups.patch   |  42 +++
 media-gfx/sane-backends/files/saned                |  10 +
 media-gfx/sane-backends/files/saned.confd          |   2 +
 media-gfx/sane-backends/files/saned.initd          |  12 +
 media-gfx/sane-backends/metadata.xml               |   8 +
 .../sane-backends/sane-backends-1.0.24-r99.ebuild  | 329 +++++++++++++++++++++
 12 files changed, 726 insertions(+)

diff --git a/media-gfx/sane-backends/files/niash_array_index.patch 
b/media-gfx/sane-backends/files/niash_array_index.patch
new file mode 100644
index 0000000..236c459
--- /dev/null
+++ b/media-gfx/sane-backends/files/niash_array_index.patch
@@ -0,0 +1,140 @@
+--- backend/niash.c    2010-12-02 00:49:58.000000000 +0100
++++ backend/niash.c.new        2011-09-21 20:09:07.000000000 +0200
+@@ -82,14 +82,7 @@
+   optThreshold,
+ 
+ 
+-  optLast,
+-/* put temporarily disabled options here after optLast */
+-
+-  optGroupMisc,
+-  optLamp,
+-
+-  optCalibrate,
+-  optGamma                      /* analog gamma = single number */
++  optLast
+ } EOptionIndex;
+ 
+ 
+@@ -685,17 +678,6 @@
+           pDesc->size = 0;
+           break;
+ 
+-        case optGamma:
+-          pDesc->name = SANE_NAME_ANALOG_GAMMA;
+-          pDesc->title = SANE_TITLE_ANALOG_GAMMA;
+-          pDesc->desc = SANE_DESC_ANALOG_GAMMA;
+-          pDesc->type = SANE_TYPE_FIXED;
+-          pDesc->constraint_type = SANE_CONSTRAINT_RANGE;
+-          pDesc->constraint.range = &rangeGamma;
+-          pDesc->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
+-          pVal->w = startUpGamma;
+-          break;
+-
+         case optGammaTable:
+           pDesc->name = SANE_NAME_GAMMA_VECTOR;
+           pDesc->title = SANE_TITLE_GAMMA_VECTOR;
+@@ -707,31 +689,6 @@
+           pVal->wa = s->aGammaTable;
+           break;
+ 
+-        case optGroupMisc:
+-          pDesc->title = SANE_I18N ("Miscellaneous");
+-          pDesc->type = SANE_TYPE_GROUP;
+-          pDesc->size = 0;
+-          break;
+-
+-        case optLamp:
+-          pDesc->name = "lamp";
+-          pDesc->title = SANE_I18N ("Lamp status");
+-          pDesc->desc = SANE_I18N ("Switches the lamp on or off.");
+-          pDesc->type = SANE_TYPE_BOOL;
+-          pDesc->cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
+-          /* switch the lamp on when starting for first the time */
+-          pVal->w = SANE_TRUE;
+-          break;
+-
+-        case optCalibrate:
+-          pDesc->name = "calibrate";
+-          pDesc->title = SANE_I18N ("Calibrate");
+-          pDesc->desc = SANE_I18N ("Calibrates for black and white level.");
+-          pDesc->type = SANE_TYPE_BUTTON;
+-          pDesc->cap = SANE_CAP_SOFT_SELECT;
+-          pDesc->size = 0;
+-          break;
+-
+         case optGroupMode:
+           pDesc->title = SANE_I18N ("Scan Mode");
+           pDesc->desc = "";
+@@ -1007,7 +964,6 @@
+           /* Get options of type SANE_Word */
+         case optCount:
+         case optDPI:
+-        case optGamma:
+         case optTLX:
+         case optTLY:
+         case optBRX:
+@@ -1031,17 +987,6 @@
+           strcpy ((char *) pVal, modeList[s->aValues[optMode].w]);
+           break;
+ 
+-          /* Get options of type SANE_Bool */
+-        case optLamp:
+-          GetLamp (&s->HWParams, &fLampIsOn);
+-          *(SANE_Bool *) pVal = fLampIsOn;
+-          break;
+-
+-        case optCalibrate:
+-          /*  although this option has nothing to read,
+-             it's added here to avoid a warning when running scanimage --help 
*/
+-          break;
+-
+         default:
+           DBG (DBG_MSG, "SANE_ACTION_GET_VALUE: Invalid option (%d)\n", n);
+         }
+@@ -1061,7 +1006,6 @@
+         case optCount:
+           return SANE_STATUS_INVAL;
+ 
+-        case optGamma:
+         case optThreshold:
+         case optDPI:
+ 
+@@ -1089,15 +1033,7 @@
+           DBG (DBG_MSG,
+                "sane_control_option: SANE_ACTION_SET_VALUE %d = %d\n", n,
+                (int) s->aValues[n].w);
+-          if (n == optGamma)
+-            {
+-              if (!fSame && optLast > optGammaTable)
+-                {
+-                  info |= SANE_INFO_RELOAD_OPTIONS;
+-                }
+-              _SetScalarGamma (s->aGammaTable, s->aValues[n].w);
+-            }
+-          break;
++         break;
+ 
+         case optGammaTable:
+           DBG (DBG_MSG, "Writing gamma table\n");
+@@ -1158,20 +1094,6 @@
+           break;
+ 
+ 
+-
+-        case optLamp:
+-          fVal = *(SANE_Bool *) pVal;
+-          DBG (DBG_MSG, "lamp %s\n", fVal ? "on" : "off");
+-          if (fVal)
+-            _WarmUpLamp (s, WARMUP_INSESSION);
+-          else
+-            SetLamp (&s->HWParams, SANE_FALSE);
+-          break;
+-
+-        case optCalibrate:
+-/*       SimpleCalib(&s->HWParams); */
+-          break;
+-
+         default:
+           DBG (DBG_ERR, "SANE_ACTION_SET_VALUE: Invalid option (%d)\n", n);
+         }

diff --git 
a/media-gfx/sane-backends/files/sane-backends-1.0.24-automagic_systemd.patch 
b/media-gfx/sane-backends/files/sane-backends-1.0.24-automagic_systemd.patch
new file mode 100644
index 0000000..c0dfe3c
--- /dev/null
+++ b/media-gfx/sane-backends/files/sane-backends-1.0.24-automagic_systemd.patch
@@ -0,0 +1,40 @@
+diff --git a/configure.in b/configure.in
+index 4365868..7413646 100644
+--- a/configure.in
++++ b/configure.in
+@@ -344,17 +344,24 @@ dnl      $as_echo "in order to autodetect network 
scanners in kodakaio."
+ dnl   with_cups="no"
+ dnl fi
+ 
+-dnl added by llagendijk 12/7/2012 to detect systemd for saned
+-$as_echo_n "Checking for systemd..."
+-if test -e /usr/include/systemd/sd-daemon.h ; then
+-    AC_DEFINE(HAVE_SYSTEMD, 1, [Is /usr/include/systemd/sd-daemon.h 
available?])
+-    with_systemd="yes"
+-    SYSTEMD_LIBS=" -lsystemd-daemon"
+-    AC_SUBST(SYSTEMD_LIBS)
+-    $as_echo "yes"
+-else
+-    with_systemd="no"
+-    $as_echo "no"
++AC_ARG_WITH(systemd,
++      AC_HELP_STRING([--with-systemd], [enable systemd support 
@<:@default=yes@:>@]))
++if test "x$with_systemd" != xno ; then
++    dnl added by llagendijk 12/7/2012 to detect systemd for saned
++    $as_echo_n "Checking for systemd..."
++    if test -e /usr/include/systemd/sd-daemon.h ; then
++      AC_DEFINE(HAVE_SYSTEMD, 1, [Is /usr/include/systemd/sd-daemon.h 
available?])
++      have_systemd="yes"
++      SYSTEMD_LIBS=" -lsystemd-daemon"
++      AC_SUBST(SYSTEMD_LIBS)
++      $as_echo "yes"
++    else
++      have_systemd="no"
++      $as_echo "no"
++      if test "x$with_systemd" = xyes; then
++          AC_MSG_ERROR([Systemd support was requested but systemd was not 
found])
++      fi
++    fi
+ fi
+ 
+ dnl ***********

diff --git 
a/media-gfx/sane-backends/files/sane-backends-1.0.24-kodakaio_avahi.patch 
b/media-gfx/sane-backends/files/sane-backends-1.0.24-kodakaio_avahi.patch
new file mode 100644
index 0000000..e6f52ad
--- /dev/null
+++ b/media-gfx/sane-backends/files/sane-backends-1.0.24-kodakaio_avahi.patch
@@ -0,0 +1,84 @@
+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

diff --git 
a/media-gfx/sane-backends/files/sane-backends-1.0.24-saned_pidfile_location.patch
 
b/media-gfx/sane-backends/files/sane-backends-1.0.24-saned_pidfile_location.patch
new file mode 100644
index 0000000..c682961
--- /dev/null
+++ 
b/media-gfx/sane-backends/files/sane-backends-1.0.24-saned_pidfile_location.patch
@@ -0,0 +1,11 @@
+--- sane-backends-1.0.23/frontend/saned.c
++++ sane-backends-1.0.23/frontend/saned.c
+@@ -221,7 +221,7 @@
+ int numchildren;
+ 
+ #define SANED_CONFIG_FILE "saned.conf"
+-#define SANED_PID_FILE    "/var/run/saned.pid"
++#define SANED_PID_FILE    "/var/run/saned/saned.pid"
+ 
+ #define SANED_SERVICE_NAME   "sane-port"
+ #define SANED_SERVICE_PORT   6566

diff --git 
a/media-gfx/sane-backends/files/sane-backends-1.0.24-systemd_pkgconfig.patch 
b/media-gfx/sane-backends/files/sane-backends-1.0.24-systemd_pkgconfig.patch
new file mode 100644
index 0000000..2d36cfa
--- /dev/null
+++ b/media-gfx/sane-backends/files/sane-backends-1.0.24-systemd_pkgconfig.patch
@@ -0,0 +1,37 @@
+diff --git a/configure.in b/configure.in
+index 7413646..66828fc 100644
+--- a/configure.in
++++ b/configure.in
+@@ -347,21 +347,18 @@ dnl fi
+ AC_ARG_WITH(systemd,
+       AC_HELP_STRING([--with-systemd], [enable systemd support 
@<:@default=yes@:>@]))
+ if test "x$with_systemd" != xno ; then
+-    dnl added by llagendijk 12/7/2012 to detect systemd for saned
+-    $as_echo_n "Checking for systemd..."
+-    if test -e /usr/include/systemd/sd-daemon.h ; then
+-      AC_DEFINE(HAVE_SYSTEMD, 1, [Is /usr/include/systemd/sd-daemon.h 
available?])
+-      have_systemd="yes"
+-      SYSTEMD_LIBS=" -lsystemd-daemon"
+-      AC_SUBST(SYSTEMD_LIBS)
+-      $as_echo "yes"
+-    else
+-      have_systemd="no"
+-      $as_echo "no"
+-      if test "x$with_systemd" = xyes; then
+-          AC_MSG_ERROR([Systemd support was requested but systemd was not 
found])
+-      fi
++  PKG_CHECK_MODULES(SYSTEMD, [libsystemd], have_systemd=yes, have_systemd=no)
++  if test "x$have_systemd" = xno; then
++    PKG_CHECK_MODULES(SYSTEMD, [libsystemd-daemon], have_systemd=yes, 
have_systemd=no)
++  fi
++  if test "x$have_systemd" = xyes; then
++    AC_DEFINE(HAVE_SYSTEMD, 1, [Is /usr/include/systemd/sd-daemon.h 
available?])
++    AC_SUBST(SYSTEMD_LIBS)
++  else
++    if test "x$with_systemd" = xyes; then
++      AC_MSG_ERROR([Systemd support was requested but systemd was not found])
+     fi
++  fi
+ fi
+ 
+ dnl ***********

diff --git a/media-gfx/sane-backends/files/sane-backends-1.0.24-u_char.patch 
b/media-gfx/sane-backends/files/sane-backends-1.0.24-u_char.patch
new file mode 100644
index 0000000..0a35335
--- /dev/null
+++ b/media-gfx/sane-backends/files/sane-backends-1.0.24-u_char.patch
@@ -0,0 +1,11 @@
+diff -ur a/sane-backends-1.0.24/include/sane/sanei_udp.h 
b/sane-backends-1.0.24/include/sane/sanei_udp.h
+--- a/sane-backends-1.0.24/include/sane/sanei_udp.h
++++ b/sane-backends-1.0.24/include/sane/sanei_udp.h
+@@ -27,6 +27,7 @@
+ #include <netinet/in.h>
+ #include <netdb.h>
+ #endif
++#include <sys/types.h>
+ 
+ extern SANE_Status sanei_udp_open(const char *host, int port, int *fdp);
+ extern SANE_Status sanei_udp_open_broadcast(int *fdp);

diff --git 
a/media-gfx/sane-backends/files/sane-backends-1.0.24-unused-cups.patch 
b/media-gfx/sane-backends/files/sane-backends-1.0.24-unused-cups.patch
new file mode 100644
index 0000000..c8ed34e
--- /dev/null
+++ b/media-gfx/sane-backends/files/sane-backends-1.0.24-unused-cups.patch
@@ -0,0 +1,42 @@
+diff --git a/configure.in b/configure.in
+index e13888c..4365868 100644
+--- a/configure.in
++++ b/configure.in
+@@ -332,17 +332,17 @@ if test -c /dev/urandom ; then
+     AC_DEFINE(HAVE_DEV_URANDOM, 1, [Is /dev/urandom available?])
+ fi
+ 
+-dnl added by PN 3/2/12 to detect cups
+-$as_echo "checking for cups"
+-if test -e /usr/include/cups/cups.h ; then
+-    AC_DEFINE(HAVE_CUPS, 1, [Is /usr/include/cups/cups.h available?])
+-      with_cups="yes"
+-      LIBS="-lcups  $LIBS"
+-else
+-      $as_echo "cups.h not found, you may want to install a cups development 
package"
+-      $as_echo "in order to autodetect network scanners in kodakaio."
+-      with_cups="no"
+-fi
++dnl added by PN 3/2/12 to detect cups commented out 15/10/13 since avahi is 
now used instead
++dnl $as_echo "checking for cups"
++dnl if test -e /usr/include/cups/cups.h ; then
++dnl     AC_DEFINE(HAVE_CUPS, 1, [Is /usr/include/cups/cups.h available?])
++dnl   with_cups="yes"
++dnl   LIBS="-lcups  $LIBS"
++dnl else
++dnl   $as_echo "cups.h not found, you may want to install a cups development 
package"
++dnl   $as_echo "in order to autodetect network scanners in kodakaio."
++dnl   with_cups="no"
++dnl fi
+ 
+ dnl added by llagendijk 12/7/2012 to detect systemd for saned
+ $as_echo_n "Checking for systemd..."
+@@ -816,7 +816,7 @@ fi
+ echo "IPv6 support:  `eval eval echo ${ipv6}`"
+ echo "Avahi support: `eval eval echo ${enable_avahi}`"
+ echo "SNMP support:  `eval eval echo ${with_snmp}`"
+-echo "CUPS support:  `eval eval echo ${with_cups}`"
++dnl echo "CUPS support:  `eval eval echo ${with_cups}`" commented out 15/10/13
+ echo "-> The following backends will be built:"
+ for backend in ${BACKENDS} ; do
+   echo $ECHO_N "${backend} " 

diff --git a/media-gfx/sane-backends/files/saned 
b/media-gfx/sane-backends/files/saned
new file mode 100644
index 0000000..4b3e228
--- /dev/null
+++ b/media-gfx/sane-backends/files/saned
@@ -0,0 +1,10 @@
+service sane-port
+{
+  socket_type = stream
+  server = /usr/sbin/saned
+  protocol = tcp
+  user = saned
+  group = scanner
+  wait = no
+  disable = yes
+}

diff --git a/media-gfx/sane-backends/files/saned.confd 
b/media-gfx/sane-backends/files/saned.confd
new file mode 100644
index 0000000..adb1eab
--- /dev/null
+++ b/media-gfx/sane-backends/files/saned.confd
@@ -0,0 +1,2 @@
+# The user saned should drop its privileges to after startup
+#SANED_USER=""

diff --git a/media-gfx/sane-backends/files/saned.initd 
b/media-gfx/sane-backends/files/saned.initd
new file mode 100644
index 0000000..26498dd
--- /dev/null
+++ b/media-gfx/sane-backends/files/saned.initd
@@ -0,0 +1,12 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-gfx/sane-backends/files/saned.initd,v 
1.1 2013/03/15 08:15:52 phosphan Exp $
+
+pidfile="/var/run/saned/saned.pid"
+command="/usr/sbin/saned"
+command_args="-a ${SANED_USER:-root}"
+
+start_pre() {
+       checkpath -d -o ${SANED_USER:-root} ${pidfile%/*}
+}

diff --git a/media-gfx/sane-backends/metadata.xml 
b/media-gfx/sane-backends/metadata.xml
new file mode 100644
index 0000000..95a1b7f
--- /dev/null
+++ b/media-gfx/sane-backends/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<maintainer>
+  <email>[email protected]</email>
+  <name>Chris Brannon</name>
+</maintainer>
+</pkgmetadata>

diff --git a/media-gfx/sane-backends/sane-backends-1.0.24-r99.ebuild 
b/media-gfx/sane-backends/sane-backends-1.0.24-r99.ebuild
new file mode 100644
index 0000000..7919a11
--- /dev/null
+++ b/media-gfx/sane-backends/sane-backends-1.0.24-r99.ebuild
@@ -0,0 +1,329 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: 
/var/cvsroot/gentoo-x86/media-gfx/sane-backends/sane-backends-1.0.24-r5.ebuild,v
 1.2 2014/06/18 19:24:59 mgorny Exp $
+
+EAPI="5"
+
+inherit autotools eutils flag-o-matic multilib multilib-minimal udev user 
toolchain-funcs
+
+# 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_pp
+       cardscan
+       coolscan
+       coolscan2
+       coolscan3
+       dc210
+       dc240
+       dc25
+       dell1600n_net
+       dmc
+       epjitsu
+       epson
+       epson2
+       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
+       pixma
+       plustek
+       plustek_pp
+       pnm
+       qcam
+       ricoh
+       rts8891
+       s9036
+       sceptre
+       sharp
+       sm3600
+       sm3840
+       snapscan
+       sp15c
+       st400
+       stv680
+       tamarack
+       teco1
+       teco2
+       teco3
+       test
+       u12
+       umax
+       umax1220u
+       umax_pp
+       xerox_mfp"
+
+IUSE="avahi doc gphoto2 ipv6 threads usb v4l xinetd snmp systemd"
+
+for backend in ${IUSE_SANE_BACKENDS}; do
+       case ${backend} in
+       # Disable backends that require parallel ports as no one has those 
anymore.
+       canon_pp|hpsj5s|mustek_pp|\
+       pnm)
+               IUSE+=" -sane_backends_${backend}"
+               ;;
+       mustek_usb2|kvs40xx)
+               IUSE+=" sane_backends_${backend}"
+               ;;
+       *)
+               IUSE+=" +sane_backends_${backend}"
+       esac
+done
+
+REQUIRED_USE="
+       sane_backends_mustek_usb2? ( threads )
+       sane_backends_kvs40xx? ( threads )
+"
+
+DESCRIPTION="Scanner Access Now Easy - Backends"
+HOMEPAGE="http://www.sane-project.org/";
+SRC_URI="https://alioth.debian.org/frs/download.php/file/3958/${P}.tar.gz";
+
+LICENSE="GPL-2 public-domain"
+SLOT="0"
+KEYWORDS="amd64 arm x86"
+
+RDEPEND="
+       sane_backends_dc210? ( >=virtual/jpeg-0-r2[${MULTILIB_USEDEP}] )
+       sane_backends_dc240? ( >=virtual/jpeg-0-r2[${MULTILIB_USEDEP}] )
+       sane_backends_dell1600n_net? ( >=virtual/jpeg-0-r2[${MULTILIB_USEDEP}]
+                                                                       
>=media-libs/tiff-3.9.7-r1[${MULTILIB_USEDEP}] )
+       avahi? ( >=net-dns/avahi-0.6.31-r2[${MULTILIB_USEDEP}] )
+       sane_backends_canon_pp? ( 
>=sys-libs/libieee1284-0.2.11-r3[${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}] )
+       usb? ( >=virtual/libusb-1-r1:1[${MULTILIB_USEDEP}] )
+       gphoto2? (
+               >=media-libs/libgphoto2-2.5.3.1:=[${MULTILIB_USEDEP}]
+               >=virtual/jpeg-0-r2[${MULTILIB_USEDEP}]
+       )
+       v4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] )
+       xinetd? ( sys-apps/xinetd )
+       snmp? ( net-analyzer/net-snmp )
+       systemd? ( sys-apps/systemd:0= )
+"
+
+DEPEND="${RDEPEND}
+       v4l? ( sys-kernel/linux-headers )
+       doc? (
+               virtual/latex-base
+               dev-texlive/texlive-latexextra
+       )
+       >=sys-apps/sed-4
+
+       >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
+
+# We now use new syntax construct (SUBSYSTEMS!="usb|usb_device)
+RDEPEND="${RDEPEND}
+       !<sys-fs/udev-114
+       abi_x86_32? (
+               !<=app-emulation/emul-linux-x86-medialibs-20140508
+               !app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
+       )"
+
+MULTILIB_CHOST_TOOLS=(
+       /usr/bin/sane-config
+)
+
+pkg_setup() {
+       enewgroup scanner
+       enewuser saned -1 -1 -1 scanner
+}
+
+src_prepare() {
+       cat >> backend/dll.conf.in <<-EOF
+       # Add support for the HP-specific backend.  Needs net-print/hplip 
installed.
+       hpaio
+       # Add support for the Epson-specific backend.  Needs media-gfx/iscan 
installed.
+       epkowa
+       EOF
+       epatch "${FILESDIR}"/niash_array_index.patch \
+               "${FILESDIR}"/${P}-unused-cups.patch \
+               "${FILESDIR}"/${P}-automagic_systemd.patch \
+               "${FILESDIR}"/${P}-systemd_pkgconfig.patch \
+               "${FILESDIR}"/${P}-kodakaio_avahi.patch \
+               "${FILESDIR}"/${P}-saned_pidfile_location.patch \
+               "${FILESDIR}"/${P}-u_char.patch
+       # Fix for "make check".
+       sed -i -e 's/sane-backends 1.0.24git/sane-backends 1.0.24/' 
testsuite/tools/data/html*
+       AT_NOELIBTOOLIZE=yes eautoreconf
+}
+
+src_configure() {
+       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 BACKENDS=" "
+
+       use gphoto2 && BACKENDS="gphoto2"
+       use v4l && BACKENDS="${BACKENDS} v4l"
+       for backend in ${IUSE_SANE_BACKENDS}; do
+               if use "sane_backends_${backend}" && [ ${backend} != pnm ]; then
+                       BACKENDS="${BACKENDS} ${backend}"
+               fi
+       done
+
+       local myconf=(
+               $(use_enable usb libusb_1_0)
+               $(multilib_native_use_with snmp)
+       )
+
+       # you can only enable this backend, not disable it...
+       if use sane_backends_pnm; then
+               myconf+=( --enable-pnm-backend )
+       fi
+       if ! use doc; then
+               myconf+=( --disable-latex )
+       fi
+       if use sane_backends_mustek_pp; then
+               myconf+=( --enable-parport-directio )
+       fi
+       if ! { use sane_backends_canon_pp || use sane_backends_hpsj5s || use 
sane_backends_mustek_pp; }; then
+               myconf+=( sane_cv_use_libieee1284=no )
+       fi
+       # if LINGUAS is set, just use the listed and supported localizations.
+       if [ "${LINGUAS-NoLocalesSet}" != NoLocalesSet ]; then
+               mkdir -p po || die
+               echo > po/LINGUAS
+               for lang in ${LINGUAS}; do
+                       if [ -a "${S}"/po/${lang}.po ]; then
+                               echo ${lang} >> po/LINGUAS
+                       fi
+               done
+       fi
+
+       # relative path must be used for tests to work properly
+       ECONF_SOURCE=../${P} \
+       SANEI_JPEG="sanei_jpeg.o" SANEI_JPEG_LO="sanei_jpeg.lo" \
+       BACKENDS="${BACKENDS}" \
+       econf \
+               $(use_with gphoto2) \
+               $(multilib_native_use_with systemd) \
+               $(use_with v4l) \
+               $(use_enable avahi) \
+               $(use_enable ipv6) \
+               $(use_enable threads pthread) \
+               "${myconf[@]}"
+}
+
+multilib_src_compile() {
+       emake VARTEXFONTS="${T}/fonts"
+
+       if use usb; then
+               cd tools/hotplug || die
+               sed -i -e '/^$/d' libsane.usermap || die
+       fi
+
+       if tc-is-cross-compiler; then
+               # 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
+               cd "${BUILD_DIR}"/tools || die
+               ${BUILD_CC} ${BUILD_CPPFLAGS} ${BUILD_CFLAGS} -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[@]}"
+       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
+
+               udev_newrules tools/udev/libsane.rules 41-libsane.rules
+               insinto "/usr/share/pkgconfig"
+               doins tools/sane-backends.pc
+       fi
+}
+
+multilib_src_install_all() {
+       keepdir /var/lib/lock/sane
+       fowners root:scanner /var/lib/lock/sane
+       fperms g+w /var/lib/lock/sane
+       dodir /etc/env.d
+
+       if use usb; then
+               exeinto /etc/hotplug/usb
+               doexe tools/hotplug/libusbscanner
+               newdoc tools/hotplug/README README.hotplug
+       fi
+
+       dodoc NEWS AUTHORS ChangeLog* PROBLEMS README README.linux
+       prune_libtool_files --all
+       if use xinetd; then
+               insinto /etc/xinetd.d
+               doins "${FILESDIR}"/saned
+       fi
+
+       newinitd "${FILESDIR}"/saned.initd saned
+       newconfd "${FILESDIR}"/saned.confd saned
+}
+
+pkg_postinst() {
+       if use xinetd; then
+               elog "If you want remote clients to connect, edit"
+               elog "/etc/sane.d/saned.conf and /etc/hosts.allow"
+       fi
+
+       elog "If you are using a USB scanner, add all users who want"
+       elog "to access your scanner to the \"scanner\" group."
+}

Reply via email to