diff --git a/modules/apps/internet.nix b/modules/apps/internet.nix index e235962..6eff87a 100644 --- a/modules/apps/internet.nix +++ b/modules/apps/internet.nix @@ -24,6 +24,7 @@ otherPackages = [ # video download helper assistant (pkgs.callPackage ../../pkgs/vdhcoapp/default.nix { }) + (pkgs.callPackage ../../pkgs/talk/default.nix { }) ]; packages = builtins.attrValues { inherit (pkgs) diff --git a/pkgs/talk/default.nix b/pkgs/talk/default.nix new file mode 100644 index 0000000..bead727 --- /dev/null +++ b/pkgs/talk/default.nix @@ -0,0 +1,89 @@ +{ + 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 = "1.0.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.zip"; + hash = "sha256-XQa4Fa9eEaFlYrWa00S9aMWKJOPPFGSo4NAlRqE23jM="; + 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/nextcloud-talk-desktop + + runHook postInstall + ''; + + meta = with lib; { + description = "Nextcloud Talk Desktop Client"; + 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 = "nextcloud-talk-desktop"; + sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; + }; +})