diff --git a/pkgs/applications/virtualization/podman-desktop/default.nix b/pkgs/applications/virtualization/podman-desktop/default.nix index ce7d993d39de..cfd63ba72655 100644 --- a/pkgs/applications/virtualization/podman-desktop/default.nix +++ b/pkgs/applications/virtualization/podman-desktop/default.nix @@ -1,31 +1,40 @@ { lib , stdenv , fetchFromGitHub +, applyPatches , fetchYarnDeps , yarn , fixup-yarn-lock , nodejs , makeWrapper , copyDesktopItems -, desktopToDarwinBundle , electron , makeDesktopItem +, xcbuild +, autoSignDarwinBinariesHook }: stdenv.mkDerivation (finalAttrs: { pname = "podman-desktop"; - version = "0.12.0"; + version = "1.12.0"; - src = fetchFromGitHub { - owner = "containers"; - repo = "podman-desktop"; - rev = "v${finalAttrs.version}"; - sha256 = "sha256-gEjcI+bfETYZB/pHDXRcNxNVDsbwuqQL1E22fMkIJHI="; + src = applyPatches { + src = fetchFromGitHub { + owner = "containers"; + repo = "podman-desktop"; + rev = "v${finalAttrs.version}"; + sha256 = "sha256-AdiomKM2RfJQKnyrcsdh8FtX7NuAj3g0KQ3pzy76gYI="; + }; + # fix handling of Unix epoch timestamps for zip header, https://github.com/cthackers/adm-zip/pull/518 + # apply the patch early so that fetchYarnDeps can pull the patched yarn.lock + patches = [ + ./patches/0001-chore-deps-bump-adm-zip-from-0.5.14-to-0.5.15.patch + ]; }; offlineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/yarn.lock"; - sha256 = "sha256-x0hqNxi6r1i3vBe1tJQl+Oht2St9VIH3Eq27MZLkojA="; + sha256 = "sha256-y3ftK2SrysaWoHKEUeTF7aFp3yKmKcdVEJtOOKLr2G0="; }; patches = [ @@ -49,10 +58,11 @@ stdenv.mkDerivation (finalAttrs: { fixup-yarn-lock nodejs makeWrapper + ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ copyDesktopItems - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - desktopToDarwinBundle + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + xcbuild.xcrun + autoSignDarwinBinariesHook ]; configurePhase = '' @@ -71,9 +81,17 @@ stdenv.mkDerivation (finalAttrs: { runHook preBuild yarn --offline run build + + cp -r ${electron.dist} electron-dist + chmod -R u+w electron-dist + '' + lib.optionalString stdenv.hostPlatform.isDarwin '' + # Disable code signing during build on macOS. + export CSC_IDENTITY_AUTO_DISCOVERY=false + sed -i "/afterSign/d" .electron-builder.config.cjs + '' + '' yarn --offline run electron-builder --dir \ --config .electron-builder.config.cjs \ - -c.electronDist=${electron.dist} \ + -c.electronDist=electron-dist \ -c.electronVersion=${electron.version} runHook postBuild @@ -83,6 +101,13 @@ stdenv.mkDerivation (finalAttrs: { runHook preInstall mkdir -p "$out/share/lib/podman-desktop" + '' + lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir -p $out/{Applications,bin} + mv dist/mac*/Podman\ Desktop.app $out/Applications + ln -s $out/Applications/Podman\ Desktop.app/Contents/Resources "$out/share/lib/podman-desktop/resources" + + makeWrapper "$out/Applications/Podman Desktop.app/Contents/MacOS/Podman Desktop" $out/bin/podman-desktop + '' + lib.optionalString (!stdenv.hostPlatform.isDarwin) '' cp -r dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/podman-desktop" install -Dm644 buildResources/icon.svg "$out/share/icons/hicolor/scalable/apps/podman-desktop.svg" @@ -91,6 +116,7 @@ stdenv.mkDerivation (finalAttrs: { --add-flags "$out/share/lib/podman-desktop/resources/app.asar" \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ --inherit-argv0 + '' + '' runHook postInstall ''; diff --git a/pkgs/applications/virtualization/podman-desktop/patches/0001-chore-deps-bump-adm-zip-from-0.5.14-to-0.5.15.patch b/pkgs/applications/virtualization/podman-desktop/patches/0001-chore-deps-bump-adm-zip-from-0.5.14-to-0.5.15.patch new file mode 100644 index 000000000000..3704df01d380 --- /dev/null +++ b/pkgs/applications/virtualization/podman-desktop/patches/0001-chore-deps-bump-adm-zip-from-0.5.14-to-0.5.15.patch @@ -0,0 +1,170 @@ +From 4712fa5535ff32fccc24743c67708a34c8d621b3 Mon Sep 17 00:00:00 2001 +From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> +Date: Mon, 12 Aug 2024 06:11:35 +0000 +Subject: [PATCH] chore(deps): bump adm-zip from 0.5.14 to 0.5.15 + +Bumps [adm-zip](https://github.com/cthackers/adm-zip) from 0.5.14 to 0.5.15. +- [Release notes](https://github.com/cthackers/adm-zip/releases) +- [Changelog](https://github.com/cthackers/adm-zip/blob/master/history.md) +- [Commits](https://github.com/cthackers/adm-zip/compare/v0.5.14...v0.5.15) + +--- +updated-dependencies: +- dependency-name: adm-zip + dependency-type: direct:production + update-type: version-update:semver-patch +... + +Signed-off-by: dependabot[bot] +--- + extensions/compose/package.json | 2 +- + extensions/docker/package.json | 2 +- + extensions/kind/package.json | 2 +- + extensions/kube-context/package.json | 2 +- + extensions/kubectl-cli/package.json | 2 +- + extensions/lima/package.json | 2 +- + extensions/podman/package.json | 2 +- + extensions/registries/package.json | 2 +- + package.json | 2 +- + yarn.lock | 8 ++++---- + 10 files changed, 13 insertions(+), 13 deletions(-) + +diff --git a/extensions/compose/package.json b/extensions/compose/package.json +index f9e706770b..f1837ef285 100644 +--- a/extensions/compose/package.json ++++ b/extensions/compose/package.json +@@ -157,7 +157,7 @@ + "devDependencies": { + "@podman-desktop/api": "^0.0.1", + "@types/mustache": "^4.2.5", +- "adm-zip": "^0.5.14", ++ "adm-zip": "^0.5.15", + "mkdirp": "^3.0.1", + "vite": "^5.3.5", + "vitest": "^1.6.0" +diff --git a/extensions/docker/package.json b/extensions/docker/package.json +index 148c792c4b..e762cdc8b7 100644 +--- a/extensions/docker/package.json ++++ b/extensions/docker/package.json +@@ -20,7 +20,7 @@ + "@podman-desktop/api": "^0.0.1" + }, + "devDependencies": { +- "adm-zip": "^0.5.14", ++ "adm-zip": "^0.5.15", + "@podman-desktop/api": "^0.0.1", + "mkdirp": "^3.0.1", + "vite": "^5.3.5", +diff --git a/extensions/kind/package.json b/extensions/kind/package.json +index 2a3aebc146..8f62a0c314 100644 +--- a/extensions/kind/package.json ++++ b/extensions/kind/package.json +@@ -108,7 +108,7 @@ + "yaml": "^2.5.0" + }, + "devDependencies": { +- "adm-zip": "^0.5.14", ++ "adm-zip": "^0.5.15", + "mkdirp": "^3.0.1", + "tmp-promise": "^3.0.3", + "tsx": "^4.17.0", +diff --git a/extensions/kube-context/package.json b/extensions/kube-context/package.json +index cc783d1270..a9ce1df721 100644 +--- a/extensions/kube-context/package.json ++++ b/extensions/kube-context/package.json +@@ -42,7 +42,7 @@ + "js-yaml": "^4.1.0" + }, + "devDependencies": { +- "adm-zip": "^0.5.14", ++ "adm-zip": "^0.5.15", + "@types/js-yaml": "^4.0.9", + "mkdirp": "^3.0.1", + "vite": "^5.3.5", +diff --git a/extensions/kubectl-cli/package.json b/extensions/kubectl-cli/package.json +index 4ad90d77ac..252d9e630e 100644 +--- a/extensions/kubectl-cli/package.json ++++ b/extensions/kubectl-cli/package.json +@@ -152,7 +152,7 @@ + }, + "devDependencies": { + "@types/semver": "^7.5.8", +- "adm-zip": "^0.5.14", ++ "adm-zip": "^0.5.15", + "byline": "^5.0.0", + "copyfiles": "^2.4.1", + "mkdirp": "^3.0.1", +diff --git a/extensions/lima/package.json b/extensions/lima/package.json +index 375426f6ba..4203715800 100644 +--- a/extensions/lima/package.json ++++ b/extensions/lima/package.json +@@ -67,7 +67,7 @@ + "@podman-desktop/api": "^0.0.1" + }, + "devDependencies": { +- "adm-zip": "^0.5.14", ++ "adm-zip": "^0.5.15", + "mkdirp": "^3.0.1", + "vite": "^5.3.5", + "vitest": "^1.6.0", +diff --git a/extensions/podman/package.json b/extensions/podman/package.json +index 1c2491d173..8456532d62 100644 +--- a/extensions/podman/package.json ++++ b/extensions/podman/package.json +@@ -391,7 +391,7 @@ + "devDependencies": { + "@types/ssh2": "^1.15.0", + "@types/sshpk": "^1.17.4", +- "adm-zip": "^0.5.14", ++ "adm-zip": "^0.5.15", + "hasha": "^6.0.0", + "mkdirp": "^3.0.1", + "nock": "^14.0.0-beta.7", +diff --git a/extensions/registries/package.json b/extensions/registries/package.json +index 6b2fa237f9..36051db6f9 100644 +--- a/extensions/registries/package.json ++++ b/extensions/registries/package.json +@@ -21,7 +21,7 @@ + "@podman-desktop/api": "^0.0.1" + }, + "devDependencies": { +- "adm-zip": "^0.5.14", ++ "adm-zip": "^0.5.15", + "mkdirp": "^3.0.1", + "vite": "^5.3.5", + "vitest": "^1.6.0" +diff --git a/package.json b/package.json +index f14bca5363..8c3f767ecf 100644 +--- a/package.json ++++ b/package.json +@@ -177,7 +177,7 @@ + "@segment/analytics-node": "^2.1.2", + "@types/semver": "^7.5.8", + "@types/stream-json": "^1.7.7", +- "adm-zip": "^0.5.14", ++ "adm-zip": "^0.5.15", + "check-disk-space": "^3.4.0", + "chokidar": "^3.6.0", + "compare-versions": "^6.1.1", +diff --git a/yarn.lock b/yarn.lock +index 023b8df270..81f672d028 100644 +--- a/yarn.lock ++++ b/yarn.lock +@@ -7325,10 +7325,10 @@ address@^1.0.1, address@^1.1.2: + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +-adm-zip@^0.5.14: +- version "0.5.14" +- resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.5.14.tgz#2c557c0bf12af4311cf6d32970f4060cf8133b2a" +- integrity sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg== ++adm-zip@^0.5.15: ++ version "0.5.15" ++ resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.5.15.tgz#c2c9b3d4f3b1c911e72b2394e84fd91bcc81e08e" ++ integrity sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw== + + agent-base@6: + version "6.0.2" +-- +2.46.0 + diff --git a/pkgs/applications/virtualization/podman-desktop/patches/extension-no-download-podman.patch b/pkgs/applications/virtualization/podman-desktop/patches/extension-no-download-podman.patch index 89633b57290e..25574c019f28 100644 --- a/pkgs/applications/virtualization/podman-desktop/patches/extension-no-download-podman.patch +++ b/pkgs/applications/virtualization/podman-desktop/patches/extension-no-download-podman.patch @@ -1,13 +1,13 @@ diff --git a/extensions/podman/package.json b/extensions/podman/package.json -index 5f86bbe9..92c0ef3b 100644 +index 3c827750e0..ce7b79d119 100644 --- a/extensions/podman/package.json +++ b/extensions/podman/package.json -@@ -86,7 +86,7 @@ +@@ -376,7 +376,7 @@ } }, "scripts": { -- "build": "rollup --bundleConfigAsCjs --config rollup.config.js --compact --environment BUILD:production && npx ts-node ./scripts/download.ts && node ./scripts/build.js", -+ "build": "rollup --bundleConfigAsCjs --config rollup.config.js --compact --environment BUILD:production && node ./scripts/build.js", - "watch": "rollup --bundleConfigAsCjs --config rollup.config.js -w", - "test": "vitest run --passWithNoTests" - }, +- "build": "vite build && tsx ./scripts/download.ts && node ./scripts/build.cjs", ++ "build": "vite build && node ./scripts/build.cjs", + "test": "vitest run --coverage --passWithNoTests", + "test:watch": "vitest watch --coverage --passWithNoTests", + "watch": "vite build -w" diff --git a/pkgs/applications/virtualization/podman-desktop/patches/fix-yarn-lock-deterministic.patch b/pkgs/applications/virtualization/podman-desktop/patches/fix-yarn-lock-deterministic.patch index 5b69f5e4e78d..357534683d99 100644 --- a/pkgs/applications/virtualization/podman-desktop/patches/fix-yarn-lock-deterministic.patch +++ b/pkgs/applications/virtualization/podman-desktop/patches/fix-yarn-lock-deterministic.patch @@ -1,13 +1,13 @@ diff --git a/yarn.lock b/yarn.lock -index ae340d04..5acc3fed 100644 +index 0a3e336a2c..a39e473631 100644 --- a/yarn.lock +++ b/yarn.lock -@@ -12753,7 +12753,7 @@ ws@^7.3.1: - resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== +@@ -17736,7 +17736,7 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.1: + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== --ws@^8.11.0, ws@^8.4.2: -+ws@^8.11.0, ws@^8.12.0, ws@^8.4.2: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" - integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== +-semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.1, semver@^7.6.2, semver@^7.6.3: ++semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.5.8, semver@^7.6.0, semver@^7.6.1, semver@^7.6.2, semver@^7.6.3: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b5d6cac78946..49030e570006 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11418,7 +11418,9 @@ with pkgs; podman-compose = python3Packages.callPackage ../applications/virtualization/podman-compose { }; - podman-desktop = callPackage ../applications/virtualization/podman-desktop {}; + podman-desktop = callPackage ../applications/virtualization/podman-desktop { + inherit (darwin) autoSignDarwinBinariesHook; + }; pods = callPackage ../applications/virtualization/pods { };