# Staged build (no first stage deps) # rpm -ba emacs.spec --define 'stage1 1' # FIXME: currently (ver.22.1) --x-toolkit=gtk leads to a segfaulting xemacs %define with_xtoolkit_motif 0 %define dirver %(echo %version | sed "s|[a-z]$||") Name: emacs Version: 27.1 Release: 1mamba Summary: Common files needed to run the GNU Emacs text editor Group: Applications/Text Vendor: openmamba Distribution: openmamba Packager: Davide Madrisan URL: http://www.gnu.org/software/emacs/ Source: ftp://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.gz Source1: %{name}-xemacs.desktop Source2: %{name}-xemacs.png Patch0: %{name}-22.2-infofix.patch Patch1: %{name}-22.3-security_mktemp.patch Patch2: %{name}-21.3-ia64.patch Patch3: %{name}-21.3-x86_64.patch Patch4: emacs-24.3-libgif-5.patch License: GPL ## AUTOBUILDREQ-BEGIN BuildRequires: GConf-devel BuildRequires: glibc-devel BuildRequires: libalsa-devel %if ! %{with_xtoolkit_motif} BuildRequires: libatk-devel BuildRequires: libcairo-devel %endif BuildRequires: libdbus-devel BuildRequires: libfontconfig-devel %if ! %{with_xtoolkit_motif} BuildRequires: libfreetype-devel %endif BuildRequires: libgdk-pixbuf-devel BuildRequires: libgif-devel %if ! %{with_xtoolkit_motif} BuildRequires: libglib-devel %endif BuildRequires: libgnutls-devel BuildRequires: libgomp-devel BuildRequires: libgpm-devel %if ! %{with_xtoolkit_motif} BuildRequires: libgtk-devel %endif BuildRequires: libICE-devel BuildRequires: libjpeg-devel BuildRequires: libMagick-devel BuildRequires: libncurses-devel %if ! %{with_xtoolkit_motif} BuildRequires: libpango-devel %endif %if "%{?stage1}" != "1" BuildRequires: libpng-devel %endif BuildRequires: librsvg-devel BuildRequires: libselinux-devel %if "%{?stage1}" != "1" BuildRequires: libSM-devel BuildRequires: libtiff-devel BuildRequires: libX11-devel %endif BuildRequires: libXft-devel BuildRequires: libxml2-devel %if "%{?stage1}" != "1" BuildRequires: libXpm-devel %endif BuildRequires: libXrender-devel BuildRequires: libz-devel BuildRequires: perl-devel ## AUTOBUILDREQ-END BuildRequires: debianutils %if "%{?stage1}" != "1" BuildRequires: Xaw3d-devel #BuildRequires: libungif-devel BuildRequires: liblesstif-devel %endif BuildRequires: pkgconfig BuildRequires: texinfo Requires: debianutils Requires(post):%{__install_info} BuildRoot: %{_tmppath}/%{name}-%{version}-root # NOTE: # Does Emacs use -lXaw3d? no # (usage of Xaw3d is disabled when xtoolkit is set to motif) %description 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-X11). Install emacs-nox if you are not going to use the X Window System; install emacs-X11 if you will be using X. %package el Summary: The sources for elisp programs included with Emacs Group: Applications/Text Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description el Emacs-el contains 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: Documentation Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description doc The Emacs documentation. %package leim Summary: Emacs Lisp code for input methods for internationalization Group: Applications/Text Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description leim The Emacs Lisp code for input methods for various international character scripts. %package nox Summary: The Emacs text editor without support for the X Window System Group: Applications/Text Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} Provides: %{name}-bin %description nox Emacs-nox is the Emacs text editor program 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-X11 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 package in order to run Emacs. %package X11 Summary: The Emacs text editor for the X Window System Group: Graphical Desktop/Applications/Office Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} Provides: %{name}-bin %description X11 Emacs-X11 includes the Emacs text editor program for use with the X Window System (it provides support for the mouse and other GUI elements). Emacs-X11 will also run Emacs outside of X, but it has a larger memory footprint than the 'non-X' Emacs package (emacs-nox). Install emacs-X11 if you're going to use Emacs with the X Window System. You should also install emacs-X11 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 package in order to run Emacs. #% debug_package %prep %setup -q -n %{name}-%{dirver} #%patch0 -p1 -b .infofix #%patch1 -p1 -b .security_mktemp #patch2 -p1 -b .ia64 #patch3 -p1 -b .x86_64 #%patch4 -p1 #sed -i 's/ctags/gctags/g' etc/etags.1 %build ./autogen.sh CFLAGSEXTRA="-DMAIL_USE_LOCKF -DSYSTEM_PURESIZE_EXTRA=16777216" CONFOPTS="\ --build=%{_build} \ --host=%{_host} \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --libexecdir=%{_libdir} \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ --sharedstatedir=/var \ --with-pop" # build binary without X support [ -d build-nox ] && rm -rf build-nox mkdir build-nox && cd build-nox CFLAGS="%{optflags} $CFLAGSEXTRA" LDFLAGS=-s \ ../configure ${CONFOPTS} \ --with-x=no %make bootstrap %make systemdunitdir=%{_userunitdir} cd .. # build binary with X support %if "%{?stage1}" != "1" [ -d build-withx ] && rm -rf build-withx mkdir build-withx && cd build-withx CFLAGS="%{optflags} $CFLAGSEXTRA" LDFLAGS=-s \ ../configure ${CONFOPTS} \ %if %{with_xtoolkit_motif} --with-x-toolkit=motif \ %else --with-x-toolkit=gtk \ %endif --with-sound \ %{_arch}-pc-linux-gnu %make bootstrap %make systemdunitdir=%{_userunitdir} cd .. %endif %install [ "%{buildroot}" != / ] && rm -rf %{buildroot} PATH=$PATH:/sbin ARCHDIR=%{_arch}-pc-linux-gnu %if "%{?stage1}" != "1" %define opt_build withx %else %define opt_build nox %endif %makeoldinstall -C build-%{opt_build} \ sharedstatedir=%{buildroot}/var \ libexecdir=%{buildroot}%{_libdir} \ systemdunitdir=%{_userunitdir} rm -f %{buildroot}%{_infodir}/dir install -D -m755 build-nox/src/emacs %{buildroot}%{_bindir}/emacs-%{dirver}-nox #install -D -m644 build-nox/etc/DOC-%{version}.1 \ # %{buildroot}%{_datadir}/emacs/%{version}/etc/DOC-%{version}.1 mv %{buildroot}%{_mandir}/man1/ctags.1.gz %{buildroot}%{_mandir}/man1/gctags.1.gz mv %{buildroot}%{_bindir}/ctags %{buildroot}%{_bindir}/gctags # remove sun specific stuff rm -f %{buildroot}%{_datadir}/%{name}/%{dirver}/etc/emacstool.1 # remove unusefull stuff rm -f %{buildroot}%{_datadir}/%{name}/%{dirver}/etc/sex.6 rm -f %{buildroot}%{_libdir}/%{name}/%{dirver}/%{_arch}-pc-linux-gnu/fakemail rm -f %{buildroot}%{_infodir}/dir rm -f %{buildroot}%{_localstatedir}/games/emacs/* install -d %{buildroot}%{_libdir}/%{name}/site-lisp # create file lists find %{buildroot}%{_datadir}/%{name}/%{dirver}/lisp \ -name '*.elc' -print -o -type d -printf "%%%%dir %%p\n" | \ grep -v lisp/leim | \ sed "s,%{buildroot},," > core-filelist find %{buildroot}%{_libdir}/%{name}/%{dirver} -type f | \ sed "s,%{buildroot},," | grep -v movemail >> core-filelist # include .el files which lack a corresponding byte compiled form for f in `find %{buildroot}%{_datadir}/%{name}/%{dirver}/lisp -name '*.el'`; do [ -e `dirname $f`/`basename $f .el`.elc ] || echo $f | sed "s,%{buildroot},," done >> core-filelist # move docs from emacs to emacs-el to reduce emacs core size # (tutorials, news, postscript files, ...)' find %{buildroot}%{_datadir}/%{name}/%{dirver}/etc/ -type f | \ egrep -v 'DOC|TUTORIAL|NEWS|ONEWS|termcap.src|\.ps$' | \ sed "s,%{buildroot},," >> core-filelist find %{buildroot}%{_datadir}/%{name}/%{dirver}/etc/ -type d -printf "%%%%dir %%p\n" | \ sed "s,%{buildroot},," >> core-filelist # these two files're needed by ps-print for f in %{_datadir}/%{name}/%{dirver}/etc/ps-prin{0,1}.ps; do echo $f >> core-filelist done find %{buildroot}%{_datadir}/%{name}/%{dirver}/etc/ -type f | \ egrep 'termcap.src' | fgrep -v /etc/ps-prin | \ sed "s,%{buildroot},," > el-filelist find %{buildroot}%{_datadir}/%{name}/%{dirver}/etc/ -type f | \ egrep 'TUTORIAL|NEWS|ONEWS|.ps$' | fgrep -v /etc/ps-prin | \ sed "s,%{buildroot},," > doc-filelist # include all non elisp files which emacs installs find %{buildroot}%{_datadir}/%{name}/%{dirver}/lisp -type f | \ sed "s,%{buildroot},," | grep -v "\.el\(c\)\?$" >> core-filelist find %{buildroot}%{_datadir}/%{name}/%{dirver}/lisp/leim \ -name '*.elc' -print -o -mindepth 1 -type d -printf "%%%%dir %%p\n" | \ sed "s^%{buildroot}^^" > leim-filelist # be sure to exclude some files which are need in core package for f in `find %{buildroot}%{_datadir}/%{name}/%{dirver}/lisp -name '*.el'`; do [ -e `dirname $f`/`basename $f .el`.elc ] && echo $f | sed "s,%{buildroot},," done >> el-filelist find %{buildroot}%{_datadir}/%{name}/%{dirver}/lisp/leim \ -name '*.el.gz' -print | sed "s,%{buildroot},," | \ grep -v "leim\/leim-list.el" >> el-filelist %if "%{?stage1}" != "1" %if %{with_xtoolkit_motif} install -d %{buildroot}%{_datadir}/X11/app-defaults/ cat > %{buildroot}%{_datadir}/X11/app-defaults/Emacs << _EOF Emacs*font: -*-fixed-medium-r-normal-*-*-140-75-75-*-*-* emacs*foreground: Wheat emacs*background: DarkSlateGray emacs*region.attributeForeground: White emacs*region.attributeBackground: SteelBlue emacs*pointerColor: Orchid emacs*cursorColor: Orchid _EOF %endif %else rm -rf %{buildroot}%{_datadir}/icons %{buildroot}%{_datadir}/applications %endif rm -f %{buildroot}%{_bindir}/%{name} ln -sf %{_bindir}/%{name}-%{dirver}-nox %{buildroot}%{_bindir}/%{name} %if "%{?stage1}" != "1" ln -sf %{_bindir}/%{name}-%{dirver} %{buildroot}%{_bindir}/x%{name} # install a menu entry for xemacs install -D -m0644 %{S:1} %{buildroot}%{_datadir}/applications/xemacs.desktop install -D -m0644 %{S:2} %{buildroot}%{_datadir}/pixmaps/xemacs.png rm -f %{buildroot}%{_datadir}/applications/emacs.desktop %endif # info.info conflicting with texinfo 5.1 rm -f %{buildroot}%{_infodir}/info.info.* #mkdir -p %{buildroot}%{_userunitdir} #mv %{buildroot}%{_libdir}/systemd/user/emacs.service %{buildroot}%{_userunitdir}/emacs.service %clean [ "%{buildroot}" != / ] && rm -rf %{buildroot} %define info_files ada-mode autotype ccmode cl dired-x ebrowse ediff efaq emacs emacs-mime eshell eudc forms gnus idlwave message mh-e pcl-cvs reftex sc speedbar vip viper widget woman %post for info_file in %info_files do %install_info $info_file done exit 0 %preun for info_file in %info_files do %uninstall_info $info_file done exit 0 %files -f core-filelist %defattr(-,root,root) %{_bindir}/gctags %{_bindir}/emacsclient %{_bindir}/ebrowse %{_bindir}/etags #%{_bindir}/grep-changelog #%{_bindir}/rcs-checkin #%{_userunitdir}/emacs.service %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/%{dirver} %dir %{_libdir}/%{name}/%{dirver}/%{_host} %ifarch arm %attr(755,root,root) %{_libdir}/%{name}/%{dirver}/%{_host}/movemail %endif %dir %{_datadir}/%{name}/site-lisp %dir %{_datadir}/%{name}/%{dirver}/site-lisp #%{_localstatedir}/games/%{name}/ %{_includedir}/emacs-module.h %{_mandir}/man?/* %{_infodir}/* %exclude %{_datadir}/%{name}/%{version}/lisp/leim %doc src/COPYING %files -f doc-filelist doc %defattr(-,root,root) %exclude %{_datadir}/%{name}/%{version}/etc/refcards/* %doc BUGS README %files -f el-filelist el %defattr(-,root,root) %{_datadir}/%{name}/%{dirver}/site-lisp/subdirs.el %{_datadir}/%{name}/site-lisp/subdirs.el %files -f leim-filelist leim %defattr(-,root,root) %{_datadir}/%{name}/%{dirver}/lisp/leim/leim-list.el %files nox %defattr(-,root,root) %{_bindir}/%{name} %if "%{?stage1}" == "1" %{_bindir}/%{name}-%{dirver} %endif %{_bindir}/%{name}-%{dirver}-nox %{_datadir}/%{name}/%{dirver}/etc/DOC #%doc src/COPYING %if "%{?stage1}" != "1" %files X11 %defattr(-,root,root) %{_bindir}/%{name}-%{dirver} %{_bindir}/xemacs %{_datadir}/pixmaps/xemacs.png %{_datadir}/applications/xemacs.desktop %{_datadir}/metainfo/emacs.appdata.xml %{_datadir}/icons/hicolor/*/apps/emacs*.png %{_datadir}/icons/hicolor/scalable/apps/emacs.ico %{_datadir}/icons/hicolor/scalable/apps/emacs.svg %{_datadir}/icons/hicolor/scalable/mimetypes/emacs-document*.svg %if %{with_xtoolkit_motif} %{_datadir}/X11/app-defaults/Emacs %endif %endif %changelog * Thu Aug 13 2020 Automatic Build System 27.1-1mamba - automatic version update by autodist * Thu Aug 29 2019 Automatic Build System 26.3-1mamba - automatic version update by autodist * Fri Apr 19 2019 Automatic Build System 26.2-1mamba - automatic version update by autodist * Sun Jun 17 2018 Automatic Build System 26.1-1mamba - automatic version update by autodist * Sun Sep 17 2017 Automatic Build System 25.3-1mamba - automatic version update by autodist * Sat Apr 22 2017 Automatic Build System 25.2-1mamba - automatic version update by autodist * Sun Oct 02 2016 Automatic Build System 25.1-1mamba - automatic version update by autodist * Mon Apr 20 2015 Automatic Build System 24.5-1mamba - automatic version update by autodist * Thu Oct 30 2014 Automatic Build System 24.4-1mamba - automatic version update by autodist * Wed Dec 11 2013 Silvan Calarco 24.3-3mamba - added build patch against libgif 5 * Mon Mar 18 2013 Silvan Calarco 24.3-2mamba - don't install info.info.gz conflicting with texinfo 5.1 * Fri Mar 15 2013 Automatic Build System 24.3-1mamba - automatic version update by autodist * Tue Aug 21 2012 Automatic Build System 24.2-1mamba - automatic version update by autodist * Tue Jun 12 2012 Automatic Build System 24.1-1mamba - automatic version update by autodist * Sat Jan 28 2012 Automatic Build System 23.4-1mamba - automatic version update by autodist * Sat Nov 26 2011 Automatic Build System 23.3b-1mamba - automatic version update by autodist * Sun Aug 07 2011 Automatic Build System 23.3a-1mamba - automatic version update by autodist * Thu Mar 10 2011 Automatic Build System 23.3-1mamba - automatic update by autodist * Sun Aug 22 2010 Silvan Calarco 23.2-2mamba - pass correct host and build to configure * Sat May 08 2010 Automatic Build System 23.2-1mamba - automatic update to 23.2 by autodist * Sun Aug 02 2009 Automatic Build System 23.1-1mamba - automatic update to 23.1 by autodist * Mon Sep 08 2008 Silvan Calarco 22.3-1mamba - automatic update to 22.3 by autodist * Tue Jun 03 2008 Silvan Calarco 22.2-1mamba - update to 22.2 * Mon Jun 11 2007 Aleph0 22.1-1mamba - update to 22.1 - /usr/X11R6/lib/X11/app-defaults/Emacs moved to %{_datadir}/X11/app-defaults/Emacs - add %%optflags options to CFLAGS - remove /var/games for now - new icon * Tue Dec 13 2005 Stefano Cotta Ramusino 21.4-2qilnx - specfile fixes - fixed group of X11 subpackage - X11 subpackage excluded in bootstrap compilations * Tue Apr 12 2005 Davide Madrisan 21.4-1qilnx - update to version 21.4a by autospec - also fixes security issue QSA-2005-038 (CAN-2005-0100) - added %%post and %%preun scriptlets * Wed Jan 05 2005 Davide Madrisan 21.3-5qilnx - make emacs a symlink to the emacs binary build with no X11 support - added KDE menu entry * Thu Dec 09 2004 Davide Madrisan 21.3-4qilnx - ctags binary and man page renamed to gctags * Mon Nov 29 2004 Davide Madrisan 21.3-3qilnx - added leim source and package - specfile rewritten - splitted emacs into several packages - fixed insecure temporary file creation in the bash scripts - added emacs.desktop to display the emacs antry in the KDE menu * Mon Apr 14 2003 Alessandro Ramazzina 21.3-1qilnx - creation of emacs package