nixpkgs/pkgs/development/interpreters/clisp/2.44.1.nix
Franz Pletz aff1f4ab94 Use general hardening flag toggle lists
The following parameters are now available:

  * hardeningDisable
    To disable specific hardening flags
  * hardeningEnable
    To enable specific hardening flags

Only the cc-wrapper supports this right now, but these may be reused by
other wrappers, builders or setup hooks.

cc-wrapper supports the following flags:

  * fortify
  * stackprotector
  * pie (disabled by default)
  * pic
  * strictoverflow
  * format
  * relro
  * bindnow
2016-03-05 18:55:26 +01:00

61 lines
1.9 KiB
Nix

{ stdenv, fetchurl, libsigsegv, gettext, ncurses, readline, libX11
, libXau, libXt, pcre, zlib, libXpm, xproto, libXext, xextproto
, libffi, libffcall, coreutils }:
stdenv.mkDerivation rec {
v = "2.44.1";
name = "clisp-${v}";
src = fetchurl {
url = "mirror://gnu/clisp/release/${v}/${name}.tar.gz";
sha256 = "0rkp6j6rih4s5d9acifh7pi4b9xfgcspif512l269dqy9qgyy4j1";
};
buildInputs =
[ libsigsegv gettext ncurses readline libX11 libXau libXt pcre
zlib libXpm xproto libXext xextproto libffi libffcall ];
patches = [ ./bits_ipctypes_to_sys_ipc.patch ]; # from Gentoo
# 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 -e 's@9090@64237@g' -i tests/socket.tst
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 =
''
--with-readline builddir --with-dynamic-ffi
--with-module=clx/new-clx --with-module=i18n --with-module=bindings/glibc
--with-module=pcre --with-module=rawsock --with-module=readline
--with-module=syscalls --with-module=wildcard --with-module=zlib
'';
preBuild = ''
sed -e '/avcall.h/a\#include "config.h"' -i src/foreign.d
cd builddir
'';
NIX_CFLAGS_COMPILE="-O0";
hardeningDisable = [ "format" ];
# 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";
};
}