+# TODO:
+# - build/install java ext ?
+# - perl BRs
#
# 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
%include /usr/lib/rpm/macros.perl
+%define pdir CUPS
Summary: Common Unix Printing System
Summary(pl): Popularny system druku dla Uniksa
Summary(pt_BR): Sistema Unix de Impressão
Name: cups
-Version: 1.1.23
-Release: 3
+Version: 1.2.0
+Release: 0.8
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: a168b0b1c8bb946060e659e1df2927c5
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
+Patch3: %{name}-man_pages_linking.patch
+Patch4: %{name}-nolibs.patch
+Patch5: %{name}-nostrip.patch
+Patch6: %{name}-rpath.patch
+Patch7: %{name}-anonymous_jobs.patch
URL: http://www.cups.org/
BuildRequires: autoconf
BuildRequires: automake
+BuildRequires: dbus-devel
+BuildRequires: openldap-devel
+BuildRequires: openssl-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
+BuildRequires: libstdc++-devel
BuildRequires: libtiff-devel
BuildRequires: openslp-devel
-BuildRequires: openssl-devel >= 0.9.7d
BuildRequires: pam-devel
-%{?with_php:BuildRequires: php-devel}
+%{?with_php:BuildRequires: php-devel >= 4:5.0.0}
BuildRequires: pkgconfig
BuildRequires: rpm-perlprov
-PreReq: %{name}-libs = %{epoch}:%{version}-%{release}
+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
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(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.
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p1
+#patch4 -p1 to check
%patch5 -p1
%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-# wtf?
-#%patch9 -p1
-%patch10 -p1
+#patch7 -p1 to check
%build
%{__aclocal}
%{__autoconf}
%configure \
--libdir=%{_ulibdir} \
+ --enable-ssl \
+ --enable-openssl \
+ --disable-gnutls \
+ --disable-cdsassl \
+ --enable-dbus \
%{?debug:--enable-debug} \
--with-docdir=%{_ulibdir}/%{name}/cgi-bin
%{__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 [ "%{_lib}" != "lib" ] ; then
install -d $RPM_BUILD_ROOT%{_libdir}
mv $RPM_BUILD_ROOT%{_ulibdir}/*.so* $RPM_BUILD_ROOT%{_libdir}
- mv $RPM_BUILD_ROOT%{_ulibdir}/*.a $RPM_BUILD_ROOT%{_libdir}
+ #mv $RPM_BUILD_ROOT%{_ulibdir}/*.a $RPM_BUILD_ROOT%{_libdir}
fi
%if %{with php}
%{__make} -C scripting/php install \
- PHPDIR="$RPM_BUILD_ROOT`php-config --extension-dir`"
+ PHPDIR="%{__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}
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}.conf
+
+# windows drivers can be put there.
+install -d $RPM_BUILD_ROOT%{_datadir}/cups/drivers
+
+touch $RPM_BUILD_ROOT/var/cache/cups/{job,remote}.cache
+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 size mtime md5) /etc/pam.d/*
+%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 size mtime md5) %{_sysconfdir}/%{name}/classes.conf
-%attr(640,root,lp) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/%{name}/cupsd.conf
-%attr(640,root,lp) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/%{name}/printers.conf
-%attr(640,root,lp) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/%{name}/*.convs
-%attr(640,root,lp) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/%{name}/*.types
+/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(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
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/logrotate.d/%{name}
+%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) %{_bindir}/cupsdisable
+#%attr(755,root,root) %{_bindir}/cupsenable
%dir %{_ulibdir}/cups
%dir %{_ulibdir}/cups/*
%attr(755,root,root) %{_ulibdir}/cups/*/*
%exclude %{_ulibdir}/cups/backend/serial
%exclude %{_ulibdir}/cups/backend/parallel
%attr(755,root,root) %{_sbindir}/cupsd
-%{_datadir}/cups
-%{_mandir}/man1/backend.1*
+%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(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.po
+%lang(ja) %{_datadir}/locale/ja/cups_ja.po
+#%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.po
+#%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
+%dir %attr(710,root,lp) /var/spool/cups
+%dir %attr(755,root,lp) /var/run/cups
+%dir %attr(511,lp,sys) /var/run/cups/certs
+%dir %attr(775,root,lp) /var/cache/cups
+%attr(640,root,lp) %ghost /var/cache/cups/job.cache
+%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
%files clients
%defattr(644,root,root,755)
-%attr(644,root,lp) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/%{name}/client.conf
+#%attr(644,root,lp) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/client.conf
%attr(755,root,root) %{_bindir}/cancel
%attr(755,root,root) %{_bindir}/lp
%attr(755,root,root) %{_bindir}/lpoptions
%{_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*
-%files static
-%defattr(644,root,root,755)
-%{_libdir}/*.a
+#%files static
+#%defattr(644,root,root,755)
+#%{_libdir}/*.a
%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