-#
-# Conditional build:
-%bcond_without php # don't build PHP extension
-%bcond_without perl # don't build Perl extension
-#
# TODO:
-# - register php module
# - build/install java ext ?
# - perl BRs
+# - remove obsolete /etc/cups/certs (trigger?)
+#
+# Conditional build:
+%bcond_with gnutls # use GNU TLS for SSL/TLS support (instead of OpenSSL)
+%bcond_without php # don't build PHP extension
+%bcond_without perl # don't build Perl extension
+%bcond_without static_libs # don't build static library
+#
%include /usr/lib/rpm/macros.perl
+%define pdir CUPS
Summary: Common Unix Printing System
-Summary(pl): Popularny system druku dla Uniksa
+Summary(pl): Ogólny system druku dla Uniksa
Summary(pt_BR): Sistema Unix de Impressão
Name: cups
-Version: 1.1.23
-Release: 5
+Version: 1.2.1
+Release: 3
Epoch: 1
License: GPL/LGPL
Group: Applications/Printing
Source0: http://ftp.easysw.com/pub/cups/%{version}/%{name}-%{version}-source.tar.bz2
-# Source0-md5: 4ce09b1dce09b6b9398af0daae9adf63
-#Source0: http://ftp.easysw.com/pub/cups/test/%{name}-%{version}%{_suf}-source.tar.bz2
+# Source0-md5: f804995e3f469bdefedc033510f6e6a5
Source1: %{name}.init
Source2: %{name}.pamd
Source3: %{name}.logrotate
Patch0: %{name}-config.patch
Patch1: %{name}-lp-lpr.patch
Patch2: %{name}-options.patch
-Patch3: %{name}-ENCRYPTIONtxt.patch
-Patch4: %{name}-man_pages_linking.patch
-Patch5: %{name}-nolibs.patch
-Patch6: %{name}-nostrip.patch
-Patch7: %{name}-rpath.patch
-Patch8: %{name}-gcc34.patch
-Patch9: %{name}-tmpdir.patch
-Patch10: %{name}-gcc4.patch
-Patch11: %{name}-CAN-2005-2097.patch
-Patch12: %{name}-anonymous_jobs.patch
+Patch3: %{name}-man_pages_linking.patch
+Patch4: %{name}-nostrip.patch
+Patch5: %{name}-jobs-header_tmpl_pl.patch
URL: http://www.cups.org/
+BuildRequires: acl-devel
BuildRequires: autoconf
BuildRequires: automake
+BuildRequires: dbus-devel
+%{?with_gnutls:BuildRequires: gnutls-devel}
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libstdc++-devel
BuildRequires: libtiff-devel
+BuildRequires: openldap-devel
BuildRequires: openslp-devel
-BuildRequires: openssl-devel >= 0.9.7d
+%{!?with_gnutls:BuildRequires: openssl-devel}
BuildRequires: pam-devel
-%{?with_php:BuildRequires: php-devel}
+%{?with_php:BuildRequires: php-devel >= 4:5.0.0}
BuildRequires: pkgconfig
BuildRequires: rpm-perlprov
+BuildRequires: rpmbuild(macros) >= 1.268
Requires(post,preun): /sbin/chkconfig
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Requires: pam >= 0.77.3
-Conflicts: ghostscript < 7.05.4
+Requires: rc-scripts
Obsoletes: LPRng
Obsoletes: lpr
+Conflicts: ghostscript < 7.05.4
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _ulibdir %{_prefix}/lib
+%if %{with php}
+%define _php_configdir /etc/php
+%define _php_extensiondir %(php-config --extension-dir)
+%endif
+
%description
CUPS provides a portable printing layer for UNIX-based operating
systems. It has been developed by Easy Software Products to promote a
%description -l pl
CUPS dostarcza standardowy poziom drukowania dla systemów uniksowych.
CUPS u¿ywa protoko³u IPP - Internet Printint Protocol jako podstawy do
-zarz±dzania zadaniami i kolejkami druku.
+zarz±dzania zadaniami i kolejkami druku. W ograniczonym zakresie
+obs³ugiwane s± tak¿e protoko³y LPD (Line Printer Daemon), SMB (Server
+Message Block) i AppSocket (znany tak¿e jako JetDirect). CUPS
+udostêpnia przegl±danie drukarek sieciowych i opcje drukowania oparte
+na PPD (PostScript Printer Description) do obs³ugi rzeczywistych
+drukarek.
%description -l pt_BR
O sistema Unix de impressão (CUPS) fornece uma camada de impressão
Summary(pt_BR): Sistema Unix de Impressão - bibliotecas para uso em clientes cups
Group: Libraries
Provides: %{name}-libs = %{epoch}:%{version}-%{release}
-Obsoletes: %{name}-libs
+Obsoletes: cups-libs
Obsoletes: libcups1
%description lib
Summary: Common Unix Printing System Clients
Summary(pl): Aplikacje klienckie dla CUPS
Group: Applications/Printing
-Provides: %{name}-clients = %{epoch}:%{version}-%{release}
+Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Conflicts: LPRng
%description clients
%package devel
Summary: Common Unix Printing System development files
-Summary(pl): Popularny System Druku dla Uniksa, pliki nag³ówkowe
+Summary(pl): Ogólny system druku dla Uniksa - pliki nag³ówkowe
Summary(pt_BR): Sistema Unix de Impressão - ambiente de desenvolvimento
Group: Development/Libraries
Requires: %{name}-image-lib = %{epoch}:%{version}-%{release}
Common Unix Printing System development files.
%description devel -l pl
-Popularny System Druku dla Uniksa, pliki nag³ówkowe.
+Ogólny system druku dla Uniksa - pliki nag³ówkowe.
%description devel -l pt_BR
Este pacote é um adicional que contem um ambiente de desenvolvimento
%package static
Summary: Common Unix Printing System static libraries
-Summary(pl): Popularny System Druku dla Uniksa, biblioteki statyczne
+Summary(pl): Ogólny system druku dla Uniksa - biblioteki statyczne
Summary(pt_BR): Common Unix Printing System - bibliotecas estáticas
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
Common Unix Printing System static libraries.
%description static -l pl
-Popularny System Druku dla Uniksa, biblioteki statyczne.
+Ogólny system druku dla Uniksa - biblioteki statyczne.
%description static -l pt_BR
Bibliotecas estáticas para desenvolvimento de programas que usam as
Perl module for Common Unix Printing System.
%description -n perl-cups -l pl
-Modu³ Perla do Popularnego Systemu Druku dla Uniksa.
+Modu³ Perla do ogólnego systemu druku dla Uniksa.
%package -n php-cups
Summary: PHP module for CUPS
Summary(pl): Modu³ PHP CUPS
Group: Development/Languages/PHP
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+Requires: php-common >= 4:5.0.0
%description -n php-cups
PHP module for Common Unix Printing System.
%description -n php-cups -l pl
-Modu³ PHP do Popularnego Systemu Druku dla Uniksa.
+Modu³ PHP do ogólnego systemu druku dla Uniksa.
%package backend-usb
Summary: USB backend for CUPS
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-# wtf?
-#%patch9 -p1
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
%build
-%{__aclocal}
+%{__aclocal} -I config-scripts
%{__autoconf}
%configure \
--libdir=%{_ulibdir} \
+ --enable-shared \
+ %{?with_static_libs:--enable-static} \
+ --enable-ssl \
+ --%{?with_gnutls:dis}%{!?with_gnutls:en}able-openssl \
+ --%{!?with_gnutls:dis}%{?with_gnutls:en}able-gnutls \
+ --disable-cdsassl \
+ --enable-dbus \
%{?debug:--enable-debug} \
- --with-docdir=%{_ulibdir}/%{name}/cgi-bin
+ --with-docdir=%{_ulibdir}/%{name}/cgi-bin \
+ %{?with_php:--with-php}
+
%{__make}
%{__perl} -pi -e 's#-I\.\.\/\.\.#-I../.. -I../../cups#g' scripting/php/Makefile
-%{?with_php:%{__make} -C scripting/php}
+%{?with_php:%{__make} -C scripting/php PHPCONFIG=%{_bindir}/php-config}
%if %{with perl}
cd scripting/perl
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{{rc.d/init.d,pam.d,logrotate.d},security} \
+install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,pam.d,logrotate.d,security} \
$RPM_BUILD_ROOT/var/log/{,archiv/}cups
%{__make} install \
%if %{with php}
%{__make} -C scripting/php install \
- PHPDIR="$RPM_BUILD_ROOT`php-config --extension-dir`"
+ PHPDIR=$RPM_BUILD_ROOT%{_php_extensiondir}
+install -d $RPM_BUILD_ROOT%{_php_configdir}/conf.d
+cat > $RPM_BUILD_ROOT%{_php_configdir}/conf.d/phpcups.ini << EOF
+; Enable phpcups extension module
+extension=phpcups.so
+EOF
%endif
%if %{with perl}
gzip -9nf $RPM_BUILD_ROOT%{_datadir}/%{name}/model/*.ppd
-# for internal HTTP browser:
-cp doc/*.html $RPM_BUILD_ROOT%{_ulibdir}/%{name}/cgi-bin
-cp doc/*.css $RPM_BUILD_ROOT%{_ulibdir}/%{name}/cgi-bin
-cp doc/images/* $RPM_BUILD_ROOT%{_ulibdir}/%{name}/cgi-bin/images
-
touch $RPM_BUILD_ROOT/var/log/cups/{access_log,error_log,page_log}
touch $RPM_BUILD_ROOT/etc/security/blacklist.cups
+touch $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{classes,printers,client}.conf
+
+# windows drivers can be put there.
+install -d $RPM_BUILD_ROOT%{_datadir}/cups/drivers
+
+touch $RPM_BUILD_ROOT/var/cache/cups/help.index
+touch $RPM_BUILD_ROOT/var/cache/cups/{job,remote}.cache
+touch $RPM_BUILD_ROOT/var/cache/cups/ppds.dat
+install -d $RPM_BUILD_ROOT/etc/cups/ssl
+
+# post-strip can't work on readonly files
+chmod u+w $RPM_BUILD_ROOT%{perl_vendorarch}/auto/CUPS/CUPS.so
# check-files cleanup
rm -rf $RPM_BUILD_ROOT%{_mandir}/{,es/,fr/}cat?
+rm -rf $RPM_BUILD_ROOT/etc/{init.d,rc?.d}/*
+rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/cupsd.conf.default
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/chkconfig --add cups
-if [ -f /var/lock/subsys/cups ]; then
- /etc/rc.d/init.d/cups restart 1>&2
-else
- echo "Run \"/etc/rc.d/init.d/cups start\" to start cups daemon."
-fi
+%service cups restart "cups daemon"
%preun
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/cups ]; then
- /etc/rc.d/init.d/cups stop 1>&2
- fi
+ %service cups stop
/sbin/chkconfig --del cups
fi
%post image-lib -p /sbin/ldconfig
%postun image-lib -p /sbin/ldconfig
+%post -n php-cups
+[ ! -f /etc/apache/conf.d/??_mod_php.conf ] || %service -q apache restart
+[ ! -f /etc/httpd/httpd.conf/??_mod_php.conf ] || %service -q httpd restart
+
+%postun -n php-cups
+if [ "$1" = 0 ]; then
+ [ ! -f /etc/apache/conf.d/??_mod_php.conf ] || %service -q apache restart
+ [ ! -f /etc/httpd/httpd.conf/??_mod_php.conf ] || %service -q httpd restart
+fi
+
%files
%defattr(644,root,root,755)
#%doc *.gz doc/*.html doc/*.css doc/images
%doc *.txt
%attr(640,root,root) %config %verify(not md5 mtime size) /etc/pam.d/*
%attr(754,root,root) /etc/rc.d/init.d/cups
-%dir %{_sysconfdir}/%{name}
-%attr(640,root,lp) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/classes.conf
+/etc/dbus-1/system.d/cups.conf
+%dir %attr(755,root,lp) %{_sysconfdir}/%{name}
+%attr(600,root,lp) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/classes.conf
%attr(640,root,lp) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/cupsd.conf
-%attr(640,root,lp) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/printers.conf
+%attr(600,root,lp) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/printers.conf
%attr(640,root,lp) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.convs
%attr(640,root,lp) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.types
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.cups
-%dir %{_sysconfdir}/%{name}/certs
+%dir %attr(700,root,lp) %{_sysconfdir}/%{name}/ssl
%dir %{_sysconfdir}/%{name}/interfaces
-%dir %{_sysconfdir}/%{name}/ppd
+%dir %attr(755,root,lp) %{_sysconfdir}/%{name}/ppd
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
%attr(4755,lp,root) %{_bindir}/lppasswd
%attr(755,root,root) %{_bindir}/cupstestppd
-%attr(755,root,root) %{_bindir}/disable
-%attr(755,root,root) %{_bindir}/enable
+%attr(755,root,root) %{_bindir}/cupstestdsc
+%attr(755,root,root) %{_sbindir}/cupsd
+
%dir %{_ulibdir}/cups
%dir %{_ulibdir}/cups/*
-%attr(755,root,root) %{_ulibdir}/cups/*/*
+%{_ulibdir}/cups/cgi-bin/help
+%{_ulibdir}/cups/cgi-bin/images
+%attr(755,root,root) %{_ulibdir}/cups/cgi-bin/*.cgi
+%{_ulibdir}/cups/cgi-bin/*.css
+%{_ulibdir}/cups/cgi-bin/*.html
+%{_ulibdir}/cups/cgi-bin/*.ico
+%{_ulibdir}/cups/cgi-bin/*.txt
+%lang(es) %{_ulibdir}/cups/cgi-bin/es
+%lang(ja) %{_ulibdir}/cups/cgi-bin/ja
+%lang(pl) %{_ulibdir}/cups/cgi-bin/pl
+%lang(sv) %{_ulibdir}/cups/cgi-bin/sv
+
%exclude %{_ulibdir}/cups/backend/usb
%exclude %{_ulibdir}/cups/backend/serial
%exclude %{_ulibdir}/cups/backend/parallel
-%attr(755,root,root) %{_sbindir}/cupsd
-%{_datadir}/cups
-%{_mandir}/man1/backend.1*
+%attr(755,root,root) %{_ulibdir}/cups/backend/*
+%attr(755,root,root) %{_ulibdir}/cups/daemon/*
+%attr(755,root,root) %{_ulibdir}/cups/filter/*
+%attr(755,root,root) %{_ulibdir}/cups/monitor/*
+%attr(755,root,root) %{_ulibdir}/cups/notifier/*
+
+%dir %{_datadir}/cups
+%{_datadir}/cups/banners
+%{_datadir}/cups/charmaps
+%{_datadir}/cups/charsets
+%{_datadir}/cups/data
+%{_datadir}/cups/drivers
+%{_datadir}/cups/fonts
+%{_datadir}/cups/model
+%dir %{_datadir}/cups/templates
+%{_datadir}/cups/templates/*.tmpl
+%lang(es) %{_datadir}/cups/templates/es
+%lang(ja) %{_datadir}/cups/templates/ja
+%lang(pl) %{_datadir}/cups/templates/pl
+%lang(sv) %{_datadir}/cups/templates/sv
+%{_mandir}/man7/backend.7*
%{_mandir}/man1/cupstestppd.1*
-%{_mandir}/man1/filter.1*
+%{_mandir}/man1/cupstestdsc.1*
+%{_mandir}/man7/filter.7*
%{_mandir}/man1/lppasswd.1*
%{_mandir}/man[58]/*
-%lang(fr) %{_mandir}/fr/man1/backend.1*
-%lang(fr) %{_mandir}/fr/man1/cupstestppd.1*
-%lang(fr) %{_mandir}/fr/man1/filter.1*
-%lang(fr) %{_mandir}/fr/man1/lppasswd.1*
-%lang(fr) %{_mandir}/fr/man[58]/*
-%lang(es) %{_mandir}/es/man1/backend.1*
-%lang(es) %{_mandir}/es/man1/cupstestppd.1*
-%lang(es) %{_mandir}/es/man1/filter.1*
-%lang(es) %{_mandir}/es/man1/lppasswd.1*
-%lang(es) %{_mandir}/es/man[58]/*
-%{_datadir}/locale/C/cups_C
-%lang(be) %{_datadir}/locale/be/cups_be
-%lang(cs) %{_datadir}/locale/cs/cups_cs
-%lang(de) %{_datadir}/locale/de/cups_de
-%{_datadir}/locale/en/cups_en
-%lang(en_US) %{_datadir}/locale/en_US/cups_en_US
-%lang(es) %{_datadir}/locale/es/cups_es
-%lang(fr) %{_datadir}/locale/fr/cups_fr
-%lang(he) %{_datadir}/locale/he/cups_he
-%lang(it) %{_datadir}/locale/it/cups_it
-%lang(ru) %{_datadir}/locale/ru_RU/cups_ru_RU
-%lang(sv) %{_datadir}/locale/sv/cups_sv
-%lang(uk) %{_datadir}/locale/uk/cups_uk
-%lang(uk) %{_datadir}/locale/uk_UA/cups_uk_UA
-%lang(zh_CN) %{_datadir}/locale/zh_CN/cups_zh_CN
-/var/spool/cups
+%lang(es) %{_datadir}/locale/es/cups_es.po
+%lang(ja) %{_datadir}/locale/ja/cups_ja.po
+%lang(pl) %{_datadir}/locale/pl/cups_pl.po
+%lang(sv) %{_datadir}/locale/sv/cups_sv.po
+
+%dir %attr(775,root,lp) /var/cache/cups
+%dir %attr(755,root,lp) /var/run/cups
+%dir %attr(511,lp,sys) /var/run/cups/certs
+%dir %attr(710,root,lp) /var/spool/cups
+%dir %attr(1770,root,lp) /var/spool/cups/tmp
+%attr(600,lp,lp) %ghost /var/cache/cups/help.index
+%attr(640,root,lp) %ghost /var/cache/cups/job.cache
+%attr(600,lp,lp) %ghost /var/cache/cups/ppds.dat
+%attr(640,root,lp) %ghost /var/cache/cups/remote.cache
%attr(750,root,logs) %dir /var/log/archiv/cups
%attr(750,root,logs) %dir /var/log/cups
%attr(640,root,logs) %ghost /var/log/cups/access_log
%{_mandir}/man1/lpr.1*
%{_mandir}/man1/lprm.1*
%{_mandir}/man1/lpstat.1*
-%lang(fr) %{_mandir}/fr/man1/cancel.1*
-%lang(fr) %{_mandir}/fr/man1/lp.1*
-%lang(fr) %{_mandir}/fr/man1/lpoptions.1*
-%lang(fr) %{_mandir}/fr/man1/lpq.1*
-%lang(fr) %{_mandir}/fr/man1/lpr.1*
-%lang(fr) %{_mandir}/fr/man1/lprm.1*
-%lang(fr) %{_mandir}/fr/man1/lpstat.1*
-%lang(es) %{_mandir}/es/man1/lp.1*
-%lang(es) %{_mandir}/es/man1/lpoptions.1*
-%lang(es) %{_mandir}/es/man1/lpq.1*
-%lang(es) %{_mandir}/es/man1/lpr.1*
-%lang(es) %{_mandir}/es/man1/lprm.1*
-%lang(es) %{_mandir}/es/man1/lpstat.1*
+#%lang(fr) %{_mandir}/fr/man1/cancel.1*
+#%lang(fr) %{_mandir}/fr/man1/lp.1*
+#%lang(fr) %{_mandir}/fr/man1/lpoptions.1*
+#%lang(fr) %{_mandir}/fr/man1/lpq.1*
+#%lang(fr) %{_mandir}/fr/man1/lpr.1*
+#%lang(fr) %{_mandir}/fr/man1/lprm.1*
+#%lang(fr) %{_mandir}/fr/man1/lpstat.1*
+#%lang(es) %{_mandir}/es/man1/lp.1*
+#%lang(es) %{_mandir}/es/man1/lpoptions.1*
+#%lang(es) %{_mandir}/es/man1/lpq.1*
+#%lang(es) %{_mandir}/es/man1/lpr.1*
+#%lang(es) %{_mandir}/es/man1/lprm.1*
+#%lang(es) %{_mandir}/es/man1/lpstat.1*
%files image-lib
%defattr(644,root,root,755)
%{_libdir}/lib*.so
%{_mandir}/man1/cups-config*
%{_mandir}/man3/*
-%lang(fr) %{_mandir}/fr/man1/cups-config*
-%lang(es) %{_mandir}/es/man1/cups-config*
+#%lang(fr) %{_mandir}/fr/man1/cups-config*
+#%lang(es) %{_mandir}/es/man1/cups-config*
+%if %{with static_libs}
%files static
%defattr(644,root,root,755)
%{_libdir}/*.a
+%endif
%if %{with perl}
%files -n perl-cups
%if %{with php}
%files -n php-cups
%defattr(644,root,root,755)
-%attr(755,root,root) %(php-config --extension-dir)/*
+%doc scripting/php/README
+%attr(755,root,root) %{_php_extensiondir}/*
+%config(noreplace) %verify(not md5 mtime size) %{_php_configdir}/conf.d/phpcups.ini
%endif
%files backend-usb