@@ -2,11 +2,21 @@
22 description = "A universal interpreter front-end";
33
44 inputs = {
5− nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
5+ nixpkgs.url = "github:nixos/nixpkgs/nixos-22.11";
66 flake-utils.url = "github:numtide/flake-utils";
77 };
88
99 outputs = { self, nixpkgs, flake-utils }:
10+ {
11+ overlays.default = final: prev: {
12+ prybar = prev.lib.recurseIntoAttrs {
13+ inherit (self.packages.${prev.system})
14+ prybar-R prybar-clojure prybar-elisp prybar-julia prybar-lua prybar-nodejs
15+ prybar-ocaml prybar-python2 prybar-python3 prybar-python310 prybar-ruby
16+ prybar-scala prybar-sqlite prybar-tcl;
17+ };
18+ };
19+ } //
1020 flake-utils.lib.eachDefaultSystem (system:
1121 let
1222 pkgs = nixpkgs.legacyPackages.${system};
@@ -31,6 +41,12 @@
3141 x11Support = true;
3242 };
3343
44+ ocaml = pkgs.ocaml-ng.ocamlPackages_4_12.ocaml;
45+ opam = pkgs.opam;
46+ findlib = pkgs.ocaml-ng.ocamlPackages_4_12.findlib;
47+ topkg = pkgs.ocaml-ng.ocamlPackages_4_12.topkg;
48+ reason = pkgs.ocaml-ng.ocamlPackages_4_12.reason;
49+
3450 in {
3551 packages = {
3652 prybar-R = buildPrybar {
@@ -42,7 +58,7 @@
4258
4359 prybar-nodejs = buildPrybar {
4460 language = "nodejs";
45− binaries = [ pkgs.nodejs-12_x ];
61+ binaries = [ pkgs.nodejs-16_x ];
4662 };
4763
4864 prybar-python2 = buildPrybar {
@@ -52,12 +68,12 @@
5268
5369 prybar-python3 = buildPrybar {
5470 language = "python3";
55− buildInputs = [ pkgs.python38Full ];
71+ buildInputs = [ pkgs.libxcrypt pkgs.python38Full ];
5672 };
5773
5874 prybar-python310 = buildPrybar {
5975 language = "python310";
60− buildInputs = [ python310Full ];
76+ buildInputs = [ pkgs.libxcrypt python310Full ];
6177 };
6278
6379 prybar-lua = buildPrybar {
@@ -78,11 +94,11 @@
7894 # This has to be in the build inputs so it set-ups the library paths before the check phase
7995 # It will not be copied over to the final package.
8096 buildInputs = [
81− pkgs.opam
82− pkgs.ocaml
83− pkgs.ocamlPackages.findlib
84− pkgs.ocamlPackages.topkg
85− pkgs.ocamlPackages.reason
97+ opam
98+ ocaml
99+ findlib
100+ topkg
101+ reason
86102 ];
87103 };
88104
@@ -117,6 +133,41 @@
117133
118134 };
119135
136+
137+ devShells.default = pkgs.mkShell {
138+ nativeBuildInputs = [
139+ pkgs.pkg-config
140+ ];
141+ buildInputs = [
142+ pkgs.libxcrypt
143+ pkgs.R
144+ pkgs.nodejs-16_x
145+ pkgs.python2
146+ pkgs.python38Full
147+ pkgs.python310Full
148+ pkgs.lua5_1
149+ pkgs.readline
150+ clojureWithCP
151+ pkgs.jdk11_headless
152+ opam
153+ ocaml
154+ findlib
155+ topkg
156+ reason
157+ julia
158+ pkgs.zlib
159+ pkgs.ruby
160+ pkgs.sqlite
161+ pkgs.tcl
162+ pkgs.expect
163+ ];
164+ shellHook = ''
165+ export CGO_LDFLAGS_ALLOW="-Wl,--compress-debug-sections=zlib"
166+ export DISABLE_GO_TESTS=1
167+ '';
168+ };
169+
170+
120171 });
121172}
122173