From 7a33b2aa3e9c3fb402137627205dfdf0b6f32090 Mon Sep 17 00:00:00 2001 From: Luis Eduardo Bueso de Barrio Date: Wed, 10 Jun 2026 16:50:07 +0200 Subject: [PATCH] elixir-eqc --- overlays/default.nix | 2 +- pkgs/default.nix | 1 + pkgs/eqc/default.nix | 48 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 pkgs/eqc/default.nix diff --git a/overlays/default.nix b/overlays/default.nix index 03a19ad..f0d35cb 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -3,5 +3,5 @@ let packages = import ../pkgs { pkgs = prev; }; in { - inherit (packages) example-a example-b pyzotero pyzotero-cli khal-export org-zotero-export jls harper-ls; + inherit (packages) example-a example-b pyzotero pyzotero-cli khal-export org-zotero-export jls harper-ls eqc; } diff --git a/pkgs/default.nix b/pkgs/default.nix index 9e0326e..ff1331f 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -4,6 +4,7 @@ let self = { dolos = pkgs.callPackage ./dolos { nodejs = pkgs.nodejs_22; }; + eqc = pkgs.callPackage ./eqc { }; example-a = pkgs.callPackage ./example-a { }; example-b = pkgs.callPackage ./example-b { }; pyzotero = pkgs.callPackage ./pyzotero { }; diff --git a/pkgs/eqc/default.nix b/pkgs/eqc/default.nix new file mode 100644 index 0000000..53e9910 --- /dev/null +++ b/pkgs/eqc/default.nix @@ -0,0 +1,48 @@ +{ + lib, + stdenv, + fetchurl, + unzip, + erlangVersion ? "28", +}: +let + versions = { + "28" = { eqcVersion = "1.48.3"; hash = "sha256-qWV8lsBGwCcrdgJdgpL2Blj3BU92NTfIFy3AkmkcR8o="; }; + "27" = { eqcVersion = "1.48.3"; hash = "sha256-Y/JgElZkRtIP139/f+fmTESerMlFK3g++8lyNDLuBM8="; }; + "26" = { eqcVersion = "1.48.1"; hash = "sha256-Acnm74iEEpdwYDJzFo0cBZd4DH9y9jXFtgKmodUHzBM="; }; + "25" = { eqcVersion = "1.46.2"; hash = "sha256-oGclmRf15XpdO6J9CVIiC4rF9mq84r1C7nbvve4Qgrw="; }; + "24" = { eqcVersion = "1.46.1"; hash = "sha256-crofH7OZ35Xs2JT9uONBO2YmCjTNaELkJ+dGfiGSM9c="; }; + "23" = { eqcVersion = "1.45.1"; hash = "sha256-ifObOCNvQQniQFG9jf8FkMNYT2NhH6K12AX/D14rttY="; }; + "22" = { eqcVersion = "1.45.1"; hash = "sha256-iIxI+UavRpbXWRcI6u50SX6PGzL5ZZ918rhLKyJFHqg="; }; + "21" = { eqcVersion = "1.45.1"; hash = "sha256-k57376cDfStG72Jue6sDP830lTiIkCuPsSjf2kQ4="; }; + "20" = { eqcVersion = "1.45.1"; hash = "sha256-Bi5nccILoJidDCHb7TK+Ha+YV2FRYZFiNVJ3WZFMCr0="; }; + }; + cfg = versions.${erlangVersion} or (throw "Unsupported Erlang/OTP version: ${erlangVersion}. Supported: ${builtins.concatStringsSep ", " (builtins.attrNames versions)}"); +in +stdenv.mkDerivation { + name = "eqc"; + version = cfg.eqcVersion; + + src = fetchurl { + url = "https://www.quviq.com/downloads/eqcR${erlangVersion}.zip"; + sha256 = cfg.hash; + }; + + nativeBuildInputs = [ unzip ]; + + unpackPhase = '' + unzip $src -d eqc + ''; + + installPhase = '' + mkdir -p $out/lib + mv eqc/Quviq\ QuickCheck\ version\ */eqc-* $out/lib/ + mv eqc/Quviq\ QuickCheck\ version\ */pulse-* $out/lib/ + mv eqc/Quviq\ QuickCheck\ version\ */pulse_otp-* $out/lib/ + ''; + + passthru = { + erlangVersion = erlangVersion; + eqcVersion = cfg.eqcVersion; + }; +}