blob: 08f246d9d7fc0e729f1e93c3b10aecc12bcdb954 [file] [log] [blame]
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="4"
inherit eutils flag-o-matic autotools versionator
# HINTS:
# -> non-free modules are x86 and amd64 only
# -> iscan 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)
# FIXME:
# Make jpeg/png optional. The problem is, that the configure script ignores --disable-*,
# if the corresponding lib is found on the system.
# Furthermore, iscan doesn't compile w/o libusb, this should be fixed somehow.
# TODO:
# (re)add closed-source binary modules which are needed for some scanners.
KEYWORDS="~amd64 ~x86"
MY_PV="$(get_version_component_range 1-3)"
MY_PVR="$(replace_version_separator 3 -)"
MY_DOC="userg_revQ"
DESCRIPTION="EPSON Image Scan! for Linux (including sane-epkowa backend)"
HOMEPAGE="http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX"
SRC_URI="https://dev.gentoo.org/~flameeyes/avasys/${PN}_${MY_PVR}.tar.gz
doc? ( https://dev.gentoo.org/~flameeyes/avasys/${MY_DOC}_e.pdf
linguas_ja? ( https://dev.gentoo.org/~flameeyes/avasys/${MY_DOC}_j.pdf )
)"
LICENSE="GPL-2 AVASYS"
SLOT="0"
IUSE="X gimp jpeg png tiff doc"
IUSE_LINGUAS="ar de es fr it ja ko nl pt zh_CN zh_TW"
for X in ${IUSE_LINGUAS}; do IUSE="${IUSE} linguas_${X}"; done
QA_PRESTRIPPED="usr/$(get_libdir)/libesmod.so.*"
QA_TEXTRELS="${QA_PRESTRIPPED}"
QA_FLAGS_IGNORED="${QA_PRESTRIPPED}"
# Upstream ships broken sanity test
RESTRICT="test"
RDEPEND="media-gfx/iscan-data
media-gfx/sane-backends
virtual/udev
virtual/libusb:0
X? (
x11-libs/gtk+:2
gimp? ( media-gfx/gimp )
png? ( media-libs/libpng )
jpeg? ( virtual/jpeg )
tiff? ( media-libs/tiff )
)"
DEPEND="${RDEPEND}
virtual/pkgconfig
X? ( sys-devel/gettext )"
S="${WORKDIR}/${PN}-${MY_PV}"
src_prepare() {
local i
# convert japanese docs to UTF-8
if 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 checks for gtk+
if ! 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
fi
epatch "${FILESDIR}"/iscan-2.29.1-drop-ltdl.patch
epatch "${FILESDIR}"/iscan-2.25.0-fix-g++-test.patch
epatch "${FILESDIR}"/iscan-2.28.1.3+libpng-1.5.patch
epatch "${FILESDIR}"/iscan-2.29.1-png-libs.patch
eautoreconf
}
src_configure() {
append-cppflags -D_GNU_SOURCE # needed for 'strndup'
local myconf="--enable-dependency-reduction"
if use X; then
myconf="${myconf}
--enable-frontend
$(use_enable gimp)
$(use_enable jpeg)
$(use_enable png)
$(use_enable tiff)"
else
myconf="${myconf}
--disable-frontend --disable-gimp
--disable-jpeg --disable-png --disable-tiff"
fi
econf --disable-static ${myconf}
}
src_install() {
local MY_LIB="/usr/$(get_libdir)"
emake DESTDIR="${D}" install || die "emake install failed"
# install docs
dodoc AUTHORS NEWS README
use linguas_ja && dodoc NEWS.ja README.ja
# install sane config
insinto /etc/sane.d
doins backend/epkowa.conf
# install extra docs
if use doc; then
insinto /usr/share/doc/${PF}
if use linguas_ja; then
doins "${DISTDIR}/${MY_DOC}_j.pdf"
else
doins "${DISTDIR}/${MY_DOC}_e.pdf"
fi
fi
# link iscan so it is seen as a plugin in gimp
if 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}"/iscan
fi
# install desktop entry
if use X; then
make_desktop_entry iscan "Image Scan! for Linux ${PV}" scanner
fi
}
pkg_postinst() {
local i
local DLL_CONF="/etc/sane.d/dll.conf"
local EPKOWA_CONF="/etc/sane.d/epkowa.conf"
elog
if grep -q "^[ \t]*\<epkowa\>" ${DLL_CONF}; then
elog "Please edit ${EPKOWA_CONF} to suit your needs."
elif grep -q "\<epkowa\>" ${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
}