]> git.pld-linux.org Git - packages/xemacs.git/blob - xemacs.spec
- unified pgsql bcond name
[packages/xemacs.git] / xemacs.spec
1 #
2 # Conditional build:
3 %bcond_without  pdump           # portable dumper
4 %bcond_with     pgsql           # PostgreSQL support
5 %bcond_with     gtk             # GTK+ enabled version
6
7 %define         ver             21.5
8 %define         sver            34
9 %define         xver            %{ver}-b%{sver}
10 %define         basepkgver      2.27
11 Summary:        The XEmacs -- Emacs: The Next Generation
12 Summary(es.UTF-8):      El editor XEmacs
13 Summary(ja.UTF-8):      XEmacs エディタ
14 Summary(pl.UTF-8):      XEmacs -- Emacs następnej generacji
15 Summary(pt_BR.UTF-8):   Editor XEmacs
16 Summary(ru.UTF-8):      Версия GNU Emacs для X Window System
17 Summary(uk.UTF-8):      Версія GNU Emacs для X Window System
18 Name:           xemacs
19 Version:        %{ver}.%{sver}
20 Release:        6
21 License:        GPL
22 Group:          Applications/Editors/Emacs
23 Source0:        http://ftp.xemacs.org/xemacs/xemacs-%{ver}/%{name}-%{version}.tar.gz
24 # Source0-md5:  e093150724b6e55b14bae21739cfe373
25 Source2:        http://ftp.xemacs.org/xemacs/packages/%{name}-base-%{basepkgver}-pkg.tar.gz
26 # Source2-md5:  2ec18d0faf31e2d343f558c730474a63
27 Source3:        %{name}.desktop
28 Source4:        %{name}.ad-pl
29 Source5:        %{name}-default.el
30 Source6:        %{name}-ogony-mule.el
31 Source7:        %{name}-ogony-nomule.el
32 Source8:        %{name}.png
33 Patch0:         %{name}-info.patch
34 Patch1:         %{name}-fix_ldflafs.patch
35 Patch2:         %{name}-align.patch
36 Patch3:         %{name}-no-memory-warnings.patch
37 Patch6:         %{name}-do-not-create-backups-in-temp-directories.patch
38 Patch7:         %{name}-level3.patch
39 Patch8:         %{name}-ptmx.patch
40 Patch9:         %{name}-set-locale-to-c-when-not-supported-by-x.patch
41 Patch10:        disable-malloc-warnings.patch
42 Patch11:        fix-conflict-with-glibc.patch
43 URL:            http://www.xemacs.org/
44 # for X11/bitmaps/gray
45 BuildRequires:  automake
46 BuildRequires:  gpm-devel
47 %{?with_gtk:BuildRequires:      gtk+-devel >= 1.2.10}
48 BuildRequires:  libjpeg-devel
49 BuildRequires:  libpng-devel >= 1.0.8
50 BuildRequires:  motif-devel
51 BuildRequires:  ncurses-devel >= 5.0
52 %{?with_pgsql:BuildRequires:    postgresql-devel >= 7.1}
53 BuildRequires:  sed >= 4.0
54 BuildRequires:  texinfo
55 BuildRequires:  xorg-data-xbitmaps
56 BuildRequires:  xorg-lib-libX11-devel
57 BuildRequires:  xorg-lib-libXft-devel
58 BuildRequires:  xorg-lib-libXpm-devel
59 BuildRequires:  zlib-devel
60 # If xemacs is already installed build fails:
61 # Load file misc: not found
62 # Fatal error during load, aborting
63 # because src/temacs opens files from /usr/../xemacs*
64 BuildConflicts: xemacs
65 BuildConflicts: xemacs-common
66 Requires:       %{name}-common = %{version}-%{release}
67 Requires:       ctags
68 Requires:       xorg-lib-libXt >= 1.0
69 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
70
71 %description
72 XEmacs is a highly customizable open source text editor and
73 application development system. XEmacs is a version of Emacs,
74 compatible with and containing many improvements over GNU Emacs,
75 written by Richard Stallman of the Free Software Foundation. It was
76 originally based on an early release of GNU Emacs version 19, and has
77 tracked subsequent releases of GNU Emacs as they have become
78 available. This XEmacs distribution has been splitted in some rpm:
79
80 xemacs-common - common files needed by xemacs and xemacs-nox packages
81 xemacs - XEmacs binary with both X11 and TTY support xemacs-nox -
82 XEmacs binary with TTY support only
83
84 %description -l ja.UTF-8
85 XEmacs は Free Software Foundation の Richard Stallman によって
86 書かれた GNU Emacs との互換性を維持しつつ数多くの改良が施された
87 派生バージョンです. 元々 Emacs 19 を元に開発され,Emacs
88 の後続リリースに追加された 機能と同期が取られています.
89
90 %description -l es.UTF-8
91 XEmacs es una versión de Emacs, compatible con GNU Emacs y conteniendo
92 muchas mejoras. Fue basado originalmente en una versión anterior de
93 GNU Emacs, y ha seguido las versiones subsecuentes.
94
95 %description -l pl.UTF-8
96 XEmacs jest odmianą Emacsa, zgodną (i zawierającą wiele udogodnień) z
97 GNU Emacsem tworzonym przez Richarda Stallmana z Free Software
98 Foundation. Wywodzi się z wczesnych odmian GNU Emacs 19, wprowadza
99 wiele miłych ulepszeń nie tracąc jednak więzi z oryginalną wersją.
100
101 Ta dystrybucja XEmacsa została podzielona na wiele pakietów binarnych:
102
103 xemacs-common - pakiet zawierający pliki współdzielone przez pakiety
104 xemacs i xemacs-nox xemacs - XEmacs skompilowany ze wsparciem dla X11
105 i konsoli xemacs-nox - XEmacs skompilowany bez wsparcia dla X11
106 (pracuje tylko na konsoli tekstowej)
107
108 Do pracy niezbędne są xemacs-common oraz xemacs bądź xemacs-nox.
109
110 %description -l pt_BR.UTF-8
111 XEmacs é uma versão do Emacs, compatível com o GNU Emacs, contendo
112 muitos adicionais. Foi baseado numa versão anterior do GNU Emacs, e
113 seguiu as versões subseqüentes.
114
115 %description -l ru.UTF-8
116 XEmacs (равно как и оригинальный GNU Emacs) - это
117 самодокументированный, настраиваемый, расширяемый редактор с
118 отображением в реальном времени. XEmacs самодокументирован потому что
119 в любое время вы можете нажать control-h для подсказки о возможных
120 опциях или о том, что делает команда. XEmacs настраиваем потому что вы
121 можете изменить определения его команд на все, что вам угодно. XEmacs
122 расширяем потому что вы можете написать совершенно новые
123 команды-программы на языке Lisp, которые будут исполняться встроенным
124 интерпретатором Lisp. XEmacs включает отображение в реальном времени,
125 что значит что редактируемый текст видим на экране и обновляется очень
126 часто (обычно после каждого символа или пары символов) по мере набора
127 текста.
128
129 %description -l uk.UTF-8
130 XEmacs (так само як і оригінальний GNU Emacs) - це самодокументований,
131 настроюваний, розширюваний редактор з відображенням у реальному часі.
132 XEmacs самодокументований тому що у любий час ви можете натиснути
133 control-h для підказки про можливі опції або про те, що робить
134 команда. XEmacs настроюваний тому що ви можете змінити визначення його
135 команд на все, що вам завгодно. XEmacs розширюваний тому що ви можете
136 написати абсолютно нові команди-програми на мові Lisp, які будуть
137 виконуватися вбудованим інтерпретатором Lisp. XEmacs включає
138 відображення у реальному часі, що означає що редагований текст видно
139 на екрані і він поновлюється дуже часто (зазвичай після кожного
140 символу або пари символів) по мірі набору тексту.
141
142 %package common
143 Summary:        Common part of XEmacs distribution
144 Summary(pl.UTF-8):      Wspólne części XEmacsa
145 Group:          Applications/Editors/Emacs
146 Provides:       xemacs-base-pkg
147 Obsoletes:      xemacs-extras
148
149 %description common
150 Common files of XEmacs distribution. This package does not contain
151 XEmacs editor binary, you must install xemacs or xemacs-nox package to
152 use XEmacs -- Emacs: The Next Generation editor.
153
154 %description common -l pl.UTF-8
155 Wspólne pliki XEmacsa. Ten pakiet nie zawiera pliku wykonywalnego
156 edytora, musisz zainstalować xemacs lub xemacs-nox, aby używać XEmacsa
157 bądź Emacsa: edytor Następnej Generacji.
158
159 %package nox
160 Summary:        XEmacs binary compiled without X11 support
161 Summary(pl.UTF-8):      XEmacs skompilowany bez wsparcia dla X11
162 Group:          Applications/Editors/Emacs
163 Requires:       %{name}-common = %{version}-%{release}
164 Provides:       %{name} = %{version}-%{release}
165
166 %description nox
167 XEmacs binary compiled with TTY support only, without X11 support.
168
169 %description nox -l pl.UTF-8
170 XEmacs skompilowany bez wsparcia dla X11 (pracuje tylko na konsoli lub
171 w okienku xterma).
172
173 %prep
174 %setup -q -a2
175 %patch0 -p1
176 %patch1 -p1
177 %patch2 -p1
178 %ifarch alpha ia64
179 # disable memory_warnings() - it doesn't support memory model used on alpha
180 %patch3 -p1
181 %endif
182 %patch6 -p1
183 %patch7 -p1
184 %patch8 -p1
185 %patch9 -p1
186 %patch10 -p1
187 %patch11 -p1
188
189 %if "%{_lib}" == "lib64"
190 sed -i -e 's#"lib"#"lib64"#g' lisp/find-paths.el lisp/info.el lisp/setup-paths.el
191 %endif
192
193 %if "%{_lib}" == "libx32"
194 sed -i -e 's#"lib"#"libx32"#g' lisp/find-paths.el lisp/info.el lisp/setup-paths.el
195 %endif
196
197 %build
198 %{__autoconf}
199 cp /usr/share/automake/config.sub .
200 CFLAGS=" %{rpmcflags} -fno-strict-aliasing"
201 CPPFLAGS=" %{rpmcflags} -fno-strict-aliasing"
202 LDFLAGS=" %{rpmldflags} -lc"
203 export CFLAGS CPPFLAGS LDFLAGS
204
205 # no X
206 %configure %{_target_platform} \
207         --prefix=%{_prefix} \
208         --exec-prefix=%{_prefix} \
209         --infodir=%{_infodir} \
210         --mandir=%{_mandir} \
211         --datadir=%{_datadir} \
212         --libdir=%{_libdir} \
213         --with-prefix=%{_prefix} \
214         --with-statedir=%{_libdir} \
215         --with-archlibdir=%{_libdir}/%{name}-%{xver}/%{_target_cpu}-pld-linux \
216         --with-lispdir=%{_datadir}/%{name}-%{xver}/lisp \
217         --with-moduledir=%{_libdir}/%{name}-%{xver}/%{_target_cpu}-pld-linux/modules \
218         --with-etcdir=%{_datadir}/%{name}-%{xver}/etc \
219         --with-docdir=%{_datadir}/%{name}-%{xver}/etc \
220         --with-package_path="~/.xemacs::%{_datadir}/%{name}-packages" \
221         --enable-mule \
222         --with-site-lisp \
223 %if %{with pgsql}
224         --with-postgresql \
225 %else
226         --without-postgresql \
227 %endif
228         --disable-sound \
229         --without-x11 \
230         --without-jpeg \
231         --without-png \
232         --without-xpm \
233         --with-gpm \
234         --with-ncurses \
235         --enable-database=no \
236 %if %{with pdump}
237         --enable-pdump=yes \
238 %else
239         --enable-pdump=no \
240 %endif
241         --without-tiff \
242         --without-dnet \
243         --without-ldap \
244         --without-dragndrop \
245         --without-msw \
246         --disable-kkcc \
247         --with-error-checking=none \
248         --with-debug=no \
249         --with-system-malloc
250
251
252 %{__make} -j1 \
253         CC="%{__cc}"
254 cp src/xemacs src/xemacs-nox
255 %if %{with pdump}
256 cp src/xemacs.dmp src/xemacs-nox.dmp
257 %endif
258 cp lib-src/gnuserv lib-src/gnuserv-nox
259 %{__make} -j1 distclean
260
261 # X
262 ./configure %{_target_platform} \
263         --prefix=%{_prefix} \
264         --exec-prefix=%{_prefix} \
265         --infodir=%{_infodir} \
266         --mandir=%{_mandir}/man1 \
267         --datadir=%{_datadir} \
268         --libdir=%{_libdir} \
269         --with-prefix=%{_prefix} \
270         --with-statedir=%{_libdir} \
271         --with-archlibdir=%{_libdir}/%{name}-%{xver}/%{_target_cpu}-pld-linux \
272         --with-lispdir=%{_datadir}/%{name}-%{xver}/lisp \
273         --with-moduledir=%{_libdir}/%{name}-%{xver}/%{_target_cpu}-pld-linux/modules \
274         --with-etcdir=%{_datadir}/%{name}-%{xver}/etc \
275         --with-docdir=%{_datadir}/%{name}-%{xver}/etc \
276         --with-package_path="~/.xemacs::%{_datadir}/%{name}-packages" \
277         --enable-mule \
278         --with-site-lisp \
279 %if %{with pgsql}
280         --with-postgresql \
281 %else
282         --without-postgresql \
283 %endif
284         --disable-sound \
285         --with-jpeg \
286         --with-png \
287         --with-xpm \
288         --with-gpm \
289         --with-xft \
290         --with-ncurses \
291 %if %{with gtk}
292         --with-gtk \
293 %else
294         --without-gtk \
295 %endif
296 %if %{undefined gtk}
297         --with-x11 --enable-menubars=lucid --enable-scrollbars=motif \
298         --enable-dialogs=motif --enable-widgets=motif \
299 %endif
300         --enable-database=no \
301         --enable-gnome=no \
302         --without-tiff \
303         --without-dnet \
304         --without-ldap \
305         --without-dragndrop \
306         --without-msw \
307         --disable-kkcc \
308         --with-error-checking=none \
309         --with-debug=no \
310 %if !%{with pdump}
311         --pdump=no \
312 %endif
313         --with-system-malloc
314
315
316 # if you want to xemacs sings and plays sounds add option
317 #       --enable-sound=native
318
319 #       --cflags="$RPM_OPT_FLAGS" \
320 #       --with-session=yes \
321
322 %{__make} -j1 \
323         CC="%{__cc}"
324
325 %install
326 rm -rf $RPM_BUILD_ROOT
327 install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir},/var/lock/xemacs} \
328         $RPM_BUILD_ROOT{%{_mandir}/{ja/man1,man1},%{_datadir}/X11/{pl,}/app-defaults} \
329         $RPM_BUILD_ROOT%{_datadir}/%{name}/lisp \
330         $RPM_BUILD_ROOT%{_datadir}/%{name}-packages/{etc,lib-src,info,man,pkginfo}
331
332 %{__make} install-arch-dep install-arch-indep \
333         DESTDIR=$RPM_BUILD_ROOT \
334         prefix=%{_prefix} \
335         infodir=%{_infodir} \
336         mandir=%{_mandir}/man1 \
337         datadir=%{_datadir} \
338
339 install %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}
340
341 ( cd $RPM_BUILD_ROOT%{_datadir}/%{name}-packages; gzip -dc %{SOURCE2} | tar xf - )
342
343 install %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/%{name}-packages/lisp/default.el
344 install %{SOURCE6} $RPM_BUILD_ROOT%{_datadir}/%{name}-packages/lisp/ogony-mule.el
345 install %{SOURCE7} $RPM_BUILD_ROOT%{_datadir}/%{name}-packages/lisp/ogony-nomule.el
346 install %{SOURCE8} $RPM_BUILD_ROOT%{_pixmapsdir}
347
348
349 [ -d $RPM_BUILD_ROOT%{_datadir}/%{name}/site-lisp ] || \
350 install -d $RPM_BUILD_ROOT%{_datadir}/%{name}/site-lisp
351
352 ln -s %{_datadir}/%{name}/site-lisp $RPM_BUILD_ROOT%{_libdir}/%{name}/site-lisp
353
354 install $RPM_BUILD_ROOT%{_datadir}/%{name}-%{xver}%{_sysconfdir}/Emacs.ad \
355         $RPM_BUILD_ROOT%{_datadir}/X11/app-defaults/XEmacs
356 install $RPM_BUILD_ROOT%{_datadir}/%{name}-%{xver}%{_sysconfdir}/Emacs.ad \
357         $RPM_BUILD_ROOT%{_datadir}/X11/pl/app-defaults/XEmacs
358 cat %{SOURCE4} >>$RPM_BUILD_ROOT%{_datadir}/X11/pl/app-defaults/XEmacs
359
360 mv -f $RPM_BUILD_ROOT%{_bindir}/xemacs-%{xver} \
361         $RPM_BUILD_ROOT%{_bindir}/xemacs
362
363 %if %{with pdump}
364 install src/xemacs.dmp $RPM_BUILD_ROOT%{_bindir}
365 %endif
366
367 find $RPM_BUILD_ROOT%{_datadir}/%{name}-%{xver}/* -type f -name "ChangeLog*" | xargs gzip -9nf
368
369 install src/xemacs-nox $RPM_BUILD_ROOT%{_bindir}
370 %if %{with pdump}
371 install src/xemacs-nox.dmp $RPM_BUILD_ROOT%{_bindir}
372 %endif
373
374 # hack...
375 install lib-src/gnuserv-nox $RPM_BUILD_ROOT%{_bindir}
376 mv -f $RPM_BUILD_ROOT%{_libdir}/%{name}-%{xver}/*-linux*/gnuserv $RPM_BUILD_ROOT%{_bindir}
377
378 # remove some .elc files
379 find $RPM_BUILD_ROOT -name '_pkg.elc' -exec rm "{}" ";"
380
381 # remove .el file if corresponding .elc file exists
382 find $RPM_BUILD_ROOT -type f -name "*.el" | while read i; do test ! -f ${i}c || rm -f $i; done
383 rm -f $RPM_BUILD_ROOT%{_bindir}/{c,e}tags
384
385 # hmm, maybe xemacs-devel is necessary?
386 rm -rf  $RPM_BUILD_ROOT%{_libdir}/%{name}-%{xver}/*-linux/include \
387         $RPM_BUILD_ROOT%{_infodir}/dir* \
388         $RPM_BUILD_ROOT%{_infodir}/{info,standards,texinfo}.info*
389
390 # clash with emacs
391 rm -f $RPM_BUILD_ROOT%{_infodir}/{cl,widget}.info*
392
393 find $RPM_BUILD_ROOT -regex '.*~$' -exec rm -f {} \;
394
395 %clean
396 rm -rf $RPM_BUILD_ROOT
397
398 %post   common -p       /sbin/postshell
399 -/usr/sbin/fix-info-dir -c %{_infodir}
400
401 %postun common -p       /sbin/postshell
402 -/usr/sbin/fix-info-dir -c %{_infodir}
403
404 %files
405 %defattr(644,root,root,755)
406 %attr(755,root,root) %{_bindir}/gnuattach
407 %attr(755,root,root) %{_bindir}/gnuclient
408 %attr(755,root,root) %{_bindir}/gnudoit
409 %attr(755,root,root) %{_bindir}/gnuserv
410 %attr(755,root,root) %{_bindir}/xemacs
411 %if %{with pdump}
412 %{_bindir}/xemacs.dmp
413 %endif
414 %attr(755,root,root) %{_bindir}/ootags
415 %attr(755,root,root) %{_bindir}/ellcc
416 %{_datadir}/%{name}-%{xver}/etc/custom
417 %{_datadir}/%{name}-%{xver}/etc/eos
418 %{_datadir}/%{name}-%{xver}/etc/toolbar
419 %{_datadir}/%{name}-%{xver}/etc/*.png
420 %{_datadir}/%{name}-%{xver}/etc/*.xbm
421 %{_datadir}/%{name}-%{xver}/etc/*.xpm
422 %{_datadir}/X11/app-defaults/XEmacs
423 %lang(pl) %{_datadir}/X11/pl/app-defaults/XEmacs
424 %{_desktopdir}/*.desktop
425 %{_pixmapsdir}/*
426 %{_mandir}/man1/gnuattach.1*
427 %{_mandir}/man1/gnuclient.1*
428 %{_mandir}/man1/gnudoit.1*
429 %{_mandir}/man1/gnuserv.1*
430
431 %files common
432 %defattr(644,root,root,755)
433 %doc README etc/NEWS
434 %attr(755,root,root) %{_bindir}/b2m
435 %dir %{_datadir}/%{name}-%{xver}
436 %dir %{_datadir}/%{name}-%{xver}/etc
437 %{_datadir}/%{name}-%{xver}/etc/package-index.LATEST.gpg
438 %doc %{_datadir}/%{name}-%{xver}/etc/TUTORIAL
439 %doc %lang(de) %{_datadir}/%{name}-%{xver}/etc/TUTORIAL.de
440 %doc %lang(fr) %{_datadir}/%{name}-%{xver}/etc/TUTORIAL.fr
441 %doc %lang(hr) %{_datadir}/%{name}-%{xver}/etc/TUTORIAL.hr
442 %doc %lang(ja) %{_datadir}/%{name}-%{xver}/etc/TUTORIAL.ja
443 %doc %lang(ko) %{_datadir}/%{name}-%{xver}/etc/TUTORIAL.ko
444 %doc %lang(nb) %{_datadir}/%{name}-%{xver}/etc/TUTORIAL.no
445 %doc %lang(pl) %{_datadir}/%{name}-%{xver}/etc/TUTORIAL.pl
446 %doc %lang(ro) %{_datadir}/%{name}-%{xver}/etc/TUTORIAL.ro
447 %doc %lang(ru) %{_datadir}/%{name}-%{xver}/etc/TUTORIAL.ru
448 %doc %lang(th) %{_datadir}/%{name}-%{xver}/etc/TUTORIAL.th
449 %doc %{_datadir}/%{name}-%{xver}/etc/[A-SU-Z]*
450 %doc %{_datadir}/%{name}-%{xver}/etc/refcard.ps.gz
451 %doc %{_datadir}/%{name}-%{xver}/etc/refcard.tex
452 %doc %{_datadir}/%{name}-%{xver}/etc/sample.*
453
454 %{_datadir}/%{name}-%{xver}/etc/unicode
455 %{_datadir}/%{name}
456
457 # do not know it is necessary
458 %dir %{_libdir}/%{name}-%{xver}
459 %dir %{_libdir}/%{name}-%{xver}/*-linux*
460 %{_libdir}/%{name}-%{xver}/*-linux/modules
461 %attr(755,root,root) %{_libdir}/%{name}-%{xver}/*-linux/[Dacdfghprsvwy]*
462 %attr(755,root,root) %{_libdir}/%{name}-%{xver}/*-linux/m[am]*
463 %attr(755,root,root) %{_libdir}/%{name}-%{xver}/*-linux/mov*
464
465 %{_datadir}/%{name}-%{xver}/lisp
466
467 %dir %{_datadir}/%{name}-packages
468 %dir %{_datadir}/%{name}-packages/info
469 %dir %{_datadir}/%{name}-packages/man
470 %dir %{_datadir}/%{name}-packages/pkginfo
471 %{_datadir}/%{name}-packages/etc
472 %{_datadir}/%{name}-packages/lisp
473 %{_datadir}/%{name}-packages/lib-src
474
475 %{_mandir}/man1/xemacs.1*
476 #%lang(ja) %{_mandir}/ja/man1/*
477
478 %{_infodir}/*.info*
479
480 /var/lock/xemacs
481
482 %files nox
483 %defattr(644,root,root,755)
484 %attr(755,root,root) %{_bindir}/xemacs-nox
485 %if %{with pdump}
486 %{_bindir}/xemacs-nox.dmp
487 %endif
488 %attr(755,root,root) %{_bindir}/gnuserv-nox
This page took 0.111669 seconds and 4 git commands to generate.