153 lines
3.3 KiB
Nix
153 lines
3.3 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchurl,
|
|
autoPatchelfHook,
|
|
dpkg,
|
|
makeShellWrapper,
|
|
wrapGAppsHook3,
|
|
alsa-lib,
|
|
at-spi2-atk,
|
|
at-spi2-core,
|
|
atk,
|
|
cairo,
|
|
cups,
|
|
dbus,
|
|
expat,
|
|
ffmpeg,
|
|
fontconfig,
|
|
freetype,
|
|
gdk-pixbuf,
|
|
glib,
|
|
gtk3,
|
|
libappindicator-gtk3,
|
|
libdrm,
|
|
libnotify,
|
|
libpulseaudio,
|
|
libsecret,
|
|
libuuid,
|
|
libxkbcommon,
|
|
mesa,
|
|
nss,
|
|
pango,
|
|
systemd,
|
|
xdg-utils,
|
|
xorg,
|
|
wayland,
|
|
pipewire,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "goofcord";
|
|
version = "1.5.0";
|
|
|
|
src =
|
|
let
|
|
base = "https://github.com/Milkshiift/GoofCord/releases/download";
|
|
in
|
|
{
|
|
x86_64-linux = fetchurl {
|
|
url = "${base}/v${finalAttrs.version}/GoofCord-${finalAttrs.version}-linux-amd64.deb";
|
|
hash = "sha256-T7z8myiNBaoDf04zynNhPekFtzoj435de09PVz8MWDM=";
|
|
};
|
|
aarch64-linux = fetchurl {
|
|
url = "${base}/v${finalAttrs.version}/GoofCord-${finalAttrs.version}-linux-arm64.deb";
|
|
hash = "sha256-u+qY1UWr9opjTBnIhqw62F9HYTdEnqagevJ+eg8XYr8=";
|
|
};
|
|
}
|
|
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
|
|
|
nativeBuildInputs = [
|
|
autoPatchelfHook
|
|
dpkg
|
|
makeShellWrapper
|
|
wrapGAppsHook3
|
|
];
|
|
|
|
dontWrapGApps = true;
|
|
|
|
buildInputs = [
|
|
alsa-lib
|
|
at-spi2-atk
|
|
at-spi2-core
|
|
atk
|
|
cairo
|
|
cups
|
|
dbus
|
|
expat
|
|
ffmpeg
|
|
fontconfig
|
|
freetype
|
|
gdk-pixbuf
|
|
glib
|
|
gtk3
|
|
pango
|
|
systemd
|
|
mesa # for libgbm
|
|
nss
|
|
libuuid
|
|
libdrm
|
|
libnotify
|
|
libsecret
|
|
libpulseaudio
|
|
libxkbcommon
|
|
libappindicator-gtk3
|
|
xorg.libX11
|
|
xorg.libxcb
|
|
xorg.libXcomposite
|
|
xorg.libXcursor
|
|
xorg.libXdamage
|
|
xorg.libXext
|
|
xorg.libXfixes
|
|
xorg.libXi
|
|
xorg.libXrandr
|
|
xorg.libXrender
|
|
xorg.libXScrnSaver
|
|
xorg.libxshmfence
|
|
xorg.libXtst
|
|
wayland
|
|
pipewire
|
|
];
|
|
|
|
sourceRoot = ".";
|
|
unpackCmd = "dpkg-deb -x $src .";
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p "$out/bin"
|
|
cp -R "opt" "$out"
|
|
cp -R "usr/share" "$out/share"
|
|
chmod -R g-w "$out"
|
|
|
|
# use makeShellWrapper (instead of the makeBinaryWrapper provided by wrapGAppsHook3) for proper shell variable expansion
|
|
# see https://github.com/NixOS/nixpkgs/issues/172583
|
|
makeShellWrapper $out/opt/GoofCord/goofcord $out/bin/goofcord \
|
|
"''${gappsWrapperArgs[@]}" \
|
|
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
|
|
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer}}" \
|
|
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath finalAttrs.buildInputs}" \
|
|
--suffix PATH : ${lib.makeBinPath [ xdg-utils ]}
|
|
|
|
# Fix desktop link
|
|
substituteInPlace $out/share/applications/goofcord.desktop \
|
|
--replace /opt/GoofCord/ ""
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Highly configurable and privacy-focused Discord client";
|
|
homepage = "https://github.com/Milkshiift/GoofCord";
|
|
downloadPage = "https://github.com/Milkshiift/GoofCord";
|
|
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
|
license = licenses.osl3;
|
|
maintainers = with maintainers; [ nyanbinary ];
|
|
platforms = [
|
|
"x86_64-linux"
|
|
"aarch64-linux"
|
|
];
|
|
mainProgram = "goofcord";
|
|
};
|
|
})
|