Unverified Commit cf7b58fb authored by Masum Reza's avatar Masum Reza Committed by GitHub
Browse files

discord: format, update discord-canary and discord-ptb, refactor meta (#347313)

parents bf98ab57 f5627723
Loading
Loading
Loading
Loading
+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
@@ -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 = ".";

@@ -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
@@ -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}
    '';
  };
}
+56 −32
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";
        ptb = "0.0.111";
        canary = "0.0.503";
        development = "0.0.30";
    } else {
      }
    else
      {
        stable = "0.0.322";
      ptb = "0.0.140";
      canary = "0.0.611";
        ptb = "0.0.141";
        canary = "0.0.612";
        development = "0.0.53";
      };
  version = versions.${branch};
@@ -21,11 +30,11 @@ let
      };
      ptb = fetchurl {
        url = "https://ptb.dl2.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
        hash = "sha256-NV/0YKn1rG54Zkc9qAmpeb+4YbKjxhjTCdPOd84Lcc8=";
        hash = "sha256-mms/qTA3XS+R5CDFWFS2RxiHOWnpU348nYagt9L2k2w=";
      };
      canary = fetchurl {
        url = "https://canary.dl2.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
        hash = "sha256-2DE7p3eT/mVGC+ejnTcTEhF7sEWyhfUfzj0gYTh+6Dw=";
        hash = "sha256-Z0dv/jM0RipRI73vO9O5qqE0xf8qJtljZ3Zjr0Tf/KA=";
      };
      development = fetchurl {
        url = "https://development.dl2.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
@@ -39,11 +48,11 @@ let
      };
      ptb = fetchurl {
        url = "https://ptb.dl2.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
        hash = "sha256-VGhvykujfzI7jwXE+lHTzqT0t08GaON6gCuf13po7wY=";
        hash = "sha256-EVwosCb/34W4+dx/u/5aq3pl6FqU1QiFT17yPydtGBU=";
      };
      canary = fetchurl {
        url = "https://canary.dl2.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
        hash = "sha256-QC8RANqoyMAGKjTF0NNhz7wMt65D5LI1xYtd++dHXC4=";
        hash = "sha256-xvrsohxoCTODG3Au5E773SEX5UXbBJ98J2Eb3Vtybfw=";
      };
      development = fetchurl {
        url = "https://development.dl2.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
@@ -52,31 +61,46 @@ 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; {
  meta = {
    description = "All-in-one cross-platform voice and text chat for gamers";
    homepage = "https://discordapp.com/";
    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" ];
    homepage = "https://discordapp.com/";
    license = lib.licenses.unfree;
    mainProgram = "discord";
  };
  package =
    if stdenv.hostPlatform.isLinux
    then ./linux.nix
    else ./darwin.nix;
    maintainers = with lib.maintainers; [
      artturin
      donteatoreo
      infinidoge
      jopejoe1
      Scrumplex
    ];
    platforms = [
      "x86_64-linux"
      "x86_64-darwin"
      "aarch64-darwin"
    ];
    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
  };
  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";
+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
@@ -28,7 +81,12 @@ let
in

stdenv.mkDerivation rec {
  inherit pname version src meta;
  inherit
    pname
    version
    src
    meta
    ;

  nativeBuildInputs = [
    alsa-lib
@@ -50,7 +108,8 @@ stdenv.mkDerivation rec {

  dontWrapGApps = true;

  libPath = lib.makeLibraryPath ([
  libPath = lib.makeLibraryPath (
    [
      libcxx
      systemd
      libpulseaudio
@@ -91,7 +150,9 @@ stdenv.mkDerivation rec {
      libappindicator-gtk3
      libdbusmenu
      wayland
  ] ++ lib.optional withTTS speechd-minimal);
    ]
    ++ lib.optional withTTS speechd-minimal
  );

  installPhase = ''
    runHook preInstall
@@ -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
@@ -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
@@ -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" ];
  };