ChangeLog

# ChangeLog for media-gfx/iscan
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/iscan/ChangeLog,v 1.30 2008/06/30 17:52:50 sbriesen Exp $

30 Jun 2008; Stefan Briesenick -iscan-2.8.0.ebuild,
iscan-2.11.0.ebuild:
removed old version.

30 Jun 2008; Stefan Briesenick iscan-2.11.0.ebuild:
small correction in libtool fix

29 Jun 2008; Peter Alfredsen
+files/iscan-2.11.0-libltdl.patch, iscan-2.11.0.ebuild:
Fix libtool-2.2 breakage and do a full eautoreconf wrt bug #226315.

29 Jun 2008; Peter Alfredsen
+files/iscan-2.11.0-gcc43.patch, iscan-2.11.0.ebuild:
Fix for gcc-4.3. Thanks to unK .

*iscan-2.11.0 (14 May 2008)

14 May 2008; Stefan Briesenick +iscan-2.11.0.ebuild:
version bump. solves bug #216142.

21 Apr 2008; Diego Pettenò
+files/iscan-2.10.0+gcc-4.3.patch, iscan-2.10.0.ebuild:
Run full-fledged eautoreconf, otherwise the maintainer-mode will re-run it
anyway causing two runs of autoconf; add patch to build with GCC 4.3.

26 Jan 2008; Stefan Briesenick
-iscan-2.4.0-r1.ebuild, -iscan-2.6.0.ebuild, -iscan-2.7.0.ebuild:
removed old versions, solving bug #207496.

*iscan-2.10.0 (17 Nov 2007)

17 Nov 2007; Stefan Briesenick +iscan-2.10.0.ebuild:
version bump, solving bug #199433.

