# # spec file for package cups (Version 1.3.10) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild Name: cups BuildRequires: avahi-compat-mDNSResponder-devel dbus-1-devel gcc-c++ BuildRequires: krb5-devel libpng-devel libtiff-devel openldap2-devel BuildRequires: openslp-devel openssl-devel pam-devel pkg-config tcpd-devel BuildRequires: update-desktop-files PreReq: textutils, fileutils, sh-utils, %insserv_prereq, PreReq: %fillup_prereq /usr/sbin/groupadd Url: http://www.cups.org/ License: GPL v2 or later Group: Hardware/Printing Summary: The Common UNIX Printing System Version: 1.3.10 Release: 2 Requires: cups-libs = %{version}, cups-client = %{version} Requires: ghostscript_any, ghostscript-fonts-std, foomatic-filters Requires: util-linux /usr/bin/pdftops %if 0%{?suse_version} >= 1100 Requires: pdftools_any %endif Suggests: poppler-tools Conflicts: plp lprold lprng Obsoletes: cups-SUSE-ppds-dat # URL for Source0: http://ftp.easysw.com/pub/cups/1.3.10/cups-1.3.10-source.tar.bz2 # MD5 sum for Source0 on http://www.cups.org/software.php is 84fffe96b8537c81a463faccead80026 Source0: cups-%{version}-source.tar.bz2 Source1: poll_ppd_base.c Source2: lphelp.c Source3: dvitops Source4: pswrite Source7: ogonki Source8: cups.init Source9: http://amaru.ti6.tu-harburg.de/portal/Members/ti6ntm/Projekte/Printanalyzer/PrintAnalyzer Source10: http://homepages.nyu.edu/~ml1100/files/quosnmp Source11: setcupsbroadcasting Source12: postscript.ppd.bz2 Source13: cups.sysconfig Source14: cups.xinetd Source15: PSLEVEL1.PPD.bz2 Source16: PSLEVEL2.PPD.bz2 Source17: cups.SuSEfirewall2 Source18: http://download.sourceforge.net/cups-mailto/cups-pdf.ppd Source19: http://download.sourceforge.net/cups-mailto/cups-pstopdf Source20: cups-krb5-config Source21: cups-client.conf Source22: cups-1.4svn-pdftops.c Patch1: cups-1.3.3-mime.patch Patch2: cups-1.2.0-ppdsdat_generation.patch Patch3: cups-1.2rc1-template.patch Patch4: cups-1.2.7-libwrap.patch Patch5: cups-pam.diff Patch6: cups-1.3.6-access_conf.patch # Patch9 cups-1.1.21rc2-preauth_security.patch is finally removed # since CUPS 1.3.10 because it was made for CUPS 1.1 and # it was no longer applied since CUPS 1.2 in Suse Linux 10.3 and # we did not get any user or SLE11 customer request for it. # Patch10 cups-1.1.21rc2-usermode.patch is finally removed # since CUPS 1.3.10 because it was made for CUPS 1.1 and # can no longer apply since CUPS 1.2 in Suse Linux 10.3 because # RunAsUser in cupsd.conf is no longer supported since CUPS 1.2. Patch12: cups-1.3.3-pswrite.patch # Patch13 cups-1.1.21-umlaut_printer.patch is finally removed # since CUPS 1.3.10 because it was made for CUPS 1.1 and # it was no longer applied since CUPS 1.2 in Suse Linux 10.3 and # we did not get any user or SLE11 customer request for it. Patch14: cups-1.1.21-testppd_duplex.patch Patch15: cups-1.2.11-testppd_filename.patch Patch16: cups-1.3.9-desktop_file.patch Patch17: cups-1.3.3-testppd_none.patch # Patch18 cups-1.4svn-pdftops_as_filter.patch is obsolete # since CUPS 1.3.10 because it is fixed in the source. # Patch19 cups-1.4svn-pdftops_dont_fail_on_cancel.patch is obsolete # since CUPS 1.3.10 because it is fixed in the source. Patch20: cups-1.3.7-keeping_recommended.patch Patch21: cups-1.3.7-lppasswd_fixperm.patch Patch22: cups-1.3.7-additional_policies.patch # Patch23 cups-1.3.9-cupstestppd.patch is obsolete # since CUPS 1.3.10 because it is fixed in the source. # Patch24 cups-1.3.9-max_subscription.patch is obsolete # since CUPS 1.3.10 because it is fixed in the source. # Patch25 cups-1.3.9-filter_png_overflow2.patch is obsolete # since CUPS 1.3.10 because it is fixed in the source. # Patch26 cups-1.3.9-hpgltops2.patch is obsolete # since CUPS 1.3.10 because it is fixed in the source. # Patch27 cups-1.3.9-cupsImageReadTiff.patch is obsolete # since CUPS 1.3.10 because it is fixed in the source. # Patch28 fixes a regression of the CUPS 1.3.10 DNS rebinding protection # which lets "lpoptions -h localhost -p -l" fail # with "lpoptions: Unable to get PPD file for lj1220: Bad Request" # and in /var/log/cups/error_log there is the warning # W ... Request from "localhost" using invalid Host: field "::1" # but "::1" is the IPv6 loopback IP address for "localhost" # (Novell/Suse Bugzilla bnc#489624 comment#19 and bnc#516511): Patch28: cups-1.3.10-fix-DNS-rebinding-protection.patch # Patch100 cups-1.1.23-testpage.patch is finally removed # since CUPS 1.3.10 because it was made for CUPS 1.1 and # it was no longer applied since CUPS 1.2 in Suse Linux 10.3 and # we did not get any user or SLE11 customer request for it. BuildRoot: %{_tmppath}/%{name}-%{version}-build %description The Common UNIX Printing System provides a portable printing layer for UNIX® operating systems like BSD lp or lprng. CUPS provides some additional features. http://www.cups.org Authors: -------- Easy Software Products %define INSTALL install -m755 %define INSTALL_SCRIPT install -m755 %define INSTALL_DIR install -d -m755 %define INSTALL_DATA install -m644 %define CPUs %(grep -c ^processor\ /proc/cpuinfo || echo 1) %package libs License: GPL v2 or later ; LGPL v2.1 or later Summary: Libraries for CUPS Group: Hardware/Printing # bug437293 %ifarch ppc64 Obsoletes: cups-libs-64bit %endif # %description libs The Common UNIX Printing System provides a portable printing layer for UNIX® operating systems like BSD lp or lprng. CUPS provides some additional features. This package contains libraries needed by CUPS and some other packages. Authors: -------- Easy Software Products %package client License: GPL v2 or later Summary: CUPS Client Programs Group: Hardware/Printing Conflicts: plp lprold lprng Requires: cups-libs = %{version} %description client The Common UNIX Printing System provides a portable printing layer for UNIX® operating systems like BSD lp or lprng. CUPS provides some additional features. This package contains all programs needed for running a CUPS client, not a server. Authors: -------- Easy Software Products %package devel License: GPL v2 or later Summary: Development Environment for CUPS Group: Development/Libraries/C and C++ Requires: %{name}-libs = %{version} openssl-devel glibc-devel krb5-devel # bug437293 %ifarch ppc64 Obsoletes: cups-devel-64bit %endif # %description devel The Common UNIX Printing System provides a portable printing layer for UNIX® operating systems like BSD lp or lprng. CUPS provides some additional features. This is the development package. http://www.cups.org Authors: -------- Easy Software Products %prep # Be quiet when unpacking: %setup -q -n %{name}-%{version} %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 %patch6 -p1 %patch12 -p1 %patch14 -p1 %patch15 -p1 %patch16 -p1 %patch17 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 # Patch28 fixes a regression of the DNS rebinding protection: %patch28 if [ -f /.buildenv ]; then . /.buildenv test -z "$BUILD_DISTRIBUTION_NAME" && BUILD_DISTRIBUTION_NAME="%{?distribution}" fi test -z "$BUILD_DISTRIBUTION_NAME" && BUILD_DISTRIBUTION_NAME="personal build CUPS version" perl -pi -e "s|SUSEVERSION|$BUILD_DISTRIBUTION_NAME|; \ s/CUPSVERSION/%{version}/" %{PATCH100} # fix hardcoded $_libdir path to real architecture dependend $_libdir perl -pi -e 's|(CUPS_SERVERBIN=\")\$exec_prefix/lib|$1'%{_libdir}'|' \ config-scripts/cups-directories.m4 cp -a %{SOURCE9} . cp -a %{SOURCE10} . %{INSTALL_SCRIPT} %{SOURCE20} krb5-config %build # This package failed to build when testing with -Wl,-as-needed # So we disable it here, if you want to retest, delete this comment # and the 'export SUSE_ASNEEDED=0' line: export SUSE_ASNEEDED=0 %{?suse_update_config:%{suse_update_config -f . }} libtoolize --force aclocal autoconf %if %suse_version >= 1010 export CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS -O2 -fno-strict-aliasing -fstack-protector" export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fstack-protector -DLDAP_DEPRECATED" %else export CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS -O2 -fno-strict-aliasing" export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" %endif export CXX=g++ KRB5CONFIG=${PWD}/krb5-config ./configure \ --mandir=%{_mandir} \ --sysconfdir=%{_sysconfdir} \ --libdir=%{_libdir} \ --datadir=%{_datadir} \ --with-docdir=%{_defaultdocdir}/%{name} \ --with-cups-user=lp \ --with-cups-group=lp \ --enable-pie \ --enable-relro \ --enable-gssapi \ --disable-static \ --without-rcdir \ --enable-dbus \ --enable-ldap \ --with-java \ --with-php \ --with-python \ --with-python \ --with-cachedir \ --with-pdftops=/usr/bin/pdftops \ --prefix=/ # perl -pi -e 's:^(OPTIONS\s+\=):$1 -I/usr/X11R6/include -O2 -fstack-protector -fno-strict-aliasing:' Makedefs # perl -pi -e 's:^(INSTALL_BIN\s+\=.*)-s:$1:' Makedefs # for debugging enable: #perl -pi -e 's:^(OPTIONS\s+\=):$1 -I/usr/X11R6/include -O2 -fno-strict-aliasing -g -DDEBUG:' Makedefs #perl -pi -e 's:^(OPTIM\s+\=):$1 -g -DDEBUG:' Makedefs make CXX=g++ # Compile additional tools gcc -opoll_ppd_base $CFLAGS -fPIC -fPIE -pie -I. -L./cups -lcups %{SOURCE1} gcc -olphelp $CFLAGS -fPIC -fPIE -pie -I. -L./cups -lcups %{SOURCE2} %install make BUILDROOT=$RPM_BUILD_ROOT \ install if [ x%{version} = x"1.1.18" ]; then mv $RPM_BUILD_ROOT/usr/sbin/cupstestppd \ $RPM_BUILD_ROOT/usr/bin/cupstestppd fi # place CUPS-O-MATIC script in CUPS filter directory %{INSTALL_SCRIPT} %{SOURCE7} $RPM_BUILD_ROOT%{_libdir}/cups/filter %{INSTALL_SCRIPT} %{SOURCE3} $RPM_BUILD_ROOT%{_libdir}/cups/filter %{INSTALL_SCRIPT} %{SOURCE4} $RPM_BUILD_ROOT%{_libdir}/cups/filter # might no longer be needed: ln -s /etc/cups/printcap $RPM_BUILD_ROOT/etc # install the two little tools install -m 755 poll_ppd_base $RPM_BUILD_ROOT/usr/bin/ install -m 755 lphelp $RPM_BUILD_ROOT/usr/bin/ %{INSTALL_DIR} $RPM_BUILD_ROOT/etc/init.d %{INSTALL_SCRIPT} %{SOURCE8} $RPM_BUILD_ROOT/etc/init.d/cups %{INSTALL_DIR} $RPM_BUILD_ROOT/var/adm/fillup-templates install -m 644 %{SOURCE13} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.cups perl -pi -e "s:\@LIB\@:%{_libdir}:g" $RPM_BUILD_ROOT/etc/init.d/cups ln -sf ../../etc/init.d/cups $RPM_BUILD_ROOT/usr/sbin/rccups # rm -r $RPM_BUILD_ROOT/usr/share/cups/fonts #mkdir -p /usr/share/ghostscript/fonts mkdir -p $RPM_BUILD_ROOT/usr/share/ghostscript/fonts ln -sf /usr/share/ghostscript/fonts $RPM_BUILD_ROOT/usr/share/cups/ # make directory for ssl files: mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/cups/ssl # add old client.conf as reference: %{INSTALL_DATA} %{SOURCE21} $RPM_BUILD_ROOT%{_sysconfdir}/cups/client.conf mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d install -m 644 -D packaging/cups-dbus.conf $RPM_BUILD_ROOT%{_sysconfdir}/dbus-1/system.d/cups.conf install -m 644 -D %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/cups-lpd perl -pi -e "s:\@LIB\@:%{_libdir}:g" $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/cups-lpd ln -sf libcupsimage.so.2 $RPM_BUILD_ROOT%{_libdir}/libcupsimage.so ln -sf libcups.so.2 $RPM_BUILD_ROOT%{_libdir}/libcups.so ln -sf ../sbin/lpc $RPM_BUILD_ROOT/usr/bin/lpc # bugzilla#16652 %{INSTALL_DIR} $RPM_BUILD_ROOT/usr/share/cups/drivers %{INSTALL_DIR} $RPM_BUILD_ROOT/var/cache/cups %{INSTALL_DIR} $RPM_BUILD_ROOT/%{_defaultdocdir}/%{name} %{INSTALL_DIR} $RPM_BUILD_ROOT/%{_defaultdocdir}/%{name}/images install -m 644 -D conf/pam.suse $RPM_BUILD_ROOT/etc/pam.d/cups install -m 755 PrintAnalyzer $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}/ install -m 755 quosnmp $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}/ for f in CHANGES*.txt CREDITS.txt INSTALL.txt LICENSE.txt README.txt; do install -m 644 "$f" $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}/ done bzip2 -cd < %{SOURCE12} > $RPM_BUILD_ROOT%{_datadir}/cups/model/Postscript.ppd bzip2 -cd < %{SOURCE15} > $RPM_BUILD_ROOT%{_datadir}/cups/model/Postscript-level1.ppd bzip2 -cd < %{SOURCE16} > $RPM_BUILD_ROOT%{_datadir}/cups/model/Postscript-level2.ppd %{INSTALL_DATA} %{SOURCE18} $RPM_BUILD_ROOT%{_datadir}/cups/model/PDF.ppd find %{buildroot}/usr/share/cups/model -name "*.ppd" | while read FILE do # change default paper size from letter to A4 if possible (bugzilla#30662) # and delete trailing whitespace perl -pi -e 's:^(\*Default.*)Letter\s*$:$1A4\n:; \ s:^(\*ImageableArea A4.*\:\s+)"0 0 595 842":$1"24 48 571 818":; \ s:^(\*ImageableArea Letter.*\:\s+)"0 0 612 792":$1"24 48 588 768":; \ s:\s\n:\n:' \ "$FILE" gzip -9 "$FILE" done # add files for menu rm -f $RPM_BUILD_ROOT//usr/share/applications/cups.desktop %suse_update_desktop_file -i -r %name PrintingUtility 2>/dev/null mkdir $RPM_BUILD_ROOT/usr/share/pixmaps install -m 644 $RPM_BUILD_ROOT/usr/share/icons/hicolor/64x64/apps/cups.png $RPM_BUILD_ROOT/usr/share/pixmaps rm -rf $RPM_BUILD_ROOT/usr/share/icons # remove unpackaged files rm -rf $RPM_BUILD_ROOT/%{_mandir}/es/cat? rm -rf $RPM_BUILD_ROOT/%{_mandir}/fr/cat? rm -rf $RPM_BUILD_ROOT/%{_mandir}/cat? # # SuSEfirewall2: install -d $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/ install -m 644 %{SOURCE17} $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/cups # remove unknown locale directory rm -rf $RPM_BUILD_ROOT/usr/share/locale/no %clean #test -n "$RPM_BUILD_ROOT" && rm -rf $RPM_BUILD_ROOT %pre /usr/sbin/groupadd -g 71 -o -r ntadmin 2>/dev/null || : %post libs -p /sbin/ldconfig %post %{fillup_and_insserv -ny cups cups} %preun %stop_on_removal cups %postun %restart_on_update cups %{insserv_cleanup} %postun libs -p /sbin/ldconfig %files %defattr(-,root,root) %dir %attr(700,root,lp) %{_sysconfdir}/cups/ssl %dir %attr(755,root,lp) %{_sysconfdir}/cups/ppd %config(noreplace) %attr(640,root,lp) %{_sysconfdir}/cups/cupsd.conf %config(noreplace) %attr(640,root,lp) %{_sysconfdir}/cups/snmp.conf %{_sysconfdir}/cups/cupsd.conf.default %{_sysconfdir}/dbus-1/system.d/cups.conf %config(noreplace) %attr(755,lp,lp) %{_sysconfdir}/cups/interfaces %config(noreplace) %{_sysconfdir}/cups/mime.* %config(noreplace) %{_sysconfdir}/xinetd.d/cups-lpd %{_bindir}/poll_ppd_base %{_bindir}/cupstestppd %{_bindir}/cupstestdsc %dir %{_libdir}/cups %dir %{_libdir}/cups/backend %{_libdir}/cups/backend/http %{_libdir}/cups/backend/ipp %{_libdir}/cups/backend/lpd %{_libdir}/cups/backend/parallel %{_libdir}/cups/backend/scsi %{_libdir}/cups/backend/snmp %{_libdir}/cups/backend/serial %{_libdir}/cups/backend/socket %{_libdir}/cups/backend/usb %{_libdir}/cups/cgi-bin %{_libdir}/cups/daemon %dir %{_libdir}/cups/driver %dir %{_libdir}/cups/filter %{_libdir}/cups/filter/[abd-z]* %dir %{_libdir}/cups/monitor %{_libdir}/cups/monitor/* %dir %{_libdir}/cups/notifier %{_libdir}/cups/notifier/* %{_sbindir}/cupsaddsmb %{_sbindir}/cupsctl %{_sbindir}/cupsd %{_sbindir}/cupsfilter %{_sbindir}/rc* %dir %attr(0775,root,ntadmin) /usr/share/cups/drivers %dir /usr/share/cups /usr/share/applications/cups.desktop /usr/share/pixmaps/cups.png /usr/share/cups/[bcf-t]* /usr/share/cups/d[ao]* %dir %attr(0775,lp,lp) /var/cache/cups %config %attr(0755,root,root) /etc/init.d/cups %config /etc/pam.d/cups /var/adm/fillup-templates/sysconfig.cups %doc %{_defaultdocdir}/%{name} %doc %{_mandir}/man5/* %doc %{_mandir}/man7/* %doc %{_mandir}/man8/* %files client %defattr(-,root,root) %{_bindir}/lp %{_bindir}/lpc %{_bindir}/lphelp %{_bindir}/lpoptions %attr(2755,lp,lp) %{_bindir}/lppasswd %{_bindir}/lpq %{_bindir}/lpr %{_bindir}/lprm %{_bindir}/lpstat %{_bindir}/cancel %{_sbindir}/*able %{_sbindir}/accept %{_sbindir}/lp* %{_sbindir}/reject %doc %{_mandir}/man1/[a-eg-z]* %files devel %defattr(-,root,root) %{_includedir}/cups %{_libdir}/libcups.so %{_libdir}/libcupsimage.so %files libs %defattr(-,root,root) %{_bindir}/cups-config # %dir %attr(0775,root,lp) %{_sysconfdir}/cups/ %dir %attr(0710,root,lp) %{_var}/spool/cups %dir %attr(1770,root,lp) %{_var}/spool/cups/tmp %dir %attr(0755,lp,lp) %{_var}/log/cups/ %config(noreplace) %{_sysconfdir}/cups/client.conf %config(noreplace) /etc/sysconfig/SuSEfirewall2.d/services/cups %{_libdir}/libcups.so.* %{_libdir}/libcupsimage.so.* %{_datadir}/locale/*/cups_* %changelog