diff options
author | Timo Gurr <tgurr@gentoo.org> | 2011-01-13 01:59:49 +0000 |
---|---|---|
committer | Timo Gurr <tgurr@gentoo.org> | 2011-01-13 01:59:49 +0000 |
commit | 3f0c9437e94935857b3c0388cc3699914c463106 (patch) | |
tree | da6de43cc2b6d43b8dbcd35103c2f63769d4da91 /net-print | |
parent | EAPI3 (diff) | |
download | gentoo-2-3f0c9437e94935857b3c0388cc3699914c463106.tar.gz gentoo-2-3f0c9437e94935857b3c0388cc3699914c463106.tar.bz2 gentoo-2-3f0c9437e94935857b3c0388cc3699914c463106.zip |
Version bump, fixing bug #313555 and #350406. Remove old.
(Portage version: 2.2.0_alpha15/cvs/Linux x86_64)
Diffstat (limited to 'net-print')
-rw-r--r-- | net-print/cups/ChangeLog | 11 | ||||
-rw-r--r-- | net-print/cups/cups-1.4.5.ebuild | 235 | ||||
-rw-r--r-- | net-print/cups/cups-1.4.6.ebuild (renamed from net-print/cups/cups-1.4.4-r2.ebuild) | 6 | ||||
-rw-r--r-- | net-print/cups/files/cups-1.4.6-force-gnutls.patch | 93 | ||||
-rw-r--r-- | net-print/cups/files/cups-1.4.6-serialize-gnutls.patch | 113 |
5 files changed, 219 insertions, 239 deletions
diff --git a/net-print/cups/ChangeLog b/net-print/cups/ChangeLog index 0e926265144e..bacd3e367e93 100644 --- a/net-print/cups/ChangeLog +++ b/net-print/cups/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-print/cups -# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-print/cups/ChangeLog,v 1.402 2010/12/01 13:03:55 scarabeus Exp $ +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-print/cups/ChangeLog,v 1.403 2011/01/13 01:59:49 tgurr Exp $ + +*cups-1.4.6 (13 Jan 2011) + + 13 Jan 2011; Timo Gurr <tgurr@gentoo.org> -cups-1.4.4-r2.ebuild, + -cups-1.4.5.ebuild, +cups-1.4.6.ebuild, +files/cups-1.4.6-force-gnutls.patch, + +files/cups-1.4.6-serialize-gnutls.patch: + Version bump, fixing bug #313555 and #350406. Remove old. *cups-1.3.11-r4 (01 Dec 2010) diff --git a/net-print/cups/cups-1.4.5.ebuild b/net-print/cups/cups-1.4.5.ebuild deleted file mode 100644 index 68f5bc3d5627..000000000000 --- a/net-print/cups/cups-1.4.5.ebuild +++ /dev/null @@ -1,235 +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.5.ebuild,v 1.1 2010/12/01 12:34:34 scarabeus Exp $ - -EAPI=3 - -PYTHON_DEPEND="python? 2:2.5" - -inherit autotools eutils flag-o-matic multilib pam perl-module python versionator java-pkg-opt-2 - -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-libs +threads +tiff +usb X xinetd" - -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 - -RDEPEND=" - app-text/libpaper - dev-libs/libgcrypt - acl? ( - kernel_linux? ( - sys-apps/acl - sys-apps/attr - ) - ) - dbus? ( sys-apps/dbus ) - java? ( >=virtual/jre-1.6 ) - jpeg? ( virtual/jpeg:0 ) - kerberos? ( virtual/krb5 ) - ldap? ( net-nds/openldap[ssl?,gnutls?] ) - pam? ( virtual/pam ) - perl? ( dev-lang/perl ) - php? ( dev-lang/php ) - png? ( >=media-libs/libpng-1.4.3 ) - slp? ( >=net-libs/openslp-1.0.4 ) - ssl? ( - gnutls? ( net-libs/gnutls ) - !gnutls? ( >=dev-libs/openssl-0.9.8g ) - ) - tiff? ( >=media-libs/tiff-3.5.5 ) - usb? ( virtual/libusb:0 ) - X? ( x11-misc/xdg-utils ) - xinetd? ( sys-apps/xinetd ) - !net-print/cupsddk -" - -DEPEND="${RDEPEND} - dev-util/pkgconfig -" - -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. -RESTRICT="test" - -S="${WORKDIR}/${MY_P}" - -pkg_setup() { - enewgroup lp - enewuser lp -1 -1 -1 lp - enewgroup lpadmin 106 - - # python 3 is no-go - python_set_active_version 2 - python_pkg_setup -} - -src_prepare() { - # create a missing symlink to allow https printing via IPP, bug #217293 - epatch "${FILESDIR}/${PN}-1.4.0-backend-https.patch" - # various build time fixes - epatch "${FILESDIR}/${PN}-1.4.4-dont-compress-manpages.patch" - epatch "${FILESDIR}/${PN}-1.4.4-fix-install-perms.patch" - epatch "${FILESDIR}/${PN}-1.4.4-nostrip.patch" - epatch "${FILESDIR}/${PN}-1.4.4-php-destdir.patch" - epatch "${FILESDIR}/${PN}-1.4.4-perl-includes.patch" - - AT_M4DIR=config-scripts eaclocal - eautoconf -} - -src_configure() { - export DSOFLAGS="${LDFLAGS}" - - # locale support - strip-linguas ${LANGS} - if [ -z "${LINGUAS}" ] ; then - export LINGUAS=none - fi - - local myconf - if use ssl || use gnutls ; then - myconf+=" - $(use_enable gnutls) - $(use_enable !gnutls openssl) - " - else - 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-libs static) \ - $(use_enable threads) \ - $(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 \ - --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 || die - sed -i -e 's:#define CUPS_SERVERBIN.*:#define CUPS_SERVERBIN "/usr/libexec/cups":' config.h || die - sed -i -e 's:cups_serverbin=.*:cups_serverbin=/usr/libexec/cups:' cups-config || die -} - -src_compile() { - emake || die "emake failed" - - if use perl ; then - cd "${S}"/scripting/perl - perl-module_src_prep - perl-module_src_compile - fi - - if use php ; then - cd "${S}"/scripting/php - emake || die "emake php failed" - fi -} - -src_install() { - emake BUILDROOT="${D}" install || die "emake install failed" - dodoc {CHANGES,CREDITS,README}.txt || die "dodoc install failed" - - if use perl ; then - cd "${S}"/scripting/perl - perl-module_src_install - fixlocalpod - fi - - if use php ; then - cd "${S}"/scripting/php - emake DESTDIR="${D}" install || die "emake install for php bindings failed" - fi - - # 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+=" dbus" - [[ -n ${neededservices} ]] && neededservices="need${neededservices}" - cp "${FILESDIR}"/cupsd.init.d "${T}"/cupsd || die - sed -i \ - -e "s/@neededservices@/$neededservices/" \ - "${T}"/cupsd || die - 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 || die - # 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 || die ; } - # write permission for file owner (root), bug #296221 - fperms u+w /etc/xinetd.d/cups-lpd || die "fperms failed" - 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 -} diff --git a/net-print/cups/cups-1.4.4-r2.ebuild b/net-print/cups/cups-1.4.6.ebuild index b1d35a65500e..adc12d8831a2 100644 --- a/net-print/cups/cups-1.4.4-r2.ebuild +++ b/net-print/cups/cups-1.4.6.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2010 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-print/cups/cups-1.4.4-r2.ebuild,v 1.3 2010/09/12 17:19:23 scarabeus Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-print/cups/cups-1.4.6.ebuild,v 1.1 2011/01/13 01:59:49 tgurr Exp $ EAPI=3 @@ -89,6 +89,8 @@ src_prepare() { epatch "${FILESDIR}/${PN}-1.4.4-nostrip.patch" epatch "${FILESDIR}/${PN}-1.4.4-php-destdir.patch" epatch "${FILESDIR}/${PN}-1.4.4-perl-includes.patch" + epatch "${FILESDIR}/${PN}-1.4.6-force-gnutls.patch" + epatch "${FILESDIR}/${PN}-1.4.6-serialize-gnutls.patch" AT_M4DIR=config-scripts eaclocal eautoconf diff --git a/net-print/cups/files/cups-1.4.6-force-gnutls.patch b/net-print/cups/files/cups-1.4.6-force-gnutls.patch new file mode 100644 index 000000000000..06daeb321499 --- /dev/null +++ b/net-print/cups/files/cups-1.4.6-force-gnutls.patch @@ -0,0 +1,93 @@ +Source: http://pkgs.fedoraproject.org/gitweb/?p=cups.git;a=blob;f=cups-force-gnutls.patch;h=85adaa8bdcc013e5401fffe74306a5fe644cf088;hb=HEAD +Reason: Force the use of gnutls despite thread-safety concerns (Gentoo bug #350406) +Upstream: http://cups.org/str.php?L3605 + +diff -up cups-1.4.4/config-scripts/cups-ssl.m4.force-gnutls cups-1.4.4/config-scripts/cups-ssl.m4 +--- cups-1.4.4/config-scripts/cups-ssl.m4.force-gnutls 2010-09-15 16:49:22.343502552 +0100 ++++ cups-1.4.4/config-scripts/cups-ssl.m4 2010-09-15 16:49:42.347502595 +0100 +@@ -65,23 +65,21 @@ if test x$enable_ssl != xno; then + if $PKGCONFIG --exists gnutls; then + if test "x$have_pthread" = xyes; then + AC_MSG_WARN([The current version of GNU TLS cannot be made thread-safe.]) +- else +- have_ssl=1 +- SSLLIBS=`$PKGCONFIG --libs gnutls` +- SSLFLAGS=`$PKGCONFIG --cflags gnutls` +- AC_DEFINE(HAVE_SSL) +- AC_DEFINE(HAVE_GNUTLS) + fi ++ have_ssl=1 ++ SSLLIBS=`$PKGCONFIG --libs gnutls` ++ SSLFLAGS=`$PKGCONFIG --cflags gnutls` ++ AC_DEFINE(HAVE_SSL) ++ AC_DEFINE(HAVE_GNUTLS) + elif test "x$LIBGNUTLSCONFIG" != x; then + if test "x$have_pthread" = xyes; then + AC_MSG_WARN([The current version of GNU TLS cannot be made thread-safe.]) +- else +- have_ssl=1 +- SSLLIBS=`$LIBGNUTLSCONFIG --libs` +- SSLFLAGS=`$LIBGNUTLSCONFIG --cflags` +- AC_DEFINE(HAVE_SSL) +- AC_DEFINE(HAVE_GNUTLS) + fi ++ have_ssl=1 ++ SSLLIBS=`$LIBGNUTLSCONFIG --libs` ++ SSLFLAGS=`$LIBGNUTLSCONFIG --cflags` ++ AC_DEFINE(HAVE_SSL) ++ AC_DEFINE(HAVE_GNUTLS) + fi + + if test $have_ssl = 1; then +diff -up cups-1.4.4/configure.force-gnutls cups-1.4.4/configure +--- cups-1.4.4/configure.force-gnutls 2010-06-17 19:25:47.000000000 +0100 ++++ cups-1.4.4/configure 2010-09-15 16:50:01.689503165 +0100 +@@ -17542,36 +17542,34 @@ fi + if test "x$have_pthread" = xyes; then + { echo "$as_me:$LINENO: WARNING: The current version of GNU TLS cannot be made thread-safe." >&5 + echo "$as_me: WARNING: The current version of GNU TLS cannot be made thread-safe." >&2;} +- else +- have_ssl=1 +- SSLLIBS=`$PKGCONFIG --libs gnutls` +- SSLFLAGS=`$PKGCONFIG --cflags gnutls` +- cat >>confdefs.h <<\_ACEOF ++ fi ++ have_ssl=1 ++ SSLLIBS=`$PKGCONFIG --libs gnutls` ++ SSLFLAGS=`$PKGCONFIG --cflags gnutls` ++ cat >>confdefs.h <<\_ACEOF + #define HAVE_SSL 1 + _ACEOF + +- cat >>confdefs.h <<\_ACEOF ++ cat >>confdefs.h <<\_ACEOF + #define HAVE_GNUTLS 1 + _ACEOF + +- fi + elif test "x$LIBGNUTLSCONFIG" != x; then + if test "x$have_pthread" = xyes; then + { echo "$as_me:$LINENO: WARNING: The current version of GNU TLS cannot be made thread-safe." >&5 + echo "$as_me: WARNING: The current version of GNU TLS cannot be made thread-safe." >&2;} +- else +- have_ssl=1 +- SSLLIBS=`$LIBGNUTLSCONFIG --libs` +- SSLFLAGS=`$LIBGNUTLSCONFIG --cflags` +- cat >>confdefs.h <<\_ACEOF ++ fi ++ have_ssl=1 ++ SSLLIBS=`$LIBGNUTLSCONFIG --libs` ++ SSLFLAGS=`$LIBGNUTLSCONFIG --cflags` ++ cat >>confdefs.h <<\_ACEOF + #define HAVE_SSL 1 + _ACEOF + +- cat >>confdefs.h <<\_ACEOF ++ cat >>confdefs.h <<\_ACEOF + #define HAVE_GNUTLS 1 + _ACEOF + +- fi + fi + + if test $have_ssl = 1; then diff --git a/net-print/cups/files/cups-1.4.6-serialize-gnutls.patch b/net-print/cups/files/cups-1.4.6-serialize-gnutls.patch new file mode 100644 index 000000000000..bfe9f5e18a33 --- /dev/null +++ b/net-print/cups/files/cups-1.4.6-serialize-gnutls.patch @@ -0,0 +1,113 @@ +Source: http://pkgs.fedoraproject.org/gitweb/?p=cups.git;a=blob;f=cups-serialize-gnutls.patch;h=cdd82cb95574801bf714364a585e31eb05191750;hb=HEAD +Reason: Perform locking for gnutls and avoid libgcrypt's broken locking (Gentoo bug #350406) +Upstream: http://cups.org/str.php?L3605 + +diff -up cups-1.4.4/cups/http.c.serialize-gnutls cups-1.4.4/cups/http.c +--- cups-1.4.4/cups/http.c.serialize-gnutls 2010-09-17 13:37:01.858871762 +0100 ++++ cups-1.4.4/cups/http.c 2010-09-17 13:55:22.579871934 +0100 +@@ -149,7 +149,7 @@ static int http_write_ssl(http_t *http, + + # ifdef HAVE_GNUTLS + # ifdef HAVE_PTHREAD_H +-GCRY_THREAD_OPTION_PTHREAD_IMPL; ++static pthread_mutex_t gnutls_lock; + # endif /* HAVE_PTHREAD_H */ + + # elif defined(HAVE_LIBSSL) && defined(HAVE_PTHREAD_H) +@@ -1231,7 +1231,7 @@ httpInitialize(void) + */ + + # ifdef HAVE_PTHREAD_H +- gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); ++ pthread_mutex_init(&gnutls_lock, NULL); + # endif /* HAVE_PTHREAD_H */ + + /* +@@ -2228,6 +2228,7 @@ _httpWait(http_t *http, /* I - Connect + if (SSL_pending((SSL *)(http->tls))) + return (1); + # elif defined(HAVE_GNUTLS) ++ /* lock already held here... */ + if (gnutls_record_check_pending(((http_tls_t *)(http->tls))->session)) + return (1); + # elif defined(HAVE_CDSASSL) +@@ -2294,6 +2295,8 @@ int /* O - 1 if data is available, 0 + httpWait(http_t *http, /* I - Connection to server */ + int msec) /* I - Milliseconds to wait */ + { ++ int ret; ++ + /* + * First see if there is data in the buffer... + */ +@@ -2318,7 +2321,17 @@ httpWait(http_t *http, /* I - Connecti + * If not, check the SSL/TLS buffers and do a select() on the connection... + */ + +- return (_httpWait(http, msec, 1)); ++#if defined(HAVE_SSL) && defined(HAVE_GNUTLS) && defined(HAVE_PTHREAD_H) ++ pthread_mutex_lock(&gnutls_lock); ++#endif ++ ++ ret = _httpWait(http, msec, 1); ++ ++#if defined(HAVE_SSL) && defined(HAVE_GNUTLS) && defined(HAVE_PTHREAD_H) ++ pthread_mutex_unlock(&gnutls_lock); ++#endif ++ ++ return (ret); + } + + +@@ -2769,7 +2782,9 @@ http_read_ssl(http_t *http, /* I - Conn + ssize_t result; /* Return value */ + + ++ pthread_mutex_lock(&gnutls_lock); + result = gnutls_record_recv(((http_tls_t *)(http->tls))->session, buf, len); ++ pthread_mutex_unlock(&gnutls_lock); + + if (result < 0 && !errno) + { +@@ -3085,6 +3100,7 @@ http_setup_ssl(http_t *http) /* I - Con + return (-1); + } + ++ pthread_mutex_lock(&gnutls_lock); + gnutls_certificate_allocate_credentials(credentials); + + gnutls_init(&(conn->session), GNUTLS_CLIENT); +@@ -3104,9 +3120,11 @@ http_setup_ssl(http_t *http) /* I - Con + free(credentials); + free(conn); + ++ pthread_mutex_unlock(&gnutls_lock); + return (-1); + } + ++ pthread_mutex_unlock(&gnutls_lock); + conn->credentials = credentials; + + # elif defined(HAVE_CDSASSL) +@@ -3196,9 +3214,11 @@ http_shutdown_ssl(http_t *http) /* I - + conn = (http_tls_t *)(http->tls); + credentials = (gnutls_certificate_client_credentials *)(conn->credentials); + ++ pthread_mutex_lock(&gnutls_lock); + gnutls_bye(conn->session, GNUTLS_SHUT_RDWR); + gnutls_deinit(conn->session); + gnutls_certificate_free_credentials(*credentials); ++ pthread_mutex_unlock(&gnutls_lock); + free(credentials); + free(conn); + +@@ -3445,7 +3465,9 @@ http_write_ssl(http_t *http, /* I - + # elif defined(HAVE_GNUTLS) + ssize_t result; /* Return value */ + ++ pthread_mutex_lock(&gnutls_lock); + result = gnutls_record_send(((http_tls_t *)(http->tls))->session, buf, len); ++ pthread_mutex_unlock(&gnutls_lock); + + if (result < 0 && !errno) + { |