From 46ff324c24ffe729bdeb56fffb8981169d9be7e6 Mon Sep 17 00:00:00 2001 From: "Winston R. Milling" Date: Fri, 11 Oct 2024 15:53:48 -0500 Subject: [PATCH] legcord: init at 1.0.1 https://github.com/Legcord/Legcord/releases/tag/v1.0.0 https://github.com/Legcord/Legcord/releases/tag/v1.0.1 --- pkgs/by-name/le/legcord/package.nix | 141 ++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 pkgs/by-name/le/legcord/package.nix diff --git a/pkgs/by-name/le/legcord/package.nix b/pkgs/by-name/le/legcord/package.nix new file mode 100644 index 0000000000000..453c42c8bbf5a --- /dev/null +++ b/pkgs/by-name/le/legcord/package.nix @@ -0,0 +1,141 @@ +{ lib +, stdenv +, fetchurl +, autoPatchelfHook +, dpkg +, makeBinaryWrapper +, 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 rec { + pname = "legcord"; + version = "1.0.1"; + + src = + let + base = "https://github.com/Legcord/Legcord/releases/download"; + in + { + x86_64-linux = fetchurl { + url = "${base}/v${version}/Legcord-${version}-linux-amd64.deb"; + hash = "sha256-kZ9dhSJjhYmpZJLbWP8nPP6Lxw+wLe3d9cCahfIomNM="; + }; + aarch64-linux = fetchurl { + url = "${base}/v${version}/Legcord-${version}-linux-arm64.deb"; + hash = "sha256-Ikyjmlt1F7f6WaYWuAgyzLP3zvQPCvMRZ1D9e79umgM="; + }; + }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + + nativeBuildInputs = [ autoPatchelfHook dpkg makeBinaryWrapper 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" + + # Wrap the startup command + makeBinaryWrapper $out/opt/Legcord/legcord $out/bin/legcord \ + "''${gappsWrapperArgs[@]}" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=UseOzonePlatform --enable-features=WebRTCPipeWireCapturer }}" \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \ + --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} + + # Fix desktop link + substituteInPlace $out/share/applications/legcord.desktop \ + --replace /opt/Legcord/ $out/bin/ + + runHook postInstall + ''; + + meta = with lib; { + description = "Lightweight, alternative desktop client for Discord"; + homepage = "https://legcord.app"; + downloadPage = "https://github.com/Legcord/Legcord"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.osl3; + maintainers = with maintainers; [ wrmilling ]; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + mainProgram = "legcord"; + }; +}