Add build / develop environment in Nix

This commit is contained in:
Nymphium 2022-01-25 23:18:23 +09:00 committed by Rudi Grinberg
parent 676e2cd654
commit d5dbad6b80
10 changed files with 1754 additions and 0 deletions

33
.github/workflows/test-in-nix.yml vendored Normal file
View File

@ -0,0 +1,33 @@
name: Test in Nix
on:
pull_request:
push:
branches:
- master
jobs:
run:
name: Build and test
strategy:
fail-fast: false
matrix:
os:
- macos-latest
- ubuntu-latest
ocaml-compiler:
- 4_11
- 4_12
- 4_13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Setup Nix
uses: cachix/install-nix-action@v15
with:
nix_path: nixpkgs=channel:nixos-21.11
extra_nix_config: |
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
substituters = https://cache.nixos.org/
max-jobs = auto
cores = 0
- run: nix-shell --argstr ocamlVersion ${{ matrix.ocaml-compiler }} --run 'dune runtest'

2
.gitignore vendored
View File

@ -3,3 +3,5 @@ _build/
*.install *.install
*.elc *.elc
.*.swp .*.swp
/result*

9
default.nix Normal file
View File

@ -0,0 +1,9 @@
{ pkgs ? import <nixpkgs> {}
, ocamlVersion ? import ./nix/ocamlDefaultVersion.nix
, opam2nix ?
pkgs.callPackage ./nix/opam2nix.nix {
inherit pkgs;
ocamlPackagesOverride = pkgs.ocaml-ng."ocamlPackages_${ocamlVersion}";
} }:
pkgs.callPackage ./nix { inherit ocamlVersion opam2nix; }

30
nix/default.nix Normal file
View File

@ -0,0 +1,30 @@
{ pkgs, lib, stdenv, ocamlVersion, opam2nix }:
let
inherit (lib) strings;
args = {
inherit (pkgs.ocaml-ng."ocamlPackages_${ocamlVersion}") ocaml;
src =
let ignores = pkgs.lib.strings.fileContents ../.gitignore;
in pkgs.nix-gitignore.gitignoreSourcePure ignores ../.;
};
opam-selection = opam2nix.build (args // {
selection = "${./opam-selection_${ocamlVersion}.nix}";
});
localPackages =
let contents = builtins.attrNames (builtins.readDir ../.);
in builtins.filter (strings.hasSuffix ".opam") contents;
resolve = opam2nix.resolve (args // {
selection = "./nix/opam-selection_${ocamlVersion}.nix";
}) localPackages;
in (builtins.listToAttrs (builtins.map (fname:
let packageName = strings.removeSuffix ".opam" fname;
in {
name = packageName;
value = builtins.getAttr packageName opam-selection;
}) localPackages)) // {
inherit resolve opam-selection;
}

View File

@ -0,0 +1 @@
"4_13"

555
nix/opam-selection_4_11.nix Normal file
View File

