summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2013-12-01 14:09:53 +0100
committerGravatar Tom Willemse2013-12-01 14:09:53 +0100
commit13608297c67fc905f630e9b142d3915d0eec5d6a (patch)
tree456edd769456271df506c9672cf8e1706592a92b
parentc8adcf31fbe7c01c367259d3f284d41c4e066233 (diff)
downloadpkgbuilds-13608297c67fc905f630e9b142d3915d0eec5d6a.tar.gz
pkgbuilds-13608297c67fc905f630e9b142d3915d0eec5d6a.zip
Add sbcl
-rw-r--r--sbcl/PKGBUILD71
-rw-r--r--sbcl/arch-fixes.lisp21
-rw-r--r--sbcl/sbcl.install18
-rw-r--r--sbcl/texinfo-4.13a-data_types.patch32
4 files changed, 142 insertions, 0 deletions
diff --git a/sbcl/PKGBUILD b/sbcl/PKGBUILD
new file mode 100644
index 0000000..4c03f04
--- /dev/null
+++ b/sbcl/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 196298 2013-10-11 08:53:55Z juergen $
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Daniel White <daniel@whitehouse.id.au>
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Leslie Polzer (skypher)
+
+pkgname=sbcl
+pkgver=1.1.14
+pkgrel=1
+pkgdesc="Steel Bank Common Lisp"
+url="http://www.sbcl.org/"
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('glibc' 'zlib')
+provides=('common-lisp' 'cl-asdf')
+makedepends=('sbcl')
+install=sbcl.install
+source=("http://downloads.sourceforge.net/project/sbcl/sbcl/$pkgver/$pkgname-$pkgver-source.tar.bz2"
+ "arch-fixes.lisp")
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ export CFLAGS+=" -D_GNU_SOURCE -fno-omit-frame-pointer -DSBCL_HOME=/usr/lib/sbcl"
+ export GNUMAKE="make"
+
+ # build system uses LINKFLAGS and OS_LIBS to build LDFLAGS
+ export LINKFLAGS="$LDFLAGS"
+ unset LDFLAGS
+
+ # Make a multi-threaded SBCL, disable LARGEFILE
+ cat >customize-target-features.lisp <<EOF
+(lambda (features)
+ (flet ((enable (x) (pushnew x features))
+ (disable (x) (setf features (remove x features))))
+ (enable :sb-thread)
+ (enable :sb-core-compression)
+ (disable :largefile)))
+EOF
+
+ sh make.sh sbcl --prefix=/usr
+ make -C doc/manual info
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # cannot have both SBCL_HOME and INSTALL_ROOT
+ SBCL_HOME="" INSTALL_ROOT="$pkgdir/usr" sh install.sh
+
+ src/runtime/sbcl --core output/sbcl.core --script "${srcdir}/arch-fixes.lisp"
+ mv sbcl-new.core "${pkgdir}/usr/lib/sbcl/sbcl.core"
+
+ # sources
+ mkdir -p "$pkgdir/usr/share/sbcl-source"
+ cp -R -t "$pkgdir/usr/share/sbcl-source" "$srcdir/$pkgname-$pkgver/"{src,contrib}
+
+ # license
+ install -D -m644 "$srcdir/$pkgname-$pkgver/COPYING" \
+ "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+
+ # drop unwanted files
+ find "$pkgdir" \( -name Makefile -o -name .cvsignore \) -delete
+ find "$pkgdir/usr/share/sbcl-source" -type f \
+ \( -name \*.fasl -o -name \*.o -o -name \*.log -o -name \*.so -o -name a.out \) -delete
+
+ rm "$pkgdir/usr/share/sbcl-source/src/runtime/sbcl"{,.nm}
+
+}
+md5sums=('e3f933f7cb0053c3438d86e90f5bd73b'
+ '7ac0c1936547f4278198b8bf7725204d')
diff --git a/sbcl/arch-fixes.lisp b/sbcl/arch-fixes.lisp
new file mode 100644
index 0000000..bdc6313
--- /dev/null
+++ b/sbcl/arch-fixes.lisp
@@ -0,0 +1,21 @@
+(in-package "COMMON-LISP-USER")
+
+(let* ((parent (make-pathname :directory '(:absolute "usr" "share" "sbcl-source")))
+ (src
+ (merge-pathnames
+ (make-pathname :directory '(:relative "src" :wild-inferiors)
+ :name :wild :type :wild)
+ parent))
+ (contrib
+ (merge-pathnames
+ (make-pathname :directory '(:relative "contrib" :wild-inferiors)
+ :name :wild :type :wild)
+ parent)))
+ (setf (logical-pathname-translations "SYS")
+ `(("SYS:SRC;**;*.*.*" ,src)
+ ("SYS:CONTRIB;**;*.*.*" ,contrib))))
+
+(ignore-errors
+ (sb-ext:gc :full t)
+ (sb-ext:enable-debugger)
+ (sb-ext:save-lisp-and-die "sbcl-new.core"))
diff --git a/sbcl/sbcl.install b/sbcl/sbcl.install
new file mode 100644
index 0000000..83ee3c0
--- /dev/null
+++ b/sbcl/sbcl.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(asdf.info sbcl.info)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/sbcl/texinfo-4.13a-data_types.patch b/sbcl/texinfo-4.13a-data_types.patch
new file mode 100644
index 0000000..2a87c21
--- /dev/null
+++ b/sbcl/texinfo-4.13a-data_types.patch
@@ -0,0 +1,32 @@
+diff -up texinfo-4.13/info/window.c_old texinfo-4.13/info/window.c
+--- texinfo-4.13/info/window.c_old 2009-08-04 13:46:15.000000000 +0200
++++ texinfo-4.13/info/window.c 2009-08-04 13:47:29.000000000 +0200
+@@ -1581,7 +1581,7 @@ process_node_text (WINDOW *win, char *st
+ const char *carried_over_ptr;
+ size_t carried_over_len, carried_over_count;
+ const char *cur_ptr = mbi_cur_ptr (iter);
+- int cur_len = mb_len (mbi_cur (iter));
++ size_t cur_len = mb_len (mbi_cur (iter));
+ int replen;
+ int delim = 0;
+ int rc;
+@@ -1754,7 +1754,7 @@ clean_manpage (char *manpage)
+ mbi_advance (iter))
+ {
+ const char *cur_ptr = mbi_cur_ptr (iter);
+- int cur_len = mb_len (mbi_cur (iter));
++ size_t cur_len = mb_len (mbi_cur (iter));
+
+ if (cur_len == 1)
+ {
+@@ -1852,8 +1852,8 @@ window_scan_line (WINDOW *win, int line,
+ mbi_advance (iter))
+ {
+ const char *cur_ptr = mbi_cur_ptr (iter);
+- int cur_len = mb_len (mbi_cur (iter));
+- int replen;
++ size_t cur_len = mb_len (mbi_cur (iter));
++ size_t replen;
+
+ if (cur_ptr >= endp)
+ break;