summary refs log tree commit diff
path: root/pkgs/applications/science
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-04-22 18:43:40 -0500
committerMatthew Bauer <mjbauer95@gmail.com>2018-04-22 19:01:25 -0500
commit63507ada7d8d53434c5d01ab1a94bed8d1d66ee6 (patch)
tree0ae7a8c8ebf547feb8648b82354181b43357b845 /pkgs/applications/science
parente3239a266d158a58aa090c55c3cece0460265e9e (diff)
downloadnixlib-63507ada7d8d53434c5d01ab1a94bed8d1d66ee6.tar
nixlib-63507ada7d8d53434c5d01ab1a94bed8d1d66ee6.tar.gz
nixlib-63507ada7d8d53434c5d01ab1a94bed8d1d66ee6.tar.bz2
nixlib-63507ada7d8d53434c5d01ab1a94bed8d1d66ee6.tar.lz
nixlib-63507ada7d8d53434c5d01ab1a94bed8d1d66ee6.tar.xz
nixlib-63507ada7d8d53434c5d01ab1a94bed8d1d66ee6.tar.zst
nixlib-63507ada7d8d53434c5d01ab1a94bed8d1d66ee6.zip
calc: cleanup expression
Fixes #39321

(Still needs testing on Linux)
Diffstat (limited to 'pkgs/applications/science')
-rw-r--r--pkgs/applications/science/math/calc/default.nix62
1 files changed, 32 insertions, 30 deletions
diff --git a/pkgs/applications/science/math/calc/default.nix b/pkgs/applications/science/math/calc/default.nix
index efd38f053451..9d95960bde27 100644
--- a/pkgs/applications/science/math/calc/default.nix
+++ b/pkgs/applications/science/math/calc/default.nix
@@ -1,47 +1,49 @@
-{ stdenv, fetchurl, makeWrapper, glibc, readline, ncurses, utillinux }:
+{ stdenv, lib, fetchurl, utillinux, makeWrapper
+, enableReadline ? true, readline, ncurses }:
 
-with stdenv.lib;
-let
-  makeFlags = ''
-    INCDIR=${glibc.dev}/include \
-    BINDIR=$out/bin LIBDIR=$out/lib CALC_INCDIR=$out/include/calc CALC_SHAREDIR=$out/share/calc MANDIR=$out/share/man/man1 \
-    USE_READLINE=-DUSE_READLINE READLINE_LIB=-lreadline READLINE_EXTRAS='-lhistory -lncurses' \
-    TERMCONTROL=-DUSE_TERMIOS \
-  '';
-in
 stdenv.mkDerivation rec {
-
   name = "calc-${version}";
   version = "2.12.6.6";
 
   src = fetchurl {
-    url = "https://github.com/lcn2/calc/releases/download/${version}/${name}.tar.bz2";
+    urls = [
+      "https://github.com/lcn2/calc/releases/download/${version}/${name}.tar.bz2"
+      "http://www.isthe.com/chongo/src/calc/${name}.tar.bz2"
+    ];
     sha256 = "03sg1xhin6qsrz82scf96mmzw8lz1yj68rhj4p4npp4s0fawc9d5";
   };
 
-  buildInputs = [ makeWrapper readline ncurses utillinux ];
-
-  configurePhase = ''
-    sed -i 's/all: check_include/all:/' Makefile
-  '';
-
-  buildPhase = ''
-    make ${makeFlags}
-  '';
-
-  installPhase = ''
-    make install ${makeFlags}
-    wrapProgram $out/bin/calc --prefix LD_LIBRARY_PATH : $out/lib
+  patchPhase = ''
+    substituteInPlace Makefile \
+      --replace 'all: check_include' 'all:' \
+      --replace '-install_name ''${LIBDIR}/libcalc''${LIB_EXT_VERSION}' '-install_name ''${T}''${LIBDIR}/libcalc''${LIB_EXT_VERSION}' \
+      --replace '-install_name ''${LIBDIR}/libcustcalc''${LIB_EXT_VERSION}' '-install_name ''${T}''${LIBDIR}/libcustcalc''${LIB_EXT_VERSION}'
   '';
 
-  # Hack to avoid TMPDIR in RPATHs.
-  preFixup = ''rm -rf "$(pwd)" '';
-
-  meta = {
+  buildInputs = [ utillinux makeWrapper ]
+             ++ lib.optionals enableReadline [ readline ncurses ];
+
+  makeFlags = [
+    "T=$(out)"
+    "INCDIR=${lib.getDev stdenv.cc.libc}/include"
+    "BINDIR=/bin"
+    "LIBDIR=/lib"
+    "CALC_SHAREDIR=/share/calc"
+    "CALC_INCDIR=/include"
+    "MANDIR=/share/man/man1"
+
+    # Handle LDFLAGS defaults in calc
+    "DEFAULT_LIB_INSTALL_PATH=$(out)/lib"
+  ] ++ lib.optionals enableReadline [
+    "READLINE_LIB=-lreadline"
+    "USE_READLINE=-DUSE_READLINE"
+  ];
+
+  meta = with lib; {
     description = "C-style arbitrary precision calculator";
     homepage = http://www.isthe.com/chongo/tech/comp/calc/;
     license = licenses.lgpl21;
-    maintainers = [ ];
+    maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.all;
   };
 }