summary refs log tree commit diff
path: root/pkgs/development/interpreters/j/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/interpreters/j/default.nix')
-rw-r--r--pkgs/development/interpreters/j/default.nix101
1 files changed, 36 insertions, 65 deletions
diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix
index d4a1ab85b13..4c064a42ebf 100644
--- a/pkgs/development/interpreters/j/default.nix
+++ b/pkgs/development/interpreters/j/default.nix
@@ -1,81 +1,52 @@
-x@{builderDefsPackage
-  , readline
-  , ...}:
-builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
-
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    baseName="j";
-    version="701_b";
-    name="${baseName}-${version}";
-    url="http://www.jsoftware.com/download/${baseName}${version}_source.tar.gz";
-    hash="1gmjlpxcd647x690c4dxnf8h6ays8ndir6cib70h3zfnkrc34cys";
-  };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+{ stdenv, fetchurl, readline }:
+
+stdenv.mkDerivation rec {
+  name = "j-${version}";
+  version = "701_b";
+  src = fetchurl {
+    url = "http://www.jsoftware.com/download/j${version}_source.tar.gz";
+    sha256 = "1gmjlpxcd647x690c4dxnf8h6ays8ndir6cib70h3zfnkrc34cys";
   };
-
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doUnpack" "doBuildJ" "doDeploy"];
-
-  bits = if a.stdenv.system == "i686-linux" then 
-    "32"
-  else if a.stdenv.system == "x86_64-linux" then
-    "64"
-  else 
-    throw "Oops, unknown system: ${a.stdenv.system}";
-
-  doBuildJ = a.fullDepEntry ''
-    sed -i bin/jconfig -e 's@bits=32@bits=${bits}@g; s@readline=0@readline=1@; s@LIBREADLINE=""@LIBREADLINE=" -lreadline "@'
+  buildInputs = [ readline ];
+  bits = if stdenv.is64bit then "64" else "32";
+
+  buildPhase = ''
+    sed -i bin/jconfig -e '
+        s@bits=32@bits=${bits}@g;
+        s@readline=0@readline=1@;
+        s@LIBREADLINE=""@LIBREADLINE=" -lreadline "@;
+        s@-W1,soname,libj.so@-Wl,-soname,libj.so@
+        '
     sed -i bin/build_libj -e 's@>& make.txt@ 2>\&1 | tee make.txt@'
 
     touch *.c *.h
-    sh bin/build_jconsole
-    sh bin/build_libj
-    sh bin/build_defs
-    sh bin/build_tsdll
+    sh -o errexit bin/build_jconsole
+    sh -o errexit bin/build_libj
+    sh -o errexit bin/build_defs
+    sh -o errexit bin/build_tsdll
 
-    sed -i j/bin/profile.ijs -e "s@userx=[.] *'.j'@userx=. '/.j'@; 
+    sed -i j/bin/profile.ijs -e "
+        s@userx=[.] *'.j'@userx=. '/.j'@;
         s@bin,'/profilex.ijs'@user,'/profilex.ijs'@ ;
 	/install=./ainstall=. install,'/share/j'
-	"
-  '' ["doUnpack" "addInputs" "minInit"];
+        "
+  '';
 
-  doDeploy = a.fullDepEntry ''
+  installPhase = ''
     mkdir -p "$out"
     cp -r j/bin "$out/bin"
     rm "$out/bin/profilex_template.ijs"
-    
+
     mkdir -p "$out/share/j"
 
     cp -r docs j/addons j/system "$out/share/j"
-  '' ["doUnpack" "doBuildJ" "minInit" "defEnsureDir"];
-      
-  meta = {
+  '';
+
+  meta = with stdenv.lib; {
     description = "J programming language, an ASCII-based APL successor";
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
-      linux;
-    license = a.lib.licenses.gpl3Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
+    license = licenses.gpl3Plus;
+    homepage = http://jsoftware.com/;
   };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://jsoftware.com/source.htm";
-    };
-  };
-}) x
-
+}