Add support for printers Canon (#18).

atratsevskiy
Трацевский Александр 15 years ago
parent 5de3649f06
commit 506a596a22

@ -0,0 +1,3 @@
AUX popt-1.12-scrub-lame-gettext.patch 847 RMD160 bab119791b9b8c7d4f86de2364ad3f27b9417370 SHA1 b2b8699db94f2ace88efc158da0f02a8890f0ea4 SHA256 62c66f1af2db0366a6efcfbca5c7702d65d86d8dbd4f1abad56a5fc265ca61a8
DIST popt-1.13.tar.gz 682438 RMD160 bcf9d493be05c909609d98f504b77268aadadff1 SHA1 658bf2d2ec25e97816f5920bb24048cf252d053a SHA256 722b939b14e8b510bbb24e3109a075c7d86b33bec05cb583e76769df9ef2661f
EBUILD emul-linux-x86-bjdeps-0.1-r2.ebuild 1003 RMD160 d260f0c37d1bccae2c2b80b11a3794ae4c08af8b SHA1 26ebf42e35a78fe547699e646f0499474feec9db SHA256 235ace69b56c16eeb049d058969a01b208c4f18b6b6e2c8983fd6fa6ece940c8

@ -0,0 +1,46 @@
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
inherit libtool eutils flag-o-matic autotools multilib
DESCRIPTION="32bit nls-disabled dev-libs/popt-1.13"
HOMEPAGE="http://rpm5.org/"
SRC_URI="http://rpm5.org/files/popt/popt-1.13.tar.gz"
RESTRICT="confcache"
WANT_AUTOMAKE="1.6"
LICENSE="as-is"
SLOT="0"
KEYWORDS="~amd64"
DEPEND=""
RDEPEND=""
pkg_setup() {
export ABI=x86
}
src_unpack() {
unpack ${A}
cd ${WORKDIR}
mkdir ${P} # this way portage won't complain about missing directories
cd "${WORKDIR}/popt-1.13" || die
epatch "${FILESDIR}"/popt-1.12-scrub-lame-gettext.patch
}
src_compile() {
cd "${WORKDIR}/popt-1.13" || die
econf "--libdir=/usr/lib32" || die "configure failed"
emake || die "emake failed"
}
src_install() {
cd "${WORKDIR}/popt-1.13" || die
emake install DESTDIR="${D}" || die
# Don't install anything except the library itself
rm -Rv ${D}/usr/share || die
rm -Rv ${D}/usr/include || die
}

@ -0,0 +1,27 @@
this serves no real purpose
http://bugs.gentoo.org/161988
--- configure
+++ configure
@@ -20981,20 +20981,6 @@
fi
-if test ! -f ../rpm.c
-then
- { echo "$as_me:$LINENO: checking for GNU xgettext" >&5
-echo $ECHO_N "checking for GNU xgettext... $ECHO_C" >&6; }
- xgettext --version 2>&1 | grep 'GNU gettext' >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error:
- *** GNU gettext is required. The latest version
- *** is always available from ftp://ftp.gnu.org/gnu/gettext/." >&5
-echo "$as_me: error:
- *** GNU gettext is required. The latest version
- *** is always available from ftp://ftp.gnu.org/gnu/gettext/." >&2;}
- { (exit 1); exit 1; }; }
- { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-fi
{ echo "$as_me:$LINENO: checking for setreuid" >&5
echo $ECHO_N "checking for setreuid... $ECHO_C" >&6; }

@ -0,0 +1,4 @@
DIST cnijfilter-common-2.70-2.src.rpm 7410286 RMD160 28d240ad53f58dbf8a5889a2fded9ff6cd21d3e5 SHA1 e19dc96ac8e19589d92fecf175d37f14af366508 SHA256 0f9cc935050517890c0cda692d7085940bed32a118888c0e1920ecb73f49f5fa
DIST cnijfilter-common-3.00-1.tar.gz 6207050 RMD160 c8a4dedb0ac4ad7ab411434a99d13635e1790ec3 SHA1 55bab2efbc73027f17acda802fc0054ad89e56d7 SHA256 f0cf09c2cbd801e65f0e6388889a4ac6efbc0f832799864314e67f14ff7da56d
EBUILD cnijfilter-2.70-r1.ebuild 7170 RMD160 f111b6692d60ef1149b9d9e7953a0eba31b910be SHA1 5ea11073079d1b04a544a71563b9644eea657682 SHA256 d8e9fa6f881c72cd02163e5ad713defcb2873a0361e30a2ee3608f1eeef20e61
EBUILD cnijfilter-3.00.ebuild 7789 RMD160 3ff3ec38d1839060ffde8cc3cf345690a6d77bbd SHA1 26546c86bb68da9b41d63136747a0ba8e92c034d SHA256 e06a94bc204442169aa2edae0c6fc456ee9c93b725ab1c629df58cfc30422510

@ -0,0 +1,256 @@
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
# Changelog since last bugzilla upload
#
# initial version
#
inherit eutils rpm flag-o-matic multilib
DESCRIPTION="Canon InkJet Printer Driver for Linux (Pixus/Pixma-Series)."
DOWNLOAD_URL="http://software.canon-europe.com/software/0027403.asp"
SRC_URI="${PN}-common-${PV}-2.src.rpm"
RESTRICT="fetch nomirror confcache"
LICENSE="UNKNOWN" # GPL-2 source and proprietary binaries
SLOT="2"
KEYWORDS="~x86 ~amd64"
IUSE="amd64
servicetools
nocupsdetection
mp160
mp510
mp600
ip90
ip1800
ip2500
ip3300
ip4300"
DEPEND="virtual/ghostscript
>=net-print/cups-1.1.14
!amd64? ( sys-libs/glibc
>=dev-libs/popt-1.6
>=media-libs/tiff-3.4
>=media-libs/libpng-1.0.9 )
amd64? ( >=app-emulation/emul-linux-x86-bjdeps-0.1
app-emulation/emul-linux-x86-compat
app-emulation/emul-linux-x86-baselibs )
servicetools? ( !amd64? ( >=gnome-base/libglade-0.6
>=dev-libs/libxml-1.8
=x11-libs/gtk+-1.2* )
amd64? ( >=app-emulation/emul-linux-x86-bjdeps-0.1
app-emulation/emul-linux-x86-gtklibs ) )"
# >=automake-1.6.3
# Arrays of supported Printers, there IDs and compatible models
_pruse=("mp160" "ip3300" "mp510" "ip4300" "mp600" "ip2500" "ip1800" "ip90")
_prname=(${_pruse[@]})
_prid=("291" "292" "293" "294" "295" "311" "312" "253")
_prcomp=("mp160" "ip3300" "mp510" "ip4300" "mp600" "ip2500series" "ip1800series" "ip90")
_max=$((${#_pruse[@]}-1)) # used for iterating through these arrays
###
# Standard Ebuild-functions
###
pkg_nofetch() {
einfo "Please download ${SRC_URI} manually from"
einfo ${DOWNLOAD_URL}
einfo "and move it to ${DISTDIR}"
}
pkg_setup() {
if [ -z "$LINGUAS" ]; then # -z tests to see if the argument is empty
ewarn "You didn't specify 'LINGUAS' in your make.conf. Assuming"
ewarn "english localisation, i.e. 'LINGUAS=\"en\"'."
LINGUAS="en"
fi
if (use amd64 && use servicetools); then
eerror "You can't build this package with 'servicetools' on amd64,"
eerror "because you would need to compile '>=gnome-base/libglade-0.6'"
eerror "and '>=dev-libs/libxml-1.8' with 'export ABI=x86' first."
eerror "That's exactly what 'emul-linux-x86-bjdeps-0.1' does with"
eerror "'dev-libs/popt-1.6'. I encourage you to adapt this ebuild"
eerror "to build 32bit versions of 'libxml' and 'libglade' too!"
die "servicetools not yet available on amd64"
fi
use amd64 && export ABI=x86
use amd64 && append-flags -L/emul/linux/x86/lib -L/emul/linux/x86/usr/lib -L/usr/lib32
_prefix="/usr/local"
_bindir="/usr/local/bin"
_libdir="/usr/$(get_libdir)" # either lib or lib32
_cupsdir1="/usr/lib/cups"
_cupsdir2="/usr/libexec/cups"
_ppddir="/usr/share/cups/model"
einfo ""
einfo " USE-flags (description / probably compatible printers)"
einfo ""
einfo " amd64 (basic support for this architecture - currently without servicetools)"
einfo " servicetools (additional monitoring and maintenance software)"
einfo " nocupsdetection (this is only useful to create binary packages)"
_autochoose="true"
for i in `seq 0 ${_max}`; do
einfo " ${_pruse[$i]}\t${_prcomp[$i]}"
if (use ${_pruse[$i]}); then
_autochoose="false"
fi
done
einfo ""
if (${_autochoose}); then
ewarn "You didn't specify any driver model (set it's USE-flag)."
einfo ""
einfo "As example:\tbasic MP160 support without maintenance tools"
einfo "\t\t -> USE=\"mp160\""
einfo ""
einfo "Press Ctrl+C to abort"
echo
ebeep
n=15
while [[ $n -gt 0 ]]; do
echo -en " Waiting $n seconds...\r"
sleep 1
(( n-- ))
done
fi
}
src_unpack() {
rpm_src_unpack || die
mv ${PN}-common-${PV} ${P} || die # Correcting directory-structure
}
src_compile() {
cd libs || die
./autogen.sh --prefix=${_prefix} || die "Error: libs/autoconf.sh failed"
make || die "Couldn't make libs"
cd ../pstocanonij || die
./autogen.sh --prefix=/usr --enable-progpath=${_bindir} || die "Error: pstocanonij/autoconf.sh failed"
make || die "Couldn't make pstocanonij"
if use servicetools; then
cd ../cngpij || die
./autogen.sh --prefix=${_prefix} --enable-progpath=${_bindir} || die "Error: cngpij/autoconf.sh failed"
make || die "Couldn't make cngpij"
cd ../cngpijmon || die
./autogen.sh --prefix=${_prefix} || die "Error: cngpijmon/autoconf.sh failed"
make || die "Couldn't make cngpijmon"
fi
cd ..
for i in `seq 0 ${_max}`; do
if use ${_pruse[$i]} || ${_autochoose}; then
_pr=${_prname[$i]} _prid=${_prid[$i]}
src_compile_pr;
fi
done
}
src_install() {
mkdir -p ${D}${_bindir} || die
mkdir -p ${D}${_libdir}/cups/filter || die
mkdir -p ${D}${_ppddir} || die
mkdir -p ${D}${_libdir}/cnijlib || die
cd libs || die
make DESTDIR=${D} install || die "Couldn't make install libs"
cd ../pstocanonij || die
make DESTDIR=${D} install || die "Couldn't make install pstocanoncnij"
if use servicetools; then
cd ../cngpij || die
make DESTDIR=${D} install || die "Couldn't make install cngpij"
cd ../cngpijmon || die
make DESTDIR=${D} install || die "Couldn't make install cngpijmon"
fi
cd ..
for i in `seq 0 ${_max}`; do
if use ${_pruse[$i]} || ${_autochoose}; then
_pr=${_prname[$i]} _prid=${_prid[$i]}
src_install_pr;
fi
done
# fix directory structure
if use nocupsdetection; then
mkdir -p ${D}${_cupsdir2}/filter || die
dosym ${_cupsdir1}/filter/pstocanonij ${_cupsdir2}/filter/pstocanonij
elif has_version ">=net-print/cups-1.2.0"; then
mkdir -p ${D}${_cupsdir2} || die
mv ${D}${_cupsdir1}/* ${D}${_cupsdir2} || die
fi
}
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 ""
}
###
# Custom Helper Functions
###
src_compile_pr()
{
mkdir ${_pr}
cp -a ${_prid} ${_pr} || die
cp -a cnijfilter ${_pr} || die
cp -a printui ${_pr} || die
# cp -a stsmon ${_pr} || die
sleep 10
cd ${_pr}/cnijfilter || die
./autogen.sh --prefix=${_prefix} --program-suffix=${_pr} --enable-libpath=${_libdir}/cnijlib --enable-binpath=${_bindir} || die
make || die "Couldn't make ${_pr}/cnijfilter"
if use servicetools; then
cd ../printui || die
./autogen.sh --prefix=${_prefix} --program-suffix=${_pr} || die
make || die "Couldn't make ${_pr}/printui"
# cd ../stsmon || die
# ./autogen.sh --prefix=${_prefix} --program-suffix=${_pr} --enable-progpath=${_bindir} || die
# make || die "Couldn't make ${_pr}/stsmon"
fi
cd ../..
}
src_install_pr()
{
cd ${_pr}/cnijfilter || die
make DESTDIR=${D} install || die "Couldn't make install ${_pr}/cnijfilter"
if use servicetools; then
cd ../printui || die
make DESTDIR=${D} install || die "Couldn't make install ${_pr}/printui"
# cd ../stsmon || die
# make DESTDIR=${D} install || die "Couldn't make install ${_pr}/stsmon"
fi
cd ../..
cp -a ${_prid}/libs_bin/* ${D}${_libdir} || die
cp -a ${_prid}/database/* ${D}${_libdir}/cnijlib || die
cp -a ppd/canon${_pr}.ppd ${D}${_ppddir} || die
}

@ -0,0 +1,306 @@
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
# This ebuild come from http://bugs.gentoo.org/show_bug.cgi?id=130645 - The site http://gentoo.zugaina.org/ only host a copy.
# Small modifications by Ycarus
inherit eutils flag-o-matic multilib
DESCRIPTION="Canon InkJet Printer Driver for Linux (Pixus/Pixma-Series)."
HOMEPAGE="http://support-sg.canon-asia.com/contents/SG/EN/0100160603.html"
RESTRICT="mirror"
SRC_URI="http://gdlp01.c-wss.com/gds/6/0100001606/01/cnijfilter-common-3.00-1.tar.gz"
LICENSE="as-is" # GPL-2 source and proprietary binaries
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE="amd64
cnijtools
ip1900
ip3600
ip4600
mp190
mp240
mp540
mp630"
DEPEND="virtual/ghostscript
>=net-print/cups-1.1.14
!amd64? ( sys-libs/glibc
>=dev-libs/popt-1.6
>=media-libs/tiff-3.4
>=media-libs/libpng-1.0.9 )
amd64? ( >=app-emulation/emul-linux-x86-bjdeps-0.1
app-emulation/emul-linux-x86-compat
app-emulation/emul-linux-x86-baselibs )
cnijtools? ( !amd64? ( >=gnome-base/libglade-0.6
>=dev-libs/libxml-1.8
>=dev-libs/libxml2-2.6.0
>=dev-libs/popt-1.4
>=x11-libs/gtk+-2.6.0
>=sys-devel/automake-1.9.5
>=sys-devel/autoconf-2.59 )
amd64? ( >=app-emulation/emul-linux-x86-bjdeps-0.2
app-emulation/emul-linux-x86-gtklibs ) )"
# Table of supported Printers and it's IDs
# driver name printers ID probably compatible printers
_pr1="ip1900" _prid1="346"
_pr2="ip3600" _prid2="333"
_pr3="ip4600" _prid3="334"
_pr4="mp190" _prid4="342"
_pr5="mp240" _prid5="341"
_pr6="mp540" _prid6="338"
_pr7="mp630" _prid7="336"
###
# Standard Ebuild-functions
###
pkg_setup() {
use amd64 && export ABI=x86
use amd64 && append-flags -L/emul/linux/x86/lib -L/emul/linux/x86/usr/lib -L/usr/lib32
_prefix="/usr/local/share"
_prefix_2="/usr/local"
_bindir="/usr/local/bin"
_libdir="/usr/$(get_libdir)"
_ppddir="/usr/share/cups/model"
einfo ""
einfo " USE-FLag cnijtools\tcontains the following (useful!) programs:"
einfo ""
einfo "* 'cngpij' is the CUPS front-end GUI program"
einfo "* 'cngpijmon' is the status monitoring program"
einfo "* 'lgmon' is a Language monitoring program"
einfo "* 'printui' is a GUI program for an easily selecting of several parameters for printing"
einfo ""
sleep 5
if ! (use $_pr1 || use $_pr2 || use $_pr3 || use $_pr4 || use $_pr5 || use $_pr6 || use $pr_7); then
ewarn "You didn't specify any driver model (set it's USE-flag)."
einfo ""
einfo "As example:\t MP540 support without maintenance tools"
einfo "\t\t -> USE=\"mp540\""
einfo ""
einfo "Sleeping 10 seconds (Press CTRL+C to abort)"
einfo ""
sleep 10
_autochoose="true"
else
_autochoose="false"
fi
}
src_unpack() {
unpack ${A} || die
mv ${PN}-common-${PV} ${P} || die # Correcting directory-structure
}
src_compile() {
cd libs || die
./autogen.sh || die "Error: libs/autoconf.sh failed"
make || die "Couldn't make libs"
cd ../backend || die
./autogen.sh --prefix=/usr --enable-progpath=${_bindir} || die "Error: backend/autoconf.sh failed"
make || die "Couldn't make backend"
cd ../pstocanonij || die
./autogen.sh --prefix=/usr --enable-progpath=${_bindir} || die "Error: pstocanonij/autoconf.sh failed"
make || die "Couldn't make pstocanonij"
# cd ../ppd || die
# ./autogen.sh --prefix=/usr --program-suffix=${_pr} || die "Error: ppd/autoconf.sh failed"
if use cnijtools; then
cd ../cngpij || die
./autogen.sh --prefix=${_prefix_2} --enable-progpath=${_bindir} || die "Error: cngpij/autoconf.sh failed"
make || die "Couldn't make cngpij"
cd ../cngpijmon || die
./autogen.sh --datadir=${_prefix} --program-suffix=${_pr} || die "Error: cngpijmon/autoconf.sh failed"
make || die "Couldn't make cngpijmon"
fi
cd ..
_pr=$_pr1 _prid=$_prid1
if use $_pr || ${_autochoose}; then
src_compile_pr;
fi
_pr=$_pr2 _prid=$_prid2
if use $_pr || ${_autochoose}; then
src_compile_pr;
fi
_pr=$_pr3 _prid=$_prid3
if use $_pr || ${_autochoose}; then
src_compile_pr;
fi
_pr=$_pr4 _prid=$_prid4
if use $_pr || ${_autochoose}; then
src_compile_pr;
fi
_pr=$_pr5 _prid=$_prid5
if use $_pr || ${_autochoose}; then
src_compile_pr;
fi
_pr=$_pr6 _prid=$_prid6
if use $_pr || ${_autochoose}; then
src_compile_pr;
fi
_pr=$_pr7 _prid=$_prid7
if use $_pr || ${_autochoose}; then
src_compile_pr;
fi
}
src_install() {
mkdir -p ${D}${_bindir} || die
mkdir -p ${D}${_libdir}/cups/filter || die
mkdir -p ${D}${_ppddir} || die
mkdir -p ${D}${_libdir}/cnijlib || die
cd libs || die
make DESTDIR=${D} install || die "Couldn't make install libs"
cd ../backend || die
make DESTDIR=${D} install || die "Couldn't make install backend"
cd ../pstocanonij || die
make DESTDIR=${D} install || die "Couldn't make install pstocanoncnij"
# cd ../ppd || die
# make DESTDIR=${D} install || die "Couldn't make install ppd"
if use cnijtools; then
cd ../cngpij || die
make DESTDIR=${D} install || die "Couldn't make install cngpij"
cd ../cngpijmon || die
make DESTDIR=${D} install || die "Couldn't make install cngpijmon"
fi
cd ..
_pr=$_pr1 _prid=$_prid1
if use $_pr || ${_autochoose}; then
src_install_pr;
fi
_pr=$_pr2 _prid=$_prid2
if use $_pr || ${_autochoose}; then
src_install_pr;
fi
_pr=$_pr3 _prid=$_prid3
if use $_pr || ${_autochoose}; then
src_install_pr;
fi
_pr=$_pr4 _prid=$_prid4
if use $_pr || ${_autochoose}; then
src_install_pr;
fi
_pr=$_pr5 _prid=$_prid5
if use $_pr || ${_autochoose}; then
src_install_pr;
fi
_pr=$_pr6 _prid=$_prid6
if use $_pr || ${_autochoose}; then
src_install_pr;
fi
_pr=$_pr7 _prid=$_prid7
if use $_pr || ${_autochoose}; then
src_install_pr;
fi
}
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 "You can find the printerspecific config-file here:"
einfo " /usr/lib/cnijlib/cif${_pr}.conf"
einfo ""
einfo "If you experience any problems, please visit:"
einfo " http://forums.gentoo.org/viewtopic-p-3217721.html"
einfo " or"
einfo " http://forums.gentoo.org/viewtopic-t-723203.html"
ln -s /usr/lib/cups/filter/pstocanonij /usr/libexec/cups/filter/pstocanonij
ln -s /usr/lib/cups/backend/cnijusb /usr/libexec/cups/backend/cnijusb
ln -s /usr/lib/cnijlib /usr/lib/bjlib
chown 777 /usr/lib/bjlib/*
}
###
# Custom Helper Functions
###
src_compile_pr()
{
mkdir ${_pr}
cp -a ${_prid} ${_pr} || die
cp -a cnijfilter ${_pr} || die
cp -a printui ${_pr} || die
cp -a lgmon ${_pr} || die
cd ${_pr}/cnijfilter || die # ${_libdir}/bjlib ???
./autogen.sh --prefix=${_prefix_2} --program-suffix=${_pr} --enable-libpath=${_libdir}/bjlib || die
make || die "Couldn't make ${_pr}/cnijfilter"
if use cnijtools; then
cd ../printui || die
./autogen.sh --datadir=${_prefix} --program-suffix=${_pr} || die
make || die "Couldn't make ${_pr}/printui"
cd ../lgmon || die
./autogen.sh --program-suffix=${_pr} || die
make || die "Couldn't make ${_pr}/lgmon"
fi
cd ../..
}
src_install_pr()
{
cd ${_pr}/cnijfilter || die
make DESTDIR=${D} install || die "Couldn't make install ${_pr}/cnijfilter"
if use cnijtools; then
cd ../printui || die
make DESTDIR=${D} install || die "Couldn't make install ${_pr}/printui"
cd ../lgmon || die
make DESTDIR=${D} install || die "Couldn't make install ${_pr}/lgmon"
fi
cd ../..
cp ${_prid}/libs_bin/*.so.* ${D}${_libdir} || die # install -c -s -m 755
cp ${_prid}/database/* ${D}${_libdir}/cnijlib || die # install -c -s -m 755
cp ppd/canon${_pr}.ppd ${D}${_ppddir} || die
}
pkg_postrm() {
rm -f /usr/libexec/cups/filter/pstocanonij
rm -f /usr/libexec/cups/backend/cnijusb
rm -f /usr/lib/bjlib
}

@ -1,4 +1,5 @@
app-admin/testdisk ntfs reiserfs
dev-util/git -gtk -perl
net-print/cnijfilter ip1800 ip1900 ip2500 ip3300 ip3600 ip4300 ip4600 ip90 mp160 mp190 mp240 mp510 mp540 mp600 mp630
media-gfx/splashutils fbcondecor
sys-fs/aufs2 inotify kernel-patch

Loading…
Cancel
Save