File ghostscript.spec of Package ghostscript

#
# spec file for package ghostscript
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           ghostscript
BuildRequires:  cups-devel
# dbus-1-devel is needed for "configure --enable-dbus" (see below):
BuildRequires:  dbus-1-devel
BuildRequires:  freetype2-devel
BuildRequires:  libexpat-devel
BuildRequires:  libpng-devel
BuildRequires:  libtiff-devel
BuildRequires:  libtool
BuildRequires:  pkg-config
BuildRequires:  xorg-x11-devel
BuildRequires:  xorg-x11-fonts
BuildRequires:  zlib-devel
Summary:        The Ghostscript interpreter for PostScript and PDF
License:        AGPL-3.0
Group:          System/Libraries
Url:            http://www.ghostscript.com/
# 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:
#Version:        9.14pre15rc2
# Normal version for Ghostscript releases is the upstream version:
Version:        9.15
Release:        0
# tarball_version is used below to specify the directory via "setup -n":
# Special tarball_version needed for Ghostscript release candidates e.g. "define tarball_version 9.15rc1".
# For Ghostscript releases tarball_version and version are the same (i.e. the upstream version):
%define tarball_version %{version}
#define tarball_version 9.15rc2
# built_version is used below in the install and files sections:
# Separated built_version needed in case of Ghostscript release candidates e.g. "define built_version 9.15".
# For Ghostscript releases built_version and version are the same (i.e. the upstream version):
%define built_version %{version}
#define built_version 9.15
# Source0...Source9 is for sources from upstream:
# Special URLs for Ghostscript release candidates:
# URL for Source0: http://www.ghostscript.com/~chrisl/ghostscript-9.15rc2.tar.gz
# URL for MD5 checksums: http://www.ghostscript.com/~chrisl/MD5SUMS or http://www.ghostscript.com/~chrisl/MD5SUM
# MD5 checksum for Source0: 20bffacff52552aa1c430fe64403fb68
#Source0:        http://www.ghostscript.com/~chrisl/ghostscript-9.15rc2.tar.gz
# Normal URLs for Ghostscript releases:
# URL for Source0: http://downloads.ghostscript.com/public/ghostscript-9.15.tar.gz
# URL for MD5 checksums: http://downloads.ghostscript.com/public/MD5SUMS
# MD5 checksum for Source0: 5a78ab0990ff6ec3a103576bc8777c46
Source0:        http://downloads.ghostscript.com/public/ghostscript-%{version}.tar.gz
# Patch0...Patch9 is for patches from upstream:
# Patch0 fix-mutex-crash.patch: fix crash in mutex (bsc#963017)
# (ghostscript bug #695862)
Patch0:         fix-mutex-crash.patch
#
# Source10...Source99 is for sources from SUSE which are intended for upstream:
#
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Patch10 ppc64le-support.patch (initially from IBM)
# fixes endianness in lcms (the Little-CMS library)
# the current patch is a remainder of the previous patch
# lcms2 has been fixed upstream not working lcms has not been fixed:
Patch10:        ppc64le-support.patch
# Patch11 CVE-2015-3228.patch fixes out of bound read/write cause by integer overflow
# in gsmalloc.c (see https://bugzilla.opensuse.org/show_bug.cgi?id=939342):
Patch11:        CVE-2015-3228.patch
# Have filenameforall and getenv honor SAFER
# https://bugzilla.suse.com/show_bug.cgi?id=1001951
Patch12:        CVE-2013-5653.patch
# Reference count device icc profile when copying a device
# https://bugzilla.suse.com/show_bug.cgi?id=1001951
Patch13:        CVE-2016-7978.patch
# Bug #697190 ".initialize_dsc_parser doesn't validate the parameter is a dict type before using it."
# https://bugzilla.suse.com/show_bug.cgi?id=1001951
Patch14:        CVE-2016-7979.patch
# Patch15 CVE-2016-8602.patch fixes a NULL dereference in .sethalftone5
# see http://bugs.ghostscript.com/show_bug.cgi?id=697203
# and https://bugzilla.suse.com/show_bug.cgi?id=1004237
Patch15:        CVE-2016-8602.patch
# PATCH-FIX-UPSTREAM 0001-Fix-locksafe.patch boo#1006592 -- Fix for regression introduced in CVE-2013-5653.patch
Patch16:        0001-Fix-locksafe.patch
# Patch17 CVE-2017-8291.patch fixes a type confusion in .rsdparams and .eqproc
# see https://bugs.ghostscript.com/show_bug.cgi?id=697808
# and https://bugzilla.suse.com/show_bug.cgi?id=1036453
Patch17:        CVE-2017-8291.patch
# Patch18 CVE-2016-9601.patch fixes an integer overflow in jbig2_image_new
# see https://bugs.ghostscript.com/show_bug.cgi?id=697457
# and https://bugzilla.suse.com/show_bug.cgi?id=1018128
Patch18:        CVE-2016-9601.patch
# Patch19 CVE-2016-10220.patch fixes a NULL pointer dereference in gx_device_finalize
# see https://bugs.ghostscript.com/show_bug.cgi?id=697450
# and https://bugzilla.suse.com/show_bug.cgi?id=1032120
Patch19:        CVE-2016-10220.patch
# Patch20 CVE-2017-5951.patch fixes a NULL pointer dereference in ref_stack_index
# see https://bugs.ghostscript.com/show_bug.cgi?id=697548
# and https://bugzilla.suse.com/show_bug.cgi?id=1032114
Patch20:        CVE-2017-5951.patch
# Patch21 CVE-2017-7207.patch fixes a NULL pointer dereference in mem_get_bits_rectangle
# see https://bugs.ghostscript.com/show_bug.cgi?id=697676
# and https://bugzilla.suse.com/show_bug.cgi?id=1030263
Patch21:        CVE-2017-7207.patch
#
# 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:
#
# 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
#   ghostscript_any
#   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):
#   blocxx-doc       BuildRequires ghostscript
#   iproute2         BuildRequires ghostscript
#   gle-graphics     Requires      ghostscript
#   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
# Provide the additional RPM Provides of the ghostscript-library package
# (ghostscript_x11 is provided by the ghostscript-x11 sub-package, see below):
Provides:       ghostscript_any
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}
# 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
# Require Ghostscript's fonts because the Ghostscript package provides the
# "Fontmap" file /usr/share/ghostscript/<version>/Resource/Init/Fontmap.GS
# which lists Ghostscript's fonts but the fonts itself are provided in the
# separated packages ghostscript-fonts-std and ghostscript-fonts-other
# (regarding separated packages see /usr/share/ghostscript/<version>/doc/Fonts.htm)
# so that a RPM requirement is needed to make sure that Ghostscript has its fonts:
Requires:       ghostscript-fonts-other
Requires:       ghostscript-fonts-std
# Prerequire /sbin/ldconfig which is used in the traditional bash scriptlets for post/postun:
PreReq:         /sbin/ldconfig
# 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:
Group:          Productivity/Publishing/PS
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:
Conflicts:      ghostscript-library < %{version}
Conflicts:      ghostscript-library > %{version}
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
Group:          Development/Libraries/C and C++
Requires:       ghostscript = %{version}
# 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
Conflicts:      ghostscript-mini-devel

