diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/instant-messengers/discord')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix | 93 | ||||
-rw-r--r-- | nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix | 36 |
2 files changed, 129 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix new file mode 100644 index 000000000000..2d67236c90eb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix @@ -0,0 +1,93 @@ +{ 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 +}: + +let + inherit binaryName; +in stdenv.mkDerivation rec { + inherit pname version src; + + nativeBuildInputs = [ + alsa-lib + autoPatchelfHook + cups + libdrm + libuuid + libXdamage + libX11 + libXScrnSaver + libXtst + libxcb + libxshmfence + mesa + nss + wrapGAppsHook + ]; + + 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 systemd libXScrnSaver + libappindicator-gtk3 libdbusmenu + ]; + + installPhase = '' + mkdir -p $out/{bin,opt/${binaryName},share/pixmaps} + mv * $out/opt/${binaryName} + + chmod +x $out/opt/${binaryName}/${binaryName} + patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \ + $out/opt/${binaryName}/${binaryName} + + wrapProgram $out/opt/${binaryName}/${binaryName} \ + "''${gappsWrapperArgs[@]}" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/${binaryName} + + 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}/discord.png $out/share/pixmaps/${pname}.png + + ln -s "${desktopItem}/share/applications" $out/share/ + ''; + + desktopItem = makeDesktopItem { + name = pname; + exec = binaryName; + icon = pname; + inherit desktopName; + genericName = meta.description; + categories = "Network;InstantMessaging;"; + mimeType = "x-scheme-handler/discord"; + }; + + passthru.updateScript = writeScript "discord-update-script" '' + #!/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+') + 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/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix new file mode 100644 index 000000000000..d2d8c9a3ec5d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -0,0 +1,36 @@ +{ branch ? "stable", pkgs }: +# Generated by ./update-discord.sh +let + inherit (pkgs) callPackage fetchurl; +in { + stable = callPackage ./base.nix rec { + pname = "discord"; + binaryName = "Discord"; + desktopName = "Discord"; + version = "0.0.15"; + src = fetchurl { + url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; + sha256 = "0pn2qczim79hqk2limgh88fsn93sa8wvana74mpdk5n6x5afkvdd"; + }; + }; + ptb = callPackage ./base.nix rec { + pname = "discord-ptb"; + binaryName = "DiscordPTB"; + desktopName = "Discord PTB"; + version = "0.0.25"; + src = fetchurl { + url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; + sha256 = "082ygmsycicddpkv5s03vw3rjkrk4lgprq29z8b1hdjifvw93b21"; + }; + }; + canary = callPackage ./base.nix rec { + pname = "discord-canary"; + binaryName = "DiscordCanary"; + desktopName = "Discord Canary"; + version = "0.0.126"; + src = fetchurl { + url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; + sha256 = "EraTDRKd6t0c9U68tSRdGkeB1hfqNS4KUewEXwkL8io="; + }; + }; +}.${branch} |