Hello community,

here is the log from the commit of package ghostscript for openSUSE:Factory 
checked in at 2018-04-17 11:15:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghostscript (Old)
 and      /work/SRC/openSUSE:Factory/.ghostscript.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghostscript"

Tue Apr 17 11:15:04 2018 rev:31 rq:590297 version:9.23

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghostscript/ghostscript-mini.changes     
2018-03-09 10:35:05.679529229 +0100
+++ /work/SRC/openSUSE:Factory/.ghostscript.new/ghostscript-mini.changes        
2018-04-17 11:15:12.788893861 +0200
@@ -1,0 +2,103 @@
+Thu Mar 22 12:51:39 CET 2018 - jsm...@suse.de
+
+- Version upgrade to 9.23
+  Highlights in this release include:
+  * Ghostscript now has a family of 'pdfimage' devices
+    (pdfimage8, pdfimage24 and pdfimage32) which produce
+    rendered output wrapped up as an image in a PDF.
+    Additionally, there is a 'pclm' device which
+    produces PCLm format output.
+  * There is now a ColorAccuracy parameter allowing the user
+    to decide between speed or accuracy in ICC color transforms.
+  * JPEG Passthrough: devices which support it can now receive
+    the 'raw' JPEG stream from the interpreter.
+    The main use of this is the pdfwrite/ps2write family of devices
+    that can now take JPEG streams from the input file(s) and write
+    them unchanged to the output (thus avoiding additional
+    quantization effects).
+  * PDF transparency performance improvements
+  * IMPORTANT: We (i.e. Ghostscript upstream) are in the process
+    of forking LittleCMS.
+    LCMS2 is not thread safe, and cannot be made thread safe
+    without breaking the ABI. Our fork will be thread safe,
+    and include performance enhancements (these changes have all
+    be been offered and rejected upstream). We will maintain
+    compatibility between Ghostscript and LCMS2 for a time,
+    but not in perpetuity. Our fork will be available as its own
+    package separately from Ghostscript (and MuPDF).
+  * We have continued the focus on code hygiene in this release
+    cleaning up security issues, ignored return values,
+    and compiler warnings.
+  * The usual round of bug fixes, compatibility changes,
+    and incremental improvements.
+  Incompatible changes
+  * The planned device API tidy has, unfortunately, been
+    indefinitely postponed, until appropriate resources
+    are available.
+  For a release summary see:
+  http://www.ghostscript.com/doc/9.23/News.htm
+  For details see the News.htm and History9.htm files.
+  See also the entries below since "Version upgrade to 9.22"
+  (boo#1082896 and boo#1074266).
+
+-------------------------------------------------------------------
+Fri Mar 16 12:39:36 CET 2018 - jsm...@suse.de
+
+- For now use lcms2 from SUSE because that is what currently
+  Ghostscript upstream recommends according to
+  https://ghostscript.com/pipermail/gs-devel/2018-March/010061.html
+  because since Ghostscript 9.23rc1 there is no longer lcms2
+  in Ghostscript but now it is lcms2art which is the beginning
+  of a lcms2 fork, see News.htm that reads in particular
+  "LCMS2 is not thread safe ... Our fork will be thread safe ...
+   We will maintain compatibility between Ghostscript and LCMS2
+   for a time, but not in perpetuity", see also
+  https://bugzilla.opensuse.org/show_bug.cgi?id=1082896#c14
+- On SLE11 and on SLE12-SP1 there is liblcms2-2-2.5
+  which is too old so that configure fails there with
+    configure: error: lcms2 not found, or too old
+  but there is no configure option to build it without lcms2
+  so that for SLE11 and SLE12-SP1 it is built with
+  the lcms2art in Ghostscript.
+- ppc64le-support.patch is no longer needed because it only
+  contained a fix for lcms2art/include/lcms2art.h in Ghostscript
+  but currently lcms2 from SUSE is used instead (see above).
+- Do no longer require any fonts packages in particular
+  neither require ghostscript-fonts-std because the PostScript
+  Base35 fonts are provided by Ghostscript (in 'Resource')
+  nor require ghostscript-fonts-other (provides Bitream Charter,
+  Adobe Utopia, URW Antiqua, URW Grotesq and Hershey fonts where
+  all but the last are also provided by texlive-<name>-fonts) and
+  those fonts are not required for PostScript compliance, see
+  https://bugzilla.opensuse.org/show_bug.cgi?id=1082896#c13
+
+-------------------------------------------------------------------
+Thu Mar 15 11:19:33 CET 2018 - jsm...@suse.de
+
+- Version upgrade to 9.23rc1 (first release candidate for 9.23).
+  For details see the News.htm and History9.htm files.
+  Regarding installing packages (in particular release candidates)
+  from the openSUSE build service development project "Printing"
+  see https://build.opensuse.org/project/show/Printing
+- Adapted ppc64le-support.patch: In Ghostscript 9.23 there is now
+  lcms2art/include/lcms2art.h (instead of lcms2/include/lcms2.h).
+- ghostscript-fix-debug-use.patch is no longer needed
+  because the issue is fixed in the upstream sources.
+- fix_ln_docdir_gsdatadir.patch avoids
+  "base/unixinst.mak:162: recipe for target 'install-doc' failed"
+- Adapted spec file to the new Ghostscript upstream documentation
+  directory /usr/share/doc/ghostscript/9.23/
+
+-------------------------------------------------------------------
+Wed Feb 28 00:14:31 UTC 2018 - stefan.bru...@rwth-aachen.de
+
+- Use -p /sbin/ldconfig instead of shell post(un) scriptlet, drop
+  explicit Prereq for ldconfig
+- Use shared libgs library for gs binary instead of static linked
+  version
+- Use --disable-compile-inits, to allow unbundling of Resource files
+- Remove --disable-omni switch, has been removed in GS 9.20
+- Keep patch ordering in full/mini consistent
+- Remove patch backup files to avoid packaging
+
+-------------------------------------------------------------------
@@ -48 +151 @@
-  less than zero energy to fix on such "latest breaking changes"
+  less than zero energy to fix such "latest breaking changes"
ghostscript.changes: same change

Old:
----
  ghostscript-9.22.tar.gz
  ghostscript-fix-debug-use.patch
  ppc64le-support.patch

New:
----
  fix_ln_docdir_gsdatadir.patch
  ghostscript-9.23.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghostscript-mini.spec ++++++
--- /var/tmp/diff_new_pack.LaCwLo/_old  2018-04-17 11:15:15.044788079 +0200
+++ /var/tmp/diff_new_pack.LaCwLo/_new  2018-04-17 11:15:15.048787892 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ghostscript-mini
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,6 +19,7 @@
 Name:           ghostscript-mini
 BuildRequires:  freetype2-devel
 BuildRequires:  libjpeg-devel
+BuildRequires:  liblcms2-devel
 BuildRequires:  libpng-devel
 BuildRequires:  libtiff-devel
 BuildRequires:  libtool
@@ -36,67 +37,53 @@
 # 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.21pre22rc2
+#Version:        9.22pre23rc1
 # Normal version for Ghostscript releases is the upstream version:
-Version:        9.22
+Version:        9.23
 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.22rc2
+#define tarball_version 9.23rc1
 # 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.22
+#define built_version 9.23
 # Source0...Source9 is for sources from upstream:
 # Special URLs for Ghostscript release candidates:
-# URL for Source0: 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs922rc2/ghostscript-9.22rc2.tar.gz
+# see https://github.com/ArtifexSoftware/ghostpdl-downloads/releases
+# URL for Source0: 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923rc1/ghostscript-9.23rc1.tar.gz
 # How to download it:
-# wget -O ghostscript-9.22rc2.tar.gz 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs922rc2/ghostscript-9.22rc2.tar.gz
+# wget -O ghostscript-9.23rc1.tar.gz 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923rc1/ghostscript-9.23rc1.tar.gz
 #Source0:        ghostscript-%{tarball_version}.tar.gz
 # Normal URLs for Ghostscript releases:
-# URL for Source0: 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs922/ghostscript-9.22.tar.gz
-# How to download it:
-# wget -O ghostscript-9.22.tar.gz 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs922/ghostscript-9.22.tar.gz
+# URL for Source0:
+# wget -O ghostscript-9.23.tar.gz 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923/ghostscript-9.23.tar.gz
 # URL for MD5 checksums:
-# wget -O gs922.MD5SUMS 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs922/MD5SUMS
-# MD5 checksum for Source0: eff6bc41b1d7e26e988d2a5c813889d1
+# wget -O gs923.MD5SUMS 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923/MD5SUMS
+# MD5 checksum for Source0: 5a47ab47cd22dec1eb5f51c06f1c9d9c
 Source0:        ghostscript-%{version}.tar.gz
 # 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:
-# Patch11 ppc64le-support.patch is a remainder of the previous patch
-# now the hunk for LCMS (lcms/include/lcms.h) is removed
-# because LCMS 1.x is removed since Ghostscript 9.16
-# but the hunk for LCMS2 (lcms2/include/lcms2.h) is still needed
-# see http://bugs.ghostscript.com/show_bug.cgi?id=695544
-Patch11:        ppc64le-support.patch
+# Avoid
+#   ln -s 
/home/abuild/rpmbuild/BUILDROOT/ghostscript-9.22pre23rc1-104.1.i386/usr/share/doc/ghostscript/9.23
 /usr/share/ghostscript/9.23/doc
+#   ln: failed to create symbolic link '/usr/share/ghostscript/9.23/doc': No 
such file or directory
+#   base/unixinst.mak:162: recipe for target 'install-doc' failed
+#   make[1]: *** [install-doc] Error 1
+Patch12:        fix_ln_docdir_gsdatadir.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:
 # 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
-# Patch101 ghostscript-fix-debug-use.patch from upstream fixes file generation 
in
-# debug mode which lead to Fuji Xerox printer drivers to fail printing without 
any error.
-Patch101:       ghostscript-fix-debug-use.patch
-
 # RPM dependencies:
 Conflicts:      ghostscript
 Conflicts:      ghostscript-x11
 Conflicts:      ghostscript-devel
 Conflicts:      ghostscript-library
-# 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
 
@@ -150,23 +137,51 @@
 # 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}
-# Patch11 ppc64le-support.patch is a remainder of the previous patch
-# now the hunk for LCMS (lcms/include/lcms.h) is removed
-# because LCMS 1.x is removed since Ghostscript 9.16
-# but the hunk for LCMS2 (lcms2/include/lcms2.h) is still needed
-# see http://bugs.ghostscript.com/show_bug.cgi?id=695544
-%patch11 -p1 -b .ppc64le-support.orig
+# Avoid
+#   ln -s 
/home/abuild/rpmbuild/BUILDROOT/ghostscript-9.22pre23rc1-104.1.i386/usr/share/doc/ghostscript/9.23
 /usr/share/ghostscript/9.23/doc
+#   ln: failed to create symbolic link '/usr/share/ghostscript/9.23/doc': No 
such file or directory
+#   base/unixinst.mak:162: recipe for target 'install-doc' failed
+#   make[1]: *** [install-doc] Error 1
+%patch12
 # 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:
+# 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:
 #patch100 -p1 -b remove-zlib-h-dependency.orig
-%patch101 -p1
+# Remove patch backup files to avoid packaging
+# cf. https://build.opensuse.org/request/show/581052
+rm -f Resource/Init/*.ps.orig
 # 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:
 #rm -rf freetype jpeg libpng tiff zlib
+# 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:
 rm -rf freetype jpeg libpng tiff
+# 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 "Building it with lcms2art in Ghostscript"
+%else
+rm -rf lcms2art
+%endif
 
 %build
 # Derive build timestamp from latest changelog entry
@@ -183,7 +198,6 @@
 # --with-drivers=FILES to have only the file format drivers
 #   but no printer drivers in the minimal Ghostscript.
 # --without-x to not use the X Window System.
-# --without-omni to disable the outdated and unmaintained omni driver.
 # --enable-openjpeg because since Ghostscript 9.05 JasPer is deprecated
 #   (--without-jasper is now an unrecognized option by configure)
 #   and Ghostscript now ships modified OpenJPEG sources for JPEG2000 decoding
@@ -192,6 +206,9 @@
 #   see also http://bugs.ghostscript.com/show_bug.cgi?id=691430
 # --without-ufst and --without-luratech because those are relevant to 
commercial releases only
 #   which would require a commercial license.
+# --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
 # --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
@@ -208,6 +225,7 @@
             --with-jbig2dec \
             --enable-openjpeg \
             --enable-dynamic \
+            --disable-compile-inits \
             --without-ijs \
             --disable-cups \
             --disable-dbus \
@@ -215,12 +233,14 @@
             --with-drivers=FILES \
             --without-x \
             --disable-gtk \
-            --without-omni \
             --without-ufst \
             --without-luratech \
             --without-libpaper
-make
+
 # Make libgs.so and two programs which use it, gsx and gsc:
+# 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
 make so
 # Configure and make libijs (that is not done regardless whether or not 
--with-ijs is used above):
 pushd ijs
@@ -238,9 +258,11 @@
 popd
 
 %install
-make install DESTDIR=%{buildroot}
 # Install libgs.so gsx gsc and some header files:
 make soinstall DESTDIR=%{buildroot}
+# Use gsc instead of gs, and remove duplicate gsx (see above)
+mv %{buildroot}/%{_bindir}/{gsc,gs}
+rm %{buildroot}/%{_bindir}/gsx
 # Install libijs and its header files:
 pushd ijs
 make install DESTDIR=%{buildroot}
@@ -249,25 +271,32 @@
 rm %{buildroot}%{_bindir}/ijs_client_example
 rm %{buildroot}%{_bindir}/ijs_server_example
 rm %{buildroot}%{_libdir}/libijs.la
-# Since Ghostscript 9.22rc1 bin/font2c and bin/wftopfa are removed
-# but the matching man pages are still installed which are hereby also removed:
-#rm %{buildroot}%{_mandir}/man1/font2c.1
-#rm %{buildroot}%{_mandir}/man1/wftopfa.1
-#rm %{buildroot}%{_mandir}/de/man1/font2c.1
-#rm %{buildroot}%{_mandir}/de/man1/wftopfa.1
+# 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
 # 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
+DOCDIR=%{buildroot}%{_datadir}/doc/ghostscript/%{built_version}
 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
+# 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
 # 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
+ln -s ../ghostscript/%{built_version} ghostscript
 popd
 # Extract the catalog of devices which are actually built-in in exactly this 
Ghostscript:
 # If a needed source file is no longer accessible fail intentionally as 
notification
@@ -278,7 +307,7 @@
 # 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:' )
+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:' )
 do for F in devices/devs.mak devices/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
@@ -287,25 +316,15 @@
 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
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
 
 %files
 %defattr(-, root, root)
 %{_bindir}/dvipdf
 %{_bindir}/eps2eps
 %{_bindir}/gs
-%{_bindir}/gsx
-%{_bindir}/gsc
 %{_bindir}/gsbj
 %{_bindir}/gsdj
 %{_bindir}/gsdj500
@@ -364,9 +383,12 @@
 %doc %{_mandir}/de/man1/ps2pdf14.1.gz
 %doc %{_mandir}/de/man1/ps2ps.1.gz
 %doc %{_defaultdocdir}/ghostscript
+%dir %{_datadir}/doc/ghostscript
+%doc %{_datadir}/doc/ghostscript/%{built_version}
 %dir %{_datadir}/ghostscript
 %dir %{_datadir}/ghostscript/%{built_version}
-%doc %{_datadir}/ghostscript/%{built_version}/doc/
+%{_datadir}/ghostscript/%{built_version}/Resource
+%{_datadir}/ghostscript/%{built_version}/iccprofiles
 %{_datadir}/ghostscript/%{built_version}/examples/
 %{_datadir}/ghostscript/%{built_version}/lib/
 %{_libdir}/libgs.so.*

++++++ ghostscript.spec ++++++
--- /var/tmp/diff_new_pack.LaCwLo/_old  2018-04-17 11:15:15.076786579 +0200
+++ /var/tmp/diff_new_pack.LaCwLo/_new  2018-04-17 11:15:15.076786579 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ghostscript
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -37,6 +37,7 @@
 BuildRequires:  freetype2-devel
 BuildRequires:  libexpat-devel
 BuildRequires:  libjpeg-devel
+BuildRequires:  liblcms2-devel
 BuildRequires:  libpng-devel
 BuildRequires:  libtiff-devel
 BuildRequires:  libtool
@@ -56,52 +57,48 @@
 # 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.21pre22rc2
+#Version:        9.22pre23rc1
 # Normal version for Ghostscript releases is the upstream version:
-Version:        9.22
+Version:        9.23
 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.22rc2
+#define tarball_version 9.23rc1
 # 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.22
+#define built_version 9.23
 # Source0...Source9 is for sources from upstream:
 # Special URLs for Ghostscript release candidates:
-# URL for Source0: 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs922rc2/ghostscript-9.22rc2.tar.gz
+# see https://github.com/ArtifexSoftware/ghostpdl-downloads/releases
+# URL for Source0: 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923rc1/ghostscript-9.23rc1.tar.gz
 # How to download it:
-# wget -O ghostscript-9.22rc2.tar.gz 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs922rc2/ghostscript-9.22rc2.tar.gz
+# wget -O ghostscript-9.23rc1.tar.gz 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923rc1/ghostscript-9.23rc1.tar.gz
 #Source0:        ghostscript-%{tarball_version}.tar.gz
 # Normal URLs for Ghostscript releases:
-# URL for Source0: 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs922/ghostscript-9.22.tar.gz
-# How to download it:
-# wget -O ghostscript-9.22.tar.gz 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs922/ghostscript-9.22.tar.gz
+# URL for Source0:
+# wget -O ghostscript-9.23.tar.gz 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923/ghostscript-9.23.tar.gz
 # URL for MD5 checksums:
-# wget -O gs922.MD5SUMS 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs922/MD5SUMS
-# MD5 checksum for Source0: eff6bc41b1d7e26e988d2a5c813889d1
+# wget -O gs923.MD5SUMS 
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs923/MD5SUMS
+# MD5 checksum for Source0: 5a47ab47cd22dec1eb5f51c06f1c9d9c
 Source0:        ghostscript-%{version}.tar.gz
 # 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:
-# Patch11 ppc64le-support.patch is a remainder of the previous patch
-# now the hunk for LCMS (lcms/include/lcms.h) is removed
-# because LCMS 1.x is removed since Ghostscript 9.16
-# but the hunk for LCMS2 (lcms2/include/lcms2.h) is still needed
-# see http://bugs.ghostscript.com/show_bug.cgi?id=695544
-Patch11:        ppc64le-support.patch
+# Avoid
+#   ln -s 
/home/abuild/rpmbuild/BUILDROOT/ghostscript-9.22pre23rc1-104.1.i386/usr/share/doc/ghostscript/9.23
 /usr/share/ghostscript/9.23/doc
+#   ln: failed to create symbolic link '/usr/share/ghostscript/9.23/doc': No 
such file or directory
+#   base/unixinst.mak:162: recipe for target 'install-doc' failed
+#   make[1]: *** [install-doc] Error 1
+Patch12:        fix_ln_docdir_gsdatadir.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:
 # 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
-# Patch101 ghostscript-fix-debug-use.patch from upstream fixes file generation 
in
-# debug mode which lead to Fuji Xerox printer drivers to fail printing without 
any error.
-Patch101:       ghostscript-fix-debug-use.patch
-
 # 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":
@@ -189,16 +186,6 @@
 %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
 
@@ -286,23 +273,51 @@
 # 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}
-# Patch11 ppc64le-support.patch is a remainder of the previous patch
-# now the hunk for LCMS (lcms/include/lcms.h) is removed
-# because LCMS 1.x is removed since Ghostscript 9.16
-# but the hunk for LCMS2 (lcms2/include/lcms2.h) is still needed
-# see http://bugs.ghostscript.com/show_bug.cgi?id=695544
-%patch11 -p1 -b .ppc64le-support.orig
-%patch101 -p1
+# Avoid
+#   ln -s 
/home/abuild/rpmbuild/BUILDROOT/ghostscript-9.22pre23rc1-104.1.i386/usr/share/doc/ghostscript/9.23
 /usr/share/ghostscript/9.23/doc
+#   ln: failed to create symbolic link '/usr/share/ghostscript/9.23/doc': No 
such file or directory
+#   base/unixinst.mak:162: recipe for target 'install-doc' failed
+#   make[1]: *** [install-doc] Error 1
+%patch12
 # 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:
+# 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:
 #patch100 -p1 -b remove-zlib-h-dependency.orig
+# Remove patch backup files to avoid packaging
+# cf. https://build.opensuse.org/request/show/581052
+rm -f Resource/Init/*.ps.orig
 # 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:
 #rm -rf freetype jpeg libpng tiff zlib
+# 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:
 rm -rf freetype jpeg libpng tiff
+# 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 "Building it with lcms2art in Ghostscript"
+%else
+rm -rf lcms2art
+%endif
 
 %build
 # Derive build timestamp from latest changelog entry
@@ -321,7 +336,6 @@
 # --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.
 # --enable-openjpeg because since Ghostscript 9.05 JasPer is deprecated
 #   (--without-jasper is now an unrecognized option by configure)
 #   and Ghostscript now ships modified OpenJPEG sources for JPEG2000 decoding
@@ -330,6 +344,9 @@
 #   see also http://bugs.ghostscript.com/show_bug.cgi?id=691430
 # --without-ufst and --without-luratech because those are relevant to 
commercial releases only
 #   which would require a commercial license.
+# --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
 # --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
@@ -346,17 +363,20 @@
             --with-jbig2dec \
             --enable-openjpeg \
             --enable-dynamic \
+            --disable-compile-inits \
             --with-ijs \
             --enable-cups \
             --with-drivers=ALL \
             --with-x \
             --disable-gtk \
-            --without-omni \
             --without-ufst \
             --without-luratech \
             --without-libpaper
-make
+
 # Make libgs.so and two programs which use it, gsx and gsc:
+# 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
 make so
 # Configure and make libijs (that is not done regardless whether or not 
--with-ijs is used above):
 pushd ijs
@@ -374,9 +394,11 @@
 popd
 
 %install
-make install DESTDIR=%{buildroot}
 # Install libgs.so gsx gsc and some header files:
 make soinstall DESTDIR=%{buildroot}
+# Use gsc instead of gs, and remove duplicate gsx (see above)
+mv %{buildroot}/%{_bindir}/{gsc,gs}
+rm %{buildroot}/%{_bindir}/gsx
 # Install libijs and its header files:
 pushd ijs
 make install DESTDIR=%{buildroot}
@@ -385,25 +407,32 @@
 rm %{buildroot}%{_bindir}/ijs_client_example
 rm %{buildroot}%{_bindir}/ijs_server_example
 rm %{buildroot}%{_libdir}/libijs.la
-# Since Ghostscript 9.22rc1 bin/font2c and bin/wftopfa are removed
-# but the matching man pages are still installed which are hereby also removed:
-#rm %{buildroot}%{_mandir}/man1/font2c.1
-#rm %{buildroot}%{_mandir}/man1/wftopfa.1
-#rm %{buildroot}%{_mandir}/de/man1/font2c.1
-#rm %{buildroot}%{_mandir}/de/man1/wftopfa.1
+# 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
 # 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
+DOCDIR=%{buildroot}%{_datadir}/doc/ghostscript/%{built_version}
 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
+# 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
 # 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
+ln -s ../ghostscript/%{built_version} ghostscript
 popd
 # Extract the catalog of devices which are actually built-in in exactly this 
Ghostscript:
 # If a needed source file is no longer accessible fail intentionally as 
notification
@@ -414,7 +443,7 @@
 # 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:' )
+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:' )
 do for F in devices/devs.mak devices/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
@@ -423,25 +452,15 @@
 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
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
 
 %files
 %defattr(-, root, root)
 %{_bindir}/dvipdf
 %{_bindir}/eps2eps
 %{_bindir}/gs
-%{_bindir}/gsx
-%{_bindir}/gsc
 %{_bindir}/gsbj
 %{_bindir}/gsdj
 %{_bindir}/gsdj500
@@ -500,9 +519,12 @@
 %doc %{_mandir}/de/man1/ps2pdf14.1.gz
 %doc %{_mandir}/de/man1/ps2ps.1.gz
 %doc %{_defaultdocdir}/ghostscript
+%dir %{_datadir}/doc/ghostscript
+%doc %{_datadir}/doc/ghostscript/%{built_version}
 %dir %{_datadir}/ghostscript
 %dir %{_datadir}/ghostscript/%{built_version}
-%doc %{_datadir}/ghostscript/%{built_version}/doc/
+%{_datadir}/ghostscript/%{built_version}/Resource
+%{_datadir}/ghostscript/%{built_version}/iccprofiles
 %{_datadir}/ghostscript/%{built_version}/examples/
 %{_datadir}/ghostscript/%{built_version}/lib/
 %{_libdir}/libgs.so.*

++++++ fix_ln_docdir_gsdatadir.patch ++++++
--- base/unixinst.mak.orig      2018-03-07 16:01:52.000000000 +0100
+++ base/unixinst.mak   2018-03-12 14:06:43.000000000 +0100
@@ -163,7 +163,7 @@ install-doc: $(PSDOCDIR)/News.htm
        $(SH) -c 'for f in $(DOC_PAGES) ;\
        do if ( test -f $(PSDOCDIR)/$$f ); then $(INSTALL_DATA) $(PSDOCDIR)/$$f 
$(DESTDIR)$(docdir); fi;\
        done'
-       ln -s $(DESTDIR)$(docdir) $(DESTDIR)$(gsdatadir)/doc
+       # ln -s $(DESTDIR)$(docdir) $(DESTDIR)$(gsdatadir)/doc
 
 # install the man pages for each locale
 MAN_LCDIRS=. de
++++++ ghostscript-9.22.tar.gz -> ghostscript-9.23.tar.gz ++++++
/work/SRC/openSUSE:Factory/ghostscript/ghostscript-9.22.tar.gz 
/work/SRC/openSUSE:Factory/.ghostscript.new/ghostscript-9.23.tar.gz differ: 
char 5, line 1


Reply via email to