From 829ef15879a2cadde366975b20630e77441f1a0c Mon Sep 17 00:00:00 2001 From: Jason Pickens Date: Thu, 17 Feb 2022 12:20:30 +1300 Subject: iterm2: fix build --- .../terminal-emulators/iterm2/default.nix | 54 ++++++++++------------ 1 file changed, 24 insertions(+), 30 deletions(-) (limited to 'pkgs/applications/terminal-emulators') diff --git a/pkgs/applications/terminal-emulators/iterm2/default.nix b/pkgs/applications/terminal-emulators/iterm2/default.nix index 4c46bcc6c3fc..e8fbb8cb9fa9 100644 --- a/pkgs/applications/terminal-emulators/iterm2/default.nix +++ b/pkgs/applications/terminal-emulators/iterm2/default.nix @@ -1,48 +1,42 @@ -{ lib, stdenvNoCC, fetchFromGitHub }: +{ fetchzip, lib, stdenvNoCC }: /* - This derivation is impure: it relies on an Xcode toolchain being installed - and available in the expected place. The values of sandboxProfile - are copied pretty directly from the MacVim derivation, which - is also impure. In order to build you at least need the `sandbox` - option set to `relaxed` or `false`. + This cannot be built from source as it requires entitlements and + for that it needs to be code signed. Automatic updates will have + to be disabled via preferences instead of at build time. To do + that edit $HOME/Library/Preferences/com.googlecode.iterm2.plist + and add: + SUEnableAutomaticChecks = 0; */ stdenvNoCC.mkDerivation rec { pname = "iterm2"; - version = "3.4.14"; + version = "3.4.15"; - src = fetchFromGitHub { - owner = "gnachman"; - repo = "iTerm2"; - rev = "v${version}"; - sha256 = "sha256-sDCnBO7xDpecu2cSjpHwync2DVsj9EKUmgpqEVLtxRM="; + src = fetchzip { + url = "https://iterm2.com/downloads/stable/iTerm2-${lib.replaceStrings ["."] ["_"] version}.zip"; + sha256 = "sha256-ZE/uYBKB2popdIdZWA8AvyJiwMzt32u6u/H/AyNcoVo="; }; - patches = [ ./disable_updates.patch ]; - postPatch = '' - sed -i -e 's/CODE_SIGN_IDENTITY = "Developer ID Application"/CODE_SIGN_IDENTITY = ""/g' ./iTerm2.xcodeproj/project.pbxproj - ''; - - preConfigure = "LD=$CC"; - makeFlagsArray = ["Nix"]; installPhase = '' - mkdir -p $out/Applications - mv Build/Products/Deployment/iTerm2.app $out/Applications/iTerm.app - ''; - - sandboxProfile = '' - (allow file-read* file-write* process-exec mach-lookup) - ; block homebrew dependencies - (deny file-read* file-write* process-exec mach-lookup (subpath "/usr/local") (with no-log)) + runHook preInstall + APP_DIR="$out/Applications/iTerm2.app" + mkdir -p "$APP_DIR" + cp -r . "$APP_DIR" + mkdir -p "$out/bin" + cat << EOF > "$out/bin/iterm2" + #!${stdenvNoCC.shell} + open -na "$APP_DIR" --args "$@" + EOF + chmod +x "$out/bin/iterm2" + runHook postInstall ''; meta = with lib; { description = "A replacement for Terminal and the successor to iTerm"; homepage = "https://www.iterm2.com/"; license = licenses.gpl2; - maintainers = with maintainers; [ tricktron ]; - platforms = platforms.darwin; - hydraPlatforms = []; + maintainers = with maintainers; [ steinybot tricktron ]; + platforms = [ "x86_64-darwin" "aarch64-darwin" ]; }; } -- cgit 1.4.1