Loading pkgs/applications/networking/instant-messengers/discord/darwin.nix +56 −26 Original line number Diff line number Diff line { pname, version, src, meta, stdenv, binaryName, desktopName, lib, undmg, makeWrapper, writeScript, python3, runCommand , branch , withOpenASAR ? false, openasar , withVencord ? false, vencord }: { pname, version, src, meta, stdenv, binaryName, desktopName, lib, undmg, makeWrapper, writeScript, python3, runCommand, branch, withOpenASAR ? false, openasar, withVencord ? false, vencord, }: let disableBreakingUpdates = runCommand "disable-breaking-updates.py" disableBreakingUpdates = runCommand "disable-breaking-updates.py" { pythonInterpreter = "${python3.interpreter}"; configDirName = lib.toLower binaryName; meta.mainProgram = "disable-breaking-updates.py"; } '' } '' mkdir -p $out/bin cp ${./disable-breaking-updates.py} $out/bin/disable-breaking-updates.py substituteAllInPlace $out/bin/disable-breaking-updates.py Loading @@ -17,9 +35,17 @@ let ''; in stdenv.mkDerivation { inherit pname version src meta; inherit pname version src meta ; nativeBuildInputs = [ undmg makeWrapper ]; nativeBuildInputs = [ undmg makeWrapper ]; sourceRoot = "."; Loading @@ -37,9 +63,11 @@ stdenv.mkDerivation { runHook postInstall ''; postInstall = lib.strings.optionalString withOpenASAR '' postInstall = lib.strings.optionalString withOpenASAR '' cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar '' + lib.strings.optionalString withVencord '' '' + lib.strings.optionalString withVencord '' mv $out/Applications/${desktopName}.app/Contents/Resources/app.asar $out/Applications/${desktopName}.app/Contents/Resources/_app.asar mkdir $out/Applications/${desktopName}.app/Contents/Resources/app.asar echo '{"name":"discord","main":"index.js"}' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/package.json Loading @@ -56,7 +84,9 @@ stdenv.mkDerivation { set -eou pipefail; url=$(curl -sI -o /dev/null -w '%header{location}' "https://discord.com/api/download/${branch}?platform=osx&format=dmg") version=$(echo $url | grep -oP '/\K(\d+\.){2}\d+') update-source-version ${lib.optionalString (!stdenv.buildPlatform.isDarwin) "pkgsCross.aarch64-darwin."}${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix --version-key=${branch} update-source-version ${ lib.optionalString (!stdenv.buildPlatform.isDarwin) "pkgsCross.aarch64-darwin." }${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix --version-key=${branch} ''; }; } pkgs/applications/networking/instant-messengers/discord/default.nix +47 −24 Original line number Diff line number Diff line { branch ? "stable", callPackage, fetchurl, lib, stdenv }: { branch ? "stable", callPackage, fetchurl, lib, stdenv, }: let versions = if stdenv.hostPlatform.isLinux then { if stdenv.hostPlatform.isLinux then { stable = "0.0.71"; ptb = "0.0.110"; canary = "0.0.502"; development = "0.0.30"; } else { } else { stable = "0.0.322"; ptb = "0.0.140"; canary = "0.0.611"; Loading Loading @@ -52,7 +61,9 @@ let }; aarch64-darwin = x86_64-darwin; }; src = srcs.${stdenv.hostPlatform.system}.${branch} or (throw "${stdenv.hostPlatform.system} not supported on ${branch}"); src = srcs.${stdenv.hostPlatform.system}.${branch} or (throw "${stdenv.hostPlatform.system} not supported on ${branch}"); meta = with lib; { description = "All-in-one cross-platform voice and text chat for gamers"; Loading @@ -60,23 +71,35 @@ let downloadPage = "https://discordapp.com/download"; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; maintainers = with maintainers; [ Scrumplex artturin infinidoge jopejoe1 ]; platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; maintainers = with maintainers; [ Scrumplex artturin infinidoge jopejoe1 ]; platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; mainProgram = "discord"; }; package = if stdenv.hostPlatform.isLinux then ./linux.nix else ./darwin.nix; package = if stdenv.hostPlatform.isLinux then ./linux.nix else ./darwin.nix; packages = ( builtins.mapAttrs (_: value: callPackage package (value ( _: value: callPackage package ( value // { inherit src version branch; meta = meta // { mainProgram = value.binaryName; }; })) meta = meta // { mainProgram = value.binaryName; }; } ) ) { stable = { pname = "discord"; Loading pkgs/applications/networking/instant-messengers/discord/linux.nix +144 −80 Original line number Diff line number Diff line { pname, version, src, meta, binaryName, desktopName, autoPatchelfHook , makeDesktopItem, lib, stdenv, wrapGAppsHook3, makeShellWrapper, alsa-lib, at-spi2-atk , at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf , glib, gtk3, libcxx, libdrm, libglvnd, libnotify, libpulseaudio, libuuid, libX11 , libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes , libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss , pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript, python3, runCommand , libunity , speechd-minimal , wayland , branch , withOpenASAR ? false, openasar , withVencord ? false, vencord , withTTS ? true }: { pname, version, src, meta, binaryName, desktopName, autoPatchelfHook, makeDesktopItem, lib, stdenv, wrapGAppsHook3, makeShellWrapper, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libglvnd, libnotify, libpulseaudio, libuuid, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss, pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript, python3, runCommand, libunity, speechd-minimal, wayland, branch, withOpenASAR ? false, openasar, withVencord ? false, vencord, withTTS ? true, }: let disableBreakingUpdates = runCommand "disable-breaking-updates.py" disableBreakingUpdates = runCommand "disable-breaking-updates.py" { pythonInterpreter = "${python3.interpreter}"; configDirName = lib.toLower binaryName; meta.mainProgram = "disable-breaking-updates.py"; } '' } '' mkdir -p $out/bin cp ${./disable-breaking-updates.py} $out/bin/disable-breaking-updates.py substituteAllInPlace $out/bin/disable-breaking-updates.py Loading @@ -28,7 +81,12 @@ let in stdenv.mkDerivation rec { inherit pname version src meta; inherit pname version src meta ; nativeBuildInputs = [ alsa-lib Loading @@ -50,7 +108,8 @@ stdenv.mkDerivation rec { dontWrapGApps = true; libPath = lib.makeLibraryPath ([ libPath = lib.makeLibraryPath ( [ libcxx systemd libpulseaudio Loading Loading @@ -91,7 +150,9 @@ stdenv.mkDerivation rec { libappindicator-gtk3 libdbusmenu wayland ] ++ lib.optional withTTS speechd-minimal); ] ++ lib.optional withTTS speechd-minimal ); installPhase = '' runHook preInstall Loading @@ -113,9 +174,7 @@ stdenv.mkDerivation rec { ln -s $out/opt/${binaryName}/${binaryName} $out/bin/ # Without || true the install would fail on case-insensitive filesystems ln -s $out/opt/${binaryName}/${binaryName} $out/bin/${ lib.strings.toLower binaryName } || true ln -s $out/opt/${binaryName}/${binaryName} $out/bin/${lib.strings.toLower binaryName} || true ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${pname}.png ln -s $out/opt/${binaryName}/discord.png $out/share/icons/hicolor/256x256/apps/${pname}.png Loading @@ -125,9 +184,11 @@ stdenv.mkDerivation rec { runHook postInstall ''; postInstall = lib.strings.optionalString withOpenASAR '' postInstall = lib.strings.optionalString withOpenASAR '' cp -f ${openasar} $out/opt/${binaryName}/resources/app.asar '' + lib.strings.optionalString withVencord '' '' + lib.strings.optionalString withVencord '' mv $out/opt/${binaryName}/resources/app.asar $out/opt/${binaryName}/resources/_app.asar mkdir $out/opt/${binaryName}/resources/app.asar echo '{"name":"discord","main":"index.js"}' > $out/opt/${binaryName}/resources/app.asar/package.json Loading @@ -140,7 +201,10 @@ stdenv.mkDerivation rec { icon = pname; inherit desktopName; genericName = meta.description; categories = [ "Network" "InstantMessaging" ]; categories = [ "Network" "InstantMessaging" ]; mimeTypes = [ "x-scheme-handler/discord" ]; }; Loading Loading
pkgs/applications/networking/instant-messengers/discord/darwin.nix +56 −26 Original line number Diff line number Diff line { pname, version, src, meta, stdenv, binaryName, desktopName, lib, undmg, makeWrapper, writeScript, python3, runCommand , branch , withOpenASAR ? false, openasar , withVencord ? false, vencord }: { pname, version, src, meta, stdenv, binaryName, desktopName, lib, undmg, makeWrapper, writeScript, python3, runCommand, branch, withOpenASAR ? false, openasar, withVencord ? false, vencord, }: let disableBreakingUpdates = runCommand "disable-breaking-updates.py" disableBreakingUpdates = runCommand "disable-breaking-updates.py" { pythonInterpreter = "${python3.interpreter}"; configDirName = lib.toLower binaryName; meta.mainProgram = "disable-breaking-updates.py"; } '' } '' mkdir -p $out/bin cp ${./disable-breaking-updates.py} $out/bin/disable-breaking-updates.py substituteAllInPlace $out/bin/disable-breaking-updates.py Loading @@ -17,9 +35,17 @@ let ''; in stdenv.mkDerivation { inherit pname version src meta; inherit pname version src meta ; nativeBuildInputs = [ undmg makeWrapper ]; nativeBuildInputs = [ undmg makeWrapper ]; sourceRoot = "."; Loading @@ -37,9 +63,11 @@ stdenv.mkDerivation { runHook postInstall ''; postInstall = lib.strings.optionalString withOpenASAR '' postInstall = lib.strings.optionalString withOpenASAR '' cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar '' + lib.strings.optionalString withVencord '' '' + lib.strings.optionalString withVencord '' mv $out/Applications/${desktopName}.app/Contents/Resources/app.asar $out/Applications/${desktopName}.app/Contents/Resources/_app.asar mkdir $out/Applications/${desktopName}.app/Contents/Resources/app.asar echo '{"name":"discord","main":"index.js"}' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/package.json Loading @@ -56,7 +84,9 @@ stdenv.mkDerivation { set -eou pipefail; url=$(curl -sI -o /dev/null -w '%header{location}' "https://discord.com/api/download/${branch}?platform=osx&format=dmg") version=$(echo $url | grep -oP '/\K(\d+\.){2}\d+') update-source-version ${lib.optionalString (!stdenv.buildPlatform.isDarwin) "pkgsCross.aarch64-darwin."}${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix --version-key=${branch} update-source-version ${ lib.optionalString (!stdenv.buildPlatform.isDarwin) "pkgsCross.aarch64-darwin." }${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix --version-key=${branch} ''; }; }
pkgs/applications/networking/instant-messengers/discord/default.nix +47 −24 Original line number Diff line number Diff line { branch ? "stable", callPackage, fetchurl, lib, stdenv }: { branch ? "stable", callPackage, fetchurl, lib, stdenv, }: let versions = if stdenv.hostPlatform.isLinux then { if stdenv.hostPlatform.isLinux then { stable = "0.0.71"; ptb = "0.0.110"; canary = "0.0.502"; development = "0.0.30"; } else { } else { stable = "0.0.322"; ptb = "0.0.140"; canary = "0.0.611"; Loading Loading @@ -52,7 +61,9 @@ let }; aarch64-darwin = x86_64-darwin; }; src = srcs.${stdenv.hostPlatform.system}.${branch} or (throw "${stdenv.hostPlatform.system} not supported on ${branch}"); src = srcs.${stdenv.hostPlatform.system}.${branch} or (throw "${stdenv.hostPlatform.system} not supported on ${branch}"); meta = with lib; { description = "All-in-one cross-platform voice and text chat for gamers"; Loading @@ -60,23 +71,35 @@ let downloadPage = "https://discordapp.com/download"; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; maintainers = with maintainers; [ Scrumplex artturin infinidoge jopejoe1 ]; platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; maintainers = with maintainers; [ Scrumplex artturin infinidoge jopejoe1 ]; platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; mainProgram = "discord"; }; package = if stdenv.hostPlatform.isLinux then ./linux.nix else ./darwin.nix; package = if stdenv.hostPlatform.isLinux then ./linux.nix else ./darwin.nix; packages = ( builtins.mapAttrs (_: value: callPackage package (value ( _: value: callPackage package ( value // { inherit src version branch; meta = meta // { mainProgram = value.binaryName; }; })) meta = meta // { mainProgram = value.binaryName; }; } ) ) { stable = { pname = "discord"; Loading
pkgs/applications/networking/instant-messengers/discord/linux.nix +144 −80 Original line number Diff line number Diff line { pname, version, src, meta, binaryName, desktopName, autoPatchelfHook , makeDesktopItem, lib, stdenv, wrapGAppsHook3, makeShellWrapper, alsa-lib, at-spi2-atk , at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf , glib, gtk3, libcxx, libdrm, libglvnd, libnotify, libpulseaudio, libuuid, libX11 , libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes , libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss , pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript, python3, runCommand , libunity , speechd-minimal , wayland , branch , withOpenASAR ? false, openasar , withVencord ? false, vencord , withTTS ? true }: { pname, version, src, meta, binaryName, desktopName, autoPatchelfHook, makeDesktopItem, lib, stdenv, wrapGAppsHook3, makeShellWrapper, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libglvnd, libnotify, libpulseaudio, libuuid, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss, pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript, python3, runCommand, libunity, speechd-minimal, wayland, branch, withOpenASAR ? false, openasar, withVencord ? false, vencord, withTTS ? true, }: let disableBreakingUpdates = runCommand "disable-breaking-updates.py" disableBreakingUpdates = runCommand "disable-breaking-updates.py" { pythonInterpreter = "${python3.interpreter}"; configDirName = lib.toLower binaryName; meta.mainProgram = "disable-breaking-updates.py"; } '' } '' mkdir -p $out/bin cp ${./disable-breaking-updates.py} $out/bin/disable-breaking-updates.py substituteAllInPlace $out/bin/disable-breaking-updates.py Loading @@ -28,7 +81,12 @@ let in stdenv.mkDerivation rec { inherit pname version src meta; inherit pname version src meta ; nativeBuildInputs = [ alsa-lib Loading @@ -50,7 +108,8 @@ stdenv.mkDerivation rec { dontWrapGApps = true; libPath = lib.makeLibraryPath ([ libPath = lib.makeLibraryPath ( [ libcxx systemd libpulseaudio Loading Loading @@ -91,7 +150,9 @@ stdenv.mkDerivation rec { libappindicator-gtk3 libdbusmenu wayland ] ++ lib.optional withTTS speechd-minimal); ] ++ lib.optional withTTS speechd-minimal ); installPhase = '' runHook preInstall Loading @@ -113,9 +174,7 @@ stdenv.mkDerivation rec { ln -s $out/opt/${binaryName}/${binaryName} $out/bin/ # Without || true the install would fail on case-insensitive filesystems ln -s $out/opt/${binaryName}/${binaryName} $out/bin/${ lib.strings.toLower binaryName } || true ln -s $out/opt/${binaryName}/${binaryName} $out/bin/${lib.strings.toLower binaryName} || true ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${pname}.png ln -s $out/opt/${binaryName}/discord.png $out/share/icons/hicolor/256x256/apps/${pname}.png Loading @@ -125,9 +184,11 @@ stdenv.mkDerivation rec { runHook postInstall ''; postInstall = lib.strings.optionalString withOpenASAR '' postInstall = lib.strings.optionalString withOpenASAR '' cp -f ${openasar} $out/opt/${binaryName}/resources/app.asar '' + lib.strings.optionalString withVencord '' '' + lib.strings.optionalString withVencord '' mv $out/opt/${binaryName}/resources/app.asar $out/opt/${binaryName}/resources/_app.asar mkdir $out/opt/${binaryName}/resources/app.asar echo '{"name":"discord","main":"index.js"}' > $out/opt/${binaryName}/resources/app.asar/package.json Loading @@ -140,7 +201,10 @@ stdenv.mkDerivation rec { icon = pname; inherit desktopName; genericName = meta.description; categories = [ "Network" "InstantMessaging" ]; categories = [ "Network" "InstantMessaging" ]; mimeTypes = [ "x-scheme-handler/discord" ]; }; Loading