%description devel
This package contains the development files for Ghostscript.

%prep
# Be quiet when unpacking and
# use a directory name matching Source0 to make it work also for ghostscript-mini:
%setup -q -n ghostscript-%{tarball_version}
# Patch0 fix-mutex-crash.patch: fix crash in mutex (bsc#963017)
# (ghostscript bug #695862)
%patch0 -p1
# Patch10 ppc64le-support.patch (initially from IBM)
# fixes endianness in lcms (the Little-CMS library)
# the current patch is a remainder of the previous patch
# lcms2 has been fixed upstream not working lcms has not been fixed:
%patch10 -p1 -b .ppc64le-support.orig
# Patch11 CVE-2015-3228.patch fixes out of bound read/write cause by integer overflow
# in gsmalloc.c (see https://bugzilla.opensuse.org/show_bug.cgi?id=939342):
%patch11 -b .CVE-2015-3228.orig
# Have filenameforall and getenv honor SAFER
# https://bugzilla.suse.com/show_bug.cgi?id=1001951
%patch12 -p1
# Reference count device icc profile when copying a device
# https://bugzilla.suse.com/show_bug.cgi?id=1001951
%patch13 -p1
# Bug #697190 ".initialize_dsc_parser doesn't validate the parameter is a dict type before using it."
# https://bugzilla.suse.com/show_bug.cgi?id=1001951
%patch14 -p1
# Patch15 CVE-2016-8602.patch fixes a NULL dereference in .sethalftone5
# see http://bugs.ghostscript.com/show_bug.cgi?id=697203
# and https://bugzilla.suse.com/show_bug.cgi?id=1004237
%patch15 -p1 -b CVE-2016-8602.orig
# See https://bugzilla.opensuse.org/show_bug.cgi?id=1006592,
# https://bugzilla.opensuse.org/show_bug.cgi?id=1007816 and
# https://bugs.kde.org/show_bug.cgi?id=371887
%patch16 -p1
# Patch17 CVE-2017-8291.patch fixes a type confusion in .rsdparams and .eqproc
# see https://bugs.ghostscript.com/show_bug.cgi?id=697808
# and https://bugzilla.suse.com/show_bug.cgi?id=1036453
%patch17 -p1
# Patch18 CVE-2016-9601.patch fixes an integer overflow in jbig2_image_new
# see https://bugs.ghostscript.com/show_bug.cgi?id=697457
# and https://bugzilla.suse.com/show_bug.cgi?id=1018128
%patch18 -p1
# Patch19 CVE-2016-10220.patch fixes a NULL pointer dereference in gx_device_finalize
# see https://bugs.ghostscript.com/show_bug.cgi?id=697450
# and https://bugzilla.suse.com/show_bug.cgi?id=1032120
%patch19 -p1
# Patch20 CVE-2017-5951.patch fixes a NULL pointer dereference in ref_stack_index
# see https://bugs.ghostscript.com/show_bug.cgi?id=697548
# and https://bugzilla.suse.com/show_bug.cgi?id=1032114
%patch20 -p1
# Patch21 CVE-2017-7207.patch fixes a NULL pointer dereference in mem_get_bits_rectangle
# see https://bugs.ghostscript.com/show_bug.cgi?id=697676
# and https://bugzilla.suse.com/show_bug.cgi?id=1030263
%patch21 -p1

