added build patch against libgif 5 [release 24.3-3mamba;Wed Dec 11 2013]

This commit is contained in:
Silvan Calarco 2024-01-05 22:04:54 +01:00
parent ce61862ba9
commit ee0dd01f63
9 changed files with 933 additions and 0 deletions

View File

@ -1,2 +1,9 @@
# emacs
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.

13
emacs-21.3-ia64.patch Normal file
View File

@ -0,0 +1,13 @@
--- emacs-20.6.orig/src/coding.h Fri May 19 23:20:52 2000
+++ emacs-20.6/src/coding.h Fri May 19 22:58:43 2000
@@ -495,6 +495,9 @@
s2 = c2 + 0x7E; \
} while (0)
+/* Must declare this, so that we don't lose high 4 bytes on 64-bit machines. */
+extern Lisp_Object code_convert_string_norecord ();
+
/* Encode the file name NAME using the specified coding system
for file names, if any. */
#define ENCODE_FILE(name) \

220
emacs-21.3-x86_64.patch Normal file
View File

@ -0,0 +1,220 @@
--- emacs-21.2/src/m/x86_64.h.x86_64 2002-07-09 11:04:36.000000000 +0200
+++ emacs-21.2/src/m/x86_64.h 2002-07-09 11:07:23.000000000 +0200
@@ -0,0 +1,175 @@
+/* machine description file for the X86-64 architecture.
+ Copyright (C) 2000 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 1, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#define BITS_PER_LONG 64
+#define BITS_PER_EMACS_INT 64
+
+/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
+ is the most significant byte. */
+
+#undef WORDS_BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ group of arguments and treat it as an array of the arguments. */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ to be corrected before they can be used as byte counts. */
+
+/* #define WORD_MACHINE */
+
+/* Now define a symbol for the cpu type, if your compiler
+ does not define it automatically:
+ Ones defined so far include vax, m68000, ns16000, pyramid,
+ orion, tahoe, APOLLO and many others */
+
+/* __x86_64__ defined automatically */
+
+
+/* Use type EMACS_INT rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines. */
+
+#define NO_UNION_TYPE
+
+/* Define the type to use. */
+#define EMACS_INT long
+#define EMACS_UINT unsigned long
+#define SPECIAL_EMACS_INT
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+ the 24-bit bit field into an int. In other words, if bit fields
+ are always unsigned.
+
+ If you use NO_UNION_TYPE, this flag does not matter. */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* Data type of load average, as read out of kmem. */
+
+#define LOAD_AVE_TYPE long
+
+/* Convert that into an integer that is 100 for a load average of 1.0 */
+
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+ Then the function dump-emacs will not be defined
+ and temacs will do (load "loadup") automatically unless told otherwise. */
+#if 0
+#define CANNOT_DUMP
+#endif
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+ pure and impure space as loaded can vary, and even their
+ relative order cannot be relied on.
+
+ Otherwise Emacs assumes that text space precedes data space,
+ numerically. */
+
+/* #define VIRT_ADDR_VARIES */
+
+/* Define C_ALLOCA if this machine does not support a true alloca
+ and the one written in C should be used instead.
+ Define HAVE_ALLOCA to say that the system provides a properly
+ working alloca function and it should be used.
+ Define neither one if an assembler-language alloca
+ in the file alloca.s should be used. */
+
+#define HAVE_ALLOCA
+
+/* Define the following if GNU malloc and the relocating allocator do
+ not work together with X. */
+
+/* #define SYSTEM_MALLOC */
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+ to change the boundary between the text section and data section
+ when Emacs is dumped. If you define this, the preloaded Lisp
+ code will not be sharable; but that's better than failing completely. */
+
+/* #define NO_REMAP */
+
+/* Some really obscure 4.2-based systems (like Sequent DYNIX) do not
+ support asynchronous I/O (using SIGIO) on sockets, even though it
+ works fine on tty's. If you have one of these systems, define the
+ following, and then use it in config.h (or elsewhere) to decide
+ when (not) to use SIGIO.
+
+ You'd think this would go in an operating-system description file,
+ but since it only occurs on some, but not all, BSD systems, the
+ reasonable place to select for it is in the machine description
+ file. */
+
+/* #define NO_SOCK_SIGIO */
+
+#ifdef __ELF__
+#undef UNEXEC
+#define UNEXEC unexelf.o
+#endif
+
+#define PNTR_COMPARISON_TYPE unsigned long
+
+/* On the 64 bit architecture, we can use 60 bits for addresses */
+
+#define VALBITS 60
+
+/* Define XINT and XUINT so that they can take arguments of type int */
+
+#define XINT(a) (((long) (a) << (BITS_PER_LONG - VALBITS)) >> (BITS_PER_LONG - VALBITS))
+#define XUINT(a) ((long) (a) & VALMASK)
+
+/* Declare malloc and realloc in a way that is clean.
+ But not in makefiles! */
+
+#ifndef NOT_C_CODE
+/* We need these because pointers are larger than the default ints. */
+# if !defined(__NetBSD__) && !defined(__OpenBSD__)
+# include <alloca.h>
+# else
+# include <stdlib.h>
+# endif
+
+/* We need to prototype these for the lib-src programs even if we don't
+ use the system malloc for the Emacs proper. */
+#ifdef _MALLOC_INTERNAL
+/* These declarations are designed to match the ones in gmalloc.c. */
+#if defined (__STDC__) && __STDC__
+extern void *malloc (), *realloc (), *calloc ();
+#else
+extern char *malloc (), *realloc (), *calloc ();
+#endif
+#else /* not _MALLOC_INTERNAL */
+extern void *malloc (), *realloc (), *calloc ();
+#endif /* not _MALLOC_INTERNAL */
+
+#ifdef REL_ALLOC
+#ifndef _MALLOC_INTERNAL
+/* "char *" because ralloc.c defines it that way. gmalloc.c thinks it
+ is allowed to prototype these as "void *" so we don't prototype in
+ that case. You're right: it stinks! */
+extern char *r_alloc (), *r_re_alloc ();
+extern void r_alloc_free ();
+#endif /* not _MALLOC_INTERNAL */
+#endif /* REL_ALLOC */
+
+#endif /* not NOT_C_CODE */
+
+#define HAVE_TEXT_START
--- emacs-21.2/src/s/gnu-linux.h.x86_64 2001-09-28 17:50:04.000000000 +0200
+++ emacs-21.2/src/s/gnu-linux.h 2002-07-09 11:14:34.000000000 +0200
@@ -173,8 +173,12 @@ Boston, MA 02111-1307, USA. */
/* GNU/Linux usually has crt0.o in a non-standard place */
#define START_FILES pre-crt0.o /usr/lib/crt0.o
#else
+#if defined(__x86_64)
+#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o
+#else
#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
#endif
+#endif
#ifdef __ELF__
/* Here is how to find X Windows. LD_SWITCH_X_SITE_AUX gives an -R option
@@ -225,8 +229,12 @@ Boston, MA 02111-1307, USA. */
#else
#undef LIB_GCC
#define LIB_GCC
+#if defined(__x86_64)
+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o
+#else
#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o
#endif
+#endif
/* Don't use -g in test compiles in configure.
This is so we will use the same shared libs for that linking
--- emacs-21.2/configure.in.x86_64 2002-07-09 10:23:41.000000000 +0200
+++ emacs-21.2/configure.in 2002-07-09 10:49:54.000000000 +0200
@@ -997,6 +997,11 @@ case "${canonical}" in
machine=ia64 opsys=gnu-linux
;;
+ ## X86-64
+ x86_64*-*-linux* )
+ machine=x86_64 opsys=gnu-linux
+ ;;
+
## Intel 386 machines where we don't care about the manufacturer
i[3456]86-*-* )
machine=intel386

47
emacs-22.2-infofix.patch Normal file
View File

@ -0,0 +1,47 @@
diff -Nru emacs-22.2.orig/etc/emacs.1 emacs-22.2/etc/emacs.1
--- emacs-22.2.orig/etc/emacs.1 2008-01-10 13:15:28.000000000 +0100
+++ emacs-22.2/etc/emacs.1 2008-06-03 12:41:01.000000000 +0200
@@ -630,28 +630,28 @@
.
.
.SH FILES
-/usr/local/share/info \(em files for the Info documentation browser.
+/usr/share/info \(em files for the Info documentation browser.
The complete text of the Emacs reference manual is included in a
convenient tree structured form.
Also includes the Emacs Lisp Reference Manual, useful to anyone
wishing to write programs in the Emacs Lisp extension language.
-/usr/local/share/emacs/$VERSION/lisp \(em Lisp source files and
+/usr/share/emacs/$VERSION/lisp \(em Lisp source files and
compiled files that define most editing commands.
Some are preloaded; others are autoloaded from this directory when
used.
-/usr/local/libexec/emacs/$VERSION/$ARCH \(em various programs that are
+/usr/libexec/emacs/$VERSION/$ARCH \(em various programs that are
used with GNU Emacs.
-/usr/local/share/emacs/$VERSION/etc \(em various files of information.
+/usr/share/emacs/$VERSION/etc \(em various files of information.
-/usr/local/share/emacs/$VERSION/etc/DOC.* \(em contains the documentation
+/usr/share/emacs/$VERSION/etc/DOC.* \(em contains the documentation
strings for the Lisp primitives and preloaded Lisp functions
of GNU Emacs.
They are stored here to reduce the size of Emacs proper.
-/usr/local/share/emacs/$VERSION/etc/SERVICE lists people offering
+/usr/share/emacs/$VERSION/etc/SERVICE lists people offering
various services to assist users of GNU Emacs, including education,
troubleshooting, porting and customization.
.
@@ -675,7 +675,7 @@
Please do not send anything but bug reports to this mailing list.
For more information about Emacs mailing lists, see the
-file /usr/local/emacs/etc/MAILINGLISTS.
+file /usr/share/emacs/etc/MAILINGLISTS.
Bugs tend actually to be fixed if they can be isolated, so it is
in your interest to report them in such a way that they can be
easily reproduced.

View File

@ -0,0 +1,12 @@
diff -Nru emacs-22.3.orig/lib-src/rcs2log emacs-22.3/lib-src/rcs2log
--- emacs-22.3.orig/lib-src/rcs2log 2008-01-07 09:39:42.000000000 +0100
+++ emacs-22.3/lib-src/rcs2log 2008-09-08 01:48:39.000000000 +0200
@@ -205,7 +205,7 @@
m[9]="Oct"; m[10]="Nov"; m[11]="Dec"
'
-logdir=$TMPDIR/rcs2log$$
+logdir=`mktemp -d /tmp/rcs2log.XXXXXX` || exit 1
llogout=$logdir/l
trap exit 1 2 13 15
trap "rm -fr $logdir 2>/dev/null" 0

56
emacs-24.3-libgif-5.patch Normal file
View File

@ -0,0 +1,56 @@
diff --git a/configure.ac b/configure.ac
index 62f53a3..ad9d948 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2659,15 +2659,15 @@ LIBGIF=
if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \
|| test "${HAVE_W32}" = "yes"; then
AC_CHECK_HEADER(gif_lib.h,
-# EGifPutExtensionLast only exists from version libungif-4.1.0b1.
+# EGifPutExtensionTrailer only exists from version libungif-4.1.0b1.
# Earlier versions can crash Emacs.
- [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])
+ [AC_CHECK_LIB(gif, EGifPutExtensionTrailer, HAVE_GIF=yes, HAVE_GIF=maybe)])
if test "$HAVE_GIF" = yes; then
LIBGIF=-lgif
elif test "$HAVE_GIF" = maybe; then
# If gif_lib.h but no libgif, try libungif.
- AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=no)
+ AC_CHECK_LIB(ungif, EGifPutExtensionTrailer, HAVE_GIF=yes, HAVE_GIF=no)
test "$HAVE_GIF" = yes && LIBGIF=-lungif
fi
diff --git a/src/image.c b/src/image.c
index ce36699..bbc5c49 100644
--- a/src/image.c
+++ b/src/image.c
@@ -7101,8 +7101,8 @@ gif_image_p (Lisp_Object object)
/* GIF library details. */
DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *));
DEF_IMGLIB_FN (int, DGifSlurp, (GifFileType *));
-DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc));
-DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName, (const char *));
+DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc, int*));
+DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName, (const char *, int*));
static bool
init_gif_functions (void)
@@ -7192,7 +7192,7 @@ gif_load (struct frame *f, struct image *img)
}
/* Open the GIF file. */
- gif = fn_DGifOpenFileName (SSDATA (file));
+ gif = fn_DGifOpenFileName (SSDATA (file), NULL);
if (gif == NULL)
{
image_error ("Cannot open `%s'", file, Qnil);
@@ -7213,7 +7213,7 @@ gif_load (struct frame *f, struct image *img)
memsrc.len = SBYTES (specified_data);
memsrc.index = 0;
- gif = fn_DGifOpen (&memsrc, gif_read_from_memory);
+ gif = fn_DGifOpen (&memsrc, gif_read_from_memory, NULL);
if (!gif)
{
image_error ("Cannot open memory source `%s'", img->spec, Qnil);

103
emacs-xemacs.desktop Normal file
View File

@ -0,0 +1,103 @@
[Desktop Entry]
Encoding=UTF-8
Name=X Emacs
Name[ar]=أكس إيمX
Name[bn]=
Name[eo]=XEmakso
Name[es]=XEmacs
Name[fa]=ایمکس X
Name[fr]=XEmacs
Name[hi]=
Name[id]= Emacs X
Name[ko]=X
Name[nb]=X-Emacs
Name[pa]=X E
Name[ta]=X
Name[th]=Emacs X
Name[xx]=xxX Emacsxx
Name[zh_TW]=X Emacs
GenericName=Text Editor
GenericName[af]=Teks Redigeerder
GenericName[ar]=محرر نصوص
GenericName[az]=Mətn Editoru
GenericName[be]=Тэкставы рэдактар
GenericName[bg]=Текстов редактор
GenericName[bn]=
GenericName[br]=Aozer skrid
GenericName[bs]=Tekst editor
GenericName[ca]=Editor de text
GenericName[cs]=Textový editor
GenericName[cy]=Golygydd Testun
GenericName[da]= Teksteditor
GenericName[de]=Texteditor
GenericName[el]=Επεξεργαστής κειμένου
GenericName[eo]=Tekstredaktilo
GenericName[es]=Editor de texto
GenericName[et]=Tekstiredaktor
GenericName[eu]=Testu editorea
GenericName[fa]=ویرایشگر متن
GenericName[fi]=Tekstieditori
GenericName[fo]=Tekstritil
GenericName[fr]=Éditeur de texte
GenericName[fy]=Tekst Bewurker
GenericName[ga]=Eagarthóir Téacs
GenericName[gl]=Editor de Textos
GenericName[he]=עורך טקסט
GenericName[hi]=
GenericName[hr]=Uređivač teksta
GenericName[hsb]=Wobdźěłar tekstow
GenericName[hu]=Szövegszerkesztő
GenericName[is]=Textaritill
GenericName[it]=Editor di testi
GenericName[ja]=
GenericName[km]=
GenericName[ko]=
GenericName[lo]=
GenericName[lt]=Teksto redaktorius
GenericName[lv]=Teksta Redaktors
GenericName[mk]=Уредувач на текст
GenericName[mn]=Текст боловсруулагч
GenericName[ms]=Penyunting Teks
GenericName[mt]=Editur tat-test
GenericName[nb]=Skriveprogram
GenericName[nds]=Texteditor
GenericName[nl]=Teksteditor
GenericName[nn]=Skriveprogram
GenericName[nso]=Mofetosi wa Sengwalwana
GenericName[pa]=
GenericName[pl]=Edytor tekstowy
GenericName[pt]=Editor de Texto
GenericName[pt_BR]=Editor de Texto
GenericName[ro]=Editor de text
GenericName[ru]=Текстовый редактор
GenericName[rw]=Muhinduzi Umwandiko
GenericName[se]=Čállinprográmma
GenericName[sk]=Textový editor
GenericName[sl]=Urejevalnik besedil
GenericName[sr]=Уређивач текста
GenericName[sr@Latn]=Uređivač teksta
GenericName[ss]=Sihleli sembhalo
GenericName[sv]=Texteditor
GenericName[ta]=
GenericName[tg]=Муҳаррири матн
GenericName[th]=
GenericName[tr]=Metin Düzenleyici
GenericName[tt]=Mäten Tözätkeçe
GenericName[uk]=Редактор текстів
GenericName[uz]=Матн таҳрирчи
GenericName[ven]=Musengulusi wa Manwalwa
GenericName[vi]=Trình son văn bn
GenericName[wa]=Aspougneu di tecse
GenericName[xh]=Umhleli Wombhalo
GenericName[xx]=xxText Editorxx
GenericName[zh_CN]=
GenericName[zh_TW]=
GenericName[zu]=Umlungisi wombhalo
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=emacs %f
Icon=emacs
Type=Application
Terminal=false
Categories=Application;TextEditor;
X-KDE-StartupNotify=true
X-KDE-AuthorizeAction=shell_access

BIN
emacs-xemacs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

475
emacs.spec Normal file
View File

@ -0,0 +1,475 @@
# 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: 24.3
Release: 3mamba
Summary: The libraries needed to run the GNU Emacs text editor
Group: Applications/Text
Vendor: openmamba
Distribution: openmamba
Packager: Davide Madrisan <davide.madrisan@gmail.com>
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.
%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
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
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}
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" | \
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}/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}/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.*
%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
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/%{dirver}
%dir %{_libdir}/%{name}/%{dirver}/%{_host}
%attr(755,root,root) %{_libdir}/%{name}/%{dirver}/%{_host}/movemail
%dir %{_datadir}/%{name}/site-lisp
%dir %{_datadir}/%{name}/%{dirver}/site-lisp
%dir %{_datadir}/%{name}/%{dirver}/leim
#%{_localstatedir}/games/%{name}/
%{_mandir}/man?/*
%{_infodir}/*
%doc src/COPYING
%files -f doc-filelist doc
%defattr(-,root,root)
%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}/leim/leim-list.el
%files nox
%defattr(-,root,root)
%doc src/COPYING
%{_bindir}/%{name}
%if "%{?stage1}" == "1"
%{_bindir}/%{name}-%{dirver}
%endif
%{_bindir}/%{name}-%{dirver}-nox
%{_datadir}/%{name}/%{dirver}/etc/DOC-%{dirver}.*
%if "%{?stage1}" != "1"
%files X11
%defattr(-,root,root)
%{_datadir}/applications/xemacs.desktop
%{_bindir}/%{name}-%{dirver}
%{_bindir}/xemacs
%{_datadir}/pixmaps/xemacs.png
%{_datadir}/icons/hicolor/*/apps/emacs*.png
%{_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
* Wed Dec 11 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 24.3-3mamba
- added build patch against libgif 5
* Mon Mar 18 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 24.3-2mamba
- don't install info.info.gz conflicting with texinfo 5.1
* Fri Mar 15 2013 Automatic Build System <autodist@mambasoft.it> 24.3-1mamba
- automatic version update by autodist
* Tue Aug 21 2012 Automatic Build System <autodist@mambasoft.it> 24.2-1mamba
- automatic version update by autodist
* Tue Jun 12 2012 Automatic Build System <autodist@mambasoft.it> 24.1-1mamba
- automatic version update by autodist
* Sat Jan 28 2012 Automatic Build System <autodist@mambasoft.it> 23.4-1mamba
- automatic version update by autodist
* Sat Nov 26 2011 Automatic Build System <autodist@mambasoft.it> 23.3b-1mamba
- automatic version update by autodist
* Sun Aug 07 2011 Automatic Build System <autodist@mambasoft.it> 23.3a-1mamba
- automatic version update by autodist
* Thu Mar 10 2011 Automatic Build System <autodist@mambasoft.it> 23.3-1mamba
- automatic update by autodist
* Sun Aug 22 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 23.2-2mamba
- pass correct host and build to configure
* Sat May 08 2010 Automatic Build System <autodist@mambasoft.it> 23.2-1mamba
- automatic update to 23.2 by autodist
* Sun Aug 02 2009 Automatic Build System <autodist@mambasoft.it> 23.1-1mamba
- automatic update to 23.1 by autodist
* Mon Sep 08 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 22.3-1mamba
- automatic update to 22.3 by autodist
* Tue Jun 03 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 22.2-1mamba
- update to 22.2
* Mon Jun 11 2007 Aleph0 <aleph0@openmamba.org> 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 <stefano.cotta@qilinux.it> 21.4-2qilnx
- specfile fixes
- fixed group of X11 subpackage
- X11 subpackage excluded in bootstrap compilations
* Tue Apr 12 2005 Davide Madrisan <davide.madrisan@qilinux.it> 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 <davide.madrisan@qilinux.it> 21.3-5qilnx
- make emacs a symlink to the emacs binary build with no X11 support
- added KDE menu entry
* Mon Dec 09 2004 Davide Madrisan <davide.madrisan@qilinux.it> 21.3-4qilnx
- ctags binary and man page renamed to gctags
* Mon Nov 29 2004 Davide Madrisan <davide.madrisan@qilinux.it> 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 <alessandro.ramazzina@qinet.it> 21.3-1qilnx
- creation of emacs package