%bcond_without static_libs # don't build static library
#
%include /usr/lib/rpm/macros.perl
+%include /usr/lib/rpm/macros.java
%define pdir CUPS
%ifarch i386 i486 ppc
Summary(pl.UTF-8): Ogólny system druku dla Uniksa
Summary(pt_BR.UTF-8): Sistema Unix de Impressão
Name: cups
-Version: 1.3.5
-Release: 1
+Version: 1.3.7
+Release: 2
Epoch: 1
-License: GPL/LGPL
+License: LGPL v2 (libraries), GPL v2 (the rest) + openssl exception
Group: Applications/Printing
Source0: http://ftp.easysw.com/pub/cups/%{version}/%{name}-%{version}-source.tar.bz2
-# Source0-md5: 355705c528e9a8d0d439da15454d79a6
+# Source0-md5: db4a45a17104f10f3ee599d88267c9e5
Source1: %{name}.init
Source2: %{name}.pamd
Source3: %{name}.logrotate
Patch7: %{name}-direct_usb.patch
Patch8: %{name}-satisfy-any.patch
Patch9: %{name}-no-polluted-krb5config.patch
+Patch10: %{name}-java-fix.patch
+Patch11: %{name}-verbose-compilation.patch
+Patch12: %{name}-CVE-2008-1722.patch
URL: http://www.cups.org/
BuildRequires: acl-devel
BuildRequires: autoconf
%{?with_gnutls:BuildRequires: gnutls-devel}
%{?with_java:BuildRequires: jar}
%{?with_java:BuildRequires: jdk}
+%{?with_java:BuildRequires: jpackage-utils}
BuildRequires: krb5-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libstdc++-devel
BuildRequires: libtiff-devel
-BuildRequires: openldap-devel >= 2.4.6
+BuildRequires: openldap-devel
BuildRequires: openslp-devel
%{!?with_gnutls:BuildRequires: openssl-devel}
BuildRequires: pam-devel
%{?with_php:BuildRequires: php-devel >= 4:5.0.0}
BuildRequires: pkgconfig
+%{?with_java:BuildRequires: rpm-javaprov}
BuildRequires: rpm-perlprov
BuildRequires: rpmbuild(macros) >= 1.344
Requires(post,preun): /sbin/chkconfig
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Requires: pam >= 0.77.3
Requires: rc-scripts
-Obsoletes: printingdaemon
Provides: printingdaemon
+Obsoletes: printingdaemon
Conflicts: ghostscript < 7.05.4
Conflicts: logrotate < 3.7-4
+# pstoraster:
+Suggests: cups-filter-pstoraster
+# Contains imagetops...:
+Suggests: kdelibs
+# pdftops:
+Suggests: poppler-progs
+# pstops:
+Suggests: psutils
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _ulibdir %{_prefix}/lib
Summary: Common Unix Printing System Libraries
Summary(pl.UTF-8): Biblioteki dla CUPS
Summary(pt_BR.UTF-8): Sistema Unix de Impressão - bibliotecas para uso em clientes cups
+License: LGPL v2 + openssl exception
Group: Libraries
Provides: %{name}-libs = %{epoch}:%{version}-%{release}
Obsoletes: cups-libs
%package clients
Summary: Common Unix Printing System Clients
Summary(pl.UTF-8): Aplikacje klienckie dla CUPS
+License: GPL v2 + openssl exception
Group: Applications/Printing
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
-Obsoletes: printingclient
Provides: printingclient
+Obsoletes: printingclient
%description clients
Common Unix Printing System Clients.
Summary: Common Unix Printing System Libraries - images manipulation
Summary(pl.UTF-8): Biblioteki dla CUPS - obsługa formatów graficznych
Summary(pt_BR.UTF-8): Sistema Unix de Impressão - bibliotecas para uso em clientes cups
+License: LGPL v2 + openssl exception
Group: Libraries
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
Obsoletes: libcups1
Summary: Common Unix Printing System development files
Summary(pl.UTF-8): Ogólny system druku dla Uniksa - pliki nagłówkowe
Summary(pt_BR.UTF-8): Sistema Unix de Impressão - ambiente de desenvolvimento
+License: LGPL v2 + openssl exception
Group: Development/Libraries
Requires: %{name}-image-lib = %{epoch}:%{version}-%{release}
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
Summary: Common Unix Printing System static libraries
Summary(pl.UTF-8): Ogólny system druku dla Uniksa - biblioteki statyczne
Summary(pt_BR.UTF-8): Common Unix Printing System - bibliotecas estáticas
+License: LGPL v2 + openssl exception
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
%package -n perl-cups
Summary: Perl module for CUPS
Summary(pl.UTF-8): Moduł Perla CUPS
+License: GPL v2 + openssl exception
Group: Development/Languages/Perl
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
%package -n php-cups
Summary: PHP module for CUPS
Summary(pl.UTF-8): Moduł PHP CUPS
+License: GPL v2 + openssl exception
Group: Development/Languages/PHP
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
%{?requires_php_extension}
%package -n java-cups
Summary: CUPS java classes
Summary(pl.UTF-8): Klasy javy CUPS
+License: GPL v2 + openssl exception
Group: Development/Languages/Java
-Requires: jre
+Requires: jpackage-utils
%description -n java-cups
Common Unix Printing System Java classes.
%description -n java-cups -l pl.UTF-8
Klasy javy do ogólnego systemu druku dla Uniksa.
+%package -n java-cups-javadoc
+Summary: Online manual for %{name}
+Summary(pl.UTF-8): Dokumentacja online do %{name}
+License: GPL v2 + openssl exception
+Group: Documentation
+Requires: jpackage-utils
+
+%description -n java-cups-javadoc
+Documentation for %{name}.
+
+%description -n java-cups-javadoc -l pl.UTF-8
+Dokumentacja do %{name}.
+
+%description -n java-cups-javadoc -l fr.UTF-8
+Javadoc pour %{name}.
+
%package backend-usb
Summary: USB backend for CUPS
Summary(pl.UTF-8): Backend USB dla CUPS-a
+License: GPL v2 + openssl exception
Group: Applications/Printing
Requires: %{name} = %{epoch}:%{version}-%{release}
%package backend-serial
Summary: Serial port backend for CUPS
Summary(pl.UTF-8): Backend obsługujący porty szeregowe dla CUPS-a
+License: GPL v2 + openssl exception
Group: Applications/Printing
Requires: %{name} = %{epoch}:%{version}-%{release}
%package backend-parallel
Summary: Parallel port backend for CUPS
Summary(pl.UTF-8): Backend obsługujący porty równoległe dla CUPS-a
+License: GPL v2 + openssl exception
Group: Applications/Printing
Requires: %{name} = %{epoch}:%{version}-%{release}
%package lpd
Summary: LPD compatibility support for CUPS print server
Summary(pl.UTF-8): Wsparcie dla LPD w serwerze wydruków CUPS
+License: GPL v2 + openssl exception
Group: Applications/Printing
-Requires: rc-inetd
Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: rc-inetd
%description lpd
LPD compatibility support for CUPS print server.
%patch7 -p1
%patch8 -p1
%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
%build
%{__aclocal} -I config-scripts
--libdir=%{_ulibdir} \
--enable-shared \
--with-cups-user=lp \
- --with-cups-group=sys \
+ --with-cups-group=lp \
--with-system-groups=sys \
--with-printcap=/etc/printcap \
%{?with_static_libs:--enable-static} \
%if %{with java}
cd scripting/java
rm -rf classes/* cups.jar
-javac -d classes src/com/easysw/cups/*.java
+%javac -d classes src/com/easysw/cups/*.java
cd classes
-jar cvf ../cups.jar com/easysw/cups
+%jar cvf ../cups.jar com/easysw/cups
cd ../../..
%endif
%{__make} -C scripting/php install \
PHPDIR=$RPM_BUILD_ROOT%{php_extensiondir}
install -d $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d
-cat > $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/phpcups.ini << EOF
+cat > $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/phpcups.ini << 'EOF'
; Enable phpcups extension module
extension=phpcups.so
EOF
%if %{with java}
install -d $RPM_BUILD_ROOT{%{_datadir}/java,%{_examplesdir}/java-cups-%{version}}
-install scripting/java/cups.jar $RPM_BUILD_ROOT%{_datadir}/java
+# jars
+cp -a scripting/java/cups.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
+ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
+# examples
cp -a scripting/java/{CUPSPrinter.java,example} $RPM_BUILD_ROOT%{_examplesdir}/java-cups-%{version}
+# javadoc
+install -d $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
+cp -a scripting/java/docs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
+ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink
%endif
install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
install %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/%{name}
install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/cups/mailto.conf
+install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/cups/mailto.conf
sed -e 's|__ULIBDIR__|%{_ulibdir}|g' %{SOURCE5} > $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/cups-lpd
gzip -9nf $RPM_BUILD_ROOT%{_datadir}/%{name}/model/*.ppd
%php_webserver_restart
fi
+%post -n java-cups-javadoc
+ln -nfs %{name}-%{version} %{_javadocdir}/%{name}
+
%post lpd
%service -q rc-inetd reload
%attr(755,root,root) %{_sbindir}/lpinfo
%attr(755,root,root) %{_sbindir}/lpmove
%attr(755,root,root) %{_sbindir}/reject
-%{_datadir}/applications/cups.desktop
-%{_datadir}/icons/hicolor/*/apps/cups.png
+%{_desktopdir}/cups.desktop
+%{_iconsdir}/hicolor/*/apps/cups.png
%{_mandir}/man1/cancel.1*
%{_mandir}/man1/lp.1*
%{_mandir}/man1/lpoptions.1*
%if %{with java}
%files -n java-cups
%defattr(644,root,root,755)
-%doc scripting/java/docs/*
-%{_datadir}/java/cups.jar
+%{_javadir}/*.jar
%{_examplesdir}/java-cups-%{version}
+
+%files -n java-cups-javadoc
+%defattr(644,root,root,755)
+%{_javadocdir}/%{name}-%{version}
+%ghost %{_javadocdir}/%{name}
%endif
%files backend-usb