Accepting request 533920 from home:jengelh:branches:Printing

- Implement shared library packaging guideline [boo#862112]

OBS-URL: https://build.opensuse.org/request/show/533920
OBS-URL: https://build.opensuse.org/package/show/Printing/cups?expand=0&rev=336
This commit is contained in:
Johannes Meixner 2017-10-17 09:55:46 +00:00 committed by Git OBS Bridge
parent 94d66159be
commit c750c051a2
3 changed files with 155 additions and 86 deletions

View File

@ -1,2 +1,6 @@
cups-libs
libcups2
libcupscgi1
libcupsimage2
libcupsmime1
libcupsppdc1
cups-devel

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Fri Oct 13 11:11:10 UTC 2017 - jengelh@inai.de
- Implement shared library packaging guideline [boo#862112]
- Update package descriptions.
-------------------------------------------------------------------
Sat Sep 30 08:52:42 UTC 2017 - jengelh@inai.de
- Remove redundant Requires(pre) line — the use of %post -p
already implies it.
-------------------------------------------------------------------
Wed Sep 20 08:24:24 UTC 2017 - schwab@suse.de

223
cups.spec
View File

@ -104,7 +104,7 @@ BuildRequires: pkgconfig(systemd)
# all are built simulaneously from the same cups source package
# and all required packages are provided on the same repository:
Requires: cups-client = %{version}-%{release}
Requires: cups-libs = %{version}-%{release}
Requires: cups-config = %{version}-%{release}
Requires(pre): %{_sbindir}/groupadd
Requires(pre): coreutils
# Since CUPS 1.6 all non-Mac filters are dropped
@ -115,12 +115,12 @@ Recommends: foomatic-filters
# The Ghostscript device "cups" is needed by several CUPS filters
# (in particular the "rasterto..." filters) which might justify a RPM Requires.
# But a RPM requirement for ghostscript would cause a build dependency cycle because
# cups Requires ghostscript which BuildRequires cups-devel which Requires cups-libs
# and cups-libs is a sub-package of cups so that there is an implicit build dependency
# cups Requires ghostscript which BuildRequires cups-devel which Requires libcups2
# and libcups2 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
# Furthermore, Ghostscript is not needed on a system where those CUPS filters are not used
# (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:
# or on a CUPS server with only "raw" queues), so that a weak Recommends fits better:
Recommends: ghostscript
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{?systemd_requires}
@ -132,102 +132,146 @@ Conflicts: lprold
Conflicts: plp
%description
The Common UNIX Printing System (CUPS) is the
standards-based, open source printing system.
CUPS is a modular printing system which allows a computer to act as a
print server. A computer running CUPS is a host that can accept print
jobs from client computers, process them, and send them to the
appropriate printer.
See http://www.cups.org
CUPS consists of a print spooler and scheduler, a filter system that
converts the print data to a format that the printer will understand,
and a backend system that sends this data to the print device. CUPS
uses the Internet Printing Protocol (IPP) as the basis for managing
print jobs and queues. It also provides the traditional command line
interfaces for the System V and Berkeley print systems, and provides
support for the Berkeley print system's Line Printer Daemon protocol
and limited support for the server message block (SMB) protocol.
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 comes with a built-in web-based interface.
Cups 1.6 and newer also no longer supports automatic remote printers or
implicit classes via the CUPS, LDAP, or SLP protocols, i.e. "network
browsing". This is now handled by cups-browsed service.
%package -n libcups2
Summary: HTTP/IPP communication and printer queue and job library
License: GPL-2.0 and LGPL-2.1
Group: System/Libraries
Requires: cups-config
Obsoletes: cups-libs < %{version}-%{release}
Provides: cups-libs = %{version}-%{release}
%package libs
Summary: Libraries for CUPS
%description -n libcups2
The CUPS library contains all of the core HTTP and IPP communications
code as well as convenience functions for queuing print jobs, getting
printer information, accessing resources via HTTP and IPP, and
manipulating PPD files. The scheduler and all commands, filters, and
backends use this library.
%package -n libcupscgi1
Summary: CUPS web interface support function library
License: GPL-2.0 and LGPL-2.1
Group: System/Libraries
%description -n libcupscgi1
The CUPS CGI library provides all of the web interface support
functions. It is used by the CGI programs to provide the CUPS web
interface.
%package -n libcupsimage2
Summary: CUPS library for working with large images
License: GPL-2.0 and LGPL-2.1
Group: System/Libraries
%description -n libcupsimage2
The CUPS imaging library provides functions for managing large
images, doing colorspace conversion and color management, scaling
images for printing, and managing raster page streams. It is used by
the CUPS image file filters, the PostScript RIP, and all raster
printers drivers.
%package -n libcupsmime1
Summary: MIME database file routines for CUPS
License: GPL-2.0 and LGPL-2.1
Group: System/Libraries
%description -n libcupsmime1
The CUPS MIME library provides file typing and conversion functions
and is used by the scheduler and cupsfilter(8) command to auto-type
and convert print files to a printable format.
%package -n libcupsppdc1
Summary: CUPS PostScript Printer Description (PPD) file compiler library
License: GPL-2.0 and LGPL-2.1
Group: System/Libraries
%description -n libcupsppdc1
The CUPS PPD compiler library provides access to driver information
files and is used by the PPD compiler tools as well as the
cups-driverd(8) helper program to generate PPD files and message
catalogs for localization.
%package config
Summary: CUPS library configuration files
License: GPL-2.0 and LGPL-2.1
Group: Hardware/Printing
# Prerequire /sbin/ldconfig which is used in the traditional bash scriptlets for post/postun:
Requires(pre): /sbin/ldconfig
%if 0%{?suse_version} >= 1330
Requires(pre): user(lp)
Requires(pre): group(lp)
%endif
%description libs
The Common UNIX Printing System (CUPS) is the
standards-based, open source printing system.
%description config
CUPS is a modular printing system which allows a computer to act as a
print server.
See http://www.cups.org
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. "network
browsing". This is now handled by cups-browsed service.
This subpackage contains some basic configuration files for its
operation.
%package client
Summary: CUPS Client Programs
License: GPL-2.0
Group: Hardware/Printing
# Require the exact matching version-release of the cups-libs sub-package because
# Require the exact matching version-release of the libcups* sub-packages 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
# because all CUPS software is built from the one same CUPS source tarball
# 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
# The exact matching version-release of the libcups* sub-packages is available
# on the same package repository where the cups package is because
# all are built simulaneously from the same cups source package
# all are built simultaneously from the same cups source package
# and all required packages are provided on the same repository:
Requires: cups-libs = %{version}-%{release}
License: GPL-2.0
Group: Hardware/Printing
Requires: libcups2 = %{version}-%{release}
# Conflicts with other print spoolers which provide same binaries like /usr/bin/lp and so on:
Conflicts: lprng
Conflicts: lprold
Conflicts: plp
%description client
The Common UNIX Printing System (CUPS) is the
standards-based, open source printing system.
CUPS is a modular printing system which allows a computer to act as a
print server. A computer running CUPS is a host that can accept print
jobs from client computers, process them, and send them to the
appropriate printer.
See http://www.cups.org
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. "network
browsing". This is now handled by cups-browsed service.
This package contains the traditional command line interfaces for the
System V and Berkeley print systems.
%package devel
Summary: Development Environment for CUPS
License: GPL-2.0
Group: Development/Libraries/C and C++
# 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):
Requires: cups-libs = %{version}
License: GPL-2.0
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libcupppdc1 = %{version}
Requires: libcups2 = %{version}
Requires: libcupscgi1 = %{version}
Requires: libcupsimage2 = %{version}
Requires: libcupsmime1 = %{version}
%description devel
The Common UNIX Printing System (CUPS) is the
standards-based, open source printing system.
CUPS is a modular printing system which allows a computer to act as a
print server.
See http://www.cups.org
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. "network
browsing". This is now handled by cups-browsed service.
This subpackage contains the header files for developing applications
that want to make use of libcups for adding print support.
%package ddk
Summary: CUPS Driver Development Kit
@ -242,24 +286,11 @@ Provides: cupsddk = %{version}
Obsoletes: cupsddk < %{version}
%description ddk
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.
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. "network
browsing". This is now handled by cups-browsed service.
%prep
%setup -q
# Patch0...Patch9 is for patches from upstream:
@ -451,7 +482,7 @@ EOF
%fdupes -s %{buildroot}/%{_datadir}/cups/templates
%pre -p /bin/bash
getent group ntadmin >/dev/null || %{_sbindir}/groupadd -g 71 -o -r ntadmin 2>/dev/null
getent group ntadmin >/dev/null || %{_sbindir}/groupadd -g 71 -o -r ntadmin
%service_add_pre cups.service cups-lpd@.service cups-lpd.socket cups.socket
%post -p /bin/bash
@ -508,9 +539,16 @@ for u in cups.service cups.socket cups.path; do
done
exit 0
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%post -n libcups2 -p /sbin/ldconfig
%postun -n libcups2 -p /sbin/ldconfig
%post -n libcupscgi1 -p /sbin/ldconfig
%postun -n libcupscgi1 -p /sbin/ldconfig
%post -n libcupsimage2 -p /sbin/ldconfig
%postun -n libcupsimage2 -p /sbin/ldconfig
%post -n libcupsmime1 -p /sbin/ldconfig
%postun -n libcupsmime1 -p /sbin/ldconfig
%post -n libcupsppdc1 -p /sbin/ldconfig
%postun -n libcupsppdc1 -p /sbin/ldconfig
%files
%defattr(-,root,root)
@ -680,7 +718,27 @@ exit 0
%doc %{_mandir}/man1/ppdpo.1.gz
%doc %{_mandir}/man5/ppdcfile.5.gz
%files libs
%files -n libcups2
%defattr(-,root,root)
%{_libdir}/libcups.so.2
%files -n libcupscgi1
%defattr(-,root,root)
%{_libdir}/libcupscgi.so.1
%files -n libcupsimage2
%defattr(-,root,root)
%{_libdir}/libcupsimage.so.2
%files -n libcupsmime1
%defattr(-,root,root)
%{_libdir}/libcupsmime.so.1
%files -n libcupsppdc1
%defattr(-,root,root)
%{_libdir}/libcupsppdc.so.1
%files config
%defattr(-,root,root)
%if 0%{?suse_version} >= 1330
%dir %attr(0755,root,lp) /etc/cups
@ -691,11 +749,6 @@ exit 0
%dir %attr(0755,lp,lp) %{_var}/log/cups/
%dir %attr(0775,lp,lp) %{_var}/cache/cups
%{_bindir}/cups-config
%{_libdir}/libcups.so.*
%{_libdir}/libcupscgi.so.*
%{_libdir}/libcupsimage.so.*
%{_libdir}/libcupsmime.so.*
%{_libdir}/libcupsppdc.so.*
%{_datadir}/locale/*/cups_*
%doc %{_mandir}/man1/cups-config.1.gz