summaryrefslogtreecommitdiffstats
path: root/source/d/clisp
diff options
context:
space:
mode:
Diffstat (limited to 'source/d/clisp')
-rwxr-xr-xsource/d/clisp/clisp.SlackBuild107
-rw-r--r--source/d/clisp/clisp.c_data.compact_empty_buckets.diff12
-rw-r--r--source/d/clisp/ffcall-arm.patch93
-rw-r--r--source/d/clisp/slack-desc10
-rwxr-xr-xsource/d/clisp/source.download17
5 files changed, 88 insertions, 151 deletions
diff --git a/source/d/clisp/clisp.SlackBuild b/source/d/clisp/clisp.SlackBuild
index f98057df1..4205aa137 100755
--- a/source/d/clisp/clisp.SlackBuild
+++ b/source/d/clisp/clisp.SlackBuild
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
-# Copyright 2008, 2009, 2010, 2013, 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2013, 2015, 2017, 2018 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,26 +20,35 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+cd $(dirname $0) ; CWD=$(pwd)
-VERSION=2.49
-DIRNAME=2.49
-BUILD=${BUILD:-3}
+PKGNAM=clisp
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
# Bundled libraries:
-FFCALLVER=20120424cvs
+FFCALLVER=2.1
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -54,7 +63,6 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-clisp
@@ -64,12 +72,9 @@ mkdir -p $TMP $PKG
#=================================================================
# Build ffcall - needed for --dynamic-ffi with clisp.
cd $TMP
-rm -rf ffcall*
-tar xvf $CWD/ffcall-$FFCALLVER.tar.?z* || exit 1
-cd ffcall* || exit 1
-
-# Not sure if this is useful or not, but I'll leave it for MoZes:
-zcat $CWD/ffcall-arm.patch.gz | patch -p1 --verbose || exit 1
+rm -rf libffcall-$FFCALLVER
+tar xvf $CWD/libffcall-$FFCALLVER.tar.?z || exit 1
+cd libffcall-$FFCALLVER || exit 1
chown -R root:root .
find . \
@@ -83,22 +88,21 @@ CFLAGS="$SLKCFLAGS" \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
+ --enable-static=yes \
+ --enable-shared=no \
--build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-# We need ffcall installed in order to build clisp:
-make install
-
-# Don't need this:
-rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+# We need libffcall installed in order to build clisp:
+make install || exit 1
# Move docs around:
-mkdir -pm755 $PKG/usr/doc/clisp-$VERSION/ffcall-$FFCALLVER
+mkdir -pm755 $PKG/usr/doc/clisp-$VERSION/libffcall-$FFCALLVER
install -vpm644 README NEWS COPYING \
- $PKG/usr/doc/clisp-$VERSION/ffcall-$FFCALLVER
-mv -f $PKG/usr/share/html/* $PKG/usr/doc/clisp-$VERSION/ffcall-$FFCALLVER
+ $PKG/usr/doc/clisp-$VERSION/libffcall-$FFCALLVER
+mv -f $PKG/usr/share/html/* $PKG/usr/doc/clisp-$VERSION/libffcall-$FFCALLVER
rmdir $PKG/usr/share/html/
rmdir $PKG/usr/share/
@@ -107,8 +111,8 @@ rmdir $PKG/usr/share/
# OK, now we compile CLISP:
cd $TMP
rm -rf clisp-$VERSION
-tar xvf $CWD/clisp-$VERSION.tar.?z* || exit 1
-cd clisp-$DIRNAME || exit 1
+tar xvf $CWD/clisp-$VERSION.tar.?z || exit 1
+cd clisp-$VERSION || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -116,48 +120,51 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# Fix build failure with missing struct member:
+zcat $CWD/clisp.c_data.compact_empty_buckets.diff.gz | patch -p1 --verbose || exit
+
+# I'll be unsafe if I want to:
+export FORCE_UNSAFE_CONFIGURE=1
+
+# --cbc instead of --config below will check the build.
+# --cbcx will do even more extra checking.
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--docdir=/usr/doc/clisp-$VERSION \
+ --with-module=asdf \
+ --with-module=berkeley-db \
+ --with-module=bindings/glibc \
--with-module=clx/new-clx \
+ --with-module=dbus \
+ --with-module=gdbm \
+ --with-module=gtk2 \
--with-module=pcre \
--with-module=rawsock \
- --with-module=wildcard \
--with-module=zlib \
- --cbc with-gcc-wall \
+ --config builddir \
--with-dynamic-ffi || exit 1
-cd with-gcc-wall
-./makemake \
- --with-dynamic-ffi \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --with-module=clx/new-clx \
- --with-module=pcre \
- --with-module=rawsock \
- --with-module=wildcard \
- --with-module=zlib \
- --srcdir=../src \
- > Makefile
-make config.lisp
-make init
-make allc
-make $NUMJOBS lisp.run
-make interpreted.mem
-make halfcompiled.mem
-make lispinit.mem
-make manual
-make modular
+# Build:
+make $NUMJOBS -C builddir || make -C builddir || exit 1
-make install DESTDIR=$PKG || exit 1
+# Install into package:
+make -C builddir install DESTDIR=$PKG || exit 1
# Strip stuff:
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+# Don't ship .la files:
+pushd $PKG
+ for lafile in usr/lib${LIBDIRSUFFIX}/*.la ; do
+ rm -f ${lafile} /${lafile}
+ done
+popd
+
#mv $PKG/usr/share/doc/clisp/* $PKG/usr/doc/clisp-$VERSION
rm -r $PKG/usr/share/doc
diff --git a/source/d/clisp/clisp.c_data.compact_empty_buckets.diff b/source/d/clisp/clisp.c_data.compact_empty_buckets.diff
new file mode 100644
index 000000000..0a3518487
--- /dev/null
+++ b/source/d/clisp/clisp.c_data.compact_empty_buckets.diff
@@ -0,0 +1,12 @@
+# Remove non-existant struct member:
+
+--- ./modules/berkeley-db/bdb.c.orig 2018-02-04 13:38:36.000000000 -0600
++++ ./modules/berkeley-db/bdb.c 2018-02-04 15:29:06.147941837 -0600
+@@ -2216,7 +2216,6 @@
+ c_data.compact_timeout = timeout;
+ c_data.compact_pages = pages;
+ SYSCALL(db->compact,(db,txn,pstart,pstop,&c_data,flags,&end));
+- pushSTACK(uint32_to_I(c_data.compact_empty_buckets));
+ pushSTACK(uint32_to_I(c_data.compact_pages_free));
+ pushSTACK(uint32_to_I(c_data.compact_pages_examine));
+ pushSTACK(uint32_to_I(c_data.compact_levels));
diff --git a/source/d/clisp/ffcall-arm.patch b/source/d/clisp/ffcall-arm.patch
deleted file mode 100644
index 8e8509b1e..000000000
--- a/source/d/clisp/ffcall-arm.patch
+++ /dev/null
@@ -1,93 +0,0 @@
---- ./callback/trampoline_r/cache-armel.c.orig 2009-04-27 10:44:13.000000000 -0600
-+++ ./callback/trampoline_r/cache-armel.c 2013-09-06 11:00:00.000000000 -0600
-@@ -12,8 +12,9 @@
-
- void __TR_clear_cache (char *first_addr, char *last_addr)
- {
-- register unsigned long _beg __asm ("a1") = first_addr;
-- register unsigned long _end __asm ("a2") = last_addr;
-+ register unsigned long _beg __asm ("a1") = (unsigned long) first_addr;
-+ register unsigned long _end __asm ("a2") = (unsigned long) last_addr;
- register unsigned long _flg __asm ("a3") = 0;
-- __asm __volatile__ ("swi 0x9f0002" : : "r" (_beg), "r" (_end), "r" (_flg));
-+ register unsigned long _sys __asm ("r7") = __ARM_NR_cacheflush;
-+ __asm __volatile__ ("swi 0x0" : "=r" (_beg) : "0" (_beg), "r" (_end), "r" (_flg), "r" (_sys));
- }
---- ./callback/trampoline_r/cache-armel.s.orig 2009-04-27 10:44:13.000000000 -0600
-+++ ./callback/trampoline_r/cache-armel.s 2013-09-06 13:00:00.000000000 -0600
-@@ -1,5 +1,5 @@
-- .cpu arm10tdmi
-- .fpu softvfp
-+ .arch armv7-a
-+ .fpu vfpv3-d16
- .file "cache-armel.c"
- .text
- .align 2
-@@ -9,10 +9,13 @@ __TR_clear_cache:
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
-- @ lr needed for prologue
-+ str r7, [sp, #-4]!
- mov r2, #0
-+ mov r7, #2
-+ movt r7, 15
- #APP
-- swi 0x9f0002
-+ swi 0x0
-+ ldr r7, [sp], #4
- bx lr
- .size __TR_clear_cache, .-__TR_clear_cache
-- .ident "GCC: (GNU) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)"
-+ .ident "GCC: (GNU) 4.8.1 20130829 (Red Hat 4.8.1-7)"
---- ./trampoline/cache-armel.c.orig 2009-04-27 10:44:14.000000000 -0600
-+++ ./trampoline/cache-armel.c 2013-09-06 11:00:00.000000000 -0600
-@@ -12,8 +12,9 @@
-
- void __TR_clear_cache (char *first_addr, char *last_addr)
- {
-- register unsigned long _beg __asm ("a1") = first_addr;
-- register unsigned long _end __asm ("a2") = last_addr;
-+ register unsigned long _beg __asm ("a1") = (unsigned long) first_addr;
-+ register unsigned long _end __asm ("a2") = (unsigned long) last_addr;
- register unsigned long _flg __asm ("a3") = 0;
-- __asm __volatile__ ("swi 0x9f0002" : : "r" (_beg), "r" (_end), "r" (_flg));
-+ register unsigned long _sys __asm ("r7") = __ARM_NR_cacheflush;
-+ __asm __volatile__ ("swi 0x0" : "=r" (_beg) : "0" (_beg), "r" (_end), "r" (_flg), "r" (_sys));
- }
---- ./trampoline/cache-armel.s.orig 2009-04-27 10:44:14.000000000 -0600
-+++ ./trampoline/cache-armel.s 2013-09-06 13:00:00.000000000 -0600
-@@ -1,24 +1,21 @@
-- .cpu arm10tdmi
-- .fpu softvfp
-+ .arch armv7-a
-+ .fpu vfpv3-d16
- .file "cache-armel.c"
- .text
- .align 2
- .global __TR_clear_cache
- .type __TR_clear_cache, %function
- __TR_clear_cache:
-- @ args = 0, pretend = 0, frame = 8
-+ @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
-- sub sp, sp, #8
-- @ lr needed for prologue
-- str r0, [sp, #4]
-- str r1, [sp, #0]
-- ldr r0, [sp, #4]
-- ldr r1, [sp, #0]
-+ str r7, [sp, #-4]!
- mov r2, #0
-+ mov r7, #2
-+ movt r7, 15
- #APP
-- swi 0x9f0002
-- add sp, sp, #8
-+ swi 0x0
-+ ldr r7, [sp], #4
- bx lr
- .size __TR_clear_cache, .-__TR_clear_cache
-- .ident "GCC: (GNU) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)"
-+ .ident "GCC: (GNU) 4.8.1 20130829 (Red Hat 4.8.1-7)"
diff --git a/source/d/clisp/slack-desc b/source/d/clisp/slack-desc
index 5fb2f1954..5dc55efad 100644
--- a/source/d/clisp/slack-desc
+++ b/source/d/clisp/slack-desc
@@ -1,8 +1,8 @@
# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
+# 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
+# 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 ':'.
|-----handy-ruler------------------------------------------------------|
@@ -13,7 +13,7 @@ clisp: GNU CLISP is a Common Lisp implementation by Bruno Haible of Karlsruhe
clisp: University and Michael Stoll of Munich University, both in Germany.
clisp: It mostly supports the Lisp described in the ANSI Common Lisp standard.
clisp: The user interface comes in German, English, French, Spanish, Dutch
-clisp: and Russian. GNU CLISP includes an interpreter, a compiler, a
+clisp: and Russian. GNU CLISP includes an interpreter, a compiler, a
clisp: debugger, a large subset of CLOS, a foreign language interface and a
-clisp: socket interface. An X11 interface is available through CLX and
+clisp: socket interface. An X11 interface is available through CLX and
clisp: Garnet.
diff --git a/source/d/clisp/source.download b/source/d/clisp/source.download
index 4de176999..06bc8c9b2 100755
--- a/source/d/clisp/source.download
+++ b/source/d/clisp/source.download
@@ -1,3 +1,14 @@
-# http://www.haible.de/bruno/packages-ffcall-README.html
-# wget -c http://www.haible.de/bruno/gnu/ffcall-1.10.tar.gz
-# wget -c ftp://download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/ffcall-1.10-2.20080704cvs.fc10.src.rpm
+# Pull the latest clisp sources from the upstream mercurial repository:
+rm -rf clisp-2.49
+hg clone http://hg.code.sf.net/p/clisp/clisp clisp-2.49
+# Determine date and changeset for tarball labeling:
+DATE="$(date -d "$( cd clisp-2.49 ; hg parent | grep date: | cut -b 14- | cut -f 1 -d +)" +"%Y%m%d")"
+CHANGESET="$( cd clisp-2.49 ; hg parent | grep changeset: | cut -f 3 -d :)"
+# Don't package .hg:
+rm -fr clisp-2.49/.hg*
+# Create tarball:
+mv clisp-2.49 clisp-2.49.${DATE}.${CHANGESET}
+tar cf clisp-2.49.${DATE}.${CHANGESET}.tar clisp-2.49.${DATE}.${CHANGESET}
+plzip -9 -n 6 clisp-2.49.${DATE}.${CHANGESET}.tar
+# Clean up:
+rm -rf clisp-2.49.${DATE}.${CHANGESET}