diff --git a/pkgs/development/interpreters/clisp/2.33.2.nix b/pkgs/development/interpreters/clisp/2.33.2.nix new file mode 100644 index 000000000000..18b325684ca5 --- /dev/null +++ b/pkgs/development/interpreters/clisp/2.33.2.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchurl, libsigsegv, gettext, ncurses, readline, libX11 +, libXau, libXt, pcre, zlib, libXpm, xproto, libXext, xextproto +, libffi, libffcall, coreutils, automake, autoconf, linuxHeaders +, groff +}: + +stdenv.mkDerivation rec { + version = "2.33.2"; + name = "clisp-${version}"; + + src = fetchurl { + url = "mirror://gnu/clisp/release/${version}/${name}.tar.gz"; + sha256 = "0rqyggviixaa68n5ll092ll4a2xy4y7jraq65l0gn0hkjhjnm5zh"; + }; + + buildInputs = + [ libsigsegv gettext ncurses readline libX11 libXau libXt pcre + zlib libXpm xproto libXext xextproto libffi libffcall + automake autoconf groff + ] + ++ (stdenv.lib.optional stdenv.isLinux linuxHeaders) + ; + + # First, replace port 9090 (rather low, can be used) + # with 64237 (much higher, IANA private area, not + # anything rememberable). + # Also remove reference to a type that disappeared from recent glibc + # (seems the correct thing to do, found no reference to any solution) + postPatch = '' + sed -i 's@/bin/pwd@${coreutils}&@' src/clisp-link.in + find . -type f | xargs sed -e 's/-lICE/-lXau &/' -i + + substituteInPlace modules/bindings/glibc/linux.lisp --replace "(def-c-type __swblk_t)" "" + ''; + + configureFlags = + '' + builddir + --with-readline --with-ffcall --with-dynamic-ffi + --with-module=readline --with-module=i18n --with-module=pcre + --with-module=syscalls --with-modules=zlib --with-module=curses + ''; + + preBuild = '' + echo Pre-build starting! + sed -e '/avcall.h/a\#include "config.h"' -i src/foreign.d + sed -e '/asm\/page.h/d' -i src/unix.d + cd builddir + ./makemake $configureFlags > Makefile + make config.lisp + cat config.lisp + ''; + + NIX_CFLAGS_COMPILE="-O0 -lreadline -lncursesw"; + + # TODO : make mod-check fails + doCheck = false; + + meta = { + description = "ANSI Common Lisp Implementation"; + homepage = http://clisp.cons.org; + maintainers = [stdenv.lib.maintainers.raskin]; + platforms = stdenv.lib.platforms.linux; + branch = "2.44"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 850813001762..78d1b57b4079 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3661,7 +3661,7 @@ let sbclBootstrap = callPackage ../development/compilers/sbcl/bootstrap.nix {}; sbcl = callPackage ../development/compilers/sbcl { - clisp = clisp; + clisp = clisp_2_33_2; }; # For ACL2 sbcl_1_2_0 = callPackage ../development/compilers/sbcl/1.2.0.nix { @@ -3768,7 +3768,8 @@ let clisp = callPackage ../development/interpreters/clisp { }; # compatibility issues in 2.47 - at list 2.44.1 is known good - # for sbcl bootstrap + # for sbcl bootstrap. + # SBCL page recommends 2.33.2, though. Not sure when was it last tested clisp_2_44_1 = callPackage ../development/interpreters/clisp/2.44.1.nix { libsigsegv = libsigsegv_25; };