summary refs log tree commit diff
diff options
context:
space:
mode:
authorThéo Zimmermann <theo.zimmermann@inria.fr>2023-06-29 08:57:36 +0200
committerGitHub <noreply@github.com>2023-06-29 08:57:36 +0200
commitdb0b79082867de35bacceff8e8b129d0634c7048 (patch)
tree98e8812f5cc0e6a0722f677da9a5751704283821
parent32c86661b76371973d825eedd19a159458686ace (diff)
parent3833306fc4c166e54062c99796b6bc309a0defef (diff)
downloadnixpkgs-db0b79082867de35bacceff8e8b129d0634c7048.tar
nixpkgs-db0b79082867de35bacceff8e8b129d0634c7048.tar.gz
nixpkgs-db0b79082867de35bacceff8e8b129d0634c7048.tar.bz2
nixpkgs-db0b79082867de35bacceff8e8b129d0634c7048.tar.lz
nixpkgs-db0b79082867de35bacceff8e8b129d0634c7048.tar.xz
nixpkgs-db0b79082867de35bacceff8e8b129d0634c7048.tar.zst
nixpkgs-db0b79082867de35bacceff8e8b129d0634c7048.zip
Merge pull request #227229 from Julow/ocamlformat_0_25_1
Ocamlformat 0 25 1
-rw-r--r--maintainers/maintainer-list.nix7
-rw-r--r--pkgs/development/ocaml-modules/ocamlformat/generic.nix63
-rw-r--r--pkgs/development/ocaml-modules/ocamlformat/ocamlformat-lib.nix26
-rw-r--r--pkgs/development/ocaml-modules/ocamlformat/ocamlformat-rpc-lib.nix (renamed from pkgs/development/ocaml-modules/ocamlformat-rpc-lib/default.nix)2
-rw-r--r--pkgs/development/tools/ocaml/ocamlformat/default.nix1
-rw-r--r--pkgs/development/tools/ocaml/ocamlformat/generic.nix63
-rw-r--r--pkgs/top-level/all-packages.nix2
-rw-r--r--pkgs/top-level/ocaml-packages.nix4
8 files changed, 116 insertions, 52 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 97e7c4ffed6..8f250dfe4cf 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -8196,6 +8196,13 @@
     githubId = 21160136;
     name = "Julien Moutinho";
   };
+  Julow = {
+    email = "jules@j3s.fr";
+    matrix = "@juloo:matrix.org";
+    github = "Julow";
+    githubId = 2310568;
+    name = "Jules Aguillon";
+  };
   jumper149 = {
     email = "felixspringer149@gmail.com";
     github = "jumper149";
diff --git a/pkgs/development/ocaml-modules/ocamlformat/generic.nix b/pkgs/development/ocaml-modules/ocamlformat/generic.nix
new file mode 100644
index 00000000000..9f9f7cff130
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocamlformat/generic.nix
@@ -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
+    ]);
+}
diff --git a/pkgs/development/ocaml-modules/ocamlformat/ocamlformat-lib.nix b/pkgs/development/ocaml-modules/ocamlformat/ocamlformat-lib.nix
new file mode 100644
index 00000000000..a95f8d9a410
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocamlformat/ocamlformat-lib.nix
@@ -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 = with lib.maintainers; [ Zimmi48 marsam Julow ];
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocamlformat-rpc-lib/default.nix b/pkgs/development/ocaml-modules/ocamlformat/ocamlformat-rpc-lib.nix
index 81328dc78df..abd3a33dde8 100644
--- a/pkgs/development/ocaml-modules/ocamlformat-rpc-lib/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlformat/ocamlformat-rpc-lib.nix
@@ -30,6 +30,6 @@ buildDunePackage rec {
     homepage = "https://github.com/ocaml-ppx/ocamlformat";
     description = "Auto-formatter for OCaml code (RPC mode)";
     license = licenses.mit;
-    maintainers = with maintainers; [ Zimmi48 marsam ];
+    maintainers = with maintainers; [ Zimmi48 marsam Julow ];
   };
 }
diff --git a/pkgs/development/tools/ocaml/ocamlformat/default.nix b/pkgs/development/tools/ocaml/ocamlformat/default.nix
index f90eaca5273..f0f38777f1c 100644
--- a/pkgs/development/tools/ocaml/ocamlformat/default.nix
+++ b/pkgs/development/tools/ocaml/ocamlformat/default.nix
@@ -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 {};
 }
diff --git a/pkgs/development/tools/ocaml/ocamlformat/generic.nix b/pkgs/development/tools/ocaml/ocamlformat/generic.nix
index 4ed53aad378..d63d0d9894b 100644
--- a/pkgs/development/tools/ocaml/ocamlformat/generic.nix
+++ b/pkgs/development/tools/ocaml/ocamlformat/generic.nix
@@ -1,66 +1,31 @@
-{ 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";
     description = "Auto-formatter for OCaml code";
-    maintainers = [ lib.maintainers.Zimmi48 lib.maintainers.marsam ];
+    maintainers = with lib.maintainers; [ Zimmi48 marsam Julow ];
     license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e784530271d..dcc63c0af35 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16280,7 +16280,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 { };
 
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 069de69a783..60252c1905e 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -1170,7 +1170,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 { };