diff options
Diffstat (limited to 'extra/sbcl')
-rw-r--r-- | extra/sbcl/0001-Fix-version-string-parsing-for-Linux-3.0.patch | 43 | ||||
-rw-r--r-- | extra/sbcl/PKGBUILD | 71 |
2 files changed, 79 insertions, 35 deletions
diff --git a/extra/sbcl/0001-Fix-version-string-parsing-for-Linux-3.0.patch b/extra/sbcl/0001-Fix-version-string-parsing-for-Linux-3.0.patch new file mode 100644 index 000000000..fe5a807ee --- /dev/null +++ b/extra/sbcl/0001-Fix-version-string-parsing-for-Linux-3.0.patch @@ -0,0 +1,43 @@ +From b43c51beeb0569a38900e1e5a78606711f987742 Mon Sep 17 00:00:00 2001 +From: Paul Khuong <pvk@pvk.ca> +Date: Wed, 3 Aug 2011 10:20:41 -0400 +Subject: [PATCH] Fix version string parsing for Linux 3.0 + + Stop assuming the presence of minor and patch version numbers; missing + values are defaulted to 0 (e.g. 3.0.0). + + Reported by a few people on IRC. +--- + src/runtime/linux-os.c | 14 ++++++++++---- + 1 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/src/runtime/linux-os.c b/src/runtime/linux-os.c +index db72fa6..e262f41 100644 +--- a/src/runtime/linux-os.c ++++ b/src/runtime/linux-os.c +@@ -198,12 +198,18 @@ os_init(char *argv[], char *envp[]) + int patch_version; + char *p; + uname(&name); ++ + p=name.release; + major_version = atoi(p); +- p=strchr(p,'.')+1; +- minor_version = atoi(p); +- p=strchr(p,'.')+1; +- patch_version = atoi(p); ++ minor_version = patch_version = 0; ++ p=strchr(p,'.'); ++ if (p != NULL) { ++ minor_version = atoi(++p); ++ p=strchr(p,'.'); ++ if (p != NULL) ++ patch_version = atoi(++p); ++ } ++ + if (major_version<2) { + lose("linux kernel version too old: major version=%d (can't run in version < 2.0.0)\n", + major_version); +-- +1.7.6 + diff --git a/extra/sbcl/PKGBUILD b/extra/sbcl/PKGBUILD index 8f961492e..9c23c55fc 100644 --- a/extra/sbcl/PKGBUILD +++ b/extra/sbcl/PKGBUILD @@ -1,32 +1,37 @@ -# $Id: PKGBUILD 132801 2011-07-26 10:22:05Z juergen $ +# $Id: PKGBUILD 135444 2011-08-13 20:11:24Z dreisner $ # Contributor: John Proctor <jproctor@prium.net> # Contributor: Daniel White <daniel@whitehouse.id.au> # Maintainer: Juergen Hoetzel <juergen@archlinux.org> -# Contributor: Leslie Polzer (skypher) +# Contributor: Leslie Polzer (skypher) pkgname=sbcl pkgver=1.0.50 -pkgrel=1 +pkgrel=2 pkgdesc="Steel Bank Common Lisp" +url="http://www.sbcl.org/" arch=('i686' 'x86_64') license=('custom') depends=('glibc') provides=('common-lisp' 'cl-asdf') makedepends=('sbcl' 'texinfo') -source=("http://downloads.sourceforge.net/project/sbcl/sbcl/$pkgver/$pkgname-$pkgver-source.tar.bz2" "arch-fixes.lisp") -md5sums=('74ce9b24516885d066ec4287cde52e8c' - '7ac0c1936547f4278198b8bf7725204d') -url="http://www.sbcl.org/" install=sbcl.install +source=("http://downloads.sourceforge.net/project/sbcl/sbcl/$pkgver/$pkgname-$pkgver-source.tar.bz2" + "arch-fixes.lisp" + "0001-Fix-version-string-parsing-for-Linux-3.0.patch") +md5sums=('74ce9b24516885d066ec4287cde52e8c' + '7ac0c1936547f4278198b8bf7725204d' + '7af58d1de2d788ad6a8d82c89279a75f') build() { - export CFLAGS="${CFLAGS} -DSBCL_HOME=\\\"/usr/lib/sbcl\\\"" + cd "$srcdir/$pkgname-$pkgver" + + export CFLAGS+=" -DSBCL_HOME=\\\"/usr/lib/sbcl\\\"" export GNUMAKE="make -e" # build system uses LINKFLAGS and OS_LIBS to build LDFLAGS - export LINKFLAGS="$LD_FLAGS" + export LINKFLAGS="$LDFLAGS" unset LDFLAGS - cd ${startdir}/src/${pkgname}-${pkgver} + # Make a multi-threaded SBCL, disable LARGEFILE cat >customize-target-features.lisp <<EOF (lambda (features) @@ -36,38 +41,34 @@ build() { (disable :largefile))) EOF + # fix build against 3.0-ARCH + patch -Np1 < "$srcdir/0001-Fix-version-string-parsing-for-Linux-3.0.patch" + sh make.sh sbcl - mkdir -p ${startdir}/pkg/usr - pushd doc/manual - make info || return 1 - popd - INSTALL_ROOT=${startdir}/pkg/usr sh install.sh + make -C doc/manual info +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + + INSTALL_ROOT="$pkgdir/usr" sh install.sh src/runtime/sbcl --core output/sbcl.core --script ${startdir}/src/arch-fixes.lisp mv sbcl-new.core ${startdir}/pkg/usr/lib/sbcl/sbcl.core -# sources - mkdir -p ${startdir}/pkg/usr/share/sbcl-source - cp -R -t ${startdir}/pkg/usr/share/sbcl-source \ - ${startdir}/src/${pkgname}-${pkgver}/{src,contrib} + # sources + mkdir -p "$pkgdir/usr/share/sbcl-source" + cp -R -t "$pkgdir/usr/share/sbcl-source" "$srcdir/$pkgname-$pkgver/"{src,contrib} -# drop unwanted files - find ${startdir}/pkg/usr/share/sbcl-source -type f \ - -name \*.fasl -or \ - -name \*.o -or \ - -name \*.log -or \ - -name \*.so -or \ - -name a.out -delete - - rm ${startdir}/pkg/usr/share/sbcl-source/src/runtime/sbcl - rm ${startdir}/pkg/usr/share/sbcl-source/src/runtime/sbcl.nm + # license + install -D -m644 "$srcdir/$pkgname-$pkgver/COPYING" \ + "$pkgdir/usr/share/licenses/$pkgname/license.txt" - find ${startdir}/pkg \( -name Makefile -o -name .cvsignore \) -delete + # 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 $startdir/pkg/usr/share/info/dir - gzip -9nf $startdir/pkg/usr/share/info/* + rm "$pkgdir/usr/share/sbcl-source/src/runtime/sbcl"{,.nm} - # license - install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING \ - ${startdir}/pkg/usr/share/licenses/${pkgname}/license.txt } |