From a340ce7e43ff9be05e97b6062ca9e28f3bea68e9 Mon Sep 17 00:00:00 2001 From: John Ogle Date: Sun, 18 Aug 2024 13:49:11 -0700 Subject: [PATCH] Add nextcloud-talk-desktop package Grabbed from this PR but modified so that it will actually work: https://github.com/NixOS/nixpkgs/pull/302781 --- home-default.nix | 5 ++ .../nextcloud-talk-desktop/package.nix | 79 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 modules/applications/nextcloud-talk-desktop/package.nix diff --git a/home-default.nix b/home-default.nix index 68f6c77..997c999 100644 --- a/home-default.nix +++ b/home-default.nix @@ -1,6 +1,9 @@ { config, pkgs, lib, ... }: with import {}; +let + nextcloudTalkDesktop = pkgs.callPackage ./modules/applications/nextcloud-talk-desktop/package.nix {}; +in { # Home Manager needs a bit of information about you and the paths it should # manage. @@ -56,6 +59,8 @@ with import {}; pkgs.waybar pkgs.wofi pkgs.vlc + + nextcloudTalkDesktop ]; # Home Manager is pretty good at managing dotfiles. The primary way to manage diff --git a/modules/applications/nextcloud-talk-desktop/package.nix b/modules/applications/nextcloud-talk-desktop/package.nix new file mode 100644 index 0000000..357514e --- /dev/null +++ b/modules/applications/nextcloud-talk-desktop/package.nix @@ -0,0 +1,79 @@ +{ lib +, stdenv +, fetchzip +, autoPatchelfHook + +, nss +, cairo +, xorg +, libxkbcommon +, alsa-lib +, at-spi2-core +, mesa +, pango +, libdrm +, vivaldi-ffmpeg-codecs +, gtk3 +, libGL +, libglvnd +, systemd +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "nextcloud-talk-desktop"; + version = "0.29.0"; + + # Building from source would require building also building Server and Talk components + # See https://github.com/nextcloud/talk-desktop?tab=readme-ov-file#%EF%B8%8F-prerequisites + src = fetchzip { + url = "https://github.com/nextcloud-releases/talk-desktop/releases/download/v${finalAttrs.version}/Nextcloud.Talk-linux-x64-${finalAttrs.version}.zip"; + hash = "sha256-fBIeNv8tfrVTFExLQDBPhIazvbsJ7a76+W9G0cuQDlw="; + stripRoot = false; + }; + + nativeBuildInputs = [ autoPatchelfHook ]; + + buildInputs = [ + nss + cairo + alsa-lib + at-spi2-core + pango + libdrm + libxkbcommon + gtk3 + vivaldi-ffmpeg-codecs + mesa + libGL + libglvnd + ] ++ (with xorg; [libX11 libXcomposite libXdamage libXrandr libXfixes libXcursor]); + + # Required to launch the application and proceed past the zygote_linux fork() process + # Fixes `Zygote could not fork` + runtimeDependencies = [ systemd ]; + + preInstall = '' + mkdir -p $out/bin + mkdir -p $out/opt + + cp -r $src/* $out/opt/ + ''; + + installPhase = '' + runHook preInstall + + # Link the application in $out/bin away from contents of `preInstall` + ln -s "$out/opt/Nextcloud Talk-linux-x64/Nextcloud Talk" $out/bin/${finalAttrs.pname} + + runHook postInstall + ''; + + meta = with lib; { + description = "Nextcloud Talk Desktop Client Preview"; + homepage = "https://github.com/nextcloud/talk-desktop"; + changelog = "https://github.com/nextcloud/talk-desktop/blob/${finalAttrs.version}/CHANGELOG.md"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ kashw2 ]; + mainProgram = finalAttrs.pname; + }; +})