%build
# Set our preferred architecture-specific flags for the compiler and linker:
export CFLAGS="$RPM_OPT_FLAGS"
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
autoreconf -fi
# --docdir=%%{_defaultdocdir}/%%{name} does not work therefore it is not used.
# --enable-cups and --with-pdftoraster and --with-install-cups
#   (--with-install-cups is new since version 9.04)
#   to make and install cups/filter/gstoraster and cups/filter/gstopxl
#   and related files (gstoraster.convs pxlcolor.ppd pxlmono.ppd).
# --enable-dbus to have colord support in gstoraster, see cups/colord.c (colord is accessed via D-Bus).
# --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.
# --without-omni to disable the outdated and unmaintained omni driver.
# --without-jasper and --enable-openjpeg because since Ghostscript 9.05 JasPer is deprecated
#   and Ghostscript now ships modified OpenJPEG sources for JPEG2000 decoding
#   (replacing JasPer - although JasPer is still included for this release).
#   Performance, reliability and memory use whilst decoding JPX streams are all improved.
# --without-ufst and --without-luratech because those are relevant to commercial releases only
#   which would require a commercial license.
# --without-libpaper disables libpaper support because SUSE does not have libpaper.
%define gs_font_path /usr/share/fonts/truetype:/usr/share/fonts/Type1:/usr/share/fonts/CID:/usr/share/fonts/URW
# See http://bugs.ghostscript.com/show_bug.cgi?id=693100
export SUSE_ASNEEDED=0
./configure --prefix=%{_prefix} \
            --bindir=%{_bindir} \
            --libdir=%{_libdir} \
            --datadir=%{_datadir} \
            --mandir=%{_mandir} \
            --infodir=%{_infodir} \
            --with-fontpath=%{gs_font_path} \
            --with-libiconv=maybe \
            --enable-freetype \
            --with-jbig2dec \
            --without-jasper \
            --enable-openjpeg \
            --enable-dynamic \
            --with-ijs \
            --enable-cups \
            --enable-dbus \
            --with-pdftoraster \
            --with-install-cups \
            --with-drivers=ALL \
            --with-x \
            --disable-gtk \
            --disable-compile-inits \
            --without-omni \
            --without-ufst \
            --without-luratech \
            --without-libpaper