@ -0,0 +1,555 @@
### This file is generated by opam2nix.
self:
let
lib = self.lib;
pkgs = self.pkgs;
selection = self.selection;
repoPath = self.repoPath;
repos =
{
opam-repository =
rec {
fetch =
{
owner = "ocaml";
repo = "opam-repository";
rev = "7cf7c46fd0c289f632b288a2ae1bc99ea3d378cc";
sha256 = "0xiibs33w7hn8fkmk8mvgxdly70rral2nadkip5rmivlv6f91n3h";
};
src = (pkgs.fetchFromGitHub) fetch;
};
};
in
{
format-version = 4;
inherit repos;
ocaml-version = "4.11.2";
selection =
{
base-bytes =
{
pname = "base-bytes";
version = "base";
src = null;
opamInputs = {
inherit (selection) ocamlfind ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/base-bytes/base-bytes.base";
hash = "sha256:0a68lmbf68jgm1i3b59j2sc3ha9yhv4678f9mfwwvczw88prq7l3";
};
};
base-threads =
{
pname = "base-threads";
version = "base";
src = null;
opamInputs = {
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/base-threads/base-threads.base";
hash = "sha256:1c4bpyh61ampjgk5yh3inrgcpf1z1xv0pshn54ycmpn4dyzv0p2x";
};
};
base-unix =
{
pname = "base-unix";
version = "base";
src = null;
opamInputs = {
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/base-unix/base-unix.base";
hash = "sha256:0mpsvb7684g723ylngryh15aqxg3blb7hgmq2fsqjyppr36iyzwg";
};
};
camomile =
{
pname = "camomile";
version = "1.0.2";
src = pkgs.fetchurl
{
url = "https://github.com/yoriyuki/Camomile/releases/download/1.0.2/camomile-1.0.2.tbz";
sha256 = "0chn7ldqb3wyf95yhmsxxq65cif56smgz1mhhc7m0dpwmyq1k97h";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/camomile/camomile.1.0.2";
hash = "sha256:08z0c35bcm72ch2n7w0b1x7xnwn2hhcky5r6vyz8hi4m9jqv6azv";
};
};
charInfo_width =
{
pname = "charInfo_width";
version = "1.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/charInfo_width/archive/1.1.0.tar.gz";
sha256 = "0wl1hcwbx2mmgbhwh1wwgjixvppjq0k43nqyq13xm4pvgdxfvci1";
};
opamInputs =
{
inherit (selection) result ocaml dune camomile;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/charInfo_width/charInfo_width.1.1.0";
hash = "sha256:1vx3dlvd3xslkc9q93yyqnn479sj4wpmp9xwngipnibla7mcpyq7";
};
};
cppo =
{
pname = "cppo";
version = "1.6.8";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-community/cppo/archive/v1.6.8.tar.gz";
sha256 = "0lxy4xkkkwgs1cj6d9lyzsqi9f6fc9r6cir5imi7yjqrpd86s1by";
};
opamInputs =
{
inherit (selection) ocaml dune base-unix;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/cppo/cppo.1.6.8";
hash = "sha256:0pzd8irqkkkpfgw8nq9d21z9rj5m3qlzixyb7ybfy4b1fwh3n8bp";
};
};
csexp =
{
pname = "csexp";
version = "1.5.1";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-dune/csexp/releases/download/1.5.1/csexp-1.5.1.tbz";
sha256 = "00mc19f89pxpmjl62862ya5kjcfrl8rjzvs00j05h2m9bw3f81fn";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/csexp/csexp.1.5.1";
hash = "sha256:01lc95kz13gpki4xazyh6n20kv1g9inyb5myv240wl2n9v50z8fl";
};
};
dune =
{
pname = "dune";
version = "2.9.2";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/dune/releases/download/2.9.2/dune-site-2.9.2.tbz";
sha256 = "0ivl5r9diky8r1rfka7427kc3lh168mrz0ywdxgv8y5rgx8crrxq";
};
opamInputs =
{
inherit (selection) base-unix
base-threads;
ocamlfind-secondary = selection.ocamlfind-secondary or null;
ocaml = selection.ocaml or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/dune/dune.2.9.2";
hash = "sha256:0qzzy2kn29ww9ryl2fvhkph9lmc112yr86xn8r8s9rbaz2zfkm6x";
};
};
dune-configurator =
{
pname = "dune-configurator";
version = "2.9.1";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/dune/releases/download/2.9.1/dune-2.9.1.tbz";
sha256 = "09lzq04b642iy0ljp59p32lgk3q8iphjh8fkdp69q29l5frgwx5k";
};
opamInputs =
{
inherit (selection) result ocaml dune csexp;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/dune-configurator/dune-configurator.2.9.1";
hash = "sha256:1aik9w82r8vbb9fsfphpb0vam68s19ggkxprnqr99ygyalp2b71j";
};
};
lambda-term =
{
pname = "lambda-term";
version = "3.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-community/lambda-term/archive/3.1.0.tar.gz";
sha256 = "1462j2c2nnzv6ng8b6907bw0zy3mhhnnjdm8k6as0sgm9ls0r77r";
};
opamInputs =
{
inherit (selection) zed react ocaml mew_vi lwt_react lwt_log lwt dune
camomile;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lambda-term/lambda-term.3.1.0";
hash = "sha256:0v2wk9gxj0p1znivgrbshj038l2rjhzrhk61s7kiayy9ka101cav";
};
};
lwt =
{
pname = "lwt";
version = "5.5.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz";
sha256 = "15gr6nhhfjyh91v9chvm6j7vnp1hhc60y3plgvcgl5yl5k7xbbj9";
};
opamInputs =
{
inherit (selection) seq result ocplib-endian ocaml mmap
dune-configurator dune
cppo;
ocaml-syntax-shims = selection.ocaml-syntax-shims or null;
conf-libev = selection.conf-libev or null;
base-unix = selection.base-unix or null;
base-threads = selection.base-threads or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lwt/lwt.5.5.0";
hash = "sha256:0iadlycd4q93lsk07k9zaimlysgd38sj6v50dc3cb491vl0icipz";
};
};
lwt_log =
{
pname = "lwt_log";
version = "1.1.1";
src = pkgs.fetchurl
{
url = "https://github.com/aantron/lwt_log/archive/1.1.1.tar.gz";
sha256 = "0gszc8nvk2hpfq47plb36qahlnyfq28sa9mhicnf6mg5c7n1kyql";
};
opamInputs = {
inherit (selection) lwt dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lwt_log/lwt_log.1.1.1";
hash = "sha256:18iddwpvs7hwkmsbii11kiw0aaad4kf8iv9vjw01npflxh729vig";
};
};
lwt_react =
{
pname = "lwt_react";
version = "1.1.5";
src = pkgs.fetchurl
{
url = "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz";
sha256 = "15gr6nhhfjyh91v9chvm6j7vnp1hhc60y3plgvcgl5yl5k7xbbj9";
};
opamInputs =
{
inherit (selection) react ocaml lwt dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lwt_react/lwt_react.1.1.5";
hash = "sha256:1k0ysm1wdx55dzma6k1ifx0s09ijxg7jvjh2ak5l540lbjx30cf2";
};
};
mew =
{
pname = "mew";
version = "0.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/mew/archive/0.1.0.tar.gz";
sha256 = "1rjri9mgfb9gn9fmjn0ax21y9jd9wkvr7mmx2jrlqmzgabmqrlv4";
};
opamInputs =
{
inherit (selection) trie result ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/mew/mew.0.1.0";
hash = "sha256:0g9xms016f909fzbwgxcy0k4xmvr5zk5bhnz66v9vpsiak2qm4s3";
};
};
mew_vi =
{
pname = "mew_vi";
version = "0.5.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/mew_vi/archive/0.5.0.tar.gz";
sha256 = "1nmg3cysglgw4115n5zpz4azrfbnfxkn2kvw73chzs69viygm4m6";
};
opamInputs =
{
inherit (selection) react ocaml mew dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/mew_vi/mew_vi.0.5.0";
hash = "sha256:0zsfhxpff78cqk2c81parajb59m7hqf6v8arksxbyfha6mls65hz";
};
};
mmap =
{
pname = "mmap";
version = "1.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/mirage/mmap/releases/download/v1.1.0/mmap-v1.1.0.tbz";
sha256 = "0l6waidal2n8mkdn74avbslvc10sf49f5d889n838z03pra5chsc";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/mmap/mmap.1.1.0";
hash = "sha256:1snhaf6mixmmb49gcin5wmbz4bfjz406mip4556lids8ajm22ibh";
};
};
ocaml =
{
pname = "ocaml";
version = "4.11.2";
src = null;
opamInputs =
{
inherit (selection)
ocaml-config;
ocaml-variants = selection.ocaml-variants or null;
ocaml-system = selection.ocaml-system or null;
ocaml-base-compiler = selection.ocaml-base-compiler or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocaml/ocaml.4.11.2";
hash = "sha256:14clfk687d596dyhfblf9sljbk31937rrnyx2nqi7ii52qwknn5x";
};
};
ocaml-base-compiler =
{
pname = "ocaml-base-compiler";
version = "4.11.2";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/ocaml/archive/4.11.2.tar.gz";
sha256 = "02day17rxrd0vla89mxl1yac657d1hs0lxspj8sd58ygyrl2ljh4";
};
opamInputs = {
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocaml-base-compiler/ocaml-base-compiler.4.11.2";
hash = "sha256:0zaxk9ndzqf392h8arbl11qdllm0aljgahzam9ql2mq41pccpfdg";
};
};
ocaml-config =
{
pname = "ocaml-config";
version = "1";
src = null;
opamInputs =
{
ocaml-variants = selection.ocaml-variants or null;
ocaml-system = selection.ocaml-system or null;
ocaml-base-compiler = selection.ocaml-base-compiler or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocaml-config/ocaml-config.1";
hash = "sha256:1gc3pyhb64j8a91bgbpy9fzljpb1ps2ylgw31ldx879vdkk46nhp";
};
};
ocamlbuild =
{
pname = "ocamlbuild";
version = "0.14.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/ocamlbuild/archive/0.14.0.tar.gz";
sha256 = "0y1fskw9rg2y1zgb7whv3v8v4xw04svgxslf3856q2aqd7lrrcl7";
};
opamInputs = {
inherit (selection) ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocamlbuild/ocamlbuild.0.14.0";
hash = "sha256:1r5qnrcxfypzyvjvb3zd9f66kr5ldxdl3g9rsi3pb6040krqb5w7";
};
};
ocamlfind =
{
pname = "ocamlfind";
version = "1.9.3";
src = pkgs.fetchurl
{
url = "http://download.camlcity.org/download/findlib-1.9.3.tar.gz";
sha256 = "0hfcwamcvinmww59b5i4yxbf0kxyzkp5qv3d1c7ybn9q52vgq463";
};
opamInputs =
{
inherit (selection) ocaml;
graphics = selection.graphics or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocamlfind/ocamlfind.1.9.3";
hash = "sha256:1wq1lkw3rpgilprlakznsxxf60mcidn3fzi3vjrgjdrnnp9hvh19";
};
};
ocplib-endian =
{
pname = "ocplib-endian";
version = "1.2";
src = pkgs.fetchurl
{
url = "https://github.com/OCamlPro/ocplib-endian/archive/refs/tags/1.2.tar.gz";
sha256 = "085kskr0cxcnv2d62n3jq1r273p7giisy56zfl26mm7amvl79blp";
};
opamInputs =
{
inherit (selection) ocaml dune cppo base-bytes;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocplib-endian/ocplib-endian.1.2";
hash = "sha256:1jldvb471gyhkrzwfvqg722l3a8dc37hhhyas66skjzfmqyi2pnh";
};
};
react =
{
pname = "react";
version = "1.2.1";
src = pkgs.fetchurl
{
url = "http://erratique.ch/software/react/releases/react-1.2.1.tbz";
sha256 = "1aj8w79gdd9xnrbz7s5p8glcb4pmimi8jp9f439dqnf6ih3mqb3v";
};
opamInputs =
{
inherit (selection) topkg ocamlfind ocamlbuild ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/react/react.1.2.1";
hash = "sha256:0wk5i83r2hxz1r1skkhzz8rild68m4g9i9blxigbg9r60hgw18z5";
};
};
result =
{
pname = "result";
version = "1.5";
src = pkgs.fetchurl
{
url = "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz";
sha256 = "0cpfp35fdwnv3p30a06wd0py3805qxmq3jmcynjc3x2qhlimwfkw";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/result/result.1.5";
hash = "sha256:0ybmvlisfz5swvbcq855czz1ysv9zxmb79f1m0x8284hczmfm98f";
};
};
seq =
{
pname = "seq";
version = "base";
src = null;
opamInputs = {
inherit (selection) ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/seq/seq.base";
hash = "sha256:1vm8mk6zm2q3fwnkprl6jib048zr4ysldw0bl74x6wwbxj0vx6k9";
};
};
topkg =
{
pname = "topkg";
version = "1.0.4";
src = pkgs.fetchurl
{
url = "https://erratique.ch/software/topkg/releases/topkg-1.0.4.tbz";
sha256 = "1kzw5cxkizcvh4rgzwgpjlj9hfxfk6yr686bxx6wrbsfs8as371k";
};
opamInputs =
{
inherit (selection) ocamlfind ocamlbuild ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/topkg/topkg.1.0.4";
hash = "sha256:0gvngd4nayhhw02gcsljvmx6jkjpv9m3mqwpgimcfq04h0cf4knb";
};
};
trie =
{
pname = "trie";
version = "1.0.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/trie/archive/1.0.0.tar.gz";
sha256 = "1slq4kiwnc723dsaw15ms7xxpqz061v8zck1m6iyc5j2li70by62";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/trie/trie.1.0.0";
hash = "sha256:1ds07ikjjymacnlxfx1widfi7qz0js61lsqqq0xa90501p17nq10";
};
};
utop =
{
pname = "utop";
version = "development";
src = self.directSrc "utop";
opamInputs =
{
inherit (selection) react ocamlfind ocaml lwt_react lwt lambda-term
dune cppo camomile base-unix base-threads;
};
opamSrc = "utop.opam";
};
zed =
{
pname = "zed";
version = "3.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-community/zed/archive/3.1.0.tar.gz";
sha256 = "1z95fs49hi00xy078a83m0vfdqwjb5953rwr15lfpirldi4v11y3";
};
opamInputs =
{
inherit (selection) react ocaml dune charInfo_width camomile
base-bytes;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/zed/zed.3.1.0";
hash = "sha256:1k1yd4dwg6x5rija3lan3q57nr6f1xa45248613rr7k2x5zdp2nx";
};
};
};
}

