source: spec/trunk/SPECS/ghostscript.spec

Last change on this file was 1571, checked in by Silvan Scherrer, 7 years ago

use the right tag in the spec

File size: 11.7 KB
Line 
1
2%define _with_freetype 1
3%define gs_ver 9.18
4%define gs_dot_ver 9.18
5%define gs_major 9
6
7Summary: A PostScript interpreter and renderer
8Name: ghostscript
9Version: %{gs_ver}
10
11Release: 7%{?dist}
12
13# Included CMap data is Redistributable, no modification permitted,
14# see http://bugzilla.redhat.com/487510
15License: AGPLv3+ and Redistributable, no modification permitted
16URL: http://www.ghostscript.com/
17Group: Applications/Publishing
18Vendor: bww bitwise works GmbH
19%scm_source github https://github.com/bitwiseworks/%{name}-os2 %{version}-os2
20
21Requires: urw-fonts >= 1.1, ghostscript-fonts
22Requires: poppler-data
23BuildRequires: xz
24BuildRequires: libjpeg-devel
25BuildRequires: zlib-devel, libpng-devel, unzip
26BuildRequires: glib2-devel
27# Omni requires libxml
28BuildRequires: libxml2-devel
29BuildRequires: libtiff-devel
30BuildRequires: cups-devel >= 1.4.8-4
31BuildRequires: libtool
32#BuildRequires: jasper-devel, gnutls-devel
33#BuildRequires: dbus-devel
34BuildRequires: poppler-data
35BuildRequires: lcms2-devel
36#BuildRequires: openjpeg-devel
37%{?_with_freetype:BuildRequires: freetype-devel}
38BuildRoot: %{_tmppath}/%{name}-%{gs_ver}-root
39
40# as we also deliver a gnu version for license concerns, we have to add
41# this obsolete, as only this version will get regular updates
42Obsoletes: gnu-ghostscript < %{gs_ver}
43Provides: gnu-ghostscript = %{gs_ver}
44
45# See bug #83516.
46Conflicts: ttfonts-ja < 1.2-23
47Conflicts: ttfonts-ko < 1.0.11-27
48Conflicts: ttfonts-zh_CN < 2.12-2
49Conflicts: ttfonts-zh_TW < 2.11-20
50
51%description
52Ghostscript is a set of software that provides a PostScript
53interpreter, a set of C procedures (the Ghostscript library, which
54implements the graphics capabilities in the PostScript language) and
55an interpreter for Portable Document Format (PDF) files. Ghostscript
56translates PostScript code into many common, bitmapped formats, like
57those understood by your printer or screen. Ghostscript is normally
58used to display PostScript files and to print PostScript files to
59non-PostScript printers.
60
61If you need to display PostScript files or print them to
62non-PostScript printers, you should install ghostscript. If you
63install ghostscript, you also need to install the ghostscript-fonts
64package.
65
66%package devel
67Summary: Files for developing applications that use ghostscript
68Requires: %{name} = %{version}-%{release}
69Group: Development/Libraries
70
71%description devel
72The header files for developing applications that use ghostscript.
73
74%package doc
75Summary: Documentation for ghostscript
76Requires: %{name} = %{version}-%{release}
77Group: Documentation
78BuildArch: noarch
79
80%description doc
81The documentation files that come with ghostscript.
82
83%debug_package
84
85%prep
86%scm_setup
87
88#rm -rf expat freetype icclib jasper jpeg lcms2 libpng openjpeg zlib cups/libs
89rm -rf freetype jpeg libpng zlib cups/libs tiff lcms2
90
91
92
93# Convert manual pages to UTF-8
94#from8859_1() {
95# iconv -f iso-8859-1 -t utf-8 < "$1" > "${1}_"
96# mv "${1}_" "$1"
97#}
98#for i in man/de/*.1; do
99# if [ "$(file --brief --mime-encoding "$i")" = iso-8859-1 ]; then
100# from8859_1 "$i"
101# fi
102#done
103
104# Convert ps files to UTF-8
105#for i in examples/cjk/gsc*.ps; do from8859_1 "$i"; done
106
107%build
108# Compile without strict aliasing opts due to these files:
109# gdevescv.c gdevl4v.c gdevopvp.c gdevbbox.c gdevdbit.c gdevddrw.c
110# gdevp14.c gdevpdfd.c gdevpdfi.c gdevpdfo.c gdevpdft.c gdevpdfv.c
111# gdevpdte.c gdevpdtt.c gdevps.c gdevpx.c gscoord.c gscparam.c gscrd.c
112# gsdps1.c gsimage.c gspath1.c gsptype1.c gsptype2.c gstype2.c
113# gstype42.c gxccache.c gxchar.c gxclimag.c gxclpath.c gxfcopy.c
114# gximag3x.c gximage3.c gxipixel.c gxshade1.c gxstroke.c gxtype1.c
115# ibnum.c iscanbin.c zchar1.c zchar.c zcharx.c zfapi.c zfont32.c
116# zfunc0.c zfunc3.c zfunc4.c zpcolor.c zshade.c
117EXTRACFLAGS="-fno-strict-aliasing"
118
119FONTPATH=
120for path in \
121 /@system_drive/psfonts \
122 /@system_drive/os2/psfonts \
123 %{_datadir}/fonts/default/%{name} \
124 %{_datadir}/fonts/default/Type1 \
125 %{_datadir}/fonts/default/amspsfnt/pfb \
126 %{_datadir}/fonts/default/cmpsfont/pfb \
127 %{_datadir}/fonts \
128 %{_datadir}/%{name}/conf.d \
129 %{_sysconfdir}/%{name} \
130 %{_sysconfdir}/%{name}/%{gs_dot_ver} \
131 %{_datadir}/poppler/cMap/*
132do
133 FONTPATH="$FONTPATH${FONTPATH:+;}$path"
134done
135
136autoconf --force
137export LDFLAGS=" -Zhigh-mem -Zomf -Zargs-wild -Zargs-resp"
138export LIBS="-lcx"
139# --enable-dynamic
140%configure --with-fontpath="$FONTPATH" \
141 --with-drivers=ALL --disable-compile-inits --with-system-libtiff \
142 --with-ijs --with-exe-ext=.exe CFLAGS="$CFLAGS $EXTRACFLAGS"
143
144# Build IJS
145cd ijs
146autogen.sh
147%configure --enable-shared --disable-static
148make
149cd ..
150
151# @todo figure out why they do the make so and make in fedora
152# we only do make so and also only make soinstall
153# the original 2nd make and 2nd install is commented out for now
154
155%if %{_with_freetype}
156FT_CFLAGS=$(pkg-config --cflags freetype2)
157make so RPM_OPT_FLAGS="$RPM_OPT_FLAGS $EXTRACFLAGS" prefix=%{_prefix} \
158 FT_BRIDGE=1 FT_CFLAGS="$FT_CFLAGS" FT_LIB=freetype
159#make RPM_OPT_FLAGS="$RPM_OPT_FLAGS $EXTRACFLAGS" prefix=%{_prefix} \
160# FT_BRIDGE=1 FT_CFLAGS="$FT_CFLAGS" FT_LIB=freetype
161%else
162make so RPM_OPT_FLAGS="$RPM_OPT_FLAGS $EXTRACFLAGS" prefix=%{_prefix}
163#make RPM_OPT_FLAGS="$RPM_OPT_FLAGS $EXTRACFLAGS" prefix=%{_prefix}
164%endif
165make cups
166
167%install
168rm -rf $RPM_BUILD_ROOT
169mkdir -p $RPM_BUILD_ROOT
170mkdir -p $RPM_BUILD_ROOT/%{_mandir}
171mkdir -p $RPM_BUILD_ROOT/%{_bindir}
172mkdir -p $RPM_BUILD_ROOT/%{_datadir}
173mkdir -p $RPM_BUILD_ROOT/%{_docdir}
174mkdir -p $RPM_BUILD_ROOT/%{_libdir}
175mkdir -p $RPM_BUILD_ROOT/%{_includedir}/ijs
176
177#make install soinstall \
178make soinstall \
179%{?_with_freetype:FT_BRIDGE=1} \
180 prefix=$RPM_BUILD_ROOT%{_prefix} \
181 mandir=$RPM_BUILD_ROOT%{_mandir} \
182 datadir=$RPM_BUILD_ROOT%{_datadir} \
183 gsincludedir=$RPM_BUILD_ROOT%{_includedir}/ghostscript/ \
184 bindir=$RPM_BUILD_ROOT%{_bindir} \
185 libdir=$RPM_BUILD_ROOT%{_libdir} \
186 docdir=$RPM_BUILD_ROOT%{_docdir}/%{name}-%{gs_dot_ver} \
187 gsdir=$RPM_BUILD_ROOT%{_datadir}/%{name} \
188 gsdatadir=$RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver} \
189 gssharedir=$RPM_BUILD_ROOT%{_libdir}/%{name}/%{gs_dot_ver} \
190 CUPSSERVERROOT=$RPM_BUILD_ROOT`cups-config --serverroot` \
191 CUPSSERVERBIN=$RPM_BUILD_ROOT`cups-config --serverbin` \
192 CUPSDATA=$RPM_BUILD_ROOT`cups-config --datadir`
193
194# add symlink for scripts
195ln -s %{_bindir}/gsos2.exe %{buildroot}%{_bindir}/gs
196rm -f $RPM_BUILD_ROOT%{_libdir}/gsdll2.%{gs_dot_ver}.dll
197rm -f $RPM_BUILD_ROOT%{_libdir}/gsdll2.%{gs_major}.dll
198
199cd ijs
200%makeinstall
201cd ..
202
203install -m0644 base/gserrors.h $RPM_BUILD_ROOT%{_includedir}/ghostscript/
204
205echo ".so man1/gs.1" > $RPM_BUILD_ROOT/%{_mandir}/man1/ghostscript.1
206ln -sf %{_bindir}/gsos2.exe $RPM_BUILD_ROOT%{_bindir}/ghostscript
207
208# Rename an original cidfmap to cidfmap.GS
209#mv $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/Resource/Init/cidfmap $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/Resource/Init/cidfmap.GS
210# Install our own cidfmap to allow the separated
211# cidfmap which the font packages own.
212#install -m0644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/Resource/Init/CIDFnmap
213#install -m0644 %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/Resource/Init/cidfmap
214
215# Documentation
216install -m0644 doc/COPYING $RPM_BUILD_ROOT%{_docdir}/%{name}-%{gs_dot_ver}
217
218# Don't ship libtool la files.
219rm -f $RPM_BUILD_ROOT%{_libdir}/libijs.la
220
221# Don't ship ijs example client or server
222rm -f $RPM_BUILD_ROOT%{_bindir}/ijs_client_example.exe
223rm -f $RPM_BUILD_ROOT%{_bindir}/ijs_server_example.exe
224
225# Don't ship URW fonts; we already have them.
226rm -rf $RPM_BUILD_ROOT%{_datadir}/ghostscript/%{gs_dot_ver}/Resource/Font
227
228mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ghostscript/%{gs_dot_ver}
229touch $RPM_BUILD_ROOT%{_sysconfdir}/ghostscript/%{gs_dot_ver}/Fontmap.local
230touch $RPM_BUILD_ROOT%{_sysconfdir}/ghostscript/%{gs_dot_ver}/cidfmap.local
231touch $RPM_BUILD_ROOT%{_sysconfdir}/ghostscript/%{gs_dot_ver}/CIDFnmap.local
232
233# The man/de/man1 symlinks are broken (bug #66238).
234find $RPM_BUILD_ROOT%{_mandir}/de/man1 -type l | xargs rm -f
235
236# Don't ship fixmswrd.pl as it pulls in perl (bug #463948).
237rm -f $RPM_BUILD_ROOT%{_bindir}/fixmswrd.pl
238
239# Don't ship CMaps (instead poppler-data paths are in search path).
240rm -f $RPM_BUILD_ROOT%{_datadir}/ghostscript/%{gs_dot_ver}/Resource/CMap/*
241
242MAIN_PWD=`pwd`
243(cd $RPM_BUILD_ROOT; find .%{_datadir}/ghostscript/%{gs_dot_ver}/Resource -type f | \
244 sed -e 's/\.//;' | grep -v Fontmap | grep -v gs_init.ps > $MAIN_PWD/rpm.sharelist
245 find .%{_bindir}/ | sed -e 's/\.//;' | \
246 grep -v '/$\|/hpijs$\|/gsx$\|/ijs-config$' \
247 >> $MAIN_PWD/rpm.sharelist)
248
249
250%clean
251rm -rf $RPM_BUILD_ROOT
252
253#%post -p /sbin/ldconfig
254
255#%postun -p /sbin/ldconfig
256
257%files -f rpm.sharelist
258%defattr(-,root,root)
259%dir %{_sysconfdir}/ghostscript
260%dir %{_sysconfdir}/ghostscript/%{gs_dot_ver}
261%dir %{_datadir}/ghostscript/%{gs_dot_ver}
262%dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource
263%dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/Init
264%config %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/Init/gs_init.ps
265%config %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/Init/Fontmap*
266%dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/CMap
267%dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/CIDFont
268%dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/CIDFSubst
269%dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/ColorSpace
270%dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/Decoding
271%dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/Encoding
272%dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/IdiomSet
273%dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/SubstCID
274%{_datadir}/ghostscript/%{gs_dot_ver}/lib
275%{_datadir}/ghostscript/%{gs_dot_ver}/iccprofiles
276%{_mandir}/man*/*
277%lang(de) %{_mandir}/de/man*/*
278%{_libdir}/gsdll2.dll
279%{_libdir}/ijs*.dll
280#%dir %{_libdir}/%{name}
281#%{_libdir}/%{name}/%{gs_dot_ver}
282%config(noreplace) %{_sysconfdir}/ghostscript/%{gs_dot_ver}/*
283
284%files doc
285%defattr(-,root,root)
286%doc %{_datadir}/ghostscript/%{gs_dot_ver}/examples
287%doc %{_docdir}/%{name}-%{gs_dot_ver}
288
289%files devel
290%defattr(-,root,root)
291%dir %{_includedir}/ghostscript
292%{_includedir}/ghostscript/*.h
293%dir %{_includedir}/ijs
294%{_includedir}/ijs/*
295%{_bindir}/ijs-config
296%{_libdir}/pkgconfig/ijs.pc
297%{_libdir}/ijs*.a
298%{_libdir}/gs.a
299%{_libdir}/gs.lib
300
301%changelog
302* Fri Dec 15 2017 Silvan Scherrer <silvan.scherrer@aroa.ch> 9.18-7
303- use fork friendly DosLoadModuleEx and DosFreeModuleEx
304- moved source to github
305
306* Fri Nov 17 2017 Silvan Scherrer <silvan.scherrer@aroa.ch> 9.18-6
307- add a obsoletes for the gnu-ghostscript
308- fix softlink
309- use scm_ macros
310- enhance logging and add GS_DEBUG env to write a logfile
311- fix some possible memory leaks
312- fix compile warnings
313- fix a crash with -dUseCIEColor and -dFastWebView switches (borrowed from upstream)
314
315* Fri Apr 8 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> 9.18-5
316- add GS_FONTPATH by default
317- exchange \ by / in -sFONTPATH
318- don't use Dos api with libc
319
320* Fri Mar 18 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> 9.18-4
321- fix wrong generated ijs-config and ijs.pc files
322
323* Mon Mar 14 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> 9.18-3
324- fontnames in GS and in the urw package differ, bring inline
325
326* Fri Feb 26 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> 9.18-2
327- add gserrors.h
328- fix a vendor init bug
329
330* Wed Jan 13 2016 Silvan Scherrer <silvan.scherrer@aroa.ch> 9.18-1
331- updated to ghostscript version 9.18
332- install the cmd files as well
333- added lcms2 as requirement
334- enabled ijs build
335- rebuild with latest libraries
336- adjusted debug package creation to latest rpm macros
337- removed the cups package, as in cups-filter since gs 9.08
338
339* Sun Feb 15 2015 yd <yd@os2power.com> 9.10-4
340- rebuild for new libpng release.
341
342* Tue Dec 16 2014 yd
343- r937, r941, fix FONTPATH handling, add PSFONTS dir.
344
345* Fri Dec 12 2014 yd
346- initial unixroot build.
Note: See TracBrowser for help on using the repository browser.