about summary refs log tree commit diff
path: root/pkgs/development/interpreters/tclreadline
diff options
context:
space:
mode:
authorFrancesco Gazzetta <fgaz@fgaz.me>2019-08-18 14:32:59 +0200
committerFrancesco Gazzetta <fgaz@fgaz.me>2020-12-06 23:31:32 +0100
commit9e28a219fa047d94bcc3e89a200ba727c6032672 (patch)
tree9b8cfc35a6cfc1273bdcab4d0863fa06b05dc176 /pkgs/development/interpreters/tclreadline
parent1e5a7a913514a8746ae94819c9591e13ed8f21f7 (diff)
tclreadline: init at 2.3.8
Diffstat (limited to 'pkgs/development/interpreters/tclreadline')
-rw-r--r--pkgs/development/interpreters/tclreadline/default.nix68
1 files changed, 68 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/tclreadline/default.nix b/pkgs/development/interpreters/tclreadline/default.nix
new file mode 100644
index 0000000000000..bbd34f71d22d6
--- /dev/null
+++ b/pkgs/development/interpreters/tclreadline/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, fetchFromGitHub
+, automake
+, autoconf
+, libtool
+, readline
+, tcl
+, tk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tclreadline";
+  version = "2.3.8";
+
+  src = fetchFromGitHub {
+    owner = "flightaware";
+    repo = "tclreadline";
+    rev = "v${version}";
+    sha256 = "18jl56p0hwgynxpvr0v7b5mvvzc1m64fn61c0957bgb45mc250yq";
+  };
+
+  nativeBuildInputs = [
+    automake
+    autoconf
+    libtool
+  ];
+  buildInputs = [
+    readline
+    tcl
+    tk
+  ];
+
+  preConfigure = "NOCONFIGURE=1 ./autogen.sh";
+
+  configureFlags = [
+    "--enable-tclshrl"
+    "--enable-wishrl"
+    "--with-tcl=${tcl}/lib"
+    "--with-tk=${tk}/lib"
+    "--with-readline-includes=${readline.dev}/include/readline"
+    "--with-libtool=${libtool}"
+  ];
+
+  # The provided makefile leaves a wrong reference to /build/ in RPATH,
+  # so we fix it after checking that everything is also present in $out
+  preFixup = stdenv.lib.optionalString stdenv.isLinux ''
+    needed_libraries=$(ls .libs | grep '\.\(so\|la\)$')
+    for lib in $needed_libraries; do
+      if ! ls $out/lib | grep "$lib"; then
+        echo "$lib was not installed correctly"
+        exit 1
+      fi
+    done
+    for executable in $out/bin/{wishrl,tclshrl}; do
+      patchelf --set-rpath \
+        "$(patchelf --print-rpath "$executable" | sed "s@$builddir/.libs@$out/lib@")" \
+        "$executable"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GNU readline for interactive tcl shells";
+    homepage = "https://github.com/flightaware/tclreadline";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}