From 61faa8b74d6fe94a393ac57ab8258933a3c08e6f Mon Sep 17 00:00:00 2001 From: Sean MacLennan Date: Sat, 12 Nov 2011 00:10:23 -0600 Subject: [PATCH] development/xemacs: Added (XEmacs editor) Signed-off-by: Robby Workman --- development/xemacs/README | 5 + .../xemacs/patches/check-features.patch | 11 ++ development/xemacs/patches/dump-paths.patch | 27 ++++ development/xemacs/patches/lib64.patch | 29 ++++ development/xemacs/patches/mod-shift.patch | 30 ++++ development/xemacs/slack-desc | 19 +++ development/xemacs/xemacs.SlackBuild | 129 ++++++++++++++++++ development/xemacs/xemacs.info | 14 ++ 8 files changed, 264 insertions(+) create mode 100644 development/xemacs/README create mode 100644 development/xemacs/patches/check-features.patch create mode 100644 development/xemacs/patches/dump-paths.patch create mode 100644 development/xemacs/patches/lib64.patch create mode 100644 development/xemacs/patches/mod-shift.patch create mode 100644 development/xemacs/slack-desc create mode 100644 development/xemacs/xemacs.SlackBuild create mode 100644 development/xemacs/xemacs.info diff --git a/development/xemacs/README b/development/xemacs/README new file mode 100644 index 0000000000..3d0e2cc39b --- /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 0000000000..7da578a4b4 --- /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 0000000000..d5278013d8 --- /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 +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 0000000000..41f985bd43 --- /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 0000000000..9ca292a7ef --- /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 0000000000..a1ed90a44a --- /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 0000000000..b795d8000f --- /dev/null +++ b/development/xemacs/xemacs.SlackBuild @@ -0,0 +1,129 @@ +#!/bin/sh + +# Slackware build script for XEmacs + +# Created by Sean MacLennan +# Modified by Robby Workman 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 <$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 0000000000..06b5f70539 --- /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"