ocamlformat: 0.24.1 -> 0.25.1

The ocamlformat package have been split into two in version 0.25.1:
one for the library and one for the executable.

This adds both packages at the same time.
They have the same sources and very similar dependencies, for which the
definition is shared.
This commit is contained in:
Jules Aguillon 2023-04-20 10:55:57 +02:00
parent 982a15389b
commit 26775c3659
7 changed files with 107 additions and 50 deletions

View File

@ -0,0 +1,63 @@
{ lib, fetchurl, ocaml-ng, version }:
# The ocamlformat package have been split into two in version 0.25.1:
# one for the library and one for the executable.
# Both have the same sources and very similar dependencies.
with ocaml-ng.ocamlPackages;
rec {
tarballName = "ocamlformat-${version}.tbz";
src = fetchurl {
url =
"https://github.com/ocaml-ppx/ocamlformat/releases/download/${version}/${tarballName}";
sha256 = {
"0.19.0" = "0ihgwl7d489g938m1jvgx8azdgq9f5np5mzqwwya797hx2m4dz32";
"0.20.0" = "sha256-JtmNCgwjbCyUE4bWqdH5Nc2YSit+rekwS43DcviIfgk=";
"0.20.1" = "sha256-fTpRZFQW+ngoc0T6A69reEUAZ6GmHkeQvxspd5zRAjU=";
"0.21.0" = "sha256-KhgX9rxYH/DM6fCqloe4l7AnJuKrdXSe6Y1XY3BXMy0=";
"0.22.4" = "sha256-61TeK4GsfMLmjYGn3ICzkagbc3/Po++Wnqkb2tbJwGA=";
"0.23.0" = "sha256-m9Pjz7DaGy917M1GjyfqG5Lm5ne7YSlJF2SVcDHe3+0=";
"0.24.0" = "sha256-Zil0wceeXmq2xy0OVLxa/Ujl4Dtsmc4COyv6Jo7rVaM=";
"0.24.1" = "sha256-AjQl6YGPgOpQU3sjcaSnZsFJqZV9BYB+iKAE0tX0Qc4=";
"0.25.1" = "sha256-3I8qMwyjkws2yssmI7s2Dti99uSorNKT29niJBpv0z0=";
}."${version}";
};
odoc-parser_v = odoc-parser.override {
version = if lib.versionAtLeast version "0.24.0" then
"2.0.0"
else if lib.versionAtLeast version "0.20.1" then
"1.0.1"
else
"0.9.0";
};
cmdliner_v =
if lib.versionAtLeast version "0.21.0" then cmdliner_1_1 else cmdliner_1_0;
library_deps = [
base
cmdliner_v
dune-build-info
fix
fpath
menhirLib
menhirSdk
ocp-indent
stdio
uuseg
uutf
] ++ lib.optionals (lib.versionAtLeast version "0.20.0") [
either
ocaml-version
] ++ lib.optionals (lib.versionAtLeast version "0.22.4") [ csexp ]
++ (if lib.versionOlder version "0.25.1" then
[ odoc-parser_v ]
else [
camlp-streams
result
astring
]);
}

View File

@ -0,0 +1,26 @@
{ lib, callPackage, ocaml-ng, version ? "0.25.1" }:
with ocaml-ng.ocamlPackages;
let inherit (callPackage ./generic.nix { inherit version; }) src library_deps;
in assert (lib.versionAtLeast version "0.25.1");
buildDunePackage {
pname = "ocamlformat-lib";
inherit src version;
minimalOCamlVersion = "4.08";
duneVersion = "3";
nativeBuildInputs = [ menhir ];
propagatedBuildInputs = library_deps;
meta = {
homepage = "https://github.com/ocaml-ppx/ocamlformat";
description = "Auto-formatter for OCaml code (library)";
maintainers = [ lib.maintainers.Zimmi48 lib.maintainers.marsam ];
license = lib.licenses.mit;
};
}

View File

@ -12,6 +12,7 @@ rec {
ocamlformat_0_22_4 = ocamlformat.override { version = "0.22.4"; };
ocamlformat_0_23_0 = ocamlformat.override { version = "0.23.0"; };
ocamlformat_0_24_1 = ocamlformat.override { version = "0.24.1"; };
ocamlformat_0_25_1 = ocamlformat.override { version = "0.25.1"; };
ocamlformat = callPackage ./generic.nix {};
}