03 Sep 2007; Stefan Briesenick
iscan-2.4.0-r1.ebuild, iscan-2.6.0.ebuild, iscan-2.7.0.ebuild:
fixing udev issues (#188092).

*iscan-2.8.0 (03 Sep 2007)

03 Sep 2007; Stefan Briesenick +iscan-2.8.0.ebuild:
version bump (#191075) + fixing udev issues (#188092).

*iscan-2.7.0 (14 Jul 2007)

14 Jul 2007; Stefan Briesenick +iscan-2.7.0.ebuild:
version bump

17 May 2007; Stefan Briesenick iscan-2.6.0.ebuild:
fixed autotools stuff.

17 May 2007; Stefan Briesenick
-iscan-2.2.0-r1.ebuild, -iscan-2.4.0.ebuild:
removed old versions.

*iscan-2.6.0 (17 May 2007)

17 May 2007; Stefan Briesenick +iscan-2.6.0.ebuild:
version bump, solving bug #178667.

*iscan-2.4.0-r1 (06 Jan 2007)

06 Jan 2007; Stefan Briesenick
+iscan-2.4.0-r1.ebuild:
ebuild cleanup, changed udev rules handling.

17 Dec 2006; Stefan Briesenick -iscan-2.1.0.ebuild,
-iscan-2.2.0.ebuild:
removed old versions.

*iscan-2.4.0 (17 Dec 2006)

17 Dec 2006; Stefan Briesenick +iscan-2.4.0.ebuild:
version bump.

*iscan-2.2.0-r1 (17 Dec 2006)

17 Dec 2006; Stefan Briesenick
+iscan-2.2.0-r1.ebuild:
ebuild cleanup, removed 'udev' use-flag (see bug #158114).

*iscan-2.2.0 (30 Sep 2006)

30 Sep 2006; Stefan Briesenick +iscan-2.2.0.ebuild:
version bump, added QA_TEXTRELS.

30 Sep 2006; Stefan Briesenick -iscan-1.18.0.ebuild,
-iscan-2.0.0-r1.ebuild:
removed old versions.

21 Jul 2006; Stefan Briesenick files/iscan-usb.sh:
fixed legacy udev script

*iscan-2.1.0 (25 Jun 2006)

25 Jun 2006; Stefan Briesenick +iscan-2.1.0.ebuild:
version bump, some ebuild improvements regarding udev/hotplug.

27 Apr 2006; Marien Zwart Manifest:
Fixing SHA256 digest, pass four

16 Apr 2006; Stefan Briesenick
iscan-2.0.0-r1.ebuild:
added GCC 4.2 support (see bug #130118).

15 Apr 2006; Stefan Briesenick -iscan-2.0.0.ebuild:
remove buggy revision.

*iscan-2.0.0-r1 (15 Apr 2006)

15 Apr 2006; Stefan Briesenick +files/iscan-usb.sh,
+iscan-2.0.0-r1.ebuild:
auto-add 'epkowa' entry to dll.conf (bug #129198), fixing -X compile errors
if GTK isn't available (bug #129953), adding optional UDEV hotplug support
('udev' use flag), adding hints that firmware files can be used also with
'snapscan' backend + adding firmware entries to snapscan.conf.

06 Apr 2006; Stefan Briesenick -iscan-1.17.0.ebuild:
removed old version.

*iscan-2.0.0 (06 Apr 2006)

06 Apr 2006; Stefan Briesenick +iscan-2.0.0.ebuild:
version bump, ebuild cleanup + enhancements, adding GCC4.x support, solving
bug #124875.

*iscan-1.18.0 (10 Feb 2006)

10 Feb 2006; Stefan Briesenick +iscan-1.18.0.ebuild:
version bump, ebuild cleanup, added gcc3.2/3.3 support, solving bug #50043.

*iscan-1.17.0 (24 Nov 2005)

24 Nov 2005; Stefan Briesenick +metadata.xml,
+iscan-1.17.0.ebuild:
initial commit.

Manifest

AUX iscan-2.10.0+gcc-4.3.patch 768 RMD160 049cde9cc91225af8aef872217f704972ff55d9c SHA1 1d56dd8ff04251abd3c0abf48aeb1432e0e60a1c SHA256 281764933aa5aa374cb6ac76a3ed7361d6c6ab36eb1debdf6e4e35f44d43b591
AUX iscan-2.11.0-gcc43.patch 249 RMD160 8d10c5a4105f7ba520948fa5ff630c07907f0a2f SHA1 590bb8e964a8c920ef302e15264bc2ee9bc79ad9 SHA256 a5babcf81aa2023a15e8a58ae08e2b3c65d9ca9767ccd5796a67eaf75ed9cdbd
AUX iscan-2.11.0-libltdl.patch 1102 RMD160 14ad9a6481a864e143ed977129d0f4258c08c555 SHA1 e30d0add39dceca98a3fa01ea3a1a478b2e61070 SHA256 501e4f8cb396da112bcf30051b8a8e8703c5f866a70ad757d019dea696ab3b48
AUX iscan-usb.sh 826 RMD160 ebf81c44b9e4f1f040a276e3f918662cd93a5f10 SHA1 90e0205dad199aeb87cfb89c7d89dd8737702001 SHA256 8ece8711de7ebfd7d9266e96d8cdf4c7bc12ad52ab212590162526d4af669798
DIST iscan-plugin-cx4400-2.0.0-0.c2.i386.rpm 94530 RMD160 df07c891df3429d94676307ee61816fab9a7fc28 SHA1 08f4e8c7b74781fccad3d92ca6b4f42fe1fee3ba SHA256 c8c073679dad0febadb8a19cebd25676f2a5897f4e4a3f34ee2333f0513e3ba8
DIST iscan-plugin-gt-7200-1.0.0-1.c2.i386.rpm 62336 RMD160 7862ae8f8e4362ba9535b9d492e742d9716da91d SHA1 708527915e9005139352308c2ad1a0c5c570fb17 SHA256 11789e2074670b1098cea9366b3e33bb72ce316c0ced6e09086f3a13eeccb86f
DIST iscan-plugin-gt-7300-1.0.0-1.c2.i386.rpm 77271 RMD160 9d3a95a1eefd5a63b991d06ed58356aeb814b7d8 SHA1 b57c9d4a7e8cd90157a3671d5a794d603a6734cd SHA256 a6cfce5c1da99ee34b4186cdf7e611a685be8da95b08f8295fdeafcb4d0fc339
DIST iscan-plugin-gt-9400-1.0.0-1.c2.i386.rpm 140610 RMD160 aaa768cffc851d2168e358c6f4e30b8125ef8e86 SHA1 5783e5f37c042d247067379f158ab65850916e3a SHA256 0172f3331dfefac27fffe3723b7b403b1fbc5d0cd0c3e835bdef7d925dfeab3e
DIST iscan-plugin-gt-f500-1.0.0-1.c2.i386.rpm 126130 RMD160 a5ea991156fb8fbe460c5a8198467837eedfa6bc SHA1 5fa5d7f8574fa2331ff4f7a3409e814beaf3a183 SHA256 fe87d16ce22c28e2c320286758bea32ea4cad75c83debd6fe95670b704701464
DIST iscan-plugin-gt-f520-1.0.0-1.c2.i386.rpm 125919 RMD160 8743c98fb45b055adc1db38cfd312de9517cccee SHA1 636cb1ff1bd75e6a9876380b979b005b5624efa9 SHA256 2f0dd2257e19c808062ddbaa4a1f4cf6899944cacce67f46136008fbe60ae61a
DIST iscan-plugin-gt-f600-1.0.0-1.c2.i386.rpm 151280 RMD160 2779029ea507525042122a0ca5581a3b0fd5cbc8 SHA1 da43f18a54121f55e7f484bdb9786ff3fc62d87c SHA256 4735e468c060250a2e6b9adca72ed43c9e8523db5b95d8edad7d0e91f0ac13d2
DIST iscan-plugin-gt-f670-2.0.0-1.c2.i386.rpm 173098 RMD160 f3dec4db07db8213d3d6248cff7eaadf8dbe06b4 SHA1 9d27d5d510b5fd473025804419a42fe4211e802e SHA256 2b5db6830b5918f5c71f8e9a5d967fbc5abdbc74735705a01d0356d9994830da
DIST iscan-plugin-gt-f700-2.0.0-0.c2.i386.rpm 150711 RMD160 52a0aee4787c5dd8b64a87a40c988f4c5242cde5 SHA1 9c184cc447c851e9d0150ee45c303e55bea2456d SHA256 c3f31a4b9c07c0a9a83033de0d9b873d282f267dc7de2855083c1a8413c4c591
DIST iscan-plugin-gt-s600-2.0.0-1.c2.i386.rpm 140478 RMD160 4a86fa7626c895e90e7a77ef1d07c93165a5afe3 SHA1 d660161c4fb5a15bf472b5390fb72a5e58f249f1 SHA256 75d66ae95407b879ad4ea14d67e5ecf11e0e12159fd5a8521b4589299dffdb0f
DIST iscan-plugin-gt-x750-1.0.0-1.c2.i386.rpm 163386 RMD160 aeb024f903c79d64cb79ab8c15d3f6fb0c7ece8d SHA1 3af44f8b6c79d93c80e3c67761aa3ef0f9fe8347 SHA256 7ebd3a9cf7f35b5abc5cd8c6b5c27dd98b2b6c39ad621c9ab753f3046b9578a4
DIST iscan-plugin-gt-x770-2.1.0-0.c2.i386.rpm 166476 RMD160 123a686c2d5abcd2d319ee0ece5bd8df392d4b1a SHA1 86fa78bf728d6b21b6d2e8ad042ed0fb31798091 SHA256 04b1d6c13915a14b16721e2c36309f25b0155f3d9bb13eb1eca9b70161342fbd
DIST iscan_2.10.0-1.tar.gz 1437822 RMD160 0ce7c7d88b93f7881558d7d9ca556f87e0684a23 SHA1 87340157b2f6854e6bdeb00b4036467b845189c6 SHA256 8930ef9c41951bb2b229160e832fce9bef520bcb578af5c3c7cc7f58d378ec43
DIST iscan_2.11.0-1.tar.gz 1458880 RMD160 7ac5777d57afa2c0a76cac0808a3aaf7c354edf5 SHA1 a7fe77ded2f788a7bed6b0fa8377c43e6cf6e077 SHA256 ae0a72647acfa4cedc320e280014d3cdf8d61c0f4e2a7e941697cf2f36bed0a8
EBUILD iscan-2.10.0.ebuild 9378 RMD160 9f49b53c0c5bbbe7bfc2a334ea684b4fc797ad86 SHA1 74075bb4e14f91d163f86abd18298b3f8400521e SHA256 33a3195bbcded623fca7fe96550142b12633b65d569315d5f18c00821dfeac63
EBUILD iscan-2.11.0.ebuild 9608 RMD160 964d9d3e1ae9746b6ca54e6f33d279335c21a087 SHA1 5287027e73b19d26db5d85f48514139ef6cd72b4 SHA256 5a56b615b4845a3af54981152a7170c83685410bb8a294b826e63ac46422f586
MISC ChangeLog 4815 RMD160 7c5df55ea1c978170abce0324e8d17715d329856 SHA1 7b2ae3a275e753f2d91499eb0b061da4ad33ac1d SHA256 b660cbeb50a9aebafb742f92c00ed960fda043a19e906e076413ce3942136666
MISC metadata.xml 674 RMD160 9337250d90495a96a34e5e3b6db2b5125f75e8cb SHA1 6405fc64d508b081a27c420828302dadd05fafe9 SHA256 9c1fe69dd2b3ba142164829a8725afdc1f573f597d4decd024d006c6321efe26

files

iscan-2.10.0.ebuild

# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/iscan/iscan-2.10.0.ebuild,v 1.2 2008/04/21 16:48:02 flameeyes Exp $

WANT_AUTOCONF="latest"
WANT_AUTOMAKE="latest"

inherit eutils toolchain-funcs flag-o-matic autotools rpm

SRC_REV="1" # revision used by upstream

# HINTS:
# -> non-free modules are x86 only
# -> isane frontend needs non-free modules
# -> sane-epkowa should be usable on every arch
# -> ${P}-${SRC_REV}.tar.gz (for gcc 3.2/3.3)
# -> ${P}-${SRC_REV}.c2.tar.gz (for gcc 3.4 or later)

# PLUGINS:
# -> iscan-plugin-gt-7200 == Perfection 1250 PHOTO
# -> iscan-plugin-gt-7300 == Perfection 1260 PHOTO
# -> iscan-plugin-gt-9400 == Perfection 3170 PHOTO (esfw32.bin)
# -> iscan-plugin-gt-f500 == Perfection 2480/2580 PHOTO (esfw41.bin)
# -> iscan-plugin-gt-f520 == Perfection 3490/3590 PHOTO (esfw52.bin)
# -> iscan-plugin-gt-f600 == Perfection 4180 PHOTO (esfw43.bin)
# -> iscan-plugin-gt-x750 == Perfection 4490 PHOTO (esfw54.bin)
# -> iscan-plugin-gt-s600 == Perfection V10/V100 PHOTO (esfw66.bin)
# -> iscan-plugin-gt-f700 == Perfection V350 PHOTO (esfw68.bin)
# -> iscan-plugin-gt-f670 == Perfection V200 PHOTO (esfw7A.bin)
# -> iscan-plugin-cx4400 == Stylus CX4300/CX4400/CX4450/CX5500/CX5600/DX4400/DX4450

# FIXME:
# Make jpeg/png optional. The problem is, that the
# configure script ignores --disable-*, if the
# corresponding lib is found on the system.
# Furthermore, isane doesn't compile w/o libusb,
# this should be fixed somehow.

# available x86 plugins (will be assembled below)
PLUGINS="
v1180/gt-7200-1.0.0-1
v1180/gt-7300-1.0.0-1
v1180/gt-9400-1.0.0-1
v1180/gt-f500-1.0.0-1
v1180/gt-f520-1.0.0-1
v1180/gt-f600-1.0.0-1
v1180/gt-x750-1.0.0-1
2.3.0/gt-f700-2.0.0-0
2.3.0/gt-s600-2.0.0-1
2.8.0/gt-f670-2.0.0-1
2.10.0/cx4400-2.0.0-0"

# Firmware files within plugin RPMs
FIRMWARE=( "esfw41.bin Perfection 2480/2580 PHOTO"
"esfw32.bin Perfection 3170 PHOTO"
"esfw52.bin Perfection 3490/3590 PHOTO"
"esfw43.bin Perfection 4180 PHOTO"
"esfw54.bin Perfection 4490 PHOTO"
"esfw66.bin Perfection V10/V100 PHOTO"
"esfw68.bin Perfection V350 PHOTO"
"esfw7A.bin Perfection V200 PHOTO" )

SRC_GCC34="http://lx1.avasys.jp/iscan/${PV}/${PN}_${PV}-${SRC_REV}.tar.gz"
BIN_GCC34=""

for X in ${PLUGINS}; do
BIN_GCC34="${BIN_GCC34} http://lx1.avasys.jp/iscan/${X%%/*}/iscan-plugin-${X##*/}.c2.i386.rpm"
done

# feel free to add your arch, every non-x86
# arch doesn't install any x86-only stuff.
KEYWORDS="~amd64 ~x86"

DESCRIPTION="EPSON Image Scan! for Linux (including sane-epkowa backend and firmware)"
HOMEPAGE="http://www.avasys.jp/english/linux_e/dl_scan.html"
SRC_URI="${SRC_GCC34} ${BIN_GCC34}"
LICENSE="GPL-2 EAPL EPSON"
SLOT="0"

IUSE="X gimp unicode"
IUSE_LINGUAS="de es fr it ja ko nl pt zh_CN zh_TW"

for X in ${IUSE_LINGUAS}; do IUSE="${IUSE} linguas_${X}"; done

QA_TEXTRELS="
usr/lib/iscan/libesint41.so.2.0.0
usr/lib/iscan/libesint52.so.2.0.0"

DEPEND="media-gfx/sane-backends
media-libs/libpng
media-libs/jpeg
>=sys-fs/udev-103
>=dev-libs/libusb-0.1.12
x86? (
X? (
sys-devel/gettext
>=x11-libs/gtk+-2.0
gimp? ( media-gfx/gimp )
)
)"

snapscan_firmware() {
local i
echo "#-------------- EPSON Image Scan! for Linux Scanner-Firmware --------------"
for i in "${FIRMWARE[@]}"; do
echo
echo "# ${i#* } (${i%% *})"
echo "#firmware /usr/share/iscan/${i%% *}"
done
echo
cat 2>/dev/null "${1}"
}

usermap_to_udev() {
local ACTION='MODE="0660", GROUP="scanner"'
local DEVICE='\1ATTRS{idVendor}=="\L\2\E", ATTRS{idProduct}=="\L\3\E"'
echo '# udev rules file for iscan devices (udev >= 0.98)'
echo '#'
echo 'ACTION!="add", GOTO="iscan_rules_end"'
echo 'SUBSYSTEM!="usb*", GOTO="iscan_rules_end"'
echo 'KERNEL=="lp[0-9]*", GOTO="iscan_rules_end"'
echo
sed -n -e "s|^\(# SEIKO EPSON.*\)|\1|p" \
-e "s|^\(#*\)i*scan-device *0x0003 *0x\([^ ]\+\) *0x\([^ ]\+\)*.*|${DEVICE}, ${ACTION}|p" "${1}"
echo
echo 'LABEL="iscan_rules_end"'
}

pkg_setup() {
local i
if ! use x86 && ( use X || use gimp ); then
ewarn
ewarn "The iscan application needs CSS x86-only libs and"
ewarn "thus can't be built currently. You can still use"
ewarn "'xscanimage', 'xsane' or 'kooka' with sane-epkowa"
ewarn "backend. But some low-end scanners are also not"
ewarn "supported, because they need these x86 libs, too."
ewarn
fi

# Select correct tarball for installed GCC. This is not a perfect
# solution and should be expanded to other working GCC versions.
einfo "GCC version: $(gcc-fullversion)"
case "$(gcc-version)" in
3.4|4.[01234]) # 4.x seems to work (tested with Perfection 3490 PHOTO)
MY_A="${SRC_GCC34##*/}"
for i in ${BIN_GCC34}; do MY_A="${MY_A} ${i##*/}"; done
;;
*)
if use x86; then
die "Your GCC version is not supported. You need either 3.4 or 4.x!"
else
MY_A="${SRC_GCC34##*/}" # fallback to GCC 3.4, should not harm.
for i in ${BIN_GCC34}; do MY_A="${MY_A} ${i##*/}"; done
fi
;;
esac
}

src_unpack() {
local i

cd "${WORKDIR}"
for i in ${MY_A}; do
case "${i}" in
*.rpm)
echo ">>> Unpacking ${i}"
rpm_unpack "${DISTDIR}/${i}" || die "failure unpacking ${i}"
;;
*)
unpack "${i}"
;;
esac
done

cd "${S}"

# convert japanese docs to UTF-8
if use unicode && use linguas_ja; then
for i in {NEWS,README}.ja non-free/*.ja.txt; do
if [ -f "${i}" ]; then
echo ">>> Converting ${i} to UTF-8"
iconv -f eucjp -t utf8 -o "${i}~" "${i}" && mv -f "${i}~" "${i}" || rm -f "${i}~"
fi
done
fi

# disable iscan frontend + none-free modules
if ! ( use x86 && use X ); then
sed -i -e "s:PKG_CHECK_MODULES(GTK,.*):AC_DEFINE([HAVE_GTK_2], 0):g" \
-e "s:\(PKG_CHECK_MODULES(GDK_IMLIB,.*)\):#\1:g" configure.ac
sed -i -e 's:^\([[:space:]]*\)frontend[[:space:]]*\\:\1\\:g' \
-e 's:^\([[:space:]]*\)non-free[[:space:]]*\\:\1\\:g' \
-e 's:^\([[:space:]]*\)po[[:space:]]*\\:\1\\:g' Makefile*
sed -i -e 's:iscan.1::g' doc/Makefile*
fi

epatch "${FILESDIR}/${P}+gcc-4.3.patch"

# autotool stuff
eautoreconf
}

src_compile() {
append-flags -D_GNU_SOURCE # needed for 'strndup'
# hint: dirty hack, look into 'configure.ac' for 'PACKAGE_CXX_ABI'
CXX="g++" econf --enable-jpeg --enable-png --with-pic || die "econf failed"
emake CXX="$(tc-getCXX)" || die "emake failed"
}

src_install() {
local MY_LIB="/usr/$(get_libdir)"
make DESTDIR="${D}" install || die "make install failed"

# --disable-static doesn't work, so we just remove obsolete static lib
sed -i -e "s:^\(old_library=\):# \1:g" "${D}${MY_LIB}/sane/libsane-epkowa.la"
rm -f "${D}${MY_LIB}/sane/libsane-epkowa.a"

# install scanner plugins (x86-only)
if use x86; then
dodir ${MY_LIB}/iscan
cp -df "${WORKDIR}"/usr/lib/iscan/* "${D}${MY_LIB}"/iscan/.
fi

# install scanner firmware (could be used by sane-backends)
insinto /usr/share/iscan
doins "${WORKDIR}"/usr/share/iscan/*

# install docs
dodoc AUTHORS NEWS README doc/epkowa.desc
use linguas_ja && dodoc NEWS.ja README.ja

# remove 'make-udev-rules', we use our own stuff below
rm -f "${D}usr/lib/iscan/make-udev-rules"

# install USB hotplug stuff
dodir /etc/udev/rules.d
usermap_to_udev utils/hotplug/iscan.usermap \
> "${D}etc/udev/rules.d/99-iscan.rules"

# install sane config
insinto /etc/sane.d
doins backend/epkowa.conf

# link iscan so it is seen as a plugin in gimp
if use x86 && use X && use gimp; then
local plugindir
if [ -x /usr/bin/gimptool ]; then
plugindir="$(gimptool --gimpplugindir)/plug-ins"
elif [ -x /usr/bin/gimptool-2.0 ]; then
plugindir="$(gimptool-2.0 --gimpplugindir)/plug-ins"
else
die "Can't find GIMP plugin directory."
fi
dodir "${plugindir}"
dosym /usr/bin/iscan "${plugindir}"
fi

# install desktop entry
if use x86 && use X; then
make_desktop_entry iscan "Image Scan! for Linux ${PV}" scanner.png
fi
}

pkg_postinst() {
local i
local DLL_CONF="/etc/sane.d/dll.conf"
local EPKOWA_CONF="/etc/sane.d/epkowa.conf"
local SNAPSCAN_CONF="/etc/sane.d/snapscan.conf"
elog
if grep -q "^[ \t]*\" ${DLL_CONF}; then
elog "Please edit ${EPKOWA_CONF} to suit your needs."
elif grep -q "\" ${DLL_CONF}; then
elog "Hint: to enable the backend, add 'epkowa' to ${DLL_CONF}"
elog "Then edit ${EPKOWA_CONF} to suit your needs."
else
echo "epkowa" >> ${DLL_CONF}
elog "A new entry 'epkowa' was added to ${DLL_CONF}"
elog "Please edit ${EPKOWA_CONF} to suit your needs."
fi
elog
elog "You can also use the 'snapscan' backend if you have a recent"
elog "sane-backend installation. Firmware files for some newer"
elog "EPSON scanners were installed into /usr/share/iscan:"
elog
for i in "${FIRMWARE[@]}"; do
elog " ${i%% *}: ${i#* }"
done
elog
if ! grep 2>/dev/null -q "/usr/share/iscan/.*\.bin" "${SNAPSCAN_CONF}"; then
snapscan_firmware "${SNAPSCAN_CONF}" > "${SNAPSCAN_CONF}~~~" \
&& mv -f "${SNAPSCAN_CONF}~~~" "${SNAPSCAN_CONF}" \
|| rm -f "${SNAPSCAN_CONF}~~~"
elog "The firmware entries were added to ${SNAPSCAN_CONF}"
else
elog "Please edit ${SNAPSCAN_CONF} to suit your needs."
fi
elog "Hint: not all models are supported by 'snapscan' yet!"
elog
elog "You can check which backend fits best for your scanner:"
elog "http://www.sane-project.org/cgi-bin/driver.pl?manu=Epson&bus=any"
elog
}

iscan-2.11.0.ebuild

# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/iscan/iscan-2.11.0.ebuild,v 1.4 2008/06/30 17:52:50 sbriesen Exp $

WANT_AUTOCONF="latest"
WANT_AUTOMAKE="latest"

inherit eutils toolchain-funcs flag-o-matic autotools rpm

SRC_REV="1" # revision used by upstream

# HINTS:
# -> non-free modules are x86 only
# -> isane frontend needs non-free modules
# -> sane-epkowa should be usable on every arch
# -> ${P}-${SRC_REV}.tar.gz (for gcc 3.2/3.3)
# -> ${P}-${SRC_REV}.c2.tar.gz (for gcc 3.4 or later)

# PLUGINS:
# -> iscan-plugin-gt-7200 == Perfection 1250 PHOTO
# -> iscan-plugin-gt-7300 == Perfection 1260 PHOTO
# -> iscan-plugin-gt-9400 == Perfection 3170 PHOTO (esfw32.bin)
# -> iscan-plugin-gt-f500 == Perfection 2480/2580 PHOTO (esfw41.bin)
# -> iscan-plugin-gt-f520 == Perfection 3490/3590 PHOTO (esfw52.bin)
# -> iscan-plugin-gt-f600 == Perfection 4180 PHOTO (esfw43.bin)
# -> iscan-plugin-gt-x750 == Perfection 4490 PHOTO (esfw54.bin)
# -> iscan-plugin-gt-s600 == Perfection V10/V100 PHOTO (esfw66.bin)
# -> iscan-plugin-gt-f700 == Perfection V350 PHOTO (esfw68.bin)
# -> iscan-plugin-gt-f670 == Perfection V200 PHOTO (esfw7A.bin)
# -> iscan-plugin-gt-x770 == Perfection V500 PHOTO (esfw7C.bin)
# -> iscan-plugin-cx4400 == Stylus CX4300/CX4400/CX4450/CX5500/CX5600/DX4400/DX4450

# FIXME:
# Make jpeg/png optional. The problem is, that the
# configure script ignores --disable-*, if the
# corresponding lib is found on the system.
# Furthermore, isane doesn't compile w/o libusb,
# this should be fixed somehow.

# available x86 plugins (will be assembled below)
PLUGINS="
v1180/gt-7200-1.0.0-1
v1180/gt-7300-1.0.0-1
v1180/gt-9400-1.0.0-1
v1180/gt-f500-1.0.0-1
v1180/gt-f520-1.0.0-1
v1180/gt-f600-1.0.0-1
v1180/gt-x750-1.0.0-1
2.3.0/gt-f700-2.0.0-0
2.3.0/gt-s600-2.0.0-1
2.8.0/gt-f670-2.0.0-1
2.10.0/cx4400-2.0.0-0
2.11.0/gt-x770-2.1.0-0"

# Firmware files within plugin RPMs
FIRMWARE=( "esfw41.bin Perfection 2480/2580 PHOTO"
"esfw32.bin Perfection 3170 PHOTO"
"esfw52.bin Perfection 3490/3590 PHOTO"
"esfw43.bin Perfection 4180 PHOTO"
"esfw54.bin Perfection 4490 PHOTO"
"esfw66.bin Perfection V10/V100 PHOTO"
"esfw68.bin Perfection V350 PHOTO"
"esfw7A.bin Perfection V200 PHOTO"
"esfw7C.bin Perfection V500 PHOTO" )

SRC_GCC34="http://lx1.avasys.jp/iscan/${PV}/${PN}_${PV}-${SRC_REV}.tar.gz"
BIN_GCC34=""

for X in ${PLUGINS}; do
BIN_GCC34="${BIN_GCC34} http://lx1.avasys.jp/iscan/${X%%/*}/iscan-plugin-${X##*/}.c2.i386.rpm"
done

# feel free to add your arch, every non-x86
# arch doesn't install any x86-only stuff.
KEYWORDS="~amd64 ~x86"

DESCRIPTION="EPSON Image Scan! for Linux (including sane-epkowa backend and firmware)"
HOMEPAGE="http://www.avasys.jp/english/linux_e/dl_scan.html"
SRC_URI="${SRC_GCC34} ${BIN_GCC34}"
LICENSE="GPL-2 EAPL EPSON"
SLOT="0"

IUSE="X gimp unicode"
IUSE_LINGUAS="de es fr it ja ko nl pt zh_CN zh_TW"

for X in ${IUSE_LINGUAS}; do IUSE="${IUSE} linguas_${X}"; done

QA_TEXTRELS="
usr/lib/iscan/libesint41.so.2.0.0
usr/lib/iscan/libesint52.so.2.0.0"

DEPEND="media-gfx/sane-backends
media-libs/libpng
media-libs/jpeg
>=sys-fs/udev-103
>=dev-libs/libusb-0.1.12
x86? (
X? (
sys-devel/gettext
>=x11-libs/gtk+-2.0
gimp? ( media-gfx/gimp )
)
)"

snapscan_firmware() {
local i
echo "#-------------- EPSON Image Scan! for Linux Scanner-Firmware --------------"
for i in "${FIRMWARE[@]}"; do
echo
echo "# ${i#* } (${i%% *})"
echo "#firmware /usr/share/iscan/${i%% *}"
done
echo
cat 2>/dev/null "${1}"
}

usermap_to_udev() {
local ACTION='MODE="0660", GROUP="scanner"'
local DEVICE='\1ATTRS{idVendor}=="\L\2\E", ATTRS{idProduct}=="\L\3\E"'
echo '# udev rules file for iscan devices (udev >= 0.98)'
echo '#'
echo 'ACTION!="add", GOTO="iscan_rules_end"'
echo 'SUBSYSTEM!="usb*", GOTO="iscan_rules_end"'
echo 'KERNEL=="lp[0-9]*", GOTO="iscan_rules_end"'
echo
sed -n -e "s|^\(# SEIKO EPSON.*\)|\1|p" \
-e "s|^\(#*\)i*scan-device *0x0003 *0x\([^ ]\+\) *0x\([^ ]\+\)*.*|${DEVICE}, ${ACTION}|p" "${1}"
echo
echo 'LABEL="iscan_rules_end"'
}

pkg_setup() {
local i
if ! use x86 && ( use X || use gimp ); then
ewarn
ewarn "The iscan application needs CSS x86-only libs and"
ewarn "thus can't be built currently. You can still use"
ewarn "'xscanimage', 'xsane' or 'kooka' with sane-epkowa"
ewarn "backend. But some low-end scanners are also not"
ewarn "supported, because they need these x86 libs, too."
ewarn
fi

# Select correct tarball for installed GCC. This is not a perfect
# solution and should be expanded to other working GCC versions.
einfo "GCC version: $(gcc-fullversion)"
case "$(gcc-version)" in
3.4|4.[01234]) # 4.x seems to work (tested with Perfection 3490 PHOTO)
MY_A="${SRC_GCC34##*/}"
for i in ${BIN_GCC34}; do MY_A="${MY_A} ${i##*/}"; done
;;
*)
if use x86; then
die "Your GCC version is not supported. You need either 3.4 or 4.x!"
else
MY_A="${SRC_GCC34##*/}" # fallback to GCC 3.4, should not harm.
for i in ${BIN_GCC34}; do MY_A="${MY_A} ${i##*/}"; done
fi
;;
esac
}