555
nix/opam-selection_4_12.nix Normal file
View File

@ -0,0 +1,555 @@
### This file is generated by opam2nix.
self:
let
lib = self.lib;
pkgs = self.pkgs;
selection = self.selection;
repoPath = self.repoPath;
repos =
{
opam-repository =
rec {
fetch =
{
owner = "ocaml";
repo = "opam-repository";
rev = "7cf7c46fd0c289f632b288a2ae1bc99ea3d378cc";
sha256 = "0xiibs33w7hn8fkmk8mvgxdly70rral2nadkip5rmivlv6f91n3h";
};
src = (pkgs.fetchFromGitHub) fetch;
};
};
in
{
format-version = 4;
inherit repos;
ocaml-version = "4.12.0";
selection =
{
base-bytes =
{
pname = "base-bytes";
version = "base";
src = null;
opamInputs = {
inherit (selection) ocamlfind ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/base-bytes/base-bytes.base";
hash = "sha256:0a68lmbf68jgm1i3b59j2sc3ha9yhv4678f9mfwwvczw88prq7l3";
};
};
base-threads =
{
pname = "base-threads";
version = "base";
src = null;
opamInputs = {
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/base-threads/base-threads.base";
hash = "sha256:1c4bpyh61ampjgk5yh3inrgcpf1z1xv0pshn54ycmpn4dyzv0p2x";
};
};
base-unix =
{
pname = "base-unix";
version = "base";
src = null;
opamInputs = {
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/base-unix/base-unix.base";
hash = "sha256:0mpsvb7684g723ylngryh15aqxg3blb7hgmq2fsqjyppr36iyzwg";
};
};
camomile =
{
pname = "camomile";
version = "1.0.2";
src = pkgs.fetchurl
{
url = "https://github.com/yoriyuki/Camomile/releases/download/1.0.2/camomile-1.0.2.tbz";
sha256 = "0chn7ldqb3wyf95yhmsxxq65cif56smgz1mhhc7m0dpwmyq1k97h";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/camomile/camomile.1.0.2";
hash = "sha256:08z0c35bcm72ch2n7w0b1x7xnwn2hhcky5r6vyz8hi4m9jqv6azv";
};
};
charInfo_width =
{
pname = "charInfo_width";
version = "1.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/charInfo_width/archive/1.1.0.tar.gz";
sha256 = "0wl1hcwbx2mmgbhwh1wwgjixvppjq0k43nqyq13xm4pvgdxfvci1";
};
opamInputs =
{
inherit (selection) result ocaml dune camomile;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/charInfo_width/charInfo_width.1.1.0";
hash = "sha256:1vx3dlvd3xslkc9q93yyqnn479sj4wpmp9xwngipnibla7mcpyq7";
};
};
cppo =
{
pname = "cppo";
version = "1.6.8";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-community/cppo/archive/v1.6.8.tar.gz";
sha256 = "0lxy4xkkkwgs1cj6d9lyzsqi9f6fc9r6cir5imi7yjqrpd86s1by";
};
opamInputs =
{
inherit (selection) ocaml dune base-unix;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/cppo/cppo.1.6.8";
hash = "sha256:0pzd8irqkkkpfgw8nq9d21z9rj5m3qlzixyb7ybfy4b1fwh3n8bp";
};
};
csexp =
{
pname = "csexp";
version = "1.5.1";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-dune/csexp/releases/download/1.5.1/csexp-1.5.1.tbz";
sha256 = "00mc19f89pxpmjl62862ya5kjcfrl8rjzvs00j05h2m9bw3f81fn";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/csexp/csexp.1.5.1";
hash = "sha256:01lc95kz13gpki4xazyh6n20kv1g9inyb5myv240wl2n9v50z8fl";
};
};
dune =
{
pname = "dune";
version = "2.9.2";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/dune/releases/download/2.9.2/dune-site-2.9.2.tbz";
sha256 = "0ivl5r9diky8r1rfka7427kc3lh168mrz0ywdxgv8y5rgx8crrxq";
};
opamInputs =
{
inherit (selection) base-unix
base-threads;
ocamlfind-secondary = selection.ocamlfind-secondary or null;
ocaml = selection.ocaml or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/dune/dune.2.9.2";
hash = "sha256:0qzzy2kn29ww9ryl2fvhkph9lmc112yr86xn8r8s9rbaz2zfkm6x";
};
};
dune-configurator =
{
pname = "dune-configurator";
version = "2.9.1";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/dune/releases/download/2.9.1/dune-2.9.1.tbz";
sha256 = "09lzq04b642iy0ljp59p32lgk3q8iphjh8fkdp69q29l5frgwx5k";
};
opamInputs =
{
inherit (selection) result ocaml dune csexp;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/dune-configurator/dune-configurator.2.9.1";
hash = "sha256:1aik9w82r8vbb9fsfphpb0vam68s19ggkxprnqr99ygyalp2b71j";
};
};
lambda-term =
{
pname = "lambda-term";
version = "3.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-community/lambda-term/archive/3.1.0.tar.gz";
sha256 = "1462j2c2nnzv6ng8b6907bw0zy3mhhnnjdm8k6as0sgm9ls0r77r";
};
opamInputs =
{
inherit (selection) zed react ocaml mew_vi lwt_react lwt_log lwt dune
camomile;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lambda-term/lambda-term.3.1.0";
hash = "sha256:0v2wk9gxj0p1znivgrbshj038l2rjhzrhk61s7kiayy9ka101cav";
};
};
lwt =
{
pname = "lwt";
version = "5.5.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz";
sha256 = "15gr6nhhfjyh91v9chvm6j7vnp1hhc60y3plgvcgl5yl5k7xbbj9";
};
opamInputs =
{
inherit (selection) seq result ocplib-endian ocaml mmap
dune-configurator dune
cppo;
ocaml-syntax-shims = selection.ocaml-syntax-shims or null;
conf-libev = selection.conf-libev or null;
base-unix = selection.base-unix or null;
base-threads = selection.base-threads or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lwt/lwt.5.5.0";
hash = "sha256:0iadlycd4q93lsk07k9zaimlysgd38sj6v50dc3cb491vl0icipz";
};
};
lwt_log =
{
pname = "lwt_log";
version = "1.1.1";
src = pkgs.fetchurl
{
url = "https://github.com/aantron/lwt_log/archive/1.1.1.tar.gz";
sha256 = "0gszc8nvk2hpfq47plb36qahlnyfq28sa9mhicnf6mg5c7n1kyql";
};
opamInputs = {
inherit (selection) lwt dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lwt_log/lwt_log.1.1.1";
hash = "sha256:18iddwpvs7hwkmsbii11kiw0aaad4kf8iv9vjw01npflxh729vig";
};
};
lwt_react =
{
pname = "lwt_react";
version = "1.1.5";
src = pkgs.fetchurl
{
url = "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz";
sha256 = "15gr6nhhfjyh91v9chvm6j7vnp1hhc60y3plgvcgl5yl5k7xbbj9";
};
opamInputs =
{
inherit (selection) react ocaml lwt dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lwt_react/lwt_react.1.1.5";
hash = "sha256:1k0ysm1wdx55dzma6k1ifx0s09ijxg7jvjh2ak5l540lbjx30cf2";
};
};
mew =
{
pname = "mew";
version = "0.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/mew/archive/0.1.0.tar.gz";
sha256 = "1rjri9mgfb9gn9fmjn0ax21y9jd9wkvr7mmx2jrlqmzgabmqrlv4";
};
opamInputs =
{
inherit (selection) trie result ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/mew/mew.0.1.0";
hash = "sha256:0g9xms016f909fzbwgxcy0k4xmvr5zk5bhnz66v9vpsiak2qm4s3";
};
};
mew_vi =
{
pname = "mew_vi";
version = "0.5.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/mew_vi/archive/0.5.0.tar.gz";
sha256 = "1nmg3cysglgw4115n5zpz4azrfbnfxkn2kvw73chzs69viygm4m6";
};
opamInputs =
{
inherit (selection) react ocaml mew dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/mew_vi/mew_vi.0.5.0";
hash = "sha256:0zsfhxpff78cqk2c81parajb59m7hqf6v8arksxbyfha6mls65hz";
};
};
mmap =
{
pname = "mmap";
version = "1.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/mirage/mmap/releases/download/v1.1.0/mmap-v1.1.0.tbz";
sha256 = "0l6waidal2n8mkdn74avbslvc10sf49f5d889n838z03pra5chsc";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/mmap/mmap.1.1.0";
hash = "sha256:1snhaf6mixmmb49gcin5wmbz4bfjz406mip4556lids8ajm22ibh";
};
};
ocaml =
{
pname = "ocaml";
version = "4.12.0";
src = null;
opamInputs =
{
inherit (selection)
ocaml-config;
ocaml-variants = selection.ocaml-variants or null;
ocaml-system = selection.ocaml-system or null;
ocaml-base-compiler = selection.ocaml-base-compiler or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocaml/ocaml.4.12.0";
hash = "sha256:038vq14gnl2qzgk4mjr0xif1xln30wk5hbj2icvq3ql6hszyrf9g";
};
};
ocaml-base-compiler =
{
pname = "ocaml-base-compiler";
version = "4.12.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/ocaml/archive/4.12.0.tar.gz";
sha256 = "0i37laikik5vwydw1cwygxd8xq2d6n35l20irgrh691njlwpmh5d";
};
opamInputs = {
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocaml-base-compiler/ocaml-base-compiler.4.12.0";
hash = "sha256:12clsv2kmwsfy685kjkjsyv41krfrr04ccpc11xhv6ar0090bsh5";
};
};
ocaml-config =
{
pname = "ocaml-config";
version = "2";
src = null;
opamInputs =
{
ocaml-variants = selection.ocaml-variants or null;
ocaml-system = selection.ocaml-system or null;
ocaml-base-compiler = selection.ocaml-base-compiler or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocaml-config/ocaml-config.2";
hash = "sha256:0h0hgqq9mbywvqygppfdc50gf9ss8a97l4dgsv3hszmzh6gglgrg";
};
};
ocamlbuild =
{
pname = "ocamlbuild";
version = "0.14.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/ocamlbuild/archive/0.14.0.tar.gz";
sha256 = "0y1fskw9rg2y1zgb7whv3v8v4xw04svgxslf3856q2aqd7lrrcl7";
};
opamInputs = {
inherit (selection) ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocamlbuild/ocamlbuild.0.14.0";
hash = "sha256:1r5qnrcxfypzyvjvb3zd9f66kr5ldxdl3g9rsi3pb6040krqb5w7";
};
};
ocamlfind =
{
pname = "ocamlfind";
version = "1.9.3";
src = pkgs.fetchurl
{
url = "http://download.camlcity.org/download/findlib-1.9.3.tar.gz";
sha256 = "0hfcwamcvinmww59b5i4yxbf0kxyzkp5qv3d1c7ybn9q52vgq463";
};
opamInputs =
{
inherit (selection) ocaml;
graphics = selection.graphics or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocamlfind/ocamlfind.1.9.3";
hash = "sha256:1wq1lkw3rpgilprlakznsxxf60mcidn3fzi3vjrgjdrnnp9hvh19";
};
};
ocplib-endian =
{
pname = "ocplib-endian";
version = "1.2";
src = pkgs.fetchurl
{
url = "https://github.com/OCamlPro/ocplib-endian/archive/refs/tags/1.2.tar.gz";
sha256 = "085kskr0cxcnv2d62n3jq1r273p7giisy56zfl26mm7amvl79blp";
};
opamInputs =
{
inherit (selection) ocaml dune cppo base-bytes;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocplib-endian/ocplib-endian.1.2";
hash = "sha256:1jldvb471gyhkrzwfvqg722l3a8dc37hhhyas66skjzfmqyi2pnh";
};
};
react =
{
pname = "react";
version = "1.2.1";
src = pkgs.fetchurl
{
url = "http://erratique.ch/software/react/releases/react-1.2.1.tbz";
sha256 = "1aj8w79gdd9xnrbz7s5p8glcb4pmimi8jp9f439dqnf6ih3mqb3v";
};
opamInputs =
{
inherit (selection) topkg ocamlfind ocamlbuild ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/react/react.1.2.1";
hash = "sha256:0wk5i83r2hxz1r1skkhzz8rild68m4g9i9blxigbg9r60hgw18z5";
};
};
result =
{
pname = "result";
version = "1.5";
src = pkgs.fetchurl
{
url = "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz";
sha256 = "0cpfp35fdwnv3p30a06wd0py3805qxmq3jmcynjc3x2qhlimwfkw";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/result/result.1.5";
hash = "sha256:0ybmvlisfz5swvbcq855czz1ysv9zxmb79f1m0x8284hczmfm98f";
};
};
seq =
{
pname = "seq";
version = "base";
src = null;
opamInputs = {
inherit (selection) ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/seq/seq.base";
hash = "sha256:1vm8mk6zm2q3fwnkprl6jib048zr4ysldw0bl74x6wwbxj0vx6k9";
};
};
topkg =
{
pname = "topkg";
version = "1.0.4";
src = pkgs.fetchurl
{
url = "https://erratique.ch/software/topkg/releases/topkg-1.0.4.tbz";
sha256 = "1kzw5cxkizcvh4rgzwgpjlj9hfxfk6yr686bxx6wrbsfs8as371k";
};
opamInputs =
{
inherit (selection) ocamlfind ocamlbuild ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/topkg/topkg.1.0.4";
hash = "sha256:0gvngd4nayhhw02gcsljvmx6jkjpv9m3mqwpgimcfq04h0cf4knb";
};
};
trie =
{
pname = "trie";
version = "1.0.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/trie/archive/1.0.0.tar.gz";
sha256 = "1slq4kiwnc723dsaw15ms7xxpqz061v8zck1m6iyc5j2li70by62";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/trie/trie.1.0.0";
hash = "sha256:1ds07ikjjymacnlxfx1widfi7qz0js61lsqqq0xa90501p17nq10";
};
};
utop =
{
pname = "utop";
version = "development";
src = self.directSrc "utop";
opamInputs =
{
inherit (selection) react ocamlfind ocaml lwt_react lwt lambda-term
dune cppo camomile base-unix base-threads;
};
opamSrc = "utop.opam";
};
zed =
{
pname = "zed";
version = "3.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-community/zed/archive/3.1.0.tar.gz";
sha256 = "1z95fs49hi00xy078a83m0vfdqwjb5953rwr15lfpirldi4v11y3";
};
opamInputs =
{
inherit (selection) react ocaml dune charInfo_width camomile
base-bytes;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/zed/zed.3.1.0";
hash = "sha256:1k1yd4dwg6x5rija3lan3q57nr6f1xa45248613rr7k2x5zdp2nx";
};
};
};
}

