2012-02-24 16:09:50 +01:00
#
# spec file for package ghostscript
#
2021-03-08 11:18:16 +01:00
# Copyright (c) 2021 SUSE LLC
2012-02-24 16:09:50 +01: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.
2019-08-20 12:24:25 +02:00
# Please submit bugfixes or comments via https://bugs.opensuse.org/
2012-02-24 16:09:50 +01:00
#
2014-03-27 14:53:38 +01:00
2012-02-24 16:09:50 +01:00
Name : ghostscript
2015-03-20 10:54:15 +01:00
# SLE12 needs special BuildRequires.
# For suse_version values see https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto
%if 0%{?suse_version} == 1315
# For SLE12 by default CUPS 1.7.5 is provided and alternatively CUPS 1.5.4 is provided in the "legacy" module.
# For SLE12 build it with traditional CUPS 1.5.4 to ensure it works on SLE12 both with CUPS 1.7.5 and CUPS 1.5.4
# because libcups and libcupsimage in CUPS 1.7.5 are backward compatible with CUPS 1.5.4 so that applications
# that have been built with CUPS 1.5.4 also work under CUPS 1.7.5 but the libraries in CUPS 1.7.5 provide
# some additional functions so that applications that have been built with CUPS 1.7.5 and use those
# additional functions would not work under CUPS 1.7.5.
# Only in the Printing project for SLE12 use cups154-ddk (a sub package of the cups154-SLE12 source package):
BuildRequires : cups154-devel
%else
# Anything what is not SLE12 (i.e. SLE11 and all openSUSE versions) have "normal" BuildRequires:
2012-02-24 16:09:50 +01:00
BuildRequires : cups-devel
2015-03-20 10:54:15 +01:00
%endif
2012-04-27 14:58:11 +02:00
# dbus-1-devel is needed for "configure --enable-dbus" (see below):
BuildRequires : dbus-1-devel
2012-02-24 16:09:50 +01:00
BuildRequires : freetype2-devel
BuildRequires : libexpat-devel
2015-11-19 13:58:39 +01:00
BuildRequires : libjpeg-devel
2018-03-16 14:33:21 +01:00
BuildRequires : liblcms2-devel
2012-02-24 16:09:50 +01:00
BuildRequires : libpng-devel
BuildRequires : libtiff-devel
2012-03-15 10:56:33 +01:00
BuildRequires : libtool
2012-02-24 16:09:50 +01:00
BuildRequires : pkg-config
2019-08-20 12:24:25 +02:00
BuildRequires : update-alternatives
2012-02-24 16:09:50 +01:00
BuildRequires : xorg-x11-devel
BuildRequires : xorg-x11-fonts
BuildRequires : zlib-devel
2019-09-16 14:16:35 +02:00
# Always check if latest version of penjpeg becomes compatible with ghostscript
2020-02-03 10:20:23 +01:00
%if 0%{?suse_version} >= 1550
BuildRequires : pkgconfig(libopenjp2) >= 2.3.1
%endif
2019-03-22 12:27:22 +01:00
%if 0%{?suse_version} >= 1500
BuildRequires : apparmor-abstractions
BuildRequires : apparmor-rpm-macros
Requires : apparmor-abstractions
%endif
2019-08-20 12:24:25 +02:00
Requires(post) : update-alternatives
2021-03-29 10:29:21 +02:00
Requires(preun) : update-alternatives
2012-02-24 16:09:50 +01:00
Summary : The Ghostscript interpreter for PostScript and PDF
2018-11-21 15:19:24 +01:00
License : AGPL-3.0-only
2019-09-09 09:14:34 +02:00
Group : Productivity/Office/Other
URL : https://www.ghostscript.com/
2014-09-10 14:31:06 +02:00
# Special version needed for Ghostscript release candidates (e.g. "Version: 9.14pre15rc1" for 9.15rc1).
# Version 9.15rc1 would be newer than 9.15 (run "zypper vcmp 9.15rc1 9.15") because the rpmvercmp algorithm
# would treat 9.15rc1 as 9.15.rc.1 (alphabetic and numeric sections get separated into different elements)
# and 9.15.rc.1 is newer than 9.15 (it has one more element in the list while previous elements are equal)
# so that we use an alphabetic prefix 'pre' to make it older than 9.15 (numbers are considered newer than letters).
# But only with the alphabetic prefix "9.pre15rc1" would be older than the previous version number "9.14"
# because rpmvercmp would treat 9.pre15rc1 as 9.pre.15.rc1 and letters are older than numbers
# so that we keep additionally the previous version number to upgrade from the previous version:
2019-09-09 09:14:34 +02:00
# Starting SLE12/rpm-4.10, one can use tildeversions: 9.15~rc1.
2018-11-21 15:19:24 +01:00
#Version: 9.25pre26rc1
2020-10-20 17:14:31 +02:00
Version : 9.53.3
2018-11-21 15:19:24 +01:00
Release : 0
2019-01-23 17:44:20 +01:00
# Normal version for Ghostscript releases is the upstream version:
2013-10-09 12:15:22 +02:00
# tarball_version is used below to specify the directory via "setup -n":
2014-09-10 14:31:06 +02:00
# Special tarball_version needed for Ghostscript release candidates e.g. "define tarball_version 9.15rc1".
2013-10-09 12:15:22 +02:00
# For Ghostscript releases tarball_version and version are the same (i.e. the upstream version):
2018-11-21 15:19:24 +01:00
%define tarball_version %{version}
#define tarball_version 9.26rc1
2013-10-09 12:15:22 +02:00
# built_version is used below in the install and files sections:
2014-09-10 14:31:06 +02:00
# Separated built_version needed in case of Ghostscript release candidates e.g. "define built_version 9.15".
2013-10-09 12:15:22 +02:00
# For Ghostscript releases built_version and version are the same (i.e. the upstream version):
2020-10-20 17:14:31 +02:00
%define built_version %{version}
#define built_version 9.26
2012-02-24 16:09:50 +01:00
# Source0...Source9 is for sources from upstream:
2013-10-09 12:15:22 +02:00
# Special URLs for Ghostscript release candidates:
2018-03-15 13:57:22 +01:00
# see https://github.com/ArtifexSoftware/ghostpdl-downloads/releases
2018-09-13 15:36:29 +02:00
# URL for Source0:
2018-11-09 13:40:49 +01:00
# wget -O ghostscript-9.26rc1.tar.gz https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9.26rc1/ghostscript-9.26rc1.tar.gz
2018-09-13 15:36:29 +02:00
# URL for MD5 checksums:
2018-11-09 13:40:49 +01:00
# wget -O gs9.26rc1.MD5SUMS https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9.26rc1/MD5SUMS
# MD5 checksum for Source0: 6539d5b270721938936d721f279a3520 ghostscript-9.26rc1.tar.gz
2018-11-21 15:19:24 +01:00
#Source0: ghostscript-%{tarball_version}.tar.gz
2013-10-09 12:15:22 +02:00
# Normal URLs for Ghostscript releases:
2018-03-22 13:49:03 +01:00
# URL for Source0:
2020-10-20 17:14:31 +02:00
# wget -O ghostscript-9.53.3.tar.gz https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9533/ghostscript-9.53.3.tar.gz
2017-11-30 11:44:29 +01:00
# URL for MD5 checksums:
2020-10-20 17:14:31 +02:00
# wget -O gs9533.MD5SUMS https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9533/MD5SUMS
# MD5 checksum for Source0: 807a5c4934a814e8a6cd83eff702f212 ghostscript-9.53.3.tar.gz
2018-11-21 15:19:24 +01:00
Source0 : ghostscript-%{version} .tar.gz
2019-03-22 12:27:22 +01:00
Source1 : apparmor_ghostscript
2012-02-24 16:09:50 +01:00
# Patch0...Patch9 is for patches from upstream:
2020-10-20 17:14:31 +02:00
# Patch2 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch fixes compilation with FreeType 2.10.3+
# http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=41ef9a0bc36b9db7115fbe9623f989bfb47bbade
# c.f. https://bugs.ghostscript.com/show_bug.cgi?id=702985
Patch2 : 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch
2012-02-24 16:09:50 +01:00
# Source10...Source99 is for sources from SUSE which are intended for upstream:
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Source100...Source999 is for sources from SUSE which are not intended for upstream:
# Patch100...Patch999 is for patches from SUSE which are not intended for upstream:
2015-11-19 13:58:39 +01:00
# Patch100 remove-zlib-h-dependency.patch removes dependency on zlib/zlib.h
# in makefiles as we do not use the zlib sources from the Ghostscript upstream tarball:
Patch100 : remove-zlib-h-dependency.patch
2020-04-29 12:44:01 +02:00
# Patch101 ijs_exec_server_dont_use_sh.patch fixes IJS printing problem
# additionally allow exec'ing hpijs in apparmor profile was needed (bsc#1128467):
2019-03-08 13:28:32 +01:00
Patch101 : ijs_exec_server_dont_use_sh.patch
2012-02-24 16:09:50 +01:00
# RPM dependencies:
# Additional RPM Provides of the ghostscript-library packages in openSUSE 11.4 from
# "rpm -q --provides ghostscript-library" and "rpm -q --provides ghostscript-x11":
# ghostscript
# gs
# gs_lib
# pstoraster
2014-09-10 14:31:06 +02:00
# ghostscript_any
2012-02-24 16:09:50 +01:00
# ghostscript-serv
# gs_x11
# ghostscript_x11
# ghostscript-mini
# Which of those are actually used in openSUSE:Factory (dated 22 Feb. 2012):
# ghostscript
# gs
# gs_lib
# ghostscript_any
# ghostscript_x11
# ghostscript-mini
# Which other packages need those in openSUSE:Factory (dated 22 Feb. 2012):
2014-09-10 14:31:06 +02:00
# webdot Requires ghostscript
# ddd BuildRequires ghostscript_any
# emacs-auctex BuildRequires ghostscript_any
# kernel-docs BuildRequires ghostscript_any
# texlive-bin BuildRequires ghostscript_any
# cups Requires ghostscript_any
# html2ps Requires ghostscript_any
# latex2html Requires ghostscript_any
# pstoedit Requires ghostscript_any
# ghostview Requires ghostscript_x11
# gv Requires ghostscript_x11
# texlive-bin Requires ghostscript_x11
# klatexformula BuildRequires gs and Requires gs
# capi4hylafax Requires gs_lib
# hylafax Requires gs_lib
# graphviz-plugins BuildRequires ghostscript-mini
2012-02-24 16:09:50 +01:00
# Provide the additional RPM Provides of the ghostscript-library package
2021-03-08 11:36:51 +01:00
# (ghostscript_x11 is provided by the ghostscript-x11 sub-package, see below).
# The "Provides: ghostscript_any" is there to support "BuildRequires: ghostscript_any"
# so other packages can build with any available Ghostscript implementation,
# either ghostscript or ghostscript-mini ("BuildRequires: ghostscript-mini" should not
# be used because ghostscript-mini does not exist outside of OBS so other packages that
# use "BuildRequires: ghostscript-mini" could not be built in published products).
# The "Provides: ghostscript_any" does not affect end-users who should not get
# ghostscript-mini installed (but only the full featured ghostscript package)
# because ghostscript-mini (and ghostscript-mini-devel) are not published
# in openSUSE products, cf. https://build.opensuse.org/request/show/877083
2012-09-24 12:58:16 +02:00
Provides : ghostscript_any
2012-02-24 16:09:50 +01:00
Provides : gs
Provides : gs_lib
# There is a needless requirement for pstoraster in gutenprint up to openSUSE 11.4.
# Satisfy it to be backward compatible with installed gutenprint packages:
Provides : pstoraster
# Replace any version of the packages ghostscript-library and ghostscript-mini silently.
# The "Obsoletes: ghostscript-mini" is intentionally unversioned because
# this package ghostscript should replace any version of ghostscript-mini.
# There is intentionally no "Provides: ghostscript-mini" here because this
# would cause a conflict when this package ghostscript should be re-replaced
# by ghostscript-library because ghostscript-library conflicts with ghostscript-mini
# so that there would be no easy way back from ghostscript to ghostscript-library.
# Different versions must be explicitly specified in Provides and Obsoletes
# to avoid a RPMLINT warning that the package obsoletes itself
# because an unversioned RPM dependency means "all versions".
# The RPM documentation http://www.rpm.org/max-rpm/s1-rpm-depend-manual-dependencies.html
# and /usr/share/doc/packages/rpm/manual/dependencies (in rpm-4.8.0 in openSUSE 11.4)
# does not show a comparison operator for "not equal" so that two obsoletes are used:
Provides : ghostscript-library = %{version}
Obsoletes : ghostscript-library < %{version}
Obsoletes : ghostscript-library > %{version}
Obsoletes : ghostscript-mini
# The ghostscript-x11 sub-package requires the exact matching version-release
# of the ghostscript main-package (see below) so that the ghostscript main-package
# should conflict with a non-matching ghostscript-x11 package to make sure
# that the ghostscript main-package is not changed without changing
# the ghostscript-x11 sub-package accordingly.
# The RPM documentation http://www.rpm.org/max-rpm/s1-rpm-depend-manual-dependencies.html
# and /usr/share/doc/packages/rpm/manual/dependencies (in rpm-4.8.0 in openSUSE 11.4)
# does not show a comparison operator for "not equal" so that two conflicts are used:
Conflicts : ghostscript-x11 < %{version} -%{release}
Conflicts : ghostscript-x11 > %{version} -%{release}
# When the ghostscript main-package is installed, usually the exact matching
# version-release of the ghostscript-x11 sub-package should be also installed:
Recommends: ghostscript-x11 = %{version} -%{release}
2013-12-19 14:49:21 +01:00
# When the ghostscript main-package is installed, usually the CUPS filters gstoraster and gstopxl
# should be also installed. Since version 9.10 those CUPS filters are removed from Ghostscript
# and are now provided by the binary RPM sub-package cups-filters-ghostscript
# (see the cups-filters-ghostscript sub-package description).
# No RPM requirement because Ghostscript can be used without those CUPS filters
# and cups-filters-ghostscript is only available for newer openSUSE versions
# (currently since openSUSE 12.2) but in particular not for SLE11:
%if 0%{?suse_version} > 1210
Recommends: cups-filters-ghostscript
%endif
2012-02-24 16:09:50 +01:00
# Install into this non-root directory (required when norootforbuild is used):
BuildRoot : %{_tmppath} /%{name} -%{version} -build
%description
Ghostscript is a package of software that provides:
An interpreter for the PostScript language,
with the ability to convert PostScript language files
to many raster formats, view them on displays,
and print them on printers that don't have
PostScript language capability built in.
An interpreter for Portable Document Format (PDF) files,
with the same abilities.
The ability to convert PostScript language files
to PDF (with some limitations) and vice versa.
A set of C procedures (the Ghostscript library)
that implement the graphics and filtering
(data compression / decompression / conversion)
capabilities that appear as primitive operations
in the PostScript language and in PDF.
For information how to use Ghostscript see
/usr/share/ghostscript/%{version} /doc/Use.htm
%package x11
Summary : X11 library for Ghostscript
# Require the exact matching version-release of the ghostscript main-package because
# a non-matching ghostscript main-package may let it fail or even crash (e.g. segfault)
# because all Ghostscript software is built from one same Ghostscript source tar ball
# so that there could be any kind of Ghostscript-internal dependencies.
# The exact matching version-release of the ghostscript main-package is available
# on the same package repository where the ghostscript-x11 sub-package is because
# all are built simulaneously from the same Ghostscript source package:
2019-05-09 10:39:39 +02:00
Group : Productivity/Publishing/PS
2012-02-24 16:09:50 +01:00
Requires : ghostscript = %{version} -%{release}
# Unfortunately ghostscript-library.spec and ghostscript-mini.spec have
# an unversioned "Provides: ghostscript" and for RPM this means that both
# ghostscript-library and ghostscript-mini provide any version of "ghostscript"
# so that any version of ghostscript-library and ghostscript-mini fulfills
# the above versioned requirement which is wrong and therefore an explicit conflicts
# is used here to avoid the mess.
# Above the ghostscript main package "Provides: ghostscript-library = version" so that
# versioned conflicts are needed to avoid a conflict with the ghostscript main package.
# The RPM documentation http://www.rpm.org/max-rpm/s1-rpm-depend-manual-dependencies.html
# and /usr/share/doc/packages/rpm/manual/dependencies (in rpm-4.8.0 in openSUSE 11.4)
# does not show a comparison operator for "not equal" so that two conflicts are used:
2012-04-25 16:47:49 +02:00
Conflicts : ghostscript-library < %{version}
Conflicts : ghostscript-library > %{version}
2012-02-24 16:09:50 +01:00
Conflicts : ghostscript-mini
# In openSUSE:Factory (dated 22 Feb. 2012) ghostview gv and texlive-bin require ghostscript_x11 (see above):
Provides : ghostscript_x11
%description x11
This package contains the X11 library which is needed
to view PostScript and PDF files with Ghostscript
under the X Window System.
%package devel
Summary : Development files for Ghostscript
2012-04-25 16:47:49 +02:00
Group : Development/Libraries/C and C++
2012-02-24 16:09:50 +01:00
Requires : ghostscript = %{version}
2012-03-16 10:36:05 +01:00
# Unfortunately ghostscript-library.spec and ghostscript-mini.spec have
# an unversioned "Provides: ghostscript" and for RPM this means that both
# ghostscript-library and ghostscript-mini provide any version of "ghostscript"
# so that any version of ghostscript-library and ghostscript-mini fulfills
# the above versioned requirement which is wrong and therefore an explicit conflicts
# is used here to avoid the mess.
# Above the ghostscript main package "Provides: ghostscript-library = version" so that
# versioned conflicts are needed to avoid a conflict with the ghostscript main package.
# The RPM documentation http://www.rpm.org/max-rpm/s1-rpm-depend-manual-dependencies.html
# and /usr/share/doc/packages/rpm/manual/dependencies (in rpm-4.8.0 in openSUSE 11.4)
# does not show a comparison operator for "not equal" so that two conflicts are used:
Conflicts : ghostscript-library < %{version}
Conflicts : ghostscript-library > %{version}
Conflicts : ghostscript-mini
2012-03-23 11:40:53 +01:00
Conflicts : ghostscript-mini-devel
2012-02-24 16:09:50 +01:00
%description devel
This package contains the development files for Ghostscript.
%prep
2013-01-04 10:02:55 +01:00
# Be quiet when unpacking and
# use a directory name matching Source0 to make it work also for ghostscript-mini:
2013-10-09 12:15:22 +02:00
%setup -q -n ghostscript-%{tarball_version}
2020-10-20 17:14:31 +02:00
# Patch2 41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch fixes compilation with FreeType 2.10.3+
# http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=41ef9a0bc36b9db7115fbe9623f989bfb47bbade
# c.f. https://bugs.ghostscript.com/show_bug.cgi?id=702985
%patch2 -p1
2015-11-19 13:58:39 +01:00
# Patch100 remove-zlib-h-dependency.patch removes dependency on zlib/zlib.h
2018-03-16 14:33:21 +01:00
# in makefiles as we do not use the zlib sources from the Ghostscript upstream tarball.
# Again use the zlib sources from Ghostscript upstream
# and disable remove-zlib-h-dependency.patch because
# Ghostscript 9.21 does no longer build this way:
2017-04-12 14:35:15 +02:00
#patch100 -p1 -b remove-zlib-h-dependency.orig
2020-04-29 12:44:01 +02:00
# Patch101 ijs_exec_server_dont_use_sh.patch fixes IJS printing problem
# additionally allow exec'ing hpijs in apparmor profile was needed (bsc#1128467):
2019-03-08 13:28:32 +01:00
%patch101 -p1
2018-03-15 13:57:22 +01:00
# Remove patch backup files to avoid packaging
# cf. https://build.opensuse.org/request/show/581052
2018-03-12 11:33:44 +01:00
rm -f Resource/Init/*.ps.orig
2015-11-19 13:58:39 +01:00
# Do not use the freetype jpeg libpng tiff zlib sources from the Ghostscript upstream tarball
# because we prefer to use for long-established standard libraries the ones from SUSE
# in particular to automatically get SUSE security updates for standard libraries.
# In contrast we use e.g. lcms2 from the Ghostscript upstream tarball because this one
# is specially modified to work with Ghostscript so that we cannot use lcms2 from SUSE:
2017-04-12 14:35:15 +02:00
#rm -rf freetype jpeg libpng tiff zlib
2018-03-16 14:33:21 +01:00
# Again use the zlib sources from Ghostscript upstream
# and disable remove-zlib-h-dependency.patch because
# Ghostscript 9.21 does no longer build this way:
2019-04-04 16:27:19 +02:00
%if 0%{?suse_version} == 1315
# Again use the freetype sources from Ghostscript upstream because
# Ghostscript 9.27 does no longer build this way for SLE12:
rm -rf jpeg libpng tiff
%else
2017-04-12 14:35:15 +02:00
rm -rf freetype jpeg libpng tiff
2019-04-04 16:27:19 +02:00
%endif
2020-02-03 10:20:23 +01:00
%if 0%{?suse_version} >= 1550
rm -rf openjpeg
%endif
2018-03-16 14:33:21 +01:00
# In contrast to the above we use lcms2 from SUSE since Ghostscript 9.23rc1
# because that is what Ghostscript upstream recommends according to
# https://ghostscript.com/pipermail/gs-devel/2018-March/010061.html
# because singe Ghostscript 9.23rc1 there is no longer lcms2 in Ghostscript
# but now it is lcms2art (the beginning of a lcms2 fork - see News.htm).
# On SLE11 and on SLE12-SP1 there is liblcms2-2-2.5
# which is too old so that configure fails there with
# checking for local lcms2 library source... no
# checking for system lcms2 library... checking for _cmsCreateMutex in -llcms2... no
# configure: error: lcms2 not found, or too old
# (on SLE12-SP2 there is liblcms2-2-2.7 which is not too old)
# but there is no configure option to build it without lcms2
# so that for SLE11 and SLE12-SP1 it is built with lcms2art in Ghostscript
# i.e. lcms2art in Ghostscript is only removed when not SLE11 or SLE12-SP1
# cf. https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto
%if 0%{?suse_version} == 1110 || 0%{?sle_version} == 120100
echo " B u i l d i n g i t w i t h l c m s 2 a r t i n G h o s t s c r i p t "
%else
rm -rf lcms2art
%endif
2012-02-24 16:09:50 +01:00
%build
2017-01-30 14:16:52 +01:00
# Derive build timestamp from latest changelog entry
export SOURCE_DATE_EPOCH=$(date -d " $ ( h e a d - n 2 %{_sourcedir} / %{name} . c h a n g e s | t a i l - n 1 | c u t - d - - f 1 ) " +%s)
2012-02-24 16:09:50 +01:00
# Set our preferred architecture-specific flags for the compiler and linker:
2019-09-09 09:14:34 +02:00
export CFLAGS=" %{optflags} - f n o - s t r i c t - a l i a s i n g "
export CXXFLAGS=" %{optflags} - f n o - s t r i c t - a l i a s i n g "
2012-02-24 16:09:50 +01:00
autoreconf -fi
2012-04-25 16:47:49 +02:00
# --docdir=%%{_defaultdocdir}/%%{name} does not work therefore it is not used.
2015-03-25 15:14:43 +01:00
# --enable-cups but no longer --with-pdftoraster --enable-dbus --with-install-cups because
# --with-install-cups was introduced in version 9.04 but meanwhile it is an unrecognized option by configure
# because cups/filter/gstoraster and cups/filter/gstopxl and related files gstoraster.convs pxlcolor.ppd pxlmono.ppd
# are no longer provided by Ghostscript but were moved to the cups-filters package.
# also pdftoraster is provided by cups-filters and there is colord support that
# would need --enable-dbus because colord is accessed via D-Bus.
2012-03-23 11:40:53 +01:00
# --with-ijs to enable IJS printer driver support (in particular needed by HPIJS).
# --with-drivers=ALL to all file format drivers and all printer drivers.
# --with-x to use the X Window System.
2015-03-25 15:14:43 +01:00
# --enable-openjpeg because since Ghostscript 9.05 JasPer is deprecated
# (--without-jasper is now an unrecognized option by configure)
2012-04-27 14:58:11 +02:00
# and Ghostscript now ships modified OpenJPEG sources for JPEG2000 decoding
2015-03-25 15:14:43 +01:00
# (replacing JasPer - although JasPer is still included for this release)
2012-04-27 14:58:11 +02:00
# Performance, reliability and memory use whilst decoding JPX streams are all improved.
2015-03-25 15:14:43 +01:00
# see also http://bugs.ghostscript.com/show_bug.cgi?id=691430
2012-03-15 13:01:17 +01:00
# --without-ufst and --without-luratech because those are relevant to commercial releases only
2012-04-27 14:58:11 +02:00
# which would require a commercial license.
2018-03-12 11:33:44 +01:00
# --disable-compile-inits to disable compiling of resources (Fonts, init postscript files, ...)
# into the library, which is the upstream recommendation for distributions. This also allows
# unbundling the 35 Postscript Standard fonts, provided by the URW font package
2012-03-15 16:45:27 +01:00
# --without-libpaper disables libpaper support because SUSE does not have libpaper.
2012-03-23 11:40:53 +01:00
%define gs_font_path /usr/share/fonts/truetype:/usr/share/fonts/Type1:/usr/share/fonts/CID:/usr/share/fonts/URW
2012-09-24 12:58:49 +02:00
# See http://bugs.ghostscript.com/show_bug.cgi?id=693100
2012-09-24 12:58:16 +02:00
export SUSE_ASNEEDED=0
2012-02-24 16:09:50 +01:00
./configure --prefix=%{_prefix} \
--bindir=%{_bindir} \
2012-04-25 16:47:49 +02:00
--libdir=%{_libdir} \
2012-02-24 16:09:50 +01:00
--datadir=%{_datadir} \
2012-04-25 16:47:49 +02:00
--mandir=%{_mandir} \
2012-02-24 16:09:50 +01:00
--infodir=%{_infodir} \
2012-03-23 11:40:53 +01:00
--with-fontpath=%{gs_font_path} \
2012-02-24 16:09:50 +01:00
--with-libiconv=maybe \
--enable-freetype \
--with-jbig2dec \
2012-03-15 13:01:17 +01:00
--enable-openjpeg \
2012-02-24 16:09:50 +01:00
--enable-dynamic \
2018-03-12 11:33:44 +01:00
--disable-compile-inits \
2013-02-20 13:27:45 +01:00
--with-ijs \
2012-02-24 16:09:50 +01:00
--enable-cups \
--with-drivers=ALL \
2012-03-23 11:40:53 +01:00
--with-x \
2012-02-24 16:09:50 +01:00
--disable-gtk \
2012-03-15 13:01:17 +01:00
--without-ufst \
2012-03-15 16:45:27 +01:00
--without-luratech \
--without-libpaper
2018-03-12 11:33:44 +01:00
2012-04-25 16:47:49 +02:00
# Make libgs.so and two programs which use it, gsx and gsc:
2018-03-12 11:33:44 +01:00
# With --disable-gtk, gsx and gsc are identical. It provides a command line
# frontend to libgs equivalent (functional and command line arguments) to
# the gs binary, but uses the shared libgs instead of static linking
2012-02-24 16:09:50 +01:00
make so
2013-02-20 13:27:45 +01:00
# Configure and make libijs (that is not done regardless whether or not --with-ijs is used above):
2013-01-04 10:02:55 +01:00
pushd ijs
./autogen.sh
2018-02-28 11:35:32 +01:00
autoreconf -fi
2013-01-04 10:02:55 +01:00
./configure --prefix=%{_prefix} \
--bindir=%{_bindir} \
--libdir=%{_libdir} \
--datadir=%{_datadir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--enable-shared \
--disable-static
make
popd
2012-02-24 16:09:50 +01:00
%install
2012-04-25 16:47:49 +02:00
# Install libgs.so gsx gsc and some header files:
2012-02-24 16:09:50 +01:00
make soinstall DESTDIR=%{buildroot}
2018-03-12 11:33:44 +01:00
# Use gsc instead of gs, and remove duplicate gsx (see above)
mv %{buildroot} /%{_bindir} /{gsc,gs}
rm %{buildroot} /%{_bindir} /gsx
2013-01-04 10:02:55 +01:00
# Install libijs and its header files:
pushd ijs
make install DESTDIR=%{buildroot}
popd
# Remove installed ijs example client and server and its .la file:
rm %{buildroot} %{_bindir} /ijs_client_example
rm %{buildroot} %{_bindir} /ijs_server_example
rm %{buildroot} %{_libdir} /libijs.la
2018-03-15 13:57:22 +01:00
# Install examples:
EXAMPLESDIR=%{buildroot} %{_datadir} /ghostscript/%{built_version} /examples
test -d $EXAMPLESDIR || install -d $EXAMPLESDIR
for E in examples/*
do install -m 644 $E $EXAMPLESDIR || :
done
test -d $EXAMPLESDIR/cjk || install -d $EXAMPLESDIR/cjk
for E in examples/cjk/*
do install -m 644 $E $EXAMPLESDIR/cjk || :
done
2012-04-25 16:47:49 +02:00
# Install documentation which is not installed by default
# see http://bugs.ghostscript.com/show_bug.cgi?id=693002
# and fail intentionally as notification if something changed:
2018-03-15 13:57:22 +01:00
DOCDIR=%{buildroot} %{_datadir} /doc/ghostscript/%{built_version}
2012-09-27 15:49:11 +02:00
for D in LICENSE
2012-04-25 16:47:49 +02:00
do test -e $DOCDIR/$( basename $D ) && exit 99
install -m 644 $D $DOCDIR
done
2018-03-15 13:57:22 +01:00
# Add a link named 'ghostscript' from SUSE's usual documentation directory /usr/share/doc/packages
# with link target Ghostscript's documentation directory e.g. /usr/share/doc/ghostscript/9.23
# as relative link to get the link independent of the buildroot prefix
# i.e. in /usr/share/doc/packages add the link ghostscript -> ../ghostscript/9.23
2012-04-25 16:47:49 +02:00
# because "configure --docdir=%%{_defaultdocdir}/%%{name}" does not work (see above):
2012-05-11 12:09:58 +02:00
install -d -m 755 %{buildroot} %{_defaultdocdir}
2012-04-25 16:47:49 +02:00
pushd %{buildroot} %{_defaultdocdir}
2018-03-15 13:57:22 +01:00
ln -s ../ghostscript/%{built_version} ghostscript
2012-04-25 16:47:49 +02:00
popd
2012-05-11 12:09:58 +02:00
# Extract the catalog of devices which are actually built-in in exactly this Ghostscript:
2015-03-25 15:14:43 +01:00
# If a needed source file is no longer accessible fail intentionally as notification
# that something changed which needs adaptions here:
2020-10-20 17:14:31 +02:00
catalog_devices_source_files=" d e v i c e s / d e v s . m a k d e v i c e s / d c o n t r i b . m a k c o n t r i b / c o n t r i b . m a k "
for F in $catalog_devices_source_files
2015-03-25 15:14:43 +01:00
do test -r $F || exit 99
done
2012-05-11 12:09:58 +02:00
# Do not pollute the build log file with zillions of meaningless messages:
set +x
cat /dev/null >catalog.devices
2018-03-12 11:33:44 +01:00
for D in $( LD_LIBRARY_PATH=%{buildroot} /%{_libdir} %{buildroot} /usr/bin/gs -h | sed -n -e '/^Available devices:/,/^Search path:/p' | egrep -v '^Available devices:|^Search path:' )
2020-10-20 17:14:31 +02:00
do for F in $catalog_devices_source_files
2012-05-11 12:09:58 +02:00
do sed -n -e '/ Catalog /,/ End of catalog /p' $F | grep " [ [ : s p a c e : ] ] $ D [ [ : s p a c e : ] ] " | grep -o '[[:alnum:]].*' | tr -s '[:blank:]' ' ' | sed -e 's/ /\t/' | expand -t16 >>catalog.devices
done
done
# Switch back to the usual build log messages:
set -x
install -m 644 catalog.devices $DOCDIR
2019-03-22 12:27:22 +01:00
install -D -m 644 %{SOURCE1} %{buildroot} %{_sysconfdir} /apparmor.d/ghostscript
2012-02-24 16:09:50 +01:00
2019-08-20 12:24:25 +02:00
# Move /usr/bin/gs to /usr/bin/gs.bin to be able to use update-alternatives
install -d %buildroot%{_sysconfdir} /alternatives
mv %{buildroot} %{_bindir} /gs %{buildroot} %{_bindir} /gs.bin
ln -sf %{_bindir} /gs.bin %{buildroot} %{_sysconfdir} /alternatives/gs
ln -sf %{_sysconfdir} /alternatives/gs %{buildroot} %{_bindir} /gs
2019-03-22 12:27:22 +01:00
%post
/sbin/ldconfig
%if 0%{?suse_version} >= 1500
%apparmor_reload /etc/apparmor.d/ghostscript
%endif
2019-08-20 12:24:25 +02:00
%{_sbindir} /update-alternatives \
--install %{_bindir} /gs gs %{_bindir} /gs.bin 15
2012-02-24 16:09:50 +01:00
2018-03-12 11:33:44 +01:00
%postun -p /sbin/ldconfig
2012-02-24 16:09:50 +01:00
2019-08-20 12:24:25 +02:00
%preun
if test $1 -eq 0 ; then
%{_sbindir} /update-alternatives \
--remove gs %{_bindir} /gs.bin
fi
2012-02-24 16:09:50 +01:00
%files
%defattr (-, root, root)
2019-08-20 12:24:25 +02:00
%ghost %config %{_sysconfdir} /alternatives/gs
2012-02-24 16:09:50 +01:00
%{_bindir} /dvipdf
%{_bindir} /eps2eps
%{_bindir} /gs
2019-08-20 12:24:25 +02:00
%{_bindir} /gs.bin
2012-02-24 16:09:50 +01:00
%{_bindir} /gsbj
%{_bindir} /gsdj
%{_bindir} /gsdj500
%{_bindir} /gslj
%{_bindir} /gslp
%{_bindir} /gsnd
%{_bindir} /lprsetup.sh
%{_bindir} /pdf2dsc
%{_bindir} /pdf2ps
%{_bindir} /pf2afm
%{_bindir} /pfbtopfa
%{_bindir} /pphs
%{_bindir} /printafm
%{_bindir} /ps2ascii
%{_bindir} /ps2epsi
%{_bindir} /ps2pdf
%{_bindir} /ps2pdf12
%{_bindir} /ps2pdf13
%{_bindir} /ps2pdf14
%{_bindir} /ps2pdfwr
%{_bindir} /ps2ps
%{_bindir} /ps2ps2
%{_bindir} /unix-lpr.sh
%doc %{_mandir} /man1/dvipdf.1.gz
%doc %{_mandir} /man1/eps2eps.1.gz
%doc %{_mandir} /man1/gs.1.gz
%doc %{_mandir} /man1/gsbj.1.gz
%doc %{_mandir} /man1/gsdj.1.gz
%doc %{_mandir} /man1/gsdj500.1.gz
%doc %{_mandir} /man1/gslj.1.gz
%doc %{_mandir} /man1/gslp.1.gz
%doc %{_mandir} /man1/gsnd.1.gz
%doc %{_mandir} /man1/pdf2dsc.1.gz
%doc %{_mandir} /man1/pdf2ps.1.gz
%doc %{_mandir} /man1/pf2afm.1.gz
%doc %{_mandir} /man1/pfbtopfa.1.gz
%doc %{_mandir} /man1/printafm.1.gz
%doc %{_mandir} /man1/ps2ascii.1.gz
%doc %{_mandir} /man1/ps2epsi.1.gz
%doc %{_mandir} /man1/ps2pdf.1.gz
%doc %{_mandir} /man1/ps2pdf12.1.gz
%doc %{_mandir} /man1/ps2pdf13.1.gz
%doc %{_mandir} /man1/ps2pdf14.1.gz
%doc %{_mandir} /man1/ps2pdfwr.1.gz
%doc %{_mandir} /man1/ps2ps.1.gz
%doc %{_mandir} /de/man1/dvipdf.1.gz
%doc %{_mandir} /de/man1/eps2eps.1.gz
%doc %{_mandir} /de/man1/gsnd.1.gz
%doc %{_mandir} /de/man1/pdf2dsc.1.gz
%doc %{_mandir} /de/man1/pdf2ps.1.gz
%doc %{_mandir} /de/man1/printafm.1.gz
%doc %{_mandir} /de/man1/ps2ascii.1.gz
%doc %{_mandir} /de/man1/ps2pdf.1.gz
%doc %{_mandir} /de/man1/ps2pdf12.1.gz
%doc %{_mandir} /de/man1/ps2pdf13.1.gz
%doc %{_mandir} /de/man1/ps2pdf14.1.gz
%doc %{_mandir} /de/man1/ps2ps.1.gz
2012-04-25 16:47:49 +02:00
%doc %{_defaultdocdir} /ghostscript
2018-03-15 13:57:22 +01:00
%dir %{_datadir} /doc/ghostscript
%doc %{_datadir} /doc/ghostscript/%{built_version}
2012-04-25 16:47:49 +02:00
%dir %{_datadir} /ghostscript
2013-10-09 12:15:22 +02:00
%dir %{_datadir} /ghostscript/%{built_version}
2018-03-12 11:33:44 +01:00
%{_datadir} /ghostscript/%{built_version} /Resource
%{_datadir} /ghostscript/%{built_version} /iccprofiles
2013-10-09 12:15:22 +02:00
%{_datadir} /ghostscript/%{built_version} /examples/
%{_datadir} /ghostscript/%{built_version} /lib/
2012-02-24 16:09:50 +01:00
%{_libdir} /libgs.so.*
%{_libdir} /ghostscript/
2013-01-04 10:02:55 +01:00
%{_libdir} /libijs-0.35.so
2013-10-09 12:15:22 +02:00
%exclude %{_libdir} /ghostscript/%{built_version} /X11.so
2019-03-22 12:27:22 +01:00
%if 0%{?suse_version} < 1500
2019-02-12 11:26:47 +01:00
%dir %{_sysconfdir} /apparmor.d
2019-03-22 12:27:22 +01:00
%endif
%{_sysconfdir} /apparmor.d/ghostscript
2012-02-24 16:09:50 +01:00
%files x11
%defattr (-,root,root)
2013-10-09 12:15:22 +02:00
%{_libdir} /ghostscript/%{built_version} /X11.so
2012-02-24 16:09:50 +01:00
%files devel
%defattr (-,root,root)
%{_includedir} /ghostscript/
%{_libdir} /libgs.so
2013-01-04 10:02:55 +01:00
%{_includedir} /ijs/
%{_libdir} /libijs.so
%{_libdir} /pkgconfig/ijs.pc
2012-02-24 16:09:50 +01:00
%changelog