From 78abe603afefa3f644000b0fe6bdc6eec11e37f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?PedroHLC=20=E2=98=AD?= Date: Fri, 1 Jul 2022 18:55:49 -0300 Subject: [PATCH] openasar: add unzip; remove autoupdater; unstable-2022-06-10 -> unstable-2022-06-27 --- .../instant-messengers/discord/darwin.nix | 4 +-- .../instant-messengers/discord/default.nix | 9 +++++-- .../instant-messengers/discord/linux.nix | 4 +-- .../instant-messengers/discord/openasar.nix | 26 ++++++++++++++++--- 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/discord/darwin.nix b/pkgs/applications/networking/instant-messengers/discord/darwin.nix index 494a7e6a4428..368b4572aa67 100644 --- a/pkgs/applications/networking/instant-messengers/discord/darwin.nix +++ b/pkgs/applications/networking/instant-messengers/discord/darwin.nix @@ -1,4 +1,4 @@ -{ pname, version, src, openasar, meta, stdenv, binaryName, desktopName, lib, undmg }: +{ pname, version, src, openasar, meta, stdenv, binaryName, desktopName, lib, undmg, withOpenASAR }: stdenv.mkDerivation { inherit pname version src meta; @@ -16,7 +16,7 @@ stdenv.mkDerivation { runHook postInstall ''; - postInstall = lib.strings.optionalString (openasar != null) '' + postInstall = lib.strings.optionalString withOpenASAR '' cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar ''; } diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix index 71606f2dcadd..f6e291ab7f3e 100644 --- a/pkgs/applications/networking/instant-messengers/discord/default.nix +++ b/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -62,10 +62,15 @@ let }; package = if stdenv.isLinux then ./linux.nix else ./darwin.nix; - openasar = if withOpenASAR then callPackage ./openasar.nix { } else null; + openasar = callPackage ./openasar.nix { }; packages = (builtins.mapAttrs - (_: value: callPackage package (value // { inherit src version openasar; meta = meta // { mainProgram = value.binaryName; }; })) + (_: value: callPackage package + (value // { + inherit src version openasar withOpenASAR; + meta = meta // { mainProgram = value.binaryName; }; + }) + ) { stable = rec { pname = "discord"; diff --git a/pkgs/applications/networking/instant-messengers/discord/linux.nix b/pkgs/applications/networking/instant-messengers/discord/linux.nix index 28c1d353ff61..a68414978b02 100644 --- a/pkgs/applications/networking/instant-messengers/discord/linux.nix +++ b/pkgs/applications/networking/instant-messengers/discord/linux.nix @@ -5,7 +5,7 @@ , libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes , libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss , pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript -, common-updater-scripts }: +, common-updater-scripts, withOpenASAR }: stdenv.mkDerivation rec { inherit pname version src meta; @@ -101,7 +101,7 @@ stdenv.mkDerivation rec { runHook postInstall ''; - postInstall = lib.strings.optionalString (openasar != null) '' + postInstall = lib.strings.optionalString withOpenASAR '' cp -f ${openasar} $out/opt/${binaryName}/resources/app.asar ''; diff --git a/pkgs/applications/networking/instant-messengers/discord/openasar.nix b/pkgs/applications/networking/instant-messengers/discord/openasar.nix index e378f490c0f4..ba4b5f0ffd4e 100644 --- a/pkgs/applications/networking/instant-messengers/discord/openasar.nix +++ b/pkgs/applications/networking/instant-messengers/discord/openasar.nix @@ -1,16 +1,34 @@ -{ lib, stdenv, fetchFromGitHub, nodejs, bash, nodePackages }: +{ lib, stdenv, fetchFromGitHub, nodejs, bash, nodePackages, unzip }: +let + # OpenAsar fails with default unzip, throwing "lchmod (file attributes) error: Operation not supported" + unzipFix = + if stdenv.isLinux then + unzip.overrideAttrs (oldAttrs: { + buildFlags = oldAttrs.buildFlags ++ [ "LOCAL_UNZIP=-DNO_LCHMOD" ]; + }) + else + unzip; +in stdenv.mkDerivation rec { - version = "unstable-2022-06-10"; pname = "openasar"; + version = "unstable-2022-06-27"; src = fetchFromGitHub { owner = "GooseMod"; repo = "OpenAsar"; - rev = "c6f2f5eb7827fea14cb4c54345af8ff6858c633a"; - sha256 = "m6e/WKGgkR8vjKcHSNdWE25MmDQM1Z3kgB24OJgbw/w="; + rev = "6f7505fb91a07035d3661a3a7bf68b3018ddfd82"; + sha256 = "2tb6OgYOnpryiyk7UH39sgzwtGJf9hNOpy74YqLI+Uk="; }; + postPatch = '' + # Hardcode unzip path + substituteInPlace ./src/updater/moduleUpdater.js \ + --replace \'unzip\' \'${unzipFix}/bin/unzip\' + # Remove auto-update feature + echo "module.exports = async () => log('AsarUpdate', 'Removed');" > ./src/asarUpdate.js + ''; + buildPhase = '' runHook preBuild