diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix index 0fb1cdddfbaf..9dc3e0329e3c 100644 --- a/pkgs/applications/version-management/mercurial/default.nix +++ b/pkgs/applications/version-management/mercurial/default.nix @@ -28,6 +28,11 @@ let sha256 = "sha256-hvmGReRWWpJWmR3N4it3uOfSLKb7tgwfTNvYRpo4zB8="; }; + patches = [ + # Fix the type of libc buffer for aarch64-linux + ./fix-rhg-type-aarch64.patch + ]; + format = "other"; passthru = { inherit python; }; # pass it so that the same version can be used in hg2git diff --git a/pkgs/applications/version-management/mercurial/fix-rhg-type-aarch64.patch b/pkgs/applications/version-management/mercurial/fix-rhg-type-aarch64.patch new file mode 100644 index 000000000000..84417b497c0a --- /dev/null +++ b/pkgs/applications/version-management/mercurial/fix-rhg-type-aarch64.patch @@ -0,0 +1,12 @@ +diff --git a/rust/hg-core/src/lock.rs b/rust/hg-core/src/lock.rs +--- a/rust/hg-core/src/lock.rs ++++ b/rust/hg-core/src/lock.rs +@@ -145,7 +145,7 @@ lazy_static::lazy_static! { + + /// Same as https://github.com/python/cpython/blob/v3.10.0/Modules/socketmodule.c#L5414 + const BUFFER_SIZE: usize = 1024; +- let mut buffer = [0_i8; BUFFER_SIZE]; ++ let mut buffer = [0 as libc::c_char; BUFFER_SIZE]; + let hostname_bytes = unsafe { + let result = libc::gethostname(buffer.as_mut_ptr(), BUFFER_SIZE); + if result != 0 {