Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
82 changes: 56 additions & 26 deletions pkgs/applications/networking/instant-messengers/discord/darwin.nix
Original file line number Diff line number Diff line change
@@ -1,25 +1,51 @@
{ 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"
{
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
chmod +x $out/bin/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
chmod +x $out/bin/disable-breaking-updates.py
'';
in
stdenv.mkDerivation {
inherit pname version src meta;
inherit
pname
version
src
meta
;

nativeBuildInputs = [ undmg makeWrapper ];
nativeBuildInputs = [
undmg
makeWrapper
];

sourceRoot = ".";

Expand All @@ -37,14 +63,16 @@ stdenv.mkDerivation {
runHook postInstall
'';

postInstall = lib.strings.optionalString withOpenASAR ''
cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar
'' + 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
echo 'require("${vencord}/patcher.js")' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/index.js
'';
postInstall =
lib.strings.optionalString withOpenASAR ''
cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar
''
+ 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
echo 'require("${vencord}/patcher.js")' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/index.js
'';

passthru = {
# make it possible to run disableBreakingUpdates standalone
Expand All @@ -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}
'';
};
}
88 changes: 56 additions & 32 deletions pkgs/applications/networking/instant-messengers/discord/default.nix
Original file line number Diff line number Diff line change
@@ -1,17 +1,26 @@
{ branch ? "stable", callPackage, fetchurl, lib, stdenv }:
{
branch ? "stable",
callPackage,
fetchurl,
lib,
stdenv,
}:
let
versions =
if stdenv.hostPlatform.isLinux then {
stable = "0.0.71";
ptb = "0.0.110";
canary = "0.0.502";
development = "0.0.30";
} else {
stable = "0.0.322";
ptb = "0.0.140";
canary = "0.0.611";
development = "0.0.53";
};
if stdenv.hostPlatform.isLinux then
{
stable = "0.0.71";
ptb = "0.0.111";
canary = "0.0.503";
development = "0.0.30";
}
else
{
stable = "0.0.322";
ptb = "0.0.141";
canary = "0.0.612";
development = "0.0.53";
};
version = versions.${branch};
srcs = rec {
x86_64-linux = {
Expand All @@ -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";
Expand All @@ -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";
Expand All @@ -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";
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;
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; };
}))
inherit src version branch;
meta = meta // {
mainProgram = value.binaryName;
};
}
)
)
{
stable = {
pname = "discord";
Expand Down
Loading