From a8d7ac1b11b095563018c2855cc4289f763beb34 Mon Sep 17 00:00:00 2001 From: toonn Date: Thu, 10 Mar 2022 13:27:29 +0100 Subject: [PATCH 1/3] make-darwin-bundle: Use actual bin output The script and the hook assume `/bin` is in `$out` but that's not always true for a multi-output derivation. --- pkgs/build-support/make-darwin-bundle/default.nix | 8 ++++---- .../build-support/setup-hooks/desktop-to-darwin-bundle.sh | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/build-support/make-darwin-bundle/default.nix b/pkgs/build-support/make-darwin-bundle/default.nix index b8f58882fff3..60a89aa3a188 100644 --- a/pkgs/build-support/make-darwin-bundle/default.nix +++ b/pkgs/build-support/make-darwin-bundle/default.nix @@ -12,14 +12,14 @@ writeShellScript "make-darwin-bundle-${name}" ('' function makeDarwinBundlePhase() { - mkdir -p "$out/Applications/${name}.app/Contents/MacOS" - mkdir -p "$out/Applications/${name}.app/Contents/Resources" + mkdir -p "${!outputBin}/Applications/${name}.app/Contents/MacOS" + mkdir -p "${!outputBin}/Applications/${name}.app/Contents/Resources" if [ -n "${icon}" ]; then - ln -s "${icon}" "$out/Applications/${name}.app/Contents/Resources" + ln -s "${icon}" "${!outputBin}/Applications/${name}.app/Contents/Resources" fi - ${writeDarwinBundle}/bin/write-darwin-bundle "$out" "${name}" "${exec}" + ${writeDarwinBundle}/bin/write-darwin-bundle "${!outputBin}" "${name}" "${exec}" } preDistPhases+=" makeDarwinBundlePhase" diff --git a/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh b/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh index b2e2738cb6ec..be63df982317 100644 --- a/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh +++ b/pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh @@ -154,12 +154,12 @@ convertDesktopFile() { local -r iconName=$(getDesktopParam "${file}" "^Icon") local -r squircle=$(getDesktopParam "${file}" "X-macOS-SquircleIcon") - mkdir -p "$out/Applications/${name}.app/Contents/MacOS" - mkdir -p "$out/Applications/${name}.app/Contents/Resources" + mkdir -p "${!outputBin}/Applications/${name}.app/Contents/MacOS" + mkdir -p "${!outputBin}/Applications/${name}.app/Contents/Resources" - convertIconTheme "$out/Applications/${name}.app/Contents/Resources" "$sharePath" "$iconName" + convertIconTheme "${!outputBin}/Applications/${name}.app/Contents/Resources" "$sharePath" "$iconName" - write-darwin-bundle "$out" "$name" "$exec" "$iconName" "$squircle" + write-darwin-bundle "${!outputBin}" "$name" "$exec" "$iconName" "$squircle" } convertDesktopFiles() { From 4c14b9a77817527e5c2a8b1d0d3f56ffd3dec08f Mon Sep 17 00:00:00 2001 From: toonn Date: Fri, 11 Mar 2022 19:23:33 +0100 Subject: [PATCH 2/3] make-darwin-bundle: Escape outputBin for Nix '' string --- pkgs/build-support/make-darwin-bundle/default.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/build-support/make-darwin-bundle/default.nix b/pkgs/build-support/make-darwin-bundle/default.nix index 60a89aa3a188..92eee48300b9 100644 --- a/pkgs/build-support/make-darwin-bundle/default.nix +++ b/pkgs/build-support/make-darwin-bundle/default.nix @@ -12,14 +12,16 @@ writeShellScript "make-darwin-bundle-${name}" ('' function makeDarwinBundlePhase() { - mkdir -p "${!outputBin}/Applications/${name}.app/Contents/MacOS" - mkdir -p "${!outputBin}/Applications/${name}.app/Contents/Resources" + mkdir -p "''${!outputBin}/Applications/${name}.app/Contents/MacOS" + mkdir -p "''${!outputBin}/Applications/${name}.app/Contents/Resources" if [ -n "${icon}" ]; then - ln -s "${icon}" "${!outputBin}/Applications/${name}.app/Contents/Resources" + ln -s "${icon}" \ + "''${!outputBin}/Applications/${name}.app/Contents/Resources" fi - ${writeDarwinBundle}/bin/write-darwin-bundle "${!outputBin}" "${name}" "${exec}" + ${writeDarwinBundle}/bin/write-darwin-bundle "''${!outputBin}" "${name}" \ + "${exec}" } preDistPhases+=" makeDarwinBundlePhase" From 783eaf99809201a1e9cd70a4cfd89568b1830d42 Mon Sep 17 00:00:00 2001 From: toonn Date: Fri, 11 Mar 2022 22:41:12 +0100 Subject: [PATCH 3/3] make-darwin-bundle: Prefer long lines to splitting --- pkgs/build-support/make-darwin-bundle/default.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/build-support/make-darwin-bundle/default.nix b/pkgs/build-support/make-darwin-bundle/default.nix index 92eee48300b9..52dd54b0b2c4 100644 --- a/pkgs/build-support/make-darwin-bundle/default.nix +++ b/pkgs/build-support/make-darwin-bundle/default.nix @@ -16,12 +16,10 @@ writeShellScript "make-darwin-bundle-${name}" ('' mkdir -p "''${!outputBin}/Applications/${name}.app/Contents/Resources" if [ -n "${icon}" ]; then - ln -s "${icon}" \ - "''${!outputBin}/Applications/${name}.app/Contents/Resources" + ln -s "${icon}" "''${!outputBin}/Applications/${name}.app/Contents/Resources" fi - ${writeDarwinBundle}/bin/write-darwin-bundle "''${!outputBin}" "${name}" \ - "${exec}" + ${writeDarwinBundle}/bin/write-darwin-bundle "''${!outputBin}" "${name}" "${exec}" } preDistPhases+=" makeDarwinBundlePhase"