nixpkgs/pkgs/development/compilers/ccl/default.nix
2012-10-17 11:09:44 +04:00

50 lines
1.3 KiB
Nix

a :
let
buildInputs = with a; [
];
in
rec {
version = "1.8";
name = "ccl-${version}";
/* 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";
};
inherit buildInputs;
configureFlags = [];
/* doConfigure should be removed if not needed */
phaseNames = ["doUnpack" "doPatchElf" "doCopy"];
doCopy = a.fullDepEntry ''
mkdir -p "$out/share"
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"];
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;
};
}