555
nix/opam-selection_4_13.nix Normal file
View File

@ -0,0 +1,555 @@
### This file is generated by opam2nix.
self:
let
lib = self.lib;
pkgs = self.pkgs;
selection = self.selection;
repoPath = self.repoPath;
repos =
{
opam-repository =
rec {
fetch =
{
owner = "ocaml";
repo = "opam-repository";
rev = "7cf7c46fd0c289f632b288a2ae1bc99ea3d378cc";
sha256 = "0xiibs33w7hn8fkmk8mvgxdly70rral2nadkip5rmivlv6f91n3h";
};
src = (pkgs.fetchFromGitHub) fetch;
};
};
in
{
format-version = 4;
inherit repos;
ocaml-version = "4.13.1";
selection =
{
base-bytes =
{
pname = "base-bytes";
version = "base";
src = null;
opamInputs = {
inherit (selection) ocamlfind ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/base-bytes/base-bytes.base";
hash = "sha256:0a68lmbf68jgm1i3b59j2sc3ha9yhv4678f9mfwwvczw88prq7l3";
};
};
base-threads =
{
pname = "base-threads";
version = "base";
src = null;
opamInputs = {
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/base-threads/base-threads.base";
hash = "sha256:1c4bpyh61ampjgk5yh3inrgcpf1z1xv0pshn54ycmpn4dyzv0p2x";
};
};
base-unix =
{
pname = "base-unix";
version = "base";
src = null;
opamInputs = {
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/base-unix/base-unix.base";
hash = "sha256:0mpsvb7684g723ylngryh15aqxg3blb7hgmq2fsqjyppr36iyzwg";
};
};
camomile =
{
pname = "camomile";
version = "1.0.2";
src = pkgs.fetchurl
{
url = "https://github.com/yoriyuki/Camomile/releases/download/1.0.2/camomile-1.0.2.tbz";
sha256 = "0chn7ldqb3wyf95yhmsxxq65cif56smgz1mhhc7m0dpwmyq1k97h";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/camomile/camomile.1.0.2";
hash = "sha256:08z0c35bcm72ch2n7w0b1x7xnwn2hhcky5r6vyz8hi4m9jqv6azv";
};
};
charInfo_width =
{
pname = "charInfo_width";
version = "1.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/charInfo_width/archive/1.1.0.tar.gz";
sha256 = "0wl1hcwbx2mmgbhwh1wwgjixvppjq0k43nqyq13xm4pvgdxfvci1";
};
opamInputs =
{
inherit (selection) result ocaml dune camomile;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/charInfo_width/charInfo_width.1.1.0";
hash = "sha256:1vx3dlvd3xslkc9q93yyqnn479sj4wpmp9xwngipnibla7mcpyq7";
};
};
cppo =
{
pname = "cppo";
version = "1.6.8";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-community/cppo/archive/v1.6.8.tar.gz";
sha256 = "0lxy4xkkkwgs1cj6d9lyzsqi9f6fc9r6cir5imi7yjqrpd86s1by";
};
opamInputs =
{
inherit (selection) ocaml dune base-unix;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/cppo/cppo.1.6.8";
hash = "sha256:0pzd8irqkkkpfgw8nq9d21z9rj5m3qlzixyb7ybfy4b1fwh3n8bp";
};
};
csexp =
{
pname = "csexp";
version = "1.5.1";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-dune/csexp/releases/download/1.5.1/csexp-1.5.1.tbz";
sha256 = "00mc19f89pxpmjl62862ya5kjcfrl8rjzvs00j05h2m9bw3f81fn";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/csexp/csexp.1.5.1";
hash = "sha256:01lc95kz13gpki4xazyh6n20kv1g9inyb5myv240wl2n9v50z8fl";
};
};
dune =
{
pname = "dune";
version = "2.9.2";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/dune/releases/download/2.9.2/dune-site-2.9.2.tbz";
sha256 = "0ivl5r9diky8r1rfka7427kc3lh168mrz0ywdxgv8y5rgx8crrxq";
};
opamInputs =
{
inherit (selection) base-unix
base-threads;
ocamlfind-secondary = selection.ocamlfind-secondary or null;
ocaml = selection.ocaml or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/dune/dune.2.9.2";
hash = "sha256:0qzzy2kn29ww9ryl2fvhkph9lmc112yr86xn8r8s9rbaz2zfkm6x";
};
};
dune-configurator =
{
pname = "dune-configurator";
version = "2.9.1";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/dune/releases/download/2.9.1/dune-2.9.1.tbz";
sha256 = "09lzq04b642iy0ljp59p32lgk3q8iphjh8fkdp69q29l5frgwx5k";
};
opamInputs =
{
inherit (selection) result ocaml dune csexp;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/dune-configurator/dune-configurator.2.9.1";
hash = "sha256:1aik9w82r8vbb9fsfphpb0vam68s19ggkxprnqr99ygyalp2b71j";
};
};
lambda-term =
{
pname = "lambda-term";
version = "3.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-community/lambda-term/archive/3.1.0.tar.gz";
sha256 = "1462j2c2nnzv6ng8b6907bw0zy3mhhnnjdm8k6as0sgm9ls0r77r";
};
opamInputs =
{
inherit (selection) zed react ocaml mew_vi lwt_react lwt_log lwt dune
camomile;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lambda-term/lambda-term.3.1.0";
hash = "sha256:0v2wk9gxj0p1znivgrbshj038l2rjhzrhk61s7kiayy9ka101cav";
};
};
lwt =
{
pname = "lwt";
version = "5.5.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz";
sha256 = "15gr6nhhfjyh91v9chvm6j7vnp1hhc60y3plgvcgl5yl5k7xbbj9";
};
opamInputs =
{
inherit (selection) seq result ocplib-endian ocaml mmap
dune-configurator dune
cppo;
ocaml-syntax-shims = selection.ocaml-syntax-shims or null;
conf-libev = selection.conf-libev or null;
base-unix = selection.base-unix or null;
base-threads = selection.base-threads or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lwt/lwt.5.5.0";
hash = "sha256:0iadlycd4q93lsk07k9zaimlysgd38sj6v50dc3cb491vl0icipz";
};
};
lwt_log =
{
pname = "lwt_log";
version = "1.1.1";
src = pkgs.fetchurl
{
url = "https://github.com/aantron/lwt_log/archive/1.1.1.tar.gz";
sha256 = "0gszc8nvk2hpfq47plb36qahlnyfq28sa9mhicnf6mg5c7n1kyql";
};
opamInputs = {
inherit (selection) lwt dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lwt_log/lwt_log.1.1.1";
hash = "sha256:18iddwpvs7hwkmsbii11kiw0aaad4kf8iv9vjw01npflxh729vig";
};
};
lwt_react =
{
pname = "lwt_react";
version = "1.1.5";
src = pkgs.fetchurl
{
url = "https://github.com/ocsigen/lwt/archive/refs/tags/5.5.0.tar.gz";
sha256 = "15gr6nhhfjyh91v9chvm6j7vnp1hhc60y3plgvcgl5yl5k7xbbj9";
};
opamInputs =
{
inherit (selection) react ocaml lwt dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/lwt_react/lwt_react.1.1.5";
hash = "sha256:1k0ysm1wdx55dzma6k1ifx0s09ijxg7jvjh2ak5l540lbjx30cf2";
};
};
mew =
{
pname = "mew";
version = "0.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/mew/archive/0.1.0.tar.gz";
sha256 = "1rjri9mgfb9gn9fmjn0ax21y9jd9wkvr7mmx2jrlqmzgabmqrlv4";
};
opamInputs =
{
inherit (selection) trie result ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/mew/mew.0.1.0";
hash = "sha256:0g9xms016f909fzbwgxcy0k4xmvr5zk5bhnz66v9vpsiak2qm4s3";
};
};
mew_vi =
{
pname = "mew_vi";
version = "0.5.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/mew_vi/archive/0.5.0.tar.gz";
sha256 = "1nmg3cysglgw4115n5zpz4azrfbnfxkn2kvw73chzs69viygm4m6";
};
opamInputs =
{
inherit (selection) react ocaml mew dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/mew_vi/mew_vi.0.5.0";
hash = "sha256:0zsfhxpff78cqk2c81parajb59m7hqf6v8arksxbyfha6mls65hz";
};
};
mmap =
{
pname = "mmap";
version = "1.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/mirage/mmap/releases/download/v1.1.0/mmap-v1.1.0.tbz";
sha256 = "0l6waidal2n8mkdn74avbslvc10sf49f5d889n838z03pra5chsc";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/mmap/mmap.1.1.0";
hash = "sha256:1snhaf6mixmmb49gcin5wmbz4bfjz406mip4556lids8ajm22ibh";
};
};
ocaml =
{
pname = "ocaml";
version = "4.13.1";
src = null;
opamInputs =
{
inherit (selection)
ocaml-config;
ocaml-variants = selection.ocaml-variants or null;
ocaml-system = selection.ocaml-system or null;
ocaml-base-compiler = selection.ocaml-base-compiler or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocaml/ocaml.4.13.1";
hash = "sha256:1ahflchxawi94yk4vwdhihkdlw51x2f9ljwngmd9ymzh88lyzfpn";
};
};
ocaml-base-compiler =
{
pname = "ocaml-base-compiler";
version = "4.13.1";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/ocaml/archive/4.13.1.tar.gz";
sha256 = "1i7ad8lh5l74wb3yzmhlv529wc75a5sjybzkad7wdl8zrj47jk0r";
};
opamInputs = {
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocaml-base-compiler/ocaml-base-compiler.4.13.1";
hash = "sha256:069i5vsndd9lsvdm5wk898nfnc85ww7459nibjg6881ww43w8ck1";
};
};
ocaml-config =
{
pname = "ocaml-config";
version = "2";
src = null;
opamInputs =
{
ocaml-variants = selection.ocaml-variants or null;
ocaml-system = selection.ocaml-system or null;
ocaml-base-compiler = selection.ocaml-base-compiler or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocaml-config/ocaml-config.2";
hash = "sha256:0h0hgqq9mbywvqygppfdc50gf9ss8a97l4dgsv3hszmzh6gglgrg";
};
};
ocamlbuild =
{
pname = "ocamlbuild";
version = "0.14.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml/ocamlbuild/archive/0.14.0.tar.gz";
sha256 = "0y1fskw9rg2y1zgb7whv3v8v4xw04svgxslf3856q2aqd7lrrcl7";
};
opamInputs = {
inherit (selection) ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocamlbuild/ocamlbuild.0.14.0";
hash = "sha256:1r5qnrcxfypzyvjvb3zd9f66kr5ldxdl3g9rsi3pb6040krqb5w7";
};
};
ocamlfind =
{
pname = "ocamlfind";
version = "1.9.3";
src = pkgs.fetchurl
{
url = "http://download.camlcity.org/download/findlib-1.9.3.tar.gz";
sha256 = "0hfcwamcvinmww59b5i4yxbf0kxyzkp5qv3d1c7ybn9q52vgq463";
};
opamInputs =
{
inherit (selection) ocaml;
graphics = selection.graphics or null;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocamlfind/ocamlfind.1.9.3";
hash = "sha256:1wq1lkw3rpgilprlakznsxxf60mcidn3fzi3vjrgjdrnnp9hvh19";
};
};
ocplib-endian =
{
pname = "ocplib-endian";
version = "1.2";
src = pkgs.fetchurl
{
url = "https://github.com/OCamlPro/ocplib-endian/archive/refs/tags/1.2.tar.gz";
sha256 = "085kskr0cxcnv2d62n3jq1r273p7giisy56zfl26mm7amvl79blp";
};
opamInputs =
{
inherit (selection) ocaml dune cppo base-bytes;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/ocplib-endian/ocplib-endian.1.2";
hash = "sha256:1jldvb471gyhkrzwfvqg722l3a8dc37hhhyas66skjzfmqyi2pnh";
};
};
react =
{
pname = "react";
version = "1.2.1";
src = pkgs.fetchurl
{
url = "http://erratique.ch/software/react/releases/react-1.2.1.tbz";
sha256 = "1aj8w79gdd9xnrbz7s5p8glcb4pmimi8jp9f439dqnf6ih3mqb3v";
};
opamInputs =
{
inherit (selection) topkg ocamlfind ocamlbuild ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/react/react.1.2.1";
hash = "sha256:0wk5i83r2hxz1r1skkhzz8rild68m4g9i9blxigbg9r60hgw18z5";
};
};
result =
{
pname = "result";
version = "1.5";
src = pkgs.fetchurl
{
url = "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz";
sha256 = "0cpfp35fdwnv3p30a06wd0py3805qxmq3jmcynjc3x2qhlimwfkw";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/result/result.1.5";
hash = "sha256:0ybmvlisfz5swvbcq855czz1ysv9zxmb79f1m0x8284hczmfm98f";
};
};
seq =
{
pname = "seq";
version = "base";
src = null;
opamInputs = {
inherit (selection) ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/seq/seq.base";
hash = "sha256:1vm8mk6zm2q3fwnkprl6jib048zr4ysldw0bl74x6wwbxj0vx6k9";
};
};
topkg =
{
pname = "topkg";
version = "1.0.4";
src = pkgs.fetchurl
{
url = "https://erratique.ch/software/topkg/releases/topkg-1.0.4.tbz";
sha256 = "1kzw5cxkizcvh4rgzwgpjlj9hfxfk6yr686bxx6wrbsfs8as371k";
};
opamInputs =
{
inherit (selection) ocamlfind ocamlbuild ocaml;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/topkg/topkg.1.0.4";
hash = "sha256:0gvngd4nayhhw02gcsljvmx6jkjpv9m3mqwpgimcfq04h0cf4knb";
};
};
trie =
{
pname = "trie";
version = "1.0.0";
src = pkgs.fetchurl
{
url = "https://github.com/kandu/trie/archive/1.0.0.tar.gz";
sha256 = "1slq4kiwnc723dsaw15ms7xxpqz061v8zck1m6iyc5j2li70by62";
};
opamInputs = {
inherit (selection) ocaml dune;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/trie/trie.1.0.0";
hash = "sha256:1ds07ikjjymacnlxfx1widfi7qz0js61lsqqq0xa90501p17nq10";
};
};
utop =
{
pname = "utop";
version = "development";
src = self.directSrc "utop";
opamInputs =
{
inherit (selection) react ocamlfind ocaml lwt_react lwt lambda-term
dune cppo camomile base-unix base-threads;
};
opamSrc = "utop.opam";
};
zed =
{
pname = "zed";
version = "3.1.0";
src = pkgs.fetchurl
{
url = "https://github.com/ocaml-community/zed/archive/3.1.0.tar.gz";
sha256 = "1z95fs49hi00xy078a83m0vfdqwjb5953rwr15lfpirldi4v11y3";
};
opamInputs =
{
inherit (selection) react ocaml dune charInfo_width camomile
base-bytes;
};
opamSrc = repoPath (repos.opam-repository.src)
{
package = "packages/zed/zed.3.1.0";
hash = "sha256:1k1yd4dwg6x5rija3lan3q57nr6f1xa45248613rr7k2x5zdp2nx";
};
};
};
}

4
nix/opam2nix.nix Normal file
View File

@ -0,0 +1,4 @@
{ source ? builtins.fetchTarball "https://github.com/timbertson/opam2nix/archive/v1.tar.gz"
, pkgs
, ocamlPackagesOverride }:
import source { inherit pkgs ocamlPackagesOverride; }

10
shell.nix Normal file
View File

@ -0,0 +1,10 @@
{ pkgs ? import <nixpkgs> {}
, ocamlVersion ? import ./nix/ocamlDefaultVersion.nix }:
let
ocamlPackages = pkgs.ocaml-ng."ocamlPackages_${ocamlVersion}";
local = pkgs.callPackage ./. { inherit ocamlVersion; };
in
pkgs.mkShell {
inputsFrom = with local; [ utop ];
buildInputs = [ ocamlPackages.ocaml-lsp ocamlPackages.ocp-indent ];
}