delete old
git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/mds@2852 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
parent
08b30afa50
commit
a4e633fc7a
File diff suppressed because it is too large
Load Diff
@ -1,20 +0,0 @@
|
||||
AUX cups-1.3.0-configure.patch 651 RMD160 e4c7f45d7ddc28157433bf025c7f946c7e3b6d6a SHA1 101bf1893b56640d9fa82078e29319fbbd1449c7 SHA256 d6e5e60a982a3c093c0d0f89cf865e2b4c36290f5b1e188b7bf305d210070736
|
||||
AUX cups-1.3.10-str3178.patch 888 RMD160 ff061fc3500960f441c59896cdfe421d5f47f386 SHA1 fac5361b1172aba167d48988f874faa6faf1554a SHA256 e6550fad17017ac6897e6e9c70a4aafaaec5473c05a19e9e50277293cdc6aac6
|
||||
AUX cups-1.3.11-str3200.patch 1782 RMD160 6c9134d1bc90650b882e167a5ae118d0f239b7ae SHA1 adb5b0ef222ad5beb2424bcb93a3c891af6a744e SHA256 2ae6d48ce7071051120740d654787be1bba0258752f4844f55a18f8e03e062e6
|
||||
AUX cups-1.3.11-str3367-security-1.3v2.patch 12834 RMD160 e770139528cbdf918f5c9073fbea8b31f30cac0f SHA1 81825028af8021aff2e67a36d8e9aa71cbbb42f4 SHA256 d4d770ce17855293348059451909fecbcc9e968d6731ac73b8d81927e2afe134
|
||||
AUX cups-1.3.11-str3401-security-1.3v2-regression.patch 871 RMD160 bb08b55e8d61341e9eeecc8fe99ba743d38500dd SHA1 33a919f4ef5de3c780f6f35e68d096ccf8371718 SHA256 ab9f24c05a422995b9ee274f36ffa0a9a6dca4d55fde4830a31201d1e61bd756
|
||||
AUX cups-1.3.7-backend-https.patch 450 RMD160 9a1ad48d2be40c89510ccc512649f0a2eb5543b0 SHA1 d3dd55fcdee47855d6b7c1443adb6c2b3d8c9cdb SHA256 060f929ae3eae5dc411ce6352a0d50c3296b013974f034fc2ad8d6bb0c81b45a
|
||||
AUX cups-1.3.9-CVE-2008-5286.patch 761 RMD160 7abe5d746cc2c8135e946de492b767137204345a SHA1 1e904c63e5bb2ef2e6f9792e3b2c3bcb89cdc6e8 SHA256 e85dc13164dd1c7b7fa978aeb5b6df886d9595319aab5fadde57e35d0259aee3
|
||||
AUX cups-1.3.9-ldap-draft-1.patch 3454 RMD160 b7c5d29202f2fa1a90b902f66f0152a5193ca8c3 SHA1 76f9179208e9c10939cce7b6e96eb2ec361f21c5 SHA256 08e3de0d78fd923fa81716fd8161b718c1170631291cc5d04d158ee54462fe56
|
||||
AUX cups-1.4.0-backend-https.patch 483 RMD160 b338f67ebf0719b5e12eaa8490affbd7a1bb8c0e SHA1 bfeadba67792203d654a64bdec16f3d2a31aeca6 SHA256 9060a5d848d6655db4629822d01fd772a3fbe1a5107109c50cb0ecb4de7a9526
|
||||
AUX cups-1.4.1-ldap-draft-1.patch 4407 RMD160 b758f6794108353a4ce54914ea453e8505af6369 SHA1 9659abd90c4b4f7cbd4c72f8bc529a3a8d994388 SHA256 f6a994e85ea2818673b543c9119a0b5b134232cdae372d68b7d4ae5c9ac93a59
|
||||
AUX cups-1.4.1-usb-function-decl.patch 767 RMD160 12c0bc2ff991f2c0edb4be92fde4db58116b6ca5 SHA1 9b1486f153cc32ee206d927d7d186c76099a7cef SHA256 dc32eb0658dbd263b6361ca6d55bf977fb04b604042041987db69ffb2f840e41
|
||||
AUX cups-1.4.2-str3200.patch 1654 RMD160 cc40d26f7e9dbe5a12d9426535d09de10254da26 SHA1 b330108bcfb8ca3ab5d6dd3b48dc3d2937c7bca1 SHA256 8a64f5c72d64ecd95d330fd90630eb02a67865c07921ecb0c010e84b49b537e0
|
||||
AUX cupsd.init.d 293 RMD160 19fbef21cee7e472e7028f3101b680baa0089c54 SHA1 e6b27b2638fec258fe2f55c926c2530e909ca3d2 SHA256 b4268a6bae95e96b6af21c3716ecc905073736ce7dc33be1489d574a447f3c48
|
||||
AUX pdftops-1.20.gentoo 10412 RMD160 16e229662c47e03af1d1f4cb5764a76d17a66642 SHA1 6afb8a655b6ff013a2c8c8cbfb615ba1e561503b SHA256 ac5fa01ca776d75bd7cef62eef9f6b0c3945ee87e8950b40ca9f9f3ff46a16c1
|
||||
DIST cups-1.3.11-source.tar.bz2 3799424 RMD160 aa263fe29350cee307bbd72ef2f5cb061c2476e0 SHA1 c8304ee8d631bb370fc10fc1fffbe8ebae413df2 SHA256 824b7fe5cefa981f2ce20f356983be182a551f716ccab8f5194fe645b1178303
|
||||
DIST cups-1.4.3-source.tar.bz2 4461101 RMD160 6c5ab282405d6a1132163c727583f3a572307d88 SHA1 0dd9e3d709614d26cce77728b9263556c94c9559 SHA256 47a559b1c50192b94479ae7dab132ea0008727045d4993501cf0a6df0c64db97
|
||||
EBUILD cups-1.3.11.ebuild 8430 RMD160 24de5585670d0c815277e00080257ccb6a9c5304 SHA1 573503a30d53c8d4fdbb1e1b2aab7d3f71e8a916 SHA256 14562a09f3546cf8bfa7592efedc89b835c9485b2331b03717616a84da3de58a
|
||||
EBUILD cups-1.4.3-r1.ebuild 5446 RMD160 a8f19657974ba89f02b2e2c8f49767f2cfbe9fae SHA1 2dcf671b8a289493843ff8f1ced712878948e261 SHA256 6cb8383862c8ef67b2d3bca54602dd04d7b92efdcb2a0ec8815599f9b54962b0
|
||||
MISC ChangeLog 52200 RMD160 fbdfc15f42a17c26a4478b62024bf4366c9bbdac SHA1 8983fd82d83bec8c3291a38c63ad7f199b670e40 SHA256 800eb153a2f01a7c650e7e86dd7029e924869476a93415baba800b68f78a712f
|
||||
MISC metadata.xml 161 RMD160 1e5b1e42553c8869b93c4a5448e9a2a2ed9fe525 SHA1 209c6a46e4cdd891980115e42ba419e3799f8088 SHA256 7c85e6739a71f5bb23e8de36c88677d772946e61f7285892f7554e37bd2bca76
|
@ -1,293 +0,0 @@
|
||||
# Copyright 1999-2009 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/net-print/cups/cups-1.3.11.ebuild,v 1.1 2009/07/08 22:41:43 tgurr Exp $
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pam
|
||||
|
||||
MY_P=${P/_}
|
||||
|
||||
DESCRIPTION="The Common Unix Printing System"
|
||||
HOMEPAGE="http://www.cups.org/"
|
||||
SRC_URI="http://ftp.easysw.com/pub/cups/${PV}/${MY_P}-source.tar.bz2"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
|
||||
IUSE="acl avahi dbus gnutls java jpeg kerberos ldap pam perl php png ppds python samba slp ssl static tiff X xinetd zeroconf"
|
||||
|
||||
COMMON_DEPEND="acl? ( kernel_linux? ( sys-apps/acl sys-apps/attr ) )
|
||||
avahi? ( net-dns/avahi )
|
||||
dbus? ( sys-apps/dbus )
|
||||
gnutls? ( net-libs/gnutls )
|
||||
java? ( >=virtual/jre-1.4 )
|
||||
jpeg? ( >=media-libs/jpeg-6b )
|
||||
kerberos? ( virtual/krb5 )
|
||||
ldap? ( net-nds/openldap )
|
||||
pam? ( virtual/pam )
|
||||
perl? ( dev-lang/perl )
|
||||
php? ( dev-lang/php )
|
||||
png? ( >=media-libs/libpng-1.2.1 )
|
||||
python? ( dev-lang/python )
|
||||
slp? ( >=net-libs/openslp-1.0.4 )
|
||||
ssl? ( !gnutls? ( >=dev-libs/openssl-0.9.8g ) )
|
||||
tiff? ( >=media-libs/tiff-3.5.5 )
|
||||
xinetd? ( sys-apps/xinetd )
|
||||
zeroconf? ( !avahi? ( net-misc/mDNSResponder ) )
|
||||
app-text/libpaper
|
||||
dev-libs/libgcrypt"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
!<net-print/foomatic-filters-ppds-20070501
|
||||
!<net-print/hplip-1.7.4a-r1"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
!virtual/lpr
|
||||
X? ( x11-misc/xdg-utils )
|
||||
>=virtual/poppler-utils-0.4.3-r1
|
||||
"
|
||||
|
||||
PDEPEND="
|
||||
ppds? ( || (
|
||||
(
|
||||
net-print/foomatic-filters-ppds
|
||||
net-print/foomatic-db-ppds
|
||||
)
|
||||
net-print/foomatic-filters-ppds
|
||||
net-print/foomatic-db-ppds
|
||||
net-print/hplip
|
||||
net-print/gutenprint
|
||||
net-print/foo2zjs
|
||||
net-print/cups-pdf
|
||||
) )
|
||||
samba? ( >=net-fs/samba-3.0.8 )
|
||||
virtual/ghostscript"
|
||||
|
||||
PROVIDE="virtual/lpr"
|
||||
|
||||
# upstream includes an interactive test which is a nono for gentoo.
|
||||
# therefore, since the printing herd has bigger fish to fry, for now,
|
||||
# we just leave it out, even if FEATURES=test
|
||||
RESTRICT="test"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LANGS="de en es et fr he id it ja pl sv zh_TW"
|
||||
for X in ${LANGS} ; do
|
||||
IUSE="${IUSE} linguas_${X}"
|
||||
done
|
||||
|
||||
pkg_setup() {
|
||||
if use avahi && ! built_with_use net-dns/avahi mdnsresponder-compat ; then
|
||||
echo
|
||||
eerror "In order to have cups working with avahi zeroconf support, you need"
|
||||
eerror "to have net-dns/avahi emerged with \"mdnsresponder-compat\" in your USE"
|
||||
eerror "flag. Please add that flag, re-emerge avahi, and then emerge cups again."
|
||||
die "net-dns/avahi is missing the mdnsresponder-compat feature."
|
||||
fi
|
||||
|
||||
enewgroup lp
|
||||
enewuser lp -1 -1 -1 lp
|
||||
|
||||
enewgroup lpadmin 106
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
unpack ${A}
|
||||
cd "${S}"
|
||||
|
||||
# disable configure automagic for acl/attr, upstream bug STR #2723
|
||||
epatch "${FILESDIR}/${PN}-1.3.0-configure.patch"
|
||||
|
||||
# use the ldap schema of the ldap draft
|
||||
epatch "${FILESDIR}/${PN}-1.3.9-ldap-draft-1.patch"
|
||||
|
||||
# create a missing symlink to allow https printing via IPP, bug #217293
|
||||
epatch "${FILESDIR}/${PN}-1.3.7-backend-https.patch"
|
||||
|
||||
# detect recent libgnutls versions, upstream bug STR #3178
|
||||
epatch "${FILESDIR}/${PN}-1.3.10-str3178.patch"
|
||||
|
||||
# cups does not use autotools "the usual way" and ship a static config.h.in
|
||||
eaclocal
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Fails to compile on SH
|
||||
use sh && replace-flags -O? -O0
|
||||
|
||||
# needed to prevent ghostscript compile failures
|
||||
use kerberos && strip-flags
|
||||
|
||||
# locale support
|
||||
strip-linguas ${LANGS}
|
||||
|
||||
if [ -z "${LINGUAS}" ] ; then
|
||||
export LINGUAS=all
|
||||
fi
|
||||
|
||||
export DSOFLAGS="${LDFLAGS}"
|
||||
|
||||
if use ldap ; then
|
||||
append-flags -DLDAP_DEPRECATED
|
||||
fi
|
||||
|
||||
local myconf
|
||||
|
||||
if use avahi || use zeroconf ; then
|
||||
myconf="${myconf} --enable-dnssd"
|
||||
else
|
||||
myconf="${myconf} --disable-dnssd"
|
||||
fi
|
||||
|
||||
if use ssl || use gnutls ; then
|
||||
myconf="${myconf} \
|
||||
$(use_enable gnutls) \
|
||||
$(use_enable !gnutls openssl)"
|
||||
else
|
||||
myconf="${myconf} \
|
||||
--disable-gnutls \
|
||||
--disable-openssl"
|
||||
fi
|
||||
|
||||
econf \
|
||||
--libdir=/usr/$(get_libdir) \
|
||||
--localstatedir=/var \
|
||||
--with-cups-user=lp \
|
||||
--with-cups-group=lp \
|
||||
--with-docdir=/usr/share/cups/html \
|
||||
--with-languages=${LINGUAS} \
|
||||
--with-pdftops=pdftops \
|
||||
--with-system-groups=lpadmin \
|
||||
--with-xinetd=/etc/xinetd.d \
|
||||
$(use_enable acl) \
|
||||
$(use_enable dbus) \
|
||||
$(use_enable jpeg) \
|
||||
$(use_enable kerberos gssapi) \
|
||||
$(use_enable ldap) \
|
||||
$(use_enable pam) \
|
||||
$(use_enable png) \
|
||||
$(use_enable slp) \
|
||||
$(use_enable static) \
|
||||
$(use_enable tiff) \
|
||||
$(use_with java) \
|
||||
$(use_with perl) \
|
||||
$(use_with php) \
|
||||
$(use_with python) \
|
||||
--enable-libpaper \
|
||||
--enable-pdftops \
|
||||
--enable-threads \
|
||||
${myconf}
|
||||
|
||||
# install in /usr/libexec always, instead of using /usr/lib/cups, as that
|
||||
# makes more sense when facing multilib support.
|
||||
sed -i -e 's:SERVERBIN.*:SERVERBIN = "$(BUILDROOT)"/usr/libexec/cups:' Makedefs
|
||||
sed -i -e 's:#define CUPS_SERVERBIN.*:#define CUPS_SERVERBIN "/usr/libexec/cups":' config.h
|
||||
sed -i -e 's:cups_serverbin=.*:cups_serverbin=/usr/libexec/cups:' cups-config
|
||||
|
||||
emake || die "emake failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake BUILDROOT="${D}" install || die "emake install failed"
|
||||
dodoc {CHANGES{,-1.{0,1}},CREDITS,README}.txt || die "dodoc install failed"
|
||||
|
||||
# clean out cups init scripts
|
||||
rm -rf "${D}"/etc/{init.d/cups,rc*,pam.d/cups}
|
||||
|
||||
# install our init script
|
||||
local neededservices
|
||||
use avahi && neededservices="$neededservices avahi-daemon"
|
||||
use dbus && neededservices="$neededservices dbus"
|
||||
use zeroconf && ! use avahi && neededservices="$neededservices mDNSResponderPosix"
|
||||
[[ -n ${neededservices} ]] && neededservices="need${neededservices}"
|
||||
sed -e "s/@neededservices@/$neededservices/" "${FILESDIR}"/cupsd.init.d > "${T}"/cupsd
|
||||
doinitd "${T}"/cupsd
|
||||
|
||||
# install our pam script
|
||||
pamd_mimic_system cups auth account
|
||||
|
||||
if use xinetd ; then
|
||||
# correct path
|
||||
sed -i -e "s:server = .*:server = /usr/libexec/cups/daemon/cups-lpd:" "${D}"/etc/xinetd.d/cups-lpd
|
||||
# it is safer to disable this by default, bug #137130
|
||||
grep -w 'disable' "${D}"/etc/xinetd.d/cups-lpd || \
|
||||
sed -i -e "s:}:\tdisable = yes\n}:" "${D}"/etc/xinetd.d/cups-lpd
|
||||
else
|
||||
rm -rf "${D}"/etc/xinetd.d
|
||||
fi
|
||||
|
||||
keepdir /usr/share/cups/profiles /usr/libexec/cups/driver /var/log/cups \
|
||||
/var/run/cups/certs /var/cache/cups /var/spool/cups/tmp /etc/cups/ssl
|
||||
|
||||
# .desktop handling. X useflag. xdg-open from freedesktop is preferred, upstream bug STR #2724.
|
||||
if use X ; then
|
||||
sed -i -e "s:htmlview:xdg-open:" "${D}"/usr/share/applications/cups.desktop
|
||||
else
|
||||
rm -r "${D}"/usr/share/applications
|
||||
fi
|
||||
|
||||
# fix a symlink collision, see bug #172341
|
||||
dodir /usr/share/ppd
|
||||
dosym /usr/share/ppd /usr/share/cups/model/foomatic-ppds
|
||||
|
||||
# create RSS feed directory
|
||||
diropts -m 0740 -o lp -g lp
|
||||
dodir /var/cache/cups/rss
|
||||
|
||||
# create /etc/cups/client.conf, bug #196967 and #266678
|
||||
echo "ServerName /var/run/cups/cups.sock" >> "${D}"/etc/cups/client.conf
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# cleanups
|
||||
[ -n "${PN}" ] && rm -fR "${ROOT}"/usr/share/doc/"${PN}"-*
|
||||
has_version "=${CATEGORY}/${PN}-1.2*"
|
||||
upgrade_from_1_2=$?
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
echo
|
||||
elog "For information about installing a printer and general cups setup"
|
||||
elog "take a look at: http://www.gentoo.org/doc/en/printing-howto.xml"
|
||||
echo
|
||||
|
||||
local good_gs=false
|
||||
for x in app-text/ghostscript-gpl app-text/ghostscript-gnu ; do
|
||||
if has_version ${x} && built_with_use ${x} cups ; then
|
||||
good_gs=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
if ! ${good_gs} ; then
|
||||
echo
|
||||
ewarn "You need to emerge ghostscript with the \"cups\" USE flag turned on."
|
||||
echo
|
||||
fi
|
||||
|
||||
if [[ $upgrade_from_1_2 = 0 ]] ; then
|
||||
echo
|
||||
ewarn "You have upgraded from an older cups version. Please make sure"
|
||||
ewarn "to run \"etc-update\" and \"revdep-rebuild\" NOW."
|
||||
echo
|
||||
fi
|
||||
|
||||
if [ -e "${ROOT}"/usr/lib/cups ] ; then
|
||||
echo
|
||||
ewarn "/usr/lib/cups exists - You need to remerge every ebuild that"
|
||||
ewarn "installed into /usr/lib/cups and /etc/cups, qfile is in portage-utils:"
|
||||
ewarn "# FEATURES=-collision-protect emerge -va1 \$(qfile -qC /usr/lib/cups /etc/cups | sed \"s:net-print/cups$::\")"
|
||||
echo
|
||||
ewarn "FEATURES=-collision-protect is needed to overwrite the compatibility"
|
||||
ewarn "symlinks installed by this package, it won't be needed on later merges."
|
||||
ewarn "You should also run revdep-rebuild"
|
||||
echo
|
||||
|
||||
# place symlinks to make the update smoothless
|
||||
for i in "${ROOT}"/usr/lib/cups/{backend,filter}/* ; do
|
||||
if [ "${i/\*}" == "${i}" ] && ! [ -e ${i/lib/libexec} ] ; then
|
||||
ln -s ${i} ${i/lib/libexec}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
@ -1,197 +0,0 @@
|
||||
# Copyright 1999-2010 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/net-print/cups/cups-1.4.3.ebuild,v 1.1 2010/03/31 23:01:18 tgurr Exp $
|
||||
|
||||
EAPI="2"
|
||||
|
||||
inherit autotools eutils flag-o-matic multilib pam versionator
|
||||
|
||||
MY_P=${P/_}
|
||||
|
||||
DESCRIPTION="The Common Unix Printing System."
|
||||
HOMEPAGE="http://www.cups.org/"
|
||||
SRC_URI="mirror://easysw/${PN}/${PV}/${MY_P}-source.tar.bz2"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
|
||||
IUSE="acl dbus debug gnutls java +jpeg kerberos ldap pam perl php +png python samba slp +ssl static +tiff +usb X xinetd"
|
||||
|
||||
COMMON_DEPEND="
|
||||
app-text/libpaper
|
||||
dev-libs/libgcrypt
|
||||
acl? (
|
||||
kernel_linux? (
|
||||
sys-apps/acl
|
||||
sys-apps/attr
|
||||
)
|
||||
)
|
||||
dbus? ( sys-apps/dbus )
|
||||
gnutls? ( net-libs/gnutls )
|
||||
java? ( >=virtual/jre-1.4 )
|
||||
jpeg? ( >=media-libs/jpeg-6b:0 )
|
||||
kerberos? ( virtual/krb5 )
|
||||
ldap? ( net-nds/openldap )
|
||||
pam? ( virtual/pam )
|
||||
perl? ( dev-lang/perl )
|
||||
php? ( dev-lang/php )
|
||||
png? ( >=media-libs/libpng-1.2.1 )
|
||||
python? ( dev-lang/python )
|
||||
slp? ( >=net-libs/openslp-1.0.4 )
|
||||
ssl? (
|
||||
!gnutls? ( >=dev-libs/openssl-0.9.8g )
|
||||
)
|
||||
tiff? ( >=media-libs/tiff-3.5.5 )
|
||||
usb? ( dev-libs/libusb )
|
||||
xinetd? ( sys-apps/xinetd )
|
||||
"
|
||||
DEPEND="${COMMON_DEPEND}"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
!net-print/cupsddk
|
||||
!virtual/lpr
|
||||
X? ( x11-misc/xdg-utils )
|
||||
"
|
||||
PDEPEND="
|
||||
app-text/ghostscript-gpl[cups]
|
||||
>=app-text/poppler-0.12.3-r3[utils]
|
||||
"
|
||||
|
||||
PROVIDE="virtual/lpr"
|
||||
|
||||
# upstream includes an interactive test which is a nono for gentoo.
|
||||
# therefore, since the printing herd has bigger fish to fry, for now,
|
||||
# we just leave it out, even if FEATURES=test
|
||||
RESTRICT="test"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LANGS="da de es eu fi fr id it ja ko nl no pl pt pt_BR ru sv zh zh_TW"
|
||||
for X in ${LANGS} ; do
|
||||
IUSE="${IUSE} linguas_${X}"
|
||||
done
|
||||
|
||||
pkg_setup() {
|
||||
enewgroup lp
|
||||
enewuser lp -1 -1 -1 lp
|
||||
enewgroup lpadmin 106
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# remove default optimizations and do not strip by default
|
||||
sed -e 's:OPTIM="-Os -g":OPTIM="":' \
|
||||
-e 's:INSTALL_STRIP="-s":INSTALL_STRIP="":' \
|
||||
-i config-scripts/cups-compiler.m4
|
||||
|
||||
# create a missing symlink to allow https printing via IPP, bug #217293
|
||||
epatch "${FILESDIR}/${PN}-1.4.0-backend-https.patch"
|
||||
|
||||
# use the ldap schema of the ldap draft
|
||||
epatch "${FILESDIR}/${PN}-1.4.1-ldap-draft-1.patch"
|
||||
|
||||
AT_M4DIR=config-scripts eaclocal
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# locale support
|
||||
strip-linguas ${LANGS}
|
||||
if [ -z "${LINGUAS}" ] ; then
|
||||
export LINGUAS=none
|
||||
fi
|
||||
|
||||
local myconf
|
||||
if use ssl || use gnutls ; then
|
||||
myconf="${myconf} \
|
||||
$(use_enable gnutls) \
|
||||
$(use_enable !gnutls openssl)"
|
||||
else
|
||||
myconf="${myconf} \
|
||||
--disable-gnutls \
|
||||
--disable-openssl"
|
||||
fi
|
||||
|
||||
econf \
|
||||
--libdir=/usr/$(get_libdir) \
|
||||
--localstatedir=/var \
|
||||
--with-cups-user=lp \
|
||||
--with-cups-group=lp \
|
||||
--with-docdir=/usr/share/cups/html \
|
||||
--with-languages="${LINGUAS}" \
|
||||
--with-pdftops=/usr/bin/pdftops \
|
||||
--with-system-groups=lpadmin \
|
||||
$(use_enable acl) \
|
||||
$(use_enable dbus) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable debug debug-guards) \
|
||||
$(use_enable jpeg) \
|
||||
$(use_enable kerberos gssapi) \
|
||||
$(use_enable ldap) \
|
||||
$(use_enable pam) \
|
||||
$(use_enable png) \
|
||||
$(use_enable slp) \
|
||||
$(use_enable static) \
|
||||
$(use_enable tiff) \
|
||||
$(use_enable usb libusb) \
|
||||
$(use_with java) \
|
||||
$(use_with perl) \
|
||||
$(use_with php) \
|
||||
$(use_with python) \
|
||||
$(use_with xinetd xinetd /etc/xinetd.d) \
|
||||
--enable-libpaper \
|
||||
--enable-threads \
|
||||
--disable-dnssd \
|
||||
${myconf}
|
||||
|
||||
# install in /usr/libexec always, instead of using /usr/lib/cups, as that
|
||||
# makes more sense when facing multilib support.
|
||||
sed -i -e 's:SERVERBIN.*:SERVERBIN = "$(BUILDROOT)"/usr/libexec/cups:' Makedefs
|
||||
sed -i -e 's:#define CUPS_SERVERBIN.*:#define CUPS_SERVERBIN "/usr/libexec/cups":' config.h
|
||||
sed -i -e 's:cups_serverbin=.*:cups_serverbin=/usr/libexec/cups:' cups-config
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake BUILDROOT="${D}" install || die "emake install failed"
|
||||
dodoc {CHANGES,CREDITS,README}.txt || die "dodoc install failed"
|
||||
|
||||
# clean out cups init scripts
|
||||
rm -rf "${D}"/etc/{init.d/cups,rc*,pam.d/cups}
|
||||
|
||||
# install our init script
|
||||
local neededservices
|
||||
use dbus && neededservices="$neededservices dbus"
|
||||
[[ -n ${neededservices} ]] && neededservices="need${neededservices}"
|
||||
sed -e "s/@neededservices@/$neededservices/" "${FILESDIR}"/cupsd.init.d > "${T}"/cupsd
|
||||
doinitd "${T}"/cupsd || die "doinitd failed"
|
||||
|
||||
# install our pam script
|
||||
pamd_mimic_system cups auth account
|
||||
|
||||
if use xinetd ; then
|
||||
# correct path
|
||||
sed -i -e "s:server = .*:server = /usr/libexec/cups/daemon/cups-lpd:" "${D}"/etc/xinetd.d/cups-lpd
|
||||
# it is safer to disable this by default, bug #137130
|
||||
grep -w 'disable' "${D}"/etc/xinetd.d/cups-lpd || \
|
||||
sed -i -e "s:}:\tdisable = yes\n}:" "${D}"/etc/xinetd.d/cups-lpd
|
||||
else
|
||||
rm -rf "${D}"/etc/xinetd.d
|
||||
fi
|
||||
|
||||
keepdir /usr/libexec/cups/driver /usr/share/cups/{model,profiles} \
|
||||
/var/cache/cups /var/cache/cups/rss /var/log/cups /var/run/cups/certs \
|
||||
/var/spool/cups/tmp
|
||||
|
||||
keepdir /etc/cups/{interfaces,ppd,ssl}
|
||||
|
||||
use X || rm -r "${D}"/usr/share/applications
|
||||
|
||||
# create /etc/cups/client.conf, bug #196967 and #266678
|
||||
echo "ServerName /var/run/cups/cups.sock" >> "${D}"/etc/cups/client.conf
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
echo
|
||||
elog "For information about installing a printer and general cups setup"
|
||||
elog "take a look at: http://www.gentoo.org/doc/en/printing-howto.xml"
|
||||
echo
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
diff -Naur cups-1.3.3/config-scripts/cups-common.m4 cups-1.3.3.new/config-scripts/cups-common.m4
|
||||
--- cups-1.3.3/config-scripts/cups-common.m4 2007-09-28 22:40:03.000000000 +0200
|
||||
+++ cups-1.3.3.new/config-scripts/cups-common.m4 2007-10-04 14:40:49.414154416 +0200
|
||||
@@ -270,7 +270,12 @@
|
||||
dnl See if we have POSIX ACL support...
|
||||
SAVELIBS="$LIBS"
|
||||
LIBS=""
|
||||
-AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
|
||||
+
|
||||
+AC_ARG_ENABLE(acl, [ --enable-acl enable POSIX ACL support, default=auto])
|
||||
+if test "x$enable_acl" != xno; then
|
||||
+ AC_SEARCH_LIBS(acl_init, acl, AC_DEFINE(HAVE_ACL_INIT))
|
||||
+fi
|
||||
+
|
||||
CUPSDLIBS="$CUPSDLIBS $LIBS"
|
||||
LIBS="$SAVELIBS"
|
||||
|
||||
|
@ -1,19 +0,0 @@
|
||||
diff -Naur cups-1.3.10/config-scripts/cups-ssl.m4 cups-1.3.10.new/config-scripts/cups-ssl.m4
|
||||
--- cups-1.3.10/config-scripts/cups-ssl.m4 2007-07-11 23:46:42.000000000 +0200
|
||||
+++ cups-1.3.10.new/config-scripts/cups-ssl.m4 2009-05-29 02:38:27.444267250 +0200
|
||||
@@ -64,11 +64,11 @@
|
||||
fi
|
||||
|
||||
dnl Then look for GNU TLS...
|
||||
- if test "x${SSLLIBS}" = "x" -a "x${enable_gnutls}" != "xno"; then
|
||||
+ if test "x${SSLLIBS}" = "x" -a "x${enable_gnutls}" != "xno" -a "x$PKGCONFIG" != x; then
|
||||
AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
|
||||
- if test "x$LIBGNUTLSCONFIG" != x; then
|
||||
- SSLLIBS=`$LIBGNUTLSCONFIG --libs`
|
||||
- SSLFLAGS=`$LIBGNUTLSCONFIG --cflags`
|
||||
+ if $PKGCONFIG --exists gnutls; then
|
||||
+ SSLLIBS=`$PKGCONFIG --libs gnutls`
|
||||
+ SSLFLAGS=`$PKGCONFIG --cflags gnutls`
|
||||
ENCRYPTION_REQUIRED=" Encryption Required"
|
||||
AC_DEFINE(HAVE_SSL)
|
||||
AC_DEFINE(HAVE_GNUTLS)
|
@ -1,39 +0,0 @@
|
||||
diff -up cups-1.3.7/scheduler/select.c.CVE-2009-3553 cups-1.3.7/scheduler/select.c
|
||||
--- cups-1.3.7/scheduler/select.c.CVE-2009-3553 2007-11-30 19:29:50.000000000 +0000
|
||||
+++ cups-1.3.7/scheduler/select.c 2009-11-11 16:36:07.223893886 +0000
|
||||
@@ -477,7 +477,7 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
}
|
||||
|
||||
- if (fdptr->write_cb && event->filter == EVFILT_WRITE)
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb && event->filter == EVFILT_WRITE)
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDoSelect: Write on fd %d...",
|
||||
fdptr->fd);
|
||||
@@ -537,7 +537,7 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
}
|
||||
|
||||
- if (fdptr->write_cb && (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb && (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDoSelect: Write on fd %d...",
|
||||
fdptr->fd);
|
||||
@@ -649,7 +649,7 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
}
|
||||
|
||||
- if (fdptr->write_cb && (pfd->revents & (POLLOUT | POLLERR | POLLHUP)))
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb && (pfd->revents & (POLLOUT | POLLERR | POLLHUP)))
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDoSelect: Write on fd %d...",
|
||||
fdptr->fd);
|
||||
@@ -719,7 +719,7 @@ cupsdDoSelect(long timeout) /* I - Time
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
}
|
||||
|
||||
- if (fdptr->write_cb && FD_ISSET(fdptr->fd, &cupsd_current_output))
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb && FD_ISSET(fdptr->fd, &cupsd_current_output))
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdDoSelect: Write on fd %d...",
|
||||
fdptr->fd);
|
@ -1,435 +0,0 @@
|
||||
Index: cgi-bin/printers.c
|
||||
===================================================================
|
||||
--- cgi-bin/printers.c (.../easysw/current-1.3.x) (revision 1707)
|
||||
+++ cgi-bin/printers.c (.../branches/leopard/cups) (revision 1707)
|
||||
@@ -72,6 +72,7 @@
|
||||
*/
|
||||
|
||||
cgiSetVariable("SECTION", "printers");
|
||||
+ cgiSetVariable("REFRESH_PAGE", "");
|
||||
|
||||
/*
|
||||
* See if we are displaying a printer or all printers...
|
||||
Index: cgi-bin/cgi.h
|
||||
===================================================================
|
||||
--- cgi-bin/cgi.h (.../easysw/current-1.3.x) (revision 1707)
|
||||
+++ cgi-bin/cgi.h (.../branches/leopard/cups) (revision 1707)
|
||||
@@ -54,6 +54,7 @@
|
||||
extern void cgiAbort(const char *title, const char *stylesheet,
|
||||
const char *format, ...);
|
||||
extern int cgiCheckVariables(const char *names);
|
||||
+extern void cgiClearVariables(void);
|
||||
extern void *cgiCompileSearch(const char *query);
|
||||
extern void cgiCopyTemplateFile(FILE *out, const char *tmpl);
|
||||
extern void cgiCopyTemplateLang(const char *tmpl);
|
||||
Index: cgi-bin/template.c
|
||||
===================================================================
|
||||
--- cgi-bin/template.c (.../easysw/current-1.3.x) (revision 1707)
|
||||
+++ cgi-bin/template.c (.../branches/leopard/cups) (revision 1707)
|
||||
@@ -639,6 +639,8 @@
|
||||
fputs(">", out);
|
||||
else if (*s == '\"')
|
||||
fputs(""", out);
|
||||
+ else if (*s == '\'')
|
||||
+ fputs("'", out);
|
||||
else if (*s == '&')
|
||||
fputs("&", out);
|
||||
else
|
||||
@@ -659,7 +661,7 @@
|
||||
{
|
||||
while (*s)
|
||||
{
|
||||
- if (strchr("%&+ <>#=", *s) || *s & 128)
|
||||
+ if (strchr("%@&+ <>#=", *s) || *s < ' ' || *s & 128)
|
||||
fprintf(out, "%%%02X", *s & 255);
|
||||
else
|
||||
putc(*s, out);
|
||||
Index: cgi-bin/ipp-var.c
|
||||
===================================================================
|
||||
--- cgi-bin/ipp-var.c (.../easysw/current-1.3.x) (revision 1707)
|
||||
+++ cgi-bin/ipp-var.c (.../branches/leopard/cups) (revision 1707)
|
||||
@@ -1220,7 +1220,9 @@
|
||||
int ascending, /* Order of jobs (0 = descending) */
|
||||
first, /* First job to show */
|
||||
count; /* Number of jobs */
|
||||
- const char *var; /* Form variable */
|
||||
+ const char *var, /* Form variable */
|
||||
+ *query, /* Query string */
|
||||
+ *section; /* Section in web interface */
|
||||
void *search; /* Search data */
|
||||
char url[1024], /* URL for prev/next/this */
|
||||
*urlptr, /* Position in URL */
|
||||
@@ -1265,10 +1267,13 @@
|
||||
* Get a list of matching job objects.
|
||||
*/
|
||||
|
||||
- if ((var = cgiGetVariable("QUERY")) != NULL)
|
||||
- search = cgiCompileSearch(var);
|
||||
+ if ((query = cgiGetVariable("QUERY")) != NULL)
|
||||
+ search = cgiCompileSearch(query);
|
||||
else
|
||||
+ {
|
||||
+ query = NULL;
|
||||
search = NULL;
|
||||
+ }
|
||||
|
||||
jobs = cgiGetIPPObjects(response, search);
|
||||
count = cupsArrayCount(jobs);
|
||||
@@ -1293,17 +1298,28 @@
|
||||
if (first < 0)
|
||||
first = 0;
|
||||
|
||||
- sprintf(url, "%d", count);
|
||||
- cgiSetVariable("TOTAL", url);
|
||||
-
|
||||
if ((var = cgiGetVariable("ORDER")) != NULL)
|
||||
ascending = !strcasecmp(var, "asc");
|
||||
else
|
||||
- {
|
||||
ascending = !which_jobs || !strcasecmp(which_jobs, "not-completed");
|
||||
- cgiSetVariable("ORDER", ascending ? "asc" : "dec");
|
||||
- }
|
||||
|
||||
+ section = cgiGetVariable("SECTION");
|
||||
+
|
||||
+ cgiClearVariables();
|
||||
+
|
||||
+ if (query)
|
||||
+ cgiSetVariable("QUERY", query);
|
||||
+
|
||||
+ cgiSetVariable("ORDER", ascending ? "asc" : "dec");
|
||||
+
|
||||
+ cgiSetVariable("SECTION", section);
|
||||
+
|
||||
+ sprintf(url, "%d", count);
|
||||
+ cgiSetVariable("TOTAL", url);
|
||||
+
|
||||
+ if (which_jobs)
|
||||
+ cgiSetVariable("WHICH_JOBS", which_jobs);
|
||||
+
|
||||
if (ascending)
|
||||
{
|
||||
for (i = 0, job = (ipp_attribute_t *)cupsArrayIndex(jobs, first);
|
||||
@@ -1325,11 +1341,10 @@
|
||||
|
||||
urlend = url + sizeof(url);
|
||||
|
||||
- if ((var = cgiGetVariable("QUERY")) != NULL)
|
||||
+ if (query != NULL)
|
||||
{
|
||||
if (dest)
|
||||
- snprintf(url, sizeof(url), "/%s/%s?QUERY=", cgiGetVariable("SECTION"),
|
||||
- dest);
|
||||
+ snprintf(url, sizeof(url), "/%s/%s?QUERY=", section, dest);
|
||||
else
|
||||
strlcpy(url, "/jobs/?QUERY=", sizeof(url));
|
||||
|
||||
@@ -1344,7 +1359,7 @@
|
||||
else
|
||||
{
|
||||
if (dest)
|
||||
- snprintf(url, sizeof(url), "/%s/%s?", cgiGetVariable("SECTION"), dest);
|
||||
+ snprintf(url, sizeof(url), "/%s/%s?", section, dest);
|
||||
else
|
||||
strlcpy(url, "/jobs/?", sizeof(url));
|
||||
|
||||
Index: cgi-bin/admin.c
|
||||
===================================================================
|
||||
--- cgi-bin/admin.c (.../easysw/current-1.3.x) (revision 1707)
|
||||
+++ cgi-bin/admin.c (.../branches/leopard/cups) (revision 1707)
|
||||
@@ -104,6 +104,7 @@
|
||||
*/
|
||||
|
||||
cgiSetVariable("SECTION", "admin");
|
||||
+ cgiSetVariable("REFRESH_PAGE", "");
|
||||
|
||||
/*
|
||||
* See if we have form data...
|
||||
@@ -134,16 +135,61 @@
|
||||
|
||||
|
||||
if (getenv("HTTPS"))
|
||||
- snprintf(prefix, sizeof(prefix), "https://%s:%s",
|
||||
- getenv("SERVER_NAME"), getenv("SERVER_PORT"));
|
||||
+ snprintf(prefix, sizeof(prefix), "https://%s:%s",
|
||||
+ getenv("SERVER_NAME"), getenv("SERVER_PORT"));
|
||||
else
|
||||
- snprintf(prefix, sizeof(prefix), "http://%s:%s",
|
||||
- getenv("SERVER_NAME"), getenv("SERVER_PORT"));
|
||||
+ snprintf(prefix, sizeof(prefix), "http://%s:%s",
|
||||
+ getenv("SERVER_NAME"), getenv("SERVER_PORT"));
|
||||
|
||||
+ fprintf(stderr, "DEBUG: redirecting with prefix %s!\n", prefix);
|
||||
+
|
||||
if ((url = cgiGetVariable("URL")) != NULL)
|
||||
- printf("Location: %s%s\n\n", prefix, url);
|
||||
+ {
|
||||
+ char encoded[1024], /* Encoded URL string */
|
||||
+ *ptr; /* Pointer into encoded string */
|
||||
+
|
||||
+
|
||||
+ ptr = encoded;
|
||||
+ if (*url != '/')
|
||||
+ *ptr++ = '/';
|
||||
+
|
||||
+ for (; *url && ptr < (encoded + sizeof(encoded) - 4); url ++)
|
||||
+ {
|
||||
+ if (strchr("%@&+ <>#=", *url) || *url < ' ' || *url & 128)
|
||||
+ {
|
||||
+ /*
|
||||
+ * Percent-encode this character; safe because we have at least 4
|
||||
+ * bytes left in the array...
|
||||
+ */
|
||||
+
|
||||
+ sprintf(ptr, "%%%02X", *url & 255);
|
||||
+ ptr += 3;
|
||||
+ }
|
||||
+ else
|
||||
+ *ptr++ = *url;
|
||||
+ }
|
||||
+
|
||||
+ *ptr = '\0';
|
||||
+
|
||||
+ if (*url)
|
||||
+ {
|
||||
+ /*
|
||||
+ * URL was too long, just redirect to the admin page...
|
||||
+ */
|
||||
+
|
||||
+ printf("Location: %s/admin\n\n", prefix);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ /*
|
||||
+ * URL is OK, redirect there...
|
||||
+ */
|
||||
+
|
||||
+ printf("Location: %s%s\n\n", prefix, encoded);
|
||||
+ }
|
||||
+ }
|
||||
else
|
||||
- printf("Location: %s/admin\n\n", prefix);
|
||||
+ printf("Location: %s/admin\n\n", prefix);
|
||||
}
|
||||
else if (!strcmp(op, "start-printer"))
|
||||
do_printer_op(http, IPP_RESUME_PRINTER, cgiText(_("Start Printer")));
|
||||
@@ -293,6 +339,31 @@
|
||||
* and classes and (re)show the add page...
|
||||
*/
|
||||
|
||||
+ if (cgiGetVariable("EVENT_JOB_CREATED"))
|
||||
+ cgiSetVariable("EVENT_JOB_CREATED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_JOB_COMPLETED"))
|
||||
+ cgiSetVariable("EVENT_JOB_COMPLETED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_JOB_STOPPED"))
|
||||
+ cgiSetVariable("EVENT_JOB_STOPPED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_JOB_CONFIG_CHANGED"))
|
||||
+ cgiSetVariable("EVENT_JOB_CONFIG_CHANGED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_PRINTER_STOPPED"))
|
||||
+ cgiSetVariable("EVENT_PRINTER_STOPPED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_PRINTER_ADDED"))
|
||||
+ cgiSetVariable("EVENT_PRINTER_ADDED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_PRINTER_MODIFIED"))
|
||||
+ cgiSetVariable("EVENT_PRINTER_MODIFIED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_PRINTER_DELETED"))
|
||||
+ cgiSetVariable("EVENT_PRINTER_DELETED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_SERVER_STARTED"))
|
||||
+ cgiSetVariable("EVENT_SERVER_STARTED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_SERVER_STOPPED"))
|
||||
+ cgiSetVariable("EVENT_SERVER_STOPPED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_SERVER_RESTARTED"))
|
||||
+ cgiSetVariable("EVENT_SERVER_RESTARTED", "CHECKED");
|
||||
+ if (cgiGetVariable("EVENT_SERVER_AUDIT"))
|
||||
+ cgiSetVariable("EVENT_SERVER_AUDIT", "CHECKED");
|
||||
+
|
||||
request = ippNewRequest(CUPS_GET_PRINTERS);
|
||||
response = cupsDoRequest(http, request, "/");
|
||||
|
||||
@@ -450,6 +521,10 @@
|
||||
* Do the request and get back a response...
|
||||
*/
|
||||
|
||||
+ cgiClearVariables();
|
||||
+ if (name)
|
||||
+ cgiSetVariable("PRINTER_NAME", name);
|
||||
+
|
||||
if ((response = cupsDoRequest(http, request, "/")) != NULL)
|
||||
{
|
||||
/*
|
||||
@@ -2336,7 +2411,9 @@
|
||||
if ((val = cupsGetOption("DefaultAuthType", num_settings,
|
||||
settings)) != NULL && !strcasecmp(val, "Negotiate"))
|
||||
cgiSetVariable("KERBEROS", "CHECKED");
|
||||
+ else
|
||||
#endif /* HAVE_GSSAPI */
|
||||
+ cgiSetVariable("KERBEROS", "");
|
||||
|
||||
cupsFreeOptions(num_settings, settings);
|
||||
|
||||
Index: cgi-bin/help.c
|
||||
===================================================================
|
||||
--- cgi-bin/help.c (.../easysw/current-1.3.x) (revision 1707)
|
||||
+++ cgi-bin/help.c (.../branches/leopard/cups) (revision 1707)
|
||||
@@ -63,6 +63,7 @@
|
||||
*/
|
||||
|
||||
cgiSetVariable("SECTION", "help");
|
||||
+ cgiSetVariable("REFRESH_PAGE", "");
|
||||
|
||||
/*
|
||||
* Load the help index...
|
||||
@@ -102,7 +103,7 @@
|
||||
*/
|
||||
|
||||
for (i = 0; i < argc; i ++)
|
||||
- fprintf(stderr, "argv[%d]=\"%s\"\n", i, argv[i]);
|
||||
+ fprintf(stderr, "DEBUG: argv[%d]=\"%s\"\n", i, argv[i]);
|
||||
|
||||
if ((helpfile = getenv("PATH_INFO")) != NULL)
|
||||
{
|
||||
@@ -179,6 +180,12 @@
|
||||
topic = cgiGetVariable("TOPIC");
|
||||
si = helpSearchIndex(hi, query, topic, helpfile);
|
||||
|
||||
+ cgiClearVariables();
|
||||
+ if (query)
|
||||
+ cgiSetVariable("QUERY", query);
|
||||
+ if (topic)
|
||||
+ cgiSetVariable("TOPIC", topic);
|
||||
+
|
||||
fprintf(stderr, "DEBUG: query=\"%s\", topic=\"%s\"\n",
|
||||
query ? query : "(null)", topic ? topic : "(null)");
|
||||
|
||||
Index: cgi-bin/var.c
|
||||
===================================================================
|
||||
--- cgi-bin/var.c (.../easysw/current-1.3.x) (revision 1707)
|
||||
+++ cgi-bin/var.c (.../branches/leopard/cups) (revision 1707)
|
||||
@@ -15,6 +15,7 @@
|
||||
* Contents:
|
||||
*
|
||||
* cgiCheckVariables() - Check for the presence of "required" variables.
|
||||
+ * cgiClearVariables() - Clear all form variables.
|
||||
* cgiGetArray() - Get an element from a form array...
|
||||
* cgiGetFile() - Get the file (if any) that was submitted in the form.
|
||||
* cgiGetSize() - Get the size of a form array value.
|
||||
@@ -135,6 +136,31 @@
|
||||
|
||||
|
||||
/*
|
||||
+ * 'cgiClearVariables()' - Clear all form variables.
|
||||
+ */
|
||||
+
|
||||
+void
|
||||
+cgiClearVariables(void)
|
||||
+{
|
||||
+ int i, j; /* Looping vars */
|
||||
+ _cgi_var_t *v; /* Current variable */
|
||||
+
|
||||
+
|
||||
+ for (v = form_vars, i = form_count; i > 0; v ++, i --)
|
||||
+ {
|
||||
+ _cupsStrFree(v->name);
|
||||
+ for (j = 0; j < v->nvalues; j ++)
|
||||
+ if (v->values[j])
|
||||
+ _cupsStrFree(v->values[j]);
|
||||
+ }
|
||||
+
|
||||
+ form_count = 0;
|
||||
+
|
||||
+ cgi_unlink_file();
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/*
|
||||
* 'cgiGetArray()' - Get an element from a form array...
|
||||
*/
|
||||
|
||||
@@ -154,7 +180,7 @@
|
||||
if (element < 0 || element >= var->nvalues)
|
||||
return (NULL);
|
||||
|
||||
- return (var->values[element]);
|
||||
+ return (_cupsStrAlloc(var->values[element]));
|
||||
}
|
||||
|
||||
|
||||
@@ -209,7 +235,7 @@
|
||||
var->values[var->nvalues - 1]);
|
||||
#endif /* DEBUG */
|
||||
|
||||
- return ((var == NULL) ? NULL : var->values[var->nvalues - 1]);
|
||||
+ return ((var == NULL) ? NULL : _cupsStrAlloc(var->values[var->nvalues - 1]));
|
||||
}
|
||||
|
||||
|
||||
@@ -341,9 +367,9 @@
|
||||
var->nvalues = element + 1;
|
||||
}
|
||||
else if (var->values[element])
|
||||
- free((char *)var->values[element]);
|
||||
+ _cupsStrFree((char *)var->values[element]);
|
||||
|
||||
- var->values[element] = strdup(value);
|
||||
+ var->values[element] = _cupsStrAlloc(value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -388,7 +414,7 @@
|
||||
{
|
||||
for (i = size; i < var->nvalues; i ++)
|
||||
if (var->values[i])
|
||||
- free((void *)(var->values[i]));
|
||||
+ _cupsStrFree((void *)(var->values[i]));
|
||||
}
|
||||
|
||||
var->nvalues = size;
|
||||
@@ -421,9 +447,9 @@
|
||||
{
|
||||
for (i = 0; i < var->nvalues; i ++)
|
||||
if (var->values[i])
|
||||
- free((char *)var->values[i]);
|
||||
+ _cupsStrFree((char *)var->values[i]);
|
||||
|
||||
- var->values[0] = strdup(value);
|
||||
+ var->values[0] = _cupsStrAlloc(value);
|
||||
var->nvalues = 1;
|
||||
}
|
||||
}
|
||||
@@ -470,10 +496,10 @@
|
||||
if ((var->values = calloc(element + 1, sizeof(char *))) == NULL)
|
||||
return;
|
||||
|
||||
- var->name = strdup(name);
|
||||
+ var->name = _cupsStrAlloc(name);
|
||||
var->nvalues = element + 1;
|
||||
var->avalues = element + 1;
|
||||
- var->values[element] = strdup(value);
|
||||
+ var->values[element] = _cupsStrAlloc(value);
|
||||
|
||||
form_count ++;
|
||||
}
|
||||
Index: cgi-bin/jobs.c
|
||||
===================================================================
|
||||
--- cgi-bin/jobs.c (.../easysw/current-1.3.x) (revision 1707)
|
||||
+++ cgi-bin/jobs.c (.../branches/leopard/cups) (revision 1707)
|
||||
@@ -57,6 +57,7 @@
|
||||
*/
|
||||
|
||||
cgiSetVariable("SECTION", "jobs");
|
||||
+ cgiSetVariable("REFRESH_PAGE", "");
|
||||
|
||||
/*
|
||||
* Connect to the HTTP server...
|
||||
Index: cgi-bin/classes.c
|
||||
===================================================================
|
||||
--- cgi-bin/classes.c (.../easysw/current-1.3.x) (revision 1707)
|
||||
+++ cgi-bin/classes.c (.../branches/leopard/cups) (revision 1707)
|
||||
@@ -69,6 +69,7 @@
|
||||
*/
|
||||
|
||||
cgiSetVariable("SECTION", "classes");
|
||||
+ cgiSetVariable("REFRESH_PAGE", "");
|
||||
|
||||
/*
|
||||
* See if we are displaying a printer or all classes...
|
||||
|
@ -1,27 +0,0 @@
|
||||
--- cgi-bin/admin.c.ori 2009-10-30 14:07:13.000000000 -0400
|
||||
+++ cgi-bin/admin.c 2009-10-30 14:06:54.000000000 -0400
|
||||
@@ -536,6 +536,7 @@
|
||||
ipp_attribute_t *attr; /* member-uris attribute */
|
||||
char uri[HTTP_MAX_URI]; /* Device or printer URI */
|
||||
const char *name, /* Pointer to class name */
|
||||
+ *op, /* Operation name */
|
||||
*ptr; /* Pointer to CGI variable */
|
||||
const char *title; /* Title of page */
|
||||
static const char * const pattrs[] = /* Requested printer attributes */
|
||||
@@ -547,6 +548,7 @@
|
||||
|
||||
|
||||
title = cgiText(modify ? _("Modify Class") : _("Add Class"));
|
||||
+ op = cgiGetVariable("OP");
|
||||
name = cgiGetVariable("PRINTER_NAME");
|
||||
|
||||
if (cgiGetVariable("PRINTER_LOCATION") == NULL)
|
||||
@@ -572,6 +574,8 @@
|
||||
*/
|
||||
|
||||
cgiClearVariables();
|
||||
+ if (op)
|
||||
+ cgiSetVariable("OP", op);
|
||||
if (name)
|
||||
cgiSetVariable("PRINTER_NAME", name);
|
||||
|
@ -1,11 +0,0 @@
|
||||
diff -Naur cups-1.3.7/backend/Makefile cups-1.3.7.new/backend/Makefile
|
||||
--- cups-1.3.7/backend/Makefile 2007-08-08 21:27:51.000000000 +0200
|
||||
+++ cups-1.3.7.new/backend/Makefile 2008-04-14 16:42:18.106785330 +0200
|
||||
@@ -62,6 +62,7 @@
|
||||
done
|
||||
$(RM) $(SERVERBIN)/backend/http
|
||||
$(LN) ipp $(SERVERBIN)/backend/http
|
||||
+ $(LN) ipp $(SERVERBIN)/backend/https
|
||||
if test "x$(SYMROOT)" != "x"; then \
|
||||
$(INSTALL_DIR) $(SYMROOT); \
|
||||
for file in $(TARGETS); do \
|
@ -1,22 +0,0 @@
|
||||
Index: filter/image-png.c
|
||||
===================================================================
|
||||
--- filter/image-png.c (revision 8062)
|
||||
+++ filter/image-png.c (working copy)
|
||||
@@ -178,7 +178,7 @@
|
||||
{
|
||||
bufsize = img->xsize * img->ysize;
|
||||
|
||||
- if ((bufsize / img->ysize) != img->xsize)
|
||||
+ if ((bufsize / img->xsize) != img->ysize)
|
||||
{
|
||||
fprintf(stderr, "DEBUG: PNG image dimensions (%ux%u) too large!\n",
|
||||
(unsigned)width, (unsigned)height);
|
||||
@@ -190,7 +190,7 @@
|
||||
{
|
||||
bufsize = img->xsize * img->ysize * 3;
|
||||
|
||||
- if ((bufsize / (img->ysize * 3)) != img->xsize)
|
||||
+ if ((bufsize / (img->xsize * 3)) != img->ysize)
|
||||
{
|
||||
fprintf(stderr, "DEBUG: PNG image dimensions (%ux%u) too large!\n",
|
||||
(unsigned)width, (unsigned)height);
|
@ -1,102 +0,0 @@
|
||||
Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
|
||||
Date: 2009-03-13
|
||||
Initial Package Version: 1.3.9
|
||||
Origin: me
|
||||
Upstream Status: unknown
|
||||
Description: use the oids from the ldap ipp draft
|
||||
https://datatracker.ietf.org/drafts/draft-ietf-ipp-ldap-printer-schema/
|
||||
|
||||
this patch also requres a migration addon schema
|
||||
http://ftp.disconnected-by-peer.at/mds/printer-cups.schema
|
||||
|
||||
diff -Naur cups-1.3.9.orig/scheduler/dirsvc.c cups-1.3.9/scheduler/dirsvc.c
|
||||
--- cups-1.3.9.orig/scheduler/dirsvc.c 2008-07-18 20:30:23.000000000 +0000
|
||||
+++ cups-1.3.9/scheduler/dirsvc.c 2009-03-13 20:49:31.160730818 +0000
|
||||
@@ -104,11 +104,11 @@
|
||||
#ifdef HAVE_OPENLDAP
|
||||
static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
|
||||
{
|
||||
- "printerDescription",
|
||||
- "printerLocation",
|
||||
- "printerMakeAndModel",
|
||||
- "printerType",
|
||||
- "printerURI",
|
||||
+ "printer-info",
|
||||
+ "printer-location",
|
||||
+ "printer-make-and-model",
|
||||
+ "printer-type",
|
||||
+ "printer-uri",
|
||||
NULL
|
||||
};
|
||||
#endif /* HAVE_OPENLDAP */
|
||||
@@ -1439,35 +1439,35 @@
|
||||
*/
|
||||
|
||||
if ((value = ldap_get_values(BrowseLDAPHandle, e,
|
||||
- "printerDescription")) == NULL)
|
||||
+ "printer-info")) == NULL)
|
||||
continue;
|
||||
|
||||
strlcpy(info, *value, sizeof(info));
|
||||
ldap_value_free(value);
|
||||
|
||||
if ((value = ldap_get_values(BrowseLDAPHandle, e,
|
||||
- "printerLocation")) == NULL)
|
||||
+ "printer-location")) == NULL)
|
||||
continue;
|
||||
|
||||
strlcpy(location, *value, sizeof(location));
|
||||
ldap_value_free(value);
|
||||
|
||||
if ((value = ldap_get_values(BrowseLDAPHandle, e,
|
||||
- "printerMakeAndModel")) == NULL)
|
||||
+ "printer-make-and-model")) == NULL)
|
||||
continue;
|
||||
|
||||
strlcpy(make_model, *value, sizeof(make_model));
|
||||
ldap_value_free(value);
|
||||
|
||||
if ((value = ldap_get_values(BrowseLDAPHandle, e,
|
||||
- "printerType")) == NULL)
|
||||
+ "printer-type")) == NULL)
|
||||
continue;
|
||||
|
||||
type = atoi(*value);
|
||||
ldap_value_free(value);
|
||||
|
||||
if ((value = ldap_get_values(BrowseLDAPHandle, e,
|
||||
- "printerURI")) == NULL)
|
||||
+ "printer-uri")) == NULL)
|
||||
continue;
|
||||
|
||||
strlcpy(uri, *value, sizeof(uri));
|
||||
@@ -3004,7 +3004,7 @@
|
||||
uri[1] = NULL;
|
||||
|
||||
snprintf(filter, sizeof(filter),
|
||||
- "(&(objectclass=cupsPrinter)(printerURI=%s))", p->uri);
|
||||
+ "(&(objectclass=cupsPrinter)(printer-uri=%s))", p->uri);
|
||||
|
||||
ldap_search_s(BrowseLDAPHandle, BrowseLDAPDN, LDAP_SCOPE_SUBTREE,
|
||||
filter, (char **)ldap_attrs, 0, &res);
|
||||
@@ -3013,15 +3013,15 @@
|
||||
|
||||
mods[0].mod_type = "cn";
|
||||
mods[0].mod_values = cn_value;
|
||||
- mods[1].mod_type = "printerDescription";
|
||||
+ mods[1].mod_type = "printer-info";
|
||||
mods[1].mod_values = info;
|
||||
- mods[2].mod_type = "printerURI";
|
||||
+ mods[2].mod_type = "printer-uri";
|
||||
mods[2].mod_values = uri;
|
||||
- mods[3].mod_type = "printerLocation";
|
||||
+ mods[3].mod_type = "printer-location";
|
||||
mods[3].mod_values = location;
|
||||
- mods[4].mod_type = "printerMakeAndModel";
|
||||
+ mods[4].mod_type = "printer-make-and-model";
|
||||
mods[4].mod_values = make_model;
|
||||
- mods[5].mod_type = "printerType";
|
||||
+ mods[5].mod_type = "printer-type";
|
||||
mods[5].mod_values = type;
|
||||
mods[6].mod_type = "objectClass";
|
||||
mods[6].mod_values = (char **)objectClass_values;
|
@ -1,11 +0,0 @@
|
||||
diff -Naur cups-1.4.0/backend/Makefile cups-1.4.0.new/backend/Makefile
|
||||
--- cups-1.4.0/backend/Makefile 2009-03-03 20:39:21.000000000 +0100
|
||||
+++ cups-1.4.0.new/backend/Makefile 2009-09-01 14:00:05.592615359 +0200
|
||||
@@ -91,6 +91,7 @@
|
||||
done
|
||||
$(RM) $(SERVERBIN)/backend/http
|
||||
$(LN) ipp $(SERVERBIN)/backend/http
|
||||
+ $(LN) ipp $(SERVERBIN)/backend/https
|
||||
if test "x$(DNSSD_BACKEND)" != x; then \
|
||||
$(RM) $(SERVERBIN)/backend/mdns; \
|
||||
$(LN) $(DNSSD_BACKEND) $(SERVERBIN)/backend/mdns; \
|
@ -1,114 +0,0 @@
|
||||
Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
|
||||
Date: 2009-09-27
|
||||
Initial Package Version: 1.3.9
|
||||
Origin: me
|
||||
Upstream Status: unknown
|
||||
Description: use the oids from the ldap ipp draft
|
||||
https://datatracker.ietf.org/drafts/draft-ietf-ipp-ldap-printer-schema/
|
||||
|
||||
this patch also requres a migration addon schema
|
||||
http://ftp.disconnected-by-peer.at/mds/printer-cups.schema
|
||||
|
||||
diff -Naur cups-1.4.1.orig/scheduler/dirsvc.c cups-1.4.1/scheduler/dirsvc.c
|
||||
--- cups-1.4.1.orig/scheduler/dirsvc.c 2009-09-27 11:59:13.412880248 +0000
|
||||
+++ cups-1.4.1/scheduler/dirsvc.c 2009-09-27 12:04:52.581880776 +0000
|
||||
@@ -181,11 +181,11 @@
|
||||
#ifdef HAVE_LDAP
|
||||
static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
|
||||
{
|
||||
- "printerDescription",
|
||||
- "printerLocation",
|
||||
- "printerMakeAndModel",
|
||||
- "printerType",
|
||||
- "printerURI",
|
||||
+ "printer-info",
|
||||
+ "printer-location",
|
||||
+ "printer-make-and-model",
|
||||
+ "printer-type",
|
||||
+ "printer-uri",
|
||||
NULL
|
||||
};
|
||||
#endif /* HAVE_LDAP */
|
||||
@@ -2151,25 +2151,25 @@
|
||||
*/
|
||||
|
||||
if (ldap_getval_firststring(BrowseLDAPHandle, e,
|
||||
- "printerDescription", info, sizeof(info)) == -1)
|
||||
+ "printer-info", info, sizeof(info)) == -1)
|
||||
continue;
|
||||
|
||||
if (ldap_getval_firststring(BrowseLDAPHandle, e,
|
||||
- "printerLocation", location, sizeof(location)) == -1)
|
||||
+ "printer-location", location, sizeof(location)) == -1)
|
||||
continue;
|
||||
|
||||
if (ldap_getval_firststring(BrowseLDAPHandle, e,
|
||||
- "printerMakeAndModel", make_model, sizeof(make_model)) == -1)
|
||||
+ "printer-make-and-model", make_model, sizeof(make_model)) == -1)
|
||||
continue;
|
||||
|
||||
if (ldap_getval_firststring(BrowseLDAPHandle, e,
|
||||
- "printerType", type_num, sizeof(type_num)) == -1)
|
||||
+ "printer-type", type_num, sizeof(type_num)) == -1)
|
||||
continue;
|
||||
|
||||
type = atoi(type_num);
|
||||
|
||||
if (ldap_getval_firststring(BrowseLDAPHandle, e,
|
||||
- "printerURI", uri, sizeof(uri)) == -1)
|
||||
+ "printer-uri", uri, sizeof(uri)) == -1)
|
||||
continue;
|
||||
|
||||
/*
|
||||
@@ -4423,15 +4423,15 @@
|
||||
|
||||
mods[0].mod_type = "cn";
|
||||
mods[0].mod_values = cn_value;
|
||||
- mods[1].mod_type = "printerDescription";
|
||||
+ mods[1].mod_type = "printer-info";
|
||||
mods[1].mod_values = info;
|
||||
- mods[2].mod_type = "printerURI";
|
||||
+ mods[2].mod_type = "printer-uri";
|
||||
mods[2].mod_values = uri;
|
||||
- mods[3].mod_type = "printerLocation";
|
||||
+ mods[3].mod_type = "printer-location";
|
||||
mods[3].mod_values = location;
|
||||
- mods[4].mod_type = "printerMakeAndModel";
|
||||
+ mods[4].mod_type = "printer-make-and-model";
|
||||
mods[4].mod_values = make_model;
|
||||
- mods[5].mod_type = "printerType";
|
||||
+ mods[5].mod_type = "printer-type";
|
||||
mods[5].mod_values = type;
|
||||
mods[6].mod_type = "objectClass";
|
||||
mods[6].mod_values = (char **)objectClass_values;
|
||||
@@ -4454,25 +4454,25 @@
|
||||
* Get the required values from this entry...
|
||||
*/
|
||||
|
||||
- if (ldap_getval_firststring(BrowseLDAPHandle, e, "printerDescription",
|
||||
+ if (ldap_getval_firststring(BrowseLDAPHandle, e, "printer-info",
|
||||
old_info, sizeof(old_info)) == -1)
|
||||
old_info[0] = '\0';
|
||||
|
||||
- if (ldap_getval_firststring(BrowseLDAPHandle, e, "printerLocation",
|
||||
+ if (ldap_getval_firststring(BrowseLDAPHandle, e, "printer-location",
|
||||
old_location, sizeof(old_location)) == -1)
|
||||
old_info[0] = '\0';
|
||||
|
||||
- if (ldap_getval_firststring(BrowseLDAPHandle, e, "printerMakeAndModel",
|
||||
+ if (ldap_getval_firststring(BrowseLDAPHandle, e, "printer-make-and-model",
|
||||
old_make_model, sizeof(old_make_model)) == -1)
|
||||
old_info[0] = '\0';
|
||||
|
||||
- if (ldap_getval_firststring(BrowseLDAPHandle, e, "printerType",
|
||||
+ if (ldap_getval_firststring(BrowseLDAPHandle, e, "printer-type",
|
||||
old_type_string, sizeof(old_type_string)) == -1)
|
||||
old_info[0] = '\0';
|
||||
|
||||
old_type = atoi(old_type_string);
|
||||
|
||||
- if (ldap_getval_firststring(BrowseLDAPHandle, e, "printerURI", old_uri,
|
||||
+ if (ldap_getval_firststring(BrowseLDAPHandle, e, "printer-uri", old_uri,
|
||||
sizeof(old_uri)) == -1)
|
||||
old_info[0] = '\0';
|
||||
|
@ -1,25 +0,0 @@
|
||||
From 484851e02cc5a9b702e0f226f20a0d33325d9dee Mon Sep 17 00:00:00 2001
|
||||
From: Tim Waugh <twaugh@redhat.com>
|
||||
Date: Mon, 14 Sep 2009 17:34:36 +0100
|
||||
Subject: [PATCH] Fixed side_cb function declaration in usb-unix.c.
|
||||
|
||||
---
|
||||
backend/usb-unix.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/backend/usb-unix.c b/backend/usb-unix.c
|
||||
index c47910d..a00f1ad 100644
|
||||
--- a/backend/usb-unix.c
|
||||
+++ b/backend/usb-unix.c
|
||||
@@ -560,7 +560,7 @@ open_device(const char *uri, /* I - Device URI */
|
||||
* 'side_cb()' - Handle side-channel requests...
|
||||
*/
|
||||
|
||||
-static void
|
||||
+static int
|
||||
side_cb(int print_fd, /* I - Print file */
|
||||
int device_fd, /* I - Device file */
|
||||
int snmp_fd, /* I - SNMP socket (unused) */
|
||||
--
|
||||
1.6.4.2
|
||||
|
@ -1,43 +0,0 @@
|
||||
Index: scheduler/select.c
|
||||
===================================================================
|
||||
--- scheduler/select.c (revision 8887)
|
||||
+++ scheduler/select.c (working copy)
|
||||
@@ -454,7 +454,7 @@
|
||||
if (fdptr->read_cb && event->filter == EVFILT_READ)
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
|
||||
- if (fdptr->write_cb && event->filter == EVFILT_WRITE)
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb && event->filter == EVFILT_WRITE)
|
||||
(*(fdptr->write_cb))(fdptr->data);
|
||||
|
||||
release_fd(fdptr);
|
||||
@@ -499,7 +499,8 @@
|
||||
if (fdptr->read_cb && (event->events & (EPOLLIN | EPOLLERR | EPOLLHUP)))
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
|
||||
- if (fdptr->write_cb && (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb &&
|
||||
+ (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
|
||||
(*(fdptr->write_cb))(fdptr->data);
|
||||
|
||||
release_fd(fdptr);
|
||||
@@ -590,7 +591,8 @@
|
||||
if (fdptr->read_cb && (pfd->revents & (POLLIN | POLLERR | POLLHUP)))
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
|
||||
- if (fdptr->write_cb && (pfd->revents & (POLLOUT | POLLERR | POLLHUP)))
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb &&
|
||||
+ (pfd->revents & (POLLOUT | POLLERR | POLLHUP)))
|
||||
(*(fdptr->write_cb))(fdptr->data);
|
||||
|
||||
release_fd(fdptr);
|
||||
@@ -645,7 +647,8 @@
|
||||
if (fdptr->read_cb && FD_ISSET(fdptr->fd, &cupsd_current_input))
|
||||
(*(fdptr->read_cb))(fdptr->data);
|
||||
|
||||
- if (fdptr->write_cb && FD_ISSET(fdptr->fd, &cupsd_current_output))
|
||||
+ if (fdptr->use > 1 && fdptr->write_cb &&
|
||||
+ FD_ISSET(fdptr->fd, &cupsd_current_output))
|
||||
(*(fdptr->write_cb))(fdptr->data);
|
||||
|
||||
release_fd(fdptr);
|
@ -1,20 +0,0 @@
|
||||
#!/sbin/runscript
|
||||
|
||||
depend() {
|
||||
use net
|
||||
@neededservices@
|
||||
before nfs
|
||||
after logger
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting cupsd"
|
||||
start-stop-daemon --start --quiet --exec /usr/sbin/cupsd
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping cupsd"
|
||||
start-stop-daemon --stop --quiet --exec /usr/sbin/cupsd
|
||||
eend $?
|
||||
}
|
@ -1,340 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
# pdftops.pl - wrapper script for xpdf's pdftops utility to act as a CUPS filter
|
||||
# ==============================================================================
|
||||
# 1.00 - 2004-10-05/Bl
|
||||
# Initial implementation
|
||||
# 1.10 - 2006-09-27/Bl
|
||||
# Alternatively, use Adobe Reader in place of Xpdf's pdftops
|
||||
# 1.20 - 2007-12-03/Bl
|
||||
# Safe temp file creation (fix gentoo bug # 201042)
|
||||
#
|
||||
# Copyright: Helge Blischke / SRZ Berlin 2004-2006
|
||||
# This program is free seoftware and governed by the GNU Public License Version 2.
|
||||
#
|
||||
# Description:
|
||||
# ------------
|
||||
# This program wraps the pdftops utility from the xpdf 3.00 (and higher) suite
|
||||
# to behave as a CUPS filter as a replacement for the original pdftops filter.
|
||||
# As an alternative the Adobe Reader may be used.
|
||||
#
|
||||
# The main purpose of this approach is to keep the properties of a PDF to be
|
||||
# printed as undesturbed as possible, especially with respect to page size,
|
||||
# scaling, and positioning.
|
||||
#
|
||||
# The pdftops utility reads a configuration file 'pdftops.conf' or 'acroread.conf',
|
||||
# respectively, in the CUPS_SERVERROOT directory, which must exist but may be empty.
|
||||
# The sample configuration file accompanying this program sets the defaults which
|
||||
# seem plausible to me with respect to high end production printers.
|
||||
#
|
||||
# To give the user highest possible flexibility, this program accepts and
|
||||
# evaluates a set of job attributes special to this filter, which are
|
||||
# described below:
|
||||
#
|
||||
# pdf-pages=<f>,<l>
|
||||
# expands to the -f and -l options of pdftops
|
||||
# or the -start and -end options of acroread, respectively
|
||||
# to select a page range to process. This is independent
|
||||
# of the page-ranges attribute and may significantly
|
||||
# increase throughput when printing page ranges.
|
||||
# Either of these numbers may be omitted.
|
||||
#
|
||||
# pdf-paper=<name>
|
||||
# For pdftops, <name> may be one of "letter", "legal",
|
||||
# "A4", "A3", or "match"; for acroread, the permetted values
|
||||
# are "letter", "legal", "tabloid", "ledger", "executive",
|
||||
# "a3", "a4", "a5", "b4", "b5", respectively (without the
|
||||
# quotes; the names are treated case independent).
|
||||
# In case of acroread, no paper specification is equivalent
|
||||
# to pdsftops's "match".
|
||||
# pdf-paper=<width>x<height>
|
||||
# <name> may be one of letter, legal , A4, A3, or match;
|
||||
# <width> and <height> are the paper width and height
|
||||
# in printers points (1/72 inch). This expands to
|
||||
# either the -paper or the -paperh and -paperw options
|
||||
# of pdftops or the -size option of acroread.
|
||||
#
|
||||
# pdf-opw=<password>
|
||||
# pdf-upw=<password>
|
||||
# expand to the -opw and -upw options of pdftops,
|
||||
# respectively and permit printing of password
|
||||
# protected PDFs.
|
||||
#
|
||||
# pdf-<option> where <option> is one of
|
||||
# level1, level1sep, level2, level2sep, level3, level3sep,
|
||||
# opi, nocrop, expand, noshrink, nocenter.
|
||||
# See the pdftops manpage for a detailed description of
|
||||
# the respective options.
|
||||
# In case of acroread, the options level1, level?sep, opi,
|
||||
# nocrop, noshrink, and nocenter are silently ignored.
|
||||
#
|
||||
# All other pdftops commandline options are refused.
|
||||
#
|
||||
# The return code of the pdftops utility or acroread, if nonzero, is used as the exit code
|
||||
# of this program; error messages of the pdftops utility are only visible
|
||||
# if 'debug' is specified as LogLevel in cupsd.conf.
|
||||
#
|
||||
# NOTE:
|
||||
# -----
|
||||
# This wrapper script has been initially designed to use the original pdftops utility
|
||||
# as a CUPS filter and now extended to alternately use acroread.
|
||||
# But there are situations where you need to be able to select either variant, thus it
|
||||
# is possible to configure the wrapper to both programs but select one of them by default;
|
||||
# the other one then may be selected by command line option:
|
||||
#
|
||||
# use-pdftops selects pdftops
|
||||
# use-acroread selects acroread
|
||||
#
|
||||
# if both are configured (by defining the appropriate configuration file).
|
||||
#
|
||||
|
||||
#
|
||||
# Site specific parameters - modify as needed
|
||||
# ----------------------------------------------------------------------------------
|
||||
$pdftops_path = "/usr/bin/pdftops"; # path to the xpdf utility
|
||||
$acroread_path = "/opt/bin/acroread"; # path to Adobe Reader
|
||||
$default_app = 'use-pdftops'; # the default if both are configured
|
||||
$use_pdftops = 1; # default on gentoo and highly recommended
|
||||
$use_acroread = 0; # not supported/working on gentoo yet, use at your own risk
|
||||
# ----------------------------------------------------------------------------------
|
||||
|
||||
use File::Temp qw( tempfile );
|
||||
|
||||
#
|
||||
# Check which app to use - pdftops or acroread
|
||||
#
|
||||
$rootdir = $ENV{CUPS_SERVERROOT} || die ("ERROR: CUPS server root directory undefined\n");
|
||||
$use_both = $use_pdftops && $use_acroread;
|
||||
|
||||
#
|
||||
# Check the arguments
|
||||
#
|
||||
die ("ERROR: wrong number of arguments\n") if (scalar @ARGV < 5);
|
||||
|
||||
$jobid = $username = $title = $copies = undef;
|
||||
$jobid = shift; # Job ID
|
||||
$username = shift; # Job requesting user name
|
||||
$title = shift; # Job title
|
||||
$copies = shift; # Number of requested copies
|
||||
$options = shift; # Textual representation of job attributes
|
||||
$pdffile = shift; # Pathname of PDF file to process
|
||||
|
||||
if (defined $use_both && $use_both)
|
||||
{
|
||||
my $optstr = " $options ";
|
||||
my $to_use = '';
|
||||
if ($optstr =~ /\s+(use-acroread|use-pdftops)\s+/)
|
||||
{
|
||||
$to_use = $1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$to_use = $default_app;
|
||||
}
|
||||
if ($to_use eq 'use-acroread')
|
||||
{
|
||||
undef $use_pdftops;
|
||||
}
|
||||
elsif ($to_use eq 'use-pdftops')
|
||||
{
|
||||
undef $use_acroread;
|
||||
}
|
||||
else
|
||||
{
|
||||
die ("ERROR: cannot use both pdftops and acroread simultaneously\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
# If we are reading from STDIN, we must copy the input to a temporary file
|
||||
# as the PDF consumer needs a seekable input.
|
||||
if (! defined $pdffile)
|
||||
{
|
||||
my $template = "pdfinXXXXXX";
|
||||
my $tmpdir = $ENV{TMPDIR};
|
||||
my ($bytes, $buffer);
|
||||
my ($tmpfh, $tmpfile) = tempfile ($template, OPEN => 1, DIR => $tmpdir, UNLINK => 0, SUFFIX => '.tmp');
|
||||
while (($bytes = read (STDIN, $buffer, 1024)) > 0)
|
||||
{
|
||||
print $tmpfh "$buffer";
|
||||
}
|
||||
if ($bytes < 0)
|
||||
{
|
||||
close ($tmpfh);
|
||||
unlink $tmpfile;
|
||||
die ("ERROR: pdftops wrapper: $tmpfile: $!\n");
|
||||
}
|
||||
close ($tmpfh);
|
||||
$pdffile = $tmpfile;
|
||||
$delete_input = 1; # for deleting the temp file after converting
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Check the options string for options to modify the bahaviour of the pdftops utility:
|
||||
#
|
||||
@optarr = split (/\s+/, $options);
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
$cmdopt = ""; # do not pass the -cfg argument to the poppler pdftops util
|
||||
# The following are the (parameterless) command line options that may be used to change the
|
||||
# defaults defiend by pdftops.conf
|
||||
$simple = 'level1|level1sep|level2|level2sep|level3|level3sep|opi|nocrop|expand|noshrink|nocenter';
|
||||
%papernames = (
|
||||
'letter' => '-paper letter',
|
||||
'tabloid' => '-paperw 792 -paperh 1224',
|
||||
'ledger' => '-paperw 1224 -paperh 792',
|
||||
'legal' => '-paper legal',
|
||||
'executive' => '-paperw 756 -paperh 522',
|
||||
'a3' => '-paper A3',
|
||||
'a4' => '-paper A4',
|
||||
'a5' => '-paperw 421 -paperh 595',
|
||||
'b4' => '-paperw 709 -paperh 1002',
|
||||
'b5' => '-paperw 501 -paperh 709',
|
||||
'match' => '-paper match'
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
open (CFG, "<$rootdir/acroread.conf") || die ("ERROR: acroread.conf: $!\n");
|
||||
$cmdopt = '-toPostScript';
|
||||
while (<CFG>)
|
||||
{
|
||||
chomp;
|
||||
next if (/^\s*#/); # skip comment lines
|
||||
next if (/^\s*$/); # skip blank lines
|
||||
s/^-\s*//; # discard leading '-' and white space, as it will be generated later
|
||||
s/\s+$//; # discard trailing white space
|
||||
$cmdopt .= " -$_";
|
||||
}
|
||||
close (CFG);
|
||||
$simple = 'level1|level1sep|level2|level2sep|level3|level3sep|opi|nocrop|expand|noshrink|nocenter';
|
||||
%papernames = (
|
||||
'letter' => '-size letter',
|
||||
'tabloid' => '-size tabloid',
|
||||
'ledger' => '-size ledger',
|
||||
'legal' => '-size legal',
|
||||
'executive' => '-size executive',
|
||||
'a3' => '-size a3',
|
||||
'a4' => '-size a4',
|
||||
'a5' => '-size a5',
|
||||
'b4' => '-size b4',
|
||||
'b5' => '-size b5',
|
||||
'match' => '' # this is the default with acroread
|
||||
);
|
||||
}
|
||||
|
||||
foreach my $option (@optarr)
|
||||
{
|
||||
if ($option =~ /^pdf-(.+)$/)
|
||||
{ # We assume this is an option to evaluate
|
||||
my $optkey = $1; # possible pdftops option
|
||||
if ($optkey =~ /^pages=(\d*),(\d*)$/)
|
||||
{
|
||||
# We do this hack here to avoid clashes with the page-ranges atrribute
|
||||
# which is handled by the pstops filter. And we allow one of the numbers
|
||||
# to be omitted.
|
||||
my $first = $1;
|
||||
my $lastp = $2;
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
$cmdopt .= " -f $1" if ($1); # first page
|
||||
$cmdopt .= " -l $2" if ($2); # last page
|
||||
}
|
||||
else
|
||||
{
|
||||
$cmdopt .= " -start $1" if ($1); # first page
|
||||
$cmdopt .= " -end $2" if ($2); # last page
|
||||
}
|
||||
}
|
||||
elsif ($optkey =~ /^paper=(letter|tabloid|ledger|legal|[Aa]3|[Aa]4|[Aa]5|[Bb]4|[Bb]5|match)$/)
|
||||
{
|
||||
# evaluate paper name
|
||||
my $paper = $1;
|
||||
$paper =~ tr/A-Z/a-z/;
|
||||
my $value = $papernames{$paper};
|
||||
$cmdopt .= " $value" if ($value);
|
||||
}
|
||||
elsif ($optkey =~ /^paper=(\d+)x(\d+)$/)
|
||||
{
|
||||
# evaluate paper dimensions
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
$cmdopt .= " -paperw $1 -paperh $2";
|
||||
}
|
||||
else
|
||||
{
|
||||
$cmdopt .= " -size $1" . 'x' . "$2";
|
||||
}
|
||||
}
|
||||
elsif ($optkey =~ /^(o|u)pw=(\S+)$/)
|
||||
{
|
||||
$cmdopt .= " $1" . 'pw ' . $2 if (defined $use_pdftops); # owner/user password
|
||||
}
|
||||
elsif ($optkey =~ /^($simple)$/)
|
||||
{
|
||||
my $thisopt = $1;
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
$cmdopt .= ' -' . $1; # allowed simple options
|
||||
}
|
||||
else
|
||||
{
|
||||
$thisopt =~ s/sep$//; # ignore the ...sep suffix
|
||||
if ($thisopt =~ /level1|opi|nocrop|nocenter/)
|
||||
{
|
||||
$thisopt = '';
|
||||
}
|
||||
elsif ($thisopt eq 'noshrink')
|
||||
{
|
||||
$thisopt = '';
|
||||
$cmdopt =~ s/ -shrink//;
|
||||
}
|
||||
$cmdopt .= " -" . $thisopt if ($thisopt);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
warn ("ERROR: pdftops wrapper: illegal attribute \"pdf-$optkey\"\n");
|
||||
}
|
||||
}
|
||||
# All other attributes are processed elsewhere
|
||||
}
|
||||
#
|
||||
# Complete the command
|
||||
#
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
warn ("ERROR: pdftops-options: $cmdopt\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
warn ("ERROR: acroread-options: $cmdopt\n");
|
||||
}
|
||||
if (defined $use_pdftops)
|
||||
{
|
||||
$rc = system ("$pdftops_path $cmdopt $pdffile -");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (defined $pdffile && $pdffile)
|
||||
{
|
||||
$rc = system ("$acroread_path $cmdopt < $pdffile")
|
||||
}
|
||||
else
|
||||
{
|
||||
$rc = system ("$acroread_path $cmdopt");
|
||||
}
|
||||
}
|
||||
if ($rc)
|
||||
{
|
||||
$ir = $rc & 127;
|
||||
$rc >>= 8;
|
||||
my $temp = (defined $use_pdftops) ? $pdftops_path : $acroread_path;
|
||||
warn ("ERROR: $temp exited with ", ($ir) ? "signal $ir, " : " exit code $rc", "\n");
|
||||
exit $rc;
|
||||
}
|
||||
unlink ($pdffile) if (defined $delete_input); # Delete the temp file if any
|
||||
exit 0;
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<herd>printing</herd>
|
||||
</pkgmetadata>
|
Loading…
Reference in New Issue
Block a user