#
-# "$Id: cups.spec.in 5449 2006-04-22 04:05:45Z mike $"
+# RPM "spec" file for CUPS.
#
-# RPM "spec" file for the Common UNIX Printing System (CUPS).
+# Original version by Jason McMullan <jmcc@ontv.com>.
#
-# Original version by Jason McMullan <jmcc@ontv.com>.
+# Copyright © 2007-2019 by Apple Inc.
+# Copyright © 1999-2007 by Easy Software Products, all rights reserved.
#
-# Copyright 1999-2006 by Easy Software Products, all rights reserved.
-#
-# These coded instructions, statements, and computer programs are the
-# property of Easy Software Products and are protected by Federal
-# copyright law. Distribution and use rights are outlined in the file
-# "LICENSE.txt" which should have been included with this file. If this
-# file is missing or damaged please contact Easy Software Products
-# at:
-#
-# Attn: CUPS Licensing Information
-# Easy Software Products
-# 44141 Airport View Drive, Suite 204
-# Hollywood, Maryland 20636 USA
-#
-# Voice: (301) 373-9600
-# EMail: cups-info@cups.org
-# WWW: http://www.cups.org
+# Licensed under Apache License v2.0. See the file "LICENSE" for more
+# information.
#
# Conditional build options (--with name/--without name):
#
# dbus - Enable/disable DBUS support (default = enable)
-# php - Enable/disable PHP support (default = enable)
+# dnssd - Enable/disable DNS-SD support (default = enable)
+# libusb1 - Enable/disable LIBUSB 1.0 support (default = enable)
+# static - Enable/disable static libraries (default = enable)
+# systemd - Enable/disable systemd support (default = enable)
%{!?_with_dbus: %{!?_without_dbus: %define _with_dbus --with-dbus}}
%{?_with_dbus: %define _dbus --enable-dbus}
%{!?_with_dbus: %define _dbus --disable-dbus}
-%{!?_with_php: %{!?_without_php: %define _with_php --with-php}}
-%{?_with_php: %define _php --with-php}
-%{!?_with_php: %define _php --without-php}
+%{!?_with_dnssd: %{!?_without_dnssd: %define _with_dnssd --with-dnssd}}
+%{?_with_dnssd: %define _dnssd --enable-avahi}
+%{!?_with_dnssd: %define _dnssd --disable-avahi}
+
+%{!?_with_libusb1: %{!?_without_libusb1: %define _with_libusb1 --with-libusb1}}
+%{?_with_libusb1: %define _libusb1 --enable-libusb}
+%{!?_with_libusb1: %define _libusb1 --disable-libusb}
%{!?_with_static: %{!?_without_static: %define _without_static --without-static}}
%{?_with_static: %define _static --enable-static}
%{!?_with_static: %define _static --disable-static}
-Summary: Common UNIX Printing System
+%{!?_with_systemd: %{!?_without_systemd: %define _with_systemd --with-systemd}}
+%{?_with_systemd: %define _systemd --enable-systemd}
+%{!?_with_systemd: %define _systemd --disable-systemd}
+
+Summary: CUPS
Name: cups
Version: @CUPS_VERSION@
Release: 0
Epoch: 1
License: GPL
Group: System Environment/Daemons
-Source: ftp://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.gz
+Source: https://github.com/apple/cups/releases/download/v%{version}/cups-%{version}-source.tar.gz
Url: http://www.cups.org
-Packager: Anonymous <anonymous@foo.com>
-Vendor: Easy Software Products
+Packager: Anonymous <anonymous@example.com>
+Vendor: Example Corp
+
+# Package names are as defined for Red Hat (and clone) distributions
+BuildRequires: gnutls-devel, pam-devel
+
+%if %{?_with_dbus:1}%{!?_with_dbus:0}
+BuildRequires: dbus-devel
+%endif
+
+%if %{?_with_dnssd:1}%{!?_with_dnssd:0}
+BuildRequires: avahi-devel
+%endif
+
+%if %{?_with_libusb1:1}%{!?_with_libusb1:0}
+BuildRequires: libusb-devel >= 1.0
+%endif
+
+%if %{?_with_systemd:1}%{!?_with_systemd:0}
+BuildRequires: systemd-devel
+%endif
# Use buildroot so as not to disturb the version already installed
BuildRoot: /tmp/%{name}-root
Requires: %{name}-libs = %{epoch}:%{version}
Obsoletes: lpd, lpr, LPRng
Provides: lpd, lpr, LPRng
+Obsoletes: cups-da, cups-de, cups-es, cups-et, cups-fi, cups-fr, cups-he
+Obsoletes: cups-id, cups-it, cups-ja, cups-ko, cups-nl, cups-no, cups-pl
+Obsoletes: cups-pt, cups-ru, cups-sv, cups-zh
%package devel
-Summary: Common UNIX Printing System - development environment
+Summary: CUPS - development environment
Group: Development/Libraries
Requires: %{name}-libs = %{epoch}:%{version}
%package libs
-Summary: Common UNIX Printing System - shared libraries
+Summary: CUPS - shared libraries
Group: System Environment/Libraries
Provides: libcups1
%package lpd
-Summary: Common UNIX Printing System - LPD support
+Summary: CUPS - LPD support
Group: System Environment/Daemons
Requires: %{name} = %{epoch}:%{version} xinetd
-%package es
-Summary: Common UNIX Printing System - Spanish support
-Group: System Environment/Daemons
-Requires: %{name} = %{epoch}:%{version}
-
-%package ja
-Summary: Common UNIX Printing System - Japanese support
-Group: System Environment/Daemons
-Requires: %{name} = %{epoch}:%{version}
-
-%package pl
-Summary: Common UNIX Printing System - Polish support
-Group: System Environment/Daemons
-Requires: %{name} = %{epoch}:%{version}
-
-%package sv
-Summary: Common UNIX Printing System - Swedish support
-Group: System Environment/Daemons
-Requires: %{name} = %{epoch}:%{version}
-
-%if %{?_with_php:1}%{!?_with_php:0}
-%package php
-Summary: Common UNIX Printing System - PHP support
-Group: Development/Languages
-Requires: %{name}-libs = %{epoch}:%{version}
-%endif
-
%description
-The Common UNIX Printing System provides a portable printing layer for
-UNIX® operating systems. It has been developed by Easy Software Products
-to promote a standard printing solution for all UNIX vendors and users.
-CUPS provides the System V and Berkeley command-line interfaces.
+CUPS is the standards-based, open source printing system developed by
+Apple Inc. for macOS® and other UNIX®-like operating systems.
%description devel
-The Common UNIX Printing System provides a portable printing layer for
-UNIX® operating systems. This is the development package for creating
-additional printer drivers and other CUPS services.
+This package provides the CUPS headers and development environment.
%description libs
-The Common UNIX Printing System provides a portable printing layer for
-UNIX® operating systems. This package contains the CUPS shared libraries.
+This package provides the CUPS shared libraries.
%description lpd
-The Common UNIX Printing System provides a portable printing layer for
-UNIX® operating systems. This package provides LPD client support.
-
-%description es
-The Common UNIX Printing System provides a portable printing layer for
-UNIX® operating systems. This package provides Spanish support.
-
-%description ja
-The Common UNIX Printing System provides a portable printing layer for
-UNIX® operating systems. This package provides Japanese support.
-
-%description pl
-The Common UNIX Printing System provides a portable printing layer for
-UNIX® operating systems. This package provides Polish support.
-
-%description sv
-The Common UNIX Printing System provides a portable printing layer for
-UNIX® operating systems. This package provides Swedish support.
-
-%if %{?_with_php:1}%{!?_with_php:0}
-%description php
-The Common UNIX Printing System provides a portable printing layer for
-UNIX® operating systems. This package provides PHP support.
-%endif
+This package provides LPD client support.
%prep
%setup
%build
-%ifarch x86_64
-./configure --enable-32bit %{_dbus} %{_php} %{_static}
-%else
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_OPT_FLAGS" \
- ./configure %{_dbus} %{_php} %{_static}
-%endif
+ ./configure %{_dbus} %{_dnssd} %{_libusb1} %{_static} %{_systemd}
# If we got this far, all prerequisite libraries must be here.
make
rm -rf $RPM_BUILD_ROOT
make BUILDROOT=$RPM_BUILD_ROOT install
+rm -rf $RPM_BUILD_ROOT/usr/share/cups/banners $RPM_BUILD_ROOT/usr/share/cups/data
%post
+%if %{?_with_systemd:1}%{!?_with_systemd:0}
+/bin/systemctl enable org.cups.cupsd.service
+
+if test $1 -ge 1; then
+ /bin/systemctl stop org.cups.cupsd.service
+ /bin/systemctl start org.cups.cupsd.service
+fi
+
+%else
/sbin/chkconfig --add cups
/sbin/chkconfig cups on
/sbin/service cups stop
/sbin/service cups start
fi
+%endif
%post libs
/sbin/ldconfig
%preun
+%if %{?_with_systemd:1}%{!?_with_systemd:0}
+if test $1 -ge 1; then
+ /bin/systemctl stop org.cups.cupsd.service
+ /bin/systemctl disable org.cups.cupsd.service
+fi
+
+%else
if test $1 = 0; then
/sbin/service cups stop
/sbin/chkconfig --del cups
fi
+%endif
%postun
+%if %{?_with_systemd:1}%{!?_with_systemd:0}
+if test $1 -ge 1; then
+ /bin/systemctl stop org.cups.cupsd.service
+ /bin/systemctl start org.cups.cupsd.service
+fi
+
+%else
if test $1 -ge 1; then
/sbin/service cups stop
/sbin/service cups start
fi
+%endif
%postun libs
/sbin/ldconfig
%defattr(-,root,root)
%dir /etc/cups
%config(noreplace) /etc/cups/*.conf
+/etc/cups/cups-files.conf.default
/etc/cups/cupsd.conf.default
-%dir /etc/cups/interfaces
-/etc/cups/mime.types
-/etc/cups/mime.convs
+/etc/cups/snmp.conf.default
%dir /etc/cups/ppd
+%attr(0700,root,root) %dir /etc/cups/ssl
%if %{?_with_dbus:1}%{!?_with_dbus:0}
# DBUS
%dir /etc/pam.d
/etc/pam.d/*
-# RC dirs are a pain under Linux... Uncomment the appropriate ones if you
-# don't use Red Hat or Mandrake...
+%if %{?_with_systemd:1}%{!?_with_systemd:0}
+# SystemD
+/usr/lib/systemd/system/org.cups.cupsd.*
+%else
+# Legacy init support on Linux
/etc/init.d/*
/etc/rc0.d/*
/etc/rc2.d/*
/etc/rc3.d/*
/etc/rc5.d/*
-
-# OLD RedHat/Mandrake
-#/etc/rc.d/init.d/*
-#/etc/rc.d/rc0.d/*
-#/etc/rc.d/rc2.d/*
-#/etc/rc.d/rc3.d/*
-#/etc/rc.d/rc5.d/*
-
-#/sbin/rc.d/*
-#/sbin/rc.d/rc0.d/*
-#/sbin/rc.d/rc2.d/*
-#/sbin/rc.d/rc3.d/*
-#/sbin/rc.d/rc5.d/*
+%endif
/usr/bin/cancel
-/usr/bin/cupstestdsc
/usr/bin/cupstestppd
+/usr/bin/ippeveprinter
+/usr/bin/ipptool
/usr/bin/lp*
%dir /usr/lib/cups
%dir /usr/lib/cups/backend
+%if %{?_with_dnssd:1}%{!?_with_dnssd:0}
+# DNS-SD
+/usr/bin/ippfind
+/usr/lib/cups/backend/dnssd
+%endif
/usr/lib/cups/backend/http
-/usr/lib/cups/backend/ipp
+/usr/lib/cups/backend/https
+%attr(0700,root,root) /usr/lib/cups/backend/ipp
+/usr/lib/cups/backend/ipps
%attr(0700,root,root) /usr/lib/cups/backend/lpd
-/usr/lib/cups/backend/parallel
-/usr/lib/cups/backend/scsi
-/usr/lib/cups/backend/serial
/usr/lib/cups/backend/snmp
/usr/lib/cups/backend/socket
/usr/lib/cups/backend/usb
%dir /usr/lib/cups/cgi-bin
/usr/lib/cups/cgi-bin/*
+%dir /usr/lib/cups/command
+/usr/lib/cups/command/*
%dir /usr/lib/cups/daemon
/usr/lib/cups/daemon/cups-deviced
/usr/lib/cups/daemon/cups-driverd
-/usr/lib/cups/daemon/cups-polld
+/usr/lib/cups/daemon/cups-exec
%dir /usr/lib/cups/driver
%dir /usr/lib/cups/filter
/usr/lib/cups/filter/*
/usr/sbin/*
%dir /usr/share/cups
-%dir /usr/share/cups/banners
-/usr/share/cups/banners/*
-%dir /usr/share/cups/charmaps
-/usr/share/cups/charmaps/*
-%dir /usr/share/cups/charsets
-/usr/share/cups/charsets/*
-%dir /usr/share/cups/data
-/usr/share/cups/data/*
-%dir /usr/share/cups/fonts
-/usr/share/cups/fonts/*
+%dir /usr/share/cups/drv
+/usr/share/cups/drv/*
+%dir /usr/share/cups/ipptool
+/usr/share/cups/ipptool/*
+%dir /usr/share/cups/mime
+/usr/share/cups/mime/*
%dir /usr/share/cups/model
-/usr/share/cups/model/*
+%dir /usr/share/cups/ppdc
+/usr/share/cups/ppdc/*
%dir /usr/share/cups/templates
-/usr/share/cups/templates/*.tmpl
+/usr/share/cups/templates/*
+%if %{?_with_libusb1:1}%{!?_with_libusb1:0}
+# LIBUSB quirks files
+%dir /usr/share/cups/usb
+/usr/share/cups/usb/*
+%endif
+
%dir /usr/share/doc/cups
/usr/share/doc/cups/*.*
%dir /usr/share/doc/cups/help
+/usr/share/doc/cups/help/accounting.html
+/usr/share/doc/cups/help/admin.html
/usr/share/doc/cups/help/cgi.html
+/usr/share/doc/cups/help/encryption.html
+/usr/share/doc/cups/help/firewalls.html
/usr/share/doc/cups/help/glossary.html
+/usr/share/doc/cups/help/kerberos.html
/usr/share/doc/cups/help/license.html
/usr/share/doc/cups/help/man-*.html
/usr/share/doc/cups/help/network.html
/usr/share/doc/cups/help/options.html
/usr/share/doc/cups/help/overview.html
+/usr/share/doc/cups/help/policies.html
/usr/share/doc/cups/help/ref-*.html
/usr/share/doc/cups/help/security.html
-/usr/share/doc/cups/help/standard.html
+/usr/share/doc/cups/help/sharing.html
/usr/share/doc/cups/help/translation.html
-/usr/share/doc/cups/help/whatsnew.html
%dir /usr/share/doc/cups/images
/usr/share/doc/cups/images/*
+#%dir /usr/share/doc/cups/ca
+#/usr/share/doc/cups/ca/*
+#%dir /usr/share/doc/cups/cs
+#/usr/share/doc/cups/cs/*
+%dir /usr/share/doc/cups/de
+/usr/share/doc/cups/de/*
+%dir /usr/share/doc/cups/es
+/usr/share/doc/cups/es/*
+#%dir /usr/share/doc/cups/fr
+#/usr/share/doc/cups/fr/*
+%dir /usr/share/doc/cups/ja
+/usr/share/doc/cups/ja/*
+%dir /usr/share/doc/cups/pt_BR
+/usr/share/doc/cups/pt_BR/*
+%dir /usr/share/doc/cups/ru
+/usr/share/doc/cups/ru/*
+
+%dir /usr/share/locale/ca
+/usr/share/locale/ca/cups_ca.po
+%dir /usr/share/locale/cs
+/usr/share/locale/cs/cups_cs.po
+%dir /usr/share/locale/de
+/usr/share/locale/de/cups_de.po
+%dir /usr/share/locale/en
+/usr/share/locale/en/cups_en.po
+%dir /usr/share/locale/es
+/usr/share/locale/es/cups_es.po
+%dir /usr/share/locale/fr
+/usr/share/locale/fr/cups_fr.po
+%dir /usr/share/locale/it
+/usr/share/locale/it/cups_it.po
+%dir /usr/share/locale/ja
+/usr/share/locale/ja/cups_ja.po
+%dir /usr/share/locale/pt_BR
+/usr/share/locale/pt_BR/cups_pt_BR.po
+%dir /usr/share/locale/ru
+/usr/share/locale/ru/cups_ru.po
+%dir /usr/share/locale/zh_CN
+/usr/share/locale/zh_CN/cups_zh_CN.po
+
%dir /usr/share/man/man1
/usr/share/man/man1/cancel.1.gz
-/usr/share/man/man1/cupstestdsc.1.gz
+/usr/share/man/man1/cups.1.gz
/usr/share/man/man1/cupstestppd.1.gz
+/usr/share/man/man1/ippeveprinter.1.gz
+%if %{?_with_dnssd:1}%{!?_with_dnssd:0}
+# DNS-SD
+/usr/share/man/man1/ippfind.1.gz
+%endif
+/usr/share/man/man1/ipptool.1.gz
/usr/share/man/man1/lp.1.gz
/usr/share/man/man1/lpoptions.1.gz
-/usr/share/man/man1/lppasswd.1.gz
/usr/share/man/man1/lpq.1.gz
/usr/share/man/man1/lpr.1.gz
/usr/share/man/man1/lprm.1.gz
/usr/share/man/man1/lpstat.1.gz
%dir /usr/share/man/man5
-/usr/share/man/man5/*
+/usr/share/man/man5/*.conf.5.gz
+/usr/share/man/man5/cupsd-logs.5.gz
+/usr/share/man/man5/ipptoolfile.5.gz
+/usr/share/man/man5/mime.*.5.gz
+%dir /usr/share/man/man7
+/usr/share/man/man7/ippevepcl.7.gz
+/usr/share/man/man7/ippeveps.7.gz
%dir /usr/share/man/man8
-/usr/share/man/man8/accept.8.gz
-/usr/share/man/man8/cupsaddsmb.8.gz
+/usr/share/man/man8/cups-deviced.8.gz
+/usr/share/man/man8/cups-driverd.8.gz
+/usr/share/man/man8/cups-exec.8.gz
+/usr/share/man/man8/cups-snmp.8.gz
+/usr/share/man/man8/cupsaccept.8.gz
+/usr/share/man/man8/cupsctl.8.gz
+/usr/share/man/man8/cupsfilter.8.gz
/usr/share/man/man8/cupsd.8.gz
+/usr/share/man/man8/cupsd-helper.8.gz
/usr/share/man/man8/cupsdisable.8.gz
/usr/share/man/man8/cupsenable.8.gz
-/usr/share/man/man8/cups-deviced.8.gz
-/usr/share/man/man8/cups-driverd.8.gz
-/usr/share/man/man8/cups-polld.8.gz
+/usr/share/man/man8/cupsreject.8.gz
/usr/share/man/man8/lpadmin.8.gz
/usr/share/man/man8/lpc.8.gz
/usr/share/man/man8/lpinfo.8.gz
/usr/share/man/man8/lpmove.8.gz
-/usr/share/man/man8/reject.8.gz
%dir /var/cache/cups
+%attr(0775,root,sys) %dir /var/cache/cups/rss
%dir /var/log/cups
%dir /var/run/cups
%attr(0711,lp,sys) %dir /var/run/cups/certs
%files devel
%defattr(-,root,root)
+%dir /usr/share/cups/examples
+/usr/share/cups/examples/*
%dir /usr/share/man/man1
/usr/share/man/man1/cups-config.1.gz
-%dir /usr/share/man/man7
-/usr/share/man/man7/*
+/usr/share/man/man1/ppd*.1.gz
+%dir /usr/share/man/man5
+/usr/share/man/man5/ppdcfile.5.gz
+/usr/share/man/man7/backend.7.gz
+/usr/share/man/man7/filter.7.gz
+/usr/share/man/man7/notifier.7.gz
/usr/bin/cups-config
+/usr/bin/ppd*
%dir /usr/include/cups
/usr/include/cups/*
/usr/lib*/*.so
%dir /usr/share/doc/cups/help
/usr/share/doc/cups/help/api*.html
+/usr/share/doc/cups/help/cupspm.*
+/usr/share/doc/cups/help/postscript-driver.html
+/usr/share/doc/cups/help/ppd-compiler.html
+/usr/share/doc/cups/help/raster-driver.html
/usr/share/doc/cups/help/spec*.html
%files libs
%files lpd
%defattr(-,root,root)
+%if %{?_with_systemd:1}%{!?_with_systemd:0}
+# SystemD
+/usr/lib/systemd/system/org.cups.cups-lpd*
+%else
+# Legacy xinetd
/etc/xinetd.d/cups-lpd
+%endif
+
%dir /usr/lib/cups
%dir /usr/lib/cups/daemon
/usr/lib/cups/daemon/cups-lpd
%dir /usr/share/man/man8
/usr/share/man/man8/cups-lpd.8.gz
-
-%files es
-%defattr(-,root,root)
-%dir /usr/share/doc/cups/es
-/usr/share/doc/cups/es/index.html
-%dir /usr/share/doc/cups/es/images
-/usr/share/doc/cups/es/images/*
-%dir /usr/share/cups/templates/es
-/usr/share/cups/templates/es/*
-/usr/share/locale/es/cups_es.po
-
-%files ja
-%defattr(-,root,root)
-%dir /usr/share/doc/cups/ja
-/usr/share/doc/cups/ja/index.html
-%dir /usr/share/doc/cups/ja/images
-/usr/share/doc/cups/ja/images/*
-%dir /usr/share/cups/templates/ja
-/usr/share/cups/templates/ja/*
-/usr/share/locale/ja/cups_ja.po
-
-%files pl
-%defattr(-,root,root)
-%dir /usr/share/doc/cups/pl
-/usr/share/doc/cups/pl/index.html
-%dir /usr/share/doc/cups/pl/images
-/usr/share/doc/cups/pl/images/*
-%dir /usr/share/cups/templates/pl
-/usr/share/cups/templates/pl/*
-#/usr/share/locale/pl/cups_pl.po
-
-%files sv
-%defattr(-,root,root)
-%dir /usr/share/doc/cups/sv
-/usr/share/doc/cups/sv/index.html
-%dir /usr/share/doc/cups/sv/images
-/usr/share/doc/cups/sv/images/*
-%dir /usr/share/cups/templates/sv
-/usr/share/cups/templates/sv/*
-/usr/share/locale/sv/cups_sv.po
-
-%if %{?_with_php:1}%{!?_with_php:0}
-%files php
-# PHP
-/usr/lib*/php*
-%endif
-
-
-#
-# End of "$Id: cups.spec.in 5449 2006-04-22 04:05:45Z mike $".
-#