about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/compilers/pakcs
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/pakcs')
-rw-r--r--nixpkgs/pkgs/development/compilers/pakcs/curry-base.nix16
-rw-r--r--nixpkgs/pkgs/development/compilers/pakcs/curry-frontend.nix22
-rw-r--r--nixpkgs/pkgs/development/compilers/pakcs/default.nix39
3 files changed, 29 insertions, 48 deletions
diff --git a/nixpkgs/pkgs/development/compilers/pakcs/curry-base.nix b/nixpkgs/pkgs/development/compilers/pakcs/curry-base.nix
deleted file mode 100644
index c461d2caa93c..000000000000
--- a/nixpkgs/pkgs/development/compilers/pakcs/curry-base.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ mkDerivation, base, Cabal, containers, directory, extra, filepath
-, mtl, parsec, pretty, lib, time, transformers
-}:
-mkDerivation {
-  pname = "curry-base";
-  version = "1.1.0";
-  src = ./.;
-  libraryHaskellDepends = [
-    base containers directory extra filepath mtl parsec pretty time
-    transformers
-  ];
-  testHaskellDepends = [ base Cabal filepath mtl ];
-  homepage = "http://curry-language.org";
-  description = "Functions for manipulating Curry programs";
-  license = lib.licenses.bsd3;
-}
diff --git a/nixpkgs/pkgs/development/compilers/pakcs/curry-frontend.nix b/nixpkgs/pkgs/development/compilers/pakcs/curry-frontend.nix
index 88e88487594b..acf658024b01 100644
--- a/nixpkgs/pkgs/development/compilers/pakcs/curry-frontend.nix
+++ b/nixpkgs/pkgs/development/compilers/pakcs/curry-frontend.nix
@@ -1,26 +1,28 @@
-{ mkDerivation, base, bytestring, Cabal, containers, curry-base
-, directory, extra, file-embed, filepath, mtl, network-uri, pretty
-, process, set-extra, lib, template-haskell, transformers
+{ mkDerivation, base, binary, bytestring, Cabal, containers
+, directory, extra, file-embed, filepath, lib, mtl, network-uri
+, parsec, pretty, process, set-extra, template-haskell, time
+, transformers
 }:
 mkDerivation {
   pname = "curry-frontend";
-  version = "1.0.4";
+  version = "2.1.0";
   src = ./.;
   isLibrary = true;
   isExecutable = true;
   enableSeparateDataOutput = true;
   libraryHaskellDepends = [
-    base bytestring containers curry-base directory extra file-embed
-    filepath mtl network-uri pretty process set-extra template-haskell
-    transformers
+    base binary bytestring containers directory extra file-embed
+    filepath mtl network-uri parsec pretty process set-extra
+    template-haskell time transformers
   ];
-  executableHaskellDepends = [
-    base bytestring containers curry-base directory extra file-embed
+  executableHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base bytestring Cabal containers directory extra file-embed
     filepath mtl network-uri pretty process set-extra template-haskell
     transformers
   ];
-  testHaskellDepends = [ base Cabal curry-base filepath ];
   homepage = "http://curry-language.org";
   description = "Compile the functional logic language Curry to several intermediate formats";
   license = lib.licenses.bsd3;
+  mainProgram = "curry-frontend";
 }
diff --git a/nixpkgs/pkgs/development/compilers/pakcs/default.nix b/nixpkgs/pkgs/development/compilers/pakcs/default.nix
index e38f4e8c02ba..42b2e208c1d4 100644
--- a/nixpkgs/pkgs/development/compilers/pakcs/default.nix
+++ b/nixpkgs/pkgs/development/compilers/pakcs/default.nix
@@ -5,27 +5,24 @@
 
 let
   pname = "pakcs";
-  version = "2.2.1";
+  version = "3.6.0";
 
   # Don't switch to "Current release" without a reason, because its
   # source updates without version bump. Prefer last from "Older releases" instead.
   src = fetchurl {
     url = "https://www.informatik.uni-kiel.de/~pakcs/download/pakcs-${version}-src.tar.gz";
-    sha256 = "1jyg29j8r8pgcin7ixdya6c3zzfjdi66rghpwrfnkk133fz4iz7s";
+    hash = "sha256-1r6jEY3eEGESKcAepiziVbxpIvQLtCS6l0trBU3SGGo=";
   };
 
   curry-frontend = (haskellPackages.override {
     overrides = self: super: {
-      curry-base = haskell.lib.compose.overrideCabal (drv: {
-        inherit src;
-        postUnpack = "sourceRoot+=/frontend/curry-base";
-      }) (super.callPackage ./curry-base.nix {});
       curry-frontend = haskell.lib.compose.overrideCabal (drv: {
         inherit src;
-        postUnpack = "sourceRoot+=/frontend/curry-frontend";
-      }) (super.callPackage ./curry-frontend.nix {});
+        postUnpack = "sourceRoot+=/frontend";
+      }) (super.callPackage ./curry-frontend.nix { });
     };
   }).curry-frontend;
+
 in stdenv.mkDerivation {
   inherit pname version src;
 
@@ -41,28 +38,24 @@ in stdenv.mkDerivation {
   ];
 
   preConfigure = ''
-    # Since we can't expand $out in `makeFlags`
-    #makeFlags="$makeFlags PAKCSINSTALLDIR=$out/pakcs"
-
-    for file in currytools/cpm/src/CPM/Repository.curry \
-                currytools/cpm/src/CPM/Repository/CacheDB.curry \
-                scripts/compile-all-libs.sh \
-                scripts/cleancurry.sh \
-                examples/test.sh testsuite/test.sh lib/test.sh; do
+    for file in examples/test.sh             \
+                currytools/optimize/Makefile \
+                testsuite/test.sh            \
+                scripts/cleancurry.sh        \
+                scripts/compile-all-libs.sh; do
         substituteInPlace $file --replace "/bin/rm" "rm"
     done
   '' ;
 
-  # cypm new: EXISTENCE ERROR: source_sink
-  # "/tmp/nix-build-pakcs-2.0.2.drv-0/pakcs-2.0.2/currytools/cpm/templates/LICENSE"
-  # does not exist
-  buildPhase = ''
+  preBuild = ''
     mkdir -p $out/pakcs
     cp -r * $out/pakcs
-    (cd $out/pakcs ; make -j$NIX_BUILD_CORES $makeFlags)
+    cd $out/pakcs
   '';
 
   installPhase = ''
+    runHook preInstall
+
     ln -s $out/pakcs/bin $out
 
     mkdir -p $out/share/emacs/site-lisp
@@ -75,6 +68,8 @@ in stdenv.mkDerivation {
     # List of dependencies from currytools/cpm/src/CPM/Main.curry
     wrapProgram $out/pakcs/bin/cypm \
       --prefix PATH ":" "${lib.makeBinPath [ curl git unzip gnutar coreutils sqlite ]}"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -94,7 +89,7 @@ in stdenv.mkDerivation {
       with dynamic web pages, prototyping embedded systems).
     '';
 
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ t4ccer ];
     platforms = platforms.linux;
   };
 }