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 1/3] 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 From 5e85168d8f6d66b33337db895540f05ace7ab08d Mon Sep 17 00:00:00 2001 From: dish Date: Sat, 24 Jan 2026 17:02:21 -0500 Subject: [PATCH 2/3] equibop: 3.1.4 -> 3.1.6 electron-dist changes copied from https://github.com/NixOS/nixpkgs/pull/476347 Icon changes from https://github.com/NixOS/nixpkgs/issues/453095 --- pkgs/by-name/eq/equibop/node-modules.nix | 2 +- pkgs/by-name/eq/equibop/package.nix | 32 +++++++++++++++++------- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/eq/equibop/node-modules.nix b/pkgs/by-name/eq/equibop/node-modules.nix index ceaebc7a209b..6122ab9afe84 100644 --- a/pkgs/by-name/eq/equibop/node-modules.nix +++ b/pkgs/by-name/eq/equibop/node-modules.nix @@ -48,7 +48,7 @@ stdenvNoCC.mkDerivation { runHook postInstall ''; - outputHash = "sha256-xo8potmx1DPKk9btNnYB/j9up3yKgAX+XC0iCn82jL8="; + outputHash = "sha256-D7+sX7LHyHoaJxfEtHpov3TXNUifw2C6yTG1q7fNRBQ="; outputHashAlgo = "sha256"; outputHashMode = "recursive"; } diff --git a/pkgs/by-name/eq/equibop/package.nix b/pkgs/by-name/eq/equibop/package.nix index 832df6b3606d..a4dafe9fceb3 100644 --- a/pkgs/by-name/eq/equibop/package.nix +++ b/pkgs/by-name/eq/equibop/package.nix @@ -7,7 +7,7 @@ makeDesktopItem, copyDesktopItems, electron, - libicns, + python3Packages, pipewire, libpulseaudio, autoPatchelfHook, @@ -18,18 +18,18 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "equibop"; - version = "3.1.4"; + version = "3.1.6"; src = fetchFromGitHub { owner = "Equicord"; repo = "Equibop"; tag = "v${finalAttrs.version}"; - hash = "sha256-ASU2a4CtlvglHWzv0AASuEWeycfBfSpi+ZuHsu6K0ko="; + hash = "sha256-apxRd0ak89K+hCzNLdstdhFWLNST2Afw96rX3xCzT04="; }; postPatch = '' substituteInPlace scripts/build/build.mts \ - --replace-fail 'const gitHash = execSync("git rev-parse HEAD", { encoding: "utf-8" }).trim();' 'const gitHash = "${lib.fakeHash}"' + --replace-fail 'gitHash = execSync("git rev-parse HEAD", { encoding: "utf-8" }).trim();' 'gitHash = "${lib.fakeHash}"' # disable auto updates substituteInPlace src/main/updater.ts \ @@ -66,6 +66,17 @@ stdenv.mkDerivation (finalAttrs: { runHook postConfigure ''; + # electron builds must be writable to support electron fuses + preBuild = + lib.optionalString stdenv.hostPlatform.isDarwin '' + cp -r ${electron.dist}/Electron.app . + chmod -R u+w Electron.app + '' + + lib.optionalString stdenv.hostPlatform.isLinux '' + cp -r ${electron.dist} electron-dist + chmod -R u+w electron-dist + ''; + buildPhase = '' runHook preBuild @@ -76,7 +87,7 @@ stdenv.mkDerivation (finalAttrs: { # 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.electronDist=${electron.dist} \ + -c.electronDist=${if stdenv.hostPlatform.isDarwin then "." else "electron-dist"} \ -c.electronVersion=${electron.version} \ -c.npmRebuild=false @@ -85,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: { postBuild = '' pushd build - ${libicns}/bin/icns2png -x icon.icns + ${lib.getExe' python3Packages.icnsutil "icnsutil"} e icon.icns popd ''; @@ -94,11 +105,14 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p $out/opt/Equibop cp -r dist/*unpacked/resources $out/opt/Equibop/ - for file in build/icon_*x32.png; do - file_suffix=''${file//build\/icon_} - install -Dm0644 $file $out/share/icons/hicolor/''${file_suffix//x32.png}/apps/equibop.png + for file in build/icon.icns.export/*.png; do + base=''${file##*/} + size=''${base/x*/} + install -Dm0644 $file $out/share/icons/hicolor/''${size}x''${size}/apps/equibop.png done + install -Dm0644 build/icon.svg $out/share/icons/hicolor/scalable/apps/equibop.svg + runHook postInstall ''; From 2cc2a9c12389931662d4b5368ff800dfafbb7aef Mon Sep 17 00:00:00 2001 From: Rexiel Scarlet <37258415+Rexcrazy804@users.noreply.github.com> Date: Sun, 25 Jan 2026 10:21:34 +0400 Subject: [PATCH 3/3] equibop: 3.1.6 -> 3.1.7 --- pkgs/by-name/eq/equibop/node-modules.nix | 2 +- pkgs/by-name/eq/equibop/package.nix | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/eq/equibop/node-modules.nix b/pkgs/by-name/eq/equibop/node-modules.nix index 6122ab9afe84..1f804de9617a 100644 --- a/pkgs/by-name/eq/equibop/node-modules.nix +++ b/pkgs/by-name/eq/equibop/node-modules.nix @@ -48,7 +48,7 @@ stdenvNoCC.mkDerivation { runHook postInstall ''; - outputHash = "sha256-D7+sX7LHyHoaJxfEtHpov3TXNUifw2C6yTG1q7fNRBQ="; + outputHash = "sha256-YqUAP11oSxfKifa8QL4VXGCWV5xGG2+vk60f4NdIXIA="; outputHashAlgo = "sha256"; outputHashMode = "recursive"; } diff --git a/pkgs/by-name/eq/equibop/package.nix b/pkgs/by-name/eq/equibop/package.nix index a4dafe9fceb3..51163aad809b 100644 --- a/pkgs/by-name/eq/equibop/package.nix +++ b/pkgs/by-name/eq/equibop/package.nix @@ -18,18 +18,18 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "equibop"; - version = "3.1.6"; + version = "3.1.7"; src = fetchFromGitHub { owner = "Equicord"; repo = "Equibop"; tag = "v${finalAttrs.version}"; - hash = "sha256-apxRd0ak89K+hCzNLdstdhFWLNST2Afw96rX3xCzT04="; + hash = "sha256-AzXBANUcm/DYYkNlO7q++/Dx826o5Hg/1cYJ84rMY0U="; }; postPatch = '' substituteInPlace scripts/build/build.mts \ - --replace-fail 'gitHash = execSync("git rev-parse HEAD", { encoding: "utf-8" }).trim();' 'gitHash = "${lib.fakeHash}"' + --replace-fail 'gitHash = execSync("git rev-parse HEAD", { encoding: "utf-8" }).trim();' 'gitHash = "${finalAttrs.src.hash}"' # disable auto updates substituteInPlace src/main/updater.ts \