3 %bcond_without pdump # portable dumper
4 %bcond_with pgsql # PostgreSQL support
5 %bcond_with gtk # GTK+ enabled version
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
19 Version: %{ver}.%{sver}
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
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}
68 Requires: xorg-lib-libXt >= 1.0
69 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
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:
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
84 %description -l ja.UTF-8
85 XEmacs は Free Software Foundation の Richard Stallman によって
86 書かれた GNU Emacs との互換性を維持しつつ数多くの改良が施された
87 派生バージョンです. 元々 Emacs 19 を元に開発され,Emacs
88 の後続リリースに追加された 機能と同期が取られています.
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.
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ą.
101 Ta dystrybucja XEmacsa została podzielona na wiele pakietów binarnych:
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)
108 Do pracy niezbędne są xemacs-common oraz xemacs bądź xemacs-nox.
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.
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 часто (обычно после каждого символа или пары символов) по мере набора
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 символу або пари символів) по мірі набору тексту.
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
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.
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.
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}
167 XEmacs binary compiled with TTY support only, without X11 support.
169 %description nox -l pl.UTF-8
170 XEmacs skompilowany bez wsparcia dla X11 (pracuje tylko na konsoli lub
179 # disable memory_warnings() - it doesn't support memory model used on alpha
189 %if "%{_lib}" == "lib64"
190 sed -i -e 's#"lib"#"lib64"#g' lisp/find-paths.el lisp/info.el lisp/setup-paths.el
193 %if "%{_lib}" == "libx32"
194 sed -i -e 's#"lib"#"libx32"#g' lisp/find-paths.el lisp/info.el lisp/setup-paths.el
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
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" \
226 --without-postgresql \
235 --enable-database=no \
244 --without-dragndrop \
247 --with-error-checking=none \
254 cp src/xemacs src/xemacs-nox
256 cp src/xemacs.dmp src/xemacs-nox.dmp
258 cp lib-src/gnuserv lib-src/gnuserv-nox
259 %{__make} -j1 distclean
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" \
282 --without-postgresql \
297 --with-x11 --enable-menubars=lucid --enable-scrollbars=motif \
298 --enable-dialogs=motif --enable-widgets=motif \
300 --enable-database=no \
305 --without-dragndrop \
308 --with-error-checking=none \
316 # if you want to xemacs sings and plays sounds add option
317 # --enable-sound=native
319 # --cflags="$RPM_OPT_FLAGS" \
320 # --with-session=yes \
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}
332 %{__make} install-arch-dep install-arch-indep \
333 DESTDIR=$RPM_BUILD_ROOT \
335 infodir=%{_infodir} \
336 mandir=%{_mandir}/man1 \
337 datadir=%{_datadir} \
339 install %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}
341 ( cd $RPM_BUILD_ROOT%{_datadir}/%{name}-packages; gzip -dc %{SOURCE2} | tar xf - )
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}
349 [ -d $RPM_BUILD_ROOT%{_datadir}/%{name}/site-lisp ] || \
350 install -d $RPM_BUILD_ROOT%{_datadir}/%{name}/site-lisp
352 ln -s %{_datadir}/%{name}/site-lisp $RPM_BUILD_ROOT%{_libdir}/%{name}/site-lisp
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
360 mv -f $RPM_BUILD_ROOT%{_bindir}/xemacs-%{xver} \
361 $RPM_BUILD_ROOT%{_bindir}/xemacs
364 install src/xemacs.dmp $RPM_BUILD_ROOT%{_bindir}
367 find $RPM_BUILD_ROOT%{_datadir}/%{name}-%{xver}/* -type f -name "ChangeLog*" | xargs gzip -9nf
369 install src/xemacs-nox $RPM_BUILD_ROOT%{_bindir}
371 install src/xemacs-nox.dmp $RPM_BUILD_ROOT%{_bindir}
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}
378 # remove some .elc files
379 find $RPM_BUILD_ROOT -name '_pkg.elc' -exec rm "{}" ";"
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
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*
391 rm -f $RPM_BUILD_ROOT%{_infodir}/{cl,widget}.info*
393 find $RPM_BUILD_ROOT -regex '.*~$' -exec rm -f {} \;
396 rm -rf $RPM_BUILD_ROOT
398 %post common -p /sbin/postshell
399 -/usr/sbin/fix-info-dir -c %{_infodir}
401 %postun common -p /sbin/postshell
402 -/usr/sbin/fix-info-dir -c %{_infodir}
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
412 %{_bindir}/xemacs.dmp
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
426 %{_mandir}/man1/gnuattach.1*
427 %{_mandir}/man1/gnuclient.1*
428 %{_mandir}/man1/gnudoit.1*
429 %{_mandir}/man1/gnuserv.1*
432 %defattr(644,root,root,755)
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.*
454 %{_datadir}/%{name}-%{xver}/etc/unicode
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*
465 %{_datadir}/%{name}-%{xver}/lisp
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
475 %{_mandir}/man1/xemacs.1*
476 #%lang(ja) %{_mandir}/ja/man1/*
483 %defattr(644,root,root,755)
484 %attr(755,root,root) %{_bindir}/xemacs-nox
486 %{_bindir}/xemacs-nox.dmp
488 %attr(755,root,root) %{_bindir}/gnuserv-nox