%define with_emcws %{?_with_emcws:1}%{!?_with_emcws:0} %define emacsversion 21.4 %define emacsrelese 1%{?_dist_release} %define _noVersionedDependencies 1 %define prereq_ge() %(LC_ALL="C" rpm -q --queryformat 'PreReq:%%{NAME} >= %%{VERSION}' %1| grep -v "is not") %define infodir %{_infodir}/emacs-%{emacsversion} Summary: GNU Emacs editor Summary(ja): GNU Emacs エディタ Name: emacs21 Version: %{emacsversion} Release: %{emacsrelese} Source0: ftp://ftp.gnu.org/pub/gnu/emacs/emacs-%{version}a.tar.gz Source1: ftp://ftp.gnu.org/pub/gnu/emacs/leim-%{version}.tar.gz Source3: emacs.wmconfig Source4: emacs.desktop ## Sources from Rawhide 21.2-11 Source10: site-start.el Source11: python-mode.el Source12: http://www.tihlde.org/~stigb/rpm-spec-mode.el Source13: ftp://ftp.gnu.org/gnu/emacs/elisp-manual-21-2.8.tar.bz2 # 1.0.2 - http://prdownloads.sourceforge.net/php-mode/php-mode-102.el Source14: php-mode.el Source15: php-mode-init.el Source16: ssl.el Source17: po-mode.el Source18: po-mode-init.el # Enable Japanese Menu Source100: http://phe.phyas.aichi-edu.ac.jp/~cyamauch/arch/menu-tree.el ## Emcws Patch0: emcws-21.3-20031213.gz ## Vine Patch(es) Patch10: emacs-21.1-ppc-nocombreloc.patch Patch11: emacs-21.2-emcws-version.patch Patch12: emacs-21.2-emcws-locallisppath.patch Patch13: emacs-21.4-locallisppath.patch Patch20: emacs-21.3-fixed-resolution.patch # Enable Japanese Menu Patch101: http://phe.phyas.aichi-edu.ac.jp/~cyamauch/arch/emacs-21.1-xim-useXim.patch Patch102: http://phe.phyas.aichi-edu.ac.jp/~cyamauch/arch/emacs-21.2-isearch-x.el.patch Patch103: emacs-21.3-fontset-20020319.patch.gz # security patches (from Debian) Patch501: CVE-2007-2833.diff Patch502: CVE-2007-6109.diff Patch503: CVE-2008-1694.diff Patch504: CVE-2008-2142.diff # patches from Mandrake Patch1001: emacs-21.1-bzip2.patch.bz2 Patch1002: emacs-altmeta.patch.bz2 Patch1003: emacs-21.1-fix-autoconf.patch.bz2 Patch1004: emacs-21.2-infofix.bz2 Patch1005: emacs-21.2-browse-url.bz2 Patch1006: emacs-21.2-x86_64.patch.bz2 License: GPL Group: Applications/Editors/Emacs Distribution: Vine Vendor: Project Vine Packager: Daisuke SUZUKI BuildRoot: %{_tmppath}/%{name}-%{version}-root # Requires: tamago >= 4.0.6 Obsoletes: mule-base, mule-canna, mule-wnn6, mule, emacs-beta Obsoletes: emacs <= 21.2-0vl11 Provides: emacs = %{version} Provides: emacsen = 0.1 %prereq_ge emacsen-common # Emcws %if %{with_emcws} Requires: libcanna BuildPreReq: Canna-devel %endif BuildPreReq: autoconf213 BuildPrereq: libpng >= 1.2.5 PreReq: Xaw3d >= 1.5E-4vl1 BuildPreReq: Xaw3d-devel %description GNU Emacs is the extensible, customizable, self-documenting real-time display editor. In order to input Japanese with Wnn, you should also install tamago package. %if %{with_emcws} This is Canna enabled Emacs - Emcws version. %endif %description -l ja Emacs は拡張性が高く、さまざまなカスタマイズが可能な高機能エディタです。 Wnn で日本語入力するためには tamago をinstall してください。 %if %{with_emcws} この Emacs は Emcws パッチによって Canna 対応になっています。 %endif %prep %setup -q -b 1 -n emacs-%{version} %if %{with_emcws} %patch0 -p1 %patch11 -p1 %patch12 -p1 %else %patch13 -p1 %endif %ifarch ppc %patch10 -p1 %endif %patch20 -p1 %patch101 -p1 %patch102 -p4 %patch103 -p1 %patch501 -p1 %patch502 -p1 %patch503 -p1 %patch504 -p1 %patch1001 -p1 %patch1003 -p1 %patch1004 -p1 %patch1005 -p1 %patch1006 -p1 autoconf-2.13 %build ##CFLAGS="$RPM_OPT_FLAGS" CPPFLAGS="-O2" LDFLAGS=-s \ ##./configure --prefix=%{_prefix} --libexecdir=%{_libdir} --infodir=%{infodir} \ ## --x-includes=%{_includedir} --x-libraries=/usr/X11R6/lib \ ## --with-x-toolkit=athena ${RPM_ARCH}-vine-linux export CFLAGS="-DMAIL_USE_LOCKF $RPM_OPT_FLAGS" #to find installinfo export PATH="$PATH:/sbin:/usr/sbin" %configure --with-gcc --with-pop --with-sound \ --libexecdir=%{_libdir} --infodir=%{infodir} \ %{with_emcws:--with-canna} \ --disable-rename make %define recompile src/emacs -batch --no-init-file --no-site-file -f batch-byte-compile # recompile patched .el files %{recompile} lisp/net/browse-url.el # bytecompile python-mode, ssl, php-mode and rpm-spec-mode #cp %SOURCE12 %SOURCE14 %SOURCE16 %SOURCE17 . ##%%{recompile} rpm-spec-mode.el php-mode.el ssl.el po-mode.el %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} ARCHDIR=${RPM_ARCH}-vine-linux %makeinstall libexecdir=$RPM_BUILD_ROOT%{_libdir} \ infodir=${RPM_BUILD_ROOT}%{infodir} (cd $RPM_BUILD_ROOT%{_mandir}/man1/; mv ctags.1 gctags.1) (cd $RPM_BUILD_ROOT%{_bindir}/; mv ctags gctags) mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs-%{version}/etc mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs-%{version}/site-lisp cp %{SOURCE100} $RPM_BUILD_ROOT%{_datadir}/emacs-%{version}/site-lisp # The elisp reference manual bzcat %{SOURCE13} | tar xf - pushd elisp-manual-21-2.8 install -m 644 elisp elisp-? elisp-?? $RPM_BUILD_ROOT/%{infodir} popd # some modifications of installed files rm -f $RPM_BUILD_ROOT%{infodir}/dir gzip -9nf $RPM_BUILD_ROOT%{infodir}/* install -m 644 %{SOURCE10} \ $RPM_BUILD_ROOT/%{_datadir}/emacs-%{version}/site-lisp/site-start.el # no-python-mode patch #(cd $RPM_BUILD_ROOT%{_datadir}/emacs-%{version}/site-lisp/ #patch -p0 < %{PATCH13} #sed -e "s|/usr/share/emacs/site-lisp|%{_datadir}/emacs-%{version}/site-lisp|g" \ # site-start.el > site-start.tmp #mv -f site-start.tmp site-start.el #) ## create site-start.d directory install -m 755 -d ${RPM_BUILD_ROOT}/etc/emacs-%{version}/site-start.d ## Python mode, php mode and rpm-spec mode #install -c -m0644 po-mode.el po-mode.elc php-mode.el php-mode.elc \ # rpm-spec-mode.el rpm-spec-mode.elc ssl.el ssl.elc \ # $RPM_BUILD_ROOT%{_datadir}/emacs-%{version}/site-lisp/ #install -m0644 %SOURCE15 \ # $RPM_BUILD_ROOT%{_datadir}/emacs-%{version}/site-lisp/site-start.d/php-mode-init.el #install -m0644 %SOURCE18 \ # $RPM_BUILD_ROOT%{_datadir}/emacs-%{version}/site-lisp/site-start.d/po-mode-init.el ## make file list strip $RPM_BUILD_ROOT%{_bindir}/* || : # wmconfig file mkdir -p $RPM_BUILD_ROOT/etc/X11/wmconfig #install -m 0644 $RPM_SOURCE_DIR/emacs.wmconfig $RPM_BUILD_ROOT/etc/X11/wmconfig/emacs install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT/etc/X11/wmconfig/emacs mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications %{__install} -m 644 %{SOURCE4} $RPM_BUILD_ROOT/%{_datadir}/applications/ # Remove ctags #rm -f $RPM_BUILD_ROOT/usr/bin/ctags #rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/*ctags* #rm -f $RPM_BUILD_ROOT/usr/share/emacs/%{version}/etc/ctags* DIR="${RPM_BUILD_ROOT}/usr/share/emacs ${RPM_BUILD_ROOT}/usr/share/emacs-%{version}" BIN=${RPM_BUILD_ROOT}%{_bindir} LIB=${RPM_BUILD_ROOT}%{_libdir} EL="*.el" ## prepare file list for emacs echo "/usr/bin/b2m /usr/bin/etags /usr/bin/rcs-checkin /usr/bin/emacs /usr/bin/emacsclient /usr/bin/gctags"| sed -e "s#[^\n]*#mv ${RPM_BUILD_ROOT}\0 ${RPM_BUILD_ROOT}\0.emacs-%{version}#"| awk '{system($_)}' # find ${RPM_BUILD_ROOT}/%{_mandir} -type f | # sed -e "s#\.gz##"| # sed -e "s#[^\n]*#mv \0.gz \0-emacs-%{version}.gz#"| # awk '{system($_)}' #find ${RPM_BUILD_ROOT}/%{_infodir} -type f | #sed -e "s#\.gz##"| #sed -e "s#[^\n]*#mv \0.gz \0-e21.gz#"| # awk '{system($_)}' find $DIR $BIN $LIB -type d | sed -e "s#^${RPM_BUILD_ROOT}#%dir #" > rpm-files find $DIR $BIN $LIB -type f | sed -e " s#^${RPM_BUILD_ROOT}\(.*movemail\)#%attr(2755, root, mail) \1# s#^${RPM_BUILD_ROOT}## " >> rpm-files %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %define info_files ccmode cl dired-x ediff emacs forms gnus info message mh-e reftex sc vip viper widget %pre if [ -L /usr/share/emacs-%{version}/site-lisp ] ; then rm -f /usr/share/emacs-%{version}/site-lisp fi if [ -d /usr/share/emacs/%{version}/site-lisp ] ; then find /usr/share/emacs/%{version}/site-lisp/* -maxdepth 0 | grep -v subdirs.el | \ xargs rm -rf fi %post if [ "$1" = 1 ]; then %_addflavorslist emacs-%{version} export PRIORITY=20 %_installemacs emacs-%{version} unset PRIORITY for f in %{info_files}; do /sbin/install-info %{infodir}/$f.gz %{infodir}/dir --section="Emacs" done fi if [ "$1" = 2 ]; then # export PRIORITY=20 # %_installemacs emacs-%{version} # unset PRIORITY echo emacs-%{version} > /var/lib/emacsen-common/doinstaflavor-emacs fi %postun if [ $1 = 1 ]; then # run upgrade install time # old version uninstall %_removeflavorslist emacs-%{version} %_removeemacs emacs-%{version} #new version install if [ -f /var/lib/emacsen-common/doinstaflavor-emacs ] ; then NEWFLAVOR=$(cat /var/lib/emacsen-common/doinstaflavor-emacs) %_addflavorslist $NEWFLAVOR export PRIORITY=20 %_installemacs $NEWFLAVOR unset PRIORITY rm -rf /var/lib/emacsen-common/doinstaflavor-emacs fi fi %preun if [ $1 = 0 ]; then %_removeflavorslist emacs-%{version} %_removeemacs emacs-%{version} for f in %{info_files}; do /sbin/install-info --delete %{infodir}/$f.gz %{infodir}/dir \ --section="Emacs" done fi %files -f rpm-files %defattr(-,root,root) %doc INSTALL README BUGS ChangeLog %dir /etc/emacs-%{version}/site-start.d %{_infodir}/* # These man pages are no longer maintained, so not to be included. # %{_mandir}/*/* %config(missingok) /etc/X11/wmconfig/emacs %config(missingok) %{_datadir}/applications/emacs.desktop # %{_datadir}/emacs-%{version}/site-lisp %changelog * Mon Aug 25 2008 MATSUBAYASHI Kohji - 21.4-1 - new versioning policy; spec in UTF-8 - updated to emacs-21.4a - import security fixes from Debian CVE-2008-2142: fix insecure setting of fast-lock-cache-directories CVE-2008-1694: fix insecure temporary file creation in vcdiff script leading to possible symlink attacks CVE-2007-6109: a stack-based buffer overflow in the format function when dealing with high precision values could lead to arbitrary code execution CVE-2007-2833: fix a crash when determining the size of some GIF images * Mon Jun 04 2007 Daisuke SUZUKI 21.4-0vl12 - rename to emacs21 from emacs - Pbsoletes: emacs <= 21.4-0vl11, Provides: emacs = %%{version} * Sun May 20 2007 MATSUBAYASHI Kohji 21.4-0vl11 - rebuilt with new toolchain * Sun Mar 11 2007 KAZUKI SHIMURA 21.4-0vl10 - rebuild with Xaw3d-1.5E - update PreReq: Xaw3d (>= 1.5E-4vl1) * Tue Jan 16 2007 Kazutaka HARADA 21.4-0vl9 - separete .desktop as Source4 to use UTF-8 encoding. * Sat Jan 13 2007 Kazutaka HARADA 21.4-0vl8 - change .desktop installation directory. * Sat Oct 14 2006 MATSUBAYASHI Kohji 21.4-0vl7 - recompile patched browse-url.el in the %%build section () * Fri Jul 28 2006 NAKAMURA Kenta 21.4-0vl6 - added PreReq: Xaw3d >= 1.5-17vl3 * Sun Jul 23 2006 NAKAMURA Kenta 21.4-0vl5 - rebuild with Xaw3d-1.5-17vl3 (libXaw3d.so.8) * Fri Jun 23 2006 Daisuke SUZUKI 21.4-0vl4 - add %%with_emcws build switch to enable/disable emcws patch. - switch default to disable emcws (do not link with libcanna) * Sat Sep 3 2005 MATSUBAYASHI Kohji 21.4-0vl3 - create site-start.d directory on %%install * Thu Feb 17 2005 Hiroaki Irokawa 21.4-0vl2 - included leim-21.4 - update emcws-21.3-20031213.gz * Wed Feb 16 2005 Hiroaki Irokawa 21.4-0vl1 - update * Sat Jul 24 2004 Daisuke SUZUKI 21.3-0vl7 - rebuild with Xaw3d, add BuildRequires: Xaw3d-devel * Fri Jul 23 2004 Daisuke SUZUKI 21.3-0vl6 - add Patch20 to fix display resolutions. (set to 96dpi) (do not compute dynamically from display's size) * Tue Mar 16 2004 MATSUBAYASHI Kohji 21.3-0vl5 - rebuilt with new toolchain environment * Thu Jul 17 2003 Hiroaki Irokawa 21.3-0vl4 - use site-start.el(reading /etc/emacs-21.3/site-start.d/*.el) * Wed May 7 2003 AKIYAMA Kazuhito 21.3-0vl3 - add BuildPrereq: libpng >= 1.2.5 * Tue Apr 15 2003 Daisuke SUZUKI 21.3-0vl2 - fixed %%pre script * Tue Mar 25 2003 Daisuke SUZUKI 21.3-0vl1 - new upstream release - remove patch14 whick included in upstream * Thu Jan 16 2003 Daisuke SUZUKI 21.2-0vl11 - add patch14 to fix frame title text encoding. - http://tsukuba.m17n.org/mule-ja-archive/2002-10/msg00004.html * Tue Dec 10 2002 MATSUBAYASHI Kohji 21.2-0vl10 - autoconf-2.13, not autoconf in %%setup section - BuildPreReq: autoconf213 * Mon Dec 9 2002 Daisuke SUZUKI 21.2-0vl9 - modifiy rpm scripts. * Mon Dec 9 2002 Daisuke SUZUKI 21.2-0vl8 - rename to emacs - obsoletes emacs21 <= 21.2-0vl7, provides emacs21 = %%{version} * Sun Dec 1 2002 Daisuke SUZUKI 21.2-0vl7 - enable menubar fontset patch (Patch103) * Sat Nov 30 2002 Daisuke SUZUKI 21.2-0vl6 - add requires/buildprereq tags. * Sat Nov 30 2002 Daisuke SUZUKI 21.2-0vl5 - add emcws-20021014 * Sun Jul 21 2002 KOBAYASHI R. Taizo 21.2-0vl4 - removed *-mode * Sat Jul 20 2002 KOBAYASHI R. Taizo 21.2-0vl3 - python-mode was made pending - some additional *.el files was moved from "emacs/site-lisp" to "emacs-(version)/site-lisp" * Sat Jul 13 2002 KOBAYASHI R. Taizo 21.2-0vl2 - added some sources and patches from rawhide 21.2-11 and mandrake 21.2-7mdk * Sat May 11 2002 Hiroaki Irokawa 21.2-0vl1 - update. - Package Name emacs-beta -> emacs21 - Add Patch100,101,102, Source100(default = Disable) - (from http://phe.phyas.aichi-edu.ac.jp/~cyamauch/pl2.html#emacs21) - --infodir=%{_infodir}/emacs-21.2(VineSeed-Plus:00723) * Thu Dec 27 2001 MATSUBAYASHI Kohji 21.1-0vl7 - site-lisp moved under /usr/share/emacs-21.1/ (Patch11 and %%pre section) * Thu Dec 06 2001 MATSUBAYASHI Kohji 21.1-0vl5 - move /tmp -> /var/lib/emacsen-common (IP(package)C file) * Fri Nov 02 2001 Tomoya TAKA 21.1-0vl4 - replace patch10 with patch11, posted to gnu.emacs.bug Message-Id: (reported by ABE Yuji ) * Fri Oct 26 2001 Kazuhisa TAKEI 21.1-0vl3 - fixed build to fail in alpha( only apply patch0 to ppc) * Tue Oct 23 2001 MATSUBAYASHI Kohji 21.1-0vl2 - added Patch10 (thanks Kitame-san) * Mon Oct 22 2001 Kazuhisa TAKEI 21.1-0vl1 - update to 21.1 * Sun Sep 9 2001 Kazuhisa TAKEI 21.0.104-0vl14 - support shared installing otheremacsen. * Mon Jul 23 2001 Kazuhisa TAKEI 21.0.104-0vl3 - update 21.0.104 * Thu Jul 19 2001 Kazuhisa TAKEI 21.0.103-0vl2 - support emacsen-common * Wed May 16 2001 MATSUBAYASHI 'Shaolin' Kohji - 21.0.103-0vl1 - updated to 21.0.103 - revamped and cleaned up spec file :-) - Requires: tamago >= 4.0.6 (...is it reasonable? Mmm...) * Mon Jan 22 2001 Kazuhisa TAKEI 21.0.95-0vl2 - fixed .spec bugs( _libdir) * Fri Jan 12 2001 Kazuhisa TAKEI 21.0.95-0vl1 - updated to 21.0.95 * Wed Dec 20 2000 Kazuhisa TAKEI 21.0.93-0vl3 - fixed emacs-beta.spec * Sat Dec 16 2000 Kazuhisa TAKEI 21.0.93-0vl2 - 21.0.93 test packaging. * Fri Jun 30 2000 T.R. Kobayashi - added linespace-patch * Mon Jun 19 2000 MACHINO, Satoshi - updated to emacs 20.7 * Thu Apr 20 2000 Yasuyuki Furukawa - updated to emacs 20.6 * Mon Feb 28 2000 kenji KITAYAMA - [emacs-20.5a-2] - Modified reference of Emacs Info * Sun Jan 23 2000 MATSUBAYASHI 'Shaolin' Kohji - [emacs-20.5a-2] - added ppc patch * Fri Jan 7 2000 MATSUBAYASHI 'Shaolin' Kohji - [emacs-20.5a-1] - change version from 20.5 to 20.5a - added Mule-4.1 patch * Fri Jan 7 2000 Yasuyuki Furukawa - [emacs-20.5-1] - add desktop-link files for desktop menu. * Thu Dec 24 1999 MATSUBAYASHI 'Shaolin' Kohji - [emacs-20.4-16] - replaced Y2K savvy timezone.{el,elc} with one from brand-new apel-10.0 * Tue Dec 21 1999 Jun Nishii - added documents - strip bins * Wed Dec 1 1999 MATSUBAYASHI 'Shaolin' Kohji - [emacs-20.4-14] - Change Group to Applications/Editors/Emacs * Sat Nov 6 1999 MATSUBAYASHI 'Shaolin' Kohji - [emacs-20.4-13] - included Y2K savvy timezone.{el,elc}, modified by Mr. Youichi Teranishi * Tue Oct 12 1999 Yasuhide OOMORI - [emacs-20.4-12] - Modified info-dir. - Removed -c option from %setup. * Sun Sep 20 1999 Kazuhisa TAKEI - fixed XIM support patch * Sun Sep 19 1999 Kazuhisa TAKEI - fixed postinst bug and fontset patch * Sun Jul 18 1999 Kazuhisa TAKEI - first build