From 856e5839e1102dcbe4f499c004b819d9dde10a26 Mon Sep 17 00:00:00 2001 From: muflax Date: Thu, 27 Nov 2014 22:48:07 +0000 Subject: [PATCH] ccl: 1.8 -> 1.10 (reapply after false revert) --- lib/maintainers.nix | 1 + pkgs/development/compilers/ccl/default.nix | 72 +++++++++++----------- pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 37 insertions(+), 38 deletions(-) diff --git a/lib/maintainers.nix b/lib/maintainers.nix index e64ecce1b4e..7ff3a25b3df 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -108,6 +108,7 @@ mornfall = "Petr Ročkai "; MP2E = "Cray Elliott "; msackman = "Matthew Sackman "; + muflax = "Stefan Dorn "; nathan-gs = "Nathan Bijnens "; nckx = "Tobias Geerinckx-Rice "; notthemessiah = "Brian Cohen "; diff --git a/pkgs/development/compilers/ccl/default.nix b/pkgs/development/compilers/ccl/default.nix index 7678c066df2..6ca11ef7aec 100644 --- a/pkgs/development/compilers/ccl/default.nix +++ b/pkgs/development/compilers/ccl/default.nix @@ -1,49 +1,47 @@ -a : -let - buildInputs = with a; [ - - ]; -in -rec { - version = "1.8"; - name = "ccl-${version}"; +{ stdenv, fetchsvn, gcc, glibc, m4 }: - /* There are also MacOS and FreeBSD and Windows versions */ - src = a.fetchurl { - url = "ftp://ftp.clozure.com/pub/release/${version}/${name}-linuxx86.tar.gz"; - sha256 = "1dgg6a8i2csa6xidsq66hbw7zx62gm2178hpkp88yyzgxylszp01"; +/* TODO: there are also MacOS, FreeBSD and Windows versions */ +assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux"; + +stdenv.mkDerivation rec { + name = "ccl-${version}"; + version = "1.10"; + revision = "16313"; + + src = fetchsvn { + url = http://svn.clozure.com/publicsvn/openmcl/release/1.10/linuxx86/ccl; + rev = revision; + sha256 = "11lmdvzj1mbm7mbr22vjbcrsvinyz8n32a91ms324xqdqpr82ifb"; }; - - inherit buildInputs; - configureFlags = []; - /* doConfigure should be removed if not needed */ - phaseNames = ["doUnpack" "doPatchElf" "doCopy"]; + buildInputs = [ gcc glibc m4 ]; - doCopy = a.fullDepEntry '' + CCL_RUNTIME = if stdenv.system == "x86_64-linux" then "lx86cl64" else "lx86cl"; + CCL_KERNEL = if stdenv.system == "x86_64-linux" then "linuxx8664" else "linuxx8632"; + + buildPhase = '' + sed -i lisp-kernel/${CCL_KERNEL}/Makefile -e's/svnversion/echo ${revision}/g' + + make -C lisp-kernel/${CCL_KERNEL} clean + make -C lisp-kernel/${CCL_KERNEL} all + + ./${CCL_RUNTIME} -n -b -e '(ccl:rebuild-ccl :full t)' -e '(ccl:quit)' + ''; + + installPhase = '' mkdir -p "$out/share" - cp -r . "$out/share/ccl-installation" + cp -r . "$out/share/ccl-installation" mkdir -p "$out/bin" - for i in $(find . -maxdepth 1 -type f -perm +111); do - echo -e '#! /bin/sh\n'"$out/share/ccl-installation/$(basename "$i")"'"$@"\n' > "$out"/bin/"$(basename "$i")" - chmod a+x "$out"/bin/"$(basename "$i")" - done - '' ["minInit" "doUnpack" "defEnsureDir"]; + echo -e '#!/bin/sh\n'"$out/share/ccl-installation/${CCL_RUNTIME}"' "$@"\n' > "$out"/bin/"${CCL_RUNTIME}" + chmod a+x "$out"/bin/"${CCL_RUNTIME}" + ''; - doPatchElf = a.fullDepEntry '' - patchelfFile="$(type -P patchelf)" - goodInterp="$(patchelf --print-interpreter "$patchelfFile")" - find . -type f -perm +111 -exec patchelf --set-interpreter "$goodInterp" '{}' ';' - '' ["minInit" "doUnpack"]; - meta = { description = "Clozure Common Lisp"; - maintainers = [ - a.lib.maintainers.raskin - ]; - platforms = with a.lib.platforms; - linux; + homepage = http://ccl.clozure.com/; + maintainers = with stdenv.lib.maintainers; [ raskin muflax ]; + platforms = stdenv.lib.platforms.linux; + license = stdenv.lib.licenses.lgpl21; }; } - diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 32837a7ef80..aaf4d5a348d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2933,7 +2933,7 @@ let chickenEggs = callPackage ../development/tools/egg2nix/chicken-eggs.nix { }; }; - ccl = builderDefsPackage ../development/compilers/ccl {}; + ccl = callPackage ../development/compilers/ccl { }; clang = wrapGCC llvmPackages.clang;