summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorDevin Singh <drsingh2518@icloud.com>2022-01-14 11:30:55 -0600
committerDevin Singh <drsingh2518@icloud.com>2022-01-14 19:19:26 -0600
commit8a6cde9143085d40886de34037c913323984e7f4 (patch)
tree00d1bb9a386e99fc9cc88172a1affa6c53fe75cb /pkgs
parent2bf5958169ab5ac8871d3f3b9b1d6114de5376f2 (diff)
downloadnixpkgs-8a6cde9143085d40886de34037c913323984e7f4.tar
nixpkgs-8a6cde9143085d40886de34037c913323984e7f4.tar.gz
nixpkgs-8a6cde9143085d40886de34037c913323984e7f4.tar.bz2
nixpkgs-8a6cde9143085d40886de34037c913323984e7f4.tar.lz
nixpkgs-8a6cde9143085d40886de34037c913323984e7f4.tar.xz
nixpkgs-8a6cde9143085d40886de34037c913323984e7f4.tar.zst
nixpkgs-8a6cde9143085d40886de34037c913323984e7f4.zip
discord: add derivations for {x86_64,aarch64}-darwin
Diffstat (limited to 'pkgs')
-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 00000000000..4bc9ac98df1
--- /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 6d4d0f9b137..2f58ec414ab 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 5943917dc65..866b2889094 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 93fa42f39f0..692cc3e96f1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -34023,17 +34023,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 {};