diff --git a/pkgs/build-support/ocaml/oasis.nix b/pkgs/build-support/ocaml/oasis.nix index 269a433caad4..de8b7039e84e 100644 --- a/pkgs/build-support/ocaml/oasis.nix +++ b/pkgs/build-support/ocaml/oasis.nix @@ -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; + }; + } +) diff --git a/pkgs/by-name/li/libnbd/package.nix b/pkgs/by-name/li/libnbd/package.nix index 55fca95e0493..b0a9b3fd78d1 100644 --- a/pkgs/by-name/li/libnbd/package.nix +++ b/pkgs/by-name/li/libnbd/package.nix @@ -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 diff --git a/pkgs/development/compilers/mezzo/default.nix b/pkgs/development/compilers/mezzo/default.nix index 51df8e7062d4..033266efa564 100644 --- a/pkgs/development/compilers/mezzo/default.nix +++ b/pkgs/development/compilers/mezzo/default.nix @@ -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 [ ]; + }; +} diff --git a/pkgs/development/ocaml-modules/b0/default.nix b/pkgs/development/ocaml-modules/b0/default.nix index a6c0bb4327d8..f18002ccfc13 100644 --- a/pkgs/development/ocaml-modules/b0/default.nix +++ b/pkgs/development/ocaml-modules/b0/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix index 4120f81a1a02..57fc0f208589 100644 --- a/pkgs/development/ocaml-modules/bap/default.nix +++ b/pkgs/development/ocaml-modules/bap/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/bitstring/ppx.nix b/pkgs/development/ocaml-modules/bitstring/ppx.nix index 18055887c8c6..9215c8293d28 100644 --- a/pkgs/development/ocaml-modules/bitstring/ppx.nix +++ b/pkgs/development/ocaml-modules/bitstring/ppx.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/brisk-reconciler/default.nix b/pkgs/development/ocaml-modules/brisk-reconciler/default.nix index d99e050d7642..aa918ae4d674 100644 --- a/pkgs/development/ocaml-modules/brisk-reconciler/default.nix +++ b/pkgs/development/ocaml-modules/brisk-reconciler/default.nix @@ -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"; }; } diff --git a/pkgs/development/ocaml-modules/bz2/default.nix b/pkgs/development/ocaml-modules/bz2/default.nix index 4fabc3418885..3d096571e86e 100644 --- a/pkgs/development/ocaml-modules/bz2/default.nix +++ b/pkgs/development/ocaml-modules/bz2/default.nix @@ -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 = [ ]; + }; +} diff --git a/pkgs/development/ocaml-modules/camlpdf/default.nix b/pkgs/development/ocaml-modules/camlpdf/default.nix index 3bd8856bf1ce..65eafc11744d 100644 --- a/pkgs/development/ocaml-modules/camlpdf/default.nix +++ b/pkgs/development/ocaml-modules/camlpdf/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/cil/default.nix b/pkgs/development/ocaml-modules/cil/default.nix index da1c0aa10c2b..a0b36953bf47 100644 --- a/pkgs/development/ocaml-modules/cil/default.nix +++ b/pkgs/development/ocaml-modules/cil/default.nix @@ -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 [ ]; + }; +} diff --git a/pkgs/development/ocaml-modules/cmarkit/default.nix b/pkgs/development/ocaml-modules/cmarkit/default.nix index 7589b9dd9a7f..b4828756f5cd 100644 --- a/pkgs/development/ocaml-modules/cmarkit/default.nix +++ b/pkgs/development/ocaml-modules/cmarkit/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/cmdliner/1_0.nix b/pkgs/development/ocaml-modules/cmdliner/1_0.nix index ee57846783f9..32dbdff6a8fc 100644 --- a/pkgs/development/ocaml-modules/cmdliner/1_0.nix +++ b/pkgs/development/ocaml-modules/cmdliner/1_0.nix @@ -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"); }; } diff --git a/pkgs/development/ocaml-modules/cmdliner/1_1.nix b/pkgs/development/ocaml-modules/cmdliner/1_1.nix index 31ec0e69ef2f..521b9b53168c 100644 --- a/pkgs/development/ocaml-modules/cmdliner/1_1.nix +++ b/pkgs/development/ocaml-modules/cmdliner/1_1.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/config-file/default.nix b/pkgs/development/ocaml-modules/config-file/default.nix index 4bb913d544bf..149425301a6d 100644 --- a/pkgs/development/ocaml-modules/config-file/default.nix +++ b/pkgs/development/ocaml-modules/config-file/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/development/ocaml-modules/cpdf/default.nix b/pkgs/development/ocaml-modules/cpdf/default.nix index 66823ce21fa1..8dff973a92e1 100644 --- a/pkgs/development/ocaml-modules/cpdf/default.nix +++ b/pkgs/development/ocaml-modules/cpdf/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/cryptgps/default.nix b/pkgs/development/ocaml-modules/cryptgps/default.nix index b69342f19add..da0d475f6796 100644 --- a/pkgs/development/ocaml-modules/cryptgps/default.nix +++ b/pkgs/development/ocaml-modules/cryptgps/default.nix @@ -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 - ]; - }; - } + }; +} diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix index 001656d6c65a..38f02a0be256 100644 --- a/pkgs/development/ocaml-modules/eliom/default.nix +++ b/pkgs/development/ocaml-modules/eliom/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/development/ocaml-modules/erm_xml/default.nix b/pkgs/development/ocaml-modules/erm_xml/default.nix index de1e15115e7b..a68c56a495e2 100644 --- a/pkgs/development/ocaml-modules/erm_xml/default.nix +++ b/pkgs/development/ocaml-modules/erm_xml/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/development/ocaml-modules/expat/default.nix b/pkgs/development/ocaml-modules/expat/default.nix index 17bc6e628c5d..f62fef29a4e6 100644 --- a/pkgs/development/ocaml-modules/expat/default.nix +++ b/pkgs/development/ocaml-modules/expat/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/facile/default.nix b/pkgs/development/ocaml-modules/facile/default.nix index d2ebf8b8805f..2981640c6b19 100644 --- a/pkgs/development/ocaml-modules/facile/default.nix +++ b/pkgs/development/ocaml-modules/facile/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/farfadet/default.nix b/pkgs/development/ocaml-modules/farfadet/default.nix index ddc73697d8ef..83395d161a7a 100644 --- a/pkgs/development/ocaml-modules/farfadet/default.nix +++ b/pkgs/development/ocaml-modules/farfadet/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/fmt/default.nix b/pkgs/development/ocaml-modules/fmt/default.nix index d33e709f731a..254ca3f51c5c 100644 --- a/pkgs/development/ocaml-modules/fmt/default.nix +++ b/pkgs/development/ocaml-modules/fmt/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/fpath/default.nix b/pkgs/development/ocaml-modules/fpath/default.nix index 861b91901e55..b0bfbe507f6c 100644 --- a/pkgs/development/ocaml-modules/fpath/default.nix +++ b/pkgs/development/ocaml-modules/fpath/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/functory/default.nix b/pkgs/development/ocaml-modules/functory/default.nix index 84b16d678de8..44b7adfa6fff 100644 --- a/pkgs/development/ocaml-modules/functory/default.nix +++ b/pkgs/development/ocaml-modules/functory/default.nix @@ -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; + }; +} diff --git a/pkgs/development/ocaml-modules/gg/default.nix b/pkgs/development/ocaml-modules/gg/default.nix index 7b015cf6840c..8e6c205695e1 100644 --- a/pkgs/development/ocaml-modules/gg/default.nix +++ b/pkgs/development/ocaml-modules/gg/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/hmap/default.nix b/pkgs/development/ocaml-modules/hmap/default.nix index 61892116d6e9..7021af3b8f3d 100644 --- a/pkgs/development/ocaml-modules/hmap/default.nix +++ b/pkgs/development/ocaml-modules/hmap/default.nix @@ -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); }; } diff --git a/pkgs/development/ocaml-modules/javalib/default.nix b/pkgs/development/ocaml-modules/javalib/default.nix index 43a6424f7c04..7fca71f2035a 100644 --- a/pkgs/development/ocaml-modules/javalib/default.nix +++ b/pkgs/development/ocaml-modules/javalib/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/kafka/default.nix b/pkgs/development/ocaml-modules/kafka/default.nix index 9c0698878a58..f096b7f3190c 100644 --- a/pkgs/development/ocaml-modules/kafka/default.nix +++ b/pkgs/development/ocaml-modules/kafka/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/kafka/lwt.nix b/pkgs/development/ocaml-modules/kafka/lwt.nix index e638fe513f3b..0ee37ea0f657 100644 --- a/pkgs/development/ocaml-modules/kafka/lwt.nix +++ b/pkgs/development/ocaml-modules/kafka/lwt.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/lablgl/default.nix b/pkgs/development/ocaml-modules/lablgl/default.nix index 3736fc84a8d4..06b7f64157d3 100644 --- a/pkgs/development/ocaml-modules/lablgl/default.nix +++ b/pkgs/development/ocaml-modules/lablgl/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix index 469c3750cafc..172e1d539e27 100644 --- a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix +++ b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/lem/default.nix b/pkgs/development/ocaml-modules/lem/default.nix index 8a2ac28d8289..150b7a9519ca 100644 --- a/pkgs/development/ocaml-modules/lem/default.nix +++ b/pkgs/development/ocaml-modules/lem/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/linksem/default.nix b/pkgs/development/ocaml-modules/linksem/default.nix index ccefd91c06cf..40930e21f94f 100644 --- a/pkgs/development/ocaml-modules/linksem/default.nix +++ b/pkgs/development/ocaml-modules/linksem/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/mariadb/default.nix b/pkgs/development/ocaml-modules/mariadb/default.nix index 4fbc81bfc313..a53a996da8a4 100644 --- a/pkgs/development/ocaml-modules/mariadb/default.nix +++ b/pkgs/development/ocaml-modules/mariadb/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/memprof-limits/default.nix b/pkgs/development/ocaml-modules/memprof-limits/default.nix index 32ffbd5f82cf..e469c9daff9d 100644 --- a/pkgs/development/ocaml-modules/memprof-limits/default.nix +++ b/pkgs/development/ocaml-modules/memprof-limits/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/mtime/default.nix b/pkgs/development/ocaml-modules/mtime/default.nix index 4c6677114b09..ff7e19c89ce0 100644 --- a/pkgs/development/ocaml-modules/mtime/default.nix +++ b/pkgs/development/ocaml-modules/mtime/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/nonstd/default.nix b/pkgs/development/ocaml-modules/nonstd/default.nix index 7d547d3818f9..32baf666f8b1 100644 --- a/pkgs/development/ocaml-modules/nonstd/default.nix +++ b/pkgs/development/ocaml-modules/nonstd/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/note/default.nix b/pkgs/development/ocaml-modules/note/default.nix index c5e801456a47..176d6581e82d 100644 --- a/pkgs/development/ocaml-modules/note/default.nix +++ b/pkgs/development/ocaml-modules/note/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/ocaml-cairo/default.nix b/pkgs/development/ocaml-modules/ocaml-cairo/default.nix index c0cfa54ca997..6a5a696aa20e 100644 --- a/pkgs/development/ocaml-modules/ocaml-cairo/default.nix +++ b/pkgs/development/ocaml-modules/ocaml-cairo/default.nix @@ -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; + }; +} diff --git a/pkgs/development/ocaml-modules/ocaml-libvirt/default.nix b/pkgs/development/ocaml-modules/ocaml-libvirt/default.nix index 43fead8c172e..584e1b307dda 100644 --- a/pkgs/development/ocaml-modules/ocaml-libvirt/default.nix +++ b/pkgs/development/ocaml-modules/ocaml-libvirt/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/1.8.x.nix b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/1.8.x.nix index 6e16fd2f2556..725371018e08 100644 --- a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/1.8.x.nix +++ b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/1.8.x.nix @@ -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; + }; +} diff --git a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix index 2c66caae99f9..129e2a9be198 100644 --- a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix +++ b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/ocamlformat/ocamlformat.nix b/pkgs/development/ocaml-modules/ocamlformat/ocamlformat.nix index 65f9dadbd957..05a9eac165b6 100644 --- a/pkgs/development/ocaml-modules/ocamlformat/ocamlformat.nix +++ b/pkgs/development/ocaml-modules/ocamlformat/ocamlformat.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/ocamlnet/default.nix b/pkgs/development/ocaml-modules/ocamlnet/default.nix index 72ecf9ada9cb..ff7ec4d750eb 100644 --- a/pkgs/development/ocaml-modules/ocamlnet/default.nix +++ b/pkgs/development/ocaml-modules/ocamlnet/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix b/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix index 263caad54863..766758489fcc 100644 --- a/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix +++ b/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/ocurl/default.nix b/pkgs/development/ocaml-modules/ocurl/default.nix index 8f30944d3590..625e59ff5bb5 100644 --- a/pkgs/development/ocaml-modules/ocurl/default.nix +++ b/pkgs/development/ocaml-modules/ocurl/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/osdp/default.nix b/pkgs/development/ocaml-modules/osdp/default.nix index 05af890d045a..1f11669e8f39 100644 --- a/pkgs/development/ocaml-modules/osdp/default.nix +++ b/pkgs/development/ocaml-modules/osdp/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/piqi/default.nix b/pkgs/development/ocaml-modules/piqi/default.nix index 1c45d67324d6..6a60fd9cf176 100644 --- a/pkgs/development/ocaml-modules/piqi/default.nix +++ b/pkgs/development/ocaml-modules/piqi/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/ppx_cstubs/default.nix b/pkgs/development/ocaml-modules/ppx_cstubs/default.nix index 75bdee5783a8..e8ed1e4540e2 100644 --- a/pkgs/development/ocaml-modules/ppx_cstubs/default.nix +++ b/pkgs/development/ocaml-modules/ppx_cstubs/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/ppx_tools/default.nix b/pkgs/development/ocaml-modules/ppx_tools/default.nix index 21d6f116b9e7..086b0da2576f 100644 --- a/pkgs/development/ocaml-modules/ppx_tools/default.nix +++ b/pkgs/development/ocaml-modules/ppx_tools/default.nix @@ -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; + }; + } diff --git a/pkgs/development/ocaml-modules/ppxlib/default.nix b/pkgs/development/ocaml-modules/ppxlib/default.nix index 759d92bb4467..76aabf9f8194 100644 --- a/pkgs/development/ocaml-modules/ppxlib/default.nix +++ b/pkgs/development/ocaml-modules/ppxlib/default.nix @@ -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; + }; +} diff --git a/pkgs/development/ocaml-modules/ptime/default.nix b/pkgs/development/ocaml-modules/ptime/default.nix index 4624e22600a1..a29060b191bb 100644 --- a/pkgs/development/ocaml-modules/ptime/default.nix +++ b/pkgs/development/ocaml-modules/ptime/default.nix @@ -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"); + }; +}) diff --git a/pkgs/development/ocaml-modules/rresult/default.nix b/pkgs/development/ocaml-modules/rresult/default.nix index cc559c1c1740..43a860367b58 100644 --- a/pkgs/development/ocaml-modules/rresult/default.nix +++ b/pkgs/development/ocaml-modules/rresult/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/sawja/default.nix b/pkgs/development/ocaml-modules/sawja/default.nix index 57cf08744cb3..5bb16cd6e86b 100644 --- a/pkgs/development/ocaml-modules/sawja/default.nix +++ b/pkgs/development/ocaml-modules/sawja/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/sodium/default.nix b/pkgs/development/ocaml-modules/sodium/default.nix index 7ca2e65935ad..77b91c113790 100644 --- a/pkgs/development/ocaml-modules/sodium/default.nix +++ b/pkgs/development/ocaml-modules/sodium/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/sosa/default.nix b/pkgs/development/ocaml-modules/sosa/default.nix index ded25d88f58e..5659bb4fa380 100644 --- a/pkgs/development/ocaml-modules/sosa/default.nix +++ b/pkgs/development/ocaml-modules/sosa/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/stdcompat/default.nix b/pkgs/development/ocaml-modules/stdcompat/default.nix index dd1a26e1ebac..d75b4839a8b0 100644 --- a/pkgs/development/ocaml-modules/stdcompat/default.nix +++ b/pkgs/development/ocaml-modules/stdcompat/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/tsdl/default.nix b/pkgs/development/ocaml-modules/tsdl/default.nix index 092d3973db90..d5b5517411f1 100644 --- a/pkgs/development/ocaml-modules/tsdl/default.nix +++ b/pkgs/development/ocaml-modules/tsdl/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/twt/default.nix b/pkgs/development/ocaml-modules/twt/default.nix index ef5fae48b37c..eb30e395c749 100644 --- a/pkgs/development/ocaml-modules/twt/default.nix +++ b/pkgs/development/ocaml-modules/twt/default.nix @@ -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; + }; +} diff --git a/pkgs/development/ocaml-modules/ulex/default.nix b/pkgs/development/ocaml-modules/ulex/default.nix index 512be9b782f4..d6f3781fe588 100644 --- a/pkgs/development/ocaml-modules/ulex/default.nix +++ b/pkgs/development/ocaml-modules/ulex/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/uri/sexp.nix b/pkgs/development/ocaml-modules/uri/sexp.nix index df54c7636c73..db31f8d0f037 100644 --- a/pkgs/development/ocaml-modules/uri/sexp.nix +++ b/pkgs/development/ocaml-modules/uri/sexp.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/uuidm/default.nix b/pkgs/development/ocaml-modules/uuidm/default.nix index 77ca17170585..6f203bdc5832 100644 --- a/pkgs/development/ocaml-modules/uuidm/default.nix +++ b/pkgs/development/ocaml-modules/uuidm/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/ocaml-modules/uunf/default.nix b/pkgs/development/ocaml-modules/uunf/default.nix index 0fc5a247e8e9..522a001f4a4d 100644 --- a/pkgs/development/ocaml-modules/uunf/default.nix +++ b/pkgs/development/ocaml-modules/uunf/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/vg/default.nix b/pkgs/development/ocaml-modules/vg/default.nix index 5b99a1b04cf1..b3d47c8b1d60 100644 --- a/pkgs/development/ocaml-modules/vg/default.nix +++ b/pkgs/development/ocaml-modules/vg/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/vlq/default.nix b/pkgs/development/ocaml-modules/vlq/default.nix index e6b8070963df..984c20586737 100644 --- a/pkgs/development/ocaml-modules/vlq/default.nix +++ b/pkgs/development/ocaml-modules/vlq/default.nix @@ -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 ]; - }; - - } +} diff --git a/pkgs/development/ocaml-modules/xmlm/default.nix b/pkgs/development/ocaml-modules/xmlm/default.nix index 21d0b28a09b7..3ad17d8aa74f 100644 --- a/pkgs/development/ocaml-modules/xmlm/default.nix +++ b/pkgs/development/ocaml-modules/xmlm/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/z3/default.nix b/pkgs/development/ocaml-modules/z3/default.nix index ddc9e2931015..e0643d5e5e56 100644 --- a/pkgs/development/ocaml-modules/z3/default.nix +++ b/pkgs/development/ocaml-modules/z3/default.nix @@ -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"; + }; +} diff --git a/pkgs/development/ocaml-modules/zarith/default.nix b/pkgs/development/ocaml-modules/zarith/default.nix index 09ef6ced2600..6b0e4ad4074a 100644 --- a/pkgs/development/ocaml-modules/zarith/default.nix +++ b/pkgs/development/ocaml-modules/zarith/default.nix @@ -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"; + }; +}) diff --git a/pkgs/development/ocaml-modules/zipc/default.nix b/pkgs/development/ocaml-modules/zipc/default.nix index 74717ec79471..7f983a68a022 100644 --- a/pkgs/development/ocaml-modules/zipc/default.nix +++ b/pkgs/development/ocaml-modules/zipc/default.nix @@ -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"); + }; +} diff --git a/pkgs/development/tools/ocaml/camlidl/default.nix b/pkgs/development/tools/ocaml/camlidl/default.nix index 0e707e4fdaee..4897a9b597cd 100644 --- a/pkgs/development/tools/ocaml/camlidl/default.nix +++ b/pkgs/development/tools/ocaml/camlidl/default.nix @@ -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 <$out/lib/ocaml/${ocaml.version}/site-lib/camlidl/META <