#
# Conditional build:
%bcond_with gnutls # use GNU TLS for SSL/TLS support (instead of OpenSSL)
-%bcond_without dnssd # DNS Service Discovery support (obsoleted by Avahi patch)
-%bcond_with avahi # DNS Service Discovery support via Avahi
+%bcond_with dnssd # DNS Service Discovery support (obsoleted by Avahi patch)
+%bcond_without avahi # DNS Service Discovery support via Avahi
%bcond_without ldap # do not include LDAP support
%bcond_without gssapi # do not include GSSAPI support
+%bcond_without php # don't build PHP extension/support in web interface
+%bcond_without perl # don't build Perl extension/support in web interface
%bcond_without python # don't build Python support in web interface
%bcond_without slp # do not include SLP support
%bcond_without static_libs # don't build static library
%define pdir CUPS
+%include /usr/lib/rpm/macros.perl
Summary(pl.UTF-8): Ogólny system druku dla Uniksa
Summary(pt_BR.UTF-8): Sistema Unix de Impressão
Name: cups
-Version: 1.5.1
-Release: 0.1
+Version: 1.5.4
+Release: 3
Epoch: 1
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: 7e7026f5b6392deae46f889129b196a7
+# Source0-md5: de3006e5cf1ee78a9c6145ce62c4e982
Source1: %{name}.init
Source2: %{name}.pamd
Source3: %{name}.logrotate
Patch10: %{name}-peercred.patch
Patch11: %{name}-usb.patch
Patch12: %{name}-desktop.patch
+Patch13: %{name}-systemd-socket.patch
+Patch14: add-ipp-backend-of-cups-1.4.patch
+Patch15: reactivate_recommended_driver.patch
+Patch16: read-embedded-options-from-incoming-postscript-and-add-to-ipp-attrs.patch
# avahi patches from fedora
Patch100: %{name}-avahi-1-config.patch
Patch101: %{name}-avahi-2-backend.patch
BuildRequires: libpng-devel
BuildRequires: libstdc++-devel
BuildRequires: libtiff-devel
-BuildRequires: libusb-compat-devel
-BuildRequires: libusb-devel
+BuildRequires: libusb-devel >= 1.0
%{?with_ldap:BuildRequires: openldap-devel}
%{?with_slp:BuildRequires: openslp-devel}
%{!?with_gnutls:BuildRequires: openssl-devel}
BuildRequires: pam-devel
+%{?with_php:BuildRequires: php-devel >= 4:5.0.0}
BuildRequires: pkgconfig
-BuildRequires: rpmbuild(macros) >= 1.344
+BuildRequires: rpm-perlprov
+BuildRequires: rpmbuild(macros) >= 1.641
+BuildRequires: systemd-devel
Requires(post,preun): /sbin/chkconfig
+Requires(post,preun,postun): systemd-units >= 38
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Requires: openssl-tools
Requires: pam >= 0.77.3
+Requires: perl-modules
Requires: rc-scripts
+Requires: systemd-units >= 38
Suggests: ImageMagick-coder-pdf
Suggests: cups-filter-pstoraster
Suggests: ghostscript-cups
Bibliotecas estáticas para desenvolvimento de programas que usam as
bibliotecas do CUPS.
+%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}
+
+%description -n perl-cups
+Perl module for Common Unix Printing System.
+
+%description -n perl-cups -l pl.UTF-8
+Moduł Perla do ogólnego systemu druku dla Uniksa.
+
+%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}
+Requires: /etc/php/conf.d
+Requires: php(core) >= 5.0.0
+
+%description -n php-cups
+PHP module for Common Unix Printing System.
+
+%description -n php-cups -l pl.UTF-8
+Moduł PHP do ogólnego systemu druku dla Uniksa.
+
%package backend-usb
Summary: USB backend for CUPS
Summary(pl.UTF-8): Backend USB dla CUPS-a
# why it hasn't been merged for so long (and why no other distro uses it)
#%patch11 -p1
%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
%if %{with avahi}
%patch100 -p1
--with-optim=-Wno-format-y2k \
%{?with_dnssd:--with-dnssd-libs=x} \
%{?with_dnssd:--with-dnssd-includes=x} \
- %{?with_python:--with-python=%{_bindir}/python}
+ %{?with_perl:--with-perl=%{_bindir}/perl} \
+ %{?with_php:--with-php=%{_bindir}/php} \
+ %{?with_python:--with-python=%{_bindir}/python} \
+ --with-systemdsystemunitdir=%{systemdunitdir}
%{__make} %{?debug:OPTIONS="-DDEBUG"}
+%{__perl} -pi -e 's#-I\.\.\/\.\.#-I../.. -I../../cups#g' scripting/php/Makefile
+%{?with_php:%{__make} -C scripting/php PHPCONFIG=%{_bindir}/php-config}
+
+%if %{with perl}
+cd scripting/perl
+%{__perl} -pi -e 's@-lcups@-L../../cups $1@' Makefile.PL
+%{__perl} Makefile.PL \
+ INSTALLDIRS=vendor \
+ OPTIMIZE="%{rpmcflags} -I../.."
+# avoid rpaths generated by MakeMaker
+%{__perl} -pi -e 's@LD_RUN_PATH="\$\(LD_RUN_PATH\)" @@' Makefile
+
+%{__make}
+cd ../..
+%endif
+
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,pam.d,logrotate.d,modprobe.d,security,sysconfig/rc-inetd} \
$RPM_BUILD_ROOT/var/run/cups \
$RPM_BUILD_ROOT/var/log/{,archive/}cups \
- $RPM_BUILD_ROOT/usr/lib/tmpfiles.d
+ $RPM_BUILD_ROOT{%{systemdunitdir},%{systemdtmpfilesdir}}
%{__make} install \
BUILDROOT=$RPM_BUILD_ROOT \
%endif
fi
+%if %{with avahi}
+ln -s %{_ulibdir}/cups/backend/dnssd $RPM_BUILD_ROOT%{_ulibdir}/cups/backend/mdns
+%endif
+
+%if %{with php}
+%{__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'
+; Enable phpcups extension module
+extension=phpcups.so
+EOF
+%endif
+
+%if %{with perl}
+%{__make} -C scripting/perl install \
+ DESTDIR=$RPM_BUILD_ROOT
+%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%{_sysconfdir}/cups/mailto.conf
sed -e 's|__ULIBDIR__|%{_ulibdir}|g' %{SOURCE5} > $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/cups-lpd
install %{SOURCE6} $RPM_BUILD_ROOT/etc/modprobe.d/cups.conf
-install %{SOURCE7} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
+install %{SOURCE7} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
touch $RPM_BUILD_ROOT/var/log/cups/{access_log,error_log,page_log}
touch $RPM_BUILD_ROOT/etc/security/blacklist.cups
/sbin/chkconfig --add cups
%service cups restart "cups daemon"
/sbin/rmmod usblp > /dev/null 2>&1 || :
+%systemd_post cups.service cups.socket cups.path
%preun
if [ "$1" = "0" ]; then
%service cups stop
/sbin/chkconfig --del cups
fi
+%systemd_preun cups.service cups.socket cups.path
+
+%postun
+%systemd_reload
+
+%triggerpostun -- cups < 1.5.2-1
+%systemd_trigger cups.service cups.socket cups.path
%post lib -p /sbin/ldconfig
%postun lib -p /sbin/ldconfig
%post image-lib -p /sbin/ldconfig
%postun image-lib -p /sbin/ldconfig
+%post -n php-cups
+%php_webserver_restart
+
+%postun -n php-cups
+if [ "$1" = 0 ]; then
+ %php_webserver_restart
+fi
+
%post lpd
%service -q rc-inetd reload
%attr(754,root,root) /etc/rc.d/init.d/cups
/etc/dbus-1/system.d/cups.conf
/etc/modprobe.d/cups.conf
+%{systemdunitdir}/cups.service
+%{systemdunitdir}/cups.socket
+%{systemdunitdir}/cups.path
+%{systemdtmpfilesdir}/%{name}.conf
%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(600,root,lp) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/printers.conf
%lang(de) %{_ulibdir}/cups/cgi-bin/de
%lang(es) %{_ulibdir}/cups/cgi-bin/es
%lang(eu) %{_ulibdir}/cups/cgi-bin/eu
+%lang(fr) %{_ulibdir}/cups/cgi-bin/fr
+%lang(hu) %{_ulibdir}/cups/cgi-bin/hu
%lang(id) %{_ulibdir}/cups/cgi-bin/id
%lang(it) %{_ulibdir}/cups/cgi-bin/it
%lang(ja) %{_ulibdir}/cups/cgi-bin/ja
%lang(pl) %{_ulibdir}/cups/cgi-bin/pl
%lang(ru) %{_ulibdir}/cups/cgi-bin/ru
+%if %{with avahi}
%attr(755,root,root) %{_ulibdir}/cups/backend/dnssd
+%attr(755,root,root) %{_ulibdir}/cups/backend/mdns
+%endif
%attr(755,root,root) %{_ulibdir}/cups/backend/http
%attr(755,root,root) %{_ulibdir}/cups/backend/https
%attr(755,root,root) %{_ulibdir}/cups/backend/ipp
+%attr(755,root,root) %{_ulibdir}/cups/backend/ipp14
%attr(755,root,root) %{_ulibdir}/cups/backend/ipps
%attr(755,root,root) %{_ulibdir}/cups/backend/lpd
-%attr(755,root,root) %{_ulibdir}/cups/backend/mdns
%attr(755,root,root) %{_ulibdir}/cups/backend/snmp
%attr(755,root,root) %{_ulibdir}/cups/backend/socket
%attr(755,root,root) %{_ulibdir}/cups/daemon/cups-deviced
%lang(de) %{_datadir}/cups/templates/de
%lang(es) %{_datadir}/cups/templates/es
%lang(eu) %{_datadir}/cups/templates/eu
+%lang(fr) %{_datadir}/cups/templates/fr
+%lang(hu) %{_datadir}/cups/templates/hu
%lang(id) %{_datadir}/cups/templates/id
%lang(it) %{_datadir}/cups/templates/it
%lang(ja) %{_datadir}/cups/templates/ja
%{_mandir}/man8/cupsfilter.8*
%{_mandir}/man8/lp*
-/usr/lib/tmpfiles.d/%{name}.conf
%dir %attr(775,root,lp) /var/cache/cups
%dir %attr(755,root,lp) /var/lib/cups
%dir %attr(511,lp,sys) /var/lib/cups/certs
%lang(eu) %{_datadir}/locale/eu/cups_eu.po
%lang(fi) %{_datadir}/locale/fi/cups_fi.po
%lang(fr) %{_datadir}/locale/fr/cups_fr.po
+%lang(hu) %{_datadir}/locale/hu/cups_hu.po
%lang(id) %{_datadir}/locale/id/cups_id.po
%lang(it) %{_datadir}/locale/it/cups_it.po
%lang(ko) %{_datadir}/locale/ko/cups_ko.po
%{_libdir}/libcupsppdc.a
%endif
+%if %{with perl}
+%files -n perl-cups
+%defattr(644,root,root,755)
+%{perl_vendorarch}/CUPS.pm
+%dir %{perl_vendorarch}/auto/CUPS
+%{perl_vendorarch}/auto/CUPS/CUPS.bs
+%{perl_vendorarch}/auto/CUPS/autosplit.ix
+%attr(755,root,root) %{perl_vendorarch}/auto/CUPS/CUPS.so
+%{_mandir}/man3/CUPS.3pm*
+%endif
+
+%if %{with php}
+%files -n php-cups
+%defattr(644,root,root,755)
+%doc scripting/php/README
+%attr(755,root,root) %{php_extensiondir}/phpcups.so
+%config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/phpcups.ini
+%endif
+
%files backend-usb
%defattr(644,root,root,755)
%attr(755,root,root) %{_ulibdir}/cups/backend/usb