Skip to content

Commit

Permalink
wezterm: make it build with clang 19 (#366840)
Browse files Browse the repository at this point in the history
  • Loading branch information
vcunat committed Dec 23, 2024
2 parents e98cbf4 + d064fbc commit 7929c2e
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 19 deletions.
32 changes: 16 additions & 16 deletions pkgs/applications/terminal-emulators/wezterm/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,10 @@
xcbutilwm,
wayland,
zlib,
CoreGraphics,
Cocoa,
Foundation,
System,
libiconv,
UserNotifications,
nixosTests,
runCommand,
vulkan-loader,
fetchpatch2,
}:

rustPlatform.buildRustPackage rec {
Expand All @@ -43,6 +38,21 @@ rustPlatform.buildRustPackage rec {
hash = "sha256-Az+HlnK/lRJpUSGm5UKyma1l2PaBKNCGFiaYnLECMX8=";
};

patches = [
# Remove unused `fdopen` in vendored zlib, which causes compilation failures with clang 19 on Darwin.
# Ref: https://github.com/madler/zlib/commit/4bd9a71f3539b5ce47f0c67ab5e01f3196dc8ef9
./zlib-fdopen.patch

# Fix platform check in vendored libpng with clang 19 on Darwin.
(fetchpatch2 {
url = "https://github.com/pnggroup/libpng/commit/893b8113f04d408cc6177c6de19c9889a48faa24.patch?full_index=1";
extraPrefix = "deps/freetype/libpng/";
stripLen = 1;
excludes = [ "deps/freetype/libpng/AUTHORS" ];
hash = "sha256-zW/oUo2EGcnsxAfbbbhTKGui/lwCqovyrvUnylfRQzc=";
})
];

postPatch = ''
cp ${./Cargo.lock} Cargo.lock
Expand Down Expand Up @@ -88,20 +98,10 @@ rustPlatform.buildRustPackage rec {
xcbutilimage
xcbutilkeysyms
xcbutilwm # contains xcb-ewmh among others
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
Cocoa
CoreGraphics
Foundation
libiconv
System
UserNotifications
];

buildFeatures = [ "distro-defaults" ];

env.NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-framework System";

postInstall = ''
mkdir -p $out/nix-support
echo "${passthru.terminfo}" >> $out/nix-support/propagated-user-env-packages
Expand Down
24 changes: 24 additions & 0 deletions pkgs/applications/terminal-emulators/wezterm/zlib-fdopen.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Submodule deps/freetype/zlib contains modified content
diff --git a/deps/freetype/zlib/zutil.h b/deps/freetype/zlib/zutil.h
index b079ea6..4e94f2f 100644
--- a/deps/freetype/zlib/zutil.h
+++ b/deps/freetype/zlib/zutil.h
@@ -130,17 +130,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
# endif
#endif

-#if defined(MACOS) || defined(TARGET_OS_MAC)
+#if defined(MACOS)
# define OS_CODE 7
-# ifndef Z_SOLO
-# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
-# include <unix.h> /* for fdopen */
-# else
-# ifndef fdopen
-# define fdopen(fd,mode) NULL /* No fdopen() */
-# endif
-# endif
-# endif
#endif

#ifdef __acorn
4 changes: 1 addition & 3 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -1583,9 +1583,7 @@ with pkgs;
};
termite-unwrapped = callPackage ../applications/terminal-emulators/termite { };

wezterm = darwin.apple_sdk_11_0.callPackage ../applications/terminal-emulators/wezterm {
inherit (darwin.apple_sdk_11_0.frameworks) Cocoa CoreGraphics Foundation UserNotifications System;
};
wezterm = callPackage ../applications/terminal-emulators/wezterm { };

twine = with python3Packages; toPythonApplication twine;

Expand Down

0 comments on commit 7929c2e

Please sign in to comment.