# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI=5 inherit eutils autotools flag-o-matic multilib DESCRIPTION="Canon InkJet Printer Driver for Linux (Pixus/Pixma-Series)." HOMEPAGE="http://support-sg.canon-asia.com/contents/SG/EN/0100469302.html" RESTRICT="nomirror confcache" SRC_URI="http://gdlp01.c-wss.com/gds/8/0100004118/01/${PN}-source-${PV}-1.tar.gz" LICENSE="GPL-2 Properietary" SLOT="0" KEYWORDS="~amd64 ~x86" PRINTER_USE=( ip100 mx710 mx890 mx370 mx430 mx510 e600 ) PRINTER_ID=( 303 394 395 396 397 398 399 ) PRINTER_COMP=( ip100series mx710series mx890series mx370series mx430series mx510series e600series ) IUSE="${PRINTER_USE[@]} net servicetools" DEPEND=" app-text/ghostscript-gpl >=net-print/cups-1.4 !amd64? ( sys-libs/glibc >=dev-libs/popt-1.6 >=media-libs/tiff-3.4 >=media-libs/libpng-1.5 ) amd64? ( app-emulation/emul-linux-x86-compat app-emulation/emul-linux-x86-baselibs ) servicetools? ( >=gnome-base/libglade-0.6 >=dev-libs/libxml2-2.7.3-r2 =x11-libs/gtk+-1.2* ) " RDEPEND="${DEPEND}" REQUIRED_USE="|| ( ${PRINTER_USE} )" S="${WORKDIR}/${PN}-source-${PV}-1" pkg_setup() { [[ -z ${LINGUAS} ]] && LINGUAS="en" DIRS="libs pstocanonij" use net && DIRS+=" backendnet" use servicetools && DIRS+=" cngpij cngpijmon" DIRS_PRINTER="cnijfilter" use servicetools && DIRS_PRINTER+=" printui" } src_prepare() { local d i epatch \ "${FILESDIR}/${PN}"-3.70-png.patch \ for d in ${DIRS}; do pushd ${d} >/dev/null eautoreconf popd > /dev/null done for (( i=0; i<${#PRINTER_USE[@]}; i++ )); do local name="${PRINTER_USE[$i]}" local pid="${PRINTER_ID[$i]}" if use ${name}; then mkdir -p ${name} || die cp -a ${pid} ${name} || die cp -a lgmon ${name} || die for d in ${DIRS_PRINTER}; do cp -a ${d} ${name} || die pushd ${name}/${d} > /dev/null eautoreconf popd > /dev/null done fi done } src_configure() { local d i for d in ${DIRS}; do echo ">>> Working in: ${d}" pushd ${d} >/dev/null econf popd > /dev/null done for (( i=0; i<${#PRINTER_USE[@]}; i++ )); do local name="${PRINTER_USE[$i]}" if use ${name}; then for d in ${DIRS_PRINTER}; do echo ">>> Working in: ${d}" pushd ${name}/${d} > /dev/null econf \ --program-suffix=${name} popd > /dev/null done fi done } src_compile() { local d for d in ${DIRS}; do echo ">>> Working in: ${d}" pushd ${d} >/dev/null emake popd > /dev/null done for (( i=0; i<${#PRINTER_USE[@]}; i++ )); do local name="${PRINTER_USE[$i]}" if use ${name}; then for d in ${DIRS_PRINTER}; do echo ">>> Working in: ${name}/${d}" pushd ${name}/${d} > /dev/null emake popd > /dev/null done fi done } src_install() { local _libdir="${EPREFIX}/usr/$(get_libdir)" local _libdir_pkg=libs_bin$(use amd64 && echo 64 || echo 32) local _ppddir="${EPREFIX}/usr/share/cups/model" for d in ${DIRS}; do echo ">>> Working in: ${d}" pushd ${d} >/dev/null emake DESTDIR=${D} install popd > /dev/null done if use net; then pushd com/${_libdir_pkg} > /dev/null ln -sf libcnnet.so.* libcnnet.so exeinto ${_libdir} doexe libcnnet.so* popd > /dev/null fi for (( i=0; i<${#PRINTER_USE[@]}; i++ )); do local name="${PRINTER_USE[$i]}" local pid="${PRINTER_ID[$i]}" if use ${name}; then for d in ${DIRS_PRINTER}; do echo ">>> Working in: ${name}/${d}" pushd ${name}/${d} > /dev/null emake DESTDIR=${D} install popd > /dev/null done exeinto ${_libdir} doexe ${pid}/${_libdir_pkg}/* exeinto ${_libdir}/cnijlib doexe ${pid}/database/* insinto ${_ppddir} doins ppd/canon${name}.ppd fi done } pkg_postinst() { einfo "" einfo "For installing a printer:" einfo " * Restart CUPS: /etc/init.d/cupsd restart" einfo " * Go to http://127.0.0.1:631/" einfo " -> Printers -> Add Printer" einfo "" einfo "If you experience any problems, please visit:" einfo " http://forums.gentoo.org/viewtopic-p-3217721.html" einfo "" }