From 27eca645524330dd46f10387538ada32206c8b02 Mon Sep 17 00:00:00 2001 From: Matteo Scarlata Date: Mon, 16 Mar 2020 13:16:43 +0100 Subject: [PATCH] unison: fix build with ocamlPackages_4_09 (#82619) Fixes #61867 and #61505, bumps the ocaml version unison is built against to 4.08. The patches included here appear in the trunk version of unison, but were not backported to 2.51.2. (cherry picked from commit 3355e8d1ca1e6e414d5ef64da02fa5728f873e17) --- .../sync/unison/4.08-compatibility.patch | 52 +++++++++++++++++++ .../networking/sync/unison/default.nix | 6 +++ .../networking/sync/unison/lablgtk.patch | 31 +++++++++++ pkgs/top-level/all-packages.nix | 1 - 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 pkgs/applications/networking/sync/unison/4.08-compatibility.patch create mode 100644 pkgs/applications/networking/sync/unison/lablgtk.patch diff --git a/pkgs/applications/networking/sync/unison/4.08-compatibility.patch b/pkgs/applications/networking/sync/unison/4.08-compatibility.patch new file mode 100644 index 000000000000000..a6921b516f0721d --- /dev/null +++ b/pkgs/applications/networking/sync/unison/4.08-compatibility.patch @@ -0,0 +1,52 @@ +From 29fa058c3127f3b47c347dcaa4a94f4c0e888308 Mon Sep 17 00:00:00 2001 +From: Jaap Boender +Date: Thu, 21 Mar 2019 12:26:51 +0000 +Subject: [PATCH] Compatibility with OCaml 4.08 + +--- + src/files.ml | 2 +- + src/recon.ml | 4 ++-- + src/system/system_generic.ml | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/files.ml b/src/files.ml +index ba42ad57..5babf21e 100644 +--- a/src/files.ml ++++ b/src/files.ml +@@ -722,7 +722,7 @@ let get_files_in_directory dir = + with End_of_file -> + dirh.System.closedir () + end; +- Sort.list (<) !files ++ List.sort String.compare !files + + let ls dir pattern = + Util.convertUnixErrorsToTransient +diff --git a/src/recon.ml b/src/recon.ml +index 5ed358d7..0df2cfe4 100644 +--- a/src/recon.ml ++++ b/src/recon.ml +@@ -651,8 +651,8 @@ let rec reconcile + + (* Sorts the paths so that they will be displayed in order *) + let sortPaths pathUpdatesList = +- Sort.list +- (fun (p1, _) (p2, _) -> Path.compare p1 p2 <= 0) ++ List.sort ++ Path.compare + pathUpdatesList + + let rec enterPath p1 p2 t = +diff --git a/src/system/system_generic.ml b/src/system/system_generic.ml +index ed8e18f3..0e28a781 100755 +--- a/src/system/system_generic.ml ++++ b/src/system/system_generic.ml +@@ -47,7 +47,7 @@ let open_out_gen = open_out_gen + let chmod = Unix.chmod + let chown = Unix.chown + let utimes = Unix.utimes +-let link = Unix.link ++let link s d = Unix.link s d + let openfile = Unix.openfile + let opendir f = + let h = Unix.opendir f in diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix index c29bd3a486ccdc1..9c49b22d944339d 100644 --- a/pkgs/applications/networking/sync/unison/default.nix +++ b/pkgs/applications/networking/sync/unison/default.nix @@ -27,6 +27,12 @@ stdenv.mkDerivation (rec { "UISTYLE=${if enableX11 then "gtk2" else "text"}" ] ++ stdenv.lib.optional (!ocaml.nativeCompilers) "NATIVE=false"; + patches = [ + # NOTE: Only needed until Unison 2.51.3 is released! + ./4.08-compatibility.patch + ./lablgtk.patch + ]; + preInstall = "mkdir -p $out/bin"; postInstall = if enableX11 then '' diff --git a/pkgs/applications/networking/sync/unison/lablgtk.patch b/pkgs/applications/networking/sync/unison/lablgtk.patch new file mode 100644 index 000000000000000..20c1db1b1166b43 --- /dev/null +++ b/pkgs/applications/networking/sync/unison/lablgtk.patch @@ -0,0 +1,31 @@ +From 2e7ea9481c6c3ff2ec513c39f73cfe15c0763c06 Mon Sep 17 00:00:00 2001 +From: daviddavid +Date: Mon, 26 Feb 2018 13:36:36 +0100 +Subject: [PATCH] Fix for lablgtk >= 2.18.6 + +--- + src/uigtk2.ml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/uigtk2.ml b/src/uigtk2.ml +index 2ba6d79..04c4da4 100644 +--- a/src/uigtk2.ml ++++ b/src/uigtk2.ml +@@ -89,12 +89,12 @@ let fontItalic = lazy (Pango.Font.from_string "italic") + (* This does not work with the current version of Lablgtk, due to a bug + let icon = + GdkPixbuf.from_data ~width:48 ~height:48 ~has_alpha:true +- (Gpointer.region_of_string Pixmaps.icon_data) ++ (Gpointer.region_of_bytes Pixmaps.icon_data) + *) + let icon = + let p = GdkPixbuf.create ~width:48 ~height:48 ~has_alpha:true () in + Gpointer.blit +- (Gpointer.region_of_string Pixmaps.icon_data) (GdkPixbuf.get_pixels p); ++ (Gpointer.region_of_bytes Pixmaps.icon_data) (GdkPixbuf.get_pixels p); + p + + let leftPtrWatch = +-- +2.25.1 + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 59d8f715282ec9e..09a1f03bd55eedd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21826,7 +21826,6 @@ in unison = callPackage ../applications/networking/sync/unison { enableX11 = config.unison.enableX11 or true; - ocamlPackages = ocaml-ng.ocamlPackages_4_05; }; unpaper = callPackage ../tools/graphics/unpaper { };