2007-01-16 00:08:16 +01:00
#
2011-01-14 16:15:55 +01:00
# spec file for package cups
2007-01-16 00:08:16 +01:00
#
2017-03-31 13:31:24 +02:00
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
2007-01-16 00:08:16 +01:00
#
2008-08-24 10:51:03 +02:00
# 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.
2007-01-16 00:08:16 +01:00
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
2014-04-11 10:08:52 +02:00
2015-02-16 16:27:41 +01:00
# _tmpfilesdir is not defined in systemd macros up to openSUSE 13.2
%{!?_tmpfilesdir: %global _tmpfilesdir %{_libexecdir} /tmpfiles.d }
2007-01-16 00:08:16 +01:00
Name : cups
2016-03-01 10:53:13 +01:00
Version : 2.1.3
2015-02-16 16:27:41 +01:00
Release : 0
Summary : The Common UNIX Printing System
License : GPL-2.0 and LGPL-2.1
Group : Hardware/Printing
Url : http://www.cups.org/
Source0 : http://www.cups.org/software/%{version} /cups-%{version} -source.tar.bz2
2015-08-21 09:09:25 +02:00
Source1 : http://www.cups.org/software/%{version} /cups-%{version} -source.tar.bz2.sig
Source2 : cups.keyring
2015-02-16 16:27:41 +01:00
Source102 : Postscript.ppd.gz
Source105 : Postscript-level1.ppd.gz
Source106 : Postscript-level2.ppd.gz
Source108 : cups-client.conf
Source109 : baselibs.conf
# Patch0...Patch9 is for patches from upstream:
# Source10...Source99 is for sources from SUSE which are intended for upstream:
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
2015-09-01 14:47:12 +02:00
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
Patch10 : cups-2.1.0-choose-uri-template.patch
# Patch11 cups-2.1.0-default-webcontent-path.patch changes the default path whereto the
2015-02-16 16:27:41 +01:00
# web content is installed from /usr/share/doc/cups to /usr/share/cups/webcontent
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments:
2015-09-01 14:47:12 +02:00
Patch11 : cups-2.1.0-default-webcontent-path.patch
# Patch12 cups-2.1.0-cups-systemd-socket.patch Use systemd socket activation properly:
Patch12 : cups-2.1.0-cups-systemd-socket.patch
2017-04-21 10:44:45 +02:00
# Patch13 0001-Update-cupsEnumDests-implementation-to-return-early-if-all.patch bsc#955432 -- React properly to avahi's ALL_FOR_NOW signal to reduce unneeded delay
Patch13 : 0001-Update-cupsEnumDests-implementation-to-return-early-if-all.patch
# Patch14 0002-Save-work-on-Avahi-code.patch bsc#955432 -- React properly to avahi's ALL_FOR_NOW signal to reduce unneeded delay
Patch14 : 0002-Save-work-on-Avahi-code.patch
# Patch15 0003-Avahi-fixes-for-cupsEnumDests.patch bsc#955432 -- React properly to avahi's ALL_FOR_NOW signal to reduce unneeded delay
Patch15 : 0003-Avahi-fixes-for-cupsEnumDests.patch
2015-02-16 16:27:41 +01:00
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
Patch100 : cups-pam.diff
2015-07-01 15:50:32 +02:00
# Patch101 cups-2.0.3-additional_policies.patch adds the 'allowallforanybody' policy to cupsd.conf
# see https://fate.novell.com/303515 and https://bugzilla.suse.com/show_bug.cgi?id=936309
Patch101 : cups-2.0.3-additional_policies.patch
2015-02-16 16:27:41 +01:00
# Patch103 cups-1.4-do_not_strip_recommended_from_PPDs.patch
# reverts the change which was added by Michael Sweet in Jan 2007
# which strips the word "recommended" from NickName in PPDs because
# at least yast2-printer in SUSE needs it, compare the
# 'Why not "recommend" PPDs in the NickName?' and the subsequent
# 'RFC: New Driver Rating/Information Attributes' mail thread on cups@easysw.com:
Patch103 : cups-1.4-do_not_strip_recommended_from_PPDs.patch
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
Patch104 : cups-config-libs.patch
2012-01-10 11:02:58 +01:00
BuildRequires : dbus-1-devel
2012-02-07 16:37:15 +01:00
BuildRequires : fdupes
2012-01-10 11:02:58 +01:00
BuildRequires : gcc-c++
2015-02-16 16:27:41 +01:00
BuildRequires : gnutls-devel
BuildRequires : libavahi-devel
BuildRequires : libgcrypt-devel
2012-02-07 16:37:15 +01:00
BuildRequires : libjpeg-devel
2012-01-10 11:02:58 +01:00
BuildRequires : libpng-devel
BuildRequires : libtiff-devel
2012-12-20 14:55:02 +01:00
BuildRequires : libtool
2015-02-16 16:27:41 +01:00
BuildRequires : libusb-1_0-devel
2012-01-10 11:02:58 +01:00
BuildRequires : pam-devel
BuildRequires : pkgconfig
2012-12-20 14:55:02 +01:00
BuildRequires : zlib-devel
2017-05-23 10:06:08 +02:00
%if 0%{?suse_version} >= 1315
BuildRequires : pkgconfig(krb5)
%else
BuildRequires : krb5-devel
%endif
2016-12-13 15:20:06 +01:00
%if 0%{?suse_version} > 1310
BuildRequires : pkgconfig(libsystemd)
%else
2014-05-22 12:18:17 +02:00
BuildRequires : pkgconfig(libsystemd-daemon)
2016-12-13 15:20:06 +01:00
%endif
2014-02-19 16:37:56 +01:00
BuildRequires : pkgconfig(systemd)
2015-02-16 16:27:41 +01:00
# Require the exact matching version-release of the cups-client and cups-libs
# sub-package because because all CUPS software is built from the one same
# CUPS source tar ball do that there could be whatever subtle CUPS-internal
# dependencies.
# The exact matching version-release of the cups-client sub-package is available
2010-03-18 23:08:54 +01:00
# on the same package repository where the cups package is because
# all are built simulaneously from the same cups source package
# and all required packages are provided on the same repository:
2015-02-16 16:27:41 +01:00
Requires : cups-client = %{version} -%{release}
2012-09-27 09:45:29 +02:00
Requires : cups-libs = %{version} -%{release}
2015-02-16 16:27:41 +01:00
Requires(pre) : %{_sbindir} /groupadd
Requires(pre) : coreutils
# Since CUPS 1.6 all non-Mac filters are dropped
Recommends: cups-filters
# Our Source105 PSLEVEL1.PPD.bz2 and Source106 PSLEVEL2.PPD.bz2 need foomatic-rip
# but this does not justify a RPM Requires so that a weak Recommends is sufficient:
Recommends: foomatic-filters
2011-02-10 13:18:31 +01:00
# The Ghostscript device "cups" is needed by several CUPS filters
2012-04-12 11:02:43 +02:00
# (in particular the "rasterto..." filters) which might justify a RPM Requires.
# But a RPM requirement for ghostscript would cause a build dependency cycle because
2012-04-10 15:57:56 +02:00
# cups Requires ghostscript which BuildRequires cups-devel which Requires cups-libs
2012-04-12 11:02:43 +02:00
# and cups-libs is a sub-package of cups so that there is an implicit build dependency
# cycle between the main-packages cups and ghostscript.
# Furthermore Ghostscript is not needed on a system where those CUPS filters are not used
2012-12-20 14:55:02 +01:00
# (e.g. on client systems in the network where the filtering hapens on a CUPS server
# or on a CUPS server with only "raw" queues) so that a weak Recommends fits better:
2012-04-12 11:02:43 +02:00
Recommends: ghostscript
2015-02-16 16:27:41 +01:00
BuildRoot : %{_tmppath} /%{name} -%{version} -build
%{?systemd_requires}
# Conflicts with other print spoolers which provide same binaries like
# /usr/bin/lp and so on or which may listen on the same port (e.g. cups-lpd
# versus traditional lpd on port 515):
2012-04-10 16:31:33 +02:00
Conflicts : lprng
Conflicts : lprold
Conflicts : plp
2007-01-16 00:08:16 +01:00
%description
2011-10-06 11:36:19 +02:00
The Common UNIX Printing System (CUPS) is the
standards-based, open source printing system.
See http://www.cups.org
2007-01-16 00:08:16 +01:00
2015-02-16 16:27:41 +01:00
Starting with cups 1.6 there were major changes as the filters
were split to cups-filters package developed independently and
default standard was changed.
Cups 1.6 and newer also no longer supports automatic remote printers or
implicit classes via the CUPS, LDAP, or SLP protocols, i.e. " n e t w o r k
browsing" . T h i s i s n o w h a n d l e d b y c u p s - b r o w s e d s e r v i c e .
2007-01-16 00:08:16 +01:00
%package libs
2007-05-25 00:40:10 +02:00
Summary : Libraries for CUPS
2017-05-23 10:06:08 +02:00
# Prerequire /sbin/ldconfig which is used in the traditional bash scriptlets for post/postun:
2015-02-16 16:27:41 +01:00
License : GPL-2.0 and LGPL-2.1
2007-01-16 00:08:16 +01:00
Group : Hardware/Printing
2015-02-16 16:27:41 +01:00
Requires(pre) : /sbin/ldconfig
2017-03-31 13:31:24 +02:00
%if 0%{?suse_version} >= 1330
Requires(pre) : group(lp)
%endif
2007-01-16 00:08:16 +01:00
%description libs
2011-10-06 11:36:19 +02:00
The Common UNIX Printing System (CUPS) is the
standards-based, open source printing system.
See http://www.cups.org
2015-02-16 16:27:41 +01:00
Starting with cups 1.6 there were major changes as the filters
were split to cups-filters package developed independently and
default standard was changed.
2011-10-06 11:36:19 +02:00
2015-02-16 16:27:41 +01:00
Cups 1.6 and newer also no longer supports automatic remote printers or
implicit classes via the CUPS, LDAP, or SLP protocols, i.e. " n e t w o r k
browsing" . T h i s i s n o w h a n d l e d b y c u p s - b r o w s e d s e r v i c e .
2007-01-16 00:08:16 +01:00
%package client
Summary : CUPS Client Programs
2010-03-18 23:08:54 +01:00
# Require the exact matching version-release of the cups-libs sub-package because
# non-matching CUPS libraries may let CUPS software crash (e.g. segfault)
# because all CUPS software is built from the one same CUPS source tar ball
# so that there are CUPS-internal dependencies via CUPS private API calls
# (which do not happen for third-party software which uses only the CUPS public API).
# The exact matching version-release of the cups-libs sub-package is available
# on the same package repository where the cups package is because
# all are built simulaneously from the same cups source package
# and all required packages are provided on the same repository:
2017-05-23 10:06:08 +02:00
License : GPL-2.0
Group : Hardware/Printing
2010-03-18 23:08:54 +01:00
Requires : cups-libs = %{version} -%{release}
2015-02-16 16:27:41 +01:00
# Conflicts with other print spoolers which provide same binaries like /usr/bin/lp and so on:
Conflicts : lprng
Conflicts : lprold
Conflicts : plp
2007-01-16 00:08:16 +01:00
%description client
2011-10-06 11:36:19 +02:00
The Common UNIX Printing System (CUPS) is the
standards-based, open source printing system.
See http://www.cups.org
2015-02-16 16:27:41 +01:00
Starting with cups 1.6 there were major changes as the filters
were split to cups-filters package developed independently and
default standard was changed.
2011-10-06 11:36:19 +02:00
2015-02-16 16:27:41 +01:00
Cups 1.6 and newer also no longer supports automatic remote printers or
implicit classes via the CUPS, LDAP, or SLP protocols, i.e. " n e t w o r k
browsing" . T h i s i s n o w h a n d l e d b y c u p s - b r o w s e d s e r v i c e .
2007-01-16 00:08:16 +01:00
%package devel
Summary : Development Environment for CUPS
2010-03-18 23:08:54 +01:00
# Do not require the exact matching version-release of cups-libs
# but only a cups-libs package with matching version because
# for building third-party software which uses only the CUPS public API
# there are no CUPS-internal dependencies via CUPS private API calls
# (the latter would require the exact matching cups-libs version-release):
2017-05-23 10:06:08 +02:00
License : GPL-2.0
Group : Development/Libraries/C and C++
2010-03-18 23:08:54 +01:00
Requires : cups-libs = %{version}
2012-01-10 11:02:58 +01:00
Requires : glibc-devel
2007-01-16 00:08:16 +01:00
%description devel
2011-10-06 11:36:19 +02:00
The Common UNIX Printing System (CUPS) is the
standards-based, open source printing system.
See http://www.cups.org
2015-02-16 16:27:41 +01:00
Starting with cups 1.6 there were major changes as the filters
were split to cups-filters package developed independently and
default standard was changed.
2007-01-16 00:08:16 +01:00
2015-02-16 16:27:41 +01:00
Cups 1.6 and newer also no longer supports automatic remote printers or
implicit classes via the CUPS, LDAP, or SLP protocols, i.e. " n e t w o r k
browsing" . T h i s i s n o w h a n d l e d b y c u p s - b r o w s e d s e r v i c e .
2007-01-16 00:08:16 +01:00
2010-03-18 23:08:54 +01:00
%package ddk
Summary : CUPS Driver Development Kit
2015-02-16 16:27:41 +01:00
License : GPL-2.0
2010-03-18 23:08:54 +01:00
Group : Hardware/Printing
Requires : cups = %{version}
Requires : cups-devel = %{version}
# Since CUPS 1.4 the CUPS Driver Development Kit (DDK) is bundled with CUPS.
# For CUPS 1.2.x and 1.3.x, the DDK was separated software
# which we provided (up to openSUSE 11.1 / SLE11) in our cupsddk package:
Provides : cupsddk = %{version}
Obsoletes : cupsddk < %{version}
%description ddk
2011-10-06 11:36:19 +02:00
The Common UNIX Printing System (CUPS) is the
standards-based, open source printing system.
See http://www.cups.org
The CUPS Driver Development Kit (DDK) provides
a suite of standard drivers, a PPD file compiler,
and other utilities that can be used to develop
printer drivers for CUPS.
2015-02-16 16:27:41 +01:00
Starting with cups 1.6 there were major changes as the filters
were split to cups-filters package developed independently and
default standard was changed.
Cups 1.6 and newer also no longer supports automatic remote printers or
implicit classes via the CUPS, LDAP, or SLP protocols, i.e. " n e t w o r k
browsing" . T h i s i s n o w h a n d l e d b y c u p s - b r o w s e d s e r v i c e .
2010-01-27 16:30:41 +01:00
2007-01-16 00:08:16 +01:00
%prep
2015-02-16 16:27:41 +01:00
%setup -q
2010-03-18 23:08:54 +01:00
# Patch0...Patch9 is for patches from upstream:
2015-02-16 16:27:41 +01:00
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
2015-09-01 14:47:12 +02:00
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
%patch10 -b choose-uri-template.orig
# Patch11 cups-2.1.0-default-webcontent-path.patch changes the default path whereto the
2015-02-16 16:27:41 +01:00
# web content is installed from /usr/share/doc/cups to /usr/share/cups/webcontent
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
2010-05-07 15:35:59 +02:00
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments:
2015-09-01 14:47:12 +02:00
%patch11 -b default-webcontent-path.prig
# Patch12 cups-2.1.0-cups-systemd-socket.patch Use systemd socket activation properly:
%patch12 -b cups-systemd-socket.orig
2017-04-21 10:44:45 +02:00
# Patch13 0001-Update-cupsEnumDests-implementation-to-return-early-if-all.patch React properly to avahi's ALL_FOR_NOW signal to reduce unneeded delay
2017-04-12 16:14:55 +02:00
%patch13 -p1
2017-04-21 10:44:45 +02:00
# Patch14 0002-Save-work-on-Avahi-code.patch React properly to avahi's ALL_FOR_NOW signal to reduce unneeded delay
%patch14 -p1
# Patch15 0003-Avahi-fixes-for-cupsEnumDests.patch React properly to avahi's ALL_FOR_NOW signal to reduce unneeded delay
%patch15 -p1
2015-02-16 16:27:41 +01:00
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
2010-03-18 23:08:54 +01:00
%patch100
2015-07-01 15:50:32 +02:00
# Patch101 cups-2.0.3-additional_policies.patch adds the 'allowallforanybody' policy to cupsd.conf
# see https://fate.novell.com/303515 and https://bugzilla.suse.com/show_bug.cgi?id=936309
2015-02-16 16:27:41 +01:00
%patch101
# Patch103 cups-1.4-do_not_strip_recommended_from_PPDs.patch
# reverts the change which was added by Michael Sweet in Jan 2007
# which strips the word "recommended" from NickName in PPDs because
# at least yast2-printer in SUSE needs it, compare the
# 'Why not "recommend" PPDs in the NickName?' and the subsequent
# 'RFC: New Driver Rating/Information Attributes' mail thread on cups@easysw.com:
2010-03-18 23:08:54 +01:00
%patch103
2015-02-16 16:27:41 +01:00
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
2010-03-18 23:08:54 +01:00
%patch104
2007-01-16 00:08:16 +01:00
%build
2015-02-16 16:27:41 +01:00
# Remove ".SILENT" rule for verbose build output
sed 's#^.SILENT:##g' -i Makedefs.in
aclocal -I config-scripts
autoconf -I config-scripts
# Export the build options we desire
export CXXFLAGS=" $ C X X F L A G S %{optflags} - O 2 - f s t a c k - p r o t e c t o r - f P I E - f P I C "
export CFLAGS=" $ C F L A G S %{optflags} - f s t a c k - p r o t e c t o r - f P I E - f P I C "
export LDFLAGS=" - p i e "
export CXX=c++
export CC=cc
2015-09-01 14:47:12 +02:00
# As long as cups-2.1.0-default-webcontent-path.patch is applied
2010-05-07 15:35:59 +02:00
# configure --with-docdir=... would be no longer needed
2015-09-01 14:47:12 +02:00
# because cups-2.1.0-default-webcontent-path.patch changes the
2010-05-07 15:35:59 +02:00
# default with-docdir path whereto the web content is installed
# from /usr/share/doc/cups to /usr/share/cups/webcontent because the
# files of the CUPS web content are no documentation, see CUPS STR #3578
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments
# so that the new default could be used as is but upstream may accept
2015-09-01 14:47:12 +02:00
# cups-2.1.0-default-webcontent-path.patch in general but change its default
2015-02-16 16:27:41 +01:00
# so that with-docdir is explicitly set here to be future proof.
# Regarding --with-rundir and --with-domainsocket
# see https://www.cups.org/str.php?L4306 and
# http://lists.opensuse.org/opensuse-factory/2013-01/msg00578.html
# --without-perl/php - neither actually work correctly so rather disable
# --without-xinetd - socket activation from systemd works better
# --enable-debug - avoids stripping of binaries
# --enable-relro - force relro sections in binaries/libs
%configure \
--enable-debug \
--enable-relro \
--enable-option-checking \
--with-docdir=%{_datadir} /cups/webcontent \
--with-cups-user=lp \
--with-cups-group=lp \
--with-system-groups=root \
--enable-debug \
--enable-debug-printfs \
--enable-relro \
--enable-gssapi \
--enable-libusb \
--disable-static \
--without-rcdir \
--enable-dbus \
--with-cachedir=%{_localstatedir} /cache/cups \
--with-rundir=/run/cups \
--with-domainsocket=/run/cups/cups.sock \
--enable-dbus \
--enable-pam \
--enable-threads \
--enable-gnutls \
--enable-systemd \
--enable-avahi --disable-dnssd \
--enable-libpaper \
--without-perl \
--without-php \
--with-xinetd=no \
--enable-webif \
localedir=%{_datadir} /locale
make %{?_smp_mflags}
2007-01-16 00:08:16 +01:00
%install
2014-02-14 09:37:00 +01:00
make BUILDROOT=%{buildroot} install
2014-01-10 12:35:07 +01:00
# Use CUPS' own fonts (i.e. make CUPS work again in compliance with upstream).
# In ancient times (see the RPM changelog entry dated "Thu Aug 16 17:05:19 CEST 2001")
# there was the general opinion it would be a great idea to deviate from CUPS upstream
# and save some disk space and do not install CUPS' own fonts in CUPS' own font directory.
# Therefore CUPS' own fonts were removed and the CUPS font directory was replaced
# by a symbolic link /usr/share/cups/fonts -> ../ghostscript/fonts
# because at that times the Ghostscript fonts had been the same as CUPS' own fonts.
# In any case such a link is a fragile non-future-proof interference because when either
# the Ghostscript fonts or CUPS' own fonts change, linking them as same is wrong.
# Meanwhile (I don't know exactly since when but since a long time) the Ghostscript fonts
# do no longer work for CUPS' particular needs (CUPS has its own fonts because it needs them).
# Nobody noticed it until 2014 via https://bugzilla.novell.com/show_bug.cgi?id=856731
# But it is not possible with RPM to replace a directory by a symbolic link or vice versa
# see https://bugzilla.novell.com/show_bug.cgi?id=856731#c7
# and https://bugzilla.novell.com/show_bug.cgi?id=856731#c8
# This means /usr/share/cups/fonts must stay forever as a symbolic link
# and the only way out is to move CUPS' own fonts to an artificial
# surrogate directory /usr/share/cups/CUPSfonts and have the
# symbolic link /usr/share/cups/fonts -> /usr/share/cups/CUPSfonts:
2015-02-16 16:27:41 +01:00
pushd %{buildroot} %{_datadir} /cups/
2014-01-10 12:35:07 +01:00
mv fonts CUPSfonts && ln -s CUPSfonts fonts
popd
2010-03-31 19:57:49 +02:00
# Make directory for ssl files:
2014-02-14 09:37:00 +01:00
mkdir -p %{buildroot} %{_sysconfdir} /cups/ssl
2010-03-31 19:57:49 +02:00
# Add a client.conf as template (Source108: cups-client.conf):
2014-02-14 09:37:00 +01:00
install -m644 %{SOURCE108} %{buildroot} %{_sysconfdir} /cups/client.conf
2010-03-31 19:57:49 +02:00
# Make the libraries accessible also via generic named links:
2014-02-14 09:37:00 +01:00
ln -sf libcupsimage.so.2 %{buildroot} %{_libdir} /libcupsimage.so
ln -sf libcups.so.2 %{buildroot} %{_libdir} /libcups.so
2010-03-31 19:57:49 +02:00
# Add missing usual directories:
2014-02-14 09:37:00 +01:00
install -d -m755 %{buildroot} %{_datadir} /cups/drivers
2015-02-16 16:27:41 +01:00
install -d -m755 %{buildroot} %{_localstatedir} /cache/cups
2010-03-31 19:57:49 +02:00
# Add conf/pam.suse regarding support for PAM (see Patch100: cups-pam.diff):
2015-02-16 16:27:41 +01:00
install -m 644 -D conf/pam.suse %{buildroot} %{_sysconfdir} /pam.d/cups
2011-12-06 15:51:06 +01:00
# Add missing usual documentation:
2014-02-14 09:37:00 +01:00
install -d -m755 %{buildroot} /%{_defaultdocdir} /cups
2010-03-31 19:57:49 +02:00
for f in CHANGES*.txt CREDITS.txt INSTALL.txt LICENSE.txt README.txt
2014-02-14 09:37:00 +01:00
do install -m 644 " $ f " %{buildroot} %{_defaultdocdir} /cups/
2007-01-16 00:08:16 +01:00
done
2015-02-16 16:27:41 +01:00
# Add generic PostScript printer PPDs:
# Source102: Postscript.ppd.gz
install -m 644 %{SOURCE102} %{buildroot} %{_datadir} /cups/model/Postscript.ppd.gz
# Source105: Postscript-level1.ppd,gz
install -m 644 %{SOURCE105} %{buildroot} %{_datadir} /cups/model/Postscript-level1.ppd.gz
# Source106: Postscript-level2.ppd.gz
install -m 644 %{SOURCE106} %{buildroot} %{_datadir} /cups/model/Postscript-level2.ppd.gz
2016-07-01 15:52:54 +02:00
# Rm files for desktop menu:
2015-02-16 16:27:41 +01:00
rm -f %{buildroot} %{_datadir} /applications/cups.desktop
rm -rf %{buildroot} %{_datadir} /icons
2012-08-01 12:50:21 +02:00
# Save /etc/cups/cupsd.conf and /etc/cups/cupsd.conf.default from becoming hardlinked
# via the fdupes run below, see https://bugzilla.novell.com/show_bug.cgi?id=773971
# by making their content different and at the same time fix the misleading comment.
# Intentionally let the build fail if 'grep' does not find what 'sed' should change
2015-02-16 16:27:41 +01:00
# because if upstream changed it 'sed' would silently no longer change the files:
grep -q '^# Configuration ' %{buildroot} /%{_sysconfdir} /cups/cupsd.conf.default
sed -i -e 's/^# Configuration /# Default configuration /' %{buildroot} /%{_sysconfdir} /cups/cupsd.conf.default
# install the systemd control files
mv %{buildroot} %{_unitdir} /org.cups.cupsd.path %{buildroot} %{_unitdir} /cups.path
mv %{buildroot} %{_unitdir} /org.cups.cupsd.service %{buildroot} %{_unitdir} /cups.service
mv %{buildroot} %{_unitdir} /org.cups.cupsd.socket %{buildroot} %{_unitdir} /cups.socket
mv %{buildroot} %{_unitdir} /org.cups.cups-lpd.socket %{buildroot} %{_unitdir} /cups-lpd.socket
mv %{buildroot} %{_unitdir} /org.cups.cups-lpd@.service %{buildroot} %{_unitdir} /cups-lpd@.service
sed -i -e " s , o r g . c u p s . c u p s d , c u p s , g " %{buildroot} %{_unitdir} /cups.service
# rcbla aliases
ln -s service %{buildroot} %{_sbindir} /rccups
ln -s service %{buildroot} %{_sbindir} /rccups-lpd
2014-02-14 09:37:00 +01:00
# Install /usr/lib/tmpfiles.d/cups.conf
mkdir -p %{buildroot} %{_tmpfilesdir}
cat > %{buildroot} %{_tmpfilesdir} /cups.conf <<EOF
2013-10-09 10:41:40 +02:00
# See tmpfiles.d(5) for details
d /run/cups 0755 root lp -
d /run/cups/certs 0511 lp sys -
2015-02-16 16:27:41 +01:00
d %{_localstatedir} /spool/cups/tmp - - - 30d
2013-10-09 10:41:40 +02:00
EOF
2014-01-29 16:05:09 +01:00
# Never run fdupes carelessly over the whole buildroot directory
# because in older openSUSE and SLE11 versions fdupes
# links files with different owner, group, or permissions
# see https://bugzilla.novell.com/show_bug.cgi?id=784670
2015-02-16 16:27:41 +01:00
# and even in current openSUSE versions fdupes links across sub-package
# boundaries, compare https://bugzilla.novell.com/show_bug.cgi?id=784869
2014-09-02 15:58:54 +02:00
%fdupes -s %{buildroot} /%{_datadir} /cups/templates
2007-01-16 00:08:16 +01:00
2015-07-01 15:50:32 +02:00
%pre -p /bin/bash
2015-02-16 16:27:41 +01:00
getent group ntadmin >/dev/null || %{_sbindir} /groupadd -g 71 -o -r ntadmin 2>/dev/null
%service_add_pre cups.service cups-lpd@.service cups-lpd.socket cups.socket
2007-01-16 00:08:16 +01:00
2015-07-01 15:50:32 +02:00
%post -p /bin/bash
2015-02-16 16:27:41 +01:00
%service_add_post cups.service cups-lpd@.service cups-lpd.socket cups.socket
2015-09-01 09:38:56 +02:00
# Use %%tmpfiles_create when 13.2 is oldest in support scope
2015-06-25 10:03:07 +02:00
/usr/bin/systemd-tmpfiles --create %{_tmpfilesdir} /cups.conf || :
2007-01-16 00:08:16 +01:00
2015-07-01 15:50:32 +02:00
%preun -p /bin/bash
2015-02-16 16:27:41 +01:00
%service_del_preun cups.service cups-lpd@.service cups-lpd.socket cups.socket
2007-01-16 00:08:16 +01:00
2015-07-01 15:50:32 +02:00
%postun -p /bin/bash
2015-02-16 16:27:41 +01:00
%service_del_postun cups.service cups-lpd@.service cups-lpd.socket cups.socket
2010-03-31 19:57:49 +02:00
2015-07-01 15:50:32 +02:00
%posttrans -p /bin/bash
2014-11-25 17:11:18 +01:00
# Use a real bash script with an explicit "exit 0" at the end to be by default fail safe
# an explicit "exit 1" must be use to enforce package install/upgrade/erase failure where needed
# see the "Shared_libraries" section in http://en.opensuse.org/openSUSE:Packaging_scriptlet_snippets
# Begin refresh systemd units and clean up possibly obsolete systemd units
# The following is a generic way how to refresh and/or clean up systemd units.
# A systemd unit may need a refresh after updating a package when the new package
# had installed a changed systemd unit file for an enabled systemd unit.
# A systemd unit may become obsolete by updating a package (see bnc#904215).
# A systemd unit is considered to have become obsolete when the systemd
# symlink /etc/systemd/system/.../unit_name -> /path/to/unit_file is broken.
# When during package update the new package does no longer provide a unit file
# then the systemd symlink becomes broken after the files of the old package
# had been actually removed by RPM.
# According to /usr/share/doc/packages/rpm/manual/triggers and according
# to https://en.opensuse.org/openSUSE:Packaging_scriptlet_snippets#Scriptlet_Ordering
# and http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Scriptlet_Ordering
# from the new package only "posttrans of new package" is run after "removal of old package"
# so that the new package must do the clean up as RPM posttrans scriptlet.
2015-02-16 16:27:41 +01:00
for u in cups.service cups.socket cups.path; do
if systemctl --quiet is-enabled $u 2>/dev/null
2014-11-25 17:11:18 +01:00
then # Refresh still valid enabled systemd units and clean up possibly obsoleted systemd units:
# Enforce systemd to use the current unit file which is usually the unit file of the new package
# but also in case of custom units (that use other unit files) a "reenable" won't hurt because
# "reenable" does not implicitly stop a running service which is "the right thing" because
# a RPM package installation must not automatically disrupt (restart) a running service.
# Using "--force reenable" is essential to clean up possibly conflicting/broken symlinks.
# (without "|| :" build fails with "Failed to get D-Bus connection: No connection to service manager. posttrans script ... failed"):
systemctl --quiet --force reenable $u 2>/dev/null || :
else # Refresh still valid disabled systemd units and clean up possibly obsoleted systemd units:
# First using "--force reenable" is essential to clean up possibly conflicting/broken symlinks
# because there is no "--force disable" that would clean up possibly conflicting/broken symlinks
# see https://bugzilla.opensuse.org/show_bug.cgi?id=904215#c34
# so that first the unit has a clean state and then it is set back to disabled (as it was before).
# If a disabled systemd unit has become obsoleted, "systemctl --force reenable" will clean it up
# which means the unit gets removed and the subsequent "systemctl disable" will do nothing.
# (without "|| :" build fails with "Failed to get D-Bus connection: No connection to service manager. posttrans script ... failed"):
systemctl --quiet --force reenable $u 2>/dev/null || :
systemctl --quiet disable $u 2>/dev/null || :
fi
done
exit 0
2015-02-16 16:27:41 +01:00
%post libs -p /sbin/ldconfig
2010-03-31 19:57:30 +02:00
2015-02-16 16:27:41 +01:00
%postun libs -p /sbin/ldconfig
2010-03-31 19:57:49 +02:00
2011-10-06 11:36:19 +02:00
%files
2015-02-16 16:27:41 +01:00
%defattr (-,root,root)
2012-02-21 09:52:18 +01:00
# In particular all executables are listed explicitly.
2010-03-31 19:57:49 +02:00
# This avoids that CUPS' configure magic might silently
# not build and install an executable when whatever condition
2015-02-16 16:27:41 +01:00
# for configure's automated tests is not fulfilled in the build system.
# See https://bugzilla.novell.com/show_bug.cgi?id=526847#c9
%config (noreplace) %attr (640,root,lp) %{_sysconfdir} /cups/cups-files.conf
2010-03-18 23:08:53 +01:00
%config (noreplace) %attr (640,root,lp) %{_sysconfdir} /cups/cupsd.conf
%config (noreplace) %attr (640,root,lp) %{_sysconfdir} /cups/snmp.conf
2010-03-18 23:08:54 +01:00
%config %{_sysconfdir} /pam.d/cups
2010-05-07 15:35:59 +02:00
%config %{_sysconfdir} /dbus-1/system.d/cups.conf
2015-02-16 16:27:41 +01:00
%config %{_sysconfdir} /cups/cupsd.conf.default
2015-09-01 14:47:12 +02:00
%config %{_sysconfdir} /cups/cups-files.conf.default
%config %{_sysconfdir} /cups/snmp.conf.default
2015-02-16 16:27:41 +01:00
%dir %attr (755,root,lp) %{_sysconfdir} /cups/interfaces
2010-03-18 23:08:54 +01:00
%dir %attr (755,root,lp) %{_sysconfdir} /cups/ppd
2015-02-16 16:27:41 +01:00
%dir %attr (700,root,lp) %{_sysconfdir} /cups/ssl
2014-02-14 09:37:00 +01:00
%{_unitdir} /cups.service
2015-02-16 16:27:41 +01:00
%{_unitdir} /cups.socket
%{_unitdir} /cups.path
%{_unitdir} /cups-lpd.socket
%{_unitdir} /cups-lpd@.service
2014-02-14 09:37:00 +01:00
%{_tmpfilesdir} /cups.conf
2007-01-16 00:08:16 +01:00
%{_bindir} /cupstestppd
%{_sbindir} /cupsaddsmb
2007-10-16 02:39:15 +02:00
%{_sbindir} /cupsctl
2007-01-16 00:08:16 +01:00
%{_sbindir} /cupsd
2007-10-16 02:39:15 +02:00
%{_sbindir} /cupsfilter
2010-03-18 23:08:54 +01:00
%{_sbindir} /rccups
2015-02-16 16:27:41 +01:00
%{_sbindir} /rccups-lpd
%dir %{_libexecdir} /cups
%dir %{_libexecdir} /cups/backend
%{_libexecdir} /cups/backend/dnssd
%{_libexecdir} /cups/backend/http
%{_libexecdir} /cups/backend/https
%{_libexecdir} /cups/backend/ipp
%{_libexecdir} /cups/backend/ipps
%{_libexecdir} /cups/backend/lpd
%{_libexecdir} /cups/backend/snmp
%{_libexecdir} /cups/backend/socket
%{_libexecdir} /cups/backend/usb
%dir %{_libexecdir} /cups/cgi-bin
%{_libexecdir} /cups/cgi-bin/admin.cgi
%{_libexecdir} /cups/cgi-bin/classes.cgi
%{_libexecdir} /cups/cgi-bin/help.cgi
%{_libexecdir} /cups/cgi-bin/jobs.cgi
%{_libexecdir} /cups/cgi-bin/printers.cgi
%dir %{_libexecdir} /cups/daemon
%{_libexecdir} /cups/daemon/cups-deviced
%{_libexecdir} /cups/daemon/cups-driverd
%{_libexecdir} /cups/daemon/cups-exec
%{_libexecdir} /cups/daemon/cups-lpd
%dir %{_libexecdir} /cups/driver
%dir %{_libexecdir} /cups/filter
%{_libexecdir} /cups/filter/commandtops
%{_libexecdir} /cups/filter/gziptoany
%{_libexecdir} /cups/filter/pstops
%{_libexecdir} /cups/filter/rastertodymo
%{_libexecdir} /cups/filter/rastertoepson
%{_libexecdir} /cups/filter/rastertohp
%{_libexecdir} /cups/filter/rastertolabel
%{_libexecdir} /cups/filter/rastertopwg
%dir %{_libexecdir} /cups/monitor
%{_libexecdir} /cups/monitor/bcp
%{_libexecdir} /cups/monitor/tbcp
%dir %{_libexecdir} /cups/notifier
%{_libexecdir} /cups/notifier/dbus
%{_libexecdir} /cups/notifier/mailto
%{_libexecdir} /cups/notifier/rss
2010-03-18 23:08:54 +01:00
%dir %attr (0775,root,ntadmin) %{_datadir} /cups/drivers
%doc %{_defaultdocdir} /cups
2015-02-16 16:27:41 +01:00
%doc %{_mandir} /man1/cups.1.gz
2010-03-18 23:08:54 +01:00
%doc %{_mandir} /man1/cupstestppd.1.gz
%doc %{_mandir} /man5/classes.conf.5.gz
%doc %{_mandir} /man5/client.conf.5.gz
%doc %{_mandir} /man5/cups-snmp.conf.5.gz
2015-02-16 16:27:41 +01:00
%doc %{_mandir} /man5/cups-files.conf.5.gz
2015-08-21 09:09:25 +02:00
%doc %{_mandir} /man5/cupsd-logs.5.gz
2010-03-18 23:08:54 +01:00
%doc %{_mandir} /man5/cupsd.conf.5.gz
%doc %{_mandir} /man5/mailto.conf.5.gz
%doc %{_mandir} /man5/mime.convs.5.gz
%doc %{_mandir} /man5/mime.types.5.gz
%doc %{_mandir} /man5/printers.conf.5.gz
%doc %{_mandir} /man5/subscriptions.conf.5.gz
%doc %{_mandir} /man7/backend.7.gz
%doc %{_mandir} /man7/filter.7.gz
%doc %{_mandir} /man7/notifier.7.gz
%doc %{_mandir} /man8/cups-deviced.8.gz
%doc %{_mandir} /man8/cups-driverd.8.gz
2015-02-16 16:27:41 +01:00
%doc %{_mandir} /man8/cups-exec.8.gz
2010-03-18 23:08:54 +01:00
%doc %{_mandir} /man8/cups-lpd.8.gz
2015-02-16 16:27:41 +01:00
%doc %{_mandir} /man8/cups-snmp.8.gz
2010-03-18 23:08:54 +01:00
%doc %{_mandir} /man8/cupsaddsmb.8.gz
%doc %{_mandir} /man8/cupsctl.8.gz
%doc %{_mandir} /man8/cupsd.8.gz
2015-02-16 16:27:41 +01:00
%doc %{_mandir} /man8/cupsd-helper.8.gz
2010-03-18 23:08:54 +01:00
%doc %{_mandir} /man8/cupsfilter.8.gz
%{_datadir} /cups/
%exclude %{_datadir} /cups/ppdc/
2007-01-16 00:08:16 +01:00
2011-10-06 11:36:19 +02:00
%files client
2007-01-16 00:08:16 +01:00
%defattr (-,root,root)
2010-03-18 23:08:54 +01:00
%{_bindir} /cancel
%{_bindir} /cupstestdsc
2015-02-16 16:27:41 +01:00
%{_bindir} /ippfind
2011-10-06 11:36:19 +02:00
%{_bindir} /ipptool
2007-01-16 00:08:16 +01:00
%{_bindir} /lp
%{_bindir} /lpoptions
%{_bindir} /lpq
%{_bindir} /lpr
%{_bindir} /lprm
%{_bindir} /lpstat
%{_sbindir} /accept
2010-03-18 23:08:54 +01:00
%{_sbindir} /cupsaccept
%{_sbindir} /cupsdisable
%{_sbindir} /cupsenable
%{_sbindir} /cupsreject
%{_sbindir} /lpadmin
%{_sbindir} /lpc
%{_sbindir} /lpinfo
%{_sbindir} /lpmove
2007-01-16 00:08:16 +01:00
%{_sbindir} /reject
2010-03-18 23:08:54 +01:00
%doc %{_mandir} /man1/cancel.1.gz
%doc %{_mandir} /man1/cupstestdsc.1.gz
2015-02-16 16:27:41 +01:00
%doc %{_mandir} /man1/ippfind.1.gz
2011-10-06 11:36:19 +02:00
%doc %{_mandir} /man1/ipptool.1.gz
2010-03-18 23:08:54 +01:00
%doc %{_mandir} /man1/lp.1.gz
%doc %{_mandir} /man1/lpoptions.1.gz
%doc %{_mandir} /man1/lpq.1.gz
%doc %{_mandir} /man1/lpr.1.gz
%doc %{_mandir} /man1/lprm.1.gz
%doc %{_mandir} /man1/lpstat.1.gz
2011-10-06 11:36:19 +02:00
%doc %{_mandir} /man5/ipptoolfile.5.gz
2010-03-18 23:08:54 +01:00
%doc %{_mandir} /man8/accept.8.gz
%doc %{_mandir} /man8/cupsaccept.8.gz
%doc %{_mandir} /man8/cupsdisable.8.gz
%doc %{_mandir} /man8/cupsenable.8.gz
%doc %{_mandir} /man8/cupsreject.8.gz
%doc %{_mandir} /man8/lpadmin.8.gz
%doc %{_mandir} /man8/lpc.8.gz
%doc %{_mandir} /man8/lpinfo.8.gz
%doc %{_mandir} /man8/lpmove.8.gz
%doc %{_mandir} /man8/reject.8.gz
2007-01-16 00:08:16 +01:00
%files devel
%defattr (-,root,root)
2010-03-18 23:08:54 +01:00
%{_includedir} /cups/
2007-05-25 00:40:10 +02:00
%{_libdir} /libcups.so
%{_libdir} /libcupsimage.so
2010-03-18 23:08:54 +01:00
%{_libdir} /libcupscgi.so
%{_libdir} /libcupsmime.so
%{_libdir} /libcupsppdc.so
%{_datadir} /cups/ppdc/
%files ddk
%defattr (-,root,root)
%{_bindir} /ppdc
%{_bindir} /ppdhtml
%{_bindir} /ppdi
%{_bindir} /ppdmerge
%{_bindir} /ppdpo
%doc %{_mandir} /man1/ppdc.1.gz
%doc %{_mandir} /man1/ppdhtml.1.gz
%doc %{_mandir} /man1/ppdi.1.gz
%doc %{_mandir} /man1/ppdmerge.1.gz
%doc %{_mandir} /man1/ppdpo.1.gz
%doc %{_mandir} /man5/ppdcfile.5.gz
2007-01-16 00:08:16 +01:00
%files libs
%defattr (-,root,root)
2017-03-31 13:31:24 +02:00
%if 0%{?suse_version} >= 1330
%dir %attr (0755,root,lp) /etc/cups
%endif
2010-03-18 23:08:54 +01:00
%config (noreplace) %{_sysconfdir} /cups/client.conf
2008-01-17 22:30:43 +01:00
%dir %attr (0710,root,lp) %{_var}/spool/cups
%dir %attr (1770,root,lp) %{_var}/spool/cups/tmp
2007-01-16 00:08:16 +01:00
%dir %attr (0755,lp,lp) %{_var}/log/cups/
2010-03-18 23:08:54 +01:00
%dir %attr (0775,lp,lp) %{_var}/cache/cups
%{_bindir} /cups-config
2007-05-25 00:40:10 +02:00
%{_libdir} /libcups.so.*
2010-03-18 23:08:54 +01:00
%{_libdir} /libcupscgi.so.*
2007-05-25 00:40:10 +02:00
%{_libdir} /libcupsimage.so.*
2010-03-18 23:08:54 +01:00
%{_libdir} /libcupsmime.so.*
%{_libdir} /libcupsppdc.so.*
2007-01-16 00:08:16 +01:00
%{_datadir} /locale/*/cups_*
2010-03-18 23:08:54 +01:00
%doc %{_mandir} /man1/cups-config.1.gz
2007-12-18 18:29:38 +01:00
2007-02-23 12:29:03 +01:00
%changelog