src_unpack() {
local i

cd "${WORKDIR}"
for i in ${MY_A}; do
case "${i}" in
*.rpm)
echo ">>> Unpacking ${i}"
rpm_unpack "${DISTDIR}/${i}" || die "failure unpacking ${i}"
;;
*)
unpack "${i}"
;;
esac
done

cd "${S}"

# apply patches
epatch "${FILESDIR}/${P}-gcc43.patch"
epatch "${FILESDIR}/${P}-libltdl.patch"

# convert japanese docs to UTF-8
if use unicode && use linguas_ja; then
for i in {NEWS,README}.ja non-free/*.ja.txt; do
if [ -f "${i}" ]; then
echo ">>> Converting ${i} to UTF-8"
iconv -f eucjp -t utf8 -o "${i}~" "${i}" && mv -f "${i}~" "${i}" || rm -f "${i}~"
fi
done
fi

# disable iscan frontend + none-free modules
if ! ( use x86 && use X ); then
sed -i -e "s:PKG_CHECK_MODULES(GTK,.*):AC_DEFINE([HAVE_GTK_2], 0):g" \
-e "s:\(PKG_CHECK_MODULES(GDK_IMLIB,.*)\):#\1:g" configure.ac
sed -i -e 's:^\([[:space:]]*\)frontend[[:space:]]*\\:\1\\:g' \
-e 's:^\([[:space:]]*\)non-free[[:space:]]*\\:\1\\:g' \
-e 's:^\([[:space:]]*\)po[[:space:]]*\\:\1\\:g' Makefile*
sed -i -e 's:iscan.1::g' doc/Makefile*
fi

# autotool stuff
# rm libltdl/acinclude.m4
rm m4/libtool.m4
eautoreconf
}

src_compile() {
append-flags -D_GNU_SOURCE # needed for 'strndup'
# hint: dirty hack, look into 'configure.ac' for 'PACKAGE_CXX_ABI'
CXX="g++" econf --enable-jpeg --enable-png --with-pic || die "econf failed"
emake CXX="$(tc-getCXX)" || die "emake failed"
}

src_install() {
local MY_LIB="/usr/$(get_libdir)"
make DESTDIR="${D}" install || die "make install failed"

# --disable-static doesn't work, so we just remove obsolete static lib
sed -i -e "s:^\(old_library=\):# \1:g" "${D}${MY_LIB}/sane/libsane-epkowa.la"
rm -f "${D}${MY_LIB}/sane/libsane-epkowa.a"

# install scanner plugins (x86-only)
if use x86; then
dodir ${MY_LIB}/iscan
cp -df "${WORKDIR}"/usr/lib/iscan/* "${D}${MY_LIB}"/iscan/.
fi

# install scanner firmware (could be used by sane-backends)
insinto /usr/share/iscan
doins "${WORKDIR}"/usr/share/iscan/*

# install docs
dodoc AUTHORS NEWS README doc/epkowa.desc
use linguas_ja && dodoc NEWS.ja README.ja

# remove 'make-udev-rules', we use our own stuff below
rm -f "${D}usr/lib/iscan/make-udev-rules"

# install USB hotplug stuff
dodir /etc/udev/rules.d
usermap_to_udev utils/hotplug/iscan.usermap \
> "${D}etc/udev/rules.d/99-iscan.rules"

# install sane config
insinto /etc/sane.d
doins backend/epkowa.conf

# link iscan so it is seen as a plugin in gimp
if use x86 && use X && use gimp; then
local plugindir
if [ -x /usr/bin/gimptool ]; then
plugindir="$(gimptool --gimpplugindir)/plug-ins"
elif [ -x /usr/bin/gimptool-2.0 ]; then
plugindir="$(gimptool-2.0 --gimpplugindir)/plug-ins"
else
die "Can't find GIMP plugin directory."
fi
dodir "${plugindir}"
dosym /usr/bin/iscan "${plugindir}"
fi

# install desktop entry
if use x86 && use X; then
make_desktop_entry iscan "Image Scan! for Linux ${PV}" scanner.png
fi
}

pkg_postinst() {
local i
local DLL_CONF="/etc/sane.d/dll.conf"
local EPKOWA_CONF="/etc/sane.d/epkowa.conf"
local SNAPSCAN_CONF="/etc/sane.d/snapscan.conf"
elog
if grep -q "^[ \t]*\" ${DLL_CONF}; then
elog "Please edit ${EPKOWA_CONF} to suit your needs."
elif grep -q "\" ${DLL_CONF}; then
elog "Hint: to enable the backend, add 'epkowa' to ${DLL_CONF}"
elog "Then edit ${EPKOWA_CONF} to suit your needs."
else
echo "epkowa" >> ${DLL_CONF}
elog "A new entry 'epkowa' was added to ${DLL_CONF}"
elog "Please edit ${EPKOWA_CONF} to suit your needs."
fi
elog
elog "You can also use the 'snapscan' backend if you have a recent"
elog "sane-backend installation. Firmware files for some newer"
elog "EPSON scanners were installed into /usr/share/iscan:"
elog
for i in "${FIRMWARE[@]}"; do
elog " ${i%% *}: ${i#* }"
done
elog
if ! grep 2>/dev/null -q "/usr/share/iscan/.*\.bin" "${SNAPSCAN_CONF}"; then
snapscan_firmware "${SNAPSCAN_CONF}" > "${SNAPSCAN_CONF}~~~" \
&& mv -f "${SNAPSCAN_CONF}~~~" "${SNAPSCAN_CONF}" \
|| rm -f "${SNAPSCAN_CONF}~~~"
elog "The firmware entries were added to ${SNAPSCAN_CONF}"
else
elog "Please edit ${SNAPSCAN_CONF} to suit your needs."
fi
elog "Hint: not all models are supported by 'snapscan' yet!"
elog
elog "You can check which backend fits best for your scanner:"
elog "http://www.sane-project.org/cgi-bin/driver.pl?manu=Epson&bus=any"
elog
}

metadata.xml




no-herd

sbriesen@gentoo.org
Stefan Briesenick


Image Scan! is a graphical scanner utility for people that do not need all
the bells and whistles provided by several of the other utilities out there
(xsane, QuiteInsane, Kooka). At the moment it only supports SEIKO EPSON
scanners and all-in-ones. However, the scanner driver it provides can
be used by any other SANE standard compliant scanner utility.