make
# Make libgs.so and two programs which use it, gsx and gsc:
make so
# Configure and make libijs (that is not done regardless whether or not --with-ijs is used above):
pushd ijs
./autogen.sh
./configure --prefix=%{_prefix} \
            --bindir=%{_bindir} \
            --libdir=%{_libdir} \
            --datadir=%{_datadir} \
            --mandir=%{_mandir} \
            --infodir=%{_infodir} \
            --enable-shared \
            --disable-static
make
popd

%install
make install DESTDIR=%{buildroot}
# Install libgs.so gsx gsc and some header files:
make soinstall DESTDIR=%{buildroot}
# 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
# 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:
DOCDIR=%{buildroot}%{_datadir}/ghostscript/%{built_version}/doc
for D in LICENSE
do test -e $DOCDIR/$( basename $D ) && exit 99
   install -m 644 $D $DOCDIR
done
# Add a link from SUSE's usual documentation directory to Ghostscript's documentation directory
# because "configure --docdir=%%{_defaultdocdir}/%%{name}" does not work (see above):
install -d -m 755 %{buildroot}%{_defaultdocdir}
pushd %{buildroot}%{_defaultdocdir}
ln -s ../../ghostscript/%{built_version}/doc ghostscript
popd
# Extract the catalog of devices which are actually built-in in exactly this Ghostscript:
# Do not pollute the build log file with zillions of meaningless messages:
set +x
cat /dev/null >catalog.devices
for D in $( %{buildroot}/usr/bin/gs -h | sed -n -e '/^Available devices:/,/^Search path:/p' | egrep -v '^Available devices:|^Search path:' )
do for F in base/devs.mak base/contrib.mak contrib/contrib.mak
   do sed -n -e '/ Catalog /,/ End of catalog /p' $F | grep "[[:space:]]$D[[:space:]]" | 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

# Use traditional bash scriptlet with an explicite "exit 0" line at the end to be fail safe
# see http://en.opensuse.org/openSUSE:Packaging_scriptlet_snippets
%post
/sbin/ldconfig
exit 0

# Use traditional bash scriptlet with an explicite "exit 0" line at the end to be fail safe
# see http://en.opensuse.org/openSUSE:Packaging_scriptlet_snippets
%postun
/sbin/ldconfig
exit 0

%files
%defattr(-, root, root)
%{_bindir}/dvipdf
%{_bindir}/eps2eps
%{_bindir}/font2c
%{_bindir}/gs
%{_bindir}/gsx
%{_bindir}/gsc
%{_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
%{_bindir}/wftopfa
%doc %{_mandir}/man1/dvipdf.1.gz
%doc %{_mandir}/man1/eps2eps.1.gz
%doc %{_mandir}/man1/font2c.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}/man1/wftopfa.1.gz
%doc %{_mandir}/man1/ijs-config.1.gz
%doc %{_mandir}/de/man1/dvipdf.1.gz
%doc %{_mandir}/de/man1/eps2eps.1.gz
%doc %{_mandir}/de/man1/font2c.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
%doc %{_mandir}/de/man1/wftopfa.1.gz
%doc %{_defaultdocdir}/ghostscript
%dir %{_datadir}/ghostscript
%dir %{_datadir}/ghostscript/%{built_version}
%doc %{_datadir}/ghostscript/%{built_version}/doc/
%{_datadir}/ghostscript/%{built_version}/examples/
%{_datadir}/ghostscript/%{built_version}/iccprofiles/
%{_datadir}/ghostscript/%{built_version}/lib/
%{_datadir}/ghostscript/%{built_version}/Resource/
%{_libdir}/libgs.so.*
%{_libdir}/ghostscript/
%{_libdir}/libijs-0.35.so
%exclude %{_libdir}/ghostscript/%{built_version}/X11.so

%files x11
%defattr(-,root,root)
%{_libdir}/ghostscript/%{built_version}/X11.so

%files devel
%defattr(-,root,root)
%{_includedir}/ghostscript/
%{_libdir}/libgs.so
%{_bindir}/ijs-config
%{_includedir}/ijs/
%{_libdir}/libijs.so
%{_libdir}/pkgconfig/ijs.pc

%changelog
openSUSE Build Service is sponsored by