From 8b1012d0df6c134ce9c1991b1fa398be85a87b42 Mon Sep 17 00:00:00 2001 From: Rexiel Scarlet <37258415+Rexcrazy804@users.noreply.github.com> Date: Wed, 29 Oct 2025 16:25:52 +0400 Subject: [PATCH] equibop: 2.1.7 -> 3.1.4 --- .../eq/equibop/disable_update_checking.patch | 15 ---- pkgs/by-name/eq/equibop/node-modules.nix | 54 ++++++++++++++ pkgs/by-name/eq/equibop/package.nix | 73 ++++++++++--------- 3 files changed, 93 insertions(+), 49 deletions(-) delete mode 100644 pkgs/by-name/eq/equibop/disable_update_checking.patch create mode 100644 pkgs/by-name/eq/equibop/node-modules.nix diff --git a/pkgs/by-name/eq/equibop/disable_update_checking.patch b/pkgs/by-name/eq/equibop/disable_update_checking.patch deleted file mode 100644 index c074a821e463..000000000000 --- a/pkgs/by-name/eq/equibop/disable_update_checking.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git i/src/main/index.ts w/src/main/index.ts -index 23ea0d6..1ef465f 100644 ---- i/src/main/index.ts -+++ w/src/main/index.ts -@@ -22,7 +22,9 @@ import { isDeckGameMode } from "./utils/steamOS"; - - if (!IS_DEV) { -- autoUpdater.checkForUpdatesAndNotify(); -+ console.log("Update checking is disabled. Skipping..."); -+ // autoUpdater.checkForUpdatesAndNotify(); -+ - } - - console.log("Equibop v" + app.getVersion()); - diff --git a/pkgs/by-name/eq/equibop/node-modules.nix b/pkgs/by-name/eq/equibop/node-modules.nix new file mode 100644 index 000000000000..ceaebc7a209b --- /dev/null +++ b/pkgs/by-name/eq/equibop/node-modules.nix @@ -0,0 +1,54 @@ +# fixed output derrivation adapted from +# https://github.com/NixOS/nixpkgs/blob/28c3f83a9a77e3ada57afb71cc4052d2c435597a/pkgs/by-name/op/opencode/package.nix#L59-L122 +{ + lib, + stdenvNoCC, + equibop, + bun, + writableTmpDirAsHomeHook, +}: +stdenvNoCC.mkDerivation { + inherit (equibop) version src; + pname = equibop.pname + "-modules"; + + impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ + "GIT_PROXY_COMMAND" + "SOCKS_SERVER" + ]; + + nativeBuildInputs = [ + bun + writableTmpDirAsHomeHook + ]; + + dontConfigure = true; + dontFixup = true; + + buildPhase = '' + runHook preBuild + + export BUN_INSTALL_CACHE_DIR=$(mktemp -d) + + bun install \ + --filter=equibop \ + --force \ + --frozen-lockfile \ + --ignore-scripts \ + --linker=hoisted \ + --no-progress + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + cp -R ./node_modules $out + + runHook postInstall + ''; + + outputHash = "sha256-xo8potmx1DPKk9btNnYB/j9up3yKgAX+XC0iCn82jL8="; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; +} diff --git a/pkgs/by-name/eq/equibop/package.nix b/pkgs/by-name/eq/equibop/package.nix index ebf7288b7524..832df6b3606d 100644 --- a/pkgs/by-name/eq/equibop/package.nix +++ b/pkgs/by-name/eq/equibop/package.nix @@ -1,52 +1,46 @@ { lib, stdenv, + callPackage, fetchFromGitHub, - replaceVars, makeWrapper, makeDesktopItem, copyDesktopItems, - equicord, electron, libicns, pipewire, libpulseaudio, autoPatchelfHook, - pnpm_10, - fetchPnpmDeps, - pnpmConfigHook, + bun, nodejs, - nix-update-script, withTTS ? true, withMiddleClickScroll ? false, }: stdenv.mkDerivation (finalAttrs: { pname = "equibop"; - version = "2.1.7"; + version = "3.1.4"; src = fetchFromGitHub { owner = "Equicord"; repo = "Equibop"; tag = "v${finalAttrs.version}"; - hash = "sha256-wvg06YSQOZvP/NHl3WPfnI9F0+KN0cJ2CBwaZD8Xpfk="; + hash = "sha256-ASU2a4CtlvglHWzv0AASuEWeycfBfSpi+ZuHsu6K0ko="; }; - pnpmDeps = fetchPnpmDeps { - inherit (finalAttrs) - pname - version - src - patches - ; - pnpm = pnpm_10; - fetcherVersion = 1; - hash = "sha256-HQxQIMbj2xsxD1jwj/itfAW6KHxX81Eu60ouzxQDu44="; - }; + postPatch = '' + substituteInPlace scripts/build/build.mts \ + --replace-fail 'const gitHash = execSync("git rev-parse HEAD", { encoding: "utf-8" }).trim();' 'const gitHash = "${lib.fakeHash}"' + + # disable auto updates + substituteInPlace src/main/updater.ts \ + --replace-fail 'const isOutdated = autoUpdater.checkForUpdates().then(res => Boolean(res?.isUpdateAvailable));' 'const isOutdated = false;' + ''; + + node-modules = callPackage ./node-modules.nix { }; nativeBuildInputs = [ + bun nodejs - pnpmConfigHook - pnpm_10 # XXX: Equibop *does not* ship venmic as a prebuilt node module. The package # seems to build with or without this hook, but I (NotAShelf) don't have the # time to test the consequences of removing this hook. Please open a pull @@ -64,23 +58,27 @@ stdenv.mkDerivation (finalAttrs: { (lib.getLib stdenv.cc.cc) ]; - patches = [ - ./disable_update_checking.patch - ]; + configurePhase = '' + runHook preConfigure - env = { - ELECTRON_SKIP_BINARY_DOWNLOAD = 1; - }; + cp -R ${finalAttrs.node-modules} node_modules + + runHook postConfigure + ''; buildPhase = '' runHook preBuild - pnpm build - pnpm exec electron-builder \ + bun run build + + bun run compileArrpc + + # can't run it via bunx / npx since fixupPhase was skipped for node_modules + node node_modules/electron-builder/out/cli/cli.js \ --dir \ - -c.asarUnpack="**/*.node" \ -c.electronDist=${electron.dist} \ - -c.electronVersion=${electron.version} + -c.electronVersion=${electron.version} \ + -c.npmRebuild=false runHook postBuild ''; @@ -133,7 +131,13 @@ stdenv.mkDerivation (finalAttrs: { }; passthru = { - updateScript = nix-update-script { }; + # fails to update node-modules FOD :/ + # updateScript = nix-update-script { + # extraArgs = [ + # "--subpackage" + # "node-modules" + # ]; + # }; }; meta = { @@ -141,8 +145,9 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://github.com/Equicord/Equibop"; changelog = "https://github.com/Equicord/Equibop/releases/tag/v${finalAttrs.version}"; license = lib.licenses.gpl3Only; - maintainers = [ - lib.maintainers.NotAShelf + maintainers = with lib.maintainers; [ + NotAShelf + rexies ]; mainProgram = "equibop"; # I am not confident in my ability to support Darwin, please PR if this is important to you