@@ -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};
@@ -23,6 +33,19 @@
2333
2434 clojureWithCP =
2535 import ./languages/clojure/wrappedClojure.nix { inherit pkgs; };
36+
37+ python310Full = pkgs.python310.override {
38+ self = python310Full;
39+ pythonAttr = "python310Full";
40+ bluezSupport = true;
41+ x11Support = true;
42+ };
43+
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;
2649
2750 in {
2851 packages = {
@@ -35,7 +58,7 @@
3558
3659 prybar-nodejs = buildPrybar {
3760 language = "nodejs";
38− binaries = [ pkgs.nodejs-12_x ];
61+ binaries = [ pkgs.nodejs-16_x ];
3962 };
4063
4164 prybar-python2 = buildPrybar {
@@ -45,7 +68,12 @@
4568
4669 prybar-python3 = buildPrybar {
4770 language = "python3";
48− buildInputs = [ pkgs.python38Full ];
71+ buildInputs = [ pkgs.libxcrypt pkgs.python38Full ];
72+ };
73+
74+ prybar-python310 = buildPrybar {
75+ language = "python310";
76+ buildInputs = [ pkgs.libxcrypt python310Full ];
4977 };
5078
5179 prybar-lua = buildPrybar {
@@ -66,11 +94,11 @@
6694 # This has to be in the build inputs so it set-ups the library paths before the check phase
6795 # It will not be copied over to the final package.
6896 buildInputs = [
69− pkgs.opam
70− pkgs.ocaml
71− pkgs.ocamlPackages.findlib
72− pkgs.ocamlPackages.topkg
73− pkgs.ocamlPackages.reason
97+ opam
98+ ocaml
99+ findlib
100+ topkg
101+ reason
74102 ];
75103 };
76104
@@ -105,6 +133,41 @@
105133
106134 };
107135
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+
108171 });
109172}
110173