uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,39 @@
{ lib, stdenv, fetchFromGitHub, ocaml, findlib, opaline }:
stdenv.mkDerivation rec {
pname = "afl-persistent";
version = "1.3";
name = "ocaml${ocaml.version}-${pname}-${version}";
src = fetchFromGitHub {
owner = "stedolan";
repo = "ocaml-${pname}";
rev = "v${version}";
sha256 = "06yyds2vcwlfr2nd3gvyrazlijjcrd1abnvkfpkaadgwdw3qam1i";
};
nativeBuildInputs = [ ocaml findlib ];
# don't run tests in buildPhase
# don't overwrite test binary
postPatch = ''
sed -i 's/ && \.\/test$//' build.sh
sed -i '/^ocamlopt.*test.ml -o test$/ s/$/2/' build.sh
patchShebangs build.sh
'';
buildPhase = "./build.sh";
installPhase = ''
${opaline}/bin/opaline -prefix $out -libdir $out/lib/ocaml/${ocaml.version}/site-lib/ ${pname}.install
'';
doCheck = true;
checkPhase = "./_build/test && ./_build/test2";
meta = with lib; {
homepage = "https://github.com/stedolan/ocaml-afl-persistent";
description = "persistent-mode afl-fuzz for ocaml";
license = licenses.mit;
maintainers = [ maintainers.sternenseemann ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, buildDunePackage, fetchurl
, astring, cmdliner, fmt, uuidm, re, stdlib-shims, uutf, ocaml-syntax-shims
}:
buildDunePackage rec {
pname = "alcotest";
version = "1.5.0";
useDune2 = true;
src = fetchurl {
url = "https://github.com/mirage/alcotest/releases/download/${version}/alcotest-js-${version}.tbz";
sha256 = "sha256-VCgZB+AteJld8kbcLhDtGCgoKUrSBZNHoeOhM1SEj2w=";
};
nativeBuildInputs = [ ocaml-syntax-shims ];
propagatedBuildInputs = [ astring cmdliner fmt uuidm re stdlib-shims uutf ];
doCheck = true;
meta = with lib; {
homepage = "https://github.com/mirage/alcotest";
description = "A lightweight and colourful test framework";
license = licenses.isc;
maintainers = [ maintainers.ericbmerritt ];
};
}

View file

@ -0,0 +1,19 @@
{ lib, buildDunePackage, alcotest, logs, ocaml_lwt, fmt
, re, cmdliner
}:
buildDunePackage {
pname = "alcotest-lwt";
inherit (alcotest) version src useDune2;
propagatedBuildInputs = [ alcotest logs ocaml_lwt fmt ];
doCheck = true;
checkInputs = [ re cmdliner ];
meta = alcotest.meta // {
description = "Lwt-based helpers for Alcotest";
};
}

View file

@ -0,0 +1,16 @@
{ lib, buildDunePackage, alcotest, lwt, logs, mirage-clock, duration }:
buildDunePackage {
pname = "alcotest-mirage";
inherit (alcotest) version src useDune2;
propagatedBuildInputs = [ alcotest lwt logs mirage-clock duration ];
doCheck = true;
meta = alcotest.meta // {
description = "Mirage implementation for Alcotest";
maintainers = with lib.maintainers; [ ulrikstrid anmonteiro ];
};
}

View file

@ -0,0 +1,25 @@
{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, alsa-lib }:
buildDunePackage rec {
pname = "alsa";
version = "0.3.0";
minimalOCamlVersion = "4.02";
src = fetchFromGitHub {
owner = "savonet";
repo = "ocaml-alsa";
rev = version;
sha256 = "1qy22g73qc311rmv41w005rdlj5mfnn4yj1dx1jhqzr31zixl8hj";
};
buildInputs = [ dune-configurator ];
propagatedBuildInputs = [ alsa-lib ];
meta = with lib; {
homepage = "https://github.com/savonet/ocaml-alsa";
description = "OCaml interface for libasound2";
license = licenses.gpl2Only;
maintainers = with maintainers; [ dandellion ];
};
}

View file

@ -0,0 +1,19 @@
{ lib, fetchFromGitHub, buildDunePackage, angstrom, async }:
buildDunePackage rec {
pname = "angstrom-async";
inherit (angstrom) version useDune2 src;
minimumOCamlVersion = "4.04.1";
propagatedBuildInputs = [ angstrom async ];
doCheck = true;
meta = {
inherit (angstrom.meta) homepage license;
description = "Async support for Angstrom";
maintainers = with lib.maintainers; [ romildo ];
};
}

View file

@ -0,0 +1,19 @@
{ lib, fetchFromGitHub, buildDunePackage, angstrom, ocaml_lwt }:
buildDunePackage rec {
pname = "angstrom-lwt-unix";
inherit (angstrom) version useDune2 src;
minimumOCamlVersion = "4.03";
propagatedBuildInputs = [ angstrom ocaml_lwt ];
doCheck = true;
meta = {
inherit (angstrom.meta) homepage license;
description = "Lwt_unix support for Angstrom";
maintainers = with lib.maintainers; [ romildo ];
};
}

View file

@ -0,0 +1,19 @@
{ lib, fetchFromGitHub, buildDunePackage, angstrom }:
buildDunePackage rec {
pname = "angstrom-unix";
inherit (angstrom) version useDune2 src;
minimumOCamlVersion = "4.03";
propagatedBuildInputs = [ angstrom ];
doCheck = true;
meta = {
inherit (angstrom.meta) homepage license;
description = "Unix support for Angstrom";
maintainers = with lib.maintainers; [ romildo ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, fetchFromGitHub, buildDunePackage, ocaml, ocaml-syntax-shims, alcotest, result, bigstringaf, ppx_let }:
buildDunePackage rec {
pname = "angstrom";
version = "0.15.0";
useDune2 = true;
minimumOCamlVersion = "4.04";
src = fetchFromGitHub {
owner = "inhabitedtype";
repo = pname;
rev = version;
sha256 = "1hmrkdcdlkwy7rxhngf3cv3sa61cznnd9p5lmqhx20664gx2ibrh";
};
checkInputs = [ alcotest ppx_let ];
buildInputs = [ ocaml-syntax-shims ];
propagatedBuildInputs = [ bigstringaf result ];
doCheck = lib.versionAtLeast ocaml.version "4.05";
meta = {
homepage = "https://github.com/inhabitedtype/angstrom";
description = "OCaml parser combinators built for speed and memory efficiency";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ sternenseemann ];
};
}

View file

@ -0,0 +1,29 @@
{ lib, buildDunePackage, fetchFromGitHub }:
buildDunePackage rec {
pname = "ANSITerminal";
version = "0.8.2";
useDune2 = true;
src = fetchFromGitHub {
owner = "Chris00";
repo = pname;
rev = version;
sha256 = "0dyjischrgwlxqz1p5zbqq76jvk6pl1qj75i7ydhijssr9pj278d";
};
doCheck = true;
meta = with lib; {
description = "A module allowing to use the colors and cursor movements on ANSI terminals";
longDescription = ''
ANSITerminal is a module allowing to use the colors and cursor
movements on ANSI terminals. It also works on the windows shell (but
this part is currently work in progress).
'';
inherit (src.meta) homepage;
license = licenses.lgpl3;
maintainers = [ maintainers.jirkamarsik ];
};
}

View file

@ -0,0 +1,23 @@
{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, libao }:
buildDunePackage rec {
pname = "ao";
version = "0.2.4";
src = fetchFromGitHub {
owner = "savonet";
repo = "ocaml-ao";
rev = "v${version}";
sha256 = "sha256-HhJdb4i9B4gz3emgDCDT4riQuAsY4uP/47biu7EZ+sk=";
};
buildInputs = [ dune-configurator ];
propagatedBuildInputs = [ libao ];
meta = with lib; {
homepage = "https://github.com/savonet/ocaml-ao";
description = "OCaml bindings for libao";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ dandellion ];
};
}

View file

@ -0,0 +1,42 @@
{ stdenv, lib, fetchFromGitHub, perl, gmp, mpfr, ppl, ocaml, findlib, camlidl, mlgmpidl }:
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-apron";
version = "0.9.13";
src = fetchFromGitHub {
owner = "antoinemine";
repo = "apron";
rev = "v${version}";
sha256 = "14ymjahqdxj26da8wik9d5dzlxn81b3z1iggdl7rn2nn06jy7lvy";
};
nativeBuildInputs = [ ocaml findlib perl ];
buildInputs = [ gmp mpfr ppl camlidl ];
propagatedBuildInputs = [ mlgmpidl ];
strictDeps = false;
outputs = [ "out" "bin" "dev" ];
configurePhase = ''
runHook preConfigure
./configure -prefix $out
mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
runHook postConfigure
'';
postInstall = ''
mkdir -p $dev/lib
mv $out/lib/ocaml $dev/lib/
mkdir -p $bin
mv $out/bin $bin/
'';
meta = {
license = lib.licenses.lgpl21;
homepage = "http://apron.cri.ensmp.fr/library/";
maintainers = [ lib.maintainers.vbgl ];
description = "Numerical abstract domain library";
inherit (ocaml.meta) platforms;
};
}

View file

@ -0,0 +1,55 @@
{ lib, buildDunePackage, fetchurl
, cstruct, ipaddr, macaddr, logs, lwt, duration
, mirage-time, mirage-protocols, mirage-profile
, alcotest, ethernet, fmt, mirage-vnetif, mirage-random
, mirage-random-test, mirage-clock-unix, mirage-time-unix
, bisect_ppx
}:
buildDunePackage rec {
pname = "arp";
version = "3.0.0";
src = fetchurl {
url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
sha256 = "1x3l8v96ywc3wrcwbf0j04b8agap4fif0fz6ki2ndzx57yqcjszn";
};
minimumOCamlVersion = "4.06";
useDune2 = true;
nativeBuildInputs = [
bisect_ppx
];
propagatedBuildInputs = [
cstruct
duration
ipaddr
logs
lwt
macaddr
mirage-profile
mirage-protocols
mirage-time
];
doCheck = true;
checkInputs = [
alcotest
ethernet
mirage-clock-unix
mirage-profile
mirage-random
mirage-random-test
mirage-time-unix
mirage-vnetif
];
meta = with lib; {
description = "Address Resolution Protocol purely in OCaml";
homepage = "https://github.com/mirage/arp";
license = licenses.isc;
maintainers = with maintainers; [ sternenseemann ];
};
}

View file

@ -0,0 +1,27 @@
{ lib, buildDunePackage, fetchurl
, cstruct, zarith, bigarray-compat, stdlib-shims, ptime, alcotest
}:
buildDunePackage rec {
minimalOCamlVersion = "4.08";
pname = "asn1-combinators";
version = "0.2.6";
src = fetchurl {
url = "https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v${version}/asn1-combinators-v${version}.tbz";
sha256 = "sha256-ASreDYhp72IQY3UsHPjqAm9rxwL+0Q35r1ZojikbGpE=";
};
propagatedBuildInputs = [ cstruct zarith bigarray-compat stdlib-shims ptime ];
doCheck = true;
checkInputs = [ alcotest ];
meta = with lib; {
homepage = "https://github.com/mirleft/ocaml-asn1-combinators";
description = "Combinators for expressing ASN.1 grammars in OCaml";
license = licenses.isc;
maintainers = with maintainers; [ vbgl ];
};
}

View file

@ -0,0 +1,50 @@
{ stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, topkg }:
let
# Use astring 0.8.3 for OCaml < 4.05
param =
if lib.versionAtLeast ocaml.version "4.05"
then {
version = "0.8.5";
sha256 = "1ykhg9gd3iy7zsgyiy2p9b1wkpqg9irw5pvcqs3sphq71iir4ml6";
} else {
version = "0.8.3";
sha256 = "0ixjwc3plrljvj24za3l9gy0w30lsbggp8yh02lwrzw61ls4cri0";
};
in
stdenv.mkDerivation {
pname = "ocaml${ocaml.version}-astring";
inherit (param) version;
src = fetchurl {
url = "https://erratique.ch/software/astring/releases/astring-${param.version}.tbz";
inherit (param) sha256;
};
nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
buildInputs = [ topkg ];
strictDeps = true;
inherit (topkg) buildPhase installPhase;
meta = {
homepage = "https://erratique.ch/software/astring";
description = "Alternative String module for OCaml";
longDescription = ''
Astring exposes an alternative String module for OCaml. This module tries
to balance minimality and expressiveness for basic, index-free, string
processing and provides types and functions for substrings, string sets
and string maps.
Remaining compatible with the OCaml String module is a non-goal.
The String module exposed by Astring has exception safe functions, removes
deprecated and rarely used functions, alters some signatures and names,
adds a few missing functions and fully exploits OCaml's newfound string
immutability.
'';
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ sternenseemann ];
};
}

View file

@ -0,0 +1,26 @@
{ lib, atdgen-codec-runtime, menhir, easy-format, buildDunePackage, which, re, nixosTests }:
buildDunePackage rec {
pname = "atd";
inherit (atdgen-codec-runtime) version src;
minimalOCamlVersion = "4.08";
nativeBuildInputs = [ which menhir ];
buildInputs = [ re ];
propagatedBuildInputs = [ easy-format ];
strictDeps = true;
passthru.tests = {
smoke-test = nixosTests.atd;
};
meta = with lib; {
description = "Syntax for cross-language type definitions";
homepage = "https://github.com/mjambon/atd";
license = licenses.mit;
maintainers = with maintainers; [ aij jwilberding ];
mainProgram = "atdcat";
};
}

View file

@ -0,0 +1,18 @@
{ lib, buildDunePackage, fetchurl }:
buildDunePackage rec {
pname = "atdgen-codec-runtime";
version = "2.4.1";
src = fetchurl {
url = "https://github.com/ahrefs/atd/releases/download/${version}/atdgen-codec-runtime-${version}.tbz";
sha256 = "sha256:16888rnvhgh5yxxsnzsj10g5pzs1l4dn27n23kk2f4641dn26s3a";
};
meta = {
description = "Runtime for atdgen generated bucklescript converters";
homepage = "https://github.com/ahrefs/atd";
maintainers = [ lib.maintainers.vbgl ];
license = lib.licenses.mit;
};
}

View file

@ -0,0 +1,17 @@
{ buildDunePackage, alcotest, atd, atdgen-codec-runtime, atdgen-runtime, biniou, re, yojson }:
buildDunePackage {
pname = "atdgen";
inherit (atdgen-codec-runtime) version src;
buildInputs = [ atd re ];
propagatedBuildInputs = [ atdgen-runtime ];
doCheck = true;
checkInputs = [ alcotest atdgen-codec-runtime ];
meta = (builtins.removeAttrs atd.meta [ "mainProgram" ]) // {
description = "Generates efficient JSON serializers, deserializers and validators";
};
}

View file

@ -0,0 +1,15 @@
{ buildDunePackage, atdgen-codec-runtime, biniou, camlp-streams, yojson }:
buildDunePackage rec {
pname = "atdgen-runtime";
inherit (atdgen-codec-runtime) version src;
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [ biniou camlp-streams yojson ];
meta = atdgen-codec-runtime.meta // {
description = "Runtime library for code generated by atdgen";
};
}

View file

@ -0,0 +1,40 @@
{ lib, buildDunePackage, fetchurl
, ppx_sexp_conv, ppx_cstruct
, mirage-crypto, mirage-crypto-rng, mirage-crypto-pk
, x509, cstruct, cstruct-unix, cstruct-sexp, sexplib, eqaf
, rresult, mtime, logs, fmt, cmdliner, base64, hacl_x25519
, zarith
}:
buildDunePackage rec {
pname = "awa";
version = "0.0.5";
minimumOCamlVersion = "4.07";
useDune2 = true;
src = fetchurl {
url = "https://github.com/mirage/awa-ssh/releases/download/v${version}/awa-${version}.tbz";
sha256 = "14hqzmikp3hlynhs0wnwj2491106if183swsl7ldk4215a0b7ms4";
};
nativeBuildInputs = [ ppx_cstruct ];
propagatedBuildInputs = [
mirage-crypto mirage-crypto-rng mirage-crypto-pk x509
cstruct cstruct-sexp sexplib mtime
logs base64 hacl_x25519 zarith
ppx_sexp_conv eqaf
];
doCheck = true;
checkInputs = [ cstruct-unix cmdliner fmt ];
meta = with lib; {
description = "SSH implementation in OCaml";
homepage = "https://github.com/mirage/awa-ssh";
changelog = "https://github.com/mirage/awa-ssh/raw/v${version}/CHANGES.md";
license = licenses.isc;
maintainers = [ maintainers.sternenseemann ];
};
}

View file

@ -0,0 +1,15 @@
{ buildDunePackage, awa
, cstruct, mtime, lwt, cstruct-unix, mirage-crypto-rng
}:
buildDunePackage {
pname = "awa-lwt";
inherit (awa) version src useDune2;
propagatedBuildInputs = [
awa cstruct mtime lwt cstruct-unix mirage-crypto-rng
];
meta = awa.meta // { mainProgram = "awa_lwt_server"; };
}

View file

@ -0,0 +1,15 @@
{ buildDunePackage, awa
, cstruct, mtime, lwt, mirage-flow, mirage-clock, logs
}:
buildDunePackage {
pname = "awa-mirage";
inherit (awa) version src useDune2;
propagatedBuildInputs = [
awa cstruct mtime lwt mirage-flow mirage-clock logs
];
inherit (awa) meta;
}

View file

@ -0,0 +1,32 @@
From e6f6d1529d1725e8c1ed3c96eecc4aea43417aea Mon Sep 17 00:00:00 2001
From: Matthew Maurer <matthew.r.maurer@gmail.com>
Date: Sun, 19 Apr 2020 15:50:01 -0700
Subject: [PATCH] Remove attempt to work around libcurses dependency issues.
BAP doesn't actually link against libcurses, LLVM does. By adding
-lcurses to this file, we accidentally broke linking on any systems
where LLVM got linked against libncurses (not libcurses) without a
libcurses compatibility shim.
Overall, we should get -l flags from llvm-config, not attempt to
shoehorn them in later, as this is fragile.
---
oasis/llvm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/oasis/llvm b/oasis/llvm
index 966c407..fba3fb4 100644
--- a/oasis/llvm
+++ b/oasis/llvm
@@ -31,7 +31,7 @@ Library bap_llvm
Bap_llvm_ogre_samples,
Bap_llvm_ogre_types
CCOpt: $cc_optimization
- CCLib: $llvm_lib $cxxlibs $llvm_ldflags -lcurses
+ CCLib: $llvm_lib $cxxlibs $llvm_ldflags -lncurses
CSources: llvm_disasm.h,
llvm_disasm.c,
llvm_stubs.c,
--
2.22.0

View file

@ -0,0 +1,82 @@
{ lib, stdenv, fetchFromGitHub, fetchurl
, ocaml, findlib, ocamlbuild, ocaml_oasis
, bitstring, camlzip, cmdliner, core_kernel, ezjsonm, fileutils, ocaml_lwt, ocamlgraph, ocurl, re, uri, zarith, piqi, piqi-ocaml, uuidm, llvm, frontc, ounit, ppx_jane, parsexp
, utop, libxml2, ncurses
, linenoise
, ppx_bap
, ppx_bitstring
, yojson
, which, makeWrapper, writeText
, z3
}:
if lib.versionOlder ocaml.version "4.08"
then throw "BAP is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-bap";
version = "2.4.0";
src = fetchFromGitHub {
owner = "BinaryAnalysisPlatform";
repo = "bap";
rev = "v${version}";
sha256 = "1xc8zfcwm40zihs3ajcrh2x32xd08qnygay03qy3qxhybr5hqngr";
};
sigs = fetchurl {
url = "https://github.com/BinaryAnalysisPlatform/bap/releases/download/v${version}/sigs.zip";
sha256 = "0d69jd28z4g64mglq94kj5imhmk5f6sgcsh9q2nij3b0arpcliwk";
};
createFindlibDestdir = true;
setupHook = writeText "setupHook.sh" ''
export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/ocaml${ocaml.version}-bap-${version}/"
export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/ocaml${ocaml.version}-bap-${version}-llvm-plugins/"
'';
nativeBuildInputs = [ which makeWrapper ocaml findlib ocamlbuild ocaml_oasis ];
buildInputs = [ linenoise
ounit
ppx_bitstring
z3
utop libxml2 ncurses ];
propagatedBuildInputs = [ bitstring camlzip cmdliner ppx_bap core_kernel ezjsonm fileutils ocaml_lwt ocamlgraph ocurl re uri zarith piqi parsexp
piqi-ocaml uuidm frontc yojson ];
installPhase = ''
runHook preInstall
export OCAMLPATH=$OCAMLPATH:$OCAMLFIND_DESTDIR;
export PATH=$PATH:$out/bin
export CAML_LD_LIBRARY_PATH=''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}$OCAMLFIND_DESTDIR/bap-plugin-llvm/:$OCAMLFIND_DESTDIR/bap/
mkdir -p $out/lib/bap
make install
rm $out/bin/baptop
makeWrapper ${utop}/bin/utop $out/bin/baptop --prefix OCAMLPATH : $OCAMLPATH --prefix PATH : $PATH --add-flags "-ppx ppx-bap -short-paths -require \"bap.top\""
wrapProgram $out/bin/bapbuild --prefix OCAMLPATH : $OCAMLPATH --prefix PATH : $PATH
ln -s $sigs $out/share/bap/sigs.zip
runHook postInstall
'';
disableIda = "--disable-ida";
disableGhidra = "--disable-ghidra";
patches = [ ./curses_is_ncurses.patch ];
preConfigure = ''
substituteInPlace oasis/elf-loader --replace bitstring.ppx ppx_bitstring
'';
configureFlags = [ "--enable-everything ${disableIda} ${disableGhidra}" "--with-llvm-config=${llvm.dev}/bin/llvm-config" ];
meta = with lib; {
description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages.";
homepage = "https://github.com/BinaryAnalysisPlatform/bap/";
license = licenses.mit;
maintainers = [ maintainers.maurer ];
mainProgram = "bap";
};
}

View file

@ -0,0 +1,26 @@
{ lib, fetchurl, buildDunePackage, ocaml, alcotest, bos, rresult }:
buildDunePackage rec {
pname = "base64";
version = "3.5.0";
minimumOCamlVersion = "4.03";
useDune2 = true;
src = fetchurl {
url = "https://github.com/mirage/ocaml-base64/releases/download/v${version}/base64-v${version}.tbz";
sha256 = "sha256-WJ3pwAV46/54QZismBjTWGxHSyMWts0+HEbMsfYq46Q=";
};
# otherwise fmt breaks evaluation
doCheck = lib.versionAtLeast ocaml.version "4.05";
checkInputs = [ alcotest bos rresult ];
meta = {
homepage = "https://github.com/mirage/ocaml-base64";
description = "Base64 encoding and decoding in OCaml";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ vbgl ];
};
}

View file

@ -0,0 +1,45 @@
{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild, qtest, qcheck, num, ounit
, doCheck ? lib.versionAtLeast ocaml.version "4.08" && !stdenv.isAarch64
}:
if lib.versionOlder ocaml.version "4.02"
then throw "batteries is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-batteries";
version = "3.4.0";
src = fetchFromGitHub {
owner = "ocaml-batteries-team";
repo = "batteries-included";
rev = "v${version}";
sha256 = "sha256:1cd7475n1mxhq482aidmhh27mq5p2vmb8d9fkb1mlza9pz5z66yq";
};
nativeBuildInputs = [ ocaml findlib ocamlbuild ];
checkInputs = [ qtest ounit qcheck ];
propagatedBuildInputs = [ num ];
strictDeps = !doCheck;
inherit doCheck;
checkTarget = "test";
createFindlibDestdir = true;
meta = {
homepage = "http://batteries.forge.ocamlcore.org/";
description = "OCaml Batteries Included";
longDescription = ''
A community-driven effort to standardize on an consistent, documented,
and comprehensive development platform for the OCaml programming
language.
'';
license = lib.licenses.lgpl21Plus;
inherit (ocaml.meta) platforms;
maintainers = [
lib.maintainers.maggesi
];
};
}

View file

@ -0,0 +1,26 @@
{ stdenv, lib, fetchzip, ocaml, findlib, ocamlbuild, ocaml_pcre }:
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-benchmark";
version = "1.4";
src = fetchzip {
url = "https://github.com/Chris00/ocaml-benchmark/releases/download/${version}/benchmark-${version}.tar.gz";
sha256 = "16wi8ld7c3mq77ylpgbnj8qqqqimyzwxs47v06vyrwpma5pab5xa";
};
nativeBuildInputs = [ ocaml findlib ocamlbuild ];
buildInputs = [ ocaml_pcre ];
strictDeps = true;
createFindlibDestdir = true;
meta = {
homepage = "http://ocaml-benchmark.forge.ocamlcore.org/";
inherit (ocaml.meta) platforms;
description = "Benchmark running times of code";
license = lib.licenses.lgpl21;
maintainers = with lib.maintainers; [ volth ];
};
}

View file

@ -0,0 +1,25 @@
{ lib, buildDunePackage, fetchurl, stdlib-shims }:
buildDunePackage rec {
pname = "bheap";
version = "2.0.0";
src = fetchurl {
url = "https://github.com/backtracking/${pname}/releases/download/${version}/${pname}-${version}.tbz";
sha256 = "0dpnpla20lgiicrxl2432m2fcr6y68msw3pnjxqb11xw6yrdfhsz";
};
useDune2 = true;
doCheck = true;
checkInputs = [
stdlib-shims
];
meta = with lib; {
description = "OCaml binary heap implementation by Jean-Christophe Filliatre";
license = licenses.lgpl21Only;
maintainers = [ maintainers.sternenseemann ];
homepage = "https://github.com/backtracking/bheap";
};
}

View file

@ -0,0 +1,24 @@
{ lib, buildDunePackage, fetchFromGitHub }:
buildDunePackage rec {
pname = "bigarray-compat";
version = "1.1.0";
useDune2 = true;
minimalOCamlVersion = "4.02";
src = fetchFromGitHub {
owner = "mirage";
repo = pname;
rev = "v${version}";
sha256 = "sha256-2JVopggK2JuXWEPu8qn12F1jQIJ9OV89XY1rHtUqLkI=";
};
meta = {
description = "Compatibility library to use Stdlib.Bigarray when possible";
inherit (src.meta) homepage;
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vbgl ];
};
}

View file

@ -0,0 +1,31 @@
{ lib, buildDunePackage, fetchurl
, bigarray-compat, alcotest, astring, fpath, bos, findlib, pkg-config
}:
buildDunePackage rec {
pname = "bigarray-overlap";
version = "0.2.0";
src = fetchurl {
url = "https://github.com/dinosaure/overlap/releases/download/v${version}/bigarray-overlap-v${version}.tbz";
sha256 = "1v86avafsbyxjccy0y9gny31s2jzb0kd42v3mhcalklx5f044lcy";
};
minimumOCamlVersion = "4.07";
useDune2 = true;
strictDeps = !doCheck;
propagatedBuildInputs = [ bigarray-compat ];
nativeBuildInputs = [ findlib pkg-config ];
checkInputs = [ alcotest astring fpath bos ];
doCheck = true;
meta = with lib; {
homepage = "https://github.com/dinosaure/overlap";
description = "A minimal library to know that 2 bigarray share physically the same memory or not";
license = licenses.mit;
maintainers = [ maintainers.sternenseemann ];
};
}

View file

@ -0,0 +1,27 @@
{ lib, fetchFromGitHub, buildDunePackage }:
buildDunePackage rec {
pname = "bigstring";
version = "0.3";
useDune2 = true;
minimumOCamlVersion = "4.03";
src = fetchFromGitHub {
owner = "c-cube";
repo = "ocaml-bigstring";
rev = version;
sha256 = "0bkxwdcswy80f6rmx5wjza92xzq4rdqsb4a9fm8aav8bdqx021n8";
};
# Circular dependency with bigstring-unix
doCheck = false;
meta = with lib; {
homepage = "https://github.com/c-cube/ocaml-bigstring";
description = "Bigstring built on top of bigarrays, and convenient functions";
license = licenses.bsd2;
maintainers = [ maintainers.alexfmpe ];
};
}

View file

@ -0,0 +1,32 @@
{ lib, fetchFromGitHub, buildDunePackage, ocaml, alcotest, bigarray-compat, pkg-config }:
buildDunePackage rec {
pname = "bigstringaf";
version = "0.7.0";
useDune2 = true;
minimumOCamlVersion = "4.03";
src = fetchFromGitHub {
owner = "inhabitedtype";
repo = pname;
rev = version;
sha256 = "1q1sqxzdnlrpl95ccrhl7lwy3zswgd9rbn19ildclh0lyi2vazbj";
};
# This currently fails with dune
strictDeps = false;
nativeBuildInputs = [ pkg-config ];
checkInputs = [ alcotest ];
propagatedBuildInputs = [ bigarray-compat ];
doCheck = lib.versionAtLeast ocaml.version "4.05";
meta = {
description = "Bigstring intrinsics and fast blits based on memcpy/memmove";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.vbgl ];
inherit (src.meta) homepage;
};
}

View file

@ -0,0 +1,31 @@
{ lib, fetchFromGitHub, buildDunePackage, easy-format }:
buildDunePackage rec {
pname = "biniou";
version = "1.2.1";
useDune2 = true;
src = fetchFromGitHub {
owner = "ocaml-community";
repo = pname;
rev = version;
sha256 = "0x2kiy809n1j0yf32l7hj102y628jp5jdrkbi3z7ld8jq04h1790";
};
propagatedBuildInputs = [ easy-format ];
strictDeps = true;
postPatch = ''
patchShebangs .
'';
meta = {
description = "Binary data format designed for speed, safety, ease of use and backward compatibility as protocols evolve";
inherit (src.meta) homepage;
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.vbgl ];
mainProgram = "bdump";
};
}

View file

@ -0,0 +1,30 @@
{ lib, buildDunePackage, fetchFromGitHub, fetchpatch
, ounit, async, base64, camlzip, cfstream
, core, ppx_jane, ppx_sexp_conv, rresult, uri, xmlm }:
buildDunePackage rec {
pname = "biocaml";
version = "0.11.1";
useDune2 = true;
minimumOCamlVersion = "4.08";
src = fetchFromGitHub {
owner = "biocaml";
repo = pname;
rev = "v${version}";
sha256 = "1il84vvypgkhdyc2j5fmgh14a58069s6ijbd5dvyl2i7jdxaazji";
};
buildInputs = [ ppx_jane ppx_sexp_conv ];
checkInputs = [ ounit ];
propagatedBuildInputs = [ async base64 camlzip cfstream core rresult uri xmlm ];
meta = with lib; {
description = "Bioinformatics library for Ocaml";
homepage = "http://${pname}.org";
maintainers = [ maintainers.bcdarwin ];
license = licenses.gpl2;
};
}

View file

@ -0,0 +1,29 @@
{ lib, fetchFromGitHub, buildDunePackage, cmdliner, ppxlib }:
buildDunePackage rec {
pname = "bisect_ppx";
version = "2.8.1";
src = fetchFromGitHub {
owner = "aantron";
repo = "bisect_ppx";
rev = version;
sha256 = "sha256-pOeeSxzUF1jXQjA71atSZALdgQ2NB9qpKo5iaDnPwhQ=";
};
minimumOCamlVersion = "4.08";
useDune2 = true;
buildInputs = [
cmdliner
ppxlib
];
meta = with lib; {
description = "Bisect_ppx is a code coverage tool for OCaml and Reason. It helps you test thoroughly by showing what's not tested.";
homepage = "https://github.com/aantron/bisect_ppx";
license = licenses.mit;
maintainers = with maintainers; [ ];
mainProgram = "bisect-ppx-report";
};
}

View file

@ -0,0 +1,49 @@
{ lib
, ocaml
, fetchFromGitHub
, buildDunePackage
, base64
, bos
, core
, lwt_react
, ocamlgraph
, ppx_sexp_conv
, rresult
, sexplib
, tyxml
}:
buildDunePackage rec {
pname = "bistro";
version = "unstable-2021-11-13";
useDune2 = true;
src = fetchFromGitHub {
owner = "pveber";
repo = pname;
rev = "fb285b2c6d8adccda3c71e2293bceb01febd6624";
sha256 = "sha256-JChDU1WH8W9Czkppx9SHiVIu9/7QFWJy2A89oksp0Ek=";
};
propagatedBuildInputs = [
base64
bos
core
lwt_react
ocamlgraph
ppx_sexp_conv
rresult
sexplib
tyxml
];
minimalOCamlVersion = "4.12";
meta = {
inherit (src.meta) homepage;
description = "Build and execute typed scientific workflows";
maintainers = [ lib.maintainers.vbgl ];
license = lib.licenses.gpl2;
};
}

View file

@ -0,0 +1,24 @@
{ lib, fetchFromGitHub, buildDunePackage, stdlib-shims }:
buildDunePackage rec {
pname = "bitstring";
version = "4.1.0";
useDune2 = true;
src = fetchFromGitHub {
owner = "xguerin";
repo = pname;
rev = "v${version}";
sha256 = "0mghsl8b2zd2676mh1r9142hymhvzy9cw8kgkjmirxkn56wbf56b";
};
propagatedBuildInputs = [ stdlib-shims ];
meta = with lib; {
description = "This library adds Erlang-style bitstrings and matching over bitstrings as a syntax extension and library for OCaml";
homepage = "https://github.com/xguerin/bitstring";
license = licenses.lgpl21Plus;
maintainers = [ maintainers.maurer ];
};
}

View file

@ -0,0 +1,22 @@
{ lib, buildDunePackage, ocaml
, bitstring, ppxlib
, ounit
}:
if lib.versionOlder ppxlib.version "0.18.0"
then throw "ppx_bitstring is not available with ppxlib-${ppxlib.version}"
else
buildDunePackage rec {
pname = "ppx_bitstring";
inherit (bitstring) version useDune2 src;
buildInputs = [ bitstring ppxlib ];
doCheck = lib.versionAtLeast ocaml.version "4.08";
checkInputs = [ ounit ];
meta = bitstring.meta // {
description = "Bitstrings and bitstring matching for OCaml - PPX extension";
};
}

View file

@ -0,0 +1,31 @@
{ stdenv, lib, fetchFromGitHub, autoreconfHook, which, ocaml, findlib }:
if lib.versionOlder ocaml.version "4.02"
then throw "bitv is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-bitv";
version = "1.3";
src = fetchFromGitHub {
owner = "backtracking";
repo = "bitv";
rev = version;
sha256 = "sha256-sZwq6c10hBBS9tGvKlWD9GE3JBrZPByfDrXE6xIPcG4=";
};
nativeBuildInputs = [ autoreconfHook which ocaml findlib ];
strictDeps = true;
createFindlibDestdir = true;
meta = {
description = "A bit vector library for OCaml";
license = lib.licenses.lgpl21;
homepage = "https://github.com/backtracking/bitv";
maintainers = [ lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
};
}

View file

@ -0,0 +1,25 @@
{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, libsamplerate, libjack2 }:
buildDunePackage rec {
pname = "bjack";
version = "0.1.6";
useDune2 = true;
src = fetchFromGitHub {
owner = "savonet";
repo = "ocaml-bjack";
rev = "v${version}";
sha256 = "1gf31a8i9byp6npn0x6gydcickn6sf5dnzmqr2c1b9jn2nl7334c";
};
buildInputs = [ dune-configurator ];
propagatedBuildInputs = [ libsamplerate libjack2 ];
meta = with lib; {
homepage = "https://github.com/savonet/ocaml-bjack";
description = "Blocking API for the jack audio connection kit";
license = licenses.lgpl21Only;
maintainers = with maintainers; [ dandellion ];
};
}

View file

@ -0,0 +1,31 @@
{ lib, buildDunePackage, fetchFromGitLab, ff-sig, zarith }:
buildDunePackage rec {
pname = "bls12-381";
version = "1.1.0";
src = fetchFromGitLab {
owner = "dannywillems";
repo = "ocaml-bls12-381";
rev = "22247018c0651ea62ae898c8ffcc388cc73f758f";
sha256 = "ku6Rc+/lwFDoHTZTxgkhiF+kLkagi7944ntcu9vXWgI=";
};
useDune2 = true;
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [
ff-sig
zarith
];
doCheck = true;
meta = {
homepage = "https://gitlab.com/dannywillems/ocaml-bls12-381";
description = "OCaml binding for bls12-381 from librustzcash";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,31 @@
{ lib, fetchFromGitLab, buildDunePackage, ff-sig, zarith }:
buildDunePackage rec {
pname = "bls12-381-gen";
version = "0.4.4";
src = fetchFromGitLab {
owner = "dannywillems";
repo = "ocaml-bls12-381";
rev = "${version}-legacy";
sha256 = "qocIfQdv9rniOUykRulu2zWsqkzT0OrsGczgVKALRuk=";
};
useDune2 = true;
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [
ff-sig
zarith
];
doCheck = true;
meta = {
homepage = "https://gitlab.com/dannywillems/ocaml-bls12-381";
description = "Functors to generate BLS12-381 primitives based on stubs";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,38 @@
{ lib
, buildDunePackage
, fetchFromGitLab
, bls12-381-gen
, ctypes
, ff-pbt
, ff-sig
, tezos-rust-libs
, zarith
, alcotest
}:
buildDunePackage rec {
pname = "bls12-381-legacy";
inherit (bls12-381-gen) version src useDune2 doCheck;
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [
bls12-381-gen
ctypes
ff-pbt
ff-sig
tezos-rust-libs
zarith
];
checkInputs = [
alcotest
];
meta = {
homepage = "https://gitlab.com/dannywillems/ocaml-bls12-381";
description = "UNIX version of BLS12-381 primitives, not implementating the virtual package bls12-381";
license = lib.licenses.mit;
};
}

View file

@ -0,0 +1,34 @@
{ lib
, buildDunePackage
, bls12-381
, hex
, integers
, zarith
, alcotest
, bisect_ppx
, ff-pbt
}:
buildDunePackage {
pname = "bls12-381-unix";
inherit (bls12-381) version src useDune2 doCheck;
propagatedBuildInputs = [
bls12-381
hex
integers
zarith
];
checkInputs = [
alcotest
bisect_ppx
ff-pbt
];
meta = {
description = "UNIX version of BLS12-381 primitives implementing the virtual package bls12-381";
license = lib.licenses.mit;
};
}

View file

@ -0,0 +1,29 @@
{ stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, topkg
, astring, fmt, fpath, logs, rresult
}:
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-bos";
version = "0.2.1";
src = fetchurl {
url = "https://erratique.ch/software/bos/releases/bos-${version}.tbz";
sha256 = "sha256-2NYueGsQ1pfgRXIFqO7eqifrzJDxhV8Y3xkMrC49jzc=";
};
nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
buildInputs = [ topkg ];
propagatedBuildInputs = [ astring fmt fpath logs rresult ];
strictDeps = true;
inherit (topkg) buildPhase installPhase;
meta = {
description = "Basic OS interaction for OCaml";
homepage = "https://erratique.ch/software/bos";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
};
}

View file

@ -0,0 +1,33 @@
{ buildDunePackage, fetchFromGitHub, lib, reason, ppxlib }:
buildDunePackage rec {
pname = "brisk-reconciler";
version = "unstable-2020-12-02";
src = fetchFromGitHub {
owner = "briskml";
repo = "brisk-reconciler";
rev = "c9d5c4cf5dd17ff2da994de2c3b0f34c72778f70";
sha256 = "sha256-AAB4ZzBnwfwFXOAqX/sIT6imOl70F0YNMt96SWOOE9w=";
};
nativeBuildInputs = [ reason ];
buildInputs = [
ppxlib
];
meta = with lib; {
description = "React.js-like reconciler implemented in OCaml/Reason";
longDescription = ''
Easily model any `tree-shaped state` with simple `stateful functions`.
Definitions:
* tree-shaped state: Any tree shaped-state like the DOM tree, app navigation state, or even rich text document!
* stateful functions: Functions that maintain state over time. Imagine that you can take any variable in your function and manage its value over the function's invocation. Now, imagine that any function invocation really creates its own "instance" of the function which will track this state separately from other invocations of this function.
'';
homepage = "https://github.com/briskml/brisk-reconciler";
maintainers = with maintainers; [ superherointj ];
license = licenses.mit;
};
}

View file

@ -0,0 +1,25 @@
{ lib, fetchFromGitHub, buildDunePackage, qcheck-core }:
buildDunePackage rec {
pname = "bwd";
version = "2.0.0";
minimalOCamlVersion = "4.12";
src = fetchFromGitHub {
owner = "RedPRL";
repo = "ocaml-bwd";
rev = version;
sha256 = "sha256:0zgi8an53z6wr6nzz0zlmhx19zhqy1w2vfy1sq3sikjwh74jjq60";
};
doCheck = true;
checkInputs = [ qcheck-core ];
meta = {
description = "Backward Lists";
inherit (src.meta) homepage;
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.vbgl ];
};
}

View file

@ -0,0 +1,40 @@
{ lib, stdenv, fetchFromGitLab, ocaml, findlib, bzip2, autoreconfHook }:
if lib.versionOlder ocaml.version "4.02"
then throw "bz2 is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-bz2";
version = "0.7.0";
src = fetchFromGitLab {
owner = "irill";
repo = "camlbz2";
rev = version;
sha256 = "sha256-jBFEkLN2fbC3LxTu7C0iuhvNg64duuckBHWZoBxrV/U=";
};
autoreconfFlags = "-I .";
nativeBuildInputs = [
autoreconfHook
ocaml
findlib
];
propagatedBuildInputs = [
bzip2
];
strictDeps = true;
preInstall = "mkdir -p $OCAMLFIND_DESTDIR/stublibs";
meta = with lib; {
description = "OCaml bindings for the libbz2 (AKA, bzip2) (de)compression library";
downloadPage = "https://gitlab.com/irill/camlbz2";
license = licenses.lgpl21;
maintainers = with maintainers; [ ];
};
}

View file

@ -0,0 +1,52 @@
{ lib
, buildDunePackage
, fetchurl
, mirage-crypto
, mirage-clock
, x509
, logs
, fmt
, bos
, astring
, cmdliner
, alcotest
}:
buildDunePackage rec {
pname = "ca-certs-nss";
version = "3.74";
minimumOCamlVersion = "4.08";
src = fetchurl {
url = "https://github.com/mirage/ca-certs-nss/releases/download/v${version}/ca-certs-nss-${version}.tbz";
sha256 = "c95f5b2e36a0564e6f65421e0e197d7cfe600d19eb492f8f27c4841cbe68b231";
};
useDune2 = true;
propagatedBuildInputs = [
mirage-crypto
mirage-clock
x509
];
buildInputs = [
logs
fmt
bos
astring
cmdliner
];
doCheck = true;
checkInputs = [ alcotest ];
meta = with lib; {
description = "X.509 trust anchors extracted from Mozilla's NSS";
homepage = "https://github.com/mirage/ca-certs-nss";
license = licenses.isc;
maintainers = [ maintainers.sternenseemann ];
mainProgram = "extract-from-certdata";
};
}

View file

@ -0,0 +1,35 @@
{ lib, buildDunePackage, fetchurl
, bos, fpath, ptime, mirage-crypto, x509, astring, logs
, cacert, alcotest, fmt
}:
buildDunePackage rec {
pname = "ca-certs";
version = "0.2.2";
minimumOCamlVersion = "4.07";
src = fetchurl {
url = "https://github.com/mirage/ca-certs/releases/download/v${version}/ca-certs-v${version}.tbz";
sha256 = "sha256-Tx53zBJemZh3ODh/8izahxDoJvXvNFLyAA8LMM1mhlI=";
};
useDune2 = true;
propagatedBuildInputs = [ bos fpath ptime mirage-crypto x509 astring logs ];
# Assumes nss-cacert < 3.74 https://github.com/mirage/ca-certs/issues/21
doCheck = false;
checkInputs = [
cacert # for /etc/ssl/certs/ca-bundle.crt
alcotest
fmt
];
meta = with lib; {
description = "Detect root CA certificates from the operating system";
maintainers = [ maintainers.sternenseemann ];
license = licenses.isc;
homepage = "https://github.com/mirage/ca-certs";
};
}

View file

@ -0,0 +1,35 @@
{ stdenv, lib, fetchurl, buildDunePackage, ocaml, dune-configurator, pkg-config, cairo
, ApplicationServices }:
buildDunePackage rec {
pname = "cairo2";
version = "0.6.2";
src = fetchurl {
url = "https://github.com/Chris00/ocaml-cairo/releases/download/${version}/cairo2-${version}.tbz";
sha256 = "sha256-a7P1kiVmIwT6Fhtwxs29ffgO4iexsulxUoc9cnJmEK4=";
};
minimalOCamlVersion = "4.02";
useDune2 = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [ cairo dune-configurator ] ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
doCheck = !(stdenv.isDarwin
# https://github.com/Chris00/ocaml-cairo/issues/19
|| lib.versionAtLeast ocaml.version "4.10");
meta = with lib; {
homepage = "https://github.com/Chris00/ocaml-cairo";
description = "Binding to Cairo, a 2D Vector Graphics Library";
longDescription = ''
This is a binding to Cairo, a 2D graphics library with support for
multiple output devices. Currently supported output targets include
the X Window System, Quartz, Win32, image buffers, PostScript, PDF,
and SVG file output.
'';
license = licenses.lgpl3;
maintainers = with maintainers; [ jirkamarsik vbgl ];
};
}

View file

@ -0,0 +1,27 @@
{ stdenv, lib, fetchurl, ocaml, findlib }:
stdenv.mkDerivation rec {
pname = "ocaml-calendar";
version = "2.5";
src = fetchurl {
url = "https://forge.ocamlcore.org/frs/download.php/915/calendar-${version}.tar.bz2";
sha256 = "04pvhwb664g3s644c7v7419a3kvf5s3pynkhmk5j59dvlfm1yf0f";
};
nativeBuildInputs = [ ocaml findlib ];
strictDeps = true;
createFindlibDestdir = true;
meta = {
homepage = "https://forge.ocamlcore.org/projects/calendar/";
description = "An Objective Caml library managing dates and times";
license = "LGPL";
platforms = ocaml.meta.platforms or [ ];
maintainers = [
lib.maintainers.gal_bolle
];
};
}

View file

@ -0,0 +1,36 @@
{ lib
, buildDunePackage
, fetchurl
, ocaml
, alcotest
, eqaf
, fmt
}:
buildDunePackage rec {
pname = "callipyge";
version = "0.2";
src = fetchurl {
url = "https://github.com/oklm-wsh/Callipyge/releases/download/v${version}/${pname}-${version}.tbz";
sha256 = "sha256-T/94a88xvK51TggjXecdKc9kyTE9aIyueIt5T24sZB0=";
};
useDune2 = true;
minimumOCamlVersion = "4.03";
propagatedBuildInputs = [ fmt eqaf ];
# alcotest isn't available for OCaml < 4.05 due to fmt
doCheck = lib.versionAtLeast ocaml.version "4.05";
checkInputs = [ alcotest ];
meta = {
homepage = "https://github.com/oklm-wsh/Callipyge";
description = "Curve25519 in OCaml";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fufexan ];
};
}

View file

@ -0,0 +1,76 @@
{ stdenv
, lib
, fetchFromGitLab
, ocaml
, findlib
, omake
, graphicsmagick
, libpng
, libjpeg
, libexif
, libtiff
, libXpm
, freetype
, giflib
, ghostscript
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.02" && lib.versionOlder ocaml.version "4.10")
"camlimages 4.2.4 is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-${pname}-${version}";
pname = "camlimages";
version = "4.2.4";
src = fetchFromGitLab {
owner = "camlspotter";
repo = pname;
rev = "c4f0ec4178fd18cb85872181965c5f020c349160";
sha256 = "17hvsql5dml7ialjcags8wphs7w6z88b2rgjir1382bg8vn62bkr";
};
nativeBuildInputs = [
omake
ocaml
findlib
graphicsmagick
];
propagatedBuildInputs = [
libpng
libjpeg
libexif
libtiff
libXpm
freetype
giflib
ghostscript
];
buildPhase = ''
runHook preBuild
omake
runHook postBuild
'';
installPhase = ''
runHook preInstall
omake install
runHook postInstall
'';
createFindlibDestdir = true;
meta = with lib; {
# 4.2.5 requires OCaml >= 4.06
branch = "4.2.4";
homepage = "https://gitlab.com/camlspotter/camlimages";
description = "OCaml image processing library";
license = licenses.lgpl2Only;
maintainers = [
maintainers.vbgl
maintainers.sternenseemann
];
};
}

View file

@ -0,0 +1,32 @@
{ lib, fetchFromGitLab, buildDunePackage, dune-configurator, cppo
, graphics, lablgtk, stdio
}:
buildDunePackage rec {
pname = "camlimages";
version = "5.0.4";
useDune2 = true;
minimumOCamlVersion = "4.07";
src = fetchFromGitLab {
owner = "camlspotter";
repo = pname;
rev = version;
sha256 = "1m2c76ghisg73dikz2ifdkrbkgiwa0hcmp21f2fm2rkbf02rq3f4";
};
strictDeps = true;
nativeBuildInputs = [ cppo ];
buildInputs = [ dune-configurator graphics lablgtk stdio ];
meta = with lib; {
branch = "5.0";
inherit (src.meta) homepage;
description = "OCaml image processing library";
license = licenses.lgpl2;
maintainers = [ maintainers.vbgl maintainers.mt-caret ];
};
}

View file

@ -0,0 +1,20 @@
{ lib, buildDunePackage, fetchFromGitHub }:
buildDunePackage rec {
pname = "camlp-streams";
version = "5.0";
src = fetchFromGitHub {
owner = "ocaml";
repo = pname;
rev = "v${version}";
sha256 = "sha256:1wd5k0irzwi841b27pbx0n5fdybbgx97184zm8cjajizd2j8w0g5";
};
meta = {
description = "Stream and Genlex libraries for use with Camlp4 and Camlp5";
license = lib.licenses.lgpl21Only;
maintainers = [ lib.maintainers.vbgl ];
};
}

View file

@ -0,0 +1,32 @@
{ lib, stdenv, fetchFromGitHub, which, ocaml, findlib }:
if lib.versionOlder ocaml.version "4.10"
then throw "camlpdf is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
version = "2.5";
pname = "ocaml${ocaml.version}-camlpdf";
src = fetchFromGitHub {
owner = "johnwhitington";
repo = "camlpdf";
rev = "v${version}";
sha256 = "sha256:1qmsa0xgi960y7r20mvf8hxiiml7l1908s4dm7nq262f19w51gsl";
};
nativeBuildInputs = [ which ocaml findlib ];
strictDeps = true;
preInstall = ''
mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
'';
meta = with lib; {
description = "An OCaml library for reading, writing and modifying PDF files";
homepage = "https://github.com/johnwhitington/camlpdf";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [vbgl];
};
}

View file

@ -0,0 +1,6 @@
version="@VERSION@"
description="reading and writing ZIP, JAR and GZIP files"
requires="unix"
archive(byte)="zip.cma"
archive(native)="zip.cmxa"
linkopts = ""

View file

@ -0,0 +1,70 @@
{lib, stdenv, fetchurl, zlib, ocaml, findlib}:
let
param =
if lib.versionAtLeast ocaml.version "4.02"
then {
version = "1.10";
url = "https://github.com/xavierleroy/camlzip/archive/rel110.tar.gz";
sha256 = "X0YcczaQ3lFeJEiTIgjSSZ1zi32KFMtmZsP0FFpyfbI=";
patches = [];
postPatchInit = ''
cp META-zip META-camlzip
echo 'directory="../zip"' >> META-camlzip
'';
} else {
version = "1.05";
download_id = "1037";
url = "http://forge.ocamlcore.org/frs/download.php/${param.download_id}/camlzip-${param.version}.tar.gz";
sha256 = "930b70c736ab5a7ed1b05220102310a0a2241564786657abe418e834a538d06b";
patches = [./makefile_1_05.patch];
postPatchInit = ''
substitute ${./META} META --subst-var-by VERSION "${param.version}"
'';
};
in
stdenv.mkDerivation {
pname = "camlzip";
version = param.version;
src = fetchurl {
inherit (param) url;
inherit (param) sha256;
};
nativeBuildInputs = [ ocaml findlib ];
propagatedBuildInputs = [zlib];
strictDeps = true;
inherit (param) patches;
createFindlibDestdir = true;
postPatch = param.postPatchInit + ''
substituteInPlace Makefile \
--subst-var-by ZLIB_LIBDIR "${zlib.out}/lib" \
--subst-var-by ZLIB_INCLUDE "${zlib.dev}/include"
'';
buildFlags = [ "all" "allopt" ];
postInstall = ''
ln -s $out/lib/ocaml/${ocaml.version}/site-lib/{,caml}zip
'';
meta = with lib; {
homepage = "http://cristal.inria.fr/~xleroy/software.html#camlzip";
description = "A library for handling ZIP and GZIP files in OCaml";
longDescription = ''
This Objective Caml library provides easy access to compressed files in
ZIP and GZIP format, as well as to Java JAR files. It provides functions
for reading from and writing to compressed files in these formats.
'';
license = "LGPL+linking exceptions";
inherit (ocaml.meta) platforms;
maintainers = with maintainers; [ maggesi ];
};
}

View file

@ -0,0 +1,54 @@
diff -Nuar camlzip-1.04/Makefile camlzip-1.04.nixpkgs/Makefile
--- camlzip-1.04/Makefile 2002-04-22 17:28:57.000000000 +0200
+++ camlzip-1.04.nixpkgs/Makefile 2010-12-12 18:30:49.000000000 +0100
@@ -4,14 +4,10 @@
ZLIB_LIB=-lz
# The directory containing the Zlib library (libz.a or libz.so)
-ZLIB_LIBDIR=/usr/local/lib
+ZLIB_LIBDIR=@ZLIB_LIBDIR@
# The directory containing the Zlib header file (zlib.h)
-ZLIB_INCLUDE=/usr/local/include
-
-# Where to install the library. By default: sub-directory 'zip' of
-# OCaml's standard library directory.
-INSTALLDIR=`$(OCAMLC) -where`/zip
+ZLIB_INCLUDE=@ZLIB_INCLUDE@
### End of configuration section
@@ -19,10 +15,13 @@
OCAMLOPT=ocamlopt
OCAMLDEP=ocamldep
OCAMLMKLIB=ocamlmklib
+OCAMLFIND=ocamlfind
OBJS=zlib.cmo zip.cmo gzip.cmo
C_OBJS=zlibstubs.o
+LIBINSTALL_FILES = $(wildcard *.mli *.cmi *.cma *.cmxa *.a *.so)
+
all: libcamlzip.a zip.cma
allopt: libcamlzip.a zip.cmxa
@@ -55,18 +54,7 @@
rm -f *.o *.a
install:
- mkdir -p $(INSTALLDIR)
- cp zip.cma zip.cmi gzip.cmi zip.mli gzip.mli libcamlzip.a $(INSTALLDIR)
- if test -f dllcamlzip.so; then \
- cp dllcamlzip.so $(INSTALLDIR); \
- ldconf=`$(OCAMLC) -where`/ld.conf; \
- installdir=$(INSTALLDIR); \
- if test `grep -s -c $$installdir'$$' $$ldconf || :` = 0; \
- then echo $$installdir >> $$ldconf; fi \
- fi
-
-installopt:
- cp zip.cmxa zip.a zip.cmx gzip.cmx $(INSTALLDIR)
+ $(OCAMLFIND) install zip META $(LIBINSTALL_FILES)
depend:
gcc -MM -I$(ZLIB_INCLUDE) *.c > .depend

View file

@ -0,0 +1,32 @@
{stdenv, lib, fetchurl, ocaml, findlib, camlp4}:
if lib.versionAtLeast ocaml.version "4.05"
then throw "camomile-0.8.2 is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "camomile";
version = "0.8.2";
src = fetchurl {
url = "mirror://sourceforge/camomile/camomile-${version}.tar.bz2";
sha256 = "0x43pjxx70kgip86mmdn08s97k4qzdqc8i79xfyyx28smy1bsa00";
};
nativeBuildInputs = [ ocaml findlib camlp4 ];
strictDeps = true;
createFindlibDestdir = true;
meta = {
homepage = "http://camomile.sourceforge.net/";
description = "A comprehensive Unicode library for OCaml";
license = lib.licenses.lgpl21;
branch = "0.8.2";
inherit (ocaml.meta) platforms;
maintainers = [
lib.maintainers.maggesi
];
};
}

View file

@ -0,0 +1,32 @@
{stdenv, lib, fetchurl, fetchpatch, ocaml, findlib, camlp4}:
stdenv.mkDerivation {
pname = "camomile";
version = "0.8.5";
src = fetchurl {
url = "https://github.com/yoriyuki/Camomile/releases/download/rel-0.8.5/camomile-0.8.5.tar.bz2";
sha256 = "003ikpvpaliy5hblhckfmln34zqz0mk3y2m1fqvbjngh3h2np045";
};
patches = [ (fetchpatch {
url = "https://raw.githubusercontent.com/ocaml/opam-repository/master/packages/camomile/camomile.0.8.5/files/4.05-typing-fix.patch";
sha256 = "167279lia6qx62mdcyc5rjsi4gf4yi52wn9mhgd9y1v3754z7fwb";
})];
nativeBuildInputs = [ocaml findlib camlp4 ];
strictDeps = true;
createFindlibDestdir = true;
meta = {
homepage = "https://github.com/yoriyuki/Camomile/tree/master/Camomile";
description = "A comprehensive Unicode library for OCaml";
license = lib.licenses.lgpl21;
inherit (ocaml.meta) platforms;
maintainers = [
lib.maintainers.maggesi
];
};
}

View file

@ -0,0 +1,36 @@
{ lib, fetchFromGitHub, buildDunePackage, ocaml, cppo }:
buildDunePackage rec {
pname = "camomile";
version = "1.0.2";
useDune2 = true;
src = fetchFromGitHub {
owner = "yoriyuki";
repo = pname;
rev = version;
sha256 = "00i910qjv6bpk0nkafp5fg97isqas0bwjf7m6rz11rsxilpalzad";
};
nativeBuildInputs = [ cppo ];
strictDeps = true;
configurePhase = ''
runHook preConfigure
ocaml configure.ml --share $out/share/camomile
runHook postConfigure
'';
postInstall = ''
echo "version = \"${version}\"" >> $out/lib/ocaml/${ocaml.version}/site-lib/camomile/META
'';
meta = {
inherit (src.meta) homepage;
maintainers = [ lib.maintainers.vbgl ];
license = lib.licenses.lgpl21;
description = "A Unicode library for OCaml";
};
}

View file

@ -0,0 +1,11 @@
{ lib, buildDunePackage, async_kernel, async_unix, caqti, core_kernel }:
buildDunePackage {
pname = "caqti-async";
useDune2 = true;
inherit (caqti) version src;
propagatedBuildInputs = [ async_kernel async_unix caqti core_kernel ];
meta = caqti.meta // { description = "Async support for Caqti"; };
}

View file

@ -0,0 +1,31 @@
{ lib, fetchFromGitHub, buildDunePackage
, cppo, logs, ptime, uri, bigstringaf
, re, cmdliner, alcotest }:
buildDunePackage rec {
pname = "caqti";
version = "1.8.0";
useDune2 = true;
minimumOCamlVersion = "4.04";
src = fetchFromGitHub {
owner = "paurkedal";
repo = "ocaml-${pname}";
rev = "v${version}";
sha256 = "sha256-8uKlrq9j1Z3QzkCyoRIn2j6wCdGyo7BY7XlbFHN1xVE=";
};
nativeBuildInputs = [ cppo ];
propagatedBuildInputs = [ logs ptime uri bigstringaf ];
checkInputs = [ re cmdliner alcotest ];
doCheck = true;
meta = {
description = "Unified interface to relational database libraries";
license = "LGPL-3.0-or-later WITH OCaml-LGPL-linking-exception";
maintainers = with lib.maintainers; [ bcc32 ];
homepage = "https://github.com/paurkedal/ocaml-caqti";
};
}

View file

@ -0,0 +1,13 @@
{ lib, buildDunePackage, caqti, mariadb }:
buildDunePackage {
pname = "caqti-driver-mariadb";
useDune2 = true;
inherit (caqti) version src;
propagatedBuildInputs = [ caqti mariadb ];
meta = caqti.meta // {
description = "MariaDB driver for Caqti using C bindings";
};
}

View file

@ -0,0 +1,13 @@
{ lib, buildDunePackage, caqti, postgresql }:
buildDunePackage {
pname = "caqti-driver-postgresql";
useDune2 = true;
inherit (caqti) version src;
propagatedBuildInputs = [ caqti postgresql ];
meta = caqti.meta // {
description = "PostgreSQL driver for Caqti based on C bindings";
};
}

View file

@ -0,0 +1,13 @@
{ lib, buildDunePackage, caqti, ocaml_sqlite3 }:
buildDunePackage {
pname = "caqti-driver-sqlite3";
useDune2 = true;
inherit (caqti) version src;
propagatedBuildInputs = [ caqti ocaml_sqlite3 ];
meta = caqti.meta // {
description = "Sqlite3 driver for Caqti using C bindings";
};
}

View file

@ -0,0 +1,13 @@
{ lib, buildDunePackage, caqti }:
buildDunePackage {
pname = "caqti-dynload";
useDune2 = true;
inherit (caqti) version src;
propagatedBuildInputs = [ caqti ];
meta = caqti.meta // {
description = "Dynamic linking of Caqti drivers using findlib.dynload";
};
}

View file

@ -0,0 +1,11 @@
{ lib, buildDunePackage, caqti, logs, lwt }:
buildDunePackage {
pname = "caqti-lwt";
useDune2 = true;
inherit (caqti) version src;
propagatedBuildInputs = [ caqti logs lwt ];
meta = caqti.meta // { description = "Lwt support for Caqti"; };
}

View file

@ -0,0 +1,14 @@
{ lib, buildDunePackage, calendar, caqti }:
buildDunePackage {
pname = "caqti-type-calendar";
version = "1.2.0";
useDune2 = true;
inherit (caqti) src;
propagatedBuildInputs = [ calendar caqti ];
meta = caqti.meta // {
description = "Date and time field types using the calendar library";
};
}

View file

@ -0,0 +1,69 @@
{ lib, buildDunePackage, fetchurl
, ke, duff, decompress, cstruct, optint, bigstringaf, stdlib-shims
, bigarray-compat, checkseum, logs, psq, fmt
, result, rresult, fpath, base64, bos, digestif, mmap, alcotest
, crowbar, alcotest-lwt, lwt, findlib, mirage-flow, cmdliner, hxd
}:
buildDunePackage rec {
pname = "carton";
version = "0.4.3";
useDune2 = true;
minimalOCamlVersion = "4.08";
src = fetchurl {
url = "https://github.com/mirage/ocaml-git/releases/download/${pname}-v${version}/${pname}-${pname}-v${version}.tbz";
sha256 = "sha256:0qz9ds5761wx4m7ly3av843b6dii7lmjpx2nnyijv8rm8aw95jgr";
};
# remove changelogs for mimic and the git* packages
postPatch = ''
rm CHANGES.md
'';
buildInputs = [
cmdliner
digestif
mmap
result
rresult
fpath
bos
hxd
];
propagatedBuildInputs = [
ke
duff
decompress
cstruct
optint
bigstringaf
stdlib-shims
bigarray-compat
checkseum
logs
psq
fmt
];
doCheck = true;
nativeBuildInputs = [
findlib
];
checkInputs = [
base64
alcotest
alcotest-lwt
crowbar
lwt
mirage-flow
];
meta = with lib; {
description = "Implementation of PACKv2 file in OCaml";
license = licenses.mit;
homepage = "https://github.com/mirage/ocaml-git";
maintainers = [ maintainers.sternenseemann ];
};
}

View file

@ -0,0 +1,28 @@
{ buildDunePackage, carton, carton-lwt
, bigarray-compat, bigstringaf, lwt, fpath, result
, mmap, fmt, decompress, astring
, alcotest, alcotest-lwt, cstruct, logs
, mirage-flow, rresult, ke
}:
buildDunePackage {
pname = "carton-git";
inherit (carton) version src useDune2 postPatch;
propagatedBuildInputs = [
carton
carton-lwt
bigarray-compat
bigstringaf
lwt
fpath
result
mmap
fmt
decompress
astring
];
inherit (carton) meta;
}

View file

@ -0,0 +1,46 @@
{ buildDunePackage, carton
, lwt, decompress, optint, bigstringaf
, alcotest, alcotest-lwt, cstruct, fmt, logs
, mirage-flow, result, rresult, bigarray-compat
, ke, base64, bos, checkseum, digestif, fpath, mmap
, stdlib-shims
, git-binary # pkgs.git
}:
buildDunePackage {
pname = "carton-lwt";
inherit (carton) version src useDune2 postPatch;
propagatedBuildInputs = [
carton
lwt
decompress
optint
bigstringaf
];
doCheck = true;
checkInputs = [
git-binary
alcotest
alcotest-lwt
cstruct
fmt
logs
mirage-flow
result
rresult
bigarray-compat
ke
base64
bos
checkseum
digestif
fpath
mmap
stdlib-shims
];
inherit (carton) meta;
}

View file

@ -0,0 +1,35 @@
{ lib, buildDunePackage, fetchFromGitHub, m4, core_kernel, ounit }:
buildDunePackage rec {
pname = "cfstream";
version = "1.3.1";
useDune2 = true;
minimumOCamlVersion = "4.04.1";
src = fetchFromGitHub {
owner = "biocaml";
repo = pname;
rev = version;
sha256 = "0qnxfp6y294gjsccx7ksvwn9x5q20hi8sg24rjypzsdkmlphgdnd";
};
patches = [ ./git_commit.patch ];
# This currently fails with dune
strictDeps = false;
nativeBuildInputs = [ m4 ];
checkInputs = [ ounit ];
propagatedBuildInputs = [ core_kernel ];
doCheck = true;
meta = with lib; {
inherit (src.meta) homepage;
description = "Simple Core-inspired wrapper for standard library Stream module";
maintainers = [ maintainers.bcdarwin ];
license = licenses.lgpl21;
};
}

View file

@ -0,0 +1,13 @@
diff --git a/lib/dune b/lib/dune
index 2266b87..344c704 100644
--- a/lib/dune
+++ b/lib/dune
@@ -8,7 +8,7 @@
(rule
(targets GIT_COMMIT)
(deps (:x ../bin/git_commit.sh))
- (action (with-stdout-to %{targets} (run %{x})))
+ (action (with-stdout-to %{targets} (run echo None)))
)
(rule

View file

@ -0,0 +1,41 @@
{ lib
, buildDunePackage
, fetchurl
, ocaml
, alcotest
, cstruct
, mirage-crypto
}:
buildDunePackage rec {
pname = "chacha";
version = "1.0.0";
src = fetchurl {
url = "https://github.com/abeaumont/ocaml-chacha/releases/download/${version}/${pname}-${version}.tbz";
sha256 = "sha256-t8dOMQQDpje0QbuOhjSIa3xnXuXcxMVTLENa/rwdgA4=";
};
useDune2 = true;
minimumOCamlVersion = "4.02";
propagatedBuildInputs = [ cstruct mirage-crypto ];
# alcotest isn't available for OCaml < 4.05 due to fmt
doCheck = lib.versionAtLeast ocaml.version "4.05";
checkInputs = [ alcotest ];
meta = {
homepage = "https://github.com/abeaumont/ocaml-chacha";
description = "ChaCha20, ChaCha12 and ChaCha8 encryption functions, in OCaml";
longDescription = ''
An OCaml implementation of ChaCha functions, both ChaCha20 and the reduced
ChaCha8 and ChaCha12 functions. The hot loop is implemented in C for efficiency
reasons.
'';
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ fufexan ];
};
}

View file

@ -0,0 +1,20 @@
{ lib, fetchzip, buildDunePackage, camomile, result }:
buildDunePackage rec {
pname = "charInfo_width";
version = "1.1.0";
useDune2 = true;
src = fetchzip {
url = "https://bitbucket.org/zandoye/charinfo_width/get/${version}.tar.bz2";
sha256 = "19mnq9a1yr16srqs8n6hddahr4f9d2gbpmld62pvlw1ps7nfrp9w";
};
propagatedBuildInputs = [ camomile result ];
meta = {
homepage = "https://bitbucket.org/zandoye/charinfo_width/";
description = "Determine column width for a character";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
};
}

View file

@ -0,0 +1,48 @@
{ lib, fetchurl, buildDunePackage, dune-configurator, pkg-config
, bigarray-compat, optint
, fmt, rresult, bos, fpath, astring, alcotest
, withFreestanding ? false
, ocaml-freestanding
}:
buildDunePackage rec {
version = "0.3.2";
pname = "checkseum";
useDune2 = true;
minimumOCamlVersion = "4.07";
src = fetchurl {
url = "https://github.com/mirage/checkseum/releases/download/v${version}/checkseum-v${version}.tbz";
sha256 = "9cdd282ea1cfc424095d7284e39e4d0ad091de3c3f2580539d03f6966d45ccd5";
};
buildInputs = [ dune-configurator ];
nativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = [
bigarray-compat
optint
] ++ lib.optionals withFreestanding [
ocaml-freestanding
];
checkInputs = [
alcotest
bos
astring
fmt
fpath
rresult
];
doCheck = true;
meta = {
description = "ADLER-32 and CRC32C Cyclic Redundancy Check";
homepage = "https://github.com/mirage/checkseum";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
mainProgram = "checkseum.checkseum";
};
}

View file

@ -0,0 +1,35 @@
{ lib, stdenv, fetchurl, perl, ocaml, findlib, ocamlbuild }:
if lib.versionAtLeast ocaml.version "4.06"
then throw "cil is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocaml-cil";
version = "1.7.3";
src = fetchurl {
url = "mirror://sourceforge/cil/cil-${version}.tar.gz";
sha256 = "05739da0b0msx6kmdavr3y2bwi92jbh3szc35d7d8pdisa8g5dv9";
};
nativeBuildInputs = [ perl ocaml findlib ocamlbuild ];
strictDeps = true;
createFindlibDestdir = true;
preConfigure = ''
substituteInPlace Makefile.in --replace 'MACHDEPCC=gcc' 'MACHDEPCC=$(CC)'
export FORCE_PERL_PREFIX=1
'';
prefixKey = "-prefix=";
meta = with lib; {
homepage = "http://kerneis.github.io/cil/";
description = "A front-end for the C programming language that facilitates program analysis and transformation";
license = licenses.bsd3;
maintainers = [ maintainers.vbgl ];
platforms = ocaml.meta.platforms or [ ];
};
}

View file

@ -0,0 +1,33 @@
{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, result }:
assert (lib.versionAtLeast ocaml.version "4.03");
stdenv.mkDerivation rec {
pname = "cmdliner";
version = "1.0.4";
src = fetchurl {
url = "https://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz";
sha256 = "1h04q0zkasd0mw64ggh4y58lgzkhg6yhzy60lab8k8zq9ba96ajw";
};
nativeBuildInputs = [ ocaml ];
makeFlags = [ "PREFIX=$(out)" ];
installTargets = "install install-doc";
installFlags = [
"LIBDIR=$(out)/lib/ocaml/${ocaml.version}/site-lib/${pname}"
"DOCDIR=$(out)/share/doc/${pname}"
];
postInstall = ''
mv $out/lib/ocaml/${ocaml.version}/site-lib/${pname}/{opam,${pname}.opam}
'';
meta = with lib; {
homepage = "https://erratique.ch/software/cmdliner";
description = "An OCaml module for the declarative definition of command line interfaces";
license = licenses.isc;
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
};
}

View file

@ -0,0 +1,32 @@
{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, result }:
stdenv.mkDerivation rec {
pname = "cmdliner";
version = "1.1.1";
src = fetchurl {
url = "https://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz";
sha256 = "sha256-oa6Hw6eZQO+NHdWfdED3dtHckm4BmEbdMiAuRkYntfs=";
};
minimalOCamlVersion = "4.08";
nativeBuildInputs = [ ocaml ];
makeFlags = [ "PREFIX=$(out)" ];
installTargets = "install install-doc";
installFlags = [
"LIBDIR=$(out)/lib/ocaml/${ocaml.version}/site-lib/${pname}"
"DOCDIR=$(out)/share/doc/${pname}"
];
postInstall = ''
mv $out/lib/ocaml/${ocaml.version}/site-lib/${pname}/{opam,${pname}.opam}
'';
meta = with lib; {
homepage = "https://erratique.ch/software/cmdliner";
description = "An OCaml module for the declarative definition of command line interfaces";
license = licenses.isc;
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
};
}

View file

@ -0,0 +1,60 @@
{ lib
, buildDunePackage
, ppx_sexp_conv
, base
, async
, async_kernel
, async_unix
, cohttp
, conduit-async
, uri
, uri-sexp
, logs
, fmt
, sexplib0
, ipaddr
, magic-mime
, ounit
, mirage-crypto
, core
}:
buildDunePackage {
pname = "cohttp-async";
inherit (cohttp)
version
src
minimumOCamlVersion
useDune2
;
buildInputs = [ ppx_sexp_conv ];
propagatedBuildInputs = [
cohttp
conduit-async
async_kernel
async_unix
async
base
magic-mime
logs
fmt
sexplib0
uri
uri-sexp
ipaddr
];
doCheck = true;
checkInputs = [
ounit
mirage-crypto
core
];
meta = cohttp.meta // {
description = "CoHTTP implementation for the Async concurrency library";
};
}

View file

@ -0,0 +1,32 @@
{ lib, fetchurl, buildDunePackage
, ppx_sexp_conv, base64, jsonm, re, stringext, uri-sexp
, ocaml, fmt, alcotest
}:
buildDunePackage rec {
pname = "cohttp";
version = "4.0.0";
useDune2 = true;
minimumOCamlVersion = "4.08";
src = fetchurl {
url = "https://github.com/mirage/ocaml-cohttp/releases/download/v${version}/cohttp-v${version}.tbz";
sha256 = "bd7aa4cd2c82744990ed7c49e3ee7a40324c64cb3d8509804809155e2bacd1d2";
};
buildInputs = [ jsonm ppx_sexp_conv ];
propagatedBuildInputs = [ base64 re stringext uri-sexp ];
doCheck = lib.versionAtLeast ocaml.version "4.05";
checkInputs = [ fmt alcotest ];
meta = {
description = "HTTP(S) library for Lwt, Async and Mirage";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vbgl ];
homepage = "https://github.com/mirage/ocaml-cohttp";
};
}

View file

@ -0,0 +1,28 @@
{ lib, buildDunePackage, cohttp-lwt
, conduit-lwt-unix, conduit-lwt, ppx_sexp_conv
, cmdliner, fmt, logs, magic-mime
, ounit
, cacert
}:
buildDunePackage {
pname = "cohttp-lwt-unix";
inherit (cohttp-lwt) version src;
useDune2 = true;
buildInputs = [ cmdliner ppx_sexp_conv ];
propagatedBuildInputs = [
cohttp-lwt conduit-lwt conduit-lwt-unix fmt logs magic-mime
];
# TODO(@sternenseemann): fail for unknown reason
# https://github.com/mirage/ocaml-cohttp/issues/675#issuecomment-830692742
doCheck = false;
checkInputs = [ ounit cacert ];
meta = cohttp-lwt.meta // {
description = "CoHTTP implementation for Unix and Windows using Lwt";
};
}

View file

@ -0,0 +1,21 @@
{ lib, buildDunePackage, cohttp, ocaml_lwt, uri, ppx_sexp_conv, logs, sexplib0 }:
buildDunePackage {
pname = "cohttp-lwt";
inherit (cohttp)
version
src
useDune2
minimumOCamlVersion
;
buildInputs = [ ppx_sexp_conv ];
propagatedBuildInputs = [
cohttp ocaml_lwt logs sexplib0 uri
];
meta = cohttp.meta // {
description = "CoHTTP implementation using the Lwt concurrency library";
};
}

View file

@ -0,0 +1,23 @@
{ buildDunePackage, cohttp, cohttp-lwt
, mirage-flow, mirage-channel, mirage-kv
, conduit, conduit-mirage, lwt
, astring, magic-mime
, ppx_sexp_conv
}:
buildDunePackage {
pname = "cohttp-mirage";
inherit (cohttp) version src minimumOCamlVersion useDune2;
nativeBuildInputs = [ ppx_sexp_conv ];
propagatedBuildInputs = [
mirage-flow mirage-channel conduit conduit-mirage mirage-kv
lwt cohttp cohttp-lwt astring magic-mime
];
meta = cohttp.meta // {
description = "CoHTTP implementation for the MirageOS unikernel";
};
}

View file

@ -0,0 +1,38 @@
{ buildDunePackage
, fetchurl
, findlib
, lib
, ocaml
, re
}:
buildDunePackage rec {
pname = "coin";
version = "0.1.4";
minimalOCamlVersion = "4.03";
src = fetchurl {
url = "https://github.com/mirage/coin/releases/download/v${version}/coin-${version}.tbz";
sha256 = "sha256:0069qqswd1ik5ay3d5q1v1pz0ql31kblfsnv0ax0z8jwvacp3ack";
};
postPatch = ''
substituteInPlace src/dune --replace 'ocaml} ' \
'ocaml} -I ${findlib}/lib/ocaml/${ocaml.version}/site-lib '
'';
nativeBuildInputs = [ findlib ];
buildInputs = [ re ];
strictDeps = true;
doCheck = true;
meta = {
description = "A library to normalize an KOI8-{U,R} input to Unicode";
homepage = "https://github.com/mirage/coin";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ];
mainProgram = "coin.generate";
};
}

View file

@ -0,0 +1,29 @@
{ lib
, fetchurl
, buildDunePackage
, gg
}:
buildDunePackage rec {
pname = "color";
version = "0.2.0";
useDune2 = true;
minimalOCamlVersion = "4.05";
src = fetchurl {
url = "https://github.com/anuragsoni/color/releases/download/${version}/color-${version}.tbz";
sha256 = "0wg3a36i1a7fnz5pf57qzbdghwr6dzp7nnxyrz9m9765lxsn65ph";
};
propagatedBuildInputs = [
gg
];
meta = with lib; {
description = "Converts between different color formats";
license = licenses.mit;
maintainers = with maintainers; [ fgaz ];
homepage = "https://github.com/anuragsoni/color";
};
}

View file

@ -0,0 +1,30 @@
{ lib, buildDunePackage, async, async_ssl, ppx_sexp_conv, ppx_here, uri, conduit
, core, ipaddr, ipaddr-sexp, sexplib
}:
buildDunePackage {
pname = "conduit-async";
inherit (conduit)
version
src
minimumOCamlVersion
useDune2
;
buildInputs = [ ppx_sexp_conv ppx_here ];
propagatedBuildInputs = [
async
async_ssl
conduit
uri
ipaddr
ipaddr-sexp
core
sexplib
];
meta = conduit.meta // {
description = "A network connection establishment library for Async";
};
}

View file

@ -0,0 +1,26 @@
{ lib, fetchurl, buildDunePackage
, ppx_sexp_conv, sexplib, astring, uri, logs
, ipaddr, ipaddr-sexp
}:
buildDunePackage rec {
pname = "conduit";
version = "4.0.2";
useDune2 = true;
minimumOCamlVersion = "4.03";
src = fetchurl {
url = "https://github.com/mirage/ocaml-conduit/releases/download/v${version}/conduit-v${version}.tbz";
sha256 = "2a37ffaa352a1e145ef3d80ac28661213c69a741b238623e59f29e3d5a12c537";
};
propagatedBuildInputs = [ astring ipaddr ipaddr-sexp sexplib uri logs ppx_sexp_conv ];
meta = {
description = "A network connection establishment library";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ alexfmpe vbgl ];
homepage = "https://github.com/mirage/ocaml-conduit";
};
}

View file

@ -0,0 +1,33 @@
{ buildDunePackage
, conduit-lwt, ppx_sexp_conv, ocaml_lwt, uri, ipaddr, ipaddr-sexp, ca-certs, logs
, lwt_ssl, tls, lwt_log, ssl
}:
buildDunePackage {
pname = "conduit-lwt-unix";
inherit (conduit-lwt) version src minimumOCamlVersion useDune2;
buildInputs = [ ppx_sexp_conv ];
propagatedBuildInputs = [
conduit-lwt
ocaml_lwt
uri
ipaddr
ipaddr-sexp
tls
ca-certs
logs
lwt_ssl
];
doCheck = true;
checkInputs = [
lwt_log
ssl
];
meta = conduit-lwt.meta // {
description = "A network connection establishment library for Lwt_unix";
};
}

View file

@ -0,0 +1,14 @@
{ buildDunePackage, ppx_sexp_conv, conduit, ocaml_lwt, sexplib }:
buildDunePackage {
pname = "conduit-lwt";
inherit (conduit) version src useDune2 minimumOCamlVersion;
buildInputs = [ ppx_sexp_conv ];
propagatedBuildInputs = [ conduit ocaml_lwt sexplib ];
meta = conduit.meta // {
description = "A network connection establishment library for Lwt";
};
}

View file

@ -0,0 +1,25 @@
{ buildDunePackage, conduit-lwt
, ppx_sexp_conv, sexplib, uri, cstruct, mirage-stack, mirage-flow
, mirage-flow-combinators, mirage-random, mirage-time, mirage-clock
, dns-client, vchan, xenstore, tls, tls-mirage, ipaddr, ipaddr-sexp
, tcpip, ca-certs-nss
}:
buildDunePackage {
pname = "conduit-mirage";
inherit (conduit-lwt) version src minimumOCamlVersion useDune2;
nativeBuildInputs = [ ppx_sexp_conv ];
propagatedBuildInputs = [
sexplib uri cstruct mirage-stack mirage-clock mirage-flow
mirage-flow-combinators mirage-random mirage-time
dns-client conduit-lwt vchan xenstore tls tls-mirage
ipaddr ipaddr-sexp tcpip ca-certs-nss
];
meta = conduit-lwt.meta // {
description = "A network connection establishment library for MirageOS";
};
}

View file

@ -0,0 +1,25 @@
{ stdenv, lib, fetchurl, ocaml, findlib, camlp4 }:
stdenv.mkDerivation rec {
pname = "ocaml-config-file";
version = "1.2";
src = fetchurl {
url = "https://forge.ocamlcore.org/frs/download.php/1387/config-file-${version}.tar.gz";
sha256 = "1b02yxcnsjhr05ssh2br2ka4hxsjpdw34ldl3nk33wfnkwk7g67q";
};
nativeBuildInputs = [ ocaml findlib camlp4 ];
strictDeps = true;
createFindlibDestdir = true;
meta = {
homepage = "http://config-file.forge.ocamlcore.org/";
platforms = ocaml.meta.platforms or [ ];
description = "An OCaml library used to manage the configuration file(s) of an application";
license = lib.licenses.lgpl2Plus;
maintainers = with lib.maintainers; [ vbgl ];
};
}

View file

@ -0,0 +1,19 @@
{ buildDunePackage, containers
, dune-configurator
, gen, iter, qcheck
}:
buildDunePackage {
pname = "containers-data";
inherit (containers) src version doCheck useDune2;
buildInputs = [ dune-configurator ];
checkInputs = [ gen iter qcheck ];
propagatedBuildInputs = [ containers ];
meta = containers.meta // {
description = "A set of advanced datatypes for containers";
};
}

View file

@ -0,0 +1,42 @@
{ lib, fetchFromGitHub, buildDunePackage, ocaml
, dune-configurator
, either, seq
, gen, iter, ounit, qcheck, uutf
}:
buildDunePackage rec {
version = "3.6.1";
pname = "containers";
useDune2 = true;
src = fetchFromGitHub {
owner = "c-cube";
repo = "ocaml-containers";
rev = "v${version}";
sha256 = "sha256:1k8xrs3nki8g875sig9f5v6k4vwxrk5gn7ixrlkkys5ksbr4kis7";
};
buildInputs = [ dune-configurator ];
propagatedBuildInputs = [ either seq ];
checkInputs = [ gen iter ounit qcheck uutf ];
doCheck = lib.versionAtLeast ocaml.version "4.08";
meta = {
homepage = "https://github.com/c-cube/ocaml-containers";
description = "A modular standard library focused on data structures";
longDescription = ''
Containers is a standard library (BSD license) focused on data structures,
combinators and iterators, without dependencies on unix. Every module is
independent and is prefixed with 'CC' in the global namespace. Some modules
extend the stdlib (e.g. CCList provides safe map/fold_right/append, and
additional functions on lists).
It also features optional libraries for dealing with strings, and
helpers for unix and threads.
'';
license = lib.licenses.bsd2;
};
}

View file

@ -0,0 +1,98 @@
{ lib
, fetchFromGitHub
, fetchurl
, buildDunePackage
, bwd
, cmdliner_1_1
, containers
, ezjsonm
, menhir
, menhirLib
, ppx_deriving
, ppxlib
, uuseg
, uutf
, yuujinchou
}:
let
bantorra = buildDunePackage rec {
pname = "bantorra";
version = "unstable-2022-04-20";
src = fetchFromGitHub {
owner = "RedPRL";
repo = "bantorra";
rev = "1e78633d9a2ef7104552a24585bb8bea36d4117b";
sha256 = "sha256:15v1cggm7awp11iwl3lzpaar91jzivhdxggp5mr48gd28kfipzk2";
};
propagatedBuildInputs = [ ezjsonm ];
meta = {
description = "Extensible Library Management and Path Resolution";
homepage = "https://github.com/RedPRL/bantorra";
license = lib.licenses.asl20;
};
};
kado = buildDunePackage rec {
pname = "kado";
version = "unstable-2022-04-30";
src = fetchFromGitHub {
owner = "RedPRL";
repo = "kado";
rev = "8dce50e7d759d482b82565090e550d3860d64729";
sha256 = "sha256:1xb754fha4s0bgjfqjxzqljvalmkfdwdn5y4ycsp51wiah235bsy";
};
propagatedBuildInputs = [ bwd ];
doCheck = true;
meta = {
description = "Cofibrations in Cartecian Cubical Type Theory";
homepage = "https://github.com/RedPRL/kado";
license = lib.licenses.asl20;
};
};
in
buildDunePackage {
pname = "cooltt";
version = "unstable-2022-04-28";
minimalOCamlVersion = "4.13";
src = fetchFromGitHub {
owner = "RedPRL";
repo = "cooltt";
rev = "88511e10cb9e17286f585882dee334f3d8ace47c";
sha256 = "sha256:1n9bh86r2n9s3mm7ayfzwjbnjqcphpsf8yqnf4whd3yi930sqisw";
};
nativeBuildInputs = [
cmdliner_1_1
menhir
ppxlib
];
buildInputs = [ containers ];
propagatedBuildInputs = [
bantorra
bwd
ezjsonm
kado
menhirLib
ppx_deriving
uuseg
uutf
yuujinchou
];
meta = with lib; {
homepage = "https://github.com/RedPRL/cooltt";
description = "A cool implementation of normalization by evaluation (nbe) & elaboration for Cartesian cubical type theory";
license = licenses.asl20;
maintainers = with maintainers; [ fortuneteller2k ];
};
}

View file

@ -0,0 +1,30 @@
{ lib, fetchurl, buildDunePackage, alcotest
, uri, xmlm, omd, ezjsonm }:
buildDunePackage rec {
useDune2 = true;
minimumOCamlVersion = "4.02.3";
version = "2.4.0";
pname = "cow";
src = fetchurl {
url = "https://github.com/mirage/ocaml-cow/releases/download/v${version}/cow-v${version}.tbz";
sha256 = "1x77lwpskda4zyikwxh500xjn90pgdwz6jm7ca7f36pyav4vl6zx";
};
propagatedBuildInputs = [ xmlm uri ezjsonm omd ];
checkInputs = [ alcotest ];
doCheck = true;
meta = with lib; {
description = "Caml on the Web";
longDescription = ''
Writing web-applications requires a lot of skills: HTML, XML, JSON and
Markdown, to name but a few! This library provides OCaml combinators
for these web formats.
'';
license = licenses.isc;
maintainers = [ maintainers.sternenseemann ];
};
}

View file

@ -0,0 +1,41 @@
{ lib, stdenv, fetchFromGitHub, ocaml, findlib, camlpdf, ncurses }:
if lib.versionOlder ocaml.version "4.10"
then throw "cpdf is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-cpdf";
version = "2.5";
src = fetchFromGitHub {
owner = "johnwhitington";
repo = "cpdf-source";
rev = "v${version}";
sha256 = "sha256:1qmx229nij7g6qmiacmyy4mcgx3k9509p4slahivshqm79d6wiwl";
};
nativeBuildInputs = [ ocaml findlib ];
buildInputs = [ ncurses ];
propagatedBuildInputs = [ camlpdf ];
strictDeps = true;
preInstall = ''
mkdir -p $OCAMLFIND_DESTDIR
mkdir -p $out/bin
cp cpdf $out/bin
mkdir -p $out/share/
cp -r doc $out/share
cp cpdfmanual.pdf $out/share/doc/cpdf/
'';
meta = with lib; {
description = "PDF Command Line Tools";
homepage = "https://www.coherentpdf.com/";
license = licenses.unfree;
maintainers = [ maintainers.vbgl ];
mainProgram = "cpdf";
inherit (ocaml.meta) platforms;
};
}

Some files were not shown because too many files have changed in this diff Show more