Add SLIB, a portable Scheme library.
svn path=/nixpkgs/trunk/; revision=17546
This commit is contained in:
parent
b62af15130
commit
1a9597827d
@ -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
|
59
pkgs/development/libraries/slib/default.nix
Normal file
59
pkgs/development/libraries/slib/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user