Add SLIB, a portable Scheme library.

svn path=/nixpkgs/trunk/; revision=17546
This commit is contained in:
Ludovic Courtès 2009-09-30 13:10:58 +00:00
parent b62af15130
commit 1a9597827d
3 changed files with 93 additions and 0 deletions

View File

@ -0,0 +1,29 @@
Write the catalog in under `(library-vicinity)', which is a subdir of $out,
rather than under `(implementation-vicinity)', which is a subdir of ${scheme}.
The downside is that we can't build an SLIB for several Schemes at the
same time.
--- slib/mklibcat.scm 2007-12-24 05:47:34.000000000 +0100
+++ slib/mklibcat.scm 2009-09-29 14:08:28.000000000 +0200
@@ -17,7 +17,7 @@
;promotional, or sales literature without prior written consent in
;each case.
-(let ((catpath (in-vicinity (implementation-vicinity) "slibcat")))
+(let ((catpath (in-vicinity (library-vicinity) "slibcat")))
(and (file-exists? catpath) (delete-file catpath))
(call-with-output-file catpath
(lambda (op)
--- slib/require.scm 2009-08-03 04:09:47.000000000 +0200
+++ slib/require.scm 2009-09-29 14:13:56.000000000 +0200
@@ -74,7 +74,7 @@
(define (catalog:get feature)
(if (not *catalog*)
- (let ((slibcat (catalog:try-read (implementation-vicinity) "slibcat")))
+ (let ((slibcat (catalog:try-read (library-vicinity) "slibcat")))
(cond ((not (catalog/require-version-match? slibcat))
(slib:load-source (in-vicinity (library-vicinity) "mklibcat"))
(set! slibcat

View File

@ -0,0 +1,59 @@
{ fetchurl, stdenv, unzip, scheme, texinfo }:
stdenv.mkDerivation rec {
name = "slib-3b2";
src = fetchurl {
url = "http://groups.csail.mit.edu/mac/ftpdir/scm/${name}.zip";
sha256 = "1s6a7f3ha2bhwj4nkg34n0j511ww1nlgrn5xis8k53l8ghdrrjxi";
};
patches = [ ./catalog-in-library-vicinity.patch ];
buildInputs = [ unzip scheme texinfo ];
configurePhase = ''
ensureDir "$out"
sed -i "Makefile" \
-e "s|^[[:blank:]]*prefix[[:blank:]]*=.*$|prefix = $out/|g"
'';
buildPhase = "make infoz";
installPhase = ''
make install
ln -s mklibcat{.scm,}
SCHEME_LIBRARY_PATH="$out/lib/slib" make catalogs
sed -i "$out/bin/slib" \
-e "/^SCHEME_LIBRARY_PATH/i export PATH=\"${scheme}/bin:$PATH\""
'';
# There's no test suite (?!).
doCheck = false;
meta = {
description = "The SLIB Portable Scheme Library";
longDescription = ''
SLIB is a portable library for the programming language Scheme. It
provides a platform independent framework for using packages of Scheme
procedures and syntax. As distributed, SLIB contains useful packages
for all Scheme implementations. Its catalog can be transparently
extended to accomodate packages specific to a site, implementation,
user, or directory.
SLIB supports Bigloo, Chez, ELK 3.0, Gambit 4.0, Guile, JScheme, Kawa,
Larceny, MacScheme, MIT/GNU Scheme, Pocket Scheme, RScheme, scheme->C,
Scheme48, SCM, SCM Mac, scsh, sisc, Stk, T3.1, umb-scheme, and VSCM.
'';
# Public domain + permissive (non-copyleft) licensing of some files.
license = "public domain";
homepage = http://people.csail.mit.edu/jaffer/SLIB;
maintainers = [ stdenv.lib.maintainers.ludo ];
};
}

View File

@ -4268,6 +4268,11 @@ let
inherit fetchurl stdenv ncurses pcre libpng zlib readline;
};
slibGuile = import ../development/libraries/slib {
inherit fetchurl stdenv unzip texinfo;
scheme = guile;
};
snack = import ../development/libraries/snack {
inherit fetchurl stdenv tcl tk pkgconfig x11;
# optional