diff --git a/pkgs/by-name/el/electron-fiddle/dont-use-initial-releases-json.patch b/pkgs/by-name/el/electron-fiddle/dont-use-initial-releases-json.patch new file mode 100644 index 0000000000000..fce56ea3ef875 --- /dev/null +++ b/pkgs/by-name/el/electron-fiddle/dont-use-initial-releases-json.patch @@ -0,0 +1,32 @@ +diff --git a/src/main/versions.ts b/src/main/versions.ts +index 501ba1a..0c11ff7 100644 +--- a/src/main/versions.ts ++++ b/src/main/versions.ts +@@ -5,7 +5,6 @@ import { IpcMainInvokeEvent, app } from 'electron'; + import fs from 'fs-extra'; + + import { ipcMainManager } from './ipc'; +-import releases from '../../static/releases.json'; + import { InstallState, Version } from '../interfaces'; + import { IpcEvents } from '../ipc-events'; + +@@ -72,7 +71,6 @@ export async function fetchVersions(): Promise { + + export async function setupVersions() { + knownVersions = await ElectronVersions.create({ +- initialVersions: releases, + paths: { + versionsCache: path.join(app.getPath('userData'), 'releases.json'), + }, +diff --git a/tools/fetch-releases.ts b/tools/fetch-releases.ts +index 744b814..94fd971 100644 +--- a/tools/fetch-releases.ts ++++ b/tools/fetch-releases.ts +@@ -6,6 +6,7 @@ import { ElectronVersions } from '@electron/fiddle-core'; + const file = path.join(__dirname, '..', 'static', 'releases.json'); + + export async function populateReleases() { ++ return; + const elves = await ElectronVersions.create({ ignoreCache: true }); + const releases = elves.versions.map(({ version }) => + elves.getReleaseInfo(version), diff --git a/pkgs/by-name/el/electron-fiddle/package.nix b/pkgs/by-name/el/electron-fiddle/package.nix index 0848072bc5eb9..1670b582f8770 100644 --- a/pkgs/by-name/el/electron-fiddle/package.nix +++ b/pkgs/by-name/el/electron-fiddle/package.nix @@ -1,13 +1,12 @@ { buildFHSEnv, - electron_33, + electron_36, fetchFromGitHub, fetchYarnDeps, - fetchurl, git, lib, makeDesktopItem, - nodejs_20, + nodejs, stdenvNoCC, util-linux, yarnBuildHook, @@ -17,32 +16,26 @@ let pname = "electron-fiddle"; - version = "0.36.5"; - electron = electron_33; - nodejs = nodejs_20; + version = "0.37.2"; src = fetchFromGitHub { owner = "electron"; repo = "fiddle"; tag = "v${version}"; - hash = "sha256-Fo7rXnufJ26WijnplWswdeCGJitkvTDboOggUfrz1Hw="; + hash = "sha256-e9PLgkqWBNLBw7uuNpPluOQ6+aGLYQLyTzcLa+LMOzs="; }; - # As of https://github.com/electron/fiddle/pull/1316 this is fetched - # from the network and has no stable hash. Grab an old version from - # the repository. - releasesJson = fetchurl { - url = "https://raw.githubusercontent.com/electron/fiddle/v0.32.4~18/static/releases.json"; - hash = "sha256-1sxd3eJ6/WjXS6XQbrgKUTNUmrhuc1dAvy+VAivGErg="; - }; + electron = electron_36; unwrapped = stdenvNoCC.mkDerivation { pname = "${pname}-unwrapped"; inherit version src; + patches = [ ./dont-use-initial-releases-json.patch ]; + offlineCache = fetchYarnDeps { - yarnLock = "${src}/yarn.lock"; - hash = "sha256-eZ/g2cP6M0zWhF14go0sIC+UuzTo9Gl4KsPBGzJU3FQ="; + inherit src; + hash = "sha256-mB8WG6tX204u6AJ8qLbWrA+pSN3oDihHqj0t3bWcuAI="; }; nativeBuildInputs = [ @@ -67,9 +60,7 @@ let # force @electron/packager to use our electron instead of downloading it, even if it is a different version substituteInPlace node_modules/@electron/packager/dist/packager.js \ - --replace-fail 'await this.getElectronZipPath(downloadOpts)' '"electron.zip"' - - ln -s ${releasesJson} static/releases.json + --replace-fail 'await this.getElectronZipPath(downloadOpts)' '"electron.zip"' ''; yarnBuildScript = "package"; @@ -105,7 +96,7 @@ let in buildFHSEnv { inherit pname version; - runScript = "${electron}/bin/electron ${unwrapped}/lib/electron-fiddle/resources/app.asar"; + runScript = "${lib.getExe electron} ${unwrapped}/lib/electron-fiddle/resources/app.asar"; extraInstallCommands = '' mkdir -p "$out/share/icons/hicolor/scalable/apps"