#
# Conditional build:
-%bcond_with gnutls # use GNU TLS for SSL/TLS support (instead of OpenSSL)
-%bcond_with dnssd # DNS Service Discovery support (obsoleted by Avahi patch)
+%bcond_without gnutls # use GNU TLS for SSL/TLS support
+%bcond_with dnssd # DNS Service Discovery support via dns_sd API (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 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
Summary(pl.UTF-8): Ogólny system druku dla Uniksa
Summary(pt_BR.UTF-8): Sistema Unix de Impressão
Name: cups
-Version: 1.7.0
+Version: 2.1.3
Release: 1
Epoch: 1
-License: LGPL v2 (libraries), GPL v2 (the rest) + openssl exception
+License: LGPL v2 (libraries), GPL v2 (the rest)
Group: Applications/Printing
Source0: http://www.cups.org/software/%{version}/%{name}-%{version}-source.tar.bz2
-# Source0-md5: 5ab496a2ce27017fcdb3d7ec4818a75a
+# Source0-md5: 62b8fafd590e75f72316915790b0850a
Source1: %{name}.init
Source2: %{name}.pamd
Source3: %{name}.logrotate
Source5: %{name}-lpd.inetd
Source6: %{name}-modprobe.conf
Source7: %{name}.tmpfiles
-# svn diff http://svn.easysw.com/public/cups/tags/release-1.4.3/ http://svn.easysw.com/public/cups/branches/branch-1.4/ > cups-branch.diff
-# + drop config-scripts/cups-common.m4 change
Patch0: %{name}-config.patch
Patch2: %{name}-options.patch
Patch3: %{name}-man_pages_linking.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
-Patch17: %{name}-use-ipp1.1.patch
Patch18: %{name}-final-content-type.patch
# avahi patches from fedora
Patch100: %{name}-avahi-address.patch
BuildRequires: acl-devel
BuildRequires: autoconf >= 2.60
BuildRequires: automake
-%{?with_dnssd:BuildRequires: avahi-compat-libdns_sd-devel}
-%{?with_avahi:BuildRequires: avahi-devel}
+%{?with_dnssd:BuildRequires: avahi-compat-libdns_sd-devel}
+%{?with_avahi:BuildRequires: avahi-devel}
BuildRequires: dbus-devel
BuildRequires: glibc-headers
%{?with_gnutls:BuildRequires: gnutls-devel}
%{?with_gssapi:BuildRequires: heimdal-devel}
-BuildRequires: libjpeg-devel
BuildRequires: libpaper-devel
-BuildRequires: libpng-devel
BuildRequires: libstdc++-devel
-BuildRequires: libtiff-devel
BuildRequires: libusb-devel >= 1.0
-%{?with_ldap:BuildRequires: openldap-devel}
-%{?with_slp:BuildRequires: openslp-devel}
-%{!?with_gnutls:BuildRequires: openssl-devel}
BuildRequires: pam-devel
BuildRequires: pkgconfig
BuildRequires: rpmbuild(macros) >= 1.641
BuildRequires: systemd-devel
+BuildRequires: zlib-devel
Requires(post,preun): /sbin/chkconfig
Requires(post,preun,postun): systemd-units >= 38
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
-Requires: cups-filters
-Requires: openssl-tools
Requires: pam >= 0.77.3
Requires: rc-scripts
Requires: systemd-units >= 38
Suggests: ImageMagick-coder-pdf
-Suggests: cups-filter-pstoraster
+Suggests: cups-filters
Suggests: poppler-progs
Provides: printingdaemon
-Obsoletes: backend-parallel
-Obsoletes: backend-serial
-Obsoletes: perl-cups
-Obsoletes: php-cups
Obsoletes: printingdaemon
Conflicts: ghostscript < 7.05.4
+Conflicts: hplip < 3.13.11
Conflicts: logrotate < 3.7-4
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
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
+License: LGPL v2
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
+License: GPL v2
Group: Applications/Printing
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Provides: printingclient
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
+License: LGPL v2
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
+License: LGPL v2
Group: Development/Libraries
Requires: %{name}-image-lib = %{epoch}:%{version}-%{release}
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
# for libcups
%{?with_gnutls:Requires: gnutls-devel}
%{?with_gssapi:Requires: heimdal-devel}
-%{!?with_gnutls:Requires: openssl-devel}
Requires: zlib-devel
# for libcupsimage
Requires: libjpeg-devel
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
+License: LGPL v2
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
%package backend-usb
Summary: USB backend for CUPS
Summary(pl.UTF-8): Backend USB dla CUPS-a
-License: GPL v2 + openssl exception
+License: GPL v2
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
+License: GPL v2
Group: Applications/Printing
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: rc-inetd
%patch14 -p1
%patch15 -p1
%patch16 -p1
-%patch17 -p1
%patch18 -p1
%if %{with avahi}
%{__autoconf}
%configure \
--libdir=%{_ulibdir} \
+ --enable-acl \
+ --enable-avahi%{!?with_avahi:=no} \
--disable-cdsassl \
+ --enable-dbus \
+ %{?debug:--enable-debug} \
+ --enable-dnssd%{!?with_dnssd:=no} \
+ --enable-gnutls%{!?with_gnutls:=no} \
+ --enable-gssapi%{!?with_gssapi:=no} \
--enable-libpaper \
--enable-libusb \
- --enable-acl \
- --enable-dbus \
- --enable-image \
- --enable-bannertops \
- --enable-texttops \
--enable-shared \
--enable-ssl \
- %{?debug:--enable-debug} \
- --%{!?with_avahi:dis}%{?with_avahi:en}able-avahi \
- --%{!?with_dnssd:dis}%{?with_dnssd:en}able-dnssd \
- --%{!?with_ldap:dis}%{?with_ldap:en}able-ldap \
- --%{!?with_gssapi:dis}%{?with_gssapi:en}able-gssapi \
- --%{!?with_gnutls:dis}%{?with_gnutls:en}able-gnutls \
- --%{?with_gnutls:dis}%{!?with_gnutls:en}able-openssl \
- --%{!?with_slp:dis}%{?with_slp:en}able-slp \
%{?with_static_libs:--enable-static} \
- --with-cups-user=lp \
--with-cups-group=lp \
+ --with-cups-user=lp \
--with-system-groups=sys \
- --with-printcap=/etc/printcap \
- --with-dbusdir=/etc/dbus-1 \
- --with-docdir=%{_ulibdir}/%{name}/cgi-bin \
--with-config-file-perm=0640 \
--with-log-file-perm=0640 \
- --with-optim=-Wno-format-y2k \
+ --with-dbusdir=/etc/dbus-1 \
+ --with-docdir=%{_ulibdir}/%{name}/cgi-bin \
+ --with-printcap=/etc/printcap \
%{?with_dnssd:--with-dnssd-libs=x} \
%{?with_dnssd:--with-dnssd-includes=x} \
+ --with-optim=-Wno-format-y2k \
%{?with_python:--with-python=%{_bindir}/python} \
- --with-systemdsystemunitdir=%{systemdunitdir}
+ --with-systemd=%{systemdunitdir}
%{__make} %{?debug:OPTIONS="-DDEBUG"}
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
+touch $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{classes,printers}.conf
+
+cat >$RPM_BUILD_ROOT%{_sysconfdir}/%{name}/client.conf <<'EOF'
+# Encryption Always
+# ServerName enter.server.IP.or.name
+EOF
# windows drivers can be put there.
install -d $RPM_BUILD_ROOT%{_datadir}/cups/drivers
ln -s accept $RPM_BUILD_ROOT%{_sbindir}/enable
ln -s accept $RPM_BUILD_ROOT%{_sbindir}/disable
-# check-files cleanup
-%{__rm} -r $RPM_BUILD_ROOT/etc/{init.d,rc?.d}
-
-# shipped in cups-filters
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/cups/banners
-
%clean
rm -rf $RPM_BUILD_ROOT
%post
+# Deal with config migration due to CVE-2012-5519 (STR #4223)
+_keywords="^\(AccessLog\|CacheDir\|ConfigFilePerm\|\
+DataDir\|DocumentRoot\|ErrorLog\|FatalErrors\|\
+FileDevice\|FontPath\|Group\|LogFilePerm\|\
+LPDConfigFile\|PageLog\|Printcap\|PrintcapFormat\|\
+RemoteRoot\|RequestRoot\|ServerBin\|ServerCertificate\|\
+ServerKey\|ServerRoot\|SMBConfigFile\|StateDir\|\
+SystemGroup\|SystemGroupAuthKey\|TempDir\|User\)\b"
+if [ -f %{_sysconfdir}/cups/cupsd.conf ] && grep -iq "$_keywords" %{_sysconfdir}/cups/cupsd.conf; then
+ echo "# Settings automatically moved from cupsd.conf by RPM package:" >> %{_sysconfdir}/cups/cups-files.conf
+ grep -i "$_keywords" %{_sysconfdir}/cups/cupsd.conf >> %{_sysconfdir}/cups/cups-files.conf || :
+ %{__sed} -i -e "s,$_keywords,#&,ig" %{_sysconfdir}/cups/cupsd.conf || :
+fi
/sbin/chkconfig --add cups
%service cups restart "cups daemon"
/sbin/rmmod usblp > /dev/null 2>&1 || :
-%systemd_post cups.service cups.socket cups.path
+%systemd_post org.cups.cupsd.service org.cups.cupd.socket org.cups.cupsd.path
%preun
if [ "$1" = "0" ]; then
%service cups stop
/sbin/chkconfig --del cups
fi
-%systemd_preun cups.service cups.socket cups.path
+%systemd_preun org.cups.cupsd.service org.cups.cupsd.socket org.cups.cupsd.path
%postun
%systemd_reload
-%triggerpostun -- cups < 1.5.2-1
-%systemd_trigger cups.service cups.socket cups.path
+%triggerpostun -- cups < 1:1.5.2-1
+%systemd_trigger org.cups.cupsd.service org.cups.cupsd.socket org.cups.cupsd.path
%post lib -p /sbin/ldconfig
%postun lib -p /sbin/ldconfig
%service -q rc-inetd reload
%postun lpd
-if [ "$1" = 0 ]; then
+if [ "$1" = "0" ]; then
%service -q rc-inetd reload
fi
%files
%defattr(644,root,root,755)
%doc *.txt
-%attr(640,root,root) %config %verify(not md5 mtime size) /etc/pam.d/*
+%attr(640,root,root) %config %verify(not md5 mtime size) /etc/pam.d/cups
%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
+%{systemdunitdir}/org.cups.cupsd.service
+%{systemdunitdir}/org.cups.cupsd.socket
+%{systemdunitdir}/org.cups.cupsd.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}/cups-files.conf
%dir %{_sysconfdir}/%{name}/interfaces
%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}/cupstestdsc
%attr(755,root,root) %{_bindir}/ppd*
%attr(755,root,root) %{_sbindir}/cupsfilter
%dir %{_ulibdir}/cups
-%dir %{_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/*.txt
-%lang(ca) %{_ulibdir}/cups/cgi-bin/ca
-%lang(cs) %{_ulibdir}/cups/cgi-bin/cs
-%lang(es) %{_ulibdir}/cups/cgi-bin/es
-%lang(fr) %{_ulibdir}/cups/cgi-bin/fr
-%lang(it) %{_ulibdir}/cups/cgi-bin/it
-%lang(ja) %{_ulibdir}/cups/cgi-bin/ja
-%lang(ru) %{_ulibdir}/cups/cgi-bin/ru
-
+%dir %{_ulibdir}/cups/backend
%if %{with avahi}
%attr(755,root,root) %{_ulibdir}/cups/backend/dnssd
%attr(755,root,root) %{_ulibdir}/cups/backend/mdns
%attr(755,root,root) %{_ulibdir}/cups/backend/lpd
%attr(755,root,root) %{_ulibdir}/cups/backend/snmp
%attr(755,root,root) %{_ulibdir}/cups/backend/socket
+
+%dir %{_ulibdir}/cups/cgi-bin
+%{_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/*.png
+%{_ulibdir}/cups/cgi-bin/*.txt
+%lang(de) %{_ulibdir}/cups/cgi-bin/de
+%lang(es) %{_ulibdir}/cups/cgi-bin/es
+%lang(ja) %{_ulibdir}/cups/cgi-bin/ja
+%lang(ru) %{_ulibdir}/cups/cgi-bin/ru
+
+%dir %{_ulibdir}/cups/daemon
%attr(755,root,root) %{_ulibdir}/cups/daemon/cups-deviced
%attr(755,root,root) %{_ulibdir}/cups/daemon/cups-driverd
%attr(755,root,root) %{_ulibdir}/cups/daemon/cups-exec
-%attr(755,root,root) %{_ulibdir}/cups/filter/*
-%attr(755,root,root) %{_ulibdir}/cups/monitor/*
-%attr(755,root,root) %{_ulibdir}/cups/notifier/*
-
-%{_datadir}/cups/data
-%{_datadir}/cups/drivers
-%{_datadir}/cups/drv
-%{_datadir}/cups/examples
-%{_datadir}/cups/mime
+%dir %{_ulibdir}/cups/driver
+%dir %{_ulibdir}/cups/filter
+%attr(755,root,root) %{_ulibdir}/cups/filter/commandtops
+%attr(755,root,root) %{_ulibdir}/cups/filter/gziptoany
+%attr(755,root,root) %{_ulibdir}/cups/filter/pstops
+%attr(755,root,root) %{_ulibdir}/cups/filter/rastertodymo
+%attr(755,root,root) %{_ulibdir}/cups/filter/rastertoepson
+%attr(755,root,root) %{_ulibdir}/cups/filter/rastertohp
+%attr(755,root,root) %{_ulibdir}/cups/filter/rastertolabel
+%attr(755,root,root) %{_ulibdir}/cups/filter/rastertopwg
+%dir %{_ulibdir}/cups/monitor
+%attr(755,root,root) %{_ulibdir}/cups/monitor/bcp
+%attr(755,root,root) %{_ulibdir}/cups/monitor/tbcp
+%dir %{_ulibdir}/cups/notifier
+%attr(755,root,root) %{_ulibdir}/cups/notifier/dbus
+%attr(755,root,root) %{_ulibdir}/cups/notifier/mailto
+%attr(755,root,root) %{_ulibdir}/cups/notifier/rss
+
+%dir %{_datadir}/cups/banners
+%dir %{_datadir}/cups/data
+%dir %{_datadir}/cups/drivers
+%dir %{_datadir}/cups/drv
+%{_datadir}/cups/drv/sample.drv
+%dir %{_datadir}/cups/examples
+%{_datadir}/cups/examples/*.drv
+%dir %{_datadir}/cups/mime
+%{_datadir}/cups/mime/mime.convs
+%{_datadir}/cups/mime/mime.types
%dir %{_datadir}/cups/model
# dirs for gimp-print-cups-4.2.7-1
%dir %{_datadir}/cups/model/C
%lang(pl) %dir %{_datadir}/cups/model/pl
%lang(sv) %dir %{_datadir}/cups/model/sv
-%{_datadir}/cups/ppdc
+%dir %{_datadir}/cups/ppdc
+%{_datadir}/cups/ppdc/epson.h
+%{_datadir}/cups/ppdc/hp.h
+%{_datadir}/cups/ppdc/label.h
+%{_datadir}/cups/ppdc/font.defs
+%{_datadir}/cups/ppdc/media.defs
+%{_datadir}/cups/ppdc/raster.defs
%dir %{_datadir}/cups/templates
%{_datadir}/cups/templates/*.tmpl
-%lang(ca) %{_datadir}/cups/templates/ca
-%lang(cs) %{_datadir}/cups/templates/cs
+%lang(de) %{_datadir}/cups/templates/de
%lang(es) %{_datadir}/cups/templates/es
-%lang(fr) %{_datadir}/cups/templates/fr
-%lang(it) %{_datadir}/cups/templates/it
%lang(ja) %{_datadir}/cups/templates/ja
%lang(ru) %{_datadir}/cups/templates/ru
+%{_mandir}/man1/cups.1*
%{_mandir}/man1/cupstestppd.1*
%{_mandir}/man1/cupstestdsc.1*
-%{_mandir}/man1/lppasswd.1*
%{_mandir}/man1/ppd*.1*
%{_mandir}/man7/backend.7*
%{_mandir}/man7/filter.7*
%{_mandir}/man7/notifier.7*
-%{_mandir}/man5/*
-%{_mandir}/man8/accept.8*
+%{_mandir}/man5/classes.conf.5*
+%{_mandir}/man5/cups-files.conf.5*
+%{_mandir}/man5/cups-snmp.conf.5*
+%{_mandir}/man5/cupsd.conf.5*
+%{_mandir}/man5/cupsd-logs.5*
+%{_mandir}/man5/ipptoolfile.5*
+%{_mandir}/man5/mailto.conf.5*
+%{_mandir}/man5/mime.convs.5*
+%{_mandir}/man5/mime.types.5*
+%{_mandir}/man5/ppdcfile.5*
+%{_mandir}/man5/printers.conf.5*
+%{_mandir}/man5/subscriptions.conf.5*
%{_mandir}/man8/cups-deviced.8*
%{_mandir}/man8/cups-driverd.8*
+%{_mandir}/man8/cups-exec.8*
%{_mandir}/man8/cups-snmp.8*
-%{_mandir}/man8/cupsaddsmb.8*
%{_mandir}/man8/cupsctl.8*
%{_mandir}/man8/cupsd.8*
-%{_mandir}/man8/cupsenable.8*
+%{_mandir}/man8/cupsd-helper.8*
%{_mandir}/man8/cupsfilter.8*
-%{_mandir}/man8/lp*
%dir %attr(775,root,lp) /var/cache/cups
%dir %attr(755,root,lp) /var/lib/cups
%dir %{_datadir}/cups
%lang(ca) %{_datadir}/locale/ca/cups_ca.po
%lang(cs) %{_datadir}/locale/cs/cups_cs.po
+%lang(de) %{_datadir}/locale/de/cups_de.po
%lang(es) %{_datadir}/locale/es/cups_es.po
%lang(fr) %{_datadir}/locale/fr/cups_fr.po
%lang(it) %{_datadir}/locale/it/cups_it.po
%{_mandir}/man1/lpr.1*
%{_mandir}/man1/lprm.1*
%{_mandir}/man1/lpstat.1*
+%{_mandir}/man5/client.conf.5*
+%{_mandir}/man8/accept.8*
%{_mandir}/man8/cupsaccept.8*
+%{_mandir}/man8/cupsaddsmb.8*
+%{_mandir}/man8/cupsenable.8*
%{_mandir}/man8/cupsdisable.8*
%{_mandir}/man8/cupsreject.8*
+%{_mandir}/man8/lpadmin.8*
+%{_mandir}/man8/lpc.8*
+%{_mandir}/man8/lpinfo.8*
+%{_mandir}/man8/lpmove.8*
%{_mandir}/man8/reject.8*
%files image-lib
%files lpd
%defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/*
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cups-lpd
%attr(755,root,root) %{_ulibdir}/cups/daemon/cups-lpd
+%{systemdunitdir}/org.cups.cups-lpd.socket
+%{systemdunitdir}/org.cups.cups-lpd@.service
%{_mandir}/man8/cups-lpd.8*