%define _localstatedir /var/lib Summary: The Emacs text editor for the X Window System Name: emacs-snapshot Version: 23.0.95 Release: %mkrel 2 License: GPLv3+ Group: Editors URL: http://www.gnu.org/software/emacs/ Source0: ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-%{version}.tar.gz Source5: emacs-config Patch1: emacs-20.5-loadup.patch Patch3: emacs-23.0.94-ia64-1.patch Patch5: emacs-23.0.94-bzip2.patch Patch6: emacs-snapshot-same-etc-DOC-for-all.patch Patch7: emacs-22.0.90-rpath.patch Patch9: emacs-22.0.90-force-sendmail-program.patch Patch20: emacs-20.4-ppc-config.patch Patch21: emacs-20.4-ppc.patch Patch22: emacs-21.1-omit-nocombreloc-ppc.patch Patch100: emacs-23.0.94-infofix.patch Patch101: emacs-22.3-version.patch Patch103: emacs-23.0.94-x86_64.patch Patch104: emacs-22.3-hide-toolbar.patch Patch111: emacs-23.0.94-ispell-dictionaries-list-iso-8859-15.patch Patch114: emacs-23.0.94-ppc64.patch Patch115: emacs-23.0.94-lzma-support.patch Patch116: emacs-22.3-fix-str-fmt.patch BuildRoot: %_tmppath/%name-root BuildRequires: libxaw-devel BuildRequires: Xaw3d-devel BuildRequires: x11-server-common BuildRequires: libx11-devel BuildRequires: libxft-devel BuildRequires: gcc BuildRequires: libjpeg-devel BuildRequires: libpng-devel BuildRequires: libtiff-devel BuildRequires: ncurses-devel BuildRequires: libungif-devel BuildRequires: texinfo BuildRequires: xpm-devel BuildRequires: gtk+2-devel Requires(preun): update-alternatives Requires(post): update-alternatives Requires: emacs-snapshot-common = %version Provides: emacs-bin Provides: emacs-X11 Provides: emacs = %{version}-%{release} Conflicts: emacs < %{version}-%{release} %description The emacs package provides the Emacs text editor program built with support for the X Window System (it provides support for the mouse and other GUI elements). The binary in this package will also run Emacs outside of X, but it has a larger memory footprint than the 'non-X' Emacs package (emacs-nox). Install emacs if you are going to use Emacs with the X Window System. You should also install emacs if you're going to run Emacs both with and without X (it will work fine both ways). You'll also need to install the emacs-common package in order to run Emacs. %package el Summary: The sources for elisp programs included with Emacs Group: Editors Requires: emacs-snapshot-common = %version Conflicts: emacs-el %description el The emacs-el package provides the emacs-elisp sources for many of the elisp programs included with the main Emacs text editor package. You need to install emacs-el only if you intend to modify any of the Emacs packages or see some elisp examples. %package doc Summary: Emacs documentation Group: Editors Requires: emacs-snapshot-common = %version Conflicts: emacs-doc %description doc Documentation for Emacs. %package leim Summary: Emacs Lisp code for input methods for internationalization Group: Editors Requires: emacs-snapshot-common = %version Conflicts: emacs-leim %description leim The emacs-leim package provides the emacs-elisp code for input methods for various international character scripts. %package nox Summary: The Emacs text editor without support for the X Window System Group: Editors Requires: emacs-snapshot-common = %version Provides: emacs-bin Conflicts: emacs-nox Requires(preun): update-alternatives Requires(post): update-alternatives %description nox The emacs-nox package provides the Emacs text editor program built without support for the X Window System. You need to install this package only if you plan on exclusively using Emacs without the X Window System (emacs will work both in X and out of X, but emacs-nox will only work outside of X). You'll also need to install the emacs-common package in order to run Emacs. %package common Summary: The libraries needed to run the GNU Emacs text editor Group: Editors Requires: emacs-snapshot-common = %version Obsoletes: gnus-emacs < 5.13.0 Provides: gnus-emacs = 5.13.0 Conflicts: emacs-speedbar < 1.0 Obsoletes: emacs-tramp < 2.1.15 Provides: emacs-tramp = 2.1.15 Obsoletes: emacs-url Provides: emacs-url Obsoletes: emacs-pcomplete <= 2.4.2 Provides: emacs-pcomplete = 1.1.1 Obsoletes: eshell-emacs <= 2.4.2 Provides: eshell-emacs = 2.4.2 Obsoletes: emacs-easypg < 1.0.0 Provides: emacs-easypg = 1.0.0 Obsoletes: emacs-erc < 5.3 Provides: emacs-erc = 5.3 Conflicts: emacs-common # conflicts due to %%_bindir/{b2m,etags,rcs-checkin} Conflicts: xemacs-extras %description common Emacs is a powerful, customizable, self-documenting, modeless text editor. Emacs contains special code editing features, a scripting language (elisp), and the capability to read mail, news and more without leaving the editor. This package includes the libraries you need to run the Emacs editor, so you need to install this package if you intend to use Emacs. You also need to install the actual Emacs program package (emacs-nox or emacs). Install emacs-nox if you are not going to use the X Window System; install emacs if you will be using X. %prep %setup -q -n emacs-%{version} perl -p -i -e 's/ctags/gctags/g' etc/etags.1 %patch1 -p1 -b .loadup %patch3 -p1 -b .ia64-2 %patch5 -p1 -b .bzip2 %patch6 -p1 -b .same-DOC %patch7 -p1 -b .rpath %patch9 -p1 -b .sendmail-program %ifarch ppc %patch20 -p1 %patch21 -p1 %patch22 -p1 %endif %patch100 -p1 %patch101 -p1 -b .version %patch103 -p1 -b .x86_64 %patch104 -p1 -b .toolbar %patch111 -p1 -b .ispell-dictionaries %patch114 -p1 -b .ppc %patch115 -p1 -z .lzma-support %patch116 -p0 -b .str %build autoreconf -fi PUREDEF="-DNCURSES_OSPEED_T" XPUREDEF="-DNCURSES_OSPEED_T" CONFOPTS="--prefix=%{_prefix} --libexecdir=%{_libdir} --sharedstatedir=/var --with-pop --mandir=%{_mandir} --infodir=%{_infodir}" export CFLAGS="$RPM_OPT_FLAGS $PUREDEF -fno-zero-initialized-in-bss" ./configure ${CONFOPTS} --with-x=no ${RPM_ARCH}-mandrake-linux --libdir=%_libdir make bootstrap make distclean # Build binary without X support ./configure ${CONFOPTS} --with-x=no ${RPM_ARCH}-mandrake-linux --libdir=%_libdir make mv src/emacs src/nox-emacs make distclean # Build binary with X support ./configure ${CONFOPTS} --with-x-toolkit ${RPM_ARCH}-mandrake-linux --libdir=%_libdir make %install rm -rf %{buildroot} mkdir -p %{buildroot}/usr PATH=$PATH:/sbin ARCHDIR=${RPM_ARCH}-mandrake-linux %old_makeinstall sharedstatedir=%{buildroot}/var rm -f %{buildroot}%_bindir/emacs rm -f %{buildroot}%{_infodir}/dir rm %{buildroot}%{_libdir}/emacs/%version/%_arch-mandrake-linux/fakemail # remove sun specific stuff rm -f %{buildroot}%{_datadir}/emacs/%version/etc/{emacstool.1,emacs.1,ctags.1,etags.1,sex.6} # rename ctags to gctags mv %{buildroot}%{_mandir}/man1/ctags.1 $RPM_BUILD_ROOT%{_mandir}/man1/gctags.1 mv %{buildroot}%{_bindir}/ctags $RPM_BUILD_ROOT%{_bindir}/gctags # is that needed? install -d %{buildroot}%{_libdir}/emacs/site-lisp mkdir -p %{buildroot}%{_sysconfdir}/emacs install -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/emacs/site-start.el (cd %{buildroot}%{_datadir}/emacs/%version/lisp; ln -s ../../../../..%{_sysconfdir}/emacs/site-start.el site-start.el) install -d %{buildroot}%{_sysconfdir}/emacs/site-start.d install -m755 src/nox-emacs %{buildroot}%{_bindir}/emacs-nox chmod -t %{buildroot}%{_bindir}/emacs* # Menu support mkdir -p %{buildroot}{%_menudir,%_liconsdir,%_miconsdir} mkdir -p %{buildroot}%{_datadir}/applications cat > %{buildroot}%{_datadir}/applications/mandriva-emacs.desktop << EOF [Desktop Entry] Name=Emacs Comment=Powerful editor Exec=emacs Icon=emacs Terminal=false Type=Application Categories=TextEditor;Utility; EOF %__rm -f %{buildroot}/%{_datadir}/applications/emacs.desktop %__install -m 644 etc/images/icons/hicolor/16x16/apps/emacs.png %{buildroot}%_miconsdir/emacs.png %__install -m 644 etc/images/icons/hicolor/32x32/apps/emacs.png %{buildroot}%_iconsdir/emacs.png %__install -m 644 etc/images/icons/hicolor/48x48/apps/emacs.png %{buildroot}%_liconsdir/emacs.png # create file lists # # emacs-doc file list # # 3.22MB of docs from emacs-common to emacs-doc to reduce size (tutorials, news, postscript files, ...) # NB: etc/ps-prin{0,1}.ps are needed by ps-print find %{buildroot}%{_datadir}/emacs/%version/etc/ -type f | \ egrep 'TUTORIAL\.|NEWS|ONEWS|.ps$'|fgrep -v /etc/ps-prin | \ sed "s^%{buildroot}^^" > doc-filelist # # emacs-el file list # # take every .el and .el.gz which have a corresponding .elc find %{buildroot}%{_datadir}/emacs -name '*.el' -o -name '*.el.gz' | \ grep -v /leim/ | while read I; do f=`basename $I .gz` f=`basename $f .el` if [ -e `dirname $I`/$f.elc ]; then echo $I | sed "s^%{buildroot}^^" fi done > el-filelist # # emacs-common file list # # everything not in previous filelists, and remove a few things listed in %files find %{buildroot}%{_datadir}/emacs/%version -type f -print -o -type d -printf "%%%%dir %%p\n" | \ grep -v /leim/ | sed "s^%{buildroot}^^" > common-filelist.raw while read I; do grep -qxF $I doc-filelist el-filelist || echo $I done < common-filelist.raw > common-filelist find %{buildroot}%{_libdir}/emacs -type f -print -o -type d -printf "%%%%dir %%p\n" | \ egrep -v 'movemail$|update-game-score$' | sed "s^%{buildroot}^^" >> common-filelist %define info_files ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse ediff efaq eintr elisp emacs emacs-mime epa erc eshell eudc flymake forms gnus idlwave info mairix-el message mh-e newsticker nxml-mode org pcl-cvs pgg rcirc reftex remember sasl sc ses sieve smtpmail speedbar tramp url vip viper widget woman have_info_files=$(echo $(ls %{buildroot}%{_infodir} | egrep -v -- '-[0-9]+$' | sort)) [ "$have_info_files" = "%info_files" ] || { echo "you must modify the spec file, %%info_files should be: $have_info_files" exit 1 } %clean rm -rf %{buildroot} %post common # --section="GNU Emacs" for f in %info_files; do %_install_info $f done : %preun for f in %info_files; do %_remove_install_info $f done : %post nox update-alternatives --install %_bindir/emacs emacs %_bindir/emacs-nox 10 [[ ! -f %_bindir/emacs ]] && update-alternatives --auto emacs : %postun nox [[ ! -f %_bindir/emacs-nox ]] && \ /usr/sbin/update-alternatives --remove emacs %_bindir/emacs-nox : %post /usr/sbin/update-alternatives --install %_bindir/emacs emacs %_bindir/emacs-%version 21 %if %mdkversion < 200900 %{update_menus} %endif %postun %if %mdkversion < 200900 %{clean_menus} %endif [[ ! -f %{_bindir}/emacs-%{version} ]] && \ /usr/sbin/update-alternatives --remove emacs %{_bindir}/emacs-%{version}|| : %files -f common-filelist common %defattr(-,root,root) %doc BUGS README src/COPYING %{_localstatedir}/games/emacs %dir %{_sysconfdir}/emacs/site-start.d %dir %{_sysconfdir}/emacs %config(noreplace) %{_sysconfdir}/emacs/site-start.el %dir %{_datadir}/emacs %dir %{_datadir}/emacs/site-lisp %{_datadir}/emacs/%version/lisp/site-start.el %attr(2755,root,mail) %{_libdir}/emacs/%version/%_arch-mandrake-linux/movemail %attr(4755,games,root) %{_libdir}/emacs/%version/%_arch-mandrake-linux/update-game-score %{_bindir}/b2m %{_bindir}/emacsclient %{_bindir}/etags %{_bindir}/ebrowse %{_bindir}/grep-changelog %{_bindir}/gctags %{_bindir}/rcs-checkin %{_mandir}/*/* %{_infodir}/* %{_iconsdir}/hicolor/* %files -f doc-filelist doc %defattr(-,root,root) %files -f el-filelist el %defattr(-,root,root) %doc src/COPYING /usr/share/emacs/%version/site-lisp/subdirs.el /usr/share/emacs/site-lisp/subdirs.el %{_datadir}/emacs/%version/leim/ja-dic/*.el.gz %{_datadir}/emacs/%version/leim/quail/*.el.gz %files leim %defattr(-,root,root) %doc src/COPYING %{_datadir}/emacs/%version/leim/leim-list.el %dir %{_datadir}/emacs/%version/leim/ja-dic %{_datadir}/emacs/%version/leim/ja-dic/*.elc %dir %{_datadir}/emacs/%version/leim/quail %{_datadir}/emacs/%version/leim/quail/*.elc %files nox %defattr(-,root,root) %doc src/COPYING %{_bindir}/emacs-nox %files %defattr(-,root,root) %doc src/COPYING %{_bindir}/emacs-%version %{_datadir}/applications/mandriva-emacs.desktop %{_iconsdir}/emacs.png %{_miconsdir}/emacs.png %{_liconsdir}/emacs.png %changelog * Mon Jun 22 2009 Lev Givon <lev@mandriva.org> 23.0.95-2mdv2010.0 + Revision: 388036 - Make package conflict with rather than obsolete the stable emacs package (#51716). * Sun Jun 21 2009 Lev Givon <lev@mandriva.org> 23.0.95-1mdv2010.0 + Revision: 387687 - Update to 23.0.95. Obsolete package versions < 23.0. * Wed Jun 17 2009 Lev Givon <lev@mandriva.org> 23.0.94-4mdv2010.0 + Revision: 386782 - Obsolete old versions of emacs-erc. * Mon Jun 08 2009 Lev Givon <lev@mandriva.org> 23.0.94-2mdv2010.0 + Revision: 383903 - Don't move DOC* file. * Mon Jun 08 2009 Lev Givon <lev@mandriva.org> 23.0.94-1mdv2010.0 + Revision: 383888 - Update to 23.0.94. Refactor patches. + Thierry Vignaud <tvignaud@mandriva.com> - new license policy - drop old menu - kill re-definition of %%buildroot on Pixel's request - kill desktop-file-validate's 'warning: key "Encoding" in group "Desktop Entry" is deprecated' - kill file require on update-alternatives + Pixel <pixel@mandriva.com> - rpm filetriggers deprecates update_menus/update_scrollkeeper/update_mime_database/update_icon_cache/update_desktop_database/post_install_gconf_schemas - adapt to %%_localstatedir now being /var instead of /var/lib (#22312) + Olivier Blin <oblin@mandriva.com> - restore BuildRoot * Mon May 14 2007 Pixel <pixel@mandriva.com> 22.0.99-1.20070514.1mdv2008.0 + Revision: 26712 - new release, pretest 22.0.99 - new pretest release, 22.0.98 * Thu Mar 01 2007 Pixel <pixel@mandriva.com> 22.0.94-1.20070301.1mdv2007.0 + Revision: 130584 - new cvs version (fixes shell when prefer-coding-system 'utf-8) * Thu Mar 01 2007 Pixel <pixel@mandriva.com> 22.0.94-1.20070223.1mdv2007.1 + Revision: 130475 - disable pc-selection-mode (#28765) (it was not really enabled in emacs 21.4 (why?), so no "regression") - new release (22.0.94 pretest) - adapt some patches - fix typo * Mon Nov 20 2006 Thierry Vignaud <tvignaud@mandriva.com> 22.0.90-2.20061117.1mdv2007.1 + Revision: 85619 - s/mandrake/mandriva/ + Pixel <pixel@mandriva.com> - svn version * Fri Nov 17 2006 Pixel <pixel@mandriva.com> 22.0.90-1mdv2007.1 + Revision: 85141 - new release. update patches - new release (22.0.90 pretest) - adapt some patches * Wed Aug 30 2006 Pixel <pixel@mandriva.com> 22.0.50-0.20060811.5mdv2007.0 + Revision: 58608 - re-introduce patch9 (sendmail-program is *not* computed at runtime) - Import emacs-snapshot * Fri Aug 25 2006 Pixel <pixel@mandriva.com> 22.0.50-0.20060811.4mdv2007.0 - add BuildRequires libxaw-devel (Xaw3d-devel is not enough) * Thu Aug 24 2006 Pixel <pixel@mandriva.com> 22.0.50-0.20060811.3mdv2007.0 - lower the priority for alternatives so that stable emacs is preferred * Wed Aug 23 2006 Pixel <pixel@mandriva.com> 22.0.50-0.20060811.2mdv2007.0 - BuildRequires libx11-devel instead of XFree86-devel - move files conflicting with stable emacs in emacs-snapshot-extras (allowing having both emacs-snapshot and stable emacs) * Sat Aug 12 2006 Pixel <pixel@mandriva.com> 22.0.50-0.20060811.1mdv2007.0 - new snapshot (alas not fixing ediff-buffers) - drop patch modifying BASE_PURESIZE (no more needed) * Fri Jul 14 2006 Pixel <pixel@mandriva.com> 22.0.50-0.20060707.2mdv2007.0 - add 100 bytes to BASE_PURESIZE (one needs at least 1210552 bytes for emacs-gtk) * Sat Jul 08 2006 Pixel <pixel@mandriva.com> 22.0.50-0.20060707.1mdv2007.0 - new snapshot - switch to XDG menu - add 30 bytes to BASE_PURESIZE (one needs at least 1210528 bytes) * Fri Mar 31 2006 Pixel <pixel@mandriva.com> 22.0.50-0.20060330.1mdk - new snapshot * Fri Jan 13 2006 Pixel <pixel@mandriva.com> 22.0.50-0.20060113.1mdk - conflicts with emacs-speedbar < 1.0 (esp. for emacs-speedbar 0.14 in contrib which is nolonger compatible) - provides emacs-bin (and not emacs-snapshot-bin) to allow building other packages with this snapshot version (thanks to Nick Brown) - new snapshot - drop patch workaround-non-ascii-chars-in-rfc2231 (applied upstream) * Wed Nov 23 2005 Pixel <pixel@mandriva.com> 22.0.50-0.20051122.3mdk - conflicts with emacs-tramp and emacs-url (to replace with obsolete/provide when emacs-snapshot is stable) - add a menu entry for emacs-gtk (thanks to Nick Brown) * Wed Nov 23 2005 Pixel <pixel@mandriva.com> 22.0.50-0.20051122.2mdk - don't obsolete/provide stable emacs, only conflict with it - better release - add BuildRequires gtk+2-devel * Tue Nov 22 2005 Pixel <pixel@mandriva.com> 22.0.50-0.20051122mdk - dropped patch0: need more checking (what is MH??) - dropped patch8: no more needed (?) - dropped patch9: not needed anymore since it sendmail-program is now computed at runtime - dropped patch102, patch105, patch106, patch107, patch112, patch115: applied upstream - dropped patch108: partially applied upstream (is that enough?) - dropped patch113: not needed anymore (was applied) - dropped patch109: the patched regexp is no more - refresh patch100, patch111 - dropped patch110: not needed anymore (why?) - drop cperl-mode from CPAN which is not compatible anymore, use this version - rename emacs to emacs-common and emacs-X11 to emacs - new pkg emacs-gtk - don't use %%make, it causes weird locks - simplify build (inspiration: debian) - put back TUTORIAL in emacs-common so that the spash screen is not empty - cleanup file list creation - add patch10 to workaround-non-ascii-chars file attachment name (gnus) * Wed Nov 16 2005 Thierry Vignaud <tvignaud@mandriva.com> 21.4-22mdk - patch 115: fix flyspell (#19767) - remove X defaults (Nick Brown, #10168) * Wed Oct 05 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 21.4-21mdk - ppc64 support * Fri Apr 29 2005 Thierry Vignaud <tvignaud@mandrakesoft.com> 21.4a-20mdk - new release - kill patch 114 (merged upstream) * Wed Feb 16 2005 Thierry Vignaud <tvignaud@mandrakesoft.com> 21.3-20mdk - patch 114: security update for CAN-2005-0100 (#13682) * Mon Jan 17 2005 Thierry Vignaud <tvignaud@mandrakesoft.com> 21.3-19mdk - patch 113: fix build with newer Xaw3d * Tue Dec 21 2004 Pixel <pixel@mandrakesoft.com> 21.3-18mdk - macro IsModifierKey() from <X11/Xutil.h> depends on XK_XKB_KEYS which is defined in <X11/keysym.h>, so include <X11/keysym.h> before <X11/Xutil.h>. This fixes AltGr not being a modifier anymore after rebuilding with Xorg * Fri Dec 17 2004 Pixel <pixel@mandrakesoft.com> 21.3-17mdk - change ispell dictionnaries list to use iso-8859-15 instead of iso-8859-1 (fixes "Ispell misalignment" errors when using emacs so called "Latin-9 language environment" as displayed by C-h C-l) (there are some encoding unification problems in emacs between iso-8859-1 and iso-8859-15 charsets, being the same character represented differently in the emacs internal mule encoding) * Tue Nov 09 2004 Pixel <pixel@mandrakesoft.com> 21.3-16mdk - put latest cperl-mode and modify anonymous block indentation when cperl-indent-parens-as-block is set * Sat Aug 21 2004 Thierry Vignaud <tvignaud@mandrakesoft.com> 21.3-15mdk - split doc subpackage (#6650) - typo fix in menu entry * Tue Aug 17 2004 Laurent MONTEL <lmontel@mandrakesoft.com> 21.3-14mdk - Rebuild with new menu * Thu Aug 05 2004 Frederic Lepied <flepied@mandrakesoft.com> 21.3-13mdk - use aspell by default * Fri Jul 16 2004 Pixel <pixel@mandrakesoft.com> 21.3-12mdk - really fix the broken sent mail syndrom: - force sendmail-program to "/usr/sbin/sendmail" instead of looking on the build host and defaulting on fakemail which sendmail is not installed - remove this stupid fakemail which doesn't handle /bin/mail properly * Fri Jul 09 2004 Thierry Vignaud <tvignaud@mandrakesoft.com> 21.3-11mdk - rebuild with gcc-3.4.1 (hopefully fixing bugs) * Sat Jul 03 2004 Thierry Vignaud <tvignaud@mandrakesoft.com> 21.3-10mdk - build release - prevent problem with gcc-3.4