summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Cafarelli <voyageur@gentoo.org>2011-05-19 22:53:48 +0000
committerBernard Cafarelli <voyageur@gentoo.org>2011-05-19 22:53:48 +0000
commit3cf851e3b1cc51b8cf3fe064c6e827ca0f289268 (patch)
treeccc96d14fefc28a486c8c34f00fd9a69aad8b95e /media-gfx
parentDrop useless die in EAPI4 ebuild (diff)
downloadgentoo-2-3cf851e3b1cc51b8cf3fe064c6e827ca0f289268.tar.gz
gentoo-2-3cf851e3b1cc51b8cf3fe064c6e827ca0f289268.tar.bz2
gentoo-2-3cf851e3b1cc51b8cf3fe064c6e827ca0f289268.zip
Non-maintainer commit: fix xerox_mfp USB support, bug #368083, and use src_prepare
(Portage version: 2.2.0_alpha34/cvs/Linux x86_64)
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/sane-backends/ChangeLog10
-rw-r--r--media-gfx/sane-backends/files/sane-backends-1.0.22-xerox_mfp-usb.patch73
-rw-r--r--media-gfx/sane-backends/sane-backends-1.0.22-r1.ebuild217
3 files changed, 299 insertions, 1 deletions
diff --git a/media-gfx/sane-backends/ChangeLog b/media-gfx/sane-backends/ChangeLog
index a6447536ad60..2ac4e99e85a7 100644
--- a/media-gfx/sane-backends/ChangeLog
+++ b/media-gfx/sane-backends/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for media-gfx/sane-backends
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-gfx/sane-backends/ChangeLog,v 1.183 2011/05/08 19:35:19 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-gfx/sane-backends/ChangeLog,v 1.184 2011/05/19 22:53:48 voyageur Exp $
+
+*sane-backends-1.0.22-r1 (19 May 2011)
+
+ 19 May 2011; Bernard Cafarelli <voyageur@gentoo.org>
+ +sane-backends-1.0.22-r1.ebuild,
+ +files/sane-backends-1.0.22-xerox_mfp-usb.patch:
+ Non-maintainer commit: fix xerox_mfp USB support, bug #368083, and use
+ src_prepare
*sane-backends-1.0.22 (08 May 2011)
diff --git a/media-gfx/sane-backends/files/sane-backends-1.0.22-xerox_mfp-usb.patch b/media-gfx/sane-backends/files/sane-backends-1.0.22-xerox_mfp-usb.patch
new file mode 100644
index 000000000000..b2b3508523ec
--- /dev/null
+++ b/media-gfx/sane-backends/files/sane-backends-1.0.22-xerox_mfp-usb.patch
@@ -0,0 +1,73 @@
+From 5ea227caeacd504b64eef301e83fa63e0a25b3f7 Mon Sep 17 00:00:00 2001
+From: Alex Belkin <abc@telekom.ru>
+Date: Tue, 8 Mar 2011 17:57:19 +0300
+Subject: [PATCH] keep usb device by default (correct for bug introduced by tcp sub-backend
+
+---
+ backend/xerox_mfp.c | 27 +++++++++++----------------
+ 1 files changed, 11 insertions(+), 16 deletions(-)
+
+diff --git a/backend/xerox_mfp.c b/backend/xerox_mfp.c
+index e08b50f..d4672a7 100644
+--- a/backend/xerox_mfp.c
++++ b/backend/xerox_mfp.c
+@@ -37,10 +37,10 @@
+ static const SANE_Device **devlist = NULL; /* sane_get_devices array */
+ static struct device *devices_head = NULL; /* sane_get_devices list */
+
+-transport available_transports[] = {
++enum { TRANSPORT_USB, TRANSPORT_TCP, TRANSPORTS_MAX };
++transport available_transports[TRANSPORTS_MAX] = {
+ { "usb", usb_dev_request, usb_dev_open, usb_dev_close, usb_configure_device },
+ { "tcp", tcp_dev_request, tcp_dev_open, tcp_dev_close, tcp_configure_device },
+- { 0 }
+ };
+
+ static int resolv_state(int state)
+@@ -824,7 +824,13 @@ free_devices (void)
+ devices_head = NULL;
+ }
+
+-/* SANE API ignores return code of this callback */
++static transport *tr_from_devname(SANE_String_Const devname)
++{
++ if (strncmp("tcp", devname, 3) == 0)
++ return &available_transports[TRANSPORT_TCP];
++ return &available_transports[TRANSPORT_USB];
++}
++
+ static SANE_Status
+ list_one_device (SANE_String_Const devname)
+ {
+@@ -839,12 +845,7 @@ list_one_device (SANE_String_Const devname)
+ return SANE_STATUS_GOOD;
+ }
+
+- for (tr = available_transports; tr->ttype; tr++) {
+- if (!strncmp (devname, tr->ttype, strlen(tr->ttype)))
+- break;
+- }
+- if (!tr->ttype)
+- return SANE_STATUS_INVAL;
++ tr = tr_from_devname(devname);
+
+ dev = calloc (1, sizeof (struct device));
+ if (dev == NULL)
+@@ -878,13 +879,7 @@ list_one_device (SANE_String_Const devname)
+ static SANE_Status
+ list_conf_devices (UNUSED (SANEI_Config * config), const char *devname)
+ {
+- transport *tr;
+-
+- for (tr = available_transports; tr->ttype; tr++) {
+- if (!strncmp (devname, tr->ttype, strlen(tr->ttype)))
+- return tr->configure_device(devname, list_one_device);
+- }
+- return SANE_STATUS_INVAL;
++ return tr_from_devname(devname)->configure_device(devname, list_one_device);
+ }
+
+ SANE_Status
+--
+1.7.1
+
diff --git a/media-gfx/sane-backends/sane-backends-1.0.22-r1.ebuild b/media-gfx/sane-backends/sane-backends-1.0.22-r1.ebuild
new file mode 100644
index 000000000000..1ce4e15f9cd5
--- /dev/null
+++ b/media-gfx/sane-backends/sane-backends-1.0.22-r1.ebuild
@@ -0,0 +1,217 @@
+# Copyright 1999-2011 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.22-r1.ebuild,v 1.1 2011/05/19 22:53:48 voyageur Exp $
+
+EAPI="4"
+
+inherit eutils flag-o-matic multilib
+
+# gphoto and v4l are handled by their usual USE flags.
+# The pint backend was disabled because I could not get it to compile.
+# The mustek_usb2 backend would force us to use --enable-pthreads which is off
+# by default for linux. Let's keep this one out until we find a way how to
+# handle this cleanly.
+IUSE_SANE_BACKENDS="
+ abaton
+ agfafocus
+ apple
+ artec
+ artec_eplus48u
+ as6e
+ avision
+ bh
+ canon
+ canon630u
+ canon_dr
+ canon_pp
+ cardscan
+ coolscan
+ coolscan2
+ coolscan3
+ dc25
+ dc210
+ dc240
+ dell1600n_net
+ dmc
+ epjitsu
+ epson
+ epson2
+ fujitsu
+ genesys
+ gt68xx
+ hp
+ hp3500
+ hp3900
+ hp4200
+ hp5400
+ hp5590
+ hpsj5s
+ hpljm1005
+ hs2p
+ ibm
+ kodak
+ kvs1025
+ kvs20xx
+ leo
+ lexmark
+ ma1509
+ magicolor
+ matsushita
+ microtek
+ microtek2
+ mustek
+ mustek_pp
+ mustek_usb
+ nec
+ net
+ niash
+ p5
+ pie
+ pixma
+ plustek
+ plustek_pp
+ qcam
+ ricoh
+ rts8891
+ s9036
+ sceptre
+ sharp
+ sm3600
+ sm3840
+ snapscan
+ sp15c
+ st400
+ stv680
+ tamarack
+ teco1
+ teco2
+ teco3
+ test
+ u12
+ umax
+ umax_pp
+ umax1220u
+ xerox_mfp"
+
+IUSE="avahi usb gphoto2 ipv6 v4l doc"
+
+for backend in ${IUSE_SANE_BACKENDS}; do
+ IUSE="${IUSE} +sane_backends_${backend}"
+done
+
+DESCRIPTION="Scanner Access Now Easy - Backends"
+HOMEPAGE="http://www.sane-project.org/"
+
+RDEPEND="
+ sane_backends_dc210? ( virtual/jpeg )
+ sane_backends_dc240? ( virtual/jpeg )
+ sane_backends_dell1600n_net? ( virtual/jpeg )
+ avahi? ( >=net-dns/avahi-0.6.24 )
+ sane_backends_canon_pp? ( sys-libs/libieee1284 )
+ sane_backends_hpsj5s? ( sys-libs/libieee1284 )
+ sane_backends_mustek_pp? ( sys-libs/libieee1284 )
+ usb? ( virtual/libusb:0 )
+ gphoto2? (
+ media-libs/libgphoto2
+ virtual/jpeg
+ )
+ v4l? ( media-libs/libv4l )"
+
+DEPEND="${RDEPEND}
+ v4l? ( sys-kernel/linux-headers )
+ doc? (
+ virtual/latex-base
+ || ( dev-texlive/texlive-latexextra app-text/ptex )
+ )
+ >=sys-apps/sed-4"
+
+# We now use new syntax construct (SUBSYSTEMS!="usb|usb_device)
+RDEPEND="${RDEPEND}
+ !<sys-fs/udev-114"
+
+SRC_URI="ftp://ftp.sane-project.org/pub/sane/${P}/${P}.tar.gz
+ ftp://ftp.sane-project.org/pub/sane/old-versions/${P}/${P}.tar.gz"
+SLOT="0"
+LICENSE="GPL-2 public-domain"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+
+pkg_setup() {
+ enewgroup 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 "${DISTDIR}/${P}-i18n.patch"
+
+ # Bug #368083
+ epatch "${FILESDIR}"/${P}-xerox_mfp-usb.patch
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ # 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}"; then
+ BACKENDS="${BACKENDS} ${backend}"
+ fi
+ done
+
+ local myconf=$(use_enable usb libusb)
+ if ! use doc; then
+ myconf="${myconf} --disable-latex"
+ fi
+ if use sane_backends_mustek_pp; then
+ myconf="${myconf} --enable-parport-directio"
+ fi
+ if ! ( use sane_backends_canon_pp || use sane_backends_hpsj5s || use sane_backends_mustek_pp ); then
+ myconf="${myconf} sane_cv_use_libieee1284=no"
+ fi
+ SANEI_JPEG="sanei_jpeg.o" SANEI_JPEG_LO="sanei_jpeg.lo" \
+ BACKENDS="${BACKENDS}" econf \
+ $(use_with gphoto2) \
+ $(use_enable ipv6) \
+ $(use_enable avahi) \
+ ${myconf}
+}
+
+src_compile() {
+ emake VARTEXFONTS="${T}/fonts" || die
+
+ if use usb; then
+ cd tools/hotplug
+ grep -v '^$' libsane.usermap > libsane.usermap.new
+ mv libsane.usermap.new libsane.usermap
+ fi
+}
+
+src_install () {
+ emake INSTALL_LOCKPATH="" DESTDIR="${D}" install \
+ docdir=/usr/share/doc/${PF} || die
+ 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
+ insinto /etc/hotplug/usb
+ exeinto /etc/hotplug/usb
+ doins tools/hotplug/libsane.usermap
+ doexe tools/hotplug/libusbscanner
+ newdoc tools/hotplug/README tools/hotplug/README.hotplug
+ echo >> "${D}"/etc/env.d/30sane "USB_DEVFS_PATH=/dev/bus/usb"
+ fi
+ insinto /$(get_libdir)/udev/rules.d
+ newins tools/udev/libsane.rules 41-libsane.rules
+
+ dodoc NEWS AUTHORS ChangeLog* README README.linux
+ echo "SANE_CONFIG_DIR=/etc/sane.d" >> "${D}"/etc/env.d/30sane
+}