View File

@ -1,61 +1,26 @@
{ lib, fetchurl, fetchzip, ocaml-ng
, version ? "0.24.1"
, tarballName ? "ocamlformat-${version}.tbz",
}:
{ lib, callPackage, ocaml-ng, version ? "0.25.1" }:
let src =
fetchurl {
url = "https://github.com/ocaml-ppx/ocamlformat/releases/download/${version}/${tarballName}";
sha256 = {
"0.19.0" = "0ihgwl7d489g938m1jvgx8azdgq9f5np5mzqwwya797hx2m4dz32";
"0.20.0" = "sha256-JtmNCgwjbCyUE4bWqdH5Nc2YSit+rekwS43DcviIfgk=";
"0.20.1" = "sha256-fTpRZFQW+ngoc0T6A69reEUAZ6GmHkeQvxspd5zRAjU=";
"0.21.0" = "sha256-KhgX9rxYH/DM6fCqloe4l7AnJuKrdXSe6Y1XY3BXMy0=";
"0.22.4" = "sha256-61TeK4GsfMLmjYGn3ICzkagbc3/Po++Wnqkb2tbJwGA=";
"0.23.0" = "sha256-m9Pjz7DaGy917M1GjyfqG5Lm5ne7YSlJF2SVcDHe3+0=";
"0.24.0" = "sha256-Zil0wceeXmq2xy0OVLxa/Ujl4Dtsmc4COyv6Jo7rVaM=";
"0.24.1" = "sha256-AjQl6YGPgOpQU3sjcaSnZsFJqZV9BYB+iKAE0tX0Qc4=";
}."${version}";
};
ocamlPackages = ocaml-ng.ocamlPackages;
in
with ocaml-ng.ocamlPackages;
with ocamlPackages;
let
inherit (callPackage ../../../ocaml-modules/ocamlformat/generic.nix {
inherit version;
})
src library_deps;
buildDunePackage {
in buildDunePackage {
pname = "ocamlformat";
inherit src version;
minimalOCamlVersion = "4.08";
duneVersion = "3";
nativeBuildInputs = [
menhir
];
nativeBuildInputs =
if lib.versionAtLeast version "0.25.1" then [ ] else [ menhir ];
buildInputs = [
base
dune-build-info
fix
fpath
menhirLib
menhirSdk
ocp-indent
re
stdio
uuseg
uutf
]
++ lib.optionals (lib.versionAtLeast version "0.20.0") [ ocaml-version either ]
++ (if lib.versionAtLeast version "0.24.0"
then [ (odoc-parser.override { version = "2.0.0"; }) ]
else if lib.versionAtLeast version "0.20.1"
then [ (odoc-parser.override { version = "1.0.1"; }) ]
else [ (odoc-parser.override { version = "0.9.0"; }) ])
++ (if lib.versionAtLeast version "0.21.0"
then [ cmdliner_1_1 ]
else [ cmdliner_1_0 ])
++ lib.optionals (lib.versionAtLeast version "0.22.4") [ csexp ];
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";

View File

@ -15814,7 +15814,7 @@ with pkgs;
inherit (callPackage ../development/tools/ocaml/ocamlformat { })
ocamlformat # latest version
ocamlformat_0_19_0 ocamlformat_0_20_0 ocamlformat_0_20_1 ocamlformat_0_21_0
ocamlformat_0_22_4 ocamlformat_0_23_0 ocamlformat_0_24_1;
ocamlformat_0_22_4 ocamlformat_0_23_0 ocamlformat_0_24_1 ocamlformat_0_25_1;
orc = callPackage ../development/compilers/orc { };

View File

@ -1163,7 +1163,9 @@ let
ocamlc-loc = callPackage ../development/ocaml-modules/ocamlc-loc { };
ocamlformat-rpc-lib = callPackage ../development/ocaml-modules/ocamlformat-rpc-lib { };
ocamlformat-lib = callPackage ../development/ocaml-modules/ocamlformat/ocamlformat-lib.nix { };
ocamlformat-rpc-lib = callPackage ../development/ocaml-modules/ocamlformat/ocamlformat-rpc-lib.nix { };
ocamlfuse = callPackage ../development/ocaml-modules/ocamlfuse { };