summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin Singh <drsingh2518@icloud.com>2022-01-14 11:30:55 -0600
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2022-02-12 16:42:11 +0000
commita38a57b6236f2b0e931ad5aa88864ba7f82a790b (patch)
treede886eee2548571b4e0afe0a8abd851a4f796396
parentMerge pull request #159577 from NixOS/backport-153835-to-release-21.11 (diff)
downloadnixpkgs-a38a57b6236f2b0e931ad5aa88864ba7f82a790b.tar.gz
discord: add derivations for {x86_64,aarch64}-darwin
(cherry picked from commit 8a6cde9143085d40886de34037c913323984e7f4)
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/darwin.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix110
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/linux.nix (renamed from pkgs/applications/networking/instant-messengers/discord/base.nix)86
-rw-r--r--pkgs/top-level/all-packages.nix6
4 files changed, 154 insertions, 62 deletions
diff --git a/pkgs/applications/networking/instant-messengers/discord/darwin.nix b/pkgs/applications/networking/instant-messengers/discord/darwin.nix
new file mode 100644
index 000000000000..4bc9ac98df1f
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/discord/darwin.nix
@@ -0,0 +1,14 @@
+{ pname, version, src, meta, stdenv, binaryName, desktopName, undmg }:
+
+stdenv.mkDerivation {
+ inherit pname version src meta;
+
+ nativeBuildInputs = [ undmg ];
+
+ sourceRoot = ".";
+
+ installPhase = ''
+ mkdir -p $out/Applications
+ cp -r "${desktopName}.app" $out/Applications
+ '';
+}
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 6d4d0f9b1378..2f58ec414ab9 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -1,35 +1,89 @@
-{ branch ? "stable", pkgs }:
+{ branch ? "stable", pkgs, lib, stdenv }:
let
inherit (pkgs) callPackage fetchurl;
-in {
- stable = callPackage ./base.nix rec {
- pname = "discord";
- binaryName = "Discord";
- desktopName = "Discord";
- version = "0.0.16";
- src = fetchurl {
- url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
- sha256 = "UTVKjs/i7C/m8141bXBsakQRFd/c//EmqqhKhkr1OOk=";
- };
+ versions = if stdenv.isLinux then {
+ stable = "0.0.16";
+ ptb = "0.0.27";
+ canary = "0.0.132";
+ } else {
+ stable = "0.0.264";
+ ptb = "0.0.58";
+ canary = "0.0.280";
};
- ptb = callPackage ./base.nix rec {
- pname = "discord-ptb";
- binaryName = "DiscordPTB";
- desktopName = "Discord PTB";
- version = "0.0.27";
- src = fetchurl {
- url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
- sha256 = "0yphs65wpyr0ap6y24b0nbhq7sm02dg5c1yiym1fxjbynm1mdvqb";
+ version = versions.${branch};
+ srcs = {
+ x86_64-linux = {
+ stable = fetchurl {
+ url =
+ "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
+ sha256 = "UTVKjs/i7C/m8141bXBsakQRFd/c//EmqqhKhkr1OOk=";
+ };
+ ptb = fetchurl {
+ url =
+ "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
+ sha256 = "0yphs65wpyr0ap6y24b0nbhq7sm02dg5c1yiym1fxjbynm1mdvqb";
+ };
+ canary = fetchurl {
+ url =
+ "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
+ sha256 = "1jjbd9qllgcdpnfxg5alxpwl050vzg13rh17n638wha0vv4mjhyv";
+ };
+ };
+ x86_64-darwin = {
+ stable = fetchurl {
+ url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
+ sha256 = "1jvlxmbfqhslsr16prsgbki77kq7i3ipbkbn67pnwlnis40y9s7p";
+ };
+ ptb = fetchurl {
+ url =
+ "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
+ sha256 = "sha256-GwYUoPBbx9lSaRP1JwzI0UE9gEU+rV4a9BNPVSxHki0=";
+ };
+ canary = fetchurl {
+ url =
+ "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
+ sha256 = "0ccchsywry68vv81pqzzxmh1r19lnvxr429iwvgfr9y82lyjvz06";
+ };
+ };
+ # Only PTB bundles a MachO Universal binary with ARM support.
+ aarch64-darwin = {
+ ptb = fetchurl {
+ url =
+ "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
+ sha256 = "sha256-GwYUoPBbx9lSaRP1JwzI0UE9gEU+rV4a9BNPVSxHki0=";
+ };
};
};
- canary = callPackage ./base.nix rec {
- pname = "discord-canary";
- binaryName = "DiscordCanary";
- desktopName = "Discord Canary";
- version = "0.0.132";
- src = fetchurl {
- url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
- sha256 = "1jjbd9qllgcdpnfxg5alxpwl050vzg13rh17n638wha0vv4mjhyv";
+ src = srcs.${stdenv.hostPlatform.system}.${branch};
+
+ meta = with lib; {
+ description = "All-in-one cross-platform voice and text chat for gamers";
+ homepage = "https://discordapp.com/";
+ downloadPage = "https://discordapp.com/download";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ ldesgoui MP2E devins2518 ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ]
+ ++ lib.optionals (branch == "ptb") [ "aarch64-darwin" ];
+ };
+ package = if stdenv.isLinux then ./linux.nix else ./darwin.nix;
+ packages = {
+ stable = callPackage package rec {
+ inherit src version meta;
+ pname = "discord";
+ binaryName = "Discord";
+ desktopName = "Discord";
+ };
+ ptb = callPackage package rec {
+ inherit src version meta;
+ pname = "discord-ptb";
+ binaryName = "DiscordPTB";
+ desktopName = "Discord PTB";
+ };
+ canary = callPackage package rec {
+ inherit src version meta;
+ pname = "discord-canary";
+ binaryName = "DiscordCanary";
+ desktopName = "Discord Canary";
};
};
-}.${branch}
+in packages.${branch}
diff --git a/pkgs/applications/networking/instant-messengers/discord/base.nix b/pkgs/applications/networking/instant-messengers/discord/linux.nix
index 5943917dc659..866b28890948 100644
--- a/pkgs/applications/networking/instant-messengers/discord/base.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/linux.nix
@@ -1,17 +1,14 @@
-{ pname, version, src, binaryName, desktopName
-, autoPatchelfHook, makeDesktopItem, lib, stdenv, wrapGAppsHook
-, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig
-, freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, 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, common-updater-scripts
-}:
+{ pname, version, src, meta, binaryName, desktopName, autoPatchelfHook
+, makeDesktopItem, lib, stdenv, wrapGAppsHook, alsa-lib, at-spi2-atk
+, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf
+, glib, gtk3, libcxx, libdrm, 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
+, common-updater-scripts }:
-let
- inherit binaryName;
-in stdenv.mkDerivation rec {
- inherit pname version src;
+stdenv.mkDerivation rec {
+ inherit pname version src meta;
nativeBuildInputs = [
alsa-lib
@@ -33,13 +30,45 @@ in stdenv.mkDerivation rec {
dontWrapGApps = true;
libPath = lib.makeLibraryPath [
- libcxx systemd libpulseaudio libdrm mesa
- stdenv.cc.cc alsa-lib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype
- gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
- libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
- libXtst nspr nss libxcb pango libXScrnSaver
- libappindicator-gtk3 libdbusmenu
- ];
+ libcxx
+ systemd
+ libpulseaudio
+ libdrm
+ mesa
+ stdenv.cc.cc
+ alsa-lib
+ atk
+ at-spi2-atk
+ at-spi2-core
+ cairo
+ cups
+ dbus
+ expat
+ fontconfig
+ freetype
+ gdk-pixbuf
+ glib
+ gtk3
+ libnotify
+ libX11
+ libXcomposite
+ libuuid
+ libXcursor
+ libXdamage
+ libXext
+ libXfixes
+ libXi
+ libXrandr
+ libXrender
+ libXtst
+ nspr
+ nss
+ libxcb
+ pango
+ libXScrnSaver
+ libappindicator-gtk3
+ libdbusmenu
+ ];
installPhase = ''
mkdir -p $out/{bin,opt/${binaryName},share/pixmaps}
@@ -56,7 +85,9 @@ in 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 "${desktopItem}/share/applications" $out/share/
@@ -76,18 +107,11 @@ in stdenv.mkDerivation rec {
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnugrep common-updater-scripts
set -eou pipefail;
- url=$(curl -sI "https://discordapp.com/api/download/${builtins.replaceStrings ["discord-" "discord"] ["" "stable"] pname}?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+')
+ url=$(curl -sI "https://discordapp.com/api/download/${
+ builtins.replaceStrings [ "discord-" "discord" ] [ "" "stable" ] pname
+ }?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+')
version=''${url##https://dl*.discordapp.net/apps/linux/}
version=''${version%%/*.tar.gz}
update-source-version ${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix
'';
-
- meta = with lib; {
- description = "All-in-one cross-platform voice and text chat for gamers";
- homepage = "https://discordapp.com/";
- downloadPage = "https://discordapp.com/download";
- license = licenses.unfree;
- maintainers = with maintainers; [ ldesgoui MP2E ];
- platforms = [ "x86_64-linux" ];
- };
}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b698ed8b9880..7ba05b676dc1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -33493,17 +33493,17 @@ with pkgs;
discord = import ../applications/networking/instant-messengers/discord {
branch = "stable";
- inherit pkgs;
+ inherit pkgs lib stdenv;
};
discord-ptb = import ../applications/networking/instant-messengers/discord {
branch = "ptb";
- inherit pkgs;
+ inherit pkgs lib stdenv;
};
discord-canary = import ../applications/networking/instant-messengers/discord {
branch = "canary";
- inherit pkgs;
+ inherit pkgs lib stdenv;
};
golden-cheetah = libsForQt514.callPackage ../applications/misc/golden-cheetah {};