Skip to content

Commit

Permalink
unison: fix build with ocamlPackages_4_09 (#82619)
Browse files Browse the repository at this point in the history
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 3355e8d)
  • Loading branch information
winterdeaf authored and vbgl committed Mar 16, 2020
1 parent 23139ff commit 27eca64
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 1 deletion.
52 changes: 52 additions & 0 deletions 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 <jaapb@kerguelen.org>
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
6 changes: 6 additions & 0 deletions pkgs/applications/networking/sync/unison/default.nix
Expand Up @@ -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 ''
Expand Down
31 changes: 31 additions & 0 deletions pkgs/applications/networking/sync/unison/lablgtk.patch
@@ -0,0 +1,31 @@
From 2e7ea9481c6c3ff2ec513c39f73cfe15c0763c06 Mon Sep 17 00:00:00 2001
From: daviddavid <geiger.david68210@gmail.com>
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

1 change: 0 additions & 1 deletion pkgs/top-level/all-packages.nix
Expand Up @@ -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 { };
Expand Down

0 comments on commit 27eca64

Please sign in to comment.