Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3:Rings:1-MinimalX
ghostscript
ghostscript-mini.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ghostscript-mini.spec of Package ghostscript
# # spec file for package ghostscript-mini # # 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-mini BuildRequires: freetype2-devel BuildRequires: libpng-devel BuildRequires: libtiff-devel BuildRequires: libtool BuildRequires: pkg-config BuildRequires: zlib-devel Summary: Minimal Ghostscript for minimal build requirements 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: # 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 %description Crippled Minimal Ghostscript which is not meant to be used by end-users. Minimal Ghostscript provides only the file format drivers in particular to output JPEG PNG PostScript and PDF files but no printer drivers (in particular neither 'cups' nor 'ijs') and no X11 drivers. The ghostscript-mini package is only meant to be used by the openSUSE build service to avoid possible loops in the build dependencies because ghostscript-mini has minimal build dependencies (in particular neither CUPS nor X11 build dependencies). For most packages which need to only run Ghostscript during build, a single line "BuildRequires: ghostscript-mini" should be sufficient in the RPM spec file. For most packages which need Ghostscript development files to build, a single line "BuildRequires: ghostscript-mini-devel" should be sufficient in the RPM spec file. The ghostscript-mini package in the openSUSE build service contains no sources and it must not contain any source files. The ghostscript-mini package is only a link to its matching ghostscript "parent" package. Only that ghostscript package must contain all sources and any changes must happen only for that ghostscript package. This means any changes for the ghostscript-mini package will be rejected in the openSUSE build service. %package devel Summary: Development files for Minimal Ghostscript Group: Development/Libraries/C and C++ Requires: ghostscript-mini = %{version} Conflicts: ghostscript Conflicts: ghostscript-x11 Conflicts: ghostscript-devel Conflicts: ghostscript-library %description devel This package contains the development files for Minimal 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. # --disable-cups and --without-pdftoraster and --without-install-cups # to have nothing related to CUPS in the minimal Ghostscript. # --disable-dbus to have nothing related to D-Bus in the minimal Ghostscript. # --without-ijs to disable IJS printer driver support in the minimal Ghostscript. # --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. # --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 \ --without-ijs \ --disable-cups \ --disable-dbus \ --without-pdftoraster \ --without-install-cups \ --with-drivers=FILES \ --without-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 %files devel %defattr(-,root,root) %{_includedir}/ghostscript/ %{_libdir}/libgs.so %{_bindir}/ijs-config %{_includedir}/ijs/ %{_libdir}/libijs.so %{_libdir}/pkgconfig/ijs.pc %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor