ocamlPackages: swap throws to meta.broken

throws no longer work with the current ci we have in nixpkgs
This commit is contained in:
jopejoe1
2025-10-13 19:14:09 +02:00
parent 5a83fc7432
commit 1e1cef625b
77 changed files with 2520 additions and 2760 deletions

View File

@@ -20,48 +20,47 @@
...
}@args:
if args ? minimumOCamlVersion && lib.versionOlder ocaml.version args.minimumOCamlVersion then
throw "${pname}-${version} is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation (
args
// {
name = "ocaml${ocaml.version}-${pname}-${version}";
stdenv.mkDerivation (
args
// {
name = "ocaml${ocaml.version}-${pname}-${version}";
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
ocaml_oasis
]
++ nativeBuildInputs;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
ocaml_oasis
]
++ nativeBuildInputs;
inherit createFindlibDestdir;
inherit dontStrip;
inherit createFindlibDestdir;
inherit dontStrip;
strictDeps = true;
strictDeps = true;
buildPhase = ''
runHook preBuild
oasis setup
ocaml setup.ml -configure --prefix $OCAMLFIND_DESTDIR --exec-prefix $out
ocaml setup.ml -build
runHook postBuild
'';
buildPhase = ''
runHook preBuild
oasis setup
ocaml setup.ml -configure --prefix $OCAMLFIND_DESTDIR --exec-prefix $out
ocaml setup.ml -build
runHook postBuild
'';
checkPhase = ''
runHook preCheck
ocaml setup.ml -test
runHook postCheck
'';
checkPhase = ''
runHook preCheck
ocaml setup.ml -test
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p $out
ocaml setup.ml -install
runHook postInstall
'';
installPhase = ''
runHook preInstall
mkdir -p $out
ocaml setup.ml -install
runHook postInstall
'';
}
)
meta = args.meta // {
broken = args ? minimumOCamlVersion && lib.versionOlder ocaml.version args.minimumOCamlVersion;
};
}
)

View File

@@ -16,83 +16,80 @@
autoreconfHook,
}:
lib.throwIf (buildOcamlBindings && !lib.versionAtLeast ocamlPackages.ocaml.version "4.05")
"OCaml binding are not available for OCaml < 4.05"
stdenv.mkDerivation rec {
pname = "libnbd";
version = "1.22.1";
stdenv.mkDerivation
rec {
pname = "libnbd";
version = "1.22.1";
src = fetchurl {
url = "https://download.libguestfs.org/libnbd/${lib.versions.majorMinor version}-stable/${pname}-${version}.tar.gz";
hash = "sha256-9oVJrU2YcXGnKaDf8SoHKGtG7vpH5355/DKIiYrchHI=";
};
src = fetchurl {
url = "https://download.libguestfs.org/libnbd/${lib.versions.majorMinor version}-stable/${pname}-${version}.tar.gz";
hash = "sha256-9oVJrU2YcXGnKaDf8SoHKGtG7vpH5355/DKIiYrchHI=";
};
nativeBuildInputs = [
bash-completion
pkg-config
perl
autoreconfHook
nativeBuildInputs = [
bash-completion
pkg-config
perl
autoreconfHook
]
++ lib.optionals buildPythonBindings [ python3 ]
++ lib.optionals buildOcamlBindings (
with ocamlPackages;
[
findlib
ocaml
]
++ lib.optionals buildPythonBindings [ python3 ]
++ lib.optionals buildOcamlBindings (
with ocamlPackages;
[
findlib
ocaml
]
);
);
buildInputs = [
fuse
fuse3
gnutls
libxml2
];
buildInputs = [
fuse
fuse3
gnutls
libxml2
];
postPatch = lib.optionalString buildOcamlBindings ''
substituteInPlace ocaml/Makefile.am \
--replace-fail '$(DESTDIR)$(OCAMLLIB)' '$(out)/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib'
postPatch = lib.optionalString buildOcamlBindings ''
substituteInPlace ocaml/Makefile.am \
--replace-fail '$(DESTDIR)$(OCAMLLIB)' '$(out)/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib'
'';
configureFlags = lib.optionals buildPythonBindings [
"--with-python-installdir=${placeholder "out"}/${python3.sitePackages}"
];
installFlags = [ "bashcompdir=$(out)/share/bash-completion/completions" ];
postInstall = lib.optionalString buildPythonBindings ''
LIBNBD_PYTHON_METADATA='${placeholder "out"}/${python3.sitePackages}/nbd-${version}.dist-info/METADATA'
install -Dm644 -T ${./libnbd-metadata} $LIBNBD_PYTHON_METADATA
substituteAllInPlace $LIBNBD_PYTHON_METADATA
'';
meta = with lib; {
homepage = "https://gitlab.com/nbdkit/libnbd";
description = "Network Block Device client library in userspace";
longDescription = ''
NBD Network Block Device is a protocol for accessing Block Devices
(hard disks and disk-like things) over a Network. This is the NBD client
library in userspace, a simple library for writing NBD clients.
The key features are:
- Synchronous API for ease of use.
- Asynchronous API for writing non-blocking, multithreaded clients. You
can mix both APIs freely.
- High performance.
- Minimal dependencies for the basic library.
- Well-documented, stable API.
- Bindings in several programming languages.
- Shell (nbdsh) for command line and scripting.
'';
configureFlags = lib.optionals buildPythonBindings [
"--with-python-installdir=${placeholder "out"}/${python3.sitePackages}"
license = with licenses; lgpl21Plus;
maintainers = with maintainers; [
humancalico
];
installFlags = [ "bashcompdir=$(out)/share/bash-completion/completions" ];
postInstall = lib.optionalString buildPythonBindings ''
LIBNBD_PYTHON_METADATA='${placeholder "out"}/${python3.sitePackages}/nbd-${version}.dist-info/METADATA'
install -Dm644 -T ${./libnbd-metadata} $LIBNBD_PYTHON_METADATA
substituteAllInPlace $LIBNBD_PYTHON_METADATA
'';
meta = with lib; {
homepage = "https://gitlab.com/nbdkit/libnbd";
description = "Network Block Device client library in userspace";
longDescription = ''
NBD Network Block Device is a protocol for accessing Block Devices
(hard disks and disk-like things) over a Network. This is the NBD client
library in userspace, a simple library for writing NBD clients.
The key features are:
- Synchronous API for ease of use.
- Asynchronous API for writing non-blocking, multithreaded clients. You
can mix both APIs freely.
- High performance.
- Minimal dependencies for the basic library.
- Well-documented, stable API.
- Bindings in several programming languages.
- Shell (nbdsh) for command line and scripting.
'';
license = with licenses; lgpl21Plus;
maintainers = with maintainers; [
humancalico
];
platforms = with platforms; linux;
};
}
platforms = with platforms; linux;
broken = buildOcamlBindings && !lib.versionAtLeast ocamlPackages.ocaml.version "4.05";
};
}
# TODO: package the 1.6-stable version too
# TODO: git version needs ocaml
# TODO: bindings for go

View File

@@ -15,69 +15,66 @@
functory,
}:
if lib.versionAtLeast ocaml.version "4.06" then
throw "mezzo is not available for OCaml ${ocaml.version}"
else
let
check-ocaml-version = lib.versionAtLeast (lib.getVersion ocaml);
in
let
check-ocaml-version = lib.versionAtLeast (lib.getVersion ocaml);
in
assert check-ocaml-version "4";
assert check-ocaml-version "4";
stdenv.mkDerivation {
stdenv.mkDerivation {
pname = "mezzo";
version = "0.0.m8";
pname = "mezzo";
version = "0.0.m8";
src = fetchFromGitHub {
owner = "protz";
repo = "mezzo";
rev = "m8";
sha256 = "0yck5r6di0935s3iy2mm9538jkf77ssr789qb06ms7sivd7g3ip6";
};
src = fetchFromGitHub {
owner = "protz";
repo = "mezzo";
rev = "m8";
sha256 = "0yck5r6di0935s3iy2mm9538jkf77ssr789qb06ms7sivd7g3ip6";
};
strictDeps = true;
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
camlp4
menhir
];
buildInputs = [
yojson
menhirLib
ulex
pprint
fix
functory
ocamlbuild
];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
camlp4
menhir
];
buildInputs = [
yojson
menhirLib
ulex
pprint
fix
functory
ocamlbuild
];
# Sets warning 3 as non-fatal
prePatch =
lib.optionalString (check-ocaml-version "4.02") ''
substituteInPlace myocamlbuild.pre.ml \
--replace '@1..3' '@1..2+3'
''
# Compatibility with PPrint ≥ 20220103
+ ''
substituteInPlace typing/Fact.ml --replace PPrintOCaml PPrint.OCaml
'';
createFindlibDestdir = true;
postInstall = ''
mkdir $out/bin
cp mezzo $out/bin/
# Sets warning 3 as non-fatal
prePatch =
lib.optionalString (check-ocaml-version "4.02") ''
substituteInPlace myocamlbuild.pre.ml \
--replace '@1..3' '@1..2+3'
''
# Compatibility with PPrint ≥ 20220103
+ ''
substituteInPlace typing/Fact.ml --replace PPrintOCaml PPrint.OCaml
'';
meta = with lib; {
homepage = "http://protz.github.io/mezzo/";
description = "Programming language in the ML tradition, which places strong emphasis on the control of aliasing and access to mutable memory";
license = licenses.gpl2;
platforms = ocaml.meta.platforms or [ ];
};
}
createFindlibDestdir = true;
postInstall = ''
mkdir $out/bin
cp mezzo $out/bin/
'';
meta = with lib; {
homepage = "http://protz.github.io/mezzo/";
description = "Programming language in the ML tradition, which places strong emphasis on the control of aliasing and access to mutable memory";
license = licenses.gpl2;
broken = lib.versionAtLeast ocaml.version "4.06";
platforms = ocaml.meta.platforms or [ ];
};
}

View File

@@ -9,57 +9,51 @@
cmdliner,
}:
let
stdenv.mkDerivation rec {
in
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"b0 is not available for OCaml ${ocaml.version}"
pname = "ocaml${ocaml.version}-b0";
version = "0.0.5";
stdenv.mkDerivation
rec {
src = fetchurl {
url = "${meta.homepage}/releases/b0-${version}.tbz";
sha256 = "sha256-ty04JQcP4RCme/VQw0ko2IBebWWX5cBU6nRTTeV1I/I=";
};
pname = "ocaml${ocaml.version}-b0";
version = "0.0.5";
strictDeps = true;
src = fetchurl {
url = "${meta.homepage}/releases/b0-${version}.tbz";
sha256 = "sha256-ty04JQcP4RCme/VQw0ko2IBebWWX5cBU6nRTTeV1I/I=";
};
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [
topkg
cmdliner
];
strictDeps = true;
inherit (topkg) buildPhase installPhase;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [
topkg
cmdliner
];
inherit (topkg) buildPhase installPhase;
meta = with lib; {
description = "Software construction and deployment kit";
longDescription = ''
WARNING this package is unstable and work in progress, do not depend on
it.
B0 describes software construction and deployments using modular and
customizable definitions written in OCaml. B0 describes:
* Build environments.
* Software configuration, build and testing.
* Source and binary deployments.
* Software life-cycle procedures.
B0 also provides the B00 build library which provides abitrary build
abstraction with reliable and efficient incremental rebuilds. The B00
library can be and has been used on its own to devise domain specific
build systems.
'';
homepage = "https://erratique.ch/software/b0";
inherit (ocaml.meta) platforms;
license = licenses.isc;
maintainers = [ maintainers.Julow ];
};
}
meta = with lib; {
description = "Software construction and deployment kit";
longDescription = ''
WARNING this package is unstable and work in progress, do not depend on
it.
B0 describes software construction and deployments using modular and
customizable definitions written in OCaml. B0 describes:
* Build environments.
* Software configuration, build and testing.
* Source and binary deployments.
* Software life-cycle procedures.
B0 also provides the B00 build library which provides abitrary build
abstraction with reliable and efficient incremental rebuilds. The B00
library can be and has been used on its own to devise domain specific
build systems.
'';
homepage = "https://erratique.ch/software/b0";
inherit (ocaml.meta) platforms;
license = licenses.isc;
maintainers = [ maintainers.Julow ];
broken = !(lib.versionAtLeast ocaml.version "4.08");
};
}

View File

@@ -42,111 +42,108 @@
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.5.0+pr1621";
src = fetchFromGitHub {
owner = "BinaryAnalysisPlatform";
repo = "bap";
rev = "65c282d94e8b7028e8a986c637db3a2378a753f6";
hash = "sha256-LUZZOgG1T8xa5jLA/fDft8ofYb/Yf6QjTrl6AlLY7H0=";
};
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-bap";
version = "2.5.0+pr1621";
src = fetchFromGitHub {
owner = "BinaryAnalysisPlatform";
repo = "bap";
rev = "65c282d94e8b7028e8a986c637db3a2378a753f6";
hash = "sha256-LUZZOgG1T8xa5jLA/fDft8ofYb/Yf6QjTrl6AlLY7H0=";
};
sigs = fetchurl {
url = "https://github.com/BinaryAnalysisPlatform/bap/releases/download/v${version}/sigs.zip";
sha256 = "0d69jd28z4g64mglq94kj5imhmk5f6sgcsh9q2nij3b0arpcliwk";
};
sigs = fetchurl {
url = "https://github.com/BinaryAnalysisPlatform/bap/releases/download/v${version}/sigs.zip";
sha256 = "0d69jd28z4g64mglq94kj5imhmk5f6sgcsh9q2nij3b0arpcliwk";
};
createFindlibDestdir = true;
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/"
'';
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
];
nativeBuildInputs = [
which
makeWrapper
ocaml
findlib
ocamlbuild
ocaml_oasis
];
buildInputs = [
ocamlbuild
linenoise
ounit
ppx_bitstring
z3
utop
libxml2
ncurses
];
buildInputs = [
ocamlbuild
linenoise
ounit
ppx_bitstring
z3
utop
libxml2
ncurses
];
propagatedBuildInputs = [
bitstring
camlzip
cmdliner
ppx_bap
core_kernel
ezjsonm
fileutils
jane_rope
mmap
lwt
ocamlgraph
ocurl
re
uri
zarith
piqi
parsexp
piqi-ocaml
uuidm
frontc
yojson
];
propagatedBuildInputs = [
bitstring
camlzip
cmdliner
ppx_bap
core_kernel
ezjsonm
fileutils
jane_rope
mmap
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
'';
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";
disableIda = "--disable-ida";
disableGhidra = "--disable-ghidra";
patches = [
./curses_is_ncurses.patch
];
patches = [
./curses_is_ncurses.patch
];
preConfigure = ''
substituteInPlace oasis/monads --replace-warn core_kernel.rope jane_rope
'';
preConfigure = ''
substituteInPlace oasis/monads --replace-warn core_kernel.rope jane_rope
'';
configureFlags = [
"--enable-everything ${disableIda} ${disableGhidra}"
"--with-llvm-config=${llvm.dev}/bin/llvm-config"
];
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";
};
}
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";
broken = lib.versionOlder ocaml.version "4.08";
};
}

View File

@@ -8,28 +8,25 @@
ounit,
}:
if lib.versionOlder ppxlib.version "0.18.0" then
throw "ppx_bitstring is not available with ppxlib-${ppxlib.version}"
else
buildDunePackage {
pname = "ppx_bitstring";
inherit (bitstring) version src;
buildDunePackage {
pname = "ppx_bitstring";
inherit (bitstring) version src;
patches = lib.optional (lib.versionAtLeast ppxlib.version "0.36") (fetchpatch {
url = "https://github.com/xguerin/bitstring/commit/b42d4924cbb5ec5fd5309e6807852b63f456f35d.patch";
hash = "sha256-wtpSnGOzIUTmB3LhyHGopecy7F/5SYFOwaR6eReV+6g=";
});
patches = lib.optional (lib.versionAtLeast ppxlib.version "0.36") (fetchpatch {
url = "https://github.com/xguerin/bitstring/commit/b42d4924cbb5ec5fd5309e6807852b63f456f35d.patch";
hash = "sha256-wtpSnGOzIUTmB3LhyHGopecy7F/5SYFOwaR6eReV+6g=";
});
buildInputs = [
bitstring
ppxlib
];
buildInputs = [
bitstring
ppxlib
];
doCheck = lib.versionAtLeast ocaml.version "4.08";
checkInputs = [ ounit ];
doCheck = lib.versionAtLeast ocaml.version "4.08";
checkInputs = [ ounit ];
meta = bitstring.meta // {
description = "Bitstrings and bitstring matching for OCaml - PPX extension";
};
}
meta = bitstring.meta // {
description = "Bitstrings and bitstring matching for OCaml - PPX extension";
broken = lib.versionOlder ppxlib.version "0.18.0";
};
}

View File

@@ -8,11 +8,7 @@
}:
let
version =
if lib.versionAtLeast ocaml.version "5.3" then
throw "brisk-reconciler is not available for OCaml ${ocaml.version}"
else
"1.0.0-alpha1";
version = "1.0.0-alpha1";
in
buildDunePackage {
@@ -42,5 +38,6 @@ buildDunePackage {
homepage = "https://github.com/briskml/brisk-reconciler";
maintainers = with lib.maintainers; [ momeemt ];
license = lib.licenses.mit;
broken = lib.versionAtLeast ocaml.version "5.3";
};
}

View File

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

View File

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

View File

@@ -8,41 +8,38 @@
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";
stdenv.mkDerivation rec {
pname = "ocaml-cil";
version = "1.7.3";
src = fetchurl {
url = "mirror://sourceforge/cil/cil-${version}.tar.gz";
sha256 = "05739da0b0msx6kmdavr3y2bwi92jbh3szc35d7d8pdisa8g5dv9";
};
src = fetchurl {
url = "mirror://sourceforge/cil/cil-${version}.tar.gz";
sha256 = "05739da0b0msx6kmdavr3y2bwi92jbh3szc35d7d8pdisa8g5dv9";
};
nativeBuildInputs = [
perl
ocaml
findlib
ocamlbuild
];
nativeBuildInputs = [
perl
ocaml
findlib
ocamlbuild
];
strictDeps = true;
strictDeps = true;
createFindlibDestdir = true;
createFindlibDestdir = true;
preConfigure = ''
substituteInPlace Makefile.in --replace 'MACHDEPCC=gcc' 'MACHDEPCC=$(CC)'
export FORCE_PERL_PREFIX=1
'';
prefixKey = "-prefix=";
preConfigure = ''
substituteInPlace Makefile.in --replace 'MACHDEPCC=gcc' 'MACHDEPCC=$(CC)'
export FORCE_PERL_PREFIX=1
'';
prefixKey = "-prefix=";
meta = with lib; {
homepage = "https://sourceforge.net/projects/cil/";
description = "Front-end for the C programming language that facilitates program analysis and transformation";
license = licenses.bsd3;
maintainers = [ maintainers.vbgl ];
platforms = ocaml.meta.platforms or [ ];
};
}
meta = with lib; {
homepage = "https://sourceforge.net/projects/cil/";
description = "Front-end for the C programming language that facilitates program analysis and transformation";
license = licenses.bsd3;
maintainers = [ maintainers.vbgl ];
broken = lib.versionAtLeast ocaml.version "4.06";
platforms = ocaml.meta.platforms or [ ];
};
}

View File

@@ -9,41 +9,38 @@
topkg,
}:
if lib.versionOlder ocaml.version "4.14.0" then
throw "cmarkit is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "cmarkit";
version = "0.3.0";
stdenv.mkDerivation rec {
pname = "cmarkit";
version = "0.3.0";
src = fetchurl {
url = "https://erratique.ch/software/cmarkit/releases/cmarkit-${version}.tbz";
hash = "sha256-RouM5iU7VeTT0+4yhBgdEmxROeP/X31iqDjd1VI7z5c=";
};
src = fetchurl {
url = "https://erratique.ch/software/cmarkit/releases/cmarkit-${version}.tbz";
hash = "sha256-RouM5iU7VeTT0+4yhBgdEmxROeP/X31iqDjd1VI7z5c=";
};
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [
topkg
cmdliner
];
buildInputs = [
topkg
cmdliner
];
strictDeps = true;
strictDeps = true;
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = with lib; {
description = "CommonMark parser and renderer for OCaml";
homepage = "https://erratique.ch/software/cmarkit";
changelog = "https://github.com/dbuenzli/cmarkit/blob/v${version}/CHANGES.md";
license = licenses.isc;
maintainers = [ ];
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
description = "CommonMark parser and renderer for OCaml";
homepage = "https://erratique.ch/software/cmarkit";
changelog = "https://github.com/dbuenzli/cmarkit/blob/v${version}/CHANGES.md";
license = licenses.isc;
maintainers = [ ];
inherit (ocaml.meta) platforms;
broken = lib.versionOlder ocaml.version "4.14.0";
};
}

View File

@@ -5,8 +5,6 @@
ocaml,
}:
assert (lib.versionAtLeast ocaml.version "4.03");
stdenv.mkDerivation rec {
pname = "cmdliner";
version = "1.0.4";
@@ -34,5 +32,6 @@ stdenv.mkDerivation rec {
license = licenses.isc;
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
broken = !(lib.versionAtLeast ocaml.version "4.03");
};
}

View File

@@ -5,36 +5,33 @@
ocaml,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"cmdliner 1.1 is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "cmdliner";
version = "1.3.0";
stdenv.mkDerivation
rec {
pname = "cmdliner";
version = "1.3.0";
src = fetchurl {
url = "https://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz";
sha256 = "sha256-joGA9XO0QPanqMII2rLK5KgjhP7HMtInhNG7bmQWjLs=";
};
src = fetchurl {
url = "https://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz";
sha256 = "sha256-joGA9XO0QPanqMII2rLK5KgjhP7HMtInhNG7bmQWjLs=";
};
nativeBuildInputs = [ ocaml ];
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}
'';
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 = "OCaml module for the declarative definition of command line interfaces";
license = licenses.isc;
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
};
}
meta = with lib; {
homepage = "https://erratique.ch/software/cmdliner";
description = "OCaml module for the declarative definition of command line interfaces";
license = licenses.isc;
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
broken = !(lib.versionAtLeast ocaml.version "4.08");
};
}

View File

@@ -7,34 +7,31 @@
camlp4,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"config-file is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml-config-file";
version = "1.2";
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";
};
src = fetchurl {
url = "https://forge.ocamlcore.org/frs/download.php/1387/config-file-${version}.tar.gz";
sha256 = "1b02yxcnsjhr05ssh2br2ka4hxsjpdw34ldl3nk33wfnkwk7g67q";
};
nativeBuildInputs = [
ocaml
findlib
camlp4
];
nativeBuildInputs = [
ocaml
findlib
camlp4
];
strictDeps = true;
strictDeps = true;
createFindlibDestdir = true;
createFindlibDestdir = true;
meta = {
homepage = "http://config-file.forge.ocamlcore.org/";
platforms = ocaml.meta.platforms or [ ];
description = "OCaml library used to manage the configuration file(s) of an application";
license = lib.licenses.lgpl2Plus;
maintainers = with lib.maintainers; [ vbgl ];
};
}
meta = {
homepage = "http://config-file.forge.ocamlcore.org/";
platforms = ocaml.meta.platforms or [ ];
description = "OCaml library used to manage the configuration file(s) of an application";
license = lib.licenses.lgpl2Plus;
broken = lib.versionAtLeast ocaml.version "5.0";
maintainers = with lib.maintainers; [ vbgl ];
};
}

View File

@@ -7,44 +7,41 @@
camlpdf,
}:
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.8";
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-cpdf";
version = "2.8";
src = fetchFromGitHub {
owner = "johnwhitington";
repo = "cpdf-source";
rev = "v${version}";
hash = "sha256-DvTY5EQcvnL76RlQTcVqBiycqbCdGQCXzarSMH2P/pg=";
};
src = fetchFromGitHub {
owner = "johnwhitington";
repo = "cpdf-source";
rev = "v${version}";
hash = "sha256-DvTY5EQcvnL76RlQTcVqBiycqbCdGQCXzarSMH2P/pg=";
};
nativeBuildInputs = [
ocaml
findlib
];
propagatedBuildInputs = [ camlpdf ];
nativeBuildInputs = [
ocaml
findlib
];
propagatedBuildInputs = [ camlpdf ];
strictDeps = true;
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/
'';
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.agpl3Only;
maintainers = [ maintainers.vbgl ];
mainProgram = "cpdf";
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
description = "PDF Command Line Tools";
homepage = "https://www.coherentpdf.com/";
license = licenses.agpl3Only;
maintainers = [ maintainers.vbgl ];
mainProgram = "cpdf";
inherit (ocaml.meta) platforms;
broken = lib.versionOlder ocaml.version "4.10";
};
}

View File

@@ -6,43 +6,40 @@
findlib,
}:
if lib.versionAtLeast ocaml.version "4.06" then
throw "cryptgps is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation {
pname = "ocaml-cryptgps";
version = "0.2.1";
stdenv.mkDerivation {
pname = "ocaml-cryptgps";
version = "0.2.1";
src = fetchurl {
url = "http://download.camlcity.org/download/cryptgps-0.2.1.tar.gz";
sha256 = "1mp7i42cm9w9grmcsa69m3h1ycpn6a48p43y4xj8rsc12x9nav3s";
};
src = fetchurl {
url = "http://download.camlcity.org/download/cryptgps-0.2.1.tar.gz";
sha256 = "1mp7i42cm9w9grmcsa69m3h1ycpn6a48p43y4xj8rsc12x9nav3s";
};
nativeBuildInputs = [
ocaml
findlib
];
nativeBuildInputs = [
ocaml
findlib
strictDeps = true;
dontConfigure = true; # Skip configure phase
createFindlibDestdir = true;
meta = {
homepage = "http://projects.camlcity.org/projects/cryptgps.html";
description = "Cryptographic functions for OCaml";
longDescription = ''
This library implements the symmetric cryptographic algorithms
Blowfish, DES, and 3DES. The algorithms are written in O'Caml,
i.e. this is not a binding to some C library, but the implementation
itself.
'';
license = lib.licenses.mit;
broken = lib.versionAtLeast ocaml.version "4.06";
inherit (ocaml.meta) platforms;
maintainers = [
lib.maintainers.maggesi
];
strictDeps = true;
dontConfigure = true; # Skip configure phase
createFindlibDestdir = true;
meta = {
homepage = "http://projects.camlcity.org/projects/cryptgps.html";
description = "Cryptographic functions for OCaml";
longDescription = ''
This library implements the symmetric cryptographic algorithms
Blowfish, DES, and 3DES. The algorithms are written in O'Caml,
i.e. this is not a binding to some C library, but the implementation
itself.
'';
license = lib.licenses.mit;
inherit (ocaml.meta) platforms;
maintainers = [
lib.maintainers.maggesi
];
};
}
};
}

View File

@@ -17,63 +17,59 @@
ocsipersist,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.3")
"eliom is not available for OCaml ${ocaml.version}"
buildDunePackage rec {
pname = "eliom";
version = "11.1.1";
buildDunePackage
rec {
pname = "eliom";
version = "11.1.1";
src = fetchFromGitHub {
owner = "ocsigen";
repo = "eliom";
rev = version;
hash = "sha256-ALuoyO6axNQEeBteBVIFwdoSrbLxxcaSTObAcLPGIvo=";
};
src = fetchFromGitHub {
owner = "ocsigen";
repo = "eliom";
rev = version;
hash = "sha256-ALuoyO6axNQEeBteBVIFwdoSrbLxxcaSTObAcLPGIvo=";
};
nativeBuildInputs = [
which
];
buildInputs = [
js_of_ocaml-ocamlbuild
js_of_ocaml-ppx_deriving_json
ppx_optcomp
];
nativeBuildInputs = [
which
];
buildInputs = [
js_of_ocaml-ocamlbuild
js_of_ocaml-ppx_deriving_json
ppx_optcomp
];
propagatedBuildInputs = [
js_of_ocaml-lwt
js_of_ocaml-ppx
js_of_ocaml-tyxml
lwt_ppx
lwt_react
ocsigen_server
ocsipersist
ppx_deriving
];
propagatedBuildInputs = [
js_of_ocaml-lwt
js_of_ocaml-ppx
js_of_ocaml-tyxml
lwt_ppx
lwt_react
ocsigen_server
ocsipersist
ppx_deriving
];
strictDeps = true;
strictDeps = true;
setupHook = [ ./setup-hook.sh ];
setupHook = [ ./setup-hook.sh ];
meta = {
homepage = "http://ocsigen.org/eliom/";
description = "OCaml Framework for programming Web sites and client/server Web applications";
meta = {
homepage = "http://ocsigen.org/eliom/";
description = "OCaml Framework for programming Web sites and client/server Web applications";
longDescription = ''
Eliom is a framework for programming Web sites
and client/server Web applications. It introduces new concepts to
simplify programming common behaviours and uses advanced static
typing features of OCaml to check many properties of the Web site
at compile time. If you want to write a Web application, Eliom
makes possible to write the whole application as a single program
(client and server parts). A syntax extension is used to
distinguish both parts and the client side is compiled to JS using
Ocsigen Js_of_ocaml.
'';
longDescription = ''
Eliom is a framework for programming Web sites
and client/server Web applications. It introduces new concepts to
simplify programming common behaviours and uses advanced static
typing features of OCaml to check many properties of the Web site
at compile time. If you want to write a Web application, Eliom
makes possible to write the whole application as a single program
(client and server parts). A syntax extension is used to
distinguish both parts and the client side is compiled to JS using
Ocsigen Js_of_ocaml.
'';
license = lib.licenses.lgpl21;
maintainers = [ lib.maintainers.gal_bolle ];
};
}
license = lib.licenses.lgpl21;
broken = lib.versionAtLeast ocaml.version "5.3";
maintainers = [ lib.maintainers.gal_bolle ];
};
}

View File

@@ -7,36 +7,33 @@
ocamlbuild,
}:
if lib.versionOlder ocaml.version "4.02" || lib.versionAtLeast ocaml.version "5.0" then
throw "erm_xml is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation {
pname = "ocaml${ocaml.version}-erm_xml";
version = "0.3+20180112";
stdenv.mkDerivation {
pname = "ocaml${ocaml.version}-erm_xml";
version = "0.3+20180112";
src = fetchFromGitHub {
owner = "hannesm";
repo = "xml";
rev = "bbabdade807d8281fc48806da054b70dfe482479";
sha256 = "sha256-OQdLTq9tJZc6XlcuPv2gxzYiQAUGd6AiBzfSi169XL0=";
};
src = fetchFromGitHub {
owner = "hannesm";
repo = "xml";
rev = "bbabdade807d8281fc48806da054b70dfe482479";
sha256 = "sha256-OQdLTq9tJZc6XlcuPv2gxzYiQAUGd6AiBzfSi169XL0=";
};
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
];
strictDeps = true;
strictDeps = true;
createFindlibDestdir = true;
createFindlibDestdir = true;
meta = {
homepage = "https://github.com/hannesm/xml";
description = "XML Parser for discrete data";
platforms = ocaml.meta.platforms or [ ];
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ vbgl ];
};
}
meta = {
homepage = "https://github.com/hannesm/xml";
description = "XML Parser for discrete data";
platforms = ocaml.meta.platforms or [ ];
license = lib.licenses.bsd3;
broken = lib.versionOlder ocaml.version "4.02" || lib.versionAtLeast ocaml.version "5.0";
maintainers = with lib.maintainers; [ vbgl ];
};
}

View File

@@ -8,44 +8,41 @@
ounit,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.02")
"ocaml_expat is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-expat";
version = "1.3.0";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-expat";
version = "1.3.0";
src = fetchFromGitHub {
owner = "whitequark";
repo = "ocaml-expat";
rev = "v${version}";
hash = "sha256-eDA6MUcztaI+fpunWBdanNnPo9Y5gvbj/ViVcxYYEBg=";
};
src = fetchFromGitHub {
owner = "whitequark";
repo = "ocaml-expat";
rev = "v${version}";
hash = "sha256-eDA6MUcztaI+fpunWBdanNnPo9Y5gvbj/ViVcxYYEBg=";
};
prePatch = ''
substituteInPlace Makefile --replace "gcc" "\$(CC)"
'';
prePatch = ''
substituteInPlace Makefile --replace "gcc" "\$(CC)"
'';
nativeBuildInputs = [
ocaml
findlib
];
buildInputs = [ expat ];
nativeBuildInputs = [
ocaml
findlib
];
buildInputs = [ expat ];
strictDeps = true;
strictDeps = true;
doCheck = lib.versionAtLeast ocaml.version "4.08";
checkTarget = "testall";
checkInputs = [ ounit ];
doCheck = lib.versionAtLeast ocaml.version "4.08";
checkTarget = "testall";
checkInputs = [ ounit ];
createFindlibDestdir = true;
createFindlibDestdir = true;
meta = {
description = "OCaml wrapper for the Expat XML parsing library";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
inherit (src.meta) homepage;
inherit (ocaml.meta) platforms;
};
}
meta = {
description = "OCaml wrapper for the Expat XML parsing library";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
inherit (src.meta) homepage;
inherit (ocaml.meta) platforms;
broken = !(lib.versionAtLeast ocaml.version "4.02");
};
}

View File

@@ -5,26 +5,24 @@
ocaml,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0") "facile is not available for OCaml 5.0"
buildDunePackage rec {
pname = "facile";
version = "1.1.4";
buildDunePackage
rec {
pname = "facile";
version = "1.1.4";
src = fetchurl {
url = "https://github.com/Emmanuel-PLF/facile/releases/download/${version}/facile-${version}.tbz";
sha256 = "0jqrwmn6fr2vj2rrbllwxq4cmxykv7zh0y4vnngx29f5084a04jp";
};
src = fetchurl {
url = "https://github.com/Emmanuel-PLF/facile/releases/download/${version}/facile-${version}.tbz";
sha256 = "0jqrwmn6fr2vj2rrbllwxq4cmxykv7zh0y4vnngx29f5084a04jp";
};
doCheck = true;
doCheck = true;
duneVersion = if lib.versionAtLeast ocaml.version "4.12" then "2" else "1";
postPatch = lib.optionalString (duneVersion != "1") "dune upgrade";
duneVersion = if lib.versionAtLeast ocaml.version "4.12" then "2" else "1";
postPatch = lib.optionalString (duneVersion != "1") "dune upgrade";
meta = {
homepage = "http://opti.recherche.enac.fr/facile/";
license = lib.licenses.lgpl21Plus;
description = "Functional Constraint Library";
};
}
meta = {
homepage = "http://opti.recherche.enac.fr/facile/";
license = lib.licenses.lgpl21Plus;
description = "Functional Constraint Library";
broken = lib.versionAtLeast ocaml.version "5.0";
};
}

View File

@@ -9,38 +9,35 @@
faraday,
}:
if lib.versionOlder ocaml.version "4.3" then
throw "farfadet is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-farfadet";
version = "0.3";
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-farfadet";
version = "0.3";
src = fetchurl {
url = "https://github.com/oklm-wsh/Farfadet/releases/download/v${version}/farfadet-${version}.tbz";
sha256 = "0nlafnp0pwx0n4aszpsk6nvcvqi9im306p4jhx70si7k3xprlr2j";
};
src = fetchurl {
url = "https://github.com/oklm-wsh/Farfadet/releases/download/v${version}/farfadet-${version}.tbz";
sha256 = "0nlafnp0pwx0n4aszpsk6nvcvqi9im306p4jhx70si7k3xprlr2j";
};
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
propagatedBuildInputs = [ faraday ];
propagatedBuildInputs = [ faraday ];
strictDeps = true;
strictDeps = true;
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = {
description = "Printf-like for Faraday library";
homepage = "https://github.com/oklm-wsh/Farfadet";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
};
}
meta = {
description = "Printf-like for Faraday library";
homepage = "https://github.com/oklm-wsh/Farfadet";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
broken = lib.versionOlder ocaml.version "4.3";
};
}

View File

@@ -9,39 +9,36 @@
cmdliner,
}:
if lib.versionOlder ocaml.version "4.08" then
throw "fmt is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
version = "0.11.0";
pname = "ocaml${ocaml.version}-fmt";
stdenv.mkDerivation rec {
version = "0.11.0";
pname = "ocaml${ocaml.version}-fmt";
src = fetchurl {
url = "https://erratique.ch/software/fmt/releases/fmt-${version}.tbz";
sha256 = "sha256-hXz9R6VLUkKc2bPiZl5EFzzRvTtDW+znFy+YStU3ahs=";
};
src = fetchurl {
url = "https://erratique.ch/software/fmt/releases/fmt-${version}.tbz";
sha256 = "sha256-hXz9R6VLUkKc2bPiZl5EFzzRvTtDW+znFy+YStU3ahs=";
};
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [
cmdliner
topkg
];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [
cmdliner
topkg
];
strictDeps = true;
strictDeps = true;
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = with lib; {
homepage = "https://erratique.ch/software/fmt";
license = licenses.isc;
description = "OCaml Format pretty-printer combinators";
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
};
}
meta = with lib; {
homepage = "https://erratique.ch/software/fmt";
license = licenses.isc;
description = "OCaml Format pretty-printer combinators";
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
broken = lib.versionOlder ocaml.version "4.08";
};
}

View File

@@ -9,38 +9,35 @@
astring,
}:
if lib.versionOlder ocaml.version "4.03" then
throw "fpath is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-fpath";
version = "0.7.3";
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-fpath";
version = "0.7.3";
src = fetchurl {
url = "https://erratique.ch/software/fpath/releases/fpath-${version}.tbz";
sha256 = "03z7mj0sqdz465rc4drj1gr88l9q3nfs374yssvdjdyhjbqqzc0j";
};
src = fetchurl {
url = "https://erratique.ch/software/fpath/releases/fpath-${version}.tbz";
sha256 = "03z7mj0sqdz465rc4drj1gr88l9q3nfs374yssvdjdyhjbqqzc0j";
};
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
propagatedBuildInputs = [ astring ];
propagatedBuildInputs = [ astring ];
strictDeps = true;
strictDeps = true;
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = {
description = "OCaml module for handling file system paths with POSIX and Windows conventions";
homepage = "https://erratique.ch/software/fpath";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
};
}
meta = {
description = "OCaml module for handling file system paths with POSIX and Windows conventions";
homepage = "https://erratique.ch/software/fpath";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
broken = lib.versionOlder ocaml.version "4.03";
};
}

View File

@@ -20,35 +20,32 @@ let
};
in
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"functory is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation {
pname = "ocaml${ocaml.version}-functory";
inherit (param) version;
stdenv.mkDerivation
{
pname = "ocaml${ocaml.version}-functory";
inherit (param) version;
src = fetchurl {
url = "https://www.lri.fr/~filliatr/functory/download/functory-${param.version}.tar.gz";
inherit (param) sha256;
};
src = fetchurl {
url = "https://www.lri.fr/~filliatr/functory/download/functory-${param.version}.tar.gz";
inherit (param) sha256;
};
nativeBuildInputs = [
ocaml
findlib
];
nativeBuildInputs = [
ocaml
findlib
];
strictDeps = true;
strictDeps = true;
installTargets = [ "ocamlfind-install" ];
installTargets = [ "ocamlfind-install" ];
createFindlibDestdir = true;
createFindlibDestdir = true;
meta = with lib; {
homepage = "https://www.lri.fr/~filliatr/functory/";
description = "Distributed computing library for Objective Caml which facilitates distributed execution of parallelizable computations in a seamless fashion";
license = licenses.lgpl21;
maintainers = [ maintainers.vbgl ];
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
homepage = "https://www.lri.fr/~filliatr/functory/";
description = "Distributed computing library for Objective Caml which facilitates distributed execution of parallelizable computations in a seamless fashion";
license = licenses.lgpl21;
maintainers = [ maintainers.vbgl ];
broken = lib.versionAtLeast ocaml.version "5.0";
inherit (ocaml.meta) platforms;
};
}

View File

@@ -13,43 +13,40 @@ let
version = "1.0.0";
in
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"gg is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation {
stdenv.mkDerivation
{
pname = "ocaml${ocaml.version}-gg";
inherit version;
pname = "ocaml${ocaml.version}-gg";
inherit version;
src = fetchurl {
url = "${homepage}/releases/gg-${version}.tbz";
sha256 = "sha256:0j7bpj8k17csnz6v6frkz9aycywsb7xmznnb31g8rbfk3626f3ci";
};
src = fetchurl {
url = "${homepage}/releases/gg-${version}.tbz";
sha256 = "sha256:0j7bpj8k17csnz6v6frkz9aycywsb7xmznnb31g8rbfk3626f3ci";
};
strictDeps = true;
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = with lib; {
description = "Basic types for computer graphics in OCaml";
longDescription = ''
Gg is an OCaml module providing basic types for computer graphics. It
defines types and functions for floats, vectors, points, sizes,
matrices, quaternions, axis aligned boxes, colors, color spaces, and
raster data.
'';
inherit homepage;
inherit (ocaml.meta) platforms;
license = licenses.bsd3;
maintainers = [ maintainers.jirkamarsik ];
};
}
meta = with lib; {
description = "Basic types for computer graphics in OCaml";
longDescription = ''
Gg is an OCaml module providing basic types for computer graphics. It
defines types and functions for floats, vectors, points, sizes,
matrices, quaternions, axis aligned boxes, colors, color spaces, and
raster data.
'';
inherit homepage;
inherit (ocaml.meta) platforms;
license = licenses.bsd3;
maintainers = [ maintainers.jirkamarsik ];
broken = !(lib.versionAtLeast ocaml.version "4.08");
};
}

View File

@@ -11,8 +11,6 @@
let
minimumSupportedOcamlVersion = "4.02.0";
in
assert lib.versionOlder minimumSupportedOcamlVersion ocaml.version;
stdenv.mkDerivation rec {
pname = "hmap";
version = "0.8.1";
@@ -46,5 +44,6 @@ stdenv.mkDerivation rec {
homepage = "https://erratique.ch/software/hmap";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.pmahoney ];
broken = !(lib.versionOlder minimumSupportedOcamlVersion ocaml.version);
};
}

View File

@@ -9,51 +9,48 @@
extlib,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"javalib is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-javalib";
version = "3.2.2";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-javalib";
version = "3.2.2";
src = fetchFromGitHub {
owner = "javalib-team";
repo = "javalib";
rev = version;
hash = "sha256-XaI7GTU/O5UEWuYX4yqaIRmEoH7FuvCg/+gtKbE/P1s=";
};
src = fetchFromGitHub {
owner = "javalib-team";
repo = "javalib";
rev = version;
hash = "sha256-XaI7GTU/O5UEWuYX4yqaIRmEoH7FuvCg/+gtKbE/P1s=";
};
nativeBuildInputs = [
which
ocaml
findlib
];
nativeBuildInputs = [
which
ocaml
findlib
];
strictDeps = true;
strictDeps = true;
patches = [
./configure.sh.patch
./Makefile.config.example.patch
];
patches = [
./configure.sh.patch
./Makefile.config.example.patch
];
createFindlibDestdir = true;
createFindlibDestdir = true;
configureScript = "./configure.sh";
dontAddPrefix = "true";
dontAddStaticConfigureFlags = true;
configurePlatforms = [ ];
configureScript = "./configure.sh";
dontAddPrefix = "true";
dontAddStaticConfigureFlags = true;
configurePlatforms = [ ];
propagatedBuildInputs = [
camlzip
extlib
];
propagatedBuildInputs = [
camlzip
extlib
];
meta = with lib; {
description = "Library that parses Java .class files into OCaml data structures";
homepage = "https://javalib-team.github.io/javalib/";
license = licenses.lgpl3;
maintainers = [ maintainers.vbgl ];
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
description = "Library that parses Java .class files into OCaml data structures";
homepage = "https://javalib-team.github.io/javalib/";
license = licenses.lgpl3;
maintainers = [ maintainers.vbgl ];
inherit (ocaml.meta) platforms;
broken = !(lib.versionAtLeast ocaml.version "4.08");
};
}

View File

@@ -7,28 +7,25 @@
zlib,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"kafka is not available for OCaml ${ocaml.version}"
buildDunePackage rec {
pname = "kafka";
version = "0.5";
buildDunePackage
rec {
pname = "kafka";
version = "0.5";
src = fetchurl {
url = "https://github.com/didier-wenzek/ocaml-kafka/releases/download/${version}/kafka-${version}.tbz";
sha256 = "0m9212yap0a00hd0f61i4y4fna3141p77qj3mm7jl1h4q60jdhvy";
};
src = fetchurl {
url = "https://github.com/didier-wenzek/ocaml-kafka/releases/download/${version}/kafka-${version}.tbz";
sha256 = "0m9212yap0a00hd0f61i4y4fna3141p77qj3mm7jl1h4q60jdhvy";
};
propagatedBuildInputs = [
rdkafka
zlib
];
propagatedBuildInputs = [
rdkafka
zlib
];
meta = with lib; {
homepage = "https://github.com/didier-wenzek/ocaml-kafka";
description = "OCaml bindings for Kafka";
license = licenses.mit;
maintainers = [ maintainers.vbgl ];
};
}
meta = with lib; {
homepage = "https://github.com/didier-wenzek/ocaml-kafka";
description = "OCaml bindings for Kafka";
license = licenses.mit;
maintainers = [ maintainers.vbgl ];
broken = lib.versionAtLeast ocaml.version "5.0";
};
}

View File

@@ -7,23 +7,20 @@
cmdliner,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"kafka_lwt is not available for OCaml ${ocaml.version}"
buildDunePackage {
pname = "kafka_lwt";
buildDunePackage
{
pname = "kafka_lwt";
inherit (kafka) version src;
inherit (kafka) version src;
buildInputs = [ cmdliner ];
buildInputs = [ cmdliner ];
propagatedBuildInputs = [
kafka
lwt
];
propagatedBuildInputs = [
kafka
lwt
];
meta = kafka.meta // {
description = "OCaml bindings for Kafka, Lwt bindings";
};
}
meta = kafka.meta // {
description = "OCaml bindings for Kafka, Lwt bindings";
broken = lib.versionAtLeast ocaml.version "5.0";
};
}

View File

@@ -9,73 +9,70 @@
camlp-streams,
}:
if lib.versionOlder ocaml.version "4.06" then
throw "lablgl is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-lablgl";
version = "1.07";
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-lablgl";
version = "1.07";
src = fetchFromGitHub {
owner = "garrigue";
repo = "lablgl";
rev = "v${version}";
hash = "sha256-GiQKHMn5zHyvDrA2ve12X5YTm3/RZp8tukIqifgVaW4=";
};
src = fetchFromGitHub {
owner = "garrigue";
repo = "lablgl";
rev = "v${version}";
hash = "sha256-GiQKHMn5zHyvDrA2ve12X5YTm3/RZp8tukIqifgVaW4=";
};
strictDeps = true;
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
];
buildInputs = [
libglut
camlp-streams
];
propagatedBuildInputs = [
libGLU
];
nativeBuildInputs = [
ocaml
findlib
patches = [ ./META.patch ];
preConfigure = ''
mkdir -p $out/bin
mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
cp \
Makefile.config.${if stdenv.hostPlatform.isDarwin then "osx" else "ex"} \
Makefile.config
'';
makeFlags = [
"BINDIR=${placeholder "out"}/bin/"
"INSTALLDIR=${placeholder "out"}/lib/ocaml/${ocaml.version}/site-lib/lablgl/"
"DLLDIR=${placeholder "out"}/lib/ocaml/${ocaml.version}/site-lib/stublibs/"
"XINCLUDES="
"TKINCLUDES="
"TKLIBS="
];
buildFlags = [
"lib"
"libopt"
"glut"
"glutopt"
];
postInstall = ''
cp ./META $out/lib/ocaml/${ocaml.version}/site-lib/lablgl
'';
meta = with lib; {
description = "OpenGL bindings for ocaml";
homepage = "http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgl.html";
license = licenses.gpl2;
maintainers = with maintainers; [
pSub
vbgl
];
buildInputs = [
libglut
camlp-streams
];
propagatedBuildInputs = [
libGLU
];
patches = [ ./META.patch ];
preConfigure = ''
mkdir -p $out/bin
mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
cp \
Makefile.config.${if stdenv.hostPlatform.isDarwin then "osx" else "ex"} \
Makefile.config
'';
makeFlags = [
"BINDIR=${placeholder "out"}/bin/"
"INSTALLDIR=${placeholder "out"}/lib/ocaml/${ocaml.version}/site-lib/lablgl/"
"DLLDIR=${placeholder "out"}/lib/ocaml/${ocaml.version}/site-lib/stublibs/"
"XINCLUDES="
"TKINCLUDES="
"TKLIBS="
];
buildFlags = [
"lib"
"libopt"
"glut"
"glutopt"
];
postInstall = ''
cp ./META $out/lib/ocaml/${ocaml.version}/site-lib/lablgl
'';
meta = with lib; {
description = "OpenGL bindings for ocaml";
homepage = "http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgl.html";
license = licenses.gpl2;
maintainers = with maintainers; [
pSub
vbgl
];
mainProgram = "lablglut";
};
}
mainProgram = "lablglut";
broken = lib.versionOlder ocaml.version "4.06";
};
}

View File

@@ -10,41 +10,38 @@
xmlm,
}:
if lib.versionOlder ocaml.version "4.02" || lib.versionAtLeast ocaml.version "4.13" then
throw "lablgtk-extras is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
version = "1.6";
pname = "ocaml${ocaml.version}-lablgtk-extras";
src = fetchFromGitLab {
domain = "framagit.org";
owner = "zoggy";
repo = "lablgtk-extras";
rev = "release-${version}";
sha256 = "1bbdp5j18s582mmyd7qiaq1p08g2ag4gl7x65pmzahbhg719hjda";
};
stdenv.mkDerivation rec {
version = "1.6";
pname = "ocaml${ocaml.version}-lablgtk-extras";
src = fetchFromGitLab {
domain = "framagit.org";
owner = "zoggy";
repo = "lablgtk-extras";
rev = "release-${version}";
sha256 = "1bbdp5j18s582mmyd7qiaq1p08g2ag4gl7x65pmzahbhg719hjda";
};
strictDeps = true;
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
camlp4
];
propagatedBuildInputs = [
config-file
lablgtk
xmlm
];
nativeBuildInputs = [
ocaml
findlib
camlp4
];
propagatedBuildInputs = [
config-file
lablgtk
xmlm
];
createFindlibDestdir = true;
createFindlibDestdir = true;
meta = {
inherit (ocaml.meta) platforms;
maintainers = with lib.maintainers; [ vbgl ];
homepage = "https://framagit.org/zoggy/lablgtk-extras/";
description = "Collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
license = lib.licenses.lgpl2Plus;
};
}
meta = {
inherit (ocaml.meta) platforms;
maintainers = with lib.maintainers; [ vbgl ];
homepage = "https://framagit.org/zoggy/lablgtk-extras/";
description = "Collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
license = lib.licenses.lgpl2Plus;
broken = lib.versionOlder ocaml.version "4.02" || lib.versionAtLeast ocaml.version "4.13";
};
}

View File

@@ -10,49 +10,46 @@
zarith,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.07")
"lem is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-lem";
version = "2025-03-13";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-lem";
version = "2025-03-13";
src = fetchFromGitHub {
owner = "rems-project";
repo = "lem";
rev = version;
hash = "sha256-ZV2OiFonMlNzqtsumMQ8jzY9/ATaZxiNHZ7JzOfGluY=";
};
src = fetchFromGitHub {
owner = "rems-project";
repo = "lem";
rev = version;
hash = "sha256-ZV2OiFonMlNzqtsumMQ8jzY9/ATaZxiNHZ7JzOfGluY=";
};
nativeBuildInputs = [
makeWrapper
ocamlbuild
findlib
ocaml
];
propagatedBuildInputs = [
zarith
num
];
nativeBuildInputs = [
makeWrapper
ocamlbuild
findlib
ocaml
installFlags = [ "INSTALL_DIR=$(out)" ];
createFindlibDestdir = true;
postInstall = ''
wrapProgram $out/bin/lem --set LEMLIB $out/share/lem/library
'';
meta = with lib; {
homepage = "https://github.com/rems-project/lem";
description = "Tool for lightweight executable mathematics";
mainProgram = "lem";
maintainers = with maintainers; [ genericnerdyusername ];
license = with licenses; [
bsd3
gpl2
];
propagatedBuildInputs = [
zarith
num
];
installFlags = [ "INSTALL_DIR=$(out)" ];
createFindlibDestdir = true;
postInstall = ''
wrapProgram $out/bin/lem --set LEMLIB $out/share/lem/library
'';
meta = with lib; {
homepage = "https://github.com/rems-project/lem";
description = "Tool for lightweight executable mathematics";
mainProgram = "lem";
maintainers = with maintainers; [ genericnerdyusername ];
license = with licenses; [
bsd3
gpl2
];
platforms = ocaml.meta.platforms;
};
}
platforms = ocaml.meta.platforms;
broken = !(lib.versionAtLeast ocaml.version "4.07");
};
}

View File

@@ -7,35 +7,32 @@
lem,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.07")
"linksem is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-linksem";
version = "0.8";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-linksem";
version = "0.8";
src = fetchFromGitHub {
owner = "rems-project";
repo = "linksem";
rev = version;
hash = "sha256-7/YfDK3TruKCckMzAPLRrwBkHRJcX1S+AzXHWRxkZPA=";
};
src = fetchFromGitHub {
owner = "rems-project";
repo = "linksem";
rev = version;
hash = "sha256-7/YfDK3TruKCckMzAPLRrwBkHRJcX1S+AzXHWRxkZPA=";
};
nativeBuildInputs = [
findlib
ocaml
];
nativeBuildInputs = [
findlib
ocaml
];
propagatedBuildInputs = [ lem ];
propagatedBuildInputs = [ lem ];
createFindlibDestdir = true;
createFindlibDestdir = true;
meta = with lib; {
homepage = "https://github.com/rems-project/linksem";
description = "Formalisation of substantial parts of ELF linking and DWARF debug information";
maintainers = with maintainers; [ genericnerdyusername ];
license = licenses.bsd2;
platforms = ocaml.meta.platforms;
};
}
meta = with lib; {
homepage = "https://github.com/rems-project/linksem";
description = "Formalisation of substantial parts of ELF linking and DWARF debug information";
maintainers = with maintainers; [ genericnerdyusername ];
license = licenses.bsd2;
platforms = ocaml.meta.platforms;
broken = !(lib.versionAtLeast ocaml.version "4.07");
};
}

View File

@@ -12,66 +12,63 @@
libmysqlclient,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.07")
"mariadb is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-mariadb";
version = "1.1.6";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-mariadb";
version = "1.1.6";
src = fetchurl {
url = "https://github.com/andrenth/ocaml-mariadb/releases/download/${version}/ocaml-mariadb-${version}.tar.gz";
sha256 = "sha256-3/C1Gz6luUzS7oaudLlDHMT6JB2v5OdbLVzJhtayHGM=";
};
src = fetchurl {
url = "https://github.com/andrenth/ocaml-mariadb/releases/download/${version}/ocaml-mariadb-${version}.tar.gz";
sha256 = "sha256-3/C1Gz6luUzS7oaudLlDHMT6JB2v5OdbLVzJhtayHGM=";
};
patches =
lib.lists.map
(
x:
fetchpatch {
url = "https://github.com/andrenth/ocaml-mariadb/commit/${x.path}.patch";
inherit (x) hash;
}
)
[
{
path = "9db2e4d8dec7c584213d0e0f03d079a36a35d9d5";
hash = "sha256-heROtU02cYBJ5edIHMdYP1xNXcLv8h79GYGBuudJhgE=";
}
{
path = "40cd3102bc7cce4ed826ed609464daeb1bbb4581";
hash = "sha256-YVsAMJiOgWRk9xPaRz2sDihBYLlXv+rhWtQIMOVLtSg=";
}
];
patches =
lib.lists.map
(
x:
fetchpatch {
url = "https://github.com/andrenth/ocaml-mariadb/commit/${x.path}.patch";
inherit (x) hash;
}
)
[
{
path = "9db2e4d8dec7c584213d0e0f03d079a36a35d9d5";
hash = "sha256-heROtU02cYBJ5edIHMdYP1xNXcLv8h79GYGBuudJhgE=";
}
{
path = "40cd3102bc7cce4ed826ed609464daeb1bbb4581";
hash = "sha256-YVsAMJiOgWRk9xPaRz2sDihBYLlXv+rhWtQIMOVLtSg=";
}
];
postPatch = ''
substituteInPlace setup.ml --replace '#use "topfind"' \
'#directory "${findlib}/lib/ocaml/${ocaml.version}/site-lib/";; #use "topfind"'
'';
postPatch = ''
substituteInPlace setup.ml --replace '#use "topfind"' \
'#directory "${findlib}/lib/ocaml/${ocaml.version}/site-lib/";; #use "topfind"'
'';
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
];
buildInputs = [
mariadb
libmysqlclient
camlp-streams
ocamlbuild
];
propagatedBuildInputs = [ ctypes ];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
];
buildInputs = [
mariadb
libmysqlclient
camlp-streams
ocamlbuild
];
propagatedBuildInputs = [ ctypes ];
strictDeps = true;
strictDeps = true;
preInstall = "mkdir -p $OCAMLFIND_DESTDIR/stublibs";
preInstall = "mkdir -p $OCAMLFIND_DESTDIR/stublibs";
meta = {
description = "OCaml bindings for MariaDB";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ bcc32 ];
homepage = "https://github.com/andrenth/ocaml-mariadb";
inherit (ocaml.meta) platforms;
};
}
meta = {
description = "OCaml bindings for MariaDB";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ bcc32 ];
homepage = "https://github.com/andrenth/ocaml-mariadb";
inherit (ocaml.meta) platforms;
broken = !(lib.versionAtLeast ocaml.version "4.07");
};
}

View File

@@ -5,26 +5,24 @@
ocaml,
}:
if !(lib.versionOlder ocaml.version "5.0.0") then
throw "memprof-limits is not available for OCaml ${ocaml.version}"
else
buildDunePackage rec {
pname = "memprof-limits";
version = "0.2.1";
buildDunePackage rec {
pname = "memprof-limits";
version = "0.2.1";
src = fetchFromGitLab {
owner = "gadmm";
repo = pname;
rev = "v${version}";
hash = "sha256-Pmuln5TihPoPZuehZlqPfERif6lf7O+0454kW9y3aKc=";
};
src = fetchFromGitLab {
owner = "gadmm";
repo = pname;
rev = "v${version}";
hash = "sha256-Pmuln5TihPoPZuehZlqPfERif6lf7O+0454kW9y3aKc=";
};
minimalOCamlVersion = "4.12";
minimalOCamlVersion = "4.12";
meta = with lib; {
homepage = "https://ocaml.org/p/memprof-limits/latest";
description = "Memory limits, allocation limits, and thread cancellation for OCaml";
license = licenses.lgpl3;
maintainers = with maintainers; [ alizter ];
};
}
meta = with lib; {
homepage = "https://ocaml.org/p/memprof-limits/latest";
description = "Memory limits, allocation limits, and thread cancellation for OCaml";
license = licenses.lgpl3;
maintainers = with maintainers; [ alizter ];
broken = !(lib.versionOlder ocaml.version "5.0.0");
};
}

View File

@@ -8,36 +8,33 @@
topkg,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"mtime is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-mtime";
version = "2.1.0";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-mtime";
version = "2.1.0";
src = fetchurl {
url = "https://erratique.ch/software/mtime/releases/mtime-${version}.tbz";
sha256 = "sha256-CXyygC43AerZVy4bSD1aKMbi8KOUSfqvm0StiomDTYg=";
};
src = fetchurl {
url = "https://erratique.ch/software/mtime/releases/mtime-${version}.tbz";
sha256 = "sha256-CXyygC43AerZVy4bSD1aKMbi8KOUSfqvm0StiomDTYg=";
};
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
strictDeps = true;
strictDeps = true;
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = with lib; {
description = "Monotonic wall-clock time for OCaml";
homepage = "https://erratique.ch/software/mtime";
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
license = licenses.bsd3;
};
}
meta = with lib; {
description = "Monotonic wall-clock time for OCaml";
homepage = "https://erratique.ch/software/mtime";
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
license = licenses.bsd3;
broken = !(lib.versionAtLeast ocaml.version "4.08");
};
}

View File

@@ -5,28 +5,26 @@
ocaml,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0") "nonstd is not available for OCaml 5.0"
buildDunePackage rec {
pname = "nonstd";
version = "0.0.3";
buildDunePackage
rec {
pname = "nonstd";
version = "0.0.3";
minimalOCamlVersion = "4.02";
minimalOCamlVersion = "4.02";
src = fetchzip {
url = "https://bitbucket.org/smondet/${pname}/get/${pname}.${version}.tar.gz";
sha256 = "0ccjwcriwm8fv29ij1cnbc9win054kb6pfga3ygzdbjpjb778j46";
};
src = fetchzip {
url = "https://bitbucket.org/smondet/${pname}/get/${pname}.${version}.tar.gz";
sha256 = "0ccjwcriwm8fv29ij1cnbc9win054kb6pfga3ygzdbjpjb778j46";
};
duneVersion = if lib.versionAtLeast ocaml.version "4.12" then "2" else "1";
postPatch = lib.optionalString (duneVersion != "1") "dune upgrade";
doCheck = true;
duneVersion = if lib.versionAtLeast ocaml.version "4.12" then "2" else "1";
postPatch = lib.optionalString (duneVersion != "1") "dune upgrade";
doCheck = true;
meta = with lib; {
homepage = "https://bitbucket.org/smondet/nonstd";
description = "Non-standard mini-library";
license = licenses.isc;
maintainers = [ maintainers.alexfmpe ];
};
}
meta = with lib; {
homepage = "https://bitbucket.org/smondet/nonstd";
description = "Non-standard mini-library";
license = licenses.isc;
maintainers = [ maintainers.alexfmpe ];
broken = lib.versionAtLeast ocaml.version "5.0";
};
}

View File

@@ -9,32 +9,29 @@
brr,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"note is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-note";
version = "0.0.3";
src = fetchurl {
url = "https://erratique.ch/software/note/releases/note-${version}.tbz";
hash = "sha256-ZZOvCnyz7UWzFtGFI1uC0ZApzyylgZYM/HYIXGVXY2k=";
};
buildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
inherit (topkg) buildPhase installPhase;
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-note";
version = "0.0.3";
src = fetchurl {
url = "https://erratique.ch/software/note/releases/note-${version}.tbz";
hash = "sha256-ZZOvCnyz7UWzFtGFI1uC0ZApzyylgZYM/HYIXGVXY2k=";
};
buildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
inherit (topkg) buildPhase installPhase;
propagatedBuildInputs = [ brr ];
propagatedBuildInputs = [ brr ];
meta = {
homepage = "https://erratique.ch/software/note";
description = "OCaml module for functional reactive programming";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
};
}
meta = {
homepage = "https://erratique.ch/software/note";
description = "OCaml module for functional reactive programming";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
broken = !(lib.versionAtLeast ocaml.version "4.08");
};
}

View File

@@ -20,63 +20,59 @@
let
pname = "ocaml-cairo";
in
stdenv.mkDerivation rec {
name = "${pname}-${version}";
version = "1.2.0";
if lib.versionAtLeast ocaml.version "4.06" then
throw "${pname} is not available for OCaml ${ocaml.version}"
else
src = fetchurl {
url = "http://cgit.freedesktop.org/cairo-ocaml/snapshot/cairo-ocaml-${version}.zip";
sha256 = "0l4p9bp6kclr570mxma8wafibr1g5fsjj8h10yr4b507g0hmlh0l";
};
stdenv.mkDerivation rec {
name = "${pname}-${version}";
version = "1.2.0";
patches = [ ./META.patch ];
src = fetchurl {
url = "http://cgit.freedesktop.org/cairo-ocaml/snapshot/cairo-ocaml-${version}.zip";
sha256 = "0l4p9bp6kclr570mxma8wafibr1g5fsjj8h10yr4b507g0hmlh0l";
};
strictDeps = true;
patches = [ ./META.patch ];
nativeBuildInputs = [
pkg-config
unzip
ocaml
automake
gnum4
autoconf
findlib
];
buildInputs = [
freetype
lablgtk
cairo
gdk-pixbuf
gtk2
pango
];
strictDeps = true;
createFindlibDestdir = true;
nativeBuildInputs = [
pkg-config
unzip
ocaml
automake
gnum4
autoconf
findlib
];
buildInputs = [
freetype
lablgtk
cairo
gdk-pixbuf
gtk2
pango
];
preConfigure = ''
aclocal -I support
autoconf
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE `pkg-config --cflags cairo gdk-pixbuf glib gtk+ pango`"
export LABLGTKDIR=${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/lablgtk2
cp ${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/lablgtk2/pango.ml ./src
cp ${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/lablgtk2/gaux.ml ./src
'';
createFindlibDestdir = true;
postInstall = ''
cp META $out/lib/ocaml/${ocaml.version}/site-lib/cairo/
'';
preConfigure = ''
aclocal -I support
autoconf
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE `pkg-config --cflags cairo gdk-pixbuf glib gtk+ pango`"
export LABLGTKDIR=${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/lablgtk2
cp ${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/lablgtk2/pango.ml ./src
cp ${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/lablgtk2/gaux.ml ./src
'';
makeFlags = [ "INSTALLDIR=$(out)/lib/ocaml/${ocaml.version}/site-lib/cairo" ];
postInstall = ''
cp META $out/lib/ocaml/${ocaml.version}/site-lib/cairo/
'';
makeFlags = [ "INSTALLDIR=$(out)/lib/ocaml/${ocaml.version}/site-lib/cairo" ];
meta = {
homepage = "http://cairographics.org/cairo-ocaml";
description = "Ocaml bindings for cairo library";
license = lib.licenses.gpl2;
inherit (ocaml.meta) platforms;
};
}
meta = {
homepage = "http://cairographics.org/cairo-ocaml";
description = "Ocaml bindings for cairo library";
license = lib.licenses.gpl2;
broken = lib.versionAtLeast ocaml.version "4.06";
inherit (ocaml.meta) platforms;
};
}

View File

@@ -10,49 +10,46 @@
perl,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.02")
"libvirt is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml-libvirt";
version = "0.6.1.5";
stdenv.mkDerivation
rec {
pname = "ocaml-libvirt";
version = "0.6.1.5";
src = fetchFromGitLab {
owner = "libvirt";
repo = "libvirt-ocaml";
rev = "v${version}";
sha256 = "0xpkdmknk74yqxgw8z2w8b7ss8hpx92xnab5fsqg2byyj55gzf2k";
};
src = fetchFromGitLab {
owner = "libvirt";
repo = "libvirt-ocaml";
rev = "v${version}";
sha256 = "0xpkdmknk74yqxgw8z2w8b7ss8hpx92xnab5fsqg2byyj55gzf2k";
};
propagatedBuildInputs = [ libvirt ];
propagatedBuildInputs = [ libvirt ];
nativeBuildInputs = [
autoreconfHook
pkg-config
findlib
perl
ocaml
];
nativeBuildInputs = [
autoreconfHook
pkg-config
findlib
perl
ocaml
];
strictDeps = true;
strictDeps = true;
buildFlags = [
"all"
"opt"
"CPPFLAGS=-Wno-error"
];
installTargets = "install-opt";
preInstall = ''
# Fix 'dllmllibvirt.so' install failure into non-existent directory.
mkdir -p $OCAMLFIND_DESTDIR/stublibs
'';
buildFlags = [
"all"
"opt"
"CPPFLAGS=-Wno-error"
];
installTargets = "install-opt";
preInstall = ''
# Fix 'dllmllibvirt.so' install failure into non-existent directory.
mkdir -p $OCAMLFIND_DESTDIR/stublibs
'';
meta = with lib; {
description = "OCaml bindings for libvirt";
homepage = "https://libvirt.org/ocaml/";
license = licenses.gpl2;
maintainers = [ ];
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
description = "OCaml bindings for libvirt";
homepage = "https://libvirt.org/ocaml/";
license = licenses.gpl2;
maintainers = [ ];
inherit (ocaml.meta) platforms;
broken = !(lib.versionAtLeast ocaml.version "4.02");
};
}

View File

@@ -7,30 +7,27 @@
ppx_derivers,
}:
if lib.versionOlder "4.13" ocaml.version then
throw "ocaml-migrate-parsetree-1.8 is not available for OCaml ${ocaml.version}"
else
buildDunePackage rec {
pname = "ocaml-migrate-parsetree";
version = "1.8.0";
buildDunePackage rec {
pname = "ocaml-migrate-parsetree";
version = "1.8.0";
src = fetchFromGitHub {
owner = "ocaml-ppx";
repo = pname;
rev = "v${version}";
sha256 = "16x8sxc4ygxrr1868qpzfqyrvjf3hfxvjzmxmf6ibgglq7ixa2nq";
};
src = fetchFromGitHub {
owner = "ocaml-ppx";
repo = pname;
rev = "v${version}";
sha256 = "16x8sxc4ygxrr1868qpzfqyrvjf3hfxvjzmxmf6ibgglq7ixa2nq";
};
propagatedBuildInputs = [
ppx_derivers
result
];
propagatedBuildInputs = [
ppx_derivers
result
];
meta = {
description = "Convert OCaml parsetrees between different major versions";
license = lib.licenses.lgpl21;
maintainers = [ lib.maintainers.vbgl ];
inherit (src.meta) homepage;
};
}
meta = {
description = "Convert OCaml parsetrees between different major versions";
license = lib.licenses.lgpl21;
maintainers = [ lib.maintainers.vbgl ];
inherit (src.meta) homepage;
broken = lib.versionOlder "4.13" ocaml.version;
};
}

View File

@@ -5,28 +5,25 @@
ocaml,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.1")
"ocaml-migrate-parsetree is not available for OCaml ${ocaml.version}"
buildDunePackage rec {
pname = "ocaml-migrate-parsetree";
version = "2.4.0";
buildDunePackage
rec {
pname = "ocaml-migrate-parsetree";
version = "2.4.0";
minimalOCamlVersion = "4.02";
minimalOCamlVersion = "4.02";
src = fetchurl {
url = "https://github.com/ocaml-ppx/${pname}/releases/download/${version}/${pname}-${version}.tbz";
sha256 = "sha256-7EnEUtwzemIFVqtoK/AZi/UBglULUC2PsjClkSYKpqQ=";
};
src = fetchurl {
url = "https://github.com/ocaml-ppx/${pname}/releases/download/${version}/${pname}-${version}.tbz";
sha256 = "sha256-7EnEUtwzemIFVqtoK/AZi/UBglULUC2PsjClkSYKpqQ=";
};
meta = {
description = "Convert OCaml parsetrees between different major versions";
license = lib.licenses.lgpl21;
maintainers = with lib.maintainers; [
vbgl
sternenseemann
];
homepage = "https://github.com/ocaml-ppx/ocaml-migrate-parsetree";
};
}
meta = {
description = "Convert OCaml parsetrees between different major versions";
license = lib.licenses.lgpl21;
maintainers = with lib.maintainers; [
vbgl
sternenseemann
];
homepage = "https://github.com/ocaml-ppx/ocaml-migrate-parsetree";
broken = lib.versionAtLeast ocaml.version "5.1";
};
}

View File

@@ -13,41 +13,35 @@
let
inherit (callPackage ./generic.nix args) src version library_deps;
in
buildDunePackage {
pname = "ocamlformat";
inherit src version;
lib.throwIf
(
lib.versionAtLeast ocaml.version "5.0" && !lib.versionAtLeast version "0.23"
|| lib.versionAtLeast ocaml.version "5.1" && !lib.versionAtLeast version "0.25"
|| lib.versionAtLeast ocaml.version "5.2" && !lib.versionAtLeast version "0.26.2"
|| lib.versionAtLeast ocaml.version "5.3" && !lib.versionAtLeast version "0.27"
)
"ocamlformat ${version} is not available for OCaml ${ocaml.version}"
minimalOCamlVersion = "4.08";
buildDunePackage
{
pname = "ocamlformat";
inherit src version;
nativeBuildInputs = if lib.versionAtLeast version "0.25.1" then [ ] else [ menhir ];
minimalOCamlVersion = "4.08";
buildInputs = [
re
]
++ library_deps
++ lib.optionals (lib.versionAtLeast version "0.25.1") [
(ocamlformat-lib.override { inherit version; })
];
nativeBuildInputs = if lib.versionAtLeast version "0.25.1" then [ ] else [ menhir ];
buildInputs = [
re
]
++ library_deps
++ lib.optionals (lib.versionAtLeast version "0.25.1") [
(ocamlformat-lib.override { inherit version; })
meta = {
homepage = "https://github.com/ocaml-ppx/ocamlformat";
description = "Auto-formatter for OCaml code";
maintainers = with lib.maintainers; [
Zimmi48
Julow
];
meta = {
homepage = "https://github.com/ocaml-ppx/ocamlformat";
description = "Auto-formatter for OCaml code";
maintainers = with lib.maintainers; [
Zimmi48
Julow
];
license = lib.licenses.mit;
mainProgram = "ocamlformat";
};
}
license = lib.licenses.mit;
mainProgram = "ocamlformat";
broken =
lib.versionAtLeast ocaml.version "5.0" && !lib.versionAtLeast version "0.23"
|| lib.versionAtLeast ocaml.version "5.1" && !lib.versionAtLeast version "0.25"
|| lib.versionAtLeast ocaml.version "5.2" && !lib.versionAtLeast version "0.26.2"
|| lib.versionAtLeast ocaml.version "5.3" && !lib.versionAtLeast version "0.27";
};
}

View File

@@ -13,65 +13,62 @@
nettle,
}:
lib.throwIf (lib.versionOlder ocaml.version "4.02" || lib.versionAtLeast ocaml.version "5.0")
"ocamlnet is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-ocamlnet";
version = "4.1.9";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-ocamlnet";
version = "4.1.9";
src = fetchurl {
url = "http://download.camlcity.org/download/ocamlnet-${version}.tar.gz";
sha256 = "1vlwxjxr946gdl61a1d7yk859cijq45f60dhn54ik3w4g6cx33pr";
};
src = fetchurl {
url = "http://download.camlcity.org/download/ocamlnet-${version}.tar.gz";
sha256 = "1vlwxjxr946gdl61a1d7yk859cijq45f60dhn54ik3w4g6cx33pr";
};
nativeBuildInputs = [
pkg-config
which
ocaml
findlib
];
buildInputs = [
ncurses
ocaml_pcre
camlzip
gnutls
nettle
];
nativeBuildInputs = [
pkg-config
which
ocaml
findlib
strictDeps = true;
createFindlibDestdir = true;
dontAddPrefix = true;
dontAddStaticConfigureFlags = true;
configurePlatforms = [ ];
preConfigure = ''
configureFlagsArray=(
-bindir $out/bin
-enable-gnutls
-enable-zip
-enable-pcre
-disable-gtk2
-with-nethttpd
-datadir $out/lib/ocaml/${ocaml.version}/ocamlnet
)
'';
buildPhase = ''
make all
make opt
'';
meta = {
homepage = "http://projects.camlcity.org/projects/ocamlnet.html";
description = "Library implementing Internet protocols (http, cgi, email, etc.) for OCaml";
license = "Most Ocamlnet modules are released under the zlib/png license. The HTTP server module Nethttpd is, however, under the GPL.";
inherit (ocaml.meta) platforms;
maintainers = [
lib.maintainers.maggesi
];
buildInputs = [
ncurses
ocaml_pcre
camlzip
gnutls
nettle
];
strictDeps = true;
createFindlibDestdir = true;
dontAddPrefix = true;
dontAddStaticConfigureFlags = true;
configurePlatforms = [ ];
preConfigure = ''
configureFlagsArray=(
-bindir $out/bin
-enable-gnutls
-enable-zip
-enable-pcre
-disable-gtk2
-with-nethttpd
-datadir $out/lib/ocaml/${ocaml.version}/ocamlnet
)
'';
buildPhase = ''
make all
make opt
'';
meta = {
homepage = "http://projects.camlcity.org/projects/ocamlnet.html";
description = "Library implementing Internet protocols (http, cgi, email, etc.) for OCaml";
license = "Most Ocamlnet modules are released under the zlib/png license. The HTTP server module Nethttpd is, however, under the GPL.";
inherit (ocaml.meta) platforms;
maintainers = [
lib.maintainers.maggesi
];
};
}
broken = lib.versionOlder ocaml.version "4.02" || lib.versionAtLeast ocaml.version "5.0";
};
}

View File

@@ -8,42 +8,39 @@
pprint,
}:
if lib.versionOlder ocaml.version "4.02" then
throw "ocp-ocamlres is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-ocp-ocamlres";
version = "0.4";
src = fetchFromGitHub {
owner = "OCamlPro";
repo = "ocp-ocamlres";
rev = "v${version}";
sha256 = "0smfwrj8qhzknhzawygxi0vgl2af4vyi652fkma59rzjpvscqrnn";
};
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-ocp-ocamlres";
version = "0.4";
src = fetchFromGitHub {
owner = "OCamlPro";
repo = "ocp-ocamlres";
rev = "v${version}";
sha256 = "0smfwrj8qhzknhzawygxi0vgl2af4vyi652fkma59rzjpvscqrnn";
};
nativeBuildInputs = [
ocaml
findlib
];
buildInputs = [
astring
pprint
];
nativeBuildInputs = [
ocaml
findlib
];
buildInputs = [
astring
pprint
];
strictDeps = true;
strictDeps = true;
createFindlibDestdir = true;
createFindlibDestdir = true;
installFlags = [ "BINDIR=$(out)/bin" ];
preInstall = "mkdir -p $out/bin";
installFlags = [ "BINDIR=$(out)/bin" ];
preInstall = "mkdir -p $out/bin";
meta = {
description = "Simple tool and library to embed files and directories inside OCaml executables";
homepage = "https://www.typerex.org/ocp-ocamlres.html";
license = lib.licenses.lgpl3Plus;
maintainers = [ lib.maintainers.vbgl ];
mainProgram = "ocp-ocamlres";
inherit (ocaml.meta) platforms;
};
}
meta = {
description = "Simple tool and library to embed files and directories inside OCaml executables";
homepage = "https://www.typerex.org/ocp-ocamlres.html";
license = lib.licenses.lgpl3Plus;
maintainers = [ lib.maintainers.vbgl ];
mainProgram = "ocp-ocamlres";
inherit (ocaml.meta) platforms;
broken = lib.versionOlder ocaml.version "4.02";
};
}

View File

@@ -9,40 +9,39 @@
lwt,
lwt_ppx,
}:
if lib.versionOlder ocaml.version "4.04" then
throw "ocurl is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "ocurl";
version = "0.9.2";
src = fetchurl {
url = "https://github.com/ygrek/ocurl/releases/download/${version}/ocurl-${version}.tar.gz";
sha256 = "sha256-4DWXGMh02s1VwLWW5d7h0jtMOUubWmBPGm1hghfWd2M=";
};
stdenv.mkDerivation rec {
pname = "ocurl";
version = "0.9.2";
nativeBuildInputs = [
pkg-config
ocaml
findlib
src = fetchurl {
url = "https://github.com/ygrek/ocurl/releases/download/${version}/ocurl-${version}.tar.gz";
sha256 = "sha256-4DWXGMh02s1VwLWW5d7h0jtMOUubWmBPGm1hghfWd2M=";
};
nativeBuildInputs = [
pkg-config
ocaml
findlib
];
propagatedBuildInputs = [
curl
lwt
lwt_ppx
];
strictDeps = true;
createFindlibDestdir = true;
meta = {
description = "OCaml bindings to libcurl";
license = lib.licenses.mit;
homepage = "http://ygrek.org.ua/p/ocurl/";
maintainers = with lib.maintainers; [
dandellion
bennofs
];
propagatedBuildInputs = [
curl
lwt
lwt_ppx
];
strictDeps = true;
createFindlibDestdir = true;
meta = {
description = "OCaml bindings to libcurl";
license = lib.licenses.mit;
homepage = "http://ygrek.org.ua/p/ocurl/";
maintainers = with lib.maintainers; [
dandellion
bennofs
];
platforms = ocaml.meta.platforms or [ ];
};
}
platforms = ocaml.meta.platforms or [ ];
broken = lib.versionOlder ocaml.version "4.04";
};
}

View File

@@ -10,37 +10,34 @@
autoconf,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"osdp is not available for OCaml ${ocaml.version}"
buildDunePackage {
pname = "osdp";
version = "1.1.1";
buildDunePackage
{
pname = "osdp";
version = "1.1.1";
src = fetchurl {
url = "https://github.com/Embedded-SW-VnV/osdp/releases/download/v1.1.1/osdp-1.1.1.tgz";
hash = "sha256-X7CS2g+MyQPDjhUCvFS/DoqcCXTEw8SCsSGED64TGKQ=";
};
src = fetchurl {
url = "https://github.com/Embedded-SW-VnV/osdp/releases/download/v1.1.1/osdp-1.1.1.tgz";
hash = "sha256-X7CS2g+MyQPDjhUCvFS/DoqcCXTEw8SCsSGED64TGKQ=";
};
preConfigure = ''
autoconf
'';
preConfigure = ''
autoconf
'';
nativeBuildInputs = [
autoconf
findlib
csdp
];
propagatedBuildInputs = [
zarith
ocplib-simplex
csdp
];
nativeBuildInputs = [
autoconf
findlib
csdp
];
propagatedBuildInputs = [
zarith
ocplib-simplex
csdp
];
meta = {
description = "OCaml Interface to SDP solvers";
homepage = "https://github.com/Embedded-SW-VnV/osdp";
license = lib.licenses.lgpl3Plus;
};
}
meta = {
description = "OCaml Interface to SDP solvers";
homepage = "https://github.com/Embedded-SW-VnV/osdp";
license = lib.licenses.lgpl3Plus;
broken = lib.versionAtLeast ocaml.version "5.0";
};
}

View File

@@ -11,54 +11,51 @@
base64,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"piqi is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
version = "0.6.16";
pname = "piqi";
name = "ocaml${ocaml.version}-${pname}-${version}";
stdenv.mkDerivation
rec {
version = "0.6.16";
pname = "piqi";
name = "ocaml${ocaml.version}-${pname}-${version}";
src = fetchFromGitHub {
owner = "alavrik";
repo = pname;
rev = "v${version}";
sha256 = "sha256-qE+yybTn+kzbY0h8udhZYO+GwQPI/J/6p3LMmF12cFU=";
};
src = fetchFromGitHub {
owner = "alavrik";
repo = pname;
rev = "v${version}";
sha256 = "sha256-qE+yybTn+kzbY0h8udhZYO+GwQPI/J/6p3LMmF12cFU=";
};
nativeBuildInputs = [
ocaml
findlib
which
];
propagatedBuildInputs = [
sedlex
xmlm
easy-format
base64
];
nativeBuildInputs = [
ocaml
findlib
which
];
propagatedBuildInputs = [
sedlex
xmlm
easy-format
base64
];
strictDeps = true;
strictDeps = true;
patches = [
./no-stream.patch
./no-ocamlpath-override.patch
];
patches = [
./no-stream.patch
./no-ocamlpath-override.patch
];
createFindlibDestdir = true;
createFindlibDestdir = true;
postBuild = "make -C piqilib piqilib.cma";
postBuild = "make -C piqilib piqilib.cma";
installTargets = [
"install"
"ocaml-install"
];
installTargets = [
"install"
"ocaml-install"
];
meta = with lib; {
homepage = "https://piqi.org";
description = "Universal schema language and a collection of tools built around it";
license = licenses.asl20;
maintainers = [ maintainers.maurer ];
};
}
meta = with lib; {
homepage = "https://piqi.org";
description = "Universal schema language and a collection of tools built around it";
license = licenses.asl20;
maintainers = [ maintainers.maurer ];
broken = lib.versionAtLeast ocaml.version "5.0";
};
}

View File

@@ -14,46 +14,43 @@
findlib,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.2")
"ppx_cstubs is not available for OCaml ${ocaml.version}"
buildDunePackage rec {
pname = "ppx_cstubs";
version = "0.7.0";
buildDunePackage
rec {
pname = "ppx_cstubs";
version = "0.7.0";
minimalOCamlVersion = "4.08";
minimalOCamlVersion = "4.08";
src = fetchFromGitHub {
owner = "fdopen";
repo = "ppx_cstubs";
rev = version;
hash = "sha256-qMmwRWCIfNyhCQYPKLiufnb57sTR3P+WInOqtPDywFs=";
};
src = fetchFromGitHub {
owner = "fdopen";
repo = "ppx_cstubs";
rev = version;
hash = "sha256-qMmwRWCIfNyhCQYPKLiufnb57sTR3P+WInOqtPDywFs=";
};
patches = [ ./ppxlib.patch ];
patches = [ ./ppxlib.patch ];
nativeBuildInputs = [ cppo ];
nativeBuildInputs = [ cppo ];
buildInputs = [
bigarray-compat
containers
findlib
integers
num
ppxlib
re
];
buildInputs = [
bigarray-compat
containers
findlib
integers
num
ppxlib
re
];
propagatedBuildInputs = [
ctypes
];
propagatedBuildInputs = [
ctypes
];
meta = with lib; {
homepage = "https://github.com/fdopen/ppx_cstubs";
changelog = "https://github.com/fdopen/ppx_cstubs/raw/${version}/CHANGES.md";
description = "Preprocessor for easier stub generation with ocaml-ctypes";
license = licenses.lgpl21Plus;
maintainers = [ maintainers.osener ];
};
}
meta = with lib; {
homepage = "https://github.com/fdopen/ppx_cstubs";
changelog = "https://github.com/fdopen/ppx_cstubs/raw/${version}/CHANGES.md";
description = "Preprocessor for easier stub generation with ocaml-ctypes";
license = licenses.lgpl21Plus;
maintainers = [ maintainers.osener ];
broken = lib.versionAtLeast ocaml.version "5.2";
};
}

View File

@@ -8,97 +8,85 @@
cppo,
}:
if lib.versionAtLeast ocaml.version "5.2" then
throw "ppx_tools is not available for OCaml ${ocaml.version}"
else
let
param =
let
v6_6 = {
version = "6.6";
sha256 = "sha256-QhuaQ9346a3neoRM4GrOVzjR8fg9ysMZR1VzNgyIQtc=";
nativeBuildInputs = [ cppo ];
buildInputs = [ cppo ];
};
in
{
"4.02" = {
version = "5.0+4.02.0";
sha256 = "16drjk0qafjls8blng69qiv35a84wlafpk16grrg2i3x19p8dlj8";
};
"4.03" = {
version = "5.0+4.03.0";
sha256 = "061v1fl5z7z3ywi4ppryrlcywnvnqbsw83ppq72qmkc7ma4603jg";
};
"4.04" = {
version = "unstable-20161114";
rev = "49c08e2e4ea8fef88692cd1dcc1b38a9133f17ac";
sha256 = "0ywzfkf5brj33nwh49k9if8x8v433ral25f3nbklfc9vqr06zrfl";
};
"4.05" = {
version = "5.0+4.05.0";
sha256 = "1jvvhk6wnkvm7b9zph309ihsc0hyxfpahmxxrq19vx8c674jsdm4";
};
"4.06" = {
version = "5.1+4.06.0";
sha256 = "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw";
};
"4.07" = {
version = "5.1+4.06.0";
sha256 = "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw";
};
"4.08" = v6_6;
"4.09" = v6_6;
"4.10" = v6_6;
"4.11" = v6_6;
"4.12" = v6_6;
"4.13" = v6_6;
"4.14" = v6_6;
"5.0" = v6_6;
"5.1" = v6_6;
}
.${ocaml.meta.branch};
in
let
src = fetchFromGitHub {
owner = "alainfrisch";
repo = pname;
rev = param.rev or param.version;
inherit (param) sha256;
};
pname = "ppx_tools";
meta = with lib; {
description = "Tools for authors of ppx rewriters";
homepage = "https://www.lexifi.com/ppx_tools";
license = licenses.mit;
maintainers = with maintainers; [ vbgl ];
};
in
if lib.versionAtLeast param.version "6.0" then
buildDunePackage {
inherit pname src meta;
inherit (param) version buildInputs nativeBuildInputs;
}
else
stdenv.mkDerivation {
name = "ocaml${ocaml.version}-${pname}-${param.version}";
inherit src;
nativeBuildInputs = [
ocaml
findlib
];
strictDeps = true;
createFindlibDestdir = true;
dontStrip = true;
meta = meta // {
inherit (ocaml.meta) platforms;
let
param =
let
v6_6 = {
version = "6.6";
sha256 = "sha256-QhuaQ9346a3neoRM4GrOVzjR8fg9ysMZR1VzNgyIQtc=";
nativeBuildInputs = [ cppo ];
buildInputs = [ cppo ];
};
in
{
"4.02" = {
version = "5.0+4.02.0";
sha256 = "16drjk0qafjls8blng69qiv35a84wlafpk16grrg2i3x19p8dlj8";
};
"4.03" = {
version = "5.0+4.03.0";
sha256 = "061v1fl5z7z3ywi4ppryrlcywnvnqbsw83ppq72qmkc7ma4603jg";
};
"4.04" = {
version = "unstable-20161114";
rev = "49c08e2e4ea8fef88692cd1dcc1b38a9133f17ac";
sha256 = "0ywzfkf5brj33nwh49k9if8x8v433ral25f3nbklfc9vqr06zrfl";
};
"4.05" = {
version = "5.0+4.05.0";
sha256 = "1jvvhk6wnkvm7b9zph309ihsc0hyxfpahmxxrq19vx8c674jsdm4";
};
"4.06" = {
version = "5.1+4.06.0";
sha256 = "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw";
};
"4.07" = {
version = "5.1+4.06.0";
sha256 = "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw";
};
}
.${ocaml.meta.branch} or v6_6;
in
let
src = fetchFromGitHub {
owner = "alainfrisch";
repo = pname;
rev = param.rev or param.version;
inherit (param) sha256;
};
pname = "ppx_tools";
meta = with lib; {
description = "Tools for authors of ppx rewriters";
homepage = "https://www.lexifi.com/ppx_tools";
license = licenses.mit;
maintainers = with maintainers; [ vbgl ];
broken = lib.versionAtLeast ocaml.version "5.2";
};
in
if lib.versionAtLeast param.version "6.0" then
buildDunePackage {
inherit pname src meta;
inherit (param) version buildInputs nativeBuildInputs;
}
else
stdenv.mkDerivation {
name = "ocaml${ocaml.version}-${pname}-${param.version}";
inherit src;
nativeBuildInputs = [
ocaml
findlib
];
strictDeps = true;
createFindlibDestdir = true;
dontStrip = true;
meta = meta // {
inherit (ocaml.meta) platforms;
};
}

View File

@@ -103,37 +103,32 @@ let
."${version}";
in
if
param ? max_version && lib.versionAtLeast ocaml.version param.max_version
|| param ? min_version && lib.versionOlder ocaml.version param.min_version
then
throw "ppxlib-${version} is not available for OCaml ${ocaml.version}"
else
buildDunePackage rec {
pname = "ppxlib";
inherit version;
buildDunePackage rec {
pname = "ppxlib";
inherit version;
src = fetchurl {
url = "https://github.com/ocaml-ppx/ppxlib/releases/download/${version}/ppxlib-${version}.tbz";
inherit (param) sha256;
};
src =
param.src or (fetchurl {
url = "https://github.com/ocaml-ppx/ppxlib/releases/download/${version}/ppxlib-${version}.tbz";
inherit (param) sha256;
});
propagatedBuildInputs = [
ocaml-compiler-libs
]
++ (param.OMP or [ ])
++ [
ppx_derivers
stdio
stdlib-shims
];
propagatedBuildInputs = [
ocaml-compiler-libs
]
++ (param.OMP or [ ])
++ [
ppx_derivers
stdio
stdlib-shims
];
meta = {
description = "Comprehensive ppx tool set";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
homepage = "https://github.com/ocaml-ppx/ppxlib";
};
}
meta = {
description = "Comprehensive ppx tool set";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
homepage = "https://github.com/ocaml-ppx/ppxlib";
broken =
param ? max_version && lib.versionAtLeast ocaml.version param.max_version
|| param ? min_version && lib.versionOlder ocaml.version param.min_version;
};
}

View File

@@ -8,50 +8,47 @@
topkg,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"ptime is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation (finalAttrs: {
version = "1.2.0";
pname = "ocaml${ocaml.version}-ptime";
stdenv.mkDerivation
(finalAttrs: {
version = "1.2.0";
pname = "ocaml${ocaml.version}-ptime";
src = fetchurl {
url = "https://erratique.ch/software/ptime/releases/ptime-${finalAttrs.version}.tbz";
hash = "sha256-lhZ0f99JDsNugCTKsn7gHjoK9XfYojImY4+kA03nOrA=";
};
src = fetchurl {
url = "https://erratique.ch/software/ptime/releases/ptime-${finalAttrs.version}.tbz";
hash = "sha256-lhZ0f99JDsNugCTKsn7gHjoK9XfYojImY4+kA03nOrA=";
};
nativeBuildInputs = [
findlib
ocaml
ocamlbuild
topkg
];
nativeBuildInputs = [
findlib
ocaml
ocamlbuild
topkg
];
buildInputs = [
topkg
];
buildInputs = [
topkg
];
strictDeps = true;
strictDeps = true;
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = {
description = "POSIX time for OCaml";
homepage = "https://erratique.ch/software/ptime";
license = lib.licenses.isc;
longDescription = ''
Ptime has platform independent POSIX time support in pure OCaml.
It provides a type to represent a well-defined range of POSIX timestamps
with picosecond precision, conversion with date-time values, conversion
with RFC 3339 timestamps and pretty printing to a human-readable,
locale-independent representation.
meta = {
description = "POSIX time for OCaml";
homepage = "https://erratique.ch/software/ptime";
license = lib.licenses.isc;
longDescription = ''
Ptime has platform independent POSIX time support in pure OCaml.
It provides a type to represent a well-defined range of POSIX timestamps
with picosecond precision, conversion with date-time values, conversion
with RFC 3339 timestamps and pretty printing to a human-readable,
locale-independent representation.
The additional Ptime_clock library provides access to a system POSIX clock
and to the system's current time zone offset.
The additional Ptime_clock library provides access to a system POSIX clock
and to the system's current time zone offset.
Ptime is not a calendar library.
'';
maintainers = with lib.maintainers; [ sternenseemann ];
};
})
Ptime is not a calendar library.
'';
maintainers = with lib.maintainers; [ sternenseemann ];
broken = !(lib.versionAtLeast ocaml.version "4.08");
};
})

View File

@@ -9,37 +9,34 @@
result,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.07")
"rresult is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-rresult";
version = "0.7.0";
src = fetchurl {
url = "https://erratique.ch/software/rresult/releases/rresult-${version}.tbz";
sha256 = "sha256-Eap/W4NGDmBDHjFU4+MsBx1G4VHqV2DPJDd4Bb+XVUA=";
};
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-rresult";
version = "0.7.0";
src = fetchurl {
url = "https://erratique.ch/software/rresult/releases/rresult-${version}.tbz";
sha256 = "sha256-Eap/W4NGDmBDHjFU4+MsBx1G4VHqV2DPJDd4Bb+XVUA=";
};
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
propagatedBuildInputs = [ result ];
propagatedBuildInputs = [ result ];
strictDeps = true;
strictDeps = true;
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = {
license = lib.licenses.isc;
homepage = "https://erratique.ch/software/rresult";
description = "Result value combinators for OCaml";
maintainers = [ lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
};
}
meta = {
license = lib.licenses.isc;
homepage = "https://erratique.ch/software/rresult";
description = "Result value combinators for OCaml";
maintainers = [ lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
broken = !(lib.versionAtLeast ocaml.version "4.07");
};
}

View File

@@ -12,51 +12,47 @@ let
pname = "sawja";
version = "1.5.12";
in
stdenv.mkDerivation {
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"${pname} is not available for OCaml ${ocaml.version}"
pname = "ocaml${ocaml.version}-${pname}";
stdenv.mkDerivation
{
inherit version;
pname = "ocaml${ocaml.version}-${pname}";
src = fetchFromGitHub {
owner = "javalib-team";
repo = pname;
rev = version;
hash = "sha256-G1W8/G0TEcldnFnH/NAb9a6ZSGGP2fWTM47lI8bBHnw=";
};
inherit version;
nativeBuildInputs = [
which
ocaml
findlib
];
src = fetchFromGitHub {
owner = "javalib-team";
repo = pname;
rev = version;
hash = "sha256-G1W8/G0TEcldnFnH/NAb9a6ZSGGP2fWTM47lI8bBHnw=";
};
strictDeps = true;
nativeBuildInputs = [
which
ocaml
findlib
];
patches = [
./configure.sh.patch
./Makefile.config.example.patch
];
strictDeps = true;
createFindlibDestdir = true;
patches = [
./configure.sh.patch
./Makefile.config.example.patch
];
configureScript = "./configure.sh";
dontAddPrefix = "true";
dontAddStaticConfigureFlags = true;
configurePlatforms = [ ];
createFindlibDestdir = true;
propagatedBuildInputs = [ javalib ];
configureScript = "./configure.sh";
dontAddPrefix = "true";
dontAddStaticConfigureFlags = true;
configurePlatforms = [ ];
propagatedBuildInputs = [ javalib ];
meta = with lib; {
description = "Library written in OCaml, relying on Javalib to provide a high level representation of Java bytecode programs";
homepage = "http://sawja.inria.fr/";
license = licenses.gpl3Plus;
maintainers = [ maintainers.vbgl ];
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
description = "Library written in OCaml, relying on Javalib to provide a high level representation of Java bytecode programs";
homepage = "http://sawja.inria.fr/";
license = licenses.gpl3Plus;
maintainers = [ maintainers.vbgl ];
inherit (ocaml.meta) platforms;
broken = !(lib.versionAtLeast ocaml.version "4.08");
};
}

View File

@@ -9,46 +9,43 @@
libsodium,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"sodium is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-sodium";
version = "0.6.0";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-sodium";
version = "0.6.0";
src = fetchFromGitHub {
owner = "dsheets";
repo = "ocaml-sodium";
rev = version;
sha256 = "124gpi1jhac46x05gp5viykyrafnlp03v1cmkl13c6pgcs8w04pv";
};
src = fetchFromGitHub {
owner = "dsheets";
repo = "ocaml-sodium";
rev = version;
sha256 = "124gpi1jhac46x05gp5viykyrafnlp03v1cmkl13c6pgcs8w04pv";
};
patches = [
# ctypes.stubs no longer pulls in bigarray automatically
./lib-gen-link-bigarray.patch
];
patches = [
# ctypes.stubs no longer pulls in bigarray automatically
./lib-gen-link-bigarray.patch
];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
];
propagatedBuildInputs = [
ctypes
libsodium
];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
];
propagatedBuildInputs = [
ctypes
libsodium
];
strictDeps = true;
strictDeps = true;
createFindlibDestdir = true;
createFindlibDestdir = true;
hardeningDisable = lib.optional stdenv.hostPlatform.isDarwin "strictoverflow";
hardeningDisable = lib.optional stdenv.hostPlatform.isDarwin "strictoverflow";
meta = with lib; {
homepage = "https://github.com/dsheets/ocaml-sodium";
description = "Binding to libsodium 1.0.9+";
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.rixed ];
};
}
meta = with lib; {
homepage = "https://github.com/dsheets/ocaml-sodium";
description = "Binding to libsodium 1.0.9+";
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.rixed ];
broken = lib.versionAtLeast ocaml.version "5.0";
};
}

View File

@@ -7,46 +7,43 @@
ocamlbuild,
}:
lib.throwIf (lib.versionOlder ocaml.version "4.02")
"sosa is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-sosa";
version = "0.3.0";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-sosa";
version = "0.3.0";
src = fetchFromGitHub {
owner = "hammerlab";
repo = "sosa";
rev = "sosa.${version}";
sha256 = "053hdv6ww0q4mivajj4iyp7krfvgq8zajq9d8x4mia4lid7j0dyk";
};
src = fetchFromGitHub {
owner = "hammerlab";
repo = "sosa";
rev = "sosa.${version}";
sha256 = "053hdv6ww0q4mivajj4iyp7krfvgq8zajq9d8x4mia4lid7j0dyk";
};
postPatch = lib.optionalString (lib.versionAtLeast ocaml.version "4.07") ''
for p in functors list_of of_mutable
do
substituteInPlace src/lib/$p.ml --replace Pervasives. Stdlib.
done
'';
postPatch = lib.optionalString (lib.versionAtLeast ocaml.version "4.07") ''
for p in functors list_of of_mutable
do
substituteInPlace src/lib/$p.ml --replace Pervasives. Stdlib.
done
'';
nativeBuildInputs = [
ocaml
ocamlbuild
findlib
];
nativeBuildInputs = [
ocaml
ocamlbuild
findlib
];
strictDeps = true;
strictDeps = true;
buildPhase = "make build";
buildPhase = "make build";
createFindlibDestdir = true;
createFindlibDestdir = true;
doCheck = true;
doCheck = true;
meta = with lib; {
homepage = "http://www.hammerlab.org/docs/sosa/master/index.html";
description = "Sane OCaml String API";
license = licenses.isc;
maintainers = [ maintainers.alexfmpe ];
};
}
meta = with lib; {
homepage = "http://www.hammerlab.org/docs/sosa/master/index.html";
description = "Sane OCaml String API";
license = licenses.isc;
maintainers = [ maintainers.alexfmpe ];
broken = !(lib.versionOlder ocaml.version "4.02");
};
}

View File

@@ -5,27 +5,24 @@
fetchurl,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.2")
"stdcompat is not available for OCaml ${ocaml.version}"
buildDunePackage rec {
pname = "stdcompat";
version = "19";
buildDunePackage
rec {
pname = "stdcompat";
version = "19";
minimalOCamlVersion = "4.06";
minimalOCamlVersion = "4.06";
src = fetchurl {
url = "https://github.com/thierry-martinez/stdcompat/releases/download/v${version}/stdcompat-${version}.tar.gz";
sha256 = "sha256-DKQGd4nnIN6SPls6hcA/2Jvc7ivYNpeMU6rYsVc1ClU=";
};
src = fetchurl {
url = "https://github.com/thierry-martinez/stdcompat/releases/download/v${version}/stdcompat-${version}.tar.gz";
sha256 = "sha256-DKQGd4nnIN6SPls6hcA/2Jvc7ivYNpeMU6rYsVc1ClU=";
};
# Otherwise ./configure script will run and create files conflicting with dune.
dontConfigure = true;
# Otherwise ./configure script will run and create files conflicting with dune.
dontConfigure = true;
meta = {
homepage = "https://github.com/thierry-martinez/stdcompat";
license = lib.licenses.bsd2;
maintainers = [ lib.maintainers.vbgl ];
};
}
meta = {
homepage = "https://github.com/thierry-martinez/stdcompat";
license = lib.licenses.bsd2;
maintainers = [ lib.maintainers.vbgl ];
broken = lib.versionAtLeast ocaml.version "5.2";
};
}

View File

@@ -13,56 +13,53 @@
pkg-config,
}:
if lib.versionOlder ocaml.version "4.03" then
throw "tsdl is not available for OCaml ${ocaml.version}"
else
let
pname = "tsdl";
version = "1.1.0";
webpage = "https://erratique.ch/software/${pname}";
in
let
pname = "tsdl";
version = "1.1.0";
webpage = "https://erratique.ch/software/${pname}";
in
stdenv.mkDerivation {
pname = "ocaml${ocaml.version}-${pname}";
inherit version;
stdenv.mkDerivation {
pname = "ocaml${ocaml.version}-${pname}";
inherit version;
src = fetchurl {
url = "${webpage}/releases/${pname}-${version}.tbz";
hash = "sha256-ZN4+trqesU1IREKcwm1Ro37jszKG8XcVigoE4BdGhzs=";
};
src = fetchurl {
url = "${webpage}/releases/${pname}-${version}.tbz";
hash = "sha256-ZN4+trqesU1IREKcwm1Ro37jszKG8XcVigoE4BdGhzs=";
};
strictDeps = true;
strictDeps = true;
nativeBuildInputs = [
pkg-config
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
propagatedBuildInputs = [
SDL2
ctypes
ctypes-foreign
];
nativeBuildInputs = [
pkg-config
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
propagatedBuildInputs = [
SDL2
ctypes
ctypes-foreign
];
preConfigure = ''
# The following is done to avoid an additional dependency (ncurses)
# due to linking in the custom bytecode runtime. Instead, just
# compile directly into a native binary, even if it's just a
# temporary build product.
substituteInPlace myocamlbuild.ml \
--replace ".byte" ".native"
'';
preConfigure = ''
# The following is done to avoid an additional dependency (ncurses)
# due to linking in the custom bytecode runtime. Instead, just
# compile directly into a native binary, even if it's just a
# temporary build product.
substituteInPlace myocamlbuild.ml \
--replace ".byte" ".native"
'';
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = with lib; {
homepage = webpage;
description = "Thin bindings to the cross-platform SDL library";
license = licenses.isc;
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
homepage = webpage;
description = "Thin bindings to the cross-platform SDL library";
license = licenses.isc;
inherit (ocaml.meta) platforms;
broken = lib.versionOlder ocaml.version "4.03";
};
}

View File

@@ -6,45 +6,42 @@
findlib,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"twt is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-twt";
version = "0.94.0";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-twt";
version = "0.94.0";
src = fetchFromGitHub {
owner = "mlin";
repo = "twt";
rev = "v${version}";
sha256 = "sha256-xbjLPd7P1KyuC3i6WHLBcdLwd14atcBsd5ER+l97KAk=";
};
src = fetchFromGitHub {
owner = "mlin";
repo = "twt";
rev = "v${version}";
sha256 = "sha256-xbjLPd7P1KyuC3i6WHLBcdLwd14atcBsd5ER+l97KAk=";
};
nativeBuildInputs = [
ocaml
findlib
];
nativeBuildInputs = [
ocaml
findlib
];
strictDeps = true;
strictDeps = true;
preInstall = ''
mkdir -p $out/bin
mkdir -p $OCAMLFIND_DESTDIR
'';
preInstall = ''
mkdir -p $out/bin
mkdir -p $OCAMLFIND_DESTDIR
'';
dontBuild = true;
dontBuild = true;
installFlags = [ "PREFIX=$(out)" ];
installFlags = [ "PREFIX=$(out)" ];
dontStrip = true;
dontStrip = true;
meta = with lib; {
description = "The Whitespace Thing for OCaml";
homepage = "http://people.csail.mit.edu/mikelin/ocaml+twt/";
license = licenses.mit;
maintainers = [ maintainers.vbgl ];
mainProgram = "ocaml+twt";
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
description = "The Whitespace Thing for OCaml";
homepage = "http://people.csail.mit.edu/mikelin/ocaml+twt/";
license = licenses.mit;
maintainers = [ maintainers.vbgl ];
mainProgram = "ocaml+twt";
broken = lib.versionAtLeast ocaml.version "5.0";
inherit (ocaml.meta) platforms;
};
}

View File

@@ -22,44 +22,40 @@ let
sha256 = "0cmscxcmcxhlshh4jd0lzw5ffzns12x3bj7h27smbc8waxkwffhl";
};
in
stdenv.mkDerivation {
pname = "ocaml${ocaml.version}-${pname}";
inherit (param) version;
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"ulex is not available for OCaml ${ocaml.version}"
src = fetchFromGitHub {
owner = "ocaml-community";
repo = pname;
rev = "v${param.version}";
inherit (param) sha256;
};
stdenv.mkDerivation
{
pname = "ocaml${ocaml.version}-${pname}";
inherit (param) version;
createFindlibDestdir = true;
src = fetchFromGitHub {
owner = "ocaml-community";
repo = pname;
rev = "v${param.version}";
inherit (param) sha256;
};
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
camlp4
];
propagatedBuildInputs = [ camlp4 ];
createFindlibDestdir = true;
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
camlp4
];
propagatedBuildInputs = [ camlp4 ];
buildFlags = [
"all"
"all.opt"
];
strictDeps = true;
buildFlags = [
"all"
"all.opt"
];
meta = {
homepage = "https://opam.ocaml.org/packages/ulex/";
description = "Lexer generator for Unicode and OCaml";
license = lib.licenses.mit;
inherit (ocaml.meta) platforms;
maintainers = [ lib.maintainers.roconnor ];
};
}
meta = {
homepage = "https://opam.ocaml.org/packages/ulex/";
description = "Lexer generator for Unicode and OCaml";
license = lib.licenses.mit;
inherit (ocaml.meta) platforms;
maintainers = [ lib.maintainers.roconnor ];
broken = lib.versionAtLeast ocaml.version "5.0";
};
}

View File

@@ -8,21 +8,21 @@
sexplib0,
}:
if lib.versionOlder ocaml.version "4.04" then
throw "uri-sexp is not available for OCaml ${ocaml.version}"
else
buildDunePackage {
pname = "uri-sexp";
inherit (uri) version src;
buildDunePackage {
pname = "uri-sexp";
inherit (uri) version src meta;
duneVersion = "3";
duneVersion = "3";
checkInputs = [ ounit ];
propagatedBuildInputs = [
ppx_sexp_conv
sexplib0
uri
];
doCheck = lib.versionAtLeast ocaml.version "4.08";
checkInputs = [ ounit ];
propagatedBuildInputs = [
ppx_sexp_conv
sexplib0
uri
];
doCheck = lib.versionAtLeast ocaml.version "4.08";
}
meta = uri.meta // {
broken = uri.meta.broken or false || lib.versionOlder ocaml.version "4.04";
};
}

View File

@@ -10,45 +10,42 @@
version ? if lib.versionAtLeast ocaml.version "4.14" then "0.9.10" else "0.9.8",
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"uuidm is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation {
inherit version;
pname = "uuidm";
src = fetchurl {
url = "https://erratique.ch/software/uuidm/releases/uuidm-${version}.tbz";
hash =
{
"0.9.10" = "sha256-kWVZSofWMyky5nAuxoh1xNhwMKZ2qUahL3Dh27J36Vc=";
"0.9.8" = "sha256-/GZbkJVDQu1UY8SliK282kUWAVMfOnpQadUlRT/tJrM=";
}
."${version}";
};
stdenv.mkDerivation
{
inherit version;
pname = "uuidm";
src = fetchurl {
url = "https://erratique.ch/software/uuidm/releases/uuidm-${version}.tbz";
hash =
{
"0.9.10" = "sha256-kWVZSofWMyky5nAuxoh1xNhwMKZ2qUahL3Dh27J36Vc=";
"0.9.8" = "sha256-/GZbkJVDQu1UY8SliK282kUWAVMfOnpQadUlRT/tJrM=";
}
."${version}";
};
strictDeps = true;
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
configurePlatforms = [ ];
buildInputs = [
topkg
cmdliner
];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
configurePlatforms = [ ];
buildInputs = [
topkg
cmdliner
];
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = with lib; {
description = "OCaml module implementing 128 bits universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122";
homepage = "https://erratique.ch/software/uuidm";
license = licenses.bsd3;
maintainers = [ maintainers.maurer ];
mainProgram = "uuidtrip";
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
description = "OCaml module implementing 128 bits universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122";
homepage = "https://erratique.ch/software/uuidm";
license = licenses.bsd3;
maintainers = [ maintainers.maurer ];
mainProgram = "uuidtrip";
inherit (ocaml.meta) platforms;
broken = !(lib.versionAtLeast ocaml.version "4.08");
};
}

View File

@@ -22,52 +22,48 @@ let
}
."${version}";
in
stdenv.mkDerivation {
name = "ocaml${ocaml.version}-${pname}-${version}";
inherit version;
if lib.versionOlder ocaml.version "4.03" then
throw "${pname} is not available for OCaml ${ocaml.version}"
else
src = fetchurl {
url = "${webpage}/releases/${pname}-${version}.tbz";
inherit hash;
};
stdenv.mkDerivation {
name = "ocaml${ocaml.version}-${pname}-${version}";
inherit version;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [
topkg
uutf
]
++ lib.optional cmdlinerSupport cmdliner;
src = fetchurl {
url = "${webpage}/releases/${pname}-${version}.tbz";
inherit hash;
};
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [
topkg
uutf
]
++ lib.optional cmdlinerSupport cmdliner;
prePatch = lib.optionalString stdenv.hostPlatform.isAarch64 "ulimit -s 16384";
strictDeps = true;
buildPhase = ''
runHook preBuild
${topkg.run} build \
--with-uutf true \
--with-cmdliner ${lib.boolToString cmdlinerSupport}
runHook postBuild
'';
prePatch = lib.optionalString stdenv.hostPlatform.isAarch64 "ulimit -s 16384";
inherit (topkg) installPhase;
buildPhase = ''
runHook preBuild
${topkg.run} build \
--with-uutf true \
--with-cmdliner ${lib.boolToString cmdlinerSupport}
runHook postBuild
'';
inherit (topkg) installPhase;
meta = with lib; {
description = "OCaml module for normalizing Unicode text";
homepage = webpage;
license = licenses.bsd3;
maintainers = [ maintainers.vbgl ];
mainProgram = "unftrip";
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
description = "OCaml module for normalizing Unicode text";
homepage = webpage;
license = licenses.bsd3;
maintainers = [ maintainers.vbgl ];
mainProgram = "unftrip";
inherit (ocaml.meta) platforms;
broken = lib.versionOlder ocaml.version "4.03";
};
}

View File

@@ -22,64 +22,60 @@ let
version = "0.9.5";
webpage = "https://erratique.ch/software/${pname}";
in
stdenv.mkDerivation {
if versionOlder ocaml.version "4.14" then
throw "vg is not available for OCaml ${ocaml.version}"
else
name = "ocaml${ocaml.version}-${pname}-${version}";
stdenv.mkDerivation {
src = fetchurl {
url = "${webpage}/releases/${pname}-${version}.tbz";
hash = "sha256-qcTtvIfSUwzpUZDspL+54UTNvWY6u3BTvfGWF6c0Jvw=";
};
name = "ocaml${ocaml.version}-${pname}-${version}";
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
];
buildInputs = [ topkg ];
src = fetchurl {
url = "${webpage}/releases/${pname}-${version}.tbz";
hash = "sha256-qcTtvIfSUwzpUZDspL+54UTNvWY6u3BTvfGWF6c0Jvw=";
};
propagatedBuildInputs = [
uchar
result
gg
]
++ optionals pdfBackend [
otfm
]
++ optionals htmlcBackend [
brr
];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
];
buildInputs = [ topkg ];
strictDeps = true;
propagatedBuildInputs = [
uchar
result
gg
]
++ optionals pdfBackend [
otfm
]
++ optionals htmlcBackend [
brr
];
buildPhase =
topkg.buildPhase
+ " --with-otfm ${lib.boolToString pdfBackend}"
+ " --with-brr ${lib.boolToString htmlcBackend}"
+ " --with-cairo2 false";
strictDeps = true;
inherit (topkg) installPhase;
buildPhase =
topkg.buildPhase
+ " --with-otfm ${lib.boolToString pdfBackend}"
+ " --with-brr ${lib.boolToString htmlcBackend}"
+ " --with-cairo2 false";
meta = with lib; {
description = "Declarative 2D vector graphics for OCaml";
longDescription = ''
Vg is an OCaml module for declarative 2D vector graphics. In Vg, images
are values that denote functions mapping points of the cartesian plane
to colors. The module provides combinators to define and compose these
values.
inherit (topkg) installPhase;
meta = with lib; {
description = "Declarative 2D vector graphics for OCaml";
longDescription = ''
Vg is an OCaml module for declarative 2D vector graphics. In Vg, images
are values that denote functions mapping points of the cartesian plane
to colors. The module provides combinators to define and compose these
values.
Renderers for PDF, SVG and the HTML canvas are distributed with the
module. An API allows to implement new renderers.
'';
homepage = webpage;
license = licenses.isc;
maintainers = [ maintainers.jirkamarsik ];
mainProgram = "vecho";
inherit (ocaml.meta) platforms;
};
}
Renderers for PDF, SVG and the HTML canvas are distributed with the
module. An API allows to implement new renderers.
'';
homepage = webpage;
license = licenses.isc;
maintainers = [ maintainers.jirkamarsik ];
mainProgram = "vecho";
inherit (ocaml.meta) platforms;
broken = versionOlder ocaml.version "4.14";
};
}

View File

@@ -6,26 +6,23 @@
dune-configurator,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"vlq is not available for OCaml ${ocaml.version}"
buildDunePackage rec {
pname = "vlq";
version = "0.2.1";
buildDunePackage
rec {
pname = "vlq";
version = "0.2.1";
src = fetchurl {
url = "https://github.com/flowtype/ocaml-vlq/releases/download/v${version}/vlq-v${version}.tbz";
sha256 = "02wr9ph4q0nxmqgbc67ydf165hmrdv9b655krm2glc3ahb6larxi";
};
src = fetchurl {
url = "https://github.com/flowtype/ocaml-vlq/releases/download/v${version}/vlq-v${version}.tbz";
sha256 = "02wr9ph4q0nxmqgbc67ydf165hmrdv9b655krm2glc3ahb6larxi";
};
buildInputs = [ dune-configurator ];
buildInputs = [ dune-configurator ];
meta = {
description = "Encoding variable-length quantities, in particular base64";
license = lib.licenses.mit;
homepage = "https://github.com/flowtype/ocaml-vlq";
maintainers = [ lib.maintainers.nomeata ];
broken = lib.versionAtLeast ocaml.version "5.0";
};
meta = {
description = "Encoding variable-length quantities, in particular base64";
license = lib.licenses.mit;
homepage = "https://github.com/flowtype/ocaml-vlq";
maintainers = [ lib.maintainers.nomeata ];
};
}
}

View File

@@ -11,38 +11,34 @@ let
pname = "xmlm";
webpage = "https://erratique.ch/software/${pname}";
in
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-${pname}-${version}";
version = "1.4.0";
if lib.versionOlder ocaml.version "4.05" then
throw "xmlm is not available for OCaml ${ocaml.version}"
else
src = fetchurl {
url = "${webpage}/releases/${pname}-${version}.tbz";
sha256 = "sha256-CRJSJY490WMgw85N2yG81X79nIwuv7eZ7mpUPtSS2fo=";
};
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-${pname}-${version}";
version = "1.4.0";
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
src = fetchurl {
url = "${webpage}/releases/${pname}-${version}.tbz";
sha256 = "sha256-CRJSJY490WMgw85N2yG81X79nIwuv7eZ7mpUPtSS2fo=";
};
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
topkg
];
buildInputs = [ topkg ];
inherit (topkg) buildPhase installPhase;
strictDeps = true;
inherit (topkg) buildPhase installPhase;
meta = with lib; {
description = "OCaml streaming codec to decode and encode the XML data format";
homepage = webpage;
license = licenses.isc;
maintainers = [ maintainers.vbgl ];
mainProgram = "xmltrip";
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
description = "OCaml streaming codec to decode and encode the XML data format";
homepage = webpage;
license = licenses.isc;
maintainers = [ maintainers.vbgl ];
mainProgram = "xmltrip";
inherit (ocaml.meta) platforms;
broken = lib.versionOlder ocaml.version "4.05";
};
}

View File

@@ -7,43 +7,40 @@
z3,
}:
if lib.versionOlder ocaml.version "4.08" then
throw "z3 is not available for OCaml ${ocaml.version}"
else
let
z3-with-ocaml = (
z3.override {
ocamlBindings = true;
inherit ocaml findlib zarith;
}
);
in
let
z3-with-ocaml = (
z3.override {
ocamlBindings = true;
inherit ocaml findlib zarith;
}
);
in
stdenv.mkDerivation {
stdenv.mkDerivation {
pname = "ocaml${ocaml.version}-z3";
inherit (z3-with-ocaml) version;
pname = "ocaml${ocaml.version}-z3";
inherit (z3-with-ocaml) version;
dontUnpack = true;
dontUnpack = true;
installPhase = ''
runHook preInstall
mkdir -p $OCAMLFIND_DESTDIR
cp -r ${z3-with-ocaml.ocaml}/lib/ocaml/${ocaml.version}/site-lib/stublibs $OCAMLFIND_DESTDIR
cp -r ${z3-with-ocaml.ocaml}/lib/ocaml/${ocaml.version}/site-lib/Z3 $OCAMLFIND_DESTDIR/z3
runHook postInstall
'';
installPhase = ''
runHook preInstall
mkdir -p $OCAMLFIND_DESTDIR
cp -r ${z3-with-ocaml.ocaml}/lib/ocaml/${ocaml.version}/site-lib/stublibs $OCAMLFIND_DESTDIR
cp -r ${z3-with-ocaml.ocaml}/lib/ocaml/${ocaml.version}/site-lib/Z3 $OCAMLFIND_DESTDIR/z3
runHook postInstall
'';
nativeBuildInputs = [ findlib ];
propagatedBuildInputs = [
z3-with-ocaml.lib
zarith
];
nativeBuildInputs = [ findlib ];
propagatedBuildInputs = [
z3-with-ocaml.lib
zarith
];
strictDeps = true;
strictDeps = true;
meta = z3.meta // {
description = "Z3 Theorem Prover (OCaml API)";
};
}
meta = z3.meta // {
description = "Z3 Theorem Prover (OCaml API)";
broken = lib.versionOlder ocaml.version "4.08";
};
}

View File

@@ -9,49 +9,46 @@
version ? if lib.versionAtLeast ocaml.version "4.08" then "1.14" else "1.13",
}:
if lib.versionOlder ocaml.version "4.04" then
throw "zarith is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation (finalAttrs: {
pname = "ocaml${ocaml.version}-zarith";
inherit version;
src = fetchFromGitHub {
owner = "ocaml";
repo = "Zarith";
rev = "release-${version}";
hash =
{
"1.13" = "sha256-CNVKoJeO3fsmWaV/dwnUA8lgI4ZlxR/LKCXpCXUrpSg=";
"1.14" = "sha256-xUrBDr+M8uW2KOy7DZieO/vDgsSOnyBnpOzQDlXJ0oE=";
}
."${finalAttrs.version}";
};
stdenv.mkDerivation (finalAttrs: {
pname = "ocaml${ocaml.version}-zarith";
inherit version;
src = fetchFromGitHub {
owner = "ocaml";
repo = "Zarith";
rev = "release-${version}";
hash =
{
"1.13" = "sha256-CNVKoJeO3fsmWaV/dwnUA8lgI4ZlxR/LKCXpCXUrpSg=";
"1.14" = "sha256-xUrBDr+M8uW2KOy7DZieO/vDgsSOnyBnpOzQDlXJ0oE=";
}
."${finalAttrs.version}";
};
nativeBuildInputs = [
pkg-config
ocaml
findlib
];
propagatedBuildInputs = [ gmp ];
strictDeps = true;
nativeBuildInputs = [
pkg-config
ocaml
findlib
dontAddPrefix = true;
dontAddStaticConfigureFlags = true;
configurePlatforms = [ ];
configureFlags = [ "-installdir ${placeholder "out"}/lib/ocaml/${ocaml.version}/site-lib" ];
preInstall = "mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs";
meta = with lib; {
description = "Fast, arbitrary precision OCaml integers";
homepage = "https://github.com/ocaml/Zarith";
changelog = "https://github.com/ocaml/Zarith/raw/${finalAttrs.src.rev}/Changes";
license = licenses.lgpl2;
inherit (ocaml.meta) platforms;
maintainers = with maintainers; [
thoughtpolice
vbgl
];
propagatedBuildInputs = [ gmp ];
strictDeps = true;
dontAddPrefix = true;
dontAddStaticConfigureFlags = true;
configurePlatforms = [ ];
configureFlags = [ "-installdir ${placeholder "out"}/lib/ocaml/${ocaml.version}/site-lib" ];
preInstall = "mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs";
meta = with lib; {
description = "Fast, arbitrary precision OCaml integers";
homepage = "https://github.com/ocaml/Zarith";
changelog = "https://github.com/ocaml/Zarith/raw/${finalAttrs.src.rev}/Changes";
license = licenses.lgpl2;
inherit (ocaml.meta) platforms;
maintainers = with maintainers; [
thoughtpolice
vbgl
];
};
})
broken = lib.versionOlder ocaml.version "4.04";
};
})

View File

@@ -9,38 +9,35 @@
cmdliner,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.14")
"zipc is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-zipc";
version = "0.2.0";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-zipc";
version = "0.2.0";
src = fetchurl {
url = "https://erratique.ch/software/zipc/releases/zipc-${version}.tbz";
hash = "sha256-YQqkCURwrJgFH0+zgfket25zJQ4w+Tcc1mTSrDuWRt0=";
};
src = fetchurl {
url = "https://erratique.ch/software/zipc/releases/zipc-${version}.tbz";
hash = "sha256-YQqkCURwrJgFH0+zgfket25zJQ4w+Tcc1mTSrDuWRt0=";
};
strictDeps = true;
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
];
buildInputs = [
cmdliner
topkg
];
buildInputs = [
cmdliner
topkg
];
inherit (topkg) buildPhase installPhase;
inherit (topkg) buildPhase installPhase;
meta = {
description = "ZIP archive and deflate codec for OCaml";
homepage = "https://erratique.ch/software/zipc";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vbgl ];
};
}
meta = {
description = "ZIP archive and deflate codec for OCaml";
homepage = "https://erratique.ch/software/zipc";
license = lib.licenses.isc;
maintainers = [ lib.maintainers.vbgl ];
broken = !(lib.versionAtLeast ocaml.version "4.14");
};
}

View File

@@ -6,58 +6,55 @@
writeText,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.03")
"camlidl is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-camlidl";
version = "1.12";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-camlidl";
version = "1.12";
src = fetchFromGitHub {
owner = "xavierleroy";
repo = "camlidl";
rev = "camlidl112";
hash = "sha256-ONPQMDFaU2OzFa5jgMVKx+ZRKk8ZgBZyk42vDvbM7E0=";
};
src = fetchFromGitHub {
owner = "xavierleroy";
repo = "camlidl";
rev = "camlidl112";
hash = "sha256-ONPQMDFaU2OzFa5jgMVKx+ZRKk8ZgBZyk42vDvbM7E0=";
};
nativeBuildInputs = [ ocaml ];
nativeBuildInputs = [ ocaml ];
# build fails otherwise
enableParallelBuilding = false;
# build fails otherwise
enableParallelBuilding = false;
preBuild = ''
mv config/Makefile.unix config/Makefile
substituteInPlace config/Makefile --replace BINDIR=/usr/local/bin BINDIR=$out
substituteInPlace config/Makefile --replace 'OCAMLLIB=$(shell $(OCAMLC) -where)' OCAMLLIB=$out/lib/ocaml/${ocaml.version}/site-lib/camlidl
substituteInPlace config/Makefile --replace CPP=cpp CPP=${stdenv.cc}/bin/cpp
substituteInPlace lib/Makefile --replace '$(OCAMLLIB)/Makefile.config' "${ocaml}/lib/ocaml/Makefile.config"
mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/camlidl/caml
mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/camlidl/stublibs
'';
preBuild = ''
mv config/Makefile.unix config/Makefile
substituteInPlace config/Makefile --replace BINDIR=/usr/local/bin BINDIR=$out
substituteInPlace config/Makefile --replace 'OCAMLLIB=$(shell $(OCAMLC) -where)' OCAMLLIB=$out/lib/ocaml/${ocaml.version}/site-lib/camlidl
substituteInPlace config/Makefile --replace CPP=cpp CPP=${stdenv.cc}/bin/cpp
substituteInPlace lib/Makefile --replace '$(OCAMLLIB)/Makefile.config' "${ocaml}/lib/ocaml/Makefile.config"
mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/camlidl/caml
mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/camlidl/stublibs
'';
postInstall = ''
cat >$out/lib/ocaml/${ocaml.version}/site-lib/camlidl/META <<EOF
# Courtesy of GODI
description = "Stub generator"
version = "${version}"
archive(byte) = "com.cma"
archive(native) = "com.cmxa"
EOF
mkdir -p $out/bin
ln -s $out/camlidl $out/bin
'';
postInstall = ''
cat >$out/lib/ocaml/${ocaml.version}/site-lib/camlidl/META <<EOF
# Courtesy of GODI
description = "Stub generator"
version = "${version}"
archive(byte) = "com.cma"
archive(native) = "com.cmxa"
EOF
mkdir -p $out/bin
ln -s $out/camlidl $out/bin
'';
setupHook = writeText "setupHook.sh" ''
export NIX_CFLAGS_COMPILE+=" -isystem $1/lib/ocaml/${ocaml.version}/site-lib/camlidl"
export NIX_LDFLAGS+=" -L $1/lib/ocaml/${ocaml.version}/site-lib/camlidl"
'';
setupHook = writeText "setupHook.sh" ''
export NIX_CFLAGS_COMPILE+=" -isystem $1/lib/ocaml/${ocaml.version}/site-lib/camlidl"
export NIX_LDFLAGS+=" -L $1/lib/ocaml/${ocaml.version}/site-lib/camlidl"
'';
meta = {
description = "Stub code generator and COM binding for Objective Caml";
mainProgram = "camlidl";
homepage = "https://xavierleroy.org/camlidl/";
license = lib.licenses.lgpl21;
maintainers = [ lib.maintainers.roconnor ];
};
}
meta = {
description = "Stub code generator and COM binding for Objective Caml";
mainProgram = "camlidl";
homepage = "https://xavierleroy.org/camlidl/";
license = lib.licenses.lgpl21;
maintainers = [ lib.maintainers.roconnor ];
broken = !(lib.versionAtLeast ocaml.version "4.03");
};
}

View File

@@ -14,93 +14,90 @@
legacy ? false,
}:
if lib.versionOlder ocaml.version "4.02" then
throw "camlp5 is not available for OCaml ${ocaml.version}"
else
let
params =
if lib.versionAtLeast ocaml.version "4.12" && !legacy then
rec {
version = "8.03.02";
let
params =
if lib.versionAtLeast ocaml.version "4.12" && !legacy then
rec {
version = "8.03.02";
src = fetchFromGitHub {
owner = "camlp5";
repo = "camlp5";
rev = version;
hash = "sha256-nz+VfGR/6FdBvMzPPpVpviAXXBWNqM3Ora96Yzx964o=";
};
nativeBuildInputs = [
makeWrapper
ocaml
findlib
perl
];
buildInputs = [
bos
pcre2
re
rresult
];
propagatedBuildInputs = [ camlp-streams ];
postInstall = ''
for prog in camlp5 camlp5o camlp5r camlp5sch mkcamlp5 ocpp5
do
wrapProgram $out/bin/$prog \
--prefix CAML_LD_LIBRARY_PATH : "$CAML_LD_LIBRARY_PATH"
done
'';
}
else
rec {
version = "7.14";
src = fetchFromGitHub {
owner = "camlp5";
repo = "camlp5";
rev = "rel${builtins.replaceStrings [ "." ] [ "" ] version}";
sha256 = "1dd68bisbpqn5lq2pslm582hxglcxnbkgfkwhdz67z4w9d5nvr7w";
};
nativeBuildInputs = [
ocaml
perl
];
src = fetchFromGitHub {
owner = "camlp5";
repo = "camlp5";
rev = version;
hash = "sha256-nz+VfGR/6FdBvMzPPpVpviAXXBWNqM3Ora96Yzx964o=";
};
in
stdenv.mkDerivation (
params
// {
pname = "ocaml${ocaml.version}-camlp5";
strictDeps = true;
prefixKey = "-prefix ";
preConfigure = ''
configureFlagsArray=(--strict --libdir $out/lib/ocaml/${ocaml.version}/site-lib)
patchShebangs ./config/find_stuffversion.pl etc/META.pl
'';
buildFlags = [ "world.opt" ];
dontStrip = true;
meta = with lib; {
description = "Preprocessor-pretty-printer for OCaml";
longDescription = ''
Camlp5 is a preprocessor and pretty-printer for OCaml programs.
It also provides parsing and printing tools.
nativeBuildInputs = [
makeWrapper
ocaml
findlib
perl
];
buildInputs = [
bos
pcre2
re
rresult
];
propagatedBuildInputs = [ camlp-streams ];
postInstall = ''
for prog in camlp5 camlp5o camlp5r camlp5sch mkcamlp5 ocpp5
do
wrapProgram $out/bin/$prog \
--prefix CAML_LD_LIBRARY_PATH : "$CAML_LD_LIBRARY_PATH"
done
'';
homepage = "https://camlp5.github.io/";
license = licenses.bsd3;
platforms = ocaml.meta.platforms or [ ];
maintainers = with maintainers; [
maggesi
vbgl
}
else
rec {
version = "7.14";
src = fetchFromGitHub {
owner = "camlp5";
repo = "camlp5";
rev = "rel${builtins.replaceStrings [ "." ] [ "" ] version}";
sha256 = "1dd68bisbpqn5lq2pslm582hxglcxnbkgfkwhdz67z4w9d5nvr7w";
};
nativeBuildInputs = [
ocaml
perl
];
};
}
)
in
stdenv.mkDerivation (
params
// {
pname = "ocaml${ocaml.version}-camlp5";
strictDeps = true;
prefixKey = "-prefix ";
preConfigure = ''
configureFlagsArray=(--strict --libdir $out/lib/ocaml/${ocaml.version}/site-lib)
patchShebangs ./config/find_stuffversion.pl etc/META.pl
'';
buildFlags = [ "world.opt" ];
dontStrip = true;
meta = with lib; {
description = "Preprocessor-pretty-printer for OCaml";
longDescription = ''
Camlp5 is a preprocessor and pretty-printer for OCaml programs.
It also provides parsing and printing tools.
'';
homepage = "https://camlp5.github.io/";
license = licenses.bsd3;
platforms = ocaml.meta.platforms or [ ];
maintainers = with maintainers; [
maggesi
vbgl
];
broken = lib.versionOlder ocaml.version "4.02";
};
}
)

View File

@@ -7,40 +7,37 @@
ncurses,
}:
if lib.versionOlder ocaml.version "4.02" || lib.versionAtLeast ocaml.version "4.12" then
throw "dune 1 is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec {
pname = "dune";
version = "1.11.4";
src = fetchurl {
url = "https://github.com/ocaml/dune/releases/download/${version}/dune-build-info-${version}.tbz";
sha256 = "1rkc8lqw30ifjaz8d81la6i8j05ffd0whpxqsbg6dci16945zjvp";
};
stdenv.mkDerivation rec {
pname = "dune";
version = "1.11.4";
src = fetchurl {
url = "https://github.com/ocaml/dune/releases/download/${version}/dune-build-info-${version}.tbz";
sha256 = "1rkc8lqw30ifjaz8d81la6i8j05ffd0whpxqsbg6dci16945zjvp";
};
nativeBuildInputs = [
ocaml
findlib
];
buildInputs = [ ncurses ];
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
];
buildInputs = [ ncurses ];
strictDeps = true;
buildFlags = [ "release" ];
makeFlags = [
"PREFIX=${placeholder "out"}"
"LIBDIR=$(OCAMLFIND_DESTDIR)"
];
buildFlags = [ "release" ];
makeFlags = [
"PREFIX=${placeholder "out"}"
"LIBDIR=$(OCAMLFIND_DESTDIR)"
];
dontAddPrefix = true;
dontAddStaticConfigureFlags = true;
configurePlatforms = [ ];
dontAddPrefix = true;
dontAddStaticConfigureFlags = true;
configurePlatforms = [ ];
meta = with lib; {
homepage = "https://dune.build/";
description = "Composable build system";
maintainers = [ maintainers.vbgl ];
license = licenses.mit;
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
homepage = "https://dune.build/";
description = "Composable build system";
maintainers = [ maintainers.vbgl ];
license = licenses.mit;
broken = lib.versionOlder ocaml.version "4.02" || lib.versionAtLeast ocaml.version "4.12";
inherit (ocaml.meta) platforms;
};
}

View File

@@ -9,57 +9,55 @@
ocamlify,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0") "oasis is not available for OCaml 5.0"
stdenv.mkDerivation {
version = "0.4.11";
pname = "ocaml-oasis";
stdenv.mkDerivation
{
version = "0.4.11";
pname = "ocaml-oasis";
src = fetchurl {
url = "https://download.ocamlcore.org/oasis/oasis/0.4.11/oasis-0.4.11.tar.gz";
hash = "sha256-GLc97vTtbpqDM38ks7vi3tZSaLP/cwn8wA0l5X4dwS4=";
};
src = fetchurl {
url = "https://download.ocamlcore.org/oasis/oasis/0.4.11/oasis-0.4.11.tar.gz";
hash = "sha256-GLc97vTtbpqDM38ks7vi3tZSaLP/cwn8wA0l5X4dwS4=";
};
createFindlibDestdir = true;
createFindlibDestdir = true;
strictDeps = true;
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
ocamlmod
ocamlify
];
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
ocamlmod
ocamlify
buildInputs = [ ocamlbuild ];
configurePhase = ''
runHook preConfigure
ocaml setup.ml -configure --prefix $out
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
ocaml setup.ml -build
runHook postBuild
'';
installPhase = ''
runHook preInstall
ocaml setup.ml -install
runHook postInstall
'';
meta = with lib; {
description = "Configure, build and install system for OCaml projects";
homepage = "https://github.com/ocaml/oasis";
license = licenses.lgpl21;
maintainers = with maintainers; [
vbgl
maggesi
];
buildInputs = [ ocamlbuild ];
configurePhase = ''
runHook preConfigure
ocaml setup.ml -configure --prefix $out
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
ocaml setup.ml -build
runHook postBuild
'';
installPhase = ''
runHook preInstall
ocaml setup.ml -install
runHook postInstall
'';
meta = with lib; {
description = "Configure, build and install system for OCaml projects";
homepage = "https://github.com/ocaml/oasis";
license = licenses.lgpl21;
maintainers = with maintainers; [
vbgl
maggesi
];
mainProgram = "oasis";
inherit (ocaml.meta) platforms;
};
}
mainProgram = "oasis";
broken = lib.versionAtLeast ocaml.version "5.0";
inherit (ocaml.meta) platforms;
};
}

View File

@@ -9,41 +9,38 @@
gitUpdater,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"ocaml-recovery-parser is not available for OCaml ${ocaml.version}"
buildDunePackage rec {
pname = "ocaml-recovery-parser";
version = "0.2.4";
buildDunePackage
rec {
pname = "ocaml-recovery-parser";
version = "0.2.4";
minimalOCamlVersion = "4.08";
duneVersion = "3";
minimalOCamlVersion = "4.08";
duneVersion = "3";
src = fetchFromGitHub {
owner = "serokell";
repo = pname;
rev = version;
sha256 = "gOKvjmlcHDOgsTllj2sPL/qNtW/rlNlEVIrosahNsAQ=";
};
src = fetchFromGitHub {
owner = "serokell";
repo = pname;
rev = version;
sha256 = "gOKvjmlcHDOgsTllj2sPL/qNtW/rlNlEVIrosahNsAQ=";
};
propagatedBuildInputs = [
fix
menhirLib
menhirSdk
];
propagatedBuildInputs = [
fix
menhirLib
menhirSdk
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Simple fork of OCaml parser with support for error recovery";
homepage = "https://github.com/serokell/ocaml-recovery-parser";
license = with licenses; [
lgpl2Only
mit
mpl20
];
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Simple fork of OCaml parser with support for error recovery";
homepage = "https://github.com/serokell/ocaml-recovery-parser";
license = with licenses; [
lgpl2Only
mit
mpl20
];
maintainers = with maintainers; [ romildo ];
mainProgram = "menhir-recover";
};
}
maintainers = with maintainers; [ romildo ];
mainProgram = "menhir-recover";
broken = lib.versionAtLeast ocaml.version "5.0";
};
}

View File

@@ -6,39 +6,36 @@
findlib,
}:
lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
"ocamlscript is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-ocamlscript";
version = "3.0.0";
src = fetchFromGitHub {
owner = "mjambon";
repo = "ocamlscript";
rev = "v${version}";
sha256 = "sha256:10xz8jknlmcgnf233nahd04q98ijnxpijhpvb8hl7sv94dgkvpql";
};
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-ocamlscript";
version = "3.0.0";
src = fetchFromGitHub {
owner = "mjambon";
repo = "ocamlscript";
rev = "v${version}";
sha256 = "sha256:10xz8jknlmcgnf233nahd04q98ijnxpijhpvb8hl7sv94dgkvpql";
};
nativeBuildInputs = [
ocaml
findlib
];
nativeBuildInputs = [
ocaml
findlib
];
patches = [ ./Makefile.patch ];
patches = [ ./Makefile.patch ];
buildFlags = [ "PREFIX=$(out)" ];
installFlags = [ "PREFIX=$(out)" ];
buildFlags = [ "PREFIX=$(out)" ];
installFlags = [ "PREFIX=$(out)" ];
preInstall = "mkdir -p $out/bin";
createFindlibDestdir = true;
preInstall = "mkdir -p $out/bin";
createFindlibDestdir = true;
meta = with lib; {
inherit (src.meta) homepage;
license = licenses.boost;
inherit (ocaml.meta) platforms;
description = "Natively-compiled OCaml scripts";
maintainers = [ maintainers.vbgl ];
mainProgram = "ocamlscript";
};
}
meta = with lib; {
inherit (src.meta) homepage;
license = licenses.boost;
inherit (ocaml.meta) platforms;
description = "Natively-compiled OCaml scripts";
maintainers = [ maintainers.vbgl ];
mainProgram = "ocamlscript";
broken = !(lib.versionAtLeast ocaml.version "4.08");
};
}

View File

@@ -10,55 +10,52 @@
re,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"ocp-build is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-ocp-build";
version = "1.99.21";
stdenv.mkDerivation
rec {
pname = "ocaml${ocaml.version}-ocp-build";
version = "1.99.21";
src = fetchFromGitHub {
owner = "OCamlPro";
repo = "ocp-build";
rev = "v${version}";
sha256 = "1641xzik98c7xnjwxpacijd6d9jzx340fmdn6i372z8h554jjlg9";
};
src = fetchFromGitHub {
owner = "OCamlPro";
repo = "ocp-build";
rev = "v${version}";
sha256 = "1641xzik98c7xnjwxpacijd6d9jzx340fmdn6i372z8h554jjlg9";
};
patches = [
# Fix compilation with OCaml 4.12
(fetchpatch {
url = "https://github.com/OCamlPro/ocp-build/commit/104e4656ca6dba9edb03b62539c9f1e10abcaae8.patch";
sha256 = "0sbyi4acig9q8x1ky4hckfg5pm2nad6zasi51ravaf1spgl148c2";
})
];
patches = [
# Fix compilation with OCaml 4.12
(fetchpatch {
url = "https://github.com/OCamlPro/ocp-build/commit/104e4656ca6dba9edb03b62539c9f1e10abcaae8.patch";
sha256 = "0sbyi4acig9q8x1ky4hckfg5pm2nad6zasi51ravaf1spgl148c2";
})
];
strictDeps = true;
strictDeps = true;
nativeBuildInputs = [
ocaml
findlib
];
buildInputs = [
cmdliner_1_0
re
];
propagatedBuildInputs = [ ncurses ];
preInstall = "mkdir -p $out/bin";
nativeBuildInputs = [
ocaml
findlib
];
buildInputs = [
cmdliner_1_0
re
];
propagatedBuildInputs = [ ncurses ];
preInstall = "mkdir -p $out/bin";
meta = with lib; {
description = "Build tool for OCaml";
longDescription = ''
ocp-build is a build system for OCaml application, based on simple
descriptions of packages. ocp-build combines the descriptions of
packages, and optimize the parallel compilation of files depending on
the number of cores and the automatically-inferred dependencies
between source files.
'';
homepage = "https://www.typerex.org/ocp-build.html";
license = licenses.gpl3;
maintainers = [ maintainers.jirkamarsik ];
mainProgram = "ocp-build";
inherit (ocaml.meta) platforms;
};
}
meta = with lib; {
description = "Build tool for OCaml";
longDescription = ''
ocp-build is a build system for OCaml application, based on simple
descriptions of packages. ocp-build combines the descriptions of
packages, and optimize the parallel compilation of files depending on
the number of cores and the automatically-inferred dependencies
between source files.
'';
homepage = "https://www.typerex.org/ocp-build.html";
license = licenses.gpl3;
maintainers = [ maintainers.jirkamarsik ];
mainProgram = "ocp-build";
broken = lib.versionAtLeast ocaml.version "5.0";
inherit (ocaml.meta) platforms;
};
}

View File

@@ -6,30 +6,27 @@
cppo,
}:
lib.throwIf (lib.versionAtLeast ocaml.version "5.3")
"reanalyze is not available for OCaml ${ocaml.version}"
buildDunePackage rec {
pname = "reanalyze";
version = "2.25.1";
buildDunePackage
rec {
pname = "reanalyze";
version = "2.25.1";
minimalOCamlVersion = "4.08";
minimalOCamlVersion = "4.08";
src = fetchFromGitHub {
owner = "rescript-lang";
repo = "reanalyze";
tag = "v${version}";
hash = "sha256-cM39Gk4Ko7o/DyhrzgEHilobaB3h91Knltkcv2sglFw=";
};
src = fetchFromGitHub {
owner = "rescript-lang";
repo = "reanalyze";
tag = "v${version}";
hash = "sha256-cM39Gk4Ko7o/DyhrzgEHilobaB3h91Knltkcv2sglFw=";
};
nativeBuildInputs = [ cppo ];
nativeBuildInputs = [ cppo ];
meta = {
description = "Program analysis for ReScript and OCaml projects";
homepage = "https://github.com/rescript-lang/reanalyze/";
changelog = "https://github.com/rescript-lang/reanalyze/blob/v${version}/Changes.md";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
};
}
meta = {
description = "Program analysis for ReScript and OCaml projects";
homepage = "https://github.com/rescript-lang/reanalyze/";
changelog = "https://github.com/rescript-lang/reanalyze/blob/v${version}/Changes.md";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
broken = lib.versionAtLeast ocaml.version "5.3";
};
}