electron-fiddle: 0.32.6 → 0.36.5 (#385681)

This commit is contained in:
Martin Weinelt
2025-03-01 17:43:24 +01:00
committed by GitHub
+40 -39
View File
@@ -1,31 +1,31 @@
{
buildFHSEnv,
electron_24,
electron_33,
fetchFromGitHub,
fetchYarnDeps,
fetchurl,
fixup-yarn-lock,
git,
lib,
makeDesktopItem,
nodejs_18,
nodejs_20,
stdenvNoCC,
util-linux,
yarn,
yarnBuildHook,
yarnConfigHook,
zip,
}:
let
pname = "electron-fiddle";
version = "0.32.6";
electron = electron_24;
nodejs = nodejs_18;
version = "0.36.5";
electron = electron_33;
nodejs = nodejs_20;
src = fetchFromGitHub {
owner = "electron";
repo = "fiddle";
rev = "v${version}";
hash = "sha256-Iuss2xwts1aWy2rKYG7J2EvFdH8Bbedn/uZG2bi9UHw=";
tag = "v${version}";
hash = "sha256-Fo7rXnufJ26WijnplWswdeCGJitkvTDboOggUfrz1Hw=";
};
# As of https://github.com/electron/fiddle/pull/1316 this is fetched
@@ -36,57 +36,53 @@ let
hash = "sha256-1sxd3eJ6/WjXS6XQbrgKUTNUmrhuc1dAvy+VAivGErg=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
hash = "sha256-dwhwUWwv6RYKEMdhRBvKVXvM8n1r+Qo0D3/uFsWIOpw=";
};
electronDummyMirror = "https://electron.invalid/";
electronDummyDir = "nix";
electronDummyFilename = builtins.baseNameOf (builtins.head (electron.src.urls));
electronDummyHash = builtins.hashString "sha256" "${electronDummyMirror}${electronDummyDir}";
unwrapped = stdenvNoCC.mkDerivation {
pname = "${pname}-unwrapped";
inherit version src;
offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
hash = "sha256-eZ/g2cP6M0zWhF14go0sIC+UuzTo9Gl4KsPBGzJU3FQ=";
};
nativeBuildInputs = [
fixup-yarn-lock
git
nodejs
util-linux
yarn
yarnBuildHook
yarnConfigHook
zip
];
configurePhase = ''
export HOME=$TMPDIR
fixup-yarn-lock yarn.lock
yarn config --offline set yarn-offline-mirror ${offlineCache}
yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules
preBuild = ''
# electron files need to be writable on Darwin
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
mkdir -p ~/.cache/electron/${electronDummyHash}
cp -ra '${electron.dist}' "$TMPDIR/electron"
chmod -R u+w "$TMPDIR/electron"
(cd "$TMPDIR/electron" && zip -0Xr ~/.cache/electron/${electronDummyHash}/${electronDummyFilename} .)
pushd electron-dist
zip -0Xqr ../electron.zip .
popd
rm -r electron-dist
# 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
'';
buildPhase = ''
ELECTRON_CUSTOM_VERSION='${electron.version}' \
ELECTRON_MIRROR='${electronDummyMirror}' \
ELECTRON_CUSTOM_DIR='${electronDummyDir}' \
ELECTRON_CUSTOM_FILENAME='${electronDummyFilename}' \
yarn --offline run package
'';
yarnBuildScript = "package";
installPhase = ''
runHook preInstall
mkdir -p "$out/lib/electron-fiddle/resources"
cp "out/Electron Fiddle-"*/resources/app.asar "$out/lib/electron-fiddle/resources/"
mkdir -p "$out/share/icons/hicolor/scalable/apps"
cp assets/icons/fiddle.svg "$out/share/icons/hicolor/scalable/apps/electron-fiddle.svg"
runHook postInstall
'';
};
@@ -135,6 +131,7 @@ buildFHSEnv {
glib
gtk3
libdrm
libglvnd
libnotify
libxkbcommon
libgbm
@@ -181,7 +178,11 @@ buildFHSEnv {
description = "Easiest way to get started with Electron";
homepage = "https://www.electronjs.org/fiddle";
license = licenses.mit;
maintainers = with maintainers; [ andersk ];
mainProgram = "electron-fiddle";
maintainers = with maintainers; [
andersk
tomasajt
];
platforms = electron.meta.platforms;
};
}