aboutsummaryrefslogtreecommitdiff
path: root/development/xemacs
diff options
context:
space:
mode:
authorSean MacLennan <xemacs@seanm.ca>2011-11-12 00:10:23 -0600
committerRobby Workman <rworkman@slackbuilds.org>2011-11-12 12:17:21 -0600
commit61faa8b74d6fe94a393ac57ab8258933a3c08e6f (patch)
tree4a24a978ffc90fd98db51f0bf03a20b48e9a746e /development/xemacs
parent572042ec89f883d3ba9fd49507437eec4d6858c1 (diff)
development/xemacs: Added (XEmacs editor)
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
Diffstat (limited to 'development/xemacs')
-rw-r--r--development/xemacs/README5
-rw-r--r--development/xemacs/patches/check-features.patch11
-rw-r--r--development/xemacs/patches/dump-paths.patch27
-rw-r--r--development/xemacs/patches/lib64.patch29
-rw-r--r--development/xemacs/patches/mod-shift.patch30
-rw-r--r--development/xemacs/slack-desc19
-rw-r--r--development/xemacs/xemacs.SlackBuild129
-rw-r--r--development/xemacs/xemacs.info14
8 files changed, 264 insertions, 0 deletions
diff --git a/development/xemacs/README b/development/xemacs/README
new file mode 100644
index 000000000000..3d0e2cc39b14
--- /dev/null
+++ b/development/xemacs/README
@@ -0,0 +1,5 @@
+XEmacs is a highly customizable open source text editor and app-
+lication development system. It is protected under the GNU Public
+License and related to other versions of Emacs, in particular GNU
+Emacs. Its emphasis is on modern graphical user interface support and
+an open software development model, similar to Linux.
diff --git a/development/xemacs/patches/check-features.patch b/development/xemacs/patches/check-features.patch
new file mode 100644
index 000000000000..7da578a4b435
--- /dev/null
+++ b/development/xemacs/patches/check-features.patch
@@ -0,0 +1,11 @@
+--- xemacs-21.4.15/Makefile.in.in.orig 2004-07-09 19:00:27.000000000 -0400
++++ xemacs-21.4.15/Makefile.in.in 2004-07-09 19:00:46.000000000 -0400
+@@ -403,7 +403,7 @@
+ ## all. --cet
+
+ check-features: all
+- ${blddir}/src/${PROGNAME} -batch -l check-features.el
++ ${blddir}/src/${PROGNAME} -batch -l ${blddir}/lisp/check-features.el
+
+ install-only: ${MAKE_SUBDIR} check-features install-arch-dep install-arch-indep
+
diff --git a/development/xemacs/patches/dump-paths.patch b/development/xemacs/patches/dump-paths.patch
new file mode 100644
index 000000000000..d5278013d805
--- /dev/null
+++ b/development/xemacs/patches/dump-paths.patch
@@ -0,0 +1,27 @@
+Subject: Re: Compiling XEmacs when same version is already installed
+From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+Date: 31 Jul 2001 20:23:42 +0200
+http://list-archive.xemacs.org/xemacs/200108/msg00001.html
+
+--- xemacs-21.4.4/lisp/dump-paths.el.orig Tue Jul 31 19:47:56 2001
++++ xemacs-21.4.4/lisp/dump-paths.el Tue Jul 31 19:56:14 2001
+@@ -58,10 +58,18 @@
+ late-packages late-package-load-path)
+ 'external-debugging-output)))
+
+- (setq lisp-directory (paths-find-lisp-directory roots))
++ (let ((build-root (expand-file-name ".." invocation-directory)))
++ (setq lisp-directory (expand-file-name "lisp" build-root))
++ (setq module-directory (expand-file-name "modules" build-root)))
++
+ (if debug-paths
+ (princ (format "lisp-directory:\n%S\n" lisp-directory)
+ 'external-debugging-output))
++
++ (if debug-paths
++ (princ (format "module-directory:\n%S\n" module-directory)
++ 'external-debugging-output))
++
+ (if (featurep 'mule)
+ (progn
+ (setq mule-lisp-directory
diff --git a/development/xemacs/patches/lib64.patch b/development/xemacs/patches/lib64.patch
new file mode 100644
index 000000000000..41f985bd43ce
--- /dev/null
+++ b/development/xemacs/patches/lib64.patch
@@ -0,0 +1,29 @@
+--- xemacs-21.4.22/lisp/find-paths.el.orig 2011-08-05 13:42:44.545564371 -0400
++++ xemacs-21.4.22/lisp/find-paths.el 2011-08-05 13:43:10.205459415 -0400
+@@ -103,7 +103,7 @@
+ (or
+ ;; installed
+ (paths-file-readable-directory-p (paths-construct-path (list directory
+- "lib"
++ "lib64"
+ emacs-program-name)))
+ ;; in-place or windows-nt
+ (and
+@@ -216,7 +216,7 @@
+ (paths-find-emacs-directory roots
+ (file-name-as-directory
+ (paths-construct-path (list
+- "lib"
++ "lib64"
+ emacs-program-name)))
+ base
+ envvar default
+@@ -230,7 +230,7 @@
+ (paths-find-emacs-directory roots
+ (file-name-as-directory
+ (paths-construct-path
+- (list "lib"
++ (list "lib64"
+ (construct-emacs-version-name))))
+ base
+ envvar default
diff --git a/development/xemacs/patches/mod-shift.patch b/development/xemacs/patches/mod-shift.patch
new file mode 100644
index 000000000000..9ca292a7efa5
--- /dev/null
+++ b/development/xemacs/patches/mod-shift.patch
@@ -0,0 +1,30 @@
+--- xemacs-21.4.15/src/event-Xt.c.orig 2004-07-09 11:02:02.000000000 -0400
++++ xemacs-21.4.15/src/event-Xt.c 2004-07-09 11:02:23.000000000 -0400
+@@ -1253,7 +1253,26 @@
+ KeySym bot = XLookupKeysym (ev, Mode_switch_p ? 2 : 0);
+ KeySym top = XLookupKeysym (ev, Mode_switch_p ? 3 : 1);
+ if (top && bot && top != bot)
+- modifiers &= ~XEMACS_MOD_SHIFT;
++ // SAM
++ switch(top) {
++ case 0x1008fe01:
++ case 0x1008fe02:
++ case 0x1008fe03:
++ case 0x1008fe04:
++ case 0x1008fe05:
++ case 0x1008fe06:
++ case 0x1008fe07:
++ case 0x1008fe08:
++ case 0x1008fe09:
++ case 0x1008fe0a:
++ case 0x1008fe0b:
++ case 0x1008fe0c:
++ break;
++ default:
++ modifiers &= ~XEMACS_MOD_SHIFT;
++ break;
++ }
++ //SAM
+ }
+ emacs_event->event_type = key_press_event;
+ emacs_event->timestamp = ev->time;
diff --git a/development/xemacs/slack-desc b/development/xemacs/slack-desc
new file mode 100644
index 000000000000..a1ed90a44a6e
--- /dev/null
+++ b/development/xemacs/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+xemacs: xemacs (XEmacs editor)
+xemacs:
+xemacs: Base binaries and support files for the XEmacs editor/environment.
+xemacs: This version requires X libraries installed but will run in a non-X
+xemacs: mode.
+xemacs:
+xemacs: XEmacs is a highly customizable open source text editor and app-
+xemacs: lication development system. It is protected under the GNU Public
+xemacs: License and related to other versions of Emacs, in particular GNU
+xemacs: Emacs. Its emphasis is on modern graphical user interface support
+xemacs: and an open software development model, similar to Linux.
diff --git a/development/xemacs/xemacs.SlackBuild b/development/xemacs/xemacs.SlackBuild
new file mode 100644
index 000000000000..b795d8000f0e
--- /dev/null
+++ b/development/xemacs/xemacs.SlackBuild
@@ -0,0 +1,129 @@
+#!/bin/sh
+
+# Slackware build script for XEmacs
+
+# Created by Sean MacLennan <xemacs@seanm.ca>
+# Modified by Robby Workman <rworkman@slackbuilds.org> for
+# better consistency with existing SBo scripts...
+
+PRGNAM=xemacs
+VERSION=21.4.22
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+BASE_VERSION=2.27
+EFS_VERSION=1.34
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ # XEmacs will not run compiled -fPIC
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX="64"
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $OUPUT $PKG
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xf $CWD/$PRGNAM-$VERSION.tar.bz2
+cd $PRGNAM-$VERSION
+chown -R root.root .
+
+# These patches allow building xemacs with xemacs installed
+# dump-paths patch from Enrico Scholz
+patch -p1 < $CWD/patches/dump-paths.patch || exit 1
+patch -p1 < $CWD/patches/check-features.patch || exit 1
+
+# XEmacs is hardcoded to look in lib
+if [ "$ARCH" = "x86_64" ]; then
+ patch -p1 < $CWD/patches/lib64.patch
+fi
+
+# Sighhhhhh.....
+patch -p1 < $CWD/patches/mod-shift.patch
+
+CFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib$LIBDIRSUFFIX \
+ --datadir=/usr/lib${LIBDIRSUFFIX} \
+ --with-sound=none \
+ --with-file-coding \
+ $ARCH-slackware-linux
+
+make
+make install \
+ prefix=$PKG/usr \
+ libdir=$PKG/usr/lib${LIBDIRSUFFIX} \
+ datadir=$PKG/usr/lib${LIBDIRSUFFIX}
+
+# Add minimal packages to allow package tools to work
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/xemacs/xemacs-packages
+tar xf $CWD/xemacs-base-$BASE_VERSION-pkg.tar.gz -C $PKG/usr/lib${LIBDIRSUFFIX}/xemacs/xemacs-packages
+tar xf $CWD/efs-$EFS_VERSION-pkg.tar.gz -C $PKG/usr/lib${LIBDIRSUFFIX}/xemacs/xemacs-packages
+# Make sure the .elc files are newer
+find $PKG/usr/lib${LIBDIRSUFFIX}/xemacs/xemacs-packages -name \*.elc -exec touch {} \;
+
+make datadir=$PKG/usr/lib${LIBDIRSUFFIX} gzip-el
+
+# What is this 2.3M for?????
+rm -rf $PKG/usr/lib$LIBDIRSUFFIX/xemacs-$VERSION/$ARCH-slackware-linux/include
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | \
+ grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+gzip $PKG/usr/man/*/*
+
+# gzip info stuff, but not the dir file
+gzip -9 $PKG/usr/lib${LIBDIRSUFFIX}/xemacs-$VERSION/info/*
+gzip -d $PKG/usr/lib${LIBDIRSUFFIX}/xemacs-$VERSION/info/dir.gz
+
+# Fixup some conflicts with stock Slackware packages
+for file in b2m ctags etags rcs-checkin ; do mv $PKG/usr/bin/$file{,-xemacs} ; done
+for file in ctags etags ; do mv $PKG/usr/man/man1/$file{,-xemacs}.1.gz ; done
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ BUGS CHANGES-* COPYING ChangeLog Installation PROBLEMS README* \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cat <<EOF >$PKG/install/doinst.sh
+# Make sure the elc files are newer than the el files
+touch usr/lib${LIBDIRSUFFIX}/xemacs-$VERSION/lisp/*.elc
+touch usr/lib${LIBDIRSUFFIX}/xemacs-$VERSION/lisp/*/*.elc
+touch usr/lib${LIBDIRSUFFIX}/xemacs/xemacs-packages/lisp/xemacs-base/*.elc
+touch usr/lib${LIBDIRSUFFIX}/xemacs/xemacs-packages/lisp/efs/*.elc
+EOF
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/$PRGNAM-${VERSION}
+ rm -rf $PKG
+fi
diff --git a/development/xemacs/xemacs.info b/development/xemacs/xemacs.info
new file mode 100644
index 000000000000..06b5f7053973
--- /dev/null
+++ b/development/xemacs/xemacs.info
@@ -0,0 +1,14 @@
+PRGNAM="xemacs"
+VERSION="21.4.22"
+HOMEPAGE="http://xemacs.org/"
+DOWNLOAD="http://ftp.xemacs.org/pub/xemacs/stable/xemacs-21.4.22.tar.bz2 \
+ http://ftp.xemacs.org/pub/xemacs/packages/efs-1.34-pkg.tar.gz \
+ http://ftp.xemacs.org/pub/xemacs/packages/xemacs-base-2.27-pkg.tar.gz"
+MD5SUM="060bf7565cb3233c6e7071354e9a23a4 \
+ 1f424efc4a55b8da53a7d01136793c9d \
+ 2ec18d0faf31e2d343f558c730474a63"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Sean MacLennan"
+EMAIL="xemacs@seanm.ca"
+APPROVED="rworkman"