From cbde330c9c169f3e36000102d4d660e7d4c7960d Mon Sep 17 00:00:00 2001 From: Michael Rowland Date: Wed, 19 Feb 2025 17:21:54 -0800 Subject: [PATCH] insomnia: add aarch64-darwin build, sandbox builds Insomnia has been supported on apple silicon since 2022, so nixpkgs should support it too. Switch to using undmg to unpack the upstream .dmg so sandboxed builds complete successfully on macos. --- pkgs/by-name/in/insomnia/package.nix | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/pkgs/by-name/in/insomnia/package.nix b/pkgs/by-name/in/insomnia/package.nix index a182994ddc9b8..7bdd4b4905524 100644 --- a/pkgs/by-name/in/insomnia/package.nix +++ b/pkgs/by-name/in/insomnia/package.nix @@ -3,6 +3,7 @@ stdenv, fetchurl, appimageTools, + undmg, }: let pname = "insomnia"; @@ -11,6 +12,10 @@ let src = fetchurl { + aarch64-darwin = { + url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.dmg"; + hash = "sha256-Yny5Rwt8XHTM77DH4AXmY8VtZ92F7jAdNW+polPePJk="; + }; x86_64-darwin = { url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.dmg"; hash = "sha256-Yny5Rwt8XHTM77DH4AXmY8VtZ92F7jAdNW+polPePJk="; @@ -29,6 +34,7 @@ let changelog = "https://github.com/Kong/insomnia/releases/tag/core@${version}"; license = licenses.asl20; platforms = [ + "aarch64-darwin" "x86_64-linux" "x86_64-darwin" ]; @@ -49,23 +55,7 @@ if stdenv.hostPlatform.isDarwin then ; sourceRoot = "."; - unpackCmd = '' - echo "Creating temp directory" - mnt=$(TMPDIR=/tmp mktemp -d -t nix-XXXXXXXXXX) - function finish { - echo "Ejecting temp directory" - /usr/bin/hdiutil detach $mnt -force - rm -rf $mnt - } - # Detach volume when receiving SIG "0" - trap finish EXIT - # Mount DMG file - echo "Mounting DMG file into \"$mnt\"" - /usr/bin/hdiutil attach -nobrowse -mountpoint $mnt $curSrc - # Copy content to local dir for later use - echo 'Copying extracted content into "sourceRoot"' - cp -a $mnt/Insomnia.app $PWD/ - ''; + nativeBuildInputs = [ undmg ]; installPhase = '' runHook preInstall