# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils flag-o-matic autotools IUSE="usb ipv6" DESCRIPTION="Scanner Access Now Easy - Backends" HOMEPAGE="http://www.sane-project.org/" BROTHERMFCPATCHVER="1.0.18" BROTHERMFCDRIVER="sane-${BROTHERMFCPATCHVER}-brother-driver.diff" SLOT="0" LICENSE="GPL-2 public-domain" KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" BACKENDS_NODEPS="abaton agfafocus apple artec as6e avision bh canon canon630u coolscan coolscan2 dc25 dmc epson fujitsu genesys gt68xx hp leo lexmark matsushita microtek microtek2 mustek mustek_usb nec pie plustek plustek_pp ricoh s9036 sceptre sharp sp15c st400 tamarack test teco1 teco2 teco3 umax umax_pp umax1220u artec_eplus48u ma1509 ibm hp5400 u12 snapscan niash sm3840 hp4200 sm3600 hp3500 stv680" # These are not in the main list for some reasons BACKENDS_NODEPS="${BACKENDS_NODEPS} mustek_usb2 net pnm" # This is enabled only with +usb actually BACKENDS_NODEPS="${BACKENDS_NODEPS} brother" # This should require libjpeg but we always require it BACKENDS_NODEPS="${BACKENDS_NODEPS} dc210 dc240" BACKENDS_IEEE1284="canon_pp hpsj5s mustek_pp" BACKENDS_GPHOTO2="gphoto2" BACKENDS_LINUX="pint qcam v4l" BACKENDS_ALL="${BACKENDS_NODEPS} ${BACKENDS_JPEG} ${BACKENDS_IEEE1284} ${BACKENDS_GPHOTO2} ${BACKENDS_LINUX}" IEEE1284_DEPS="x86? ( sys-libs/libieee1284 ) amd64? ( sys-libs/libieee1284 )" GPHOTO2_DEPS="media-libs/libgphoto2" LINUX_DEPS="virtual/os-headers" BROTHER_URI="usb? ( mirror://gentoo/${BROTHERMFCDRIVER}.bz2 http://dev.gentoo.org/~phosphan/${BROTHERMFCDRIVER}.bz2 )" for backend in ${BACKENDS_ALL}; do IUSE="${IUSE} sane_backends_${backend}" IEEE1284_DEPS="!sane_backends_${backend}? ( ${IEEE1284_DEPS} )" GPHOTO2_DEPS="!sane_backends_${backend}? ( ${GPHOTO2_DEPS} )" LINUX_DEPS="!sane_backends_${backend}? ( ${LINUX_DEPS} )" BROTHER_URI="!sane_backends_${backend}? ( ${BROTHER_URI} )" done for backend in ${BACKENDS_IEEE1284}; do IEEE1284_DEPS="${IEEE1284_DEPS} sane_backends_${backend}? ( sys-libs/libieee1284 )" done for backend in ${BACKENDS_GPHOTO2}; do GPHOTO2_DEPS="${GPHOTO2_DEPS} sane_backends_${backend}? ( media-libs/libgphoto2 )" done for backend in ${BACKENDS_LINUX}; do LINUX_DEPS="${LINUX_DEPS} sane_backends_${backend}? ( virtual/os-headers )" done RDEPEND="${IEEE1284_DEPS} ${GPHOTO2_DEPS} >=media-libs/jpeg-6b usb? ( >=dev-libs/libusb-0.1.8 )" DEPEND="${RDEPEND} ${LINUX_DEPS} >=sys-apps/sed-4" 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 ${BROTHER_URI} sane_backends_brother? ( mirror://gentoo/${BROTHERMFCDRIVER}.bz2 http://dev.gentoo.org/~phosphan/${BROTHERMFCDRIVER}.bz2 )" pkg_setup() { enewgroup scanner } src_unpack() { if [ -z "${SANE_BACKENDS}" ]; then einfo "You can use the variable SANE_BACKENDS to pick backends" einfo "instead of building all of them." fi unpack ${A} cd ${S} #only generate the .ps and not the fonts sed -i -e 's:$(DVIPS) sane.dvi -o sane.ps:$(DVIPS) sane.dvi -M1 -o sane.ps:' \ doc/Makefile.in eautoreconf # Simply check if it exists, as it will exist when it's enabled directly or # by the bulk if [[ -f ${WORKDIR}/${BROTHERMFCDRIVER} ]] ; then epatch ${WORKDIR}/${BROTHERMFCDRIVER} sed -e 's/bh canon/bh brother canon/' -i configure || \ die "could not add 'brother' to backend list" fi epatch ${FILESDIR}/udev-rule.patch } src_compile() { local myconf # Better safe than sorry, it dereferences type-punned pointers append-flags -fno-strict-aliasing if [[ -n ${SANE_BACKENDS} ]]; then einfo "Going to enable the following backends: ${SANE_BACKENDS}" myconf="$(use_with sane_backends_gphoto2 gphoto2)" else myconf="--with-gphoto2" fi SANEI_JPEG="sanei_jpeg.o" SANEI_JPEG_LO="sanei_jpeg.lo" \ BACKENDS="${SANE_BACKENDS}" \ econf \ $(use_enable usb libusb) \ $(use_enable ipv6) \ ${myconf} || die "econf failed" emake || die if use usb; then cd tools/hotplug grep -v '^$' libsane.usermap > libsane.usermap.new mv libsane.usermap.new libsane.usermap fi } src_install () { make INSTALL_LOCKPATH="" DESTDIR="${D}" install \ docdir=/usr/share/doc/${PF} 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 cd tools/hotplug insinto /etc/hotplug/usb exeinto /etc/hotplug/usb doins libsane.usermap doexe libusbscanner newdoc README README.hotplug echo >> ${D}/etc/env.d/30sane "USB_DEVFS_PATH=/dev/bus/usb" cd ../.. fi cd tools/udev dodir /etc/udev/rules.d insinto /etc/udev/rules.d newins libsane.rules 99-libsane.rules cd ../.. dodoc NEWS AUTHORS LICENSE ChangeLog* README README.linux echo "SANE_CONFIG_DIR=/etc/sane.d" >> ${D}/etc/env.d/30sane }