diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-12-06 19:57:55 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-02-08 13:48:30 +0000 |
commit | bf3aadfdd39aa197e18bade671fab6726349ffa4 (patch) | |
tree | 698567af766ed441d757b57a7b21e68d4a342a2b /nixpkgs/pkgs/applications/networking/instant-messengers | |
parent | f4afc5a01d9539ce09e47494e679c51f80723d07 (diff) | |
parent | 99665eb45f58d959d2cb9e49ddb960c79d596f33 (diff) | |
download | nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.gz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.bz2 nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.lz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.xz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.zst nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.zip |
Merge commit '99665eb45f58d959d2cb9e49ddb960c79d596f33'
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/instant-messengers')
140 files changed, 2582 insertions, 1422 deletions
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix index ebed984c4d53..29febe1dfcfa 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix @@ -1,21 +1,22 @@ -{ stdenv, lib, fetchurl, dpkg, autoPatchelfHook, makeWrapper +{ stdenv, lib, fetchurl, dpkg, autoPatchelfHook, makeWrapper, wrapGAppsHook , alsa-lib, dbus, fontconfig, freetype, glib, gst_all_1, libGL , libinput, libpulseaudio, libsecret, libtiff, libxkbcommon , mesa, openssl, systemd, xorg }: stdenv.mkDerivation rec { pname = "alfaview"; - version = "8.40.0"; + version = "8.49.1"; src = fetchurl { url = "https://production-alfaview-assets.alfaview.com/stable/linux/${pname}_${version}.deb"; - sha256 = "sha256-meiIDIG7OXxF2aclHA/8FN8aSz5KWJliDbm2p/flD4k="; + sha256 = "sha256-A0kX6r5ubC764XJFinCq4/u9pA1AOP4fXUOFB4voeeE="; }; nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook + wrapGAppsHook ]; buildInputs = [ @@ -25,6 +26,7 @@ stdenv.mkDerivation rec { freetype glib gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-good gst_all_1.gst-plugins-base libGL libinput @@ -71,8 +73,9 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Video-conferencing application, specialized in virtual online meetings, seminars, training sessions and conferences"; homepage = "https://alfaview.com"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; - maintainers = with maintainers; [ wolfangaukang ]; + maintainers = with maintainers; [ wolfangaukang hexchen ]; platforms = [ "x86_64-linux" ]; }; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/armcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/armcord/default.nix new file mode 100644 index 000000000000..6f6a6e0b337e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/armcord/default.nix @@ -0,0 +1,129 @@ +{ lib +, stdenv +, fetchurl +, autoPatchelfHook +, dpkg +, makeWrapper +, alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, cairo +, cups +, dbus +, expat +, ffmpeg +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gtk3 +, libappindicator-gtk3 +, libdbusmenu +, libdrm +, libnotify +, libpulseaudio +, libsecret +, libuuid +, libxkbcommon +, mesa +, nss +, pango +, systemd +, xdg-utils +, xorg +}: + +stdenv.mkDerivation rec { + pname = "armcord"; + version = "3.0.7"; + + src = let + base = "https://github.com/ArmCord/ArmCord/releases/download"; + in { + x86_64-linux = fetchurl { + url = "${base}/v${version}/ArmCord_${version}_amd64.deb"; + sha256 = "b2a583e6abbc6e5dc3f7370a33f21fc4e7963c6cbe7555e954156c77e9577261"; + }; + aarch64-linux = fetchurl { + url = "${base}/v${version}/ArmCord_${version}_arm64.deb"; + sha256 = "8c32a14ab8e5bdf865a6523cb4b5cec8f3f870b95f99be9661a4dd0df33aae1d"; + }; + }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + + nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ]; + + 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 + ]; + + 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 + makeWrapper $out/opt/ArmCord/armcord $out/bin/armcord \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \ + --prefix PATH : ${lib.makeBinPath [ xdg-utils ]} \ + "''${gappsWrapperArgs[@]}" + + # Fix desktop link + substituteInPlace $out/share/applications/armcord.desktop \ + --replace /opt/ArmCord/ $out/bin/ + + runHook postInstall + ''; + + meta = with lib; { + description = "Lightweight, alternative desktop client for Discord"; + homepage = "https://github.com/ArmCord/ArmCord"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.osl3; + maintainers = with maintainers; [ wrmilling ]; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix index 543a5f52c979..4450eefa6eb0 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { homepage = "https://github.com/sm00th/bitlbee-discord"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ lassulus jb55 ]; + maintainers = with maintainers; [ lassulus ]; platforms = lib.platforms.linux; }; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix index 14464247659c..00b970cd6871 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix @@ -12,8 +12,8 @@ stdenv.mkDerivation rec { sha256 = "121r92mgwv445wwxzh35n19fs5k81ihr0j19k256ia5502b1xxaq"; }; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ bitlbee autoconf automake libtool libgcrypt ]; + nativeBuildInputs = [ pkg-config autoconf automake ]; + buildInputs = [ bitlbee libtool libgcrypt ]; preConfigure = '' export BITLBEE_PLUGINDIR=$out/lib/bitlbee diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix index ad57e2c6623b..c74bffdd5e2a 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix @@ -44,11 +44,11 @@ in stdenv.mkDerivation rec { pname = "bluejeans"; - version = "2.26.0.136"; + version = "2.29.1.3"; src = fetchurl { url = "https://swdl.bluejeans.com/desktop-app/linux/${getFirst 3 version}/BlueJeans_${version}.rpm"; - sha256 = "sha256-9QiE7CjCepDXQCzduqGzNUGqUgYS+PWBS71ouzHa83o="; + sha256 = "sha256-vWViSJXRPZ4B40LNnoKRZNbxB1YKnaW2ay6GCjnFLGY="; }; nativeBuildInputs = [ rpmextract makeWrapper ]; @@ -127,6 +127,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day"; homepage = "https://www.bluejeans.com"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; maintainers = with maintainers; [ ]; platforms = [ "x86_64-linux" ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix new file mode 100644 index 000000000000..1b16786649f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix @@ -0,0 +1,58 @@ +{ lib +, stdenv +, fetchzip +, openjdk +, makeWrapper +, tor +, p7zip +, bash +, writeScript +}: +let + + briar-tor = writeScript "briar-tor" '' + #! ${bash}/bin/bash + exec ${tor}/bin/tor "$@" + ''; + +in +stdenv.mkDerivation rec { + pname = "briar-desktop"; + version = "0.2.1-beta"; + + src = fetchzip { + url = "https://code.briarproject.org/briar/briar-desktop/-/jobs/18424/artifacts/download?file_type=archive"; + sha256 = "sha256-ivMbgo0+iZE4/Iffq9HUBErGIQMVLrRZUQ6R3V3X8II="; + extension = "zip"; + }; + + nativeBuildInputs = [ + makeWrapper + p7zip + ]; + + installPhase = '' + mkdir -p $out/{bin,lib} + cp ${src}/briar-desktop.jar $out/lib/ + makeWrapper ${openjdk}/bin/java $out/bin/briar-desktop \ + --add-flags "-jar $out/lib/briar-desktop.jar" + ''; + + fixupPhase = '' + # Replace the embedded Tor binary (which is in a Tar archive) + # with one from Nixpkgs. + cp ${briar-tor} ./tor + for arch in {aarch64,armhf,x86_64}; do + 7z a tor_linux-$arch.zip tor + 7z a $out/lib/briar-desktop.jar tor_linux-$arch.zip + done + ''; + + meta = with lib; { + description = "Decentalized and secure messnger"; + homepage = "https://code.briarproject.org/briar/briar-desktop"; + license = licenses.gpl3; + maintainers = with maintainers; [ onny ]; + platforms = [ "x86_64-linux" "aarch64-linux" "armv7l-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix new file mode 100644 index 000000000000..d08e1cd1ba48 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix @@ -0,0 +1,47 @@ +{ lib +, fetchurl +, appimageTools +, xorg +, pname +, version +, sha256 +, metaCommon ? { } +}: + +let + name = "${pname}-${version}"; + src = fetchurl { + url = "https://github.com/sindresorhus/caprine/releases/download/v${version}/Caprine-${version}.AppImage"; + name = "Caprine-${version}.AppImage"; + inherit sha256; + }; + extracted = appimageTools.extractType2 { inherit name src; }; +in +(appimageTools.wrapType2 { + inherit name src; + + profile = '' + export LC_ALL=C.UTF-8 + ''; + + extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs; + + extraInstallCommands = '' + mv $out/bin/{${name},caprine} + + mkdir -p $out/share + "${xorg.lndir}/bin/lndir" -silent "${extracted}/usr/share" "$out/share" + ln -s ${extracted}/caprine.png $out/share/icons/caprine.png + mkdir $out/share/applications + cp ${extracted}/caprine.desktop $out/share/applications/ + substituteInPlace $out/share/applications/caprine.desktop \ + --replace AppRun caprine + ''; + + meta = metaCommon // { + platforms = [ "x86_64-linux" ]; + mainProgram = "caprine"; + }; +}) // { + inherit pname version; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix new file mode 100644 index 000000000000..3dc457c48826 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix @@ -0,0 +1,35 @@ +{ stdenvNoCC +, lib +, fetchurl +, undmg +, pname +, version +, sha256 +, metaCommon ? { } +}: + +stdenvNoCC.mkDerivation { + inherit pname version; + + src = fetchurl { + url = "https://github.com/sindresorhus/caprine/releases/download/v${version}/Caprine-${version}.dmg"; + name = "Caprine-${version}.dmg"; + inherit sha256; + }; + + sourceRoot = "Caprine.app"; + + nativeBuildInputs = [ undmg ]; + + installPhase = '' + mkdir -p "$out/Applications/Caprine.app" + cp -R . "$out/Applications/Caprine.app" + mkdir "$out/bin" + ln -s "$out/Applications/Caprine.app/Contents/MacOS/Caprine" "$out/bin/caprine" + ''; + + meta = metaCommon // { + platforms = with lib.platforms; darwin; + mainProgram = "caprine"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix new file mode 100644 index 000000000000..04e0e91ddc28 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix @@ -0,0 +1,25 @@ +{ lib, callPackage, stdenvNoCC }: +let + pname = "caprine"; + version = "2.55.4"; + metaCommon = with lib; { + description = "An elegant Facebook Messenger desktop app"; + homepage = "https://sindresorhus.com/caprine"; + license = licenses.mit; + maintainers = with maintainers; [ ShamrockLee ]; + }; + x86_64-appimage = callPackage ./build-from-appimage.nix { + inherit pname version metaCommon; + sha256 = "221PyDoCkWqDdewCkFycpjMTcVOcl58blCjrC7O7xyk="; + }; + x86_64-dmg = callPackage ./build-from-dmg.nix { + inherit pname version metaCommon; + sha256 = "6SOqlH7Z9DuQVR4i1OltnSb4dJscFUxaXxgNkE5FVUE="; + }; +in +(if stdenvNoCC.isDarwin then x86_64-dmg else x86_64-appimage).overrideAttrs (oldAttrs: { + passthru = (oldAttrs.passthru or { }) // { inherit x86_64-appimage x86_64-dmg; }; + meta = oldAttrs.meta // { + platforms = x86_64-appimage.meta.platforms ++ x86_64-dmg.meta.platforms; + }; +}) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix index 7a2415199375..e637881d968c 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix @@ -2,12 +2,12 @@ mkDerivation rec { pname = "chatterino2"; - version = "2.3.4"; + version = "2.3.5"; src = fetchFromGitHub { owner = "Chatterino"; repo = pname; rev = "v${version}"; - sha256 = "sha256-ZmUM56+YNH98J3XE/mWOOIfb0qBld2n4iuHpImbrU4o="; + sha256 = "sha256-ozfLLoNUN+1SPXbMNbF1V5sdZgPZEA/J3xXzJP9D3uI="; fetchSubmodules = true; }; nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ]; @@ -15,6 +15,9 @@ mkDerivation rec { postInstall = lib.optionalString stdenv.isDarwin '' mkdir -p "$out/Applications" mv bin/chatterino.app "$out/Applications/" + '' + '' + mkdir -p $out/share/icons/hicolor/256x256/apps + cp $src/resources/icon.png $out/share/icons/hicolor/256x256/apps/chatterino.png ''; meta = with lib; { description = "A chat client for Twitch chat"; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix index 97282c76d04c..fc9c4c10b218 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix @@ -3,6 +3,7 @@ , fetchFromGitLab , appstream-glib , desktop-file-utils +, itstool , meson , ninja , pkg-config @@ -28,7 +29,7 @@ stdenv.mkDerivation rec { pname = "chatty"; - version = "0.6.1"; + version = "0.6.7"; src = fetchFromGitLab { domain = "source.puri.sm"; @@ -36,7 +37,7 @@ stdenv.mkDerivation rec { repo = "chatty"; rev = "v${version}"; fetchSubmodules = true; - hash = "sha256-AufxwuOibTx5OvLBVbJqay/mYLmcDpE2BgwVv6Y5IlY="; + hash = "sha256-W4w/00mRgjfyQmLQ81/EAN+80qk7kDkBmMPJnOU+AIc="; }; postPatch = '' @@ -46,6 +47,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ appstream-glib desktop-file-utils + itstool meson ninja pkg-config @@ -73,7 +75,7 @@ stdenv.mkDerivation rec { preFixup = '' gappsWrapperArgs+=( - --prefix PURPLE_PLUGIN_PATH : ${pidgin.makePluginPath plugins} + --prefix PURPLE_PLUGIN_PATH : ${lib.escapeShellArg (pidgin.makePluginPath plugins)} ${lib.concatMapStringsSep " " (p: p.wrapArgs or "") plugins} ) ''; @@ -81,6 +83,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "XMPP and SMS messaging via libpurple and ModemManager"; homepage = "https://source.puri.sm/Librem5/chatty"; + changelog = "https://source.puri.sm/Librem5/chatty/-/blob/${src.rev}/NEWS"; license = licenses.gpl3Plus; maintainers = with maintainers; [ dotlambda tomfitzhenry ]; platforms = platforms.linux; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/cinny-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny-desktop/default.nix new file mode 100644 index 000000000000..0da3d38e6759 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny-desktop/default.nix @@ -0,0 +1,46 @@ +{ stdenv +, lib +, dpkg +, fetchurl +, autoPatchelfHook +, glib-networking +, openssl +, webkitgtk +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + name = "cinny-desktop"; + version = "2.1.2"; + + src = fetchurl { + url = "https://github.com/cinnyapp/cinny-desktop/releases/download/v${version}/Cinny_desktop-x86_64.deb"; + sha256 = "sha256-JLu6xAnUaeRTM/yj2Qsc7pXTRXCnvxx8NL2fDXyAUg0="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + ]; + + buildInputs = [ + glib-networking + openssl + webkitgtk + wrapGAppsHook + ]; + + unpackCmd = "dpkg-deb -x $curSrc source"; + + installPhase = "mv usr $out"; + + meta = with lib; { + description = "Yet another matrix client for desktop"; + homepage = "https://github.com/cinnyapp/cinny-desktop"; + maintainers = [ maintainers.aveltras ]; + license = licenses.mit; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + platforms = platforms.linux; + mainProgram = "cinny"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/cinny/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny/default.nix index 940d0b6b92b3..6d212b406f54 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/cinny/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny/default.nix @@ -4,11 +4,11 @@ let configOverrides = writeText "cinny-config-overrides.json" (builtins.toJSON conf); in stdenv.mkDerivation rec { pname = "cinny"; - version = "1.8.2"; + version = "2.1.2"; src = fetchurl { url = "https://github.com/ajbura/cinny/releases/download/v${version}/cinny-v${version}.tar.gz"; - sha256 = "sha256-0harFaO1MWzTmN/Q3e38MC2O7P9yVeQ5ZSy0yiGbtCs="; + sha256 = "sha256-UbL9HP90zfsoj/ClUoBF27n5zkvvN4UU4pxQu8QsoUA="; }; installPhase = '' diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix index 442a6adcb790..8e1ce52c266e 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix @@ -1,47 +1,32 @@ { lib , python3 , fetchFromGitHub -, wrapGAppsHook -, gobject-introspection -, libnotify }: python3.pkgs.buildPythonApplication rec { pname = "deltachat-cursed"; - version = "0.3.1"; + version = "0.7.1"; src = fetchFromGitHub { owner = "adbenitez"; repo = "deltachat-cursed"; rev = "v${version}"; - hash = "sha256-IZrTPnj6eX1qgEPnEiD9qmVkwn1SMK38gVKAJFgZNfw="; + hash = "sha256-EA3yTP4j/jj26E8zdRwTIW+9FkI0ehK4Y8AqiCnF2xA="; }; nativeBuildInputs = [ python3.pkgs.setuptools-scm - wrapGAppsHook ]; SETUPTOOLS_SCM_PRETEND_VERSION = version; - buildInputs = [ - gobject-introspection - libnotify - ]; - propagatedBuildInputs = with python3.pkgs; [ deltachat + emoji notify-py - pygobject3 urwid-readline ]; - dontWrapGApps = true; - - preFixup = '' - makeWrapperArgs+=("''${gappsWrapperArgs[@]}") - ''; - doCheck = false; # no tests implemented meta = with lib; { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix index f80d8cab8b11..835442642348 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix @@ -1,13 +1,13 @@ { lib , copyDesktopItems -, electron_14 +, electron_18 +, buildGoModule , esbuild , fetchFromGitHub -, fetchpatch , libdeltachat , makeDesktopItem , makeWrapper -, nodejs-14_x +, nodePackages , noto-fonts-emoji , pkg-config , roboto @@ -19,41 +19,40 @@ let libdeltachat' = libdeltachat.overrideAttrs (old: rec { - version = "1.76.0"; + version = "1.86.0"; src = fetchFromGitHub { owner = "deltachat"; repo = "deltachat-core-rust"; rev = version; - hash = "sha256-aeYOszOFyLaC1xKswYZLzqoWSFFWOOeOkc+WrtqU0jo="; + hash = "sha256-VLS93Ffeit2rVmXxYkXcnf8eDA3DC2/wKYZTh56QCk0="; }; cargoDeps = rustPlatform.fetchCargoTarball { inherit src; name = "${old.pname}-${version}"; - hash = "sha256-sBFXcLXpAkX+HzRKrLKaHhi5ieS8Yc/Uf30WcXyWrok="; + hash = "sha256-4rpoDQ3o0WdWg/TmazTI+J0hL/MxwHcNMXWMq7GE7Tk="; }; }); - electronExec = if stdenv.isDarwin then - "${electron_14}/Applications/Electron.app/Contents/MacOS/Electron" - else - "${electron_14}/bin/electron"; - esbuild' = esbuild.overrideAttrs (old: rec { - version = "0.12.29"; - src = fetchFromGitHub { - owner = "evanw"; - repo = "esbuild"; - rev = "v${version}"; - hash = "sha256-oU++9E3StUoyrMVRMZz8/1ntgPI62M1NoNz9sH/N5Bg="; - }; - }); -in nodejs-14_x.pkgs.deltachat-desktop.override rec { + esbuild' = esbuild.override { + buildGoModule = args: buildGoModule (args // rec { + version = "0.12.29"; + src = fetchFromGitHub { + owner = "evanw"; + repo = "esbuild"; + rev = "v${version}"; + hash = "sha256-oU++9E3StUoyrMVRMZz8/1ntgPI62M1NoNz9sH/N5Bg="; + }; + vendorSha256 = "sha256-QPkBR+FscUc3jOvH7olcGUhM6OW4vxawmNJuRQxPuGs="; + }); + }; +in nodePackages.deltachat-desktop.override rec { pname = "deltachat-desktop"; - version = "1.28.0"; + version = "1.30.1"; src = fetchFromGitHub { owner = "deltachat"; repo = "deltachat-desktop"; rev = "v${version}"; - hash = "sha256-Ur0UxaKEWp+y7lGz2Khsg4npOf+gjCiOoijkSbnp0hg="; + hash = "sha256-gZjZbXiqhFVfThZOsvL/nKkf6MX+E3KB5ldEAIuzBYA="; }; nativeBuildInputs = [ @@ -74,10 +73,15 @@ in nodejs-14_x.pkgs.deltachat-desktop.override rec { USE_SYSTEM_LIBDELTACHAT = "true"; VERSION_INFO_GIT_REF = src.rev; + preRebuild = '' + substituteInPlace package.json \ + --replace "node ./bin/check-nodejs-version.js" true + ''; + postInstall = '' - rm -r node_modules/deltachat-node/{deltachat-core-rust,prebuilds,src} + rm -r node_modules/deltachat-node/node/prebuilds - npm run build + npm run build4production npm prune --production @@ -94,7 +98,7 @@ in nodejs-14_x.pkgs.deltachat-desktop.override rec { $out/lib/node_modules/deltachat-desktop/html-dist/fonts done - makeWrapper ${electronExec} $out/bin/deltachat \ + makeWrapper ${electron_18}/bin/electron $out/bin/deltachat \ --set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher${stdenv.hostPlatform.extensions.sharedLibrary} \ --add-flags $out/lib/node_modules/deltachat-desktop ''; @@ -116,7 +120,9 @@ in nodejs-14_x.pkgs.deltachat-desktop.override rec { meta = with lib; { description = "Email-based instant messaging for Desktop"; homepage = "https://github.com/deltachat/deltachat-desktop"; + changelog = "https://github.com/deltachat/deltachat-desktop/blob/${src.rev}/CHANGELOG.md"; license = licenses.gpl3Plus; + mainProgram = "deltachat"; maintainers = with maintainers; [ dotlambda ]; }; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json index ca584702765a..96778eda7aa6 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json @@ -1,30 +1,28 @@ { "name": "deltachat-desktop", - "version": "1.28.0", + "version": "1.30.1", "dependencies": { - "@blueprintjs/core": "^3.22.3", - "@deltachat/message_parser_wasm": "^0.3.0", + "@blueprintjs/core": "^4.1.2", + "@deltachat/message_parser_wasm": "^0.4.0", + "@deltachat/react-qr-reader": "^4.0.0", "@mapbox/geojson-extent": "^1.0.0", "application-config": "^1.0.1", "classnames": "^2.3.1", "debounce": "^1.2.0", - "deltachat-node": "1.76.0", + "deltachat-node": "1.86.0", "emoji-js-clean": "^4.0.0", - "emoji-mart": "^3.0.0", + "emoji-mart": "^3.0.1", "emoji-regex": "^9.2.2", "error-stack-parser": "^2.0.7", "filesize": "^8.0.6", "immutable": "^4.0.0", "mapbox-gl": "^1.12.0", "mime-types": "^2.1.31", - "moment": "^2.27.0", - "node-fetch": "^2.6.7", + "moment": "^2.29.2", "path-browserify": "^1.0.1", "rc": "^1.2.8", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-qr-reader": "^2.2.1", - "react-qr-svg": "^2.1.0", "react-string-replace": "^1.0.0", "react-virtualized-auto-sizer": "^1.0.5", "react-window": "^1.8.6", @@ -32,26 +30,23 @@ "react-zoom-pan-pinch": "^2.1.3", "source-map-support": "^0.5.19", "stackframe": "^1.2.1", - "tempy": "^0.3.0", "url-parse": "^1.5.9", "use-debounce": "^3.3.0", "@babel/core": "^7.7.7", "@babel/preset-env": "^7.7.7", "@babel/preset-react": "^7.7.4", "@types/debounce": "^1.2.0", - "@types/emoji-mart": "^3.0.2", + "@types/emoji-mart": "^3.0.9", "@types/mapbox-gl": "^0.54.5", "@types/mime-types": "^2.1.0", "@types/node": "^14.14.20", - "@types/node-fetch": "^2.5.7", - "@types/prop-types": "^15.7.3", "@types/rc": "^1.1.0", - "@types/react": "^16.9.17", - "@types/react-dom": "^16.9.4", + "@types/react": "^17.0.2", + "@types/react-dom": "^17.0.2", "@types/react-window": "^1.8.4", "@types/react-window-infinite-loader": "^1.0.4", "@types/url-parse": "^1.4.3", - "electron": "^14.2.6", + "electron": "^18.0.3", "esbuild": "^0.12.29", "glob-watcher": "^5.0.5", "sass": "^1.26.5", diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh index c3119a79afd8..a21a97b3b83c 100755 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh @@ -29,7 +29,7 @@ tac default.nix \ src=$(nix-build "$nixpkgs" -A deltachat-desktop.src --no-out-link) -jq '{ name, version, dependencies: (.dependencies + (.devDependencies | del(.["@types/chai","@types/mocha","@typescript-eslint/eslint-plugin","@typescript-eslint/parser","chai","electron-builder","electron-devtools-installer","electron-notarize","eslint","eslint-config-prettier","eslint-plugin-react-hooks","hallmark","mocha","prettier","testcafe","testcafe-browser-provider-electron","testcafe-react-selectors","ts-node","walk"]))) }' \ +jq '{ name, version, dependencies: (.dependencies + (.devDependencies | del(.["@types/chai","@types/mocha","@types/node-fetch","@typescript-eslint/eslint-plugin","@typescript-eslint/parser","chai","electron-builder","electron-devtools-installer","electron-notarize","eslint","eslint-config-prettier","eslint-plugin-react-hooks","hallmark","mocha","node-fetch","prettier","testcafe","testcafe-browser-provider-electron","testcafe-react-selectors","ts-node","walk"]))) }' \ "$src/package.json" > package.json.new if cmp --quiet package.json{.new,}; then diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix index 3e992899e43e..d18341b220f4 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix @@ -14,7 +14,7 @@ , qrencode , icu , gspell -, srtp, libnice, gnutls, gstreamer, gst-plugins-base, gst-plugins-good +, srtp, libnice, gnutls, gstreamer, gst-plugins-base, gst-plugins-good, webrtc-audio-processing }: stdenv.mkDerivation rec { @@ -65,6 +65,7 @@ stdenv.mkDerivation rec { gstreamer gst-plugins-base gst-plugins-good + webrtc-audio-processing ] ++ lib.optionals (!stdenv.isDarwin) [ xorg.libxcb xorg.libpthreadstubs @@ -72,6 +73,16 @@ stdenv.mkDerivation rec { libxkbcommon ]; + cmakeFlags = ["-DBUILD_TESTS=yes"]; + + doCheck = true; + checkPhase = '' + runHook preCheck + ./xmpp-vala-test + ./signal-protocol-vala-test + runHook postCheck + ''; + # Dino looks for plugins with a .so filename extension, even on macOS where # .dylib is appropriate, and despite the fact that it builds said plugins with # that as their filename extension diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix index 4bc9ac98df1f..aa1cfaa045ca 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix @@ -1,4 +1,4 @@ -{ pname, version, src, meta, stdenv, binaryName, desktopName, undmg }: +{ pname, version, src, openasar, meta, stdenv, binaryName, desktopName, lib, undmg, withOpenASAR ? false }: stdenv.mkDerivation { inherit pname version src meta; @@ -8,7 +8,15 @@ stdenv.mkDerivation { sourceRoot = "."; installPhase = '' + runHook preInstall + mkdir -p $out/Applications cp -r "${desktopName}.app" $out/Applications + + runHook postInstall + ''; + + postInstall = lib.strings.optionalString withOpenASAR '' + cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar ''; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix index d3416ef58801..c4b11068a115 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -1,53 +1,49 @@ -{ branch ? "stable", pkgs, lib, stdenv }: +{ branch ? "stable", callPackage, fetchurl, lib, stdenv }: let - inherit (pkgs) callPackage fetchurl; versions = if stdenv.isLinux then { - stable = "0.0.17"; + stable = "0.0.19"; ptb = "0.0.29"; - canary = "0.0.134"; + canary = "0.0.136"; } else { stable = "0.0.264"; ptb = "0.0.59"; canary = "0.0.283"; }; version = versions.${branch}; - srcs = let - darwin-ptb = fetchurl { - url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg"; - sha256 = "sha256-LS7KExVXkOv8O/GrisPMbBxg/pwoDXIOo1dK9wk1yB8="; - }; - in { + srcs = rec { x86_64-linux = { stable = fetchurl { - url = - "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; - sha256 = "058k0cmbm4y572jqw83bayb2zzl2fw2aaz0zj1gvg6sxblp76qil"; + url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; + sha256 = "GfSyddbGF8WA6JmHo4tUM27cyHV5kRAyrEiZe1jbA5A="; }; ptb = fetchurl { - url = - "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; + url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; sha256 = "d78NnQZ3MkLje8mHrI6noH2iD2oEvSJ3cDnsmzQsUYc="; }; canary = fetchurl { - url = - "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; - sha256 = "sha256-HyJa6lGcKMPKWffO/pnNcn8fDTJj6O4J8Y5RA23a1kM="; + url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; + sha256 = "sha256-OrGg4jXziesHBhQORxREN/wq776RgNGaTyjJNV4pSAU="; }; }; - x86_64-darwin = { - stable = fetchurl { - url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg"; - sha256 = "1jvlxmbfqhslsr16prsgbki77kq7i3ipbkbn67pnwlnis40y9s7p"; + aarch64-darwin = { + ptb = fetchurl { + url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg"; + sha256 = "sha256-LS7KExVXkOv8O/GrisPMbBxg/pwoDXIOo1dK9wk1yB8="; }; - ptb = darwin-ptb; canary = fetchurl { - url = - "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg"; + url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg"; sha256 = "0mqpk1szp46mih95x42ld32rrspc6jx1j7qdaxf01whzb3d4pi9l"; }; }; - # Only PTB bundles a MachO Universal binary with ARM support. - aarch64-darwin = { ptb = darwin-ptb; }; + # Stable does not (yet) provide aarch64-darwin support. PTB and Canary, however, do. + x86_64-darwin = + aarch64-darwin + // { + stable = fetchurl { + url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg"; + sha256 = "1jvlxmbfqhslsr16prsgbki77kq7i3ipbkbn67pnwlnis40y9s7p"; + }; + }; }; src = srcs.${stdenv.hostPlatform.system}.${branch}; @@ -55,30 +51,44 @@ let 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; [ ldesgoui MP2E devins2518 ]; + maintainers = with maintainers; [ MP2E devins2518 ]; platforms = [ "x86_64-linux" "x86_64-darwin" ] - ++ lib.optionals (branch == "ptb") [ "aarch64-darwin" ]; + ++ lib.optionals (branch != "stable") [ "aarch64-darwin" ]; }; - package = if stdenv.isLinux then ./linux.nix else ./darwin.nix; - packages = (builtins.mapAttrs - (_: value: callPackage package (value // { inherit src version; meta = meta // { mainProgram = value.binaryName; }; })) - { - stable = rec { - pname = "discord"; - binaryName = "Discord"; - desktopName = "Discord"; - }; - ptb = rec { - pname = "discord-ptb"; - binaryName = "DiscordPTB"; - desktopName = "Discord PTB"; - }; - canary = rec { - pname = "discord-canary"; - binaryName = "DiscordCanary"; - desktopName = "Discord Canary"; - }; - } + package = + if stdenv.isLinux + then ./linux.nix + else ./darwin.nix; + + openasar = callPackage ./openasar.nix { }; + + packages = ( + builtins.mapAttrs + (_: value: + callPackage package (value + // { + inherit src version openasar; + meta = meta // { mainProgram = value.binaryName; }; + })) + { + stable = rec { + pname = "discord"; + binaryName = "Discord"; + desktopName = "Discord"; + }; + ptb = rec { + pname = "discord-ptb"; + binaryName = "DiscordPTB"; + desktopName = "Discord PTB"; + }; + canary = rec { + pname = "discord-canary"; + binaryName = "DiscordCanary"; + desktopName = "Discord Canary"; + }; + } ); -in packages.${branch} +in +packages.${branch} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix index 05833c1eeaf4..846ac82d172b 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix @@ -1,11 +1,11 @@ -{ pname, version, src, meta, binaryName, desktopName, autoPatchelfHook -, makeDesktopItem, lib, stdenv, wrapGAppsHook, alsa-lib, at-spi2-atk +{ pname, version, src, openasar, meta, binaryName, desktopName, autoPatchelfHook +, makeDesktopItem, lib, stdenv, wrapGAppsHook, makeShellWrapper, alsa-lib, at-spi2-atk , at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf , glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid, libX11 , libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes , libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss , pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript -, common-updater-scripts }: +, common-updater-scripts, withOpenASAR ? false }: stdenv.mkDerivation rec { inherit pname version src meta; @@ -25,6 +25,7 @@ stdenv.mkDerivation rec { mesa nss wrapGAppsHook + makeShellWrapper ]; dontWrapGApps = true; @@ -71,14 +72,16 @@ stdenv.mkDerivation rec { ]; installPhase = '' - mkdir -p $out/{bin,opt/${binaryName},share/pixmaps} + runHook preInstall + + mkdir -p $out/{bin,opt/${binaryName},share/pixmaps,share/icons/hicolor/256x256/apps} mv * $out/opt/${binaryName} chmod +x $out/opt/${binaryName}/${binaryName} patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \ $out/opt/${binaryName}/${binaryName} - wrapProgram $out/opt/${binaryName}/${binaryName} \ + wrapProgramShell $out/opt/${binaryName}/${binaryName} \ "''${gappsWrapperArgs[@]}" \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" \ --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ @@ -89,9 +92,17 @@ stdenv.mkDerivation rec { ln -s $out/opt/${binaryName}/${binaryName} $out/bin/${ lib.strings.toLower binaryName } || true + ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${pname}.png + ln -s $out/opt/${binaryName}/discord.png $out/share/icons/hicolor/256x256/apps/${pname}.png ln -s "${desktopItem}/share/applications" $out/share/ + + runHook postInstall + ''; + + postInstall = lib.strings.optionalString withOpenASAR '' + cp -f ${openasar} $out/opt/${binaryName}/resources/app.asar ''; desktopItem = makeDesktopItem { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/openasar.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/openasar.nix new file mode 100644 index 000000000000..c6a64212b558 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/openasar.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchFromGitHub, nodejs, bash, nodePackages, unzip }: + +stdenv.mkDerivation rec { + pname = "openasar"; + version = "unstable-2022-08-07"; + + src = fetchFromGitHub { + owner = "GooseMod"; + repo = "OpenAsar"; + rev = "e0870784008a584229d3094e0988f5da155c7fd7"; + hash = "sha256-t0b2SFlDDBSQEkOCQME0jsLJ8NvoXROTxoQgnoXM9eQ="; + }; + + postPatch = '' + # Hardcode unzip path + substituteInPlace ./src/updater/moduleUpdater.js \ + --replace \'unzip\' \'${unzip}/bin/unzip\' + # Remove auto-update feature + echo "module.exports = async () => log('AsarUpdate', 'Removed');" > ./src/asarUpdate.js + ''; + + buildPhase = '' + runHook preBuild + + bash scripts/injectPolyfills.sh + substituteInPlace src/index.js --replace 'nightly' '${version}' + ${nodejs}/bin/node scripts/strip.js + ${nodePackages.asar}/bin/asar pack src app.asar + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + install app.asar $out + + runHook postInstall + ''; + + doCheck = false; + + meta = with lib; { + description = "Open-source alternative of Discord desktop's \"app.asar\"."; + homepage = "https://openasar.dev"; + license = licenses.mit; + maintainers = with maintainers; [ pedrohlc ]; + platforms = nodejs.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json index 984a9cb501dd..004db42ebab2 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json @@ -2,7 +2,7 @@ "name": "element-desktop", "productName": "Element", "main": "lib/electron-main.js", - "version": "1.10.7", + "version": "1.11.0", "description": "A feature-rich client for Matrix.org", "author": "Element", "repository": { @@ -44,7 +44,7 @@ "counterpart": "^0.18.6", "electron-store": "^6.0.1", "electron-window-state": "^5.0.3", - "minimist": "^1.2.3", + "minimist": "^1.2.6", "png-to-ico": "^2.1.1", "request": "^2.88.2" }, @@ -61,7 +61,8 @@ "app-builder-lib": "^22.14.10", "asar": "^2.0.1", "chokidar": "^3.5.2", - "electron": "^17", + "detect-libc": "^1.0.3", + "electron": "^19", "electron-builder": "22.11.4", "electron-builder-squirrel-windows": "22.11.4", "electron-devtools-installer": "^3.1.1", @@ -73,7 +74,7 @@ "find-npm-prefix": "^1.0.2", "fs-extra": "^8.1.0", "glob": "^7.1.6", - "matrix-web-i18n": "^1.2.0", + "matrix-web-i18n": "^1.3.0", "mkdirp": "^1.0.3", "needle": "^2.5.0", "node-pre-gyp": "^0.15.0", @@ -81,14 +82,15 @@ "rimraf": "^3.0.2", "tar": "^6.1.2", "ts-node": "^10.4.0", - "typescript": "^4.5.3" + "typescript": "4.5.5" }, "hakDependencies": { - "matrix-seshat": "^2.3.0", - "keytar": "^5.6.0" + "matrix-seshat": "^2.3.3", + "keytar": "^7.9.0" }, "build": { "appId": "im.riot.app", + "asarUnpack": "**/*.node", "files": [ "package.json", { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix index 2ad5d8c4654f..5b7c23f7c7ac 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix @@ -19,7 +19,6 @@ let pinData = lib.importJSON ./pin.json; executableName = "element-desktop"; - electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron"; keytar = callPackage ./keytar { inherit Security AppKit; }; seshat = callPackage ./seshat { inherit CoreServices; }; in @@ -48,9 +47,9 @@ mkYarnPackage rec { runHook preBuild export HOME=$(mktemp -d) pushd deps/element-desktop/ - npx tsc + yarn run build:ts yarn run i18n - node ./scripts/copy-res.js + yarn run build:res popd rm -rf node_modules/matrix-seshat node_modules/keytar ${lib.optionalString useKeytar "ln -s ${keytar} node_modules/keytar"} @@ -83,7 +82,7 @@ mkYarnPackage rec { # executable wrapper # LD_PRELOAD workaround for sqlcipher not found: https://github.com/matrix-org/seshat/issues/102 - makeWrapper '${electron_exec}' "$out/bin/${executableName}" \ + makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \ --set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher.so \ --add-flags "$out/share/element/electron" \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" @@ -91,11 +90,8 @@ mkYarnPackage rec { runHook postInstall ''; - # Do not attempt generating a tarball for element-web again. - # note: `doDist = false;` does not work. - distPhase = '' - true - ''; + # Do not attempt generating a tarball for element-desktop again. + doDist = false; # The desktop item properties should be kept in sync with data from upstream: # https://github.com/vector-im/element-desktop/blob/develop/package.json diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web-package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web-package.json new file mode 100644 index 000000000000..323fe41473dc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web-package.json @@ -0,0 +1,206 @@ +{ + "name": "element-web", + "version": "1.11.0", + "description": "A feature-rich client for Matrix.org", + "author": "New Vector Ltd.", + "repository": { + "type": "git", + "url": "https://github.com/vector-im/element-web" + }, + "license": "Apache-2.0", + "files": [ + "lib", + "res", + "src", + "webpack.config.js", + "scripts", + "docs", + "release.sh", + "deploy", + "CHANGELOG.md", + "CONTRIBUTING.rst", + "LICENSE", + "README.md", + "AUTHORS.rst", + "package.json", + "contribute.json" + ], + "style": "bundle.css", + "scripts": { + "i18n": "matrix-gen-i18n", + "prunei18n": "matrix-prune-i18n", + "diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && matrix-gen-i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json", + "clean": "rimraf lib webapp", + "build": "yarn clean && yarn build:genfiles && yarn build:bundle", + "build-stats": "yarn clean && yarn build:genfiles && yarn build:bundle-stats", + "build:jitsi": "node scripts/build-jitsi.js", + "build:res": "node scripts/copy-res.js", + "build:genfiles": "yarn build:res && yarn build:jitsi", + "build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js", + "build:bundle": "webpack --progress --bail --mode production", + "build:bundle-stats": "webpack --progress --bail --mode production --json > webpack-stats.json", + "dist": "scripts/package.sh", + "start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js\"", + "start:https": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js --https\"", + "start:res": "yarn build:jitsi && node scripts/copy-res.js -w", + "start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --mode development --disable-host-check --hot", + "lint": "yarn lint:types && yarn lint:js && yarn lint:style", + "lint:js": "eslint --max-warnings 0 src", + "lint:js-fix": "eslint --fix src", + "lint:types": "tsc --noEmit --jsx react", + "lint:style": "stylelint \"res/css/**/*.scss\"", + "test": "jest", + "coverage": "yarn test --coverage" + }, + "dependencies": { + "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz", + "browser-request": "^0.3.3", + "gfm.css": "^1.1.2", + "jsrsasign": "^10.5.25", + "katex": "^0.12.0", + "matrix-js-sdk": "19.0.0", + "matrix-react-sdk": "3.48.0", + "matrix-widget-api": "^0.1.0-beta.18", + "prop-types": "^15.7.2", + "react": "17.0.2", + "react-dom": "17.0.2", + "sanitize-html": "^2.3.2", + "ua-parser-js": "^0.7.24" + }, + "devDependencies": { + "@babel/core": "^7.12.10", + "@babel/eslint-parser": "^7.12.10", + "@babel/eslint-plugin": "^7.12.10", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-export-default-from": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.7", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.12.10", + "@babel/preset-env": "^7.12.11", + "@babel/preset-react": "^7.12.10", + "@babel/preset-typescript": "^7.12.7", + "@babel/register": "^7.12.10", + "@babel/runtime": "^7.12.5", + "@principalstudio/html-webpack-inject-preload": "^1.2.7", + "@sentry/webpack-plugin": "^1.18.1", + "@svgr/webpack": "^5.5.0", + "@types/flux": "^3.1.9", + "@types/jest": "^27.0.2", + "@types/modernizr": "^3.5.3", + "@types/node": "^14.14.22", + "@types/react": "17.0.14", + "@types/react-dom": "17.0.9", + "@types/sanitize-html": "^2.3.1", + "@types/ua-parser-js": "^0.7.36", + "@typescript-eslint/eslint-plugin": "^5.6.0", + "@typescript-eslint/parser": "^5.6.0", + "allchange": "^1.0.6", + "autoprefixer": "^9.8.6", + "babel-jest": "^26.6.3", + "babel-loader": "^8.2.2", + "chokidar": "^3.5.1", + "concurrently": "^5.3.0", + "cpx": "^1.5.0", + "css-loader": "^3.6.0", + "dotenv": "^10.0.0", + "eslint": "8.9.0", + "eslint-config-google": "^0.14.0", + "eslint-plugin-import": "^2.25.4", + "eslint-plugin-matrix-org": "^0.4.0", + "eslint-plugin-react": "^7.28.0", + "eslint-plugin-react-hooks": "^4.3.0", + "extract-text-webpack-plugin": "^4.0.0-beta.0", + "fake-indexeddb": "^3.1.2", + "file-loader": "^5.1.0", + "fs-extra": "^0.30.0", + "html-webpack-plugin": "^4.5.2", + "jest": "^26.6.3", + "jest-environment-jsdom-sixteen": "^1.0.3", + "jest-raw-loader": "^1.0.1", + "jest-sonar-reporter": "^2.0.0", + "json-loader": "^0.5.7", + "loader-utils": "^1.4.0", + "matrix-mock-request": "^2.0.0", + "matrix-react-test-utils": "^0.2.3", + "matrix-web-i18n": "^1.3.0", + "mini-css-extract-plugin": "^0.12.0", + "minimist": "^1.2.6", + "mkdirp": "^1.0.4", + "modernizr": "^3.12.0", + "node-fetch": "^2.6.7", + "optimize-css-assets-webpack-plugin": "^5.0.4", + "postcss-easings": "^2.0.0", + "postcss-hexrgba": "^2.0.1", + "postcss-import": "^12.0.1", + "postcss-loader": "^3.0.0", + "postcss-mixins": "^6.2.3", + "postcss-nested": "^4.2.3", + "postcss-preset-env": "^6.7.0", + "postcss-scss": "^2.1.1", + "postcss-simple-vars": "^5.0.2", + "postcss-strip-inline-comments": "^0.1.5", + "raw-loader": "^4.0.2", + "rimraf": "^3.0.2", + "shell-escape": "^0.2.0", + "simple-proxy-agent": "^1.1.0", + "string-replace-loader": "2", + "style-loader": "2", + "stylelint": "^13.9.0", + "stylelint-config-standard": "^20.0.0", + "stylelint-scss": "^3.18.0", + "terser-webpack-plugin": "^2.3.8", + "typescript": "^4.5.3", + "webpack": "^4.46.0", + "webpack-cli": "^3.3.12", + "webpack-dev-server": "^3.11.2", + "worker-loader": "^2.0.0", + "worklet-loader": "^2.0.0" + }, + "resolutions": { + "@types/react": "17.0.14" + }, + "jest": { + "testEnvironment": "jest-environment-jsdom-sixteen", + "testMatch": [ + "<rootDir>/test/**/*-test.[tj]s?(x)" + ], + "setupFilesAfterEnv": [ + "<rootDir>/node_modules/matrix-react-sdk/test/setupTests.js" + ], + "moduleNameMapper": { + "\\.(css|scss)$": "<rootDir>/__mocks__/cssMock.js", + "\\.(gif|png|ttf|woff2)$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/imageMock.js", + "\\.svg$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/svg.js", + "\\$webapp/i18n/languages.json": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/languages.json", + "^browser-request$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/browser-request.js", + "^react$": "<rootDir>/node_modules/react", + "^react-dom$": "<rootDir>/node_modules/react-dom", + "^matrix-js-sdk$": "<rootDir>/node_modules/matrix-js-sdk/src", + "^matrix-react-sdk$": "<rootDir>/node_modules/matrix-react-sdk/src", + "decoderWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js", + "decoderWorker\\.min\\.wasm": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js", + "waveWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js", + "context-filter-polyfill": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js", + "FontManager.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/FontManager.js", + "workers/(.+)\\.worker\\.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/workerMock.js", + "^!!raw-loader!.*": "jest-raw-loader", + "RecorderWorklet": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js" + }, + "transformIgnorePatterns": [ + "/node_modules/(?!matrix-js-sdk).+$", + "/node_modules/(?!matrix-react-sdk).+$" + ], + "coverageReporters": [ + "text-summary", + "lcov" + ], + "testResultsProcessor": "jest-sonar-reporter" + }, + "jestSonar": { + "reportPath": "coverage", + "sonar56x": true + } +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix index fae96e8e5e7a..3b4394604598 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix @@ -1,4 +1,15 @@ -{ lib, stdenv, fetchurl, writeText, jq, conf ? {} }: +{ lib +, mkYarnPackage +, runCommand +, fetchFromGitHub +, fetchYarnDeps +, writeText +, jq +, yarn +, fixup_yarn_lock +, jitsi-meet +, conf ? { } +}: let pinData = lib.importJSON ./pin.json; @@ -8,25 +19,62 @@ let }; configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf)); -in stdenv.mkDerivation rec { +in +mkYarnPackage rec { pname = "element-web"; inherit (pinData) version; - src = fetchurl { - url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz"; - sha256 = pinData.webHash; + src = fetchFromGitHub { + owner = "vector-im"; + repo = pname; + rev = "v${version}"; + sha256 = pinData.webSrcHash; }; + packageJSON = ./element-web-package.json; + # Remove the matrix-analytics-events dependency from the matrix-react-sdk + # dependencies list. It doesn't seem to be necessary since we already are + # installing it individually, and it causes issues with the offline mode. + yarnLock = (runCommand "${pname}-modified-lock" {} '' + sed '/matrix-analytics-events "github/d' ${src}/yarn.lock > "$out" + ''); + offlineCache = fetchYarnDeps { + inherit yarnLock; + sha256 = pinData.webYarnHash; + }; + + nativeBuildInputs = [ jq ]; + + configurePhase = '' + runHook preConfigure + ln -s $node_modules node_modules + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + export VERSION=${version} + yarn build:res --offline + yarn build:bundle --offline + + runHook postBuild + ''; + installPhase = '' runHook preInstall - mkdir -p $out/ - cp -R . $out/ - ${jq}/bin/jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$out/config.json" + cp -R webapp $out + cp ${jitsi-meet}/libs/external_api.min.js $out/jitsi_external_api.min.js + echo "${version}" > "$out/version" + jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$out/config.json" runHook postInstall ''; + # Do not attempt generating a tarball for element-web again. + doDist = false; + meta = { description = "A glossy Matrix collaboration client for the web"; homepage = "https://element.io/"; @@ -34,6 +82,5 @@ in stdenv.mkDerivation rec { maintainers = lib.teams.matrix.members; license = lib.licenses.asl20; platforms = lib.platforms.all; - hydraPlatforms = []; }; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix index 292b0dfa075d..550d01695ca0 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, nodejs-14_x, python3, callPackage +{ lib, stdenv, fetchFromGitHub, nodejs, python3, callPackage, removeReferencesTo , fixup_yarn_lock, yarn, pkg-config, libsecret, xcbuild, Security, AppKit, fetchYarnDeps }: let @@ -15,12 +15,12 @@ in stdenv.mkDerivation rec { sha256 = pinData.srcHash; }; - nativeBuildInputs = [ nodejs-14_x python3 yarn pkg-config ] + nativeBuildInputs = [ nodejs python3 yarn pkg-config ] ++ lib.optional stdenv.isDarwin xcbuild; buildInputs = lib.optionals (!stdenv.isDarwin) [ libsecret ] ++ lib.optionals stdenv.isDarwin [ Security AppKit ]; - npm_config_nodedir = nodejs-14_x; + npm_config_nodedir = nodejs; yarnOfflineCache = fetchYarnDeps { yarnLock = ./yarn.lock; @@ -51,6 +51,9 @@ in stdenv.mkDerivation rec { mkdir -p $out cp -r ./!(build) $out install -D -t $out/build/Release build/Release/keytar.node + ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc.cc} $out/build/Release/keytar.node runHook postInstall ''; + + disallowedReferences = [ stdenv.cc.cc ]; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json index f75dfc66ca90..a8494fe74923 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.json @@ -1,6 +1,7 @@ { - "version": "1.10.7", - "desktopSrcHash": "HkGny9t8dNzVGyyqgr4tABbFZgWV4xqGZt9xH4ejkew=", - "desktopYarnHash": "038rqg26dn8chzscck5mlhnw2viy6gr8pjb7zrcmi7ipx9h038a0", - "webHash": "0gim79a1zpfc56ca5fndp2whmlv9jz1s32z666i268xppn4z53k1" + "version": "1.11.0", + "desktopSrcHash": "WYXPsiR3hKj+cPvs5bLzZ301vLISp3ANLf/GgBBMYqM=", + "desktopYarnHash": "0v60ak06g87i3q5rqgxy3v3whk3njj0v1ml9rfdab1mbzrj6209c", + "webSrcHash": "L6ONDjGy8Uuo7E4O5ajIYdDLYL59JkuUk9hAAlTID1k=", + "webYarnHash": "15qhw2z05ylxvidaaifpxxdpd68s7qbwpgx9y95x6v82fcr7xhrz" } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix index 5017f8531179..97d6a7d5204a 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs-14_x, python3, yarn, fixup_yarn_lock, CoreServices, fetchYarnDeps }: +{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs, python3, yarn, fixup_yarn_lock, CoreServices, fetchYarnDeps, removeReferencesTo }: let pinData = lib.importJSON ./pin.json; @@ -16,10 +16,10 @@ in rustPlatform.buildRustPackage rec { sourceRoot = "source/seshat-node/native"; - nativeBuildInputs = [ nodejs-14_x python3 yarn ]; + nativeBuildInputs = [ nodejs python3 yarn ]; buildInputs = [ sqlcipher ] ++ lib.optional stdenv.isDarwin CoreServices; - npm_config_nodedir = nodejs-14_x; + npm_config_nodedir = nodejs; yarnOfflineCache = fetchYarnDeps { yarnLock = src + "/seshat-node/yarn.lock"; @@ -48,8 +48,11 @@ in rustPlatform.buildRustPackage rec { rm -rf native/!(index.node) rm -rf node_modules $HOME cp -r . $out + ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc.cc} $out/native/index.node runHook postInstall ''; + disallowedReferences = [ stdenv.cc.cc ]; + cargoSha256 = pinData.cargoHash; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh index 364f63a18bb6..a9c55a926ce7 100755 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh @@ -18,17 +18,29 @@ fi # strip leading "v" version="${version#v}" -desktop_src="https://raw.githubusercontent.com/vector-im/element-desktop/v$version" +# Element Web +web_src="https://raw.githubusercontent.com/vector-im/element-web/v$version" +web_src_hash=$(nix-prefetch-github vector-im element-web --rev v${version} | jq -r .sha256) +wget "$web_src/package.json" -O element-web-package.json + +web_tmpdir=$(mktemp -d) +trap 'rm -rf "$web_tmpdir"' EXIT + +pushd $web_tmpdir +wget "$web_src/yarn.lock" +sed -i '/matrix-analytics-events "github/d' yarn.lock +web_yarn_hash=$(prefetch-yarn-deps yarn.lock) +popd +# Element Desktop +desktop_src="https://raw.githubusercontent.com/vector-im/element-desktop/v$version" desktop_src_hash=$(nix-prefetch-github vector-im element-desktop --rev v${version} | jq -r .sha256) -web_hash=$(nix-prefetch-url "https://github.com/vector-im/element-web/releases/download/v$version/element-v$version.tar.gz") - wget "$desktop_src/package.json" -O element-desktop-package.json -tmpdir=$(mktemp -d) -trap 'rm -rf "$tmpdir"' EXIT +desktop_tmpdir=$(mktemp -d) +trap 'rm -rf "$desktop_tmpdir"' EXIT -pushd $tmpdir +pushd $desktop_tmpdir wget "$desktop_src/yarn.lock" desktop_yarn_hash=$(prefetch-yarn-deps yarn.lock) popd @@ -38,6 +50,7 @@ cat > pin.json << EOF "version": "$version", "desktopSrcHash": "$desktop_src_hash", "desktopYarnHash": "$desktop_yarn_hash", - "webHash": "$web_hash" + "webSrcHash": "$web_src_hash", + "webYarnHash": "$web_yarn_hash" } EOF diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix new file mode 100644 index 000000000000..9a6cf2d03580 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix @@ -0,0 +1,186 @@ +{ addOpenGLRunpath +, alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, autoPatchelfHook +, cairo +, cups +, dbus +, dpkg +, expat +, fetchurl +, fontconfig +, freetype +, gdk-pixbuf +, glib +, glibc +, gnutls +, gtk3 +, lib +, libGL +, libX11 +, libXScrnSaver +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXrandr +, libXrender +, libXtst +, libappindicator-gtk3 +, libcxx +, libdbusmenu +, libdrm +, libgcrypt +, libglvnd +, libnotify +, libuuid +, libxcb +, libxkbcommon +, libxkbfile +, libxshmfence +, makeShellWrapper +, mesa +, nspr +, nss +, pango +, pciutils +, pipewire +, pixman +, stdenv +, systemd +, wayland +, wrapGAppsHook +, xdg-utils + +# for custom command line arguments, e.g. "--use-gl=desktop" +, commandLineArgs ? "" +}: + +stdenv.mkDerivation rec { + version = "5.9.18"; + pname = "feishu"; + packageHash = "5db94058d7ad"; # A hash value used in the download url + + src = fetchurl { + url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/${packageHash}/Feishu-linux_x64-${version}.deb"; + sha256 = "ffb29b5a184b025d4e4ea468a8f684a7067ab5bfd45867abc370e59be63892c7"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + makeShellWrapper + dpkg + ]; + + buildInputs = [ + gtk3 + + # for autopatchelf + alsa-lib + cups + libXdamage + libdrm + libxshmfence + mesa + nspr + nss + ]; + + rpath = lib.makeLibraryPath [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + glibc + gnutls + libGL + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + libappindicator-gtk3 + libcxx + libdbusmenu + libdrm + libgcrypt + libglvnd + libnotify + libuuid + libxcb + libxkbcommon + libxkbfile + libxshmfence + mesa + nspr + nss + pango + pciutils + pipewire + pixman + stdenv.cc.cc + systemd + wayland + xdg-utils + ]; + + dontUnpack = true; + installPhase = '' + # This deb file contains a setuid binary, + # so 'dpkg -x' doesn't work here. + dpkg --fsys-tarfile $src | tar --extract + mkdir -p $out + mv usr/share $out/ + mv opt/ $out/ + + substituteInPlace $out/share/applications/bytedance-feishu.desktop \ + --replace /usr/bin/bytedance-feishu-stable $out/opt/bytedance/feishu/bytedance-feishu + + # Wrap feishu and vulcan + # Feishu is the main executable, vulcan is the builtin browser + for executable in $out/opt/bytedance/feishu/{feishu,vulcan/vulcan}; do + wrapProgram $executable \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --prefix LD_LIBRARY_PATH : ${rpath}:$out/opt/bytedance/feishu:${addOpenGLRunpath.driverLink}/share \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" \ + ${lib.optionalString (commandLineArgs!="") "--add-flags ${lib.escapeShellArg commandLineArgs}"} + done + + mkdir -p $out/share/icons/hicolor + base="$out/opt/bytedance/feishu" + for size in 16 24 32 48 64 128 256; do + mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps + ln -s $base/product_logo_$size.png $out/share/icons/hicolor/''${size}x''${size}/apps/bytedance-feishu.png + done + + mkdir -p $out/bin + ln -s $out/opt/bytedance/feishu/bytedance-feishu $out/bin/bytedance-feishu + ''; + + meta = with lib; { + description = "An all-in-one collaboration suite"; + homepage = "https://www.feishu.cn/en/"; + downloadPage = "https://www.feishu.cn/en/#en_home_download_block"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ billhuang ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix index 0a44a37cf4bc..82f808be3b6e 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix @@ -17,18 +17,22 @@ in mkFranzDerivation' rec { pname = "ferdi"; name = "Ferdi"; - version = "5.8.0"; + version = "5.8.1"; src = fetchurl { - url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb"; - sha256 = "sha256-Dd/iH9dtr4WvM++bSURF8kI6BsF6uBiSFviC/ik2H+o="; + url = "https://master.dl.sourceforge.net/project/ferdi.mirror/v${version}/ferdi_${version}_amd64.deb"; + sha256 = "sha256-Bl7bM5iDQlfPSZxksqlg7GbuwWlm53QkOf/TQEg3/n0="; }; extraBuildInputs = [ xorg.libxshmfence ]; meta = with lib; { description = "Combine your favorite messaging services into one application"; homepage = "https://getferdi.com/"; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; license = licenses.asl20; maintainers = with maintainers; [ davidtwco ma27 ]; platforms = [ "x86_64-linux" ]; hydraPlatforms = [ ]; + knownVulnerabilities = [ + "CVE-2022-32320" + ]; }; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix new file mode 100644 index 000000000000..2f02e28df412 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix @@ -0,0 +1,22 @@ +{ lib, mkFranzDerivation, fetchurl, xorg }: + +mkFranzDerivation rec { + pname = "ferdium"; + name = "Ferdium"; + version = "6.0.0"; + src = fetchurl { + url = "https://github.com/ferdium/ferdium-app/releases/download/v${version}/Ferdium-linux-${version}-amd64.deb"; + sha256 = "sha256-395rleN2T8iUejLRjl51N+lgqtWwHXad36WpIT1BFGQ="; + }; + + extraBuildInputs = [ xorg.libxshmfence ]; + + meta = with lib; { + description = "All your services in one place built by the community"; + homepage = "https://ferdium.org/"; + license = licenses.asl20; + maintainers = with maintainers; [ magnouvean ]; + platforms = [ "x86_64-linux" ]; + hydraPlatforms = [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix index 565c44f72e92..d50e7118cc18 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix @@ -10,7 +10,7 @@ flutter.mkFlutterApp rec { pname = "fluffychat"; version = "1.2.0"; - vendorHash = "sha256-j5opwEFifa+DMG7Uziv4SWEPVokD6OSq8mSIr0AdDL0="; + vendorHash = "sha256-co+bnsVIyg42JpM9FimfGEjrd6A99GlBeow1Dgv7NBI="; src = fetchFromGitLab { owner = "famedly"; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal-next/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal-next/default.nix new file mode 100644 index 000000000000..140b72f20f01 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal-next/default.nix @@ -0,0 +1,76 @@ +{ stdenv +, lib +, fetchFromGitLab +, meson +, ninja +, rustPlatform +, pkg-config +, glib +, gtk4 +, gtksourceview5 +, libadwaita +, gstreamer +, gst-plugins-base +, gst-plugins-bad +, libsecret +, desktop-file-utils +, appstream-glib +, openssl +, pipewire +, libshumate +, wrapGAppsHook4 +}: + +stdenv.mkDerivation rec { + pname = "fractal-next"; + version = "unstable-2022-07-10"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "fractal"; + rev = "837b56978474fe512469805844b8ee234587499a"; + hash = "sha256-6op/+eiDra5EFRludpkQOucBXdPl5a/oQWPwwhJEx+M="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + hash = "sha256-2mE26ES+fYSWdfMr8uTsX2VVGTNMDQ9MXEk5E/L95UI="; + }; + + nativeBuildInputs = [ + glib + gtk4 + meson + ninja + pkg-config + rustPlatform.bindgenHook + rustPlatform.cargoSetupHook + rustPlatform.rust.cargo + rustPlatform.rust.rustc + desktop-file-utils + appstream-glib + wrapGAppsHook4 + ]; + + buildInputs = [ + glib + gstreamer + gst-plugins-base + gst-plugins-bad + gtk4 + gtksourceview5 + libadwaita + libsecret + openssl + pipewire + libshumate + ]; + + meta = with lib; { + description = "Matrix group messaging app (development version)"; + homepage = "https://gitlab.gnome.org/GNOME/fractal"; + license = licenses.gpl3Plus; + maintainers = teams.gnome.members ++ (with maintainers; [ anselmschueler ]); + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix index 9f772bf3f6d7..a910105fde80 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix @@ -3,14 +3,15 @@ mkFranzDerivation rec { pname = "franz"; name = "Franz"; - version = "5.6.1"; + version = "5.9.2"; src = fetchurl { url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb"; - sha256 = "1gn0n1hr6z2gsdnpxysyq6sm8y7cjr9jafhsam8ffw0bq74kph7p"; + sha256 = "sha256-W/60g5CbSUZcNASjdbiS7DNv9375GiesEG60QLLAh1g="; }; meta = with lib; { description = "A free messaging app that combines chat & messaging services into one application"; homepage = "https://meetfranz.com"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.free; maintainers = [ maintainers.davidtwco ]; platforms = [ "x86_64-linux" ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix index 4c28e346a124..ffe82e6708aa 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub +{ lib, stdenv, fetchFromGitHub, fetchpatch , guile, pkg-config, glib, loudmouth, gmp, libidn, readline, libtool , libunwind, ncurses, curl, jansson, texinfo , automake, autoconf }: @@ -13,6 +13,16 @@ stdenv.mkDerivation rec { sha256 = "09jwk2i8qd8c7wrn9xbqcwm32720dwxis22kf3jpbg8mn6w6i757"; }; + patches = [ + # Pull pending patch for -fno-common tuulchain support: + # https://github.com/GNUFreetalk/freetalk/pull/39 + (fetchpatch { + name = "fno-common.patch"; + url = "https://github.com/GNUFreetalk/freetalk/commit/f04d6bc8422be44cdf51b29c9a4310f20a18775a.patch"; + sha256 = "1zjm56cdibnqabgcwl2bx79dj6dmqjf40zghqwwb0lfi60v1njqf"; + }) + ]; + preConfigure = '' ./autogen.sh ''; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix index 3c56d84db4b5..2cd6b897d768 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix @@ -2,6 +2,7 @@ # Native dependencies , python3, gtk3, gobject-introspection, gnome +, gtksourceview4 , glib-networking # Test dependencies @@ -21,15 +22,16 @@ python3.pkgs.buildPythonApplication rec { pname = "gajim"; - version = "1.3.3"; + version = "1.4.7"; src = fetchurl { url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz"; - sha256 = "1337qkpcv7j0fgws9scnk82mn2l7s17060vmrbh3ihinmxmbxg6x"; + sha256 = "sha256-GkgHvzo0sxBIgk5P/3Yr0eFiL0ZOc6QmwJaE3Ck2hPM="; }; buildInputs = [ gobject-introspection gtk3 gnome.adwaita-icon-theme + gtksourceview4 glib-networking ] ++ lib.optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-good libnice ] ++ lib.optional enableSecrets libsecret @@ -41,21 +43,6 @@ python3.pkgs.buildPythonApplication rec { gettext wrapGAppsHook ]; - # Workaround for https://dev.gajim.org/gajim/gajim/-/issues/10719. - # We don't use plugin release URL because it's updated in place. - plugins = fetchFromGitLab { - domain = "dev.gajim.org"; - owner = "gajim"; - repo = "gajim-plugins"; - rev = "fea522e4360cec6ceacbf1df92644ab3343d4b99"; - sha256 = "sha256-CmwEiLsdldoOfgHfWL/5hf/dp0HEDNAIlc5N0Np20KE="; - }; - - postPatch = '' - mkdir -p gajim/data/plugins - cp -r $plugins/plugin_installer gajim/data/plugins - ''; - dontWrapGApps = true; preFixup = '' @@ -63,7 +50,7 @@ python3.pkgs.buildPythonApplication rec { ''; propagatedBuildInputs = with python3.pkgs; [ - nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools + nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools packaging gssapi ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ] ++ lib.optional enableRST docutils ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ] @@ -74,7 +61,7 @@ python3.pkgs.buildPythonApplication rec { checkPhase = '' xvfb-run dbus-run-session \ --config-file=${dbus.daemon}/share/dbus-1/session.conf \ - ${python3.interpreter} -m unittest discover -s test/unit -v + ${python3.interpreter} -m unittest discover -s test/gtk -v ${python3.interpreter} -m unittest discover -s test/no_gui -v ''; @@ -86,7 +73,7 @@ python3.pkgs.buildPythonApplication rec { description = "Jabber client written in PyGTK"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ raskin abbradar ]; - downloadPage = "http://gajim.org/downloads.php"; + downloadPage = "http://gajim.org/download/"; platforms = lib.platforms.linux; }; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix index 8ed85cba8546..04d8909f3d89 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix @@ -94,6 +94,7 @@ in stdenv.mkDerivation rec { meta = with lib; { description = "Where developers come to talk"; downloadPage = "https://gitter.im/apps"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.mit; maintainers = [ maintainers.imalison ]; platforms = [ "x86_64-linux" ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gotktrix/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gotktrix/default.nix index f44c05da5c01..d0f9f3d9e52e 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/gotktrix/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gotktrix/default.nix @@ -10,16 +10,16 @@ buildGoModule rec { pname = "gotktrix"; - version = "0.1.2"; + version = "0.1.4"; src = fetchFromGitHub { owner = "diamondburned"; repo = pname; rev = "v${version}"; - sha256 = "sha256-K+q0sykdOMnAWypOXnwTU5oTokpYw61CTsAW1gIvGSQ="; + sha256 = "sha256-ZaE7L43fA9L5WbTAsBiIxlwYgjl1hMrtfrraAROz+7k="; }; - vendorSha256 = "sha256-Br9KgUoN01yoGujgbj5UEoB57K87oEH/o40rrRtIZVY="; + vendorSha256 = "sha256-k6T44aH1NogyrbUnflfEHkp0zpOOH1YFly/X2kwbMzs="; buildInputs = [ gtk4 @@ -32,6 +32,12 @@ buildGoModule rec { # Checking requires a working display doCheck = false; + postInstall = '' + echo 'X-Purism-FormFactor=Workstation;Mobile;' >> .nix/com.github.diamondburned.gotktrix.desktop + install -Dm444 .nix/com.github.diamondburned.gotktrix.desktop -t $out/share/applications/ + install -Dm444 .github/logo-256.png -T $out/share/icons/hicolor/256x256/apps/gotktrix.png + ''; + meta = with lib; { description = "Matrix client written in Go using GTK4"; homepage = "https://github.com/diamondburned/gotktrix"; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix deleted file mode 100644 index 3474e5729316..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{lib, stdenv, fetchurl, ncurses, openssl, tcl, tk}: - -stdenv.mkDerivation rec { - pname = "gtmess"; - version = "0.97"; - - src = fetchurl { - url = "mirror://sourceforge/gtmess/gtmess-${version}.tar.gz"; - sha256 = "1ipmqsrj0r1ssbgs2fpr4x5vnzlxlqhx9jrnadp1jw7s0sxpjqv0"; - }; - - buildInputs = [ ncurses openssl tcl tk]; - - meta = { - description = "Console MSN Messenger client for Linux and other unix systems"; - homepage = "http://gtmess.sourceforge.net/"; - license = lib.licenses.gpl2Plus; - platforms = with lib.platforms; linux; - }; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix index 6430ebdd22fc..924a918ebceb 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix @@ -7,21 +7,22 @@ rustPlatform.buildRustPackage rec { pname = "gurk-rs"; - version = "0.2.3"; + version = "0.2.4"; src = fetchFromGitHub { owner = "boxdot"; repo = pname; rev = "v${version}"; - sha256 = "sha256-Mko5udM8BY50uUwn7xESxB+s0MEO1kAJX4Dt/DnEEa4="; + sha256 = "sha256-WZUoUvu7GaiBOaRAOGRCXrLe6u3DRbI6CDTAf5jryGc="; }; - cargoHash = "sha256-pYMMgBvLsqkj2peouDQK1vn97ByUjtdCrkbzuZZLXrY="; + cargoHash = "sha256-81ZW61JX40W0D/cmYogR3RJH2dvEKW1K7sIsl2io/7E="; buildInputs = [ protobuf ]; PROTOC = "${protobuf}/bin/protoc"; meta = with lib; { + broken = stdenv.isDarwin; description = "Signal Messenger client for terminal"; homepage = "https://github.com/boxdot/gurk-rs"; license = licenses.agpl3Only; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix index 6a677c9e0d61..8debefa0c11c 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix @@ -81,6 +81,7 @@ in stdenv.mkDerivation { meta = with lib; { description = "Desktop client for HipChat services"; homepage = "http://www.hipchat.com"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ puffnfresh ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix deleted file mode 100644 index 8cb748f54059..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ version -, src -, jami-meta -, stdenv -, lib -, pkg-config -, cmake -, wrapQtAppsHook -, wrapGAppsHook -, gtk3-x11 -, networkmanager # for libnm -, libayatana-appindicator -, libnotify -, clutter-gtk -, libcanberra-gtk3 -, webkitgtk -, qrencode -, jami-libclient -, qttools -}: - -stdenv.mkDerivation { - pname = "jami-client-gnome"; - inherit version src; - - sourceRoot = "source/client-gnome"; - - preConfigure = '' - echo ${version} > version.txt - ''; - - nativeBuildInputs = [ - pkg-config - cmake - wrapGAppsHook - wrapQtAppsHook - ]; - # To spare double wrapping - dontWrapGApps = true; - preFixup = '' - qtWrapperArgs+=("''${gappsWrapperArgs[@]}") - # Users that set CLUTTER_BACKEND=wayland in their default environment will - # encounter a segfault due to: - # https://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1100 . - qtWrapperArgs+=("--unset" "CLUTTER_BACKEND") - ''; - - buildInputs = [ - qttools - jami-libclient - gtk3-x11 - networkmanager - libayatana-appindicator - libnotify - clutter-gtk - libcanberra-gtk3 - webkitgtk - qrencode - ]; - - meta = jami-meta // { - description = "The client based on GTK" + jami-meta.description; - }; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-qt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-qt.nix index 0c952fd1ecad..840606bf19a9 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-qt.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/client-qt.nix @@ -1,27 +1,30 @@ { version , src , jami-meta -, mkDerivation , lib +, stdenv , pkg-config , cmake , networkmanager # for libnm , python3 , qttools # for translations , wrapQtAppsHook +, ffmpeg-jami +, jami-daemon , libnotify -, qrencode -, qtwebengine +, qt5compat +, qtbase , qtdeclarative -, qtquickcontrols2 +, qrencode , qtmultimedia +, qtnetworkauth , qtsvg +, qtwebengine , qtwebchannel -, qtgraphicaleffects # no gui without this -, jami-libclient +, withWebengine ? false }: -mkDerivation { +stdenv.mkDerivation { pname = "jami-client-qt"; inherit version src; @@ -33,6 +36,7 @@ mkDerivation { ''; nativeBuildInputs = [ + wrapQtAppsHook pkg-config cmake python3 @@ -40,17 +44,32 @@ mkDerivation { ]; buildInputs = [ - jami-libclient - networkmanager + ffmpeg-jami + jami-daemon libnotify + networkmanager + qtbase + qt5compat qrencode - qtwebengine + qtnetworkauth qtdeclarative - qtquickcontrols2 qtmultimedia qtsvg qtwebchannel - qtgraphicaleffects + ] ++ lib.optionals withWebengine [ + qtwebengine + ]; + + cmakeFlags = [ + "-DRING_BUILD_DIR=${jami-daemon}/include" + "-DRING_XML_INTERFACES_DIR=${jami-daemon}/share/dbus-1/interfaces" + ] ++ lib.optionals (!withWebengine) [ + "-DWITH_WEBENGINE=false" + ]; + + qtWrapperArgs = [ + # With wayland the titlebar is not themed and the wmclass is wrong. + "--set-default QT_QPA_PLATFORM xcb" ]; meta = jami-meta // { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common index 9376a38b1874..0aac24e24bb6 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common @@ -19,6 +19,9 @@ --disable-muxers --enable-muxer=rtp --enable-muxer=g722 +--enable-muxer=g723_1 +--enable-muxer=g726 +--enable-muxer=g726le --enable-muxer=h263 --enable-muxer=h264 --enable-muxer=hevc @@ -43,6 +46,9 @@ --enable-demuxer=wav --enable-demuxer=ac3 --enable-demuxer=g722 +--enable-demuxer=g723_1 +--enable-demuxer=g726 +--enable-demuxer=g726le --enable-demuxer=pcm_mulaw --enable-demuxer=pcm_alaw --enable-demuxer=pcm_s16be @@ -59,6 +65,13 @@ --enable-parser=opus --enable-encoder=adpcm_g722 --enable-decoder=adpcm_g722 +--enable-encoder=adpcm_g726 +--enable-decoder=adpcm_g726 +--enable-encoder=adpcm_g726le +--enable-decoder=adpcm_g726le +--enable-decoder=g729 +--enable-encoder=g723_1 +--enable-decoder=g723_1 --enable-encoder=rawvideo --enable-decoder=rawvideo --enable-encoder=libx264 diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches index 2422192c09f5..28f884e66769 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches @@ -2,5 +2,6 @@ remove-mjpeg-log.patch change-RTCP-ratio.patch rtp_ext_abs_send_time.patch libopusdec-enable-FEC.patch -libopusenc-enable-FEC.patch +libopusenc-reload-packet-loss-at-encode.patch +ios-disable-b-frames.patch screen-sharing-x11-fix.patch diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common new file mode 100644 index 000000000000..5c3f607e5c0e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common @@ -0,0 +1,19 @@ +--disable-sound +--enable-video +--enable-ext-sound +--disable-speex-aec +--disable-g711-codec +--disable-l16-codec +--disable-gsm-codec +--disable-g722-codec +--disable-g7221-codec +--disable-speex-codec +--disable-ilbc-codec +--disable-opencore-amr +--disable-silk +--disable-sdl +--disable-ffmpeg +--disable-v4l2 +--disable-openh264 +--disable-resample +--disable-libwebrtc diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux new file mode 100644 index 000000000000..d1292afe3a29 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux @@ -0,0 +1 @@ +--enable-epoll diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix index f39b731132ea..131ca7b913c0 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/daemon.nix @@ -2,80 +2,38 @@ , version , jami-meta , stdenv -, lib -, fetchFromGitHub , autoreconfHook , pkg-config , perl # for pod2man -, ffmpeg_4 -, pjsip , alsa-lib , asio , dbus , dbus_cplusplus +, ffmpeg-jami , fmt , gmp +, gnutls +, http-parser +, jack +, jsoncpp , libarchive , libgit2 , libnatpmp -, secp256k1 -, openssl -, opendht -, speex -, webrtc-audio-processing -, jsoncpp -, gnutls -, zlib -, libyamlcpp , libpulseaudio -, jack -, udev , libupnp +, libyamlcpp , msgpack +, opendht-jami +, openssl +, pjsip-jami , restinio -, http-parser +, secp256k1 +, speex +, udev +, webrtc-audio-processing +, zlib }: -let - readLinesToList = with builtins; file: filter (s: isString s && stringLength s > 0) (split "\n" (readFile file)); - - ffmpeg-jami = ffmpeg_4.overrideAttrs (old: - let - patch-src = src + "/daemon/contrib/src/ffmpeg/"; - in - { - patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/ffmpeg_patches)); - configureFlags = old.configureFlags - ++ (readLinesToList ./config/ffmpeg_args_common) - ++ lib.optionals stdenv.isLinux (readLinesToList ./config/ffmpeg_args_linux) - ++ lib.optionals (stdenv.isx86_32 || stdenv.isx86_64) (readLinesToList ./config/ffmpeg_args_x86); - outputs = [ "out" "doc" ]; - meta = old.meta // { - # undefined reference to `ff_nlmeans_init_aarch64' - broken = stdenv.isAarch64; - }; - }); - - pjsip-jami = pjsip.overrideAttrs (old: - let - src-args = import ./pjproject-src.nix; - version = lib.concatStrings (lib.lists.take 7 (lib.stringToCharacters src-args.rev)); - patch-src = src + "/daemon/contrib/src/pjproject/"; - in - { - inherit version; - - src = fetchFromGitHub src-args; - - patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches)); - }); - - opendht-jami = opendht.override { - enableProxyServerAndClient = true; - enablePushNotifications = true; - }; - -in stdenv.mkDerivation { pname = "jami-daemon"; inherit src version; @@ -96,26 +54,25 @@ stdenv.mkDerivation { ffmpeg-jami gmp gnutls + http-parser + jack + jsoncpp libarchive libgit2 libnatpmp + libpulseaudio + libupnp + libyamlcpp + msgpack opendht-jami + openssl pjsip-jami + restinio secp256k1 - openssl speex + udev webrtc-audio-processing zlib - libyamlcpp - jsoncpp - libpulseaudio - jack - opendht - libupnp - udev - msgpack - restinio - http-parser ]; doCheck = false; # The tests fail to compile due to missing headers. @@ -124,9 +81,6 @@ stdenv.mkDerivation { passthru = { updateScript = ./update.sh; - ffmpeg = ffmpeg-jami; - pjsip = pjsip-jami; - opendht = opendht-jami; }; meta = jami-meta // { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix index 3e0ba8bb5e8f..690f6534e938 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix @@ -1,24 +1,30 @@ { stdenv , lib , callPackage +, fetchFromGitHub , fetchzip +, ffmpeg_4 +, pjsip +, opendht , jack , udev -, libsForQt5 +, qt6Packages }: -rec { - version = "20211223.2.37be4c3"; +let + version = "20220726.1515.da8d1da"; src = fetchzip { url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz"; - sha256 = "1zw9azwmxr4991nq5kl527lbwlj7psrissgvrkl1kxxbfbdncbhh"; + hash = "sha256-yK+xo+YpNYmmWyNAE31hiL6HLvDdEFkm8FO6LQmPCL0="; stripRoot = false; - extraPostFetch = '' + postFetch = '' cd $out - mv ring-project/* ./ - rm -r ring-project.rst ring-project client-android client-ios client-macosx client-uwp + mv jami-project/daemon ./ + mv jami-project/client-qt ./ + mv jami-project/COPYING ./ + rm -r jami-project.rst jami-project rm daemon/contrib/tarballs/* ''; }; @@ -31,11 +37,56 @@ rec { maintainers = [ maintainers.linsui ]; }; - jami-daemon = callPackage ./daemon.nix { inherit version src udev jack jami-meta; }; + readLinesToList = with builtins; file: filter (s: isString s && stringLength s > 0) (split "\n" (readFile file)); +in +rec { + ffmpeg-jami = ffmpeg_4.overrideAttrs (old: + let + patch-src = src + "/daemon/contrib/src/ffmpeg/"; + in + { + patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/ffmpeg_patches)); + configureFlags = old.configureFlags + ++ (readLinesToList ./config/ffmpeg_args_common) + ++ lib.optionals stdenv.isLinux (readLinesToList ./config/ffmpeg_args_linux) + ++ lib.optionals (stdenv.isx86_32 || stdenv.isx86_64) (readLinesToList ./config/ffmpeg_args_x86); + outputs = [ "out" "doc" ]; + meta = old.meta // { + # undefined reference to `ff_nlmeans_init_aarch64' + broken = stdenv.isAarch64; + }; + }); + + pjsip-jami = pjsip.overrideAttrs (old: + let + patch-src = src + "/daemon/contrib/src/pjproject/"; + in + rec { + version = "4af5d666d18837abaac94c8ec6bfc84984dcf1e2"; - jami-libclient = libsForQt5.callPackage ./libclient.nix { inherit version src jami-meta; }; + src = fetchFromGitHub { + owner = "savoirfairelinux"; + repo = "pjproject"; + rev = version; + sha256 = "sha256-ENRfQh/HCXqInTV0tu8tGQO7+vTbST6XXpptERXMACE="; + }; - jami-client-gnome = libsForQt5.callPackage ./client-gnome.nix { inherit version src jami-meta; }; + patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches)); - jami-client-qt = libsForQt5.callPackage ./client-qt.nix { inherit version src jami-meta; }; + configureFlags = (readLinesToList ./config/pjsip_args_common) + ++ lib.optionals stdenv.isLinux (readLinesToList ./config/pjsip_args_linux); + }); + + opendht-jami = opendht.override { + enableProxyServerAndClient = true; + enablePushNotifications = true; + }; + + jami-daemon = callPackage ./daemon.nix { + inherit version src udev jack jami-meta ffmpeg-jami pjsip-jami opendht-jami; + }; + + jami-client-qt = qt6Packages.callPackage ./client-qt.nix { + inherit version src jami-meta ffmpeg-jami; + }; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch deleted file mode 100644 index 3ae017eb458b..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient-include-path.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git i/CMakeLists.txt w/CMakeLists.txt -index 0ee77dba..767e19df 100644 ---- i/CMakeLists.txt -+++ w/CMakeLists.txt -@@ -635,7 +635,7 @@ if(ENABLE_SHARED) - ) - endif() - --SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include) -+SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_FULL_INCLUDEDIR}) - - INSTALL( FILES ${libringclient_LIB_HDRS} ${libringclient_extra_LIB_HDRS} - DESTINATION ${INCLUDE_INSTALL_DIR}/libringclient diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient.nix deleted file mode 100644 index b5ea7431b915..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/libclient.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ version -, src -, jami-meta -, stdenv -, lib -, pkg-config -, cmake -, qtbase -, jami-daemon -}: - -stdenv.mkDerivation { - pname = "jami-libclient"; - inherit version src; - - sourceRoot = "source/lrc"; - - nativeBuildInputs = [ - cmake - pkg-config - ]; - - buildInputs = [ - jami-daemon - ]; - - patches = [ - # Fix path to include dir when using split outputs - ./libclient-include-path.patch - ]; - - propagatedBuildInputs = [ - qtbase - ]; - outputs = [ "out" "dev" ]; - - cmakeFlags = [ - "-DRING_BUILD_DIR=${jami-daemon}/include" - "-DRING_XML_INTERFACES_DIR=${jami-daemon}/share/dbus-1/interfaces" - ]; - - dontWrapQtApps = true; - - meta = jami-meta // { - description = "The client library" + jami-meta.description; - license = lib.licenses.lgpl21Plus; - }; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix deleted file mode 100644 index 76e88d887555..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - owner = "savoirfairelinux"; - repo = "pjproject"; - rev = "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a"; - sha256 = "0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza"; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh index 10d9bb885c35..abc7728e0703 100755 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/update.sh @@ -3,11 +3,15 @@ set -e -jami_dir="$( dirname "${BASH_SOURCE[0]}" )" +jami_dir=$(readlink -e $(dirname "${BASH_SOURCE[0]}")) + +cd $jami_dir/../../../../.. # Update src version and hash version=$(curl -s 'https://dl.jami.net/release/tarballs/?C=M;O=D' | sed -n -E 's/^.*jami_([0-9.a-f]+)\.tar\.gz.*$/\1/p' | head -n 1) -update-source-version jami-libclient "$version" --file=pkgs/applications/networking/instant-messengers/jami/default.nix +echo "Latest version: ${version}" + +update-source-version jami-daemon "$version" --file=$jami_dir/default.nix src=$(nix-build --no-out-link -A jami-libclient.src) @@ -17,7 +21,7 @@ mkdir -p $config_dir ffmpeg_rules="${src}/daemon/contrib/src/ffmpeg/rules.mak" # Update FFmpeg patches -ffmpeg_patches=$(sed -n '/.sum-ffmpeg:/,/HAVE_IOS/p' ${ffmpeg_rules} | sed -n -E 's/.*ffmpeg\/(.*patch).*/\1/p') +ffmpeg_patches=$(sed -n '/^ffmpeg:/,/^$/p' ${ffmpeg_rules} | sed -n -E 's/.*ffmpeg\/(.*patch).*/\1/p') echo -e "Patches for FFmpeg:\n${ffmpeg_patches}\n" echo "${ffmpeg_patches}" > "$config_dir/ffmpeg_patches" @@ -43,8 +47,15 @@ echo "${pjsip_patches}" > "$config_dir/pjsip_patches" # Update pjsip version pjsip_version=$(sed -n -E 's/.*PJPROJECT_VERSION := ([0-9a-f]+).*/\1/p' ${src}/daemon/contrib/src/pjproject/rules.mak) -nix-prefetch fetchFromGitHub \ - --owner savoirfairelinux \ - --repo pjproject \ - --rev ${pjsip_version} \ - --output nix > "${jami_dir}/pjproject-src.nix" +update-source-version jami-daemon.pjsip "$pjsip_version" --file=pkgs/applications/networking/instant-messengers/jami/daemon.nix + +pjsip_rules="${src}/daemon/contrib/src/pjproject/rules.mak" + +# Update pjsip args +pjsip_args_common=$(sed -n '/PJPROJECT_OPTIONS :=/,/with-gnutls/p' ${pjsip_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*\\/\1/p') +echo -e "Common args for pjsip:\n${pjsip_args_common}\n" +echo "${pjsip_args_common}" > "$config_dir/pjsip_args_common" + +pjsip_args_linux=$(sed -n '/HAVE_LINUX/,/endif/p' ${pjsip_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p') +echo -e "Linux args for pjsip:\n${pjsip_args_linux}\n" +echo "${pjsip_args_linux}" > "$config_dir/pjsip_args_linux" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix index 2395a196f605..9625f8dcb2c3 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix @@ -9,11 +9,11 @@ stdenv.mkDerivation rec { pname = "jitsi-meet-electron"; - version = "2022.1.1"; + version = "2022.3.1"; src = fetchurl { url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage"; - sha256 = "0x3fdqgjnsd570b7nszfx3h8l5c8x2kg32ig85n2a2g481c7xi6l"; + sha256 = "sha256-/5WpjmTLwQN73m7nHg4DKPbXIbD9WyJ+YBbFMD4ZDfg="; name = "${pname}-${version}.AppImage"; }; @@ -46,7 +46,8 @@ stdenv.mkDerivation rec { postFixup = '' makeWrapper ${electron}/bin/electron $out/bin/${pname} \ --add-flags $out/share/${pname}/resources/app.asar \ - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc xorg.libXtst pipewire ]}" + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc xorg.libXtst pipewire ]}" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" ''; meta = with lib; { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix index 21c28c7391ae..0ef6b2e74d7b 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix @@ -65,6 +65,10 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://jitsi.org/"; description = "Open Source Video Calls and Chat"; + sourceProvenance = with sourceTypes; [ + binaryBytecode + binaryNativeCode + ]; license = licenses.lgpl21Plus; platforms = platforms.linux; maintainers = teams.jitsi.members; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix index fc14f77198b5..c296118eff9e 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix @@ -12,6 +12,7 @@ , knotifications , zxing-cpp , qxmpp +, sonnet , gst_all_1 }: @@ -38,6 +39,7 @@ mkDerivation rec { knotifications zxing-cpp qxmpp + sonnet gstreamer gst-plugins-bad gst-plugins-base diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix index 5fe90d50a31a..baa4613b1731 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix @@ -14,13 +14,13 @@ mkDerivation rec { pname = "kdeltachat"; - version = "unstable-2022-01-02"; + version = "unstable-2022-03-20"; src = fetchFromSourcehut { owner = "~link2xt"; repo = "kdeltachat"; - rev = "ec545c8208c870c44312558f91c79e6ffce4444e"; - hash = "sha256-s/dJ2ahdUK7ODKsna+tl81e+VQLkCAELb/iEXf9WlIM="; + rev = "8cce6d20b49e917929521a13caed30e81037c868"; + hash = "sha256-1L45KodOmvy6pBbBzJwGWMAY7y3+lfxjeXtsH1SdipU="; }; nativeBuildInputs = [ diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix index 47ee2a68a51a..71299566dd87 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix @@ -1,57 +1,39 @@ -{ bcg729 -, bctoolbox -, bcunit +{ bctoolbox , belcard , belle-sip , belr -, bzrtp -, cairo , cmake -, cyrus_sasl , fetchFromGitLab -, fetchurl -, ffmpeg -, gdk-pixbuf -, glib -, gnused -, graphviz -, gtk2 -, intltool , lib -, libexosip , liblinphone -, libmatroska -, libnotify -, libosip -, libsoup -, libupnp -, libX11 -, libxml2 -, makeWrapper -, mbedtls , mediastreamer , mediastreamer-openh264 , minizip2 , mkDerivation -, openldap -, ortp -, pango -, pkg-config -, qtbase , qtgraphicaleffects , qtquickcontrols2 , qttranslations -, readline -, speex -, sqlite - -, udev -, zlib }: +# How to update Linphone? (The Qt desktop app) +# +# Belledonne Communications (BC), the company making Linphone, has split the +# project into several sub-projects that they maintain, plus some third-party +# dependencies that they also extend with commits of their own, specific to +# Linphone and not (yet?) upstreamed. +# +# All of this is organised in a Software Development Kit (SDK) meta-repository +# with git submodules to pin all those repositories into a coherent whole. +# +# The Linphone Qt desktop app uses this SDK as submodule as well. +# +# So, in order to update the desktop app to a new release, one has to follow +# the submodule chain and update the corresponding derivations here, in nixpkgs, +# with the corresponding version number (or commit hash) + mkDerivation rec { pname = "linphone-desktop"; - version = "4.2.5"; + version = "4.4.1"; src = fetchFromGitLab { domain = "gitlab.linphone.org"; @@ -59,12 +41,13 @@ mkDerivation rec { group = "BC"; repo = pname; rev = version; - sha256 = "1gq4l9p21rbrcksa7fbkzn9fzbbynqmn6ni6lhnvzk359sb1xvbz"; + sha256 = "sha256-BBOTyKMZikkxMJSmzAuChVHpVeCvbAimn1K3REGbqEg="; }; patches = [ ./do-not-build-linphone-sdk.patch ./remove-bc_compute_full_version-usage.patch + ./no-store-path-in-autostart.patch ]; # See: https://gitlab.linphone.org/BC/public/linphone-desktop/issues/21 @@ -78,59 +61,31 @@ mkDerivation rec { # there might be some build inputs here that aren't needed for # linphone-desktop. buildInputs = [ - bcg729 + # Made by BC bctoolbox belcard belle-sip belr - bzrtp - cairo - cyrus_sasl - ffmpeg - gdk-pixbuf - glib - gtk2 - libX11 - libexosip liblinphone - libmatroska - libnotify - libosip - libsoup - libupnp - libxml2 - mbedtls mediastreamer mediastreamer-openh264 + minizip2 - openldap - ortp - pango - qtbase qtgraphicaleffects qtquickcontrols2 qttranslations - readline - speex - sqlite - udev - zlib ]; nativeBuildInputs = [ - bcunit cmake - gnused - graphviz - intltool - makeWrapper - pkg-config ]; cmakeFlags = [ - "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DMINIZIP_INCLUDE_DIRS=${minizip2}/include" "-DMINIZIP_LIBRARIES=minizip" + + # RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/ + "-DCMAKE_SKIP_BUILD_RPATH=ON" ]; # The default install phase fails because the paths are somehow messed up in @@ -162,18 +117,25 @@ mkDerivation rec { # Linphone will randomly crash when it tries to access those files. Then, # those just need to be copied manually below. installPhase = '' - mkdir -p $out/bin + mkdir -p $out/bin $out/lib cp linphone-app/linphone $out/bin/ + cp linphone-app/libapp-plugin.so $out/lib/ + mkdir -p $out/lib/mediastreamer/plugins + ln -s ${mediastreamer-openh264}/lib/mediastreamer/plugins/* $out/lib/mediastreamer/plugins/ + ln -s ${mediastreamer}/lib/mediastreamer/plugins/* $out/lib/mediastreamer/plugins/ wrapProgram $out/bin/linphone \ --set MEDIASTREAMER_PLUGINS_DIR \ - ${mediastreamer-openh264}/lib/mediastreamer/plugins + $out/lib/mediastreamer/plugins mkdir -p $out/share/applications cp linphone-app/linphone.desktop $out/share/applications/ - cp -r ../linphone-app/assets/icons $out/share/ + mkdir -p $out/share/icons/hicolor/scalable/apps + cp ../linphone-app/assets/images/linphone_logo.svg $out/share/icons/hicolor/scalable/apps/linphone.svg mkdir -p $out/share/belr/grammars ln -s ${liblinphone}/share/belr/grammars/* $out/share/belr/grammars/ + ln -s ${belle-sip}/share/belr/grammars/* $out/share/belr/grammars/ mkdir -p $out/share/linphone ln -s ${liblinphone}/share/linphone/* $out/share/linphone/ + ln -s ${liblinphone}/share/sounds $out/share/sounds ''; meta = with lib; { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch index fe774a479fac..dc635b32a031 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch @@ -1,30 +1,31 @@ -From 08b8b1811a1ad079fa713d19a8cc6bf2dc782bb7 Mon Sep 17 00:00:00 2001 -From: David P <megver83@parabola.nu> -Date: Thu, 26 Nov 2020 15:56:30 -0300 -Subject: [PATCH 1/2] do not build linphone-sdk +From e6a9992461f368d08d1ad63ffe454714ec0c59ce Mon Sep 17 00:00:00 2001 +From: Lorenz Brun <lorenz@brun.one> +Date: Fri, 28 Jan 2022 02:36:01 +0100 +Subject: [PATCH] Remove Linphone SDK build -Signed-off-by: David P <megver83@parabola.nu> --- - CMakeLists.txt | 61 +------------------ - .../cmake_builder/additional_steps.cmake | 9 --- - 2 files changed, 3 insertions(+), 67 deletions(-) + CMakeLists.txt | 86 ++----------------- + .../cmake_builder/additional_steps.cmake | 9 -- + 2 files changed, 5 insertions(+), 90 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index f7eb05f2..5921ee5b 100644 +index 2002b925..6d92a8e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -118,7 +118,6 @@ list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}") - +@@ -152,7 +152,6 @@ list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}") list(APPEND APP_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}") + list(APPEND APP_OPTIONS "-DENABLE_QT_GL=${ENABLE_VIDEO}")#Activate on video -include(ExternalProject) set(PROJECT_BUILD_COMMAND "") if(CMAKE_BUILD_PARALLEL_LEVEL) list(APPEND APP_OPTIONS "-DCMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}") -@@ -136,29 +135,8 @@ if(UNIX AND NOT APPLE) - set(CMAKE_INSTALL_RPATH "$ORIGIN:$ORIGIN/lib64:$ORIGIN/../lib64:$ORIGIN/lib:$ORIGIN/../lib:${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}") - list(APPEND APP_OPTIONS "-DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}") +@@ -190,30 +189,8 @@ if(ENABLE_BUILD_APP_PLUGINS) + endif() endif() + +- +-if(NOT LINPHONE_QT_ONLY) -ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk" - SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk" - INSTALL_DIR "${LINPHONE_OUTPUT_DIR}" @@ -35,7 +36,7 @@ index f7eb05f2..5921ee5b 100644 - INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time." - LIST_SEPARATOR | # Use the alternate list separator - CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} -- #BUILD_ALWAYS NO #${DO_BUILD} +- BUILD_ALWAYS NO #${DO_BUILD} -) -ExternalProject_Add_Step(sdk force_build - COMMENT "Forcing build for 'desktop'" @@ -43,18 +44,17 @@ index f7eb05f2..5921ee5b 100644 - DEPENDERS build - ALWAYS 1 -) +-endif() include(FindPkgConfig) -set(APP_DEPENDS sdk) -- -- - find_package(Qt5 5.12 COMPONENTS Core REQUIRED) + find_package(Qt5 5.10 COMPONENTS Core REQUIRED) if ( NOT Qt5_FOUND ) -@@ -173,39 +151,6 @@ find_package(Mediastreamer2 CONFIG QUIET) +@@ -227,62 +204,9 @@ find_package(belcard CONFIG QUIET) + find_package(Mediastreamer2 CONFIG QUIET) find_package(ortp CONFIG QUIET) - -if(NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR NOT (belcard_FOUND) OR NOT (Mediastreamer2_FOUND) OR NOT (ortp_FOUND) OR FORCE_APP_EXTERNAL_PROJECTS) - message("Projects are set as External projects. You can start building them by using for example : cmake --build . --target install") - ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphone-app" @@ -63,23 +63,51 @@ index f7eb05f2..5921ee5b 100644 - BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app" - DEPENDS ${APP_DEPENDS} - BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND} -- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step will not be done by external project" +- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time." - LIST_SEPARATOR | # Use the alternate list separator - CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} - # ${APP_OPTIONS} - BUILD_ALWAYS ON - ) +- if( ENABLE_BUILD_APP_PLUGINS) +- ExternalProject_Add(app-plugins PREFIX "${CMAKE_BINARY_DIR}/plugins-app" +- SOURCE_DIR "${CMAKE_SOURCE_DIR}/plugins" +- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}" +- BINARY_DIR "${CMAKE_BINARY_DIR}/plugins-app" +- DEPENDS linphone-qt +- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND} +- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time." +- LIST_SEPARATOR | # Use the alternate list separator +- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} +- ) +- endif() - install(CODE "message(STATUS Running install)") - set(AUTO_REGENERATION auto_regeneration) -- add_custom_target(${AUTO_REGENERATION} ALL -- COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR} -- DEPENDS linphone-qt) +- if( ENABLE_BUILD_APP_PLUGINS) +- add_custom_target(${AUTO_REGENERATION} ALL +- COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR} +- DEPENDS app-plugins) +- else() +- add_custom_target(${AUTO_REGENERATION} ALL +- COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR} +- DEPENDS linphone-qt) +- endif() -else() - message("Adding Linphone Desktop in an IDE-friendly state") - set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") - add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app) -- add_dependencies(app-library ${APP_DEPENDS}) --endif() +- if(NOT LINPHONE_QT_ONLY) +- add_dependencies(app-library ${APP_DEPENDS}) +- endif() +- if( ENABLE_BUILD_APP_PLUGINS) +- add_subdirectory(${CMAKE_SOURCE_DIR}/plugins "plugins-app") +- endif() ++message("Adding Linphone Desktop in an IDE-friendly state") ++set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") ++add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app) ++if( ENABLE_BUILD_APP_PLUGINS) ++ add_subdirectory(${CMAKE_SOURCE_DIR}/plugins "plugins-app") + endif() -ExternalProject_Add(linphone-qt-only PREFIX "${CMAKE_BINARY_DIR}/linphone-app" - SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app" - INSTALL_DIR "${APPLICATION_OUTPUT_DIR}" @@ -89,11 +117,8 @@ index f7eb05f2..5921ee5b 100644 - LIST_SEPARATOR | # Use the alternate list separator - CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} - EXCLUDE_FROM_ALL ON -- BUILD_ALWAYS ON +- #BUILD_ALWAYS ON -) -+message("Adding Linphone Desktop in an IDE-friendly state") -+set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") -+add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app) diff --git a/linphone-app/cmake_builder/additional_steps.cmake b/linphone-app/cmake_builder/additional_steps.cmake index 7f7fd573..a69a04e8 100644 --- a/linphone-app/cmake_builder/additional_steps.cmake @@ -114,5 +139,5 @@ index 7f7fd573..a69a04e8 100644 endif () endif () -- -2.29.2 +2.25.1 diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/no-store-path-in-autostart.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/no-store-path-in-autostart.patch new file mode 100644 index 000000000000..dc1b0be916cd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/no-store-path-in-autostart.patch @@ -0,0 +1,27 @@ +From 6a26922e5e4363de36057d635a1bf889160b2533 Mon Sep 17 00:00:00 2001 +From: Lorenz Brun <lorenz@brun.one> +Date: Fri, 28 Jan 2022 18:44:43 +0100 +Subject: [PATCH] Do not use store path for autostart on Nix + +--- + linphone-app/src/app/App.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/linphone-app/src/app/App.cpp b/linphone-app/src/app/App.cpp +index 868f8f44..2c61c648 100644 +--- a/linphone-app/src/app/App.cpp ++++ b/linphone-app/src/app/App.cpp +@@ -858,6 +858,10 @@ void App::setAutoStart (bool enabled) { + exec = QProcessEnvironment::systemEnvironment().value(QStringLiteral("APPIMAGE")); + qDebug() << "exec path autostart set appimage=" << exec; + } ++ else if (binPath.startsWith("/nix/store")) { // Nix/NixOS ++ exec = QStringLiteral("linphone"); ++ qDebug() << "exec path autostart set nix=" << exec; ++ } + else { //classic package + exec = binPath; + qDebug() << "exec path autostart set classic package=" << exec; +-- +2.25.1 + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch index 547652d3af7f..225f0e78db23 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch @@ -1,7 +1,7 @@ -From 6fc23da651d54979e73776fcda38614e290d65dc Mon Sep 17 00:00:00 2001 +From 4849d5633b98e6d3514355436eab5ba537cbfd99 Mon Sep 17 00:00:00 2001 From: David P <megver83@parabola.nu> Date: Fri, 23 Oct 2020 16:44:17 -0300 -Subject: [PATCH 2/2] remove bc_compute_full_version usage +Subject: [PATCH] remove bc_compute_full_version usage --- linphone-app/CMakeLists.txt | 11 +---------- @@ -10,7 +10,7 @@ Subject: [PATCH 2/2] remove bc_compute_full_version usage 3 files changed, 2 insertions(+), 24 deletions(-) diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt -index 3bc9420a..27b418ee 100644 +index de7f917f..ee14ff78 100644 --- a/linphone-app/CMakeLists.txt +++ b/linphone-app/CMakeLists.txt @@ -21,17 +21,8 @@ @@ -30,8 +30,8 @@ index 3bc9420a..27b418ee 100644 - -project(linphoneqt VERSION "${version_major}.${version_minor}.${version_patch}") + if(ENABLE_BUILD_VERBOSE) - #message("CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}") diff --git a/linphone-app/build/CMakeLists.txt b/linphone-app/build/CMakeLists.txt index 8ef03faa..97d94bd6 100644 --- a/linphone-app/build/CMakeLists.txt @@ -49,7 +49,7 @@ index 8ef03faa..97d94bd6 100644 set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}) diff --git a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt -index baea03cf..08ffc1b5 100644 +index ac85c68a..e6af5a66 100644 --- a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt +++ b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt @@ -38,15 +38,7 @@ set(LINPHONE_QML_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../ui") @@ -70,5 +70,5 @@ index baea03cf..08ffc1b5 100644 endif () string(REGEX REPLACE "([0-9.]+)-?.*" "\\1" LINPHONE_VERSION "${APP_PROJECT_VERSION}") -- -2.29.2 +2.25.1 diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix index ad3248fabba9..1535b694231e 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix @@ -1,38 +1,58 @@ -{ stdenv, lib, fetchFromGitHub, cacert, python3 }: +{ lib +, fetchFromGitHub +, buildPythonApplication +, cacert +, setuptools +, matrix-nio +, python-magic +, markdown +, pillow +, urllib3 +, aiofiles +, notify2 +, dbus-python +, pyxdg +, python-olm +}: -stdenv.mkDerivation { +buildPythonApplication rec { pname = "matrix-commander"; - version = "unstable-2021-08-05"; + version = "3.5.0"; src = fetchFromGitHub { owner = "8go"; repo = "matrix-commander"; - rev = "7ab3fd9a0ef4eb19d882cb3701d2025b4d41b63a"; - sha256 = "sha256-WWf7GbJxGlqIdsS1d0T1DO0WN2RBepHGgJrl/nt7UIg="; + rev = "v${version}"; + sha256 = "sha256-/hNTaajZTyeIcGILIXqUVbBvZ8AUNZKBDsZ4Gr5RL2o="; }; - buildInputs = [ - cacert - (python3.withPackages(ps: with ps; [ - matrix-nio - magic - markdown - pillow - urllib3 - aiofiles - notify2 - ]))]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin - cp $src/matrix-commander.py $out/bin/matrix-commander - chmod +x $out/bin/matrix-commander + format = "pyproject"; - runHook postInstall + postPatch = '' + # Dependencies already bundled with Python + sed -i \ + -e '/uuid/d' \ + -e '/argparse/d' \ + -e '/asyncio/d' \ + -e '/datetime/d' \ + setup.cfg requirements.txt ''; + propagatedBuildInputs = [ + cacert + setuptools + matrix-nio + python-magic + markdown + pillow + urllib3 + aiofiles + notify2 + dbus-python + pyxdg + python-olm + ]; + meta = with lib; { description = "Simple but convenient CLI-based Matrix client app for sending and receiving"; homepage = "https://github.com/8go/matrix-commander"; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix index 2992bf22cb31..c1eafe304a9d 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix @@ -2,7 +2,7 @@ {pkgs ? import <nixpkgs> { inherit system; - }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}: + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}: let nodeEnv = import ./node-env.nix { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix index 9e3527948818..f2b02ebdec4f 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix @@ -6,13 +6,13 @@ postInstall = '' mkdir "$out/bin" echo '#!/bin/sh' >> "$out/bin/matrix-recorder" - echo "'${pkgs.nodejs-12_x}/bin/node'" \ + echo "'${pkgs.nodejs-14_x}/bin/node'" \ "'$out/lib/node_modules/matrix-recorder/matrix-recorder.js'" \ '"$@"' >> "$out/bin/matrix-recorder" echo '#!/bin/sh' >> "$out/bin/matrix-recorder-to-html" echo 'cd "$1"' >> "$out/bin/matrix-recorder-to-html" echo "test -d templates/ || ln -sfT '$out/lib/node_modules/matrix-recorder/templates' templates" >> "$out/bin/matrix-recorder-to-html" - echo "'${pkgs.nodejs-12_x}/bin/node'" \ + echo "'${pkgs.nodejs-14_x}/bin/node'" \ "'$out/lib/node_modules/matrix-recorder/recorder-to-html.js'" \ '.' >> "$out/bin/matrix-recorder-to-html" chmod a+x "$out/bin/matrix-recorder" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix index 6f53fe2b3a3b..bb900654d1e8 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix @@ -14,17 +14,17 @@ let pname = "mattermost-desktop"; - version = "5.0.3"; + version = "5.1.0"; srcs = { "x86_64-linux" = { url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz"; - hash = "sha256-KLSWJpNSMGmfugbkFIJLDnxcZtrtBZOGjLlR+kAoMTA="; + hash = "sha256-KmtQUqg2ODbZ6zJjsnwlvB+vhR1xbK2X9qqmZpyTR78="; }; "i686-linux" = { url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-ia32.tar.gz"; - hash = "sha256-4ofjOsfGbgO1PSqQpigNp90JsvlGP1kGexVAR/h3/88="; + hash = "sha256-X8Zrthw1hZOqmcYidt72l2vonh31iiA3EDGmCQr7e4c="; }; }; @@ -84,6 +84,7 @@ stdenv.mkDerivation { meta = with lib; { description = "Mattermost Desktop client"; homepage = "https://about.mattermost.com/"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.asl20; platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = [ maintainers.joko ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix deleted file mode 100644 index a8e73ad1098f..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ mkDerivation -, lib -, fetchFromGitLab -, pkg-config -, cmake -, cmark -, extra-cmake-modules -, kconfig -, kdbusaddons -, ki18n -, kio -, kirigami2 -, kitemmodels -, knotifications -, kquickimageedit -, libpulseaudio -, libquotient -, libsecret -, olm -, qcoro -, qqc2-desktop-style -, qtgraphicaleffects -, qtkeychain -, qtmultimedia -, qtquickcontrols2 -, sonnet -}: - -mkDerivation rec { - pname = "neochat"; - version = "22.02"; - - src = fetchFromGitLab { - domain = "invent.kde.org"; - owner = "network"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-7EBnHuwpyJ/bGrCldZHWOwcnJWDIDaNWZXHkCYkOTjs="; - }; - - nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ]; - - buildInputs = [ - cmark - kconfig - kdbusaddons - kio - ki18n - kirigami2 - kitemmodels - knotifications - kquickimageedit - libpulseaudio - libquotient - libsecret - olm - qcoro - qtgraphicaleffects - qtkeychain - qtmultimedia - qtquickcontrols2 - qqc2-desktop-style - sonnet - ]; - - meta = with lib; { - description = "A client for matrix, the decentralized communication protocol."; - homepage = "https://apps.kde.org/en/neochat"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ peterhoeg ]; - platforms = with platforms; linux; - }; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix index 750511ebf152..d3a7abae8205 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -33,13 +33,13 @@ mkDerivation rec { pname = "nheko"; - version = "0.9.3"; + version = "0.10.0"; src = fetchFromGitHub { owner = "Nheko-Reborn"; repo = "nheko"; rev = "v${version}"; - sha256 = "sha256-h1Yahz7Rt7+r55RFTSVj6E14nWnjCs0CecljceaWgaQ="; + sha256 = "sha256-JNAI1+GmRgee7bqeJi8JadV3W7vXMpEvvKqqinb97Ng="; }; nativeBuildInputs = [ diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-signald/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-signald/default.nix new file mode 100644 index 000000000000..fd8342fbdead --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-signald/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, pidgin, json-glib, signald }: + +stdenv.mkDerivation rec { + pname = "purple-signald"; + version = "0.11.0"; + + src = fetchFromGitHub { + owner = "hoehermann"; + repo = "libpurple-signald"; + rev = "v${version}"; + sha256 = "sha256-2LiHjVRBwdPbfravIVM+gvsh3Gq4bhjtRD6eWAbkWmc="; + fetchSubmodules = true; + }; + + buildInputs = [ + pidgin + json-glib + signald + ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + installFlags = [ "DESTDIR=$(out)" ]; + + meta = with lib; { + homepage = "https://github.com/hoehermann/libpurple-signald"; + description = "Signal support for Pidgin / libpurple"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ hufman ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix index cb450aa1bc33..c52082e06c90 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation { pname = "purple-xmpp-upload"; - version = "unstable-2017-12-31"; + version = "unstable-2021-11-04"; src = fetchFromGitHub { owner = "Junker"; repo = "purple-xmpp-http-upload"; - rev = "178096cbfc9df165c2dc1677666439969d212b37"; - sha256 = "12l9rqlgb4i50xxrfnvwz9sqfk0d3c0m6l09mnvfixqi8illyvlp"; + rev = "f370b4a2c474c6fe4098d929d8b7c18aeba87b6b"; + sha256 = "0n05jybmibn44xb660p08vrrbanfsyjn17w1xm9gwl75fxxq8cdc"; }; buildInputs = [ pidgin glib libxml2 ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tdlib-purple/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tdlib-purple/default.nix new file mode 100644 index 000000000000..af123e98d561 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tdlib-purple/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, libwebp, pidgin, tdlib } : + +stdenv.mkDerivation rec { + pname = "tdlib-purple"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "ars3niy"; + repo = "tdlib-purple"; + rev = "v${version}"; + sha256 = "sha256-mrowzTtNLyMc2WwLVIop8Mg2DbyiQs0OPXmJuM9QUnM="; + }; + + patches = [ + # Update to tdlib 1.8.0 + (fetchpatch { + url = "https://github.com/ars3niy/tdlib-purple/commit/8c87b899ddbec32ec6ab4a34ddf0dc770f97d396.patch"; + sha256 = "sha256-sysPYPno+wS8mZwQAXtX5eVnhwKAZrtr5gXuddN3mko="; + }) + ]; + + preConfigure = '' + sed -i -e 's|DESTINATION.*PURPLE_PLUGIN_DIR}|DESTINATION "lib/purple-2|' CMakeLists.txt + sed -i -e 's|DESTINATION.*PURPLE_DATA_DIR}|DESTINATION "share|' CMakeLists.txt + ''; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ libwebp pidgin tdlib ]; + + cmakeFlags = [ "-DNoVoip=True" ]; # libtgvoip required + + meta = with lib; { + homepage = "https://github.com/ars3niy/tdlib-purple"; + description = "libpurple Telegram plugin using tdlib"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix deleted file mode 100644 index 6f7aab564fac..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin, libwebp, libgcrypt, gettext } : - -stdenv.mkDerivation rec { - pname = "telegram-purple"; - version = "1.3.1"; - - src = fetchFromGitHub { - owner = "majn"; - repo = "telegram-purple"; - rev = "v${version}"; - sha256 = "sha256-14VzCMvzAEmye0N98r+P+ub5CeA9vu8c/xqefuWVI10="; - }; - - NIX_CFLAGS_COMPILE = "-Wno-error=cast-function-type"; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ pidgin libwebp libgcrypt gettext ]; - - preConfigure = '' - sed -i "s|/etc/telegram-purple/server.tglpub|$out/lib/purple-2/server.tglpub|g" telegram-purple.c - echo "#define GIT_COMMIT \"${builtins.substring 0 10 src.rev}\"" > commit.h - ''; - - installPhase = '' - mkdir -p $out/lib/purple-2/ - cp bin/*.so $out/lib/purple-2/ #*/ - cp tg-server.tglpub $out/lib/purple-2/server.tglpub - mkdir -p $out/pixmaps/pidgin/protocols/{16,22,48} - cp imgs/telegram16.png $out/pixmaps/pidgin/protocols/16 - cp imgs/telegram22.png $out/pixmaps/pidgin/protocols/22 - cp imgs/telegram48.png $out/pixmaps/pidgin/protocols/48 - ''; - - meta = with lib; { - homepage = "https://github.com/majn/telegram-purple"; - description = "Telegram for Pidgin / libpurple"; - license = licenses.gpl2; - maintainers = [ maintainers.jagajaga ]; - platforms = platforms.linux; - }; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix index bd6febeaf9d1..84f8f327cad9 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix @@ -9,11 +9,11 @@ let unwrapped = stdenv.mkDerivation rec { pname = "pidgin"; - version = "2.14.8"; + version = "2.14.10"; src = fetchurl { url = "mirror://sourceforge/pidgin/pidgin-${version}.tar.bz2"; - sha256 = "1jjc15pfyw3012q5ffv7q4r88wv07ndqh0wakyxa2k0w4708b01z"; + sha256 = "sha256-RUsbkovGvLsYM1OvMPv95VlfIkWjQjoaRubJei3yKBA="; }; nativeBuildInputs = [ makeWrapper ]; @@ -88,7 +88,7 @@ let unwrapped = stdenv.mkDerivation rec { homepage = "https://pidgin.im/"; license = licenses.gpl2Plus; platforms = platforms.unix; - maintainers = [ maintainers.vcunat ]; + maintainers = [ ]; }; }; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix deleted file mode 100644 index c7b5d56dbba3..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, buildGoPackage, trousers, dclxvi, wrapGAppsHook, pkg-config, gtk3, gtkspell3, - fetchFromGitHub }: - -let - gui = true; # Might be implemented with nixpkgs config. -in -buildGoPackage rec { - pname = "pond"; - version = "unstable-2015-08-30"; - - goPackagePath = "github.com/agl/pond"; - - src = fetchFromGitHub { - owner = "agl"; - repo = "pond"; - rev = "bce6e0dc61803c23699c749e29a83f81da3c41b2"; - sha256 = "sha256-BE7+146E9hz8enrfA+sQhtqgHiSZAtjrW1OOqchbr7Y="; - }; - - goDeps = ./deps.nix; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ trousers gtk3 gtkspell3 ] - ++ lib.optional stdenv.hostPlatform.isx86_64 dclxvi - ++ lib.optionals gui [ wrapGAppsHook ]; - tags = lib.optionals (!gui) [ "nogui" ]; - excludedPackages = "\\(appengine\\|bn256cgo\\)"; - postPatch = lib.optionalString stdenv.hostPlatform.isx86_64 '' - grep -r 'bn256' | awk -F: '{print $1}' | xargs sed -i \ - -e "s,golang.org/x/crypto/bn256,github.com/agl/pond/bn256cgo,g" \ - -e "s,bn256\.,bn256cgo.,g" - ''; - - # https://hydra.nixos.org/build/150102618/nixlog/2 - meta.broken = stdenv.isAarch64; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix deleted file mode 100644 index 55850f0a89c2..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix +++ /dev/null @@ -1,47 +0,0 @@ -[ - { - goPackagePath = "golang.org/x/crypto"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/crypto"; - rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6"; - sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa"; - }; - } - { - goPackagePath = "github.com/agl/ed25519"; - fetch = { - type = "git"; - url = "https://github.com/agl/ed25519"; - rev = "278e1ec8e8a6e017cd07577924d6766039146ced"; - sha256 = "165d89cc6dl28j4hkn86pny0jz3sa6hamzdvpvwdj4iha3x6lzc9"; - }; - } - { - goPackagePath = "github.com/golang/protobuf"; - fetch = { - type = "git"; - url = "https://github.com/golang/protobuf"; - rev = "59b73b37c1e45995477aae817e4a653c89a858db"; - sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa"; - }; - } - { - goPackagePath = "golang.org/x/net"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/net"; - rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4"; - sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p"; - }; - } - { - goPackagePath = "github.com/agl/go-gtk"; - fetch = { - type = "git"; - url = "https://github.com/agl/go-gtk"; - rev = "91c1edb38c241d73129e6b098ca1c9fa83abfc15"; - sha256 = "156ixlhakpqgyp35rsvmndrqz8aggv5bcmzg9ynpri3b9j6kim4d"; - }; - } -] diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix index 42671f5d974b..8ffe6f05f5df 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix @@ -1,7 +1,6 @@ { lib , stdenv , fetchFromGitHub -, fetchpatch , autoconf-archive , autoreconfHook , cmocka @@ -10,7 +9,7 @@ , expect , glib , glibcLocales -, libmesode +, libstrophe , libmicrohttpd , libotr , libuuid @@ -19,51 +18,27 @@ , pkg-config , readline , sqlite -, autoAwaySupport ? true, libXScrnSaver ? null, libX11 +, autoAwaySupport ? true, libXScrnSaver, libX11 , notifySupport ? true, libnotify, gdk-pixbuf , omemoSupport ? true, libsignal-protocol-c, libgcrypt , pgpSupport ? true, gpgme -, pythonPluginSupport ? true, python -, traySupport ? true, gtk +, pythonPluginSupport ? true, python3 +, traySupport ? true, gtk3 }: -assert autoAwaySupport -> libXScrnSaver != null && libX11 != null; -assert notifySupport -> libnotify != null && gdk-pixbuf != null; -assert traySupport -> gtk != null; -assert pgpSupport -> gpgme != null; -assert pythonPluginSupport -> python != null; -assert omemoSupport -> libsignal-protocol-c != null && libgcrypt != null; - stdenv.mkDerivation rec { pname = "profanity"; - version = "0.11.1"; + version = "0.12.1"; src = fetchFromGitHub { owner = "profanity-im"; repo = "profanity"; rev = version; - hash = "sha256-8WGHOy0fSW8o7vMCYZqqpvDsn81JZefM6wGfjQ5iKbU="; + hash = "sha256-yUiiww8yhymdqR6CITRnItxZhfpZiEbu1WyD8bDW+vc="; }; patches = [ ./patches/packages-osx.patch - - # pullupstream fixes for ncurses-6.3 - (fetchpatch { - name = "ncurses-6.3-p1.patch"; - url = "https://github.com/profanity-im/profanity/commit/e5b6258c997d4faf36e2ffb8a47b386c5629b4eb.patch"; - sha256 = "sha256-4rwpvsgfIQ60GcLS0O7Hyn7ZidREjYT+dVND54z0zrw="; - }) - (fetchpatch { - name = "ncurses-6.3-p2.patch"; - url = "https://github.com/profanity-im/profanity/commit/fd9ccec8dc604902bbb1d444dba4223ccee0a092.patch"; - sha256 = "sha256-4gZaXoDNulBIR+e6y/9bJKXVactCHWS8H8lPJaJwVwE="; - }) - (fetchpatch { - name = "ncurses-6.3-p3.patch"; - url = "https://github.com/profanity-im/profanity/commit/242696f09a49c8446ba6aef8bdad65fb58a77715.patch"; - sha256 = "sha256-BOYHkae9aIA7HaVM23Yu25TTK9e3SuV+u0FEi7Sn62I="; - }) ]; enableParallelBuilding = true; @@ -81,7 +56,7 @@ stdenv.mkDerivation rec { expat expect glib - libmesode + libstrophe libmicrohttpd libotr libuuid @@ -93,8 +68,8 @@ stdenv.mkDerivation rec { ++ lib.optionals notifySupport [ libnotify gdk-pixbuf ] ++ lib.optionals omemoSupport [ libsignal-protocol-c libgcrypt ] ++ lib.optionals pgpSupport [ gpgme ] - ++ lib.optionals pythonPluginSupport [ python ] - ++ lib.optionals traySupport [ gtk ]; + ++ lib.optionals pythonPluginSupport [ python3 ] + ++ lib.optionals traySupport [ gtk3 ]; # Enable feature flags, so that build fail if libs are missing configureFlags = [ diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix index aeb20d6779ef..c5e5b063c4e2 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix @@ -43,13 +43,13 @@ assert enablePsiMedia -> enablePlugins; mkDerivation rec { pname = "psi-plus"; - version = "1.5.1615"; + version = "1.5.1633"; src = fetchFromGitHub { owner = "psi-plus"; repo = "psi-plus-snapshots"; rev = version; - sha256 = "sha256-aD+JVGmBWHUav2bH9rXGtgqI+/5lJTMrYLRP7E65JxI="; + sha256 = "sha256-kXdDxpIOcwcFy+OmsqlE8a19sGPfMNI08fMy5OFuP9w="; }; cmakeFlags = [ diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix index 3f6d374c3996..659b6411b48a 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix @@ -69,6 +69,7 @@ mkDerivation rec { ]; meta = with lib; { + broken = stdenv.isDarwin; description = "Qt Tox client"; homepage = "https://tox.chat"; license = licenses.gpl3; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix index d4329ed09d35..b9b5175d3b87 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix @@ -1,6 +1,6 @@ { pname, version, src, meta, desktopName ? "Rambox" }: -{ appimageTools, lib, fetchurl, gsettings-desktop-schemas, gtk3, makeDesktopItem }: +{ appimageTools, lib, fetchurl, makeDesktopItem }: let name = "${pname}-${version}"; @@ -18,9 +18,6 @@ let }; in appimageTools.wrapType2 rec { inherit name src meta; - profile = '' - export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS - ''; extraInstallCommands = '' mkdir -p $out/share/applications $out/share/icons/hicolor/256x256/apps diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix index ef9dad66b5d6..39403ba774fa 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix @@ -25,6 +25,7 @@ stdenvNoCC.mkDerivation rec { meta = with lib; { description = "Desktop chat client for Slack and Discord"; homepage = "https://cancel.fm/ripcord/"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; # See: https://cancel.fm/ripcord/shareware-redistribution/ license = licenses.unfreeRedistributable; maintainers = with maintainers; [ mikroskeem ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix index 76f93d9d2173..7fd0bd9bb1d3 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix @@ -48,7 +48,7 @@ mkDerivation rec { install -Dm755 ${src}/Ripcord $out/Ripcord patchelf --replace-needed libsodium.so.18 libsodium.so $out/Ripcord makeQtWrapper $out/Ripcord $out/bin/ripcord \ - --run "cd $out" \ + --chdir "$out" \ --set FONTCONFIG_FILE "${fontsConf}" \ --prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \ --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \ @@ -60,6 +60,7 @@ mkDerivation rec { meta = with lib; { description = "Desktop chat client for Slack and Discord"; homepage = "https://cancel.fm/ripcord/"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; # See: https://cancel.fm/ripcord/shareware-redistribution/ license = licenses.unfreeRedistributable; maintainers = with maintainers; [ infinisil ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix index ac17f7590888..e04c0b8547da 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix @@ -4,11 +4,11 @@ let in stdenv.mkDerivation rec { pname = "rocketchat-desktop"; - version = "3.7.8"; + version = "3.8.7"; src = fetchurl { - url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat_${version}_amd64.deb"; - sha256 = "sha256-61HSJIFir+ikwui7KtPm2BDstIRWY/WruGX3WSfY5ZI="; + url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat-${version}-linux-amd64.deb"; + sha256 = "sha256-kSEOjhsSa+5+oNxWY+cQR7RIRzd+BGR4WDL1drybxzU="; }; nativeBuildInputs = [ @@ -89,6 +89,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Official Desktop client for Rocket.Chat"; homepage = "https://github.com/RocketChat/Rocket.Chat.Electron"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.mit; maintainers = with maintainers; [ gbtb ]; platforms = platforms.x86_64; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix deleted file mode 100644 index 6a6302e74955..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib, stdenv, fetchurl, python27Packages, file }: - -let - inherit (python27Packages) python; - requirements = (import ./requirements.nix { - inherit lib fetchurl; - pythonPackages = python27Packages; - }); - -in - stdenv.mkDerivation rec { - pname = "salut-a-toi"; - version = "0.6.1"; - - src = fetchurl { - url = "ftp://ftp.goffi.org/sat/sat-${version}.tar.bz2"; - sha256 = "0kn9403n8fpzl0hsb9kkzicsmzq2fjl627l31yykbqzc4nsr780d"; - }; - - buildInputs = with python27Packages; - [ - python twisted urwid wxPython pygobject2 - dbus-python wrapPython setuptools file - pycrypto pyxdg - ] ++ (with requirements; [ - pyfeed - wokkel - ]); - - configurePhase = '' - sed -i "/use_setuptools/d" setup.py - sed -e "s@sys.prefix@'$out'@g" -i setup.py - sed -e "1aexport PATH=\"\$PATH\":\"$out/bin\":\"${python27Packages.twisted}/bin\"" -i src/sat.sh - sed -e "1aexport PYTHONPATH=\"\$PYTHONPATHPATH\":\"$PYTHONPATH\":"$out/${python.sitePackages}"" -i src/sat.sh - - echo 'import wokkel.muc' | python - ''; - - buildPhase = '' - ${python.interpreter} setup.py build - ''; - - installPhase = '' - ${python.interpreter} setup.py install --prefix="$out" - - for i in "$out/bin"/*; do - head -n 1 "$i" | grep -E '[/ ]python( |$)' && { - wrapProgram "$i" --prefix PYTHONPATH : "$PYTHONPATH:$out/${python.sitePackages}" - } || true - done - ''; - - meta = with lib; { - homepage = "http://sat.goffi.org/"; - description = "A multi-frontend XMPP client"; - platforms = platforms.linux; - maintainers = [ maintainers.raskin ]; - license = licenses.gpl3Plus; - }; - } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix deleted file mode 100644 index a8e711c447d5..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ fetchurl -, lib -, pythonPackages -}: - -let - buildPythonPackage = pythonPackages.buildPythonPackage; - - xe = buildPythonPackage rec { - url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz"; - name = lib.nameFromURL url ".tar"; - src = fetchurl { - inherit url; - sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42"; - }; - - # error: invalid command 'test' - doCheck = false; - - meta = { - homepage = "http://home.blarg.net/~steveha/xe.html"; - description = "XML elements"; - }; - }; - -in { - - pyfeed = (buildPythonPackage rec { - url = "http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz"; - - name = lib.nameFromURL url ".tar"; - - src = fetchurl { - inherit url; - sha256 = "1h4msq573m7wm46h3cqlx4rsn99f0l11rhdqgf50lv17j8a8vvy1"; - }; - - propagatedBuildInputs = [ xe ]; - - # error: invalid command 'test' - doCheck = false; - - meta = with lib; { - homepage = "http://home.blarg.net/~steveha/pyfeed.html"; - description = "Tools for syndication feeds"; - }; - - }); - - wokkel = buildPythonPackage (rec { - url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz"; - name = lib.nameFromURL url ".tar"; - src = fetchurl { - inherit url; - sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml"; - }; - - propagatedBuildInputs = with pythonPackages; [twisted python-dateutil]; - - meta = with lib; { - description = "Some (mainly XMPP-related) additions to twisted"; - homepage = "http://wokkel.ik.nu/"; - license = licenses.mit; - }; - }); - -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json index d227dc4b0fbe..ef981716ef1d 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/pin.json @@ -1,9 +1,9 @@ { - "version": "1.10.4-sc.1", - "rev": "v1.10.4-sc.1", - "srcHash": "0sxibzskbw9pa6wmbk1y3n7p74cfj9zvm2hsw76sp6wfac1wnbwl", - "webYarnHash": "1z8xr35gh74y2iv9kfk6d6b6f3iclcrpkdds5q7rh2irpf14fwpw", - "jsSdkYarnHash": "1cwvb0hwq19dh2937fmcbfvnkkfmalk9wrxf1yv81nsbyjnx86di", - "reactSdkYarnHash": "0j4rxg11q35idfzvjrpmyrwkz9yqgzpwps3xqx1k4qcs844jjs9f", - "desktopYarnHash": "0akmgib212gkygvs2snn9c43k3ika3ipg85d480j3hqyb6yxwqmn" + "version": "1.10.12-sc.1", + "rev": "v1.10.12-sc.1", + "srcHash": "1rpfax6xx731w59a2i7v6jr17l3rnrn79d666f0cjchg36nkqqg9", + "webYarnHash": "0m5dnz3m68iz94siwmavzj50wxd6w6wanjsm1zhq76lgymgcbqc2", + "jsSdkYarnHash": "1k1jvavbqr7vcbdaxc6yqiq5254kxhywn1s2zndrfny7ap8z5c1c", + "reactSdkYarnHash": "0cz7pgrbysljmhpf4m0wqwqjqijxahl3wz5qhczlkj46dvq6qyxb", + "desktopYarnHash": "09ri87ynfgxrv22sykggiy6nlcf20qwj7zj9qq0rz3c2acr6g9mn" } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix index e2b4cafe9936..d1a1c8d64690 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-desktop.nix @@ -19,7 +19,6 @@ let pinData = lib.importJSON ./pin.json; executableName = "schildichat-desktop"; - electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron"; in stdenv.mkDerivation rec { pname = "schildichat-desktop"; @@ -88,7 +87,7 @@ stdenv.mkDerivation rec { done # executable wrapper - makeWrapper '${electron_exec}' "$out/bin/${executableName}" \ + makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \ --add-flags "$out/share/element/electron" \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix index a7ad6fb4d9b1..7041a19684c3 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/schildichat/schildichat-web.nix @@ -78,13 +78,8 @@ in stdenv.mkDerivation rec { buildPhase = '' runHook preBuild - pushd matrix-react-sdk - ../element-web/node_modules/.bin/reskindex -h ../element-web/src/header - popd - pushd element-web node scripts/copy-res.js - node_modules/.bin/reskindex -h ../element-web/src/header node_modules/.bin/webpack --progress --mode production popd diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix index 4518627fe2b8..61166a82f38e 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix @@ -4,15 +4,16 @@ , stdenvNoCC , fetchurl , appimageTools +, makeWrapper }: let - version = "1.7.9"; + version = "1.8.6"; pname = "session-desktop-appimage"; src = fetchurl { url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage"; - sha256 = "ca7754e59146633b71e66b02a90cff87e4f2574e57ff831ca4a5f983b7e2fbef"; + sha256 = "h7uEdxBuqPNWGFp5wWWRI9VsK3HYOtLVgj7rIbeO9kY="; }; appimage = appimageTools.wrapType2 { inherit version pname src; @@ -25,7 +26,7 @@ stdenvNoCC.mkDerivation { inherit version pname; src = appimage; - nativeBuildInputs = [ copyDesktopItems ]; + nativeBuildInputs = [ copyDesktopItems makeWrapper ]; desktopItems = [ (makeDesktopItem { @@ -46,6 +47,9 @@ stdenvNoCC.mkDerivation { mkdir -p $out/ cp -r bin $out/bin + wrapProgram $out/bin/session-desktop-appimage-${version} \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" + runHook postInstall ''; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix index bca45576db71..dd2a34a60fa4 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "signal-cli"; - version = "0.10.2"; + version = "0.10.11"; # Building from source would be preferred, but is much more involved. src = fetchurl { - url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz"; - sha256 = "sha256-etCO7sy48A7aL3mnXWitClNiw/E122G4eD6YfVmXEPw="; + url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}-Linux.tar.gz"; + sha256 = "sha256-tBgtSYKSoyze9qFWpy6IUdwMU9KCLZGEIpOkjLdHsHM="; }; buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix index e3fa08e3df3a..2862ff6612e2 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -1,30 +1,15 @@ -{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook, nixosTests +{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook, makeWrapper, nixosTests , gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsa-lib , cups, expat, libuuid, at-spi2-core, libappindicator-gtk3, mesa # Runtime dependencies: , systemd, libnotify, libdbusmenu, libpulseaudio, xdg-utils -# Unfortunately this also overwrites the UI language (not just the spell -# checking language!): -, hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE" -# For a full list of available languages: -# $ cat pkgs/development/libraries/hunspell/dictionaries.nix | grep "dictFileName =" | awk '{ print $3 }' }: -let - customLanguageWrapperArgs = (with lib; - let - # E.g. "de_DE" -> "de-de" (spellcheckerLanguage -> hunspellDict) - spellLangComponents = splitString "_" spellcheckerLanguage; - hunspellDict = elemAt spellLangComponents 0 + "-" + toLower (elemAt spellLangComponents 1); - in lib.optionalString (spellcheckerLanguage != null) '' - --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \ - --set LC_MESSAGES "${spellcheckerLanguage}"''); - -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "signal-desktop"; - version = "5.36.0"; # Please backport all updates to the stable channel. + version = "5.54.0"; # Please backport all updates to the stable channel. # All releases have a limited lifetime and "expire" 90 days after the release. # When releases "expire" the application becomes unusable until an update is # applied. The expiration date for the current release can be extracted with: @@ -34,13 +19,13 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; - sha256 = "sha256-x1PUEDq/0B1T14mBs2FuKtcGpJHWOIvHAs8hptpzhZk="; + sha256 = "sha256-dGxbsSNvBT0KFukSNXyii69hMN246IYFbb0CzrDh7IU="; }; nativeBuildInputs = [ autoPatchelfHook dpkg - wrapGAppsHook + (wrapGAppsHook.override { inherit makeWrapper; }) ]; buildInputs = [ @@ -82,6 +67,7 @@ in stdenv.mkDerivation rec { runtimeDependencies = [ (lib.getLib systemd) + libappindicator-gtk3 libnotify libdbusmenu xdg-utils @@ -122,7 +108,6 @@ in stdenv.mkDerivation rec { preFixup = '' gappsWrapperArgs+=( --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ] }" - ${customLanguageWrapperArgs} --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}" --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} ) @@ -149,5 +134,6 @@ in stdenv.mkDerivation rec { license = lib.licenses.agpl3Only; maintainers = with lib.maintainers; [ mic92 equirosa ]; platforms = [ "x86_64-linux" ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/apple-sdk-missing-utimensat.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/apple-sdk-missing-utimensat.patch deleted file mode 100644 index 61474d0ab4fc..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/apple-sdk-missing-utimensat.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/signalbackup/setfiletimestamp.cc b/signalbackup/setfiletimestamp.cc -index f53a168..d2d1c5e 100644 ---- a/signalbackup/setfiletimestamp.cc -+++ b/signalbackup/setfiletimestamp.cc -@@ -21,24 +21,23 @@ - - #if !defined(_WIN32) && !defined(__MINGW64__) - --#include <fcntl.h> --#include <sys/stat.h> -+#include <sys/time.h> - - bool SignalBackup::setFileTimeStamp(std::string const &file, long long int time_usec) const - { -- struct timespec ntimes[] = -+ struct timeval ntimes[] = - { - { // ntimes[0] = - time_usec / 1000, // tv_sec, seconds -- (time_usec % 1000) * 1000 // tv_usec, nanoseconds -+ static_cast<int>(time_usec) // tv_usec, nanoseconds - }, - { // ntimes[1] = - time_usec / 1000, // tv_sec, seconds -- (time_usec % 1000) * 1000 // tv_usec, nanoseconds -+ static_cast<int>(time_usec) // tv_usec, nanoseconds - } - }; - -- return (utimensat(AT_FDCWD, file.c_str(), ntimes, 0) == 0); -+ return (utimes(file.c_str(), ntimes) == 0); - } - - #else // this is poorly tested, I don't have windows diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix index f03a91faa23f..04dcd6eeb4c0 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix @@ -1,38 +1,48 @@ -{ lib, stdenv, fetchFromGitHub, openssl, sqlite }: +{ lib, stdenv, fetchFromGitHub, fetchpatch, openssl, sqlite }: stdenv.mkDerivation rec { pname = "signalbackup-tools"; - version = "20220316"; + version = "20220810"; src = fetchFromGitHub { owner = "bepaald"; repo = pname; rev = version; - sha256 = "sha256-c9eqY3KBzCrNOLNf1DGpARmxGzwga3+tBg3e7Yr+Rb8="; + sha256 = "sha256-z/RAvNUss9rNuBQvxjJQl66ZMrlxvmS9at8L/vSG0XU="; }; - # Remove when Apple SDK is >= 10.13 - patches = lib.optional (stdenv.system == "x86_64-darwin") ./apple-sdk-missing-utimensat.patch; + # TODO: Remove when updating to next release. + patches = [ + (fetchpatch { + name = "fix-platform-checks.patch"; + url = "https://github.com/bepaald/signalbackup-tools/compare/20220810..a81baf25b6ba63da7d30d9a239e5b4bbc8d1ab4f.patch"; + sha256 = "sha256-i7fuPBil8zB+V3wHHdcbmP79OZoTfG2ZpXPQ3m7X06c="; + }) + ]; + + postPatch = '' + patchShebangs BUILDSCRIPT_MULTIPROC.bash44 + ''; buildInputs = [ openssl sqlite ]; - buildFlags = [ - "-Wall" - "-Wextra" - "-Wshadow" - "-Wold-style-cast" - "-Woverloaded-virtual" - "-pedantic" - "-std=c++2a" - "-O3" - "-march=native" - ]; + + # Manually define `CXXFLAGS` and `LDFLAGS` on Darwin since the build scripts includes flags + # that don't work on Darwin. buildPhase = '' - $CXX $buildFlags */*.cc *.cc -lcrypto -lsqlite3 -o signalbackup-tools + runHook preBuild + '' + lib.optionalString stdenv.isDarwin '' + export CXXFLAGS="-Wall -Wextra -Wshadow -Wold-style-cast -Woverloaded-virtual -pedantic -O3" + export LDFLAGS="-Wall -Wextra -O3" + '' + '' + ./BUILDSCRIPT_MULTIPROC.bash44 + runHook postBuild ''; installPhase = '' + runHook preInstall mkdir -p $out/bin cp signalbackup-tools $out/bin/ + runHook postInstall ''; meta = with lib; { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch index e23aded6d0e7..9e1578e6f1a1 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch @@ -1,17 +1,17 @@ -From 232c692240b9c52b95bd38ba7aecb11e7077cf31 Mon Sep 17 00:00:00 2001 +From 8ed5f3c9117e08f7c2e4e1e01c2eee501675049b Mon Sep 17 00:00:00 2001 From: Maximilian Bosch <maximilian@mbosch.me> Date: Sat, 26 Feb 2022 12:33:13 +0100 Subject: [PATCH] Fetch buildconfig during gradle build inside Nix FOD --- - build.gradle | 5 +++++ - 1 file changed, 5 insertions(+) + build.gradle | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle -index cbb587f..3b06e80 100644 +index eaa6e0e..63c2947 100644 --- a/build.gradle +++ b/build.gradle -@@ -82,6 +82,9 @@ static String getVersion() { +@@ -83,6 +83,9 @@ static String getVersion() { repositories { maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages @@ -21,15 +21,22 @@ index cbb587f..3b06e80 100644 mavenCentral() } -@@ -102,6 +105,8 @@ dependencies { - implementation 'io.prometheus:simpleclient_httpserver:0.14.1' +@@ -104,6 +107,8 @@ dependencies { + implementation 'io.prometheus:simpleclient_httpserver:0.15.0' implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3' - implementation 'io.sentry:sentry:5.6.1' + implementation 'io.sentry:sentry:5.7.3' + implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3' + implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.4.31' testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2' } +@@ -171,4 +176,4 @@ allprojects { + runtime { + options = ['--strip-java-debug-attributes', '--compress', '2', '--no-header-files', '--no-man-pages'] + modules = ['java.base', 'java.management', 'java.naming', 'java.sql', 'java.xml', 'jdk.crypto.ec', 'jdk.httpserver', 'java.desktop', 'jdk.unsupported'] +-} +\ No newline at end of file ++} -- -2.33.1 +2.36.0 diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch index c5931238fe58..a6efeb4a44f1 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch @@ -1,19 +1,19 @@ -From 80277ce9e24d9efa8dfd6eb775187c823e0e528e Mon Sep 17 00:00:00 2001 +From f319e1db47ae1eeddb6021cafe7b4f8551a702d7 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch <maximilian@mbosch.me> Date: Sat, 26 Feb 2022 12:36:15 +0100 Subject: [PATCH 2/2] buildconfig/local deps fixes --- - build.gradle | 20 ++++++++++++++++++-- - 1 file changed, 18 insertions(+), 2 deletions(-) + build.gradle | 26 ++++++++++++++++++-------- + 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle -index cbb587f..ad836cf 100644 +index eaa6e0e..9a2f4e2 100644 --- a/build.gradle +++ b/build.gradle -@@ -9,10 +9,21 @@ import org.gradle.nativeplatform.platform.internal.ArchitectureInternal - import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal +@@ -10,11 +10,21 @@ import org.gradle.nativeplatform.platform.internal.ArchitectureInternal import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform + import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal +buildscript { + repositories { @@ -28,13 +28,14 @@ index cbb587f..ad836cf 100644 + plugins { - id 'com.github.gmazzo.buildconfig' version '3.0.3' +- id 'org.beryx.runtime' version '1.12.7' id 'application' } +apply plugin: "com.github.gmazzo.buildconfig" compileJava.options.encoding = 'UTF-8' -@@ -82,7 +93,10 @@ static String getVersion() { +@@ -83,7 +93,10 @@ static String getVersion() { repositories { maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages @@ -46,15 +47,25 @@ index cbb587f..ad836cf 100644 } dependencies { -@@ -102,6 +116,8 @@ dependencies { - implementation 'io.prometheus:simpleclient_httpserver:0.14.1' +@@ -104,6 +117,8 @@ dependencies { + implementation 'io.prometheus:simpleclient_httpserver:0.15.0' implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3' - implementation 'io.sentry:sentry:5.6.1' + implementation 'io.sentry:sentry:5.7.3' + implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3' + implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.4.31' testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2' } +@@ -167,8 +182,3 @@ allprojects { + } + } + } +- +-runtime { +- options = ['--strip-java-debug-attributes', '--compress', '2', '--no-header-files', '--no-man-pages'] +- modules = ['java.base', 'java.management', 'java.naming', 'java.sql', 'java.xml', 'jdk.crypto.ec', 'jdk.httpserver', 'java.desktop', 'jdk.unsupported'] +-} +\ No newline at end of file -- -2.33.1 +2.36.0 diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix index 3f84c156f823..0b8552436451 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix @@ -1,16 +1,35 @@ { lib, stdenv, fetchurl, fetchFromGitLab, jdk17_headless, coreutils, gradle_6, git, perl -, makeWrapper, fetchpatch, substituteAll +, makeWrapper, fetchpatch, substituteAll, jre_minimal }: let pname = "signald"; - version = "0.17.0"; + version = "0.19.1"; src = fetchFromGitLab { owner = pname; repo = pname; rev = version; - sha256 = "sha256-eN6lEs6PuRczbzQZmGlNf6Ahp4FbWpA3EArlATEiZHU="; + sha256 = "sha256-Ma6kIKRVM8UUU/TvfVp2RVl/FLxFgBQU3mEypnujJ+c="; + }; + + jre' = jre_minimal.override { + jdk = jdk17_headless; + # from https://gitlab.com/signald/signald/-/blob/0.19.1/build.gradle#L173 + modules = [ + "java.base" + "java.management" + "java.naming" + "java.sql" + "java.xml" + "jdk.crypto.ec" + "jdk.httpserver" + + # for java/beans/PropertyChangeEvent + "java.desktop" + # for sun/misc/Unsafe + "jdk.unsupported" + ]; }; # fake build to pre-download deps into fixed-output derivation @@ -35,8 +54,8 @@ let outputHashMode = "recursive"; # Downloaded jars differ by platform outputHash = { - x86_64-linux = "sha256-kZ25p+lIkOqNoFFBgJRYFcvKJenKICVa1PasaaEHmRA="; - aarch64-linux = "sha256-CbFNigp3R7ETX0uXv6PNuhDpmPc4sowbWmwZ+5txXQs="; + x86_64-linux = "sha256-q1gzauIL7aKalvPSfiK5IvkNkidCh+6jp5bpwxR+PZ0="; + aarch64-linux = "sha256-cM+7MaV0/4yAzobXX9FSdl/ZfLddwySayao96UdDgzk="; }.${stdenv.system} or (throw "Unsupported platform"); }; @@ -67,7 +86,7 @@ in stdenv.mkDerivation rec { tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/ wrapProgram $out/bin/signald \ --prefix PATH : ${lib.makeBinPath [ coreutils ]} \ - --set JAVA_HOME "${jdk17_headless}" + --set JAVA_HOME "${jre'}" runHook postInstall ''; @@ -84,6 +103,10 @@ in stdenv.mkDerivation rec { clients. ''; homepage = "https://signald.org"; + sourceProvenance = with sourceTypes; [ + fromSource + binaryBytecode # deps + ]; license = licenses.gpl3Plus; maintainers = with maintainers; [ expipiplus1 ma27 ]; platforms = [ "x86_64-linux" "aarch64-linux" ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix index 464d4d77f946..e949625875e5 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix @@ -59,6 +59,7 @@ mkDerivation rec { meta = { description = "Lync & Skype for Business on Linux"; homepage = "https://tel.red/"; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; license = lib.licenses.unfree; maintainers = [ lib.maintainers.wucke13 ]; platforms = [ "x86_64-linux" ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix index b23f4f107aed..ec33f99809ef 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix @@ -7,7 +7,7 @@ let # Please keep the version x.y.0.z and do not update to x.y.76.z because the # source of the latter disappears much faster. - version = "8.81.0.268"; + version = "8.87.0.406"; rpath = lib.makeLibraryPath [ alsa-lib @@ -68,7 +68,7 @@ let "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb" "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb" ]; - sha256 = "sha256-MqXLK+AdYkQVTeTjul9Dru78597FuThRUVq7/y9FYUU="; + sha256 = "sha256-lWnQIdMmfz90h3tOWkQv0vo3HnRi3z6W27vK28+Ksjo="; } else throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}"; @@ -120,6 +120,7 @@ in stdenv.mkDerivation { meta = with lib; { description = "Linux client for skype"; homepage = "https://www.skype.com"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; maintainers = with maintainers; [ panaeon jraygauthier ]; platforms = [ "x86_64-linux" ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix index 30cc7396c562..e2135734bd7f 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix @@ -1,18 +1,16 @@ -{ lib, buildGoPackage, fetchFromGitHub }: +{ lib, buildGoModule, fetchFromGitHub }: -buildGoPackage rec { - # https://github.com/erroneousboat/slack-term +buildGoModule rec { pname = "slack-term"; version = "0.5.0"; - goPackagePath = "github.com/erroneousboat/slack-term"; - src = fetchFromGitHub { owner = "erroneousboat"; repo = "slack-term"; rev = "v${version}"; sha256 = "1fbq7bdhy70hlkklppimgdjamnk0v059pg73xm9ax1f4616ki1m6"; }; + vendorSha256 = null; meta = with lib; { description = "Slack client for your terminal"; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix index 5eb7518ea378..5d497546095b 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix @@ -44,14 +44,14 @@ let pname = "slack"; - x86_64-darwin-version = "4.23.0"; - x86_64-darwin-sha256 = "0l4zfyys0yf95dn0sldyjkhzp7bpn84z9q9li1lvv5jj55f0g9jd"; + x86_64-darwin-version = "4.27.154"; + x86_64-darwin-sha256 = "0a3cc9kkiq18vr4hk532vc59cza1hq8qh9x9hlhli4n72n3h7y3n"; - x86_64-linux-version = "4.23.0"; - x86_64-linux-sha256 = "1wsrxacnj9f3cb6as7ncbdvi02jqcbyc7ijsavps5bls9phkp0is"; + x86_64-linux-version = "4.27.156"; + x86_64-linux-sha256 = "sha256-/xtD+/+KGtPr4vQJm8ZczvpyPxfMBw0OE7hzTzFhSs0="; - aarch64-darwin-version = "4.23.0"; - aarch64-darwin-sha256 = "053psiqysyi7l8pviq0vwvk2azlxcpdrwfa0b99f1h6lbfcf48f3"; + aarch64-darwin-version = "4.27.154"; + aarch64-darwin-sha256 = "1n3vgcsbi1w49w4xqc5hyadb9qwvsqdiirfw9v4s65wsnark1iz6"; version = { x86_64-darwin = x86_64-darwin-version; @@ -80,8 +80,9 @@ let meta = with lib; { description = "Desktop client for Slack"; homepage = "https://slack.com"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; - maintainers = with maintainers; [ mmahut ]; + maintainers = with maintainers; [ mmahut maxeaubrey ]; platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-darwin" ]; }; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix deleted file mode 100644 index 026dc5b64056..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ lib, stdenv, fetchurl, dpkg, alsa-lib, atk, cairo, cups, dbus, expat, fontconfig -, freetype, gdk-pixbuf, glib, gnome2, gtk2, nspr, nss, pango, udev, xorg }: -let - fullPath = lib.makeLibraryPath [ - alsa-lib - atk - cairo - cups - dbus - expat - fontconfig - freetype - gdk-pixbuf - glib - gnome2.GConf - gtk2 - nspr - nss - pango - udev - xorg.libX11 - xorg.libXScrnSaver - xorg.libXcomposite - xorg.libXcursor - xorg.libXdamage - xorg.libXext - xorg.libXfixes - xorg.libXi - xorg.libXrandr - xorg.libXrender - xorg.libXtst - xorg.libxcb - ] + ":${stdenv.cc.cc.lib}/lib64"; -in -stdenv.mkDerivation rec { - version = "1.17.82"; - pname = "stride"; - - src = fetchurl { - url = "https://packages.atlassian.com/stride-apt-client/pool/stride_${version}_amd64.deb"; - sha256 = "0lx61gdhw0kv4f9fwbfg69yq52dsp4db7c4li25d6wn11qanzqhy"; - }; - - dontBuild = true; - dontFixup = true; - - buildInputs = [ dpkg ]; - - unpackPhase = '' - dpkg-deb -x ${src} ./ - ''; - - installPhase ='' - mkdir "$out" - mv usr/* "$out/" - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${fullPath}:\$ORIGIN" \ - "$out/bin/stride" - ''; - - meta = with lib; { - description = "Desktop client for Atlassian Stride"; - homepage = "https://www.stride.com/"; - license = licenses.unfree; - platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ puffnfresh ]; - }; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix index 84310498eee4..dd4e104aa66a 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix @@ -1,5 +1,6 @@ { lib , stdenv +, runtimeShell , fetchurl , autoPatchelfHook , wrapGAppsHook @@ -22,11 +23,12 @@ let pname = "teams"; - version = "1.4.00.26453"; + version = "1.5.00.10453"; meta = with lib; { description = "Microsoft Teams"; homepage = "https://teams.microsoft.com"; downloadPage = "https://teams.microsoft.com/downloads"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; maintainers = with maintainers; [ liff tricktron ]; platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; @@ -37,7 +39,7 @@ let src = fetchurl { url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb"; - sha256 = "0ndqk893l17m42hf5fiiv6mka0v7v8r54kblvb67jsxajdvva5gf"; + hash = "sha256-fLVw2axSMetuaoRzjg+x4DRYY8WP5TQbL7LbfF6LFfA="; }; nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook nodePackages.asar ]; @@ -56,9 +58,12 @@ let ]; preFixup = '' - gappsWrapperArgs+=(--prefix PATH : "${coreutils}/bin:${gawk}/bin") - gappsWrapperArgs+=(--add-flags --disable-namespace-sandbox) - gappsWrapperArgs+=(--add-flags --disable-setuid-sandbox) + gappsWrapperArgs+=( + --prefix PATH : "${coreutils}/bin:${gawk}/bin" + + # fix for https://docs.microsoft.com/en-us/answers/questions/298724/open-teams-meeting-link-on-linux-doens39t-work.html?childToView=309406#comment-309406 + --append-flags '--disable-namespace-sandbox --disable-setuid-sandbox' + ) ''; @@ -119,11 +124,6 @@ let echo "Adding runtime dependencies to RPATH of Node module $mod" patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod" done; - - # fix for https://docs.microsoft.com/en-us/answers/questions/298724/open-teams-meeting-link-on-linux-doens39t-work.html?childToView=309406#comment-309406 - # while we create the wrapper ourselves, gappsWrapperArgs leads to the same issue - # another option would be to introduce gappsWrapperAppendedArgs, to allow control of positioning - substituteInPlace "$out/bin/teams" --replace '.teams-wrapped" --disable-namespace-sandbox --disable-setuid-sandbox "$@"' '.teams-wrapped" "$@" --disable-namespace-sandbox --disable-setuid-sandbox' ''; }; @@ -134,7 +134,7 @@ let src = fetchurl { url = "https://statics.teams.cdn.office.net/production-osx/${version}/Teams_osx.pkg"; - sha256 = "1mg6a3b3954w4xy5rlcrwxczymygl61dv2rxqp45sjcsh3hp39q0"; + hash = "sha256-vLUEvOSBUyAJIWHOAIkTqTW/W6TkgmeyRzQbquZP810="; }; buildInputs = [ xar cpio makeWrapper ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix index 80d04eabc824..5a0a9006e0df 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix @@ -93,6 +93,8 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/ts3client \ --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ --set QT_PLUGIN_PATH "${qtbase}/${qtbase.qtPluginPrefix}" \ + '' /* wayland is currently broken, remove when TS3 fixes that */ + '' + --set QT_QPA_PLATFORM xcb \ --set NIX_REDIRECTS /usr/share/X11/xkb=${xkeyboard_config}/share/X11/xkb ''; @@ -102,6 +104,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "The TeamSpeak voice communication tool"; homepage = "https://teamspeak.com/"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = { fullName = "Teamspeak client license"; url = "https://www.teamspeak.com/en/privacy-and-terms/"; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix new file mode 100644 index 000000000000..aac37f441dac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix @@ -0,0 +1,109 @@ +{ lib +, stdenv +, fetchurl +, autoPatchelfHook +, copyDesktopItems +, makeDesktopItem +, makeWrapper +, alsa-lib +, at-spi2-atk +, atk +, cairo +, cups +, dbus +, gcc-unwrapped +, gdk-pixbuf +, glib +, gtk3 +, libdrm +, libnotify +, libpulseaudio +, libxkbcommon +, mesa +, nss +, udev +, xorg +}: + +stdenv.mkDerivation rec { + pname = "teamspeak5-client"; + version = "5.0.0-beta70"; + + src = fetchurl { + # check https://teamspeak.com/en/downloads/#ts5 for version and checksum + url = "https://files.teamspeak-services.com/pre_releases/client/${version}/teamspeak-client.tar.gz"; + sha256 = "44f1a29b915c3930e7385ce32b13e363a7be04c1e341226d0693600818411c6e"; + }; + + sourceRoot = "."; + + propagatedBuildInputs = [ + alsa-lib + at-spi2-atk + atk + cairo + cups.lib + dbus + gcc-unwrapped.lib + gdk-pixbuf + glib + gtk3 + libdrm + libnotify + libpulseaudio + libxkbcommon + mesa.drivers + nss + xorg.libX11 + xorg.libXScrnSaver + xorg.libXdamage + xorg.libXfixes + xorg.libxshmfence + ]; + + nativeBuildInputs = [ + autoPatchelfHook + copyDesktopItems + makeWrapper + ]; + + desktopItems = [ + (makeDesktopItem { + name = "TeamSpeak"; + exec = "TeamSpeak"; + icon = pname; + desktopName = pname; + comment = "TeamSpeak Voice Communication Client"; + categories = ["Audio" "AudioVideo" "Chat" "Network"]; + }) + ]; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/${pname} $out/share/icons/hicolor/64x64/apps/ + + cp -a * $out/share/${pname} + cp logo-256.png $out/share/icons/hicolor/64x64/apps/${pname}.png + + makeWrapper $out/share/${pname}/TeamSpeak $out/bin/TeamSpeak \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ udev ]}" + + runHook postInstall + ''; + + meta = with lib; { + description = "The TeamSpeak voice communication tool (beta version)"; + homepage = "https://teamspeak.com/"; + license = { + fullName = "Teamspeak client license"; + url = "https://www.teamspeak.com/en/privacy-and-terms/"; + free = false; + }; + maintainers = with maintainers; [ jojosch ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix index 44430ef62e2d..577589f6a40b 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix @@ -4,13 +4,13 @@ let arch = if stdenv.is64bit then "amd64" else "x86"; in stdenv.mkDerivation rec { pname = "teamspeak-server"; - version = "3.13.6"; + version = "3.13.7"; src = fetchurl { url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2"; sha256 = if stdenv.is64bit - then "sha256-U3BNJ4Jjhd39gD7iMsHT8CGtm/GFQDE2kYQa2btyK+w=" - else "sha256-8UKiFedv6w5bmqNvo3AXwQnUROwbZnU0ZTh9V17zmxQ="; + then "sha256-d1pXMamAmAHkyPkGbNm8ViobNoVTE5wSSfKgdA1QBB4=" + else "sha256-aMEDOnvBeKfzG8lDFhU8I5DYgG53IsCDBMV2MUyJi2g="; }; buildInputs = [ stdenv.cc.cc postgresql.lib ]; @@ -58,6 +58,7 @@ in stdenv.mkDerivation rec { meta = with lib; { description = "TeamSpeak voice communication server"; homepage = "https://teamspeak.com/"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfreeRedistributable; platforms = platforms.linux; maintainers = with maintainers; [ arobyn gerschtli ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix index ce5dc0e266e6..a336e048d1e4 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix @@ -7,7 +7,6 @@ , ninja , clang , python3 -, wrapGAppsHook , wrapQtAppsHook , removeReferencesTo , extra-cmake-modules @@ -27,7 +26,6 @@ , tl-expected , hunspell , glibmm -, webkitgtk , jemalloc , rnnoise , abseil-cpp @@ -65,7 +63,6 @@ , IOSurface , Metal , MetalKit -, withWebKit ? false }: with lib; @@ -101,6 +98,7 @@ stdenv.mkDerivation rec { }; patches = [ + ./kf594.patch ./shortcuts-binary-path.patch # let it build with nixpkgs 10.12 sdk ./kotato-10.12-sdk.patch @@ -113,9 +111,6 @@ stdenv.mkDerivation rec { --replace '"libasound.so.2"' '"${alsa-lib}/lib/libasound.so.2"' substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp \ --replace '"libpulse.so.0"' '"${libpulseaudio}/lib/libpulse.so.0"' - '' + optionalString (stdenv.isLinux && withWebKit) '' - substituteInPlace Telegram/lib_webview/webview/platform/linux/webview_linux_webkit_gtk.cpp \ - --replace '"libwebkit2gtk-4.0.so.37"' '"${webkitgtk}/lib/libwebkit2gtk-4.0.so.37"' '' + optionalString stdenv.isDarwin '' substituteInPlace Telegram/CMakeLists.txt \ --replace 'COMMAND iconutil' 'COMMAND png2icns' \ @@ -124,10 +119,6 @@ stdenv.mkDerivation rec { --replace "\''${appicon_path}" "\''${appicon_path}/icon_16x16.png \''${appicon_path}/icon_32x32.png \''${appicon_path}/icon_128x128.png \''${appicon_path}/icon_256x256.png \''${appicon_path}/icon_512x512.png" ''; - # We want to run wrapProgram manually (with additional parameters) - dontWrapGApps = stdenv.isLinux; - dontWrapQtApps = stdenv.isLinux && withWebKit; - nativeBuildInputs = [ pkg-config cmake @@ -139,8 +130,6 @@ stdenv.mkDerivation rec { # to build bundled libdispatch clang extra-cmake-modules - ] ++ optionals (stdenv.isLinux && withWebKit) [ - wrapGAppsHook ]; buildInputs = [ @@ -166,8 +155,6 @@ stdenv.mkDerivation rec { glibmm jemalloc wayland - ] ++ optionals (stdenv.isLinux && withWebKit) [ - webkitgtk ] ++ optionals stdenv.isDarwin [ Cocoa CoreFoundation @@ -225,18 +212,12 @@ stdenv.mkDerivation rec { remove-references-to -t ${tg_owt.dev} $out/bin/$binName ''; - postFixup = optionalString (stdenv.isLinux && withWebKit) '' - # We also use gappsWrapperArgs from wrapGAppsHook. - wrapProgram $out/bin/kotatogram-desktop \ - "''${gappsWrapperArgs[@]}" \ - "''${qtWrapperArgs[@]}" - ''; - passthru = { inherit tg_owt; }; meta = { + broken = (stdenv.isLinux && stdenv.isAarch64); description = "Kotatogram – experimental Telegram Desktop fork"; longDescription = '' Unofficial desktop client for the Telegram messenger, based on Telegram Desktop. diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch new file mode 100644 index 000000000000..0fa2d8bc8f6e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch @@ -0,0 +1,57 @@ +diff --git a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp +index 7641579aa..3c195e397 100644 +--- a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp ++++ b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp +@@ -9,10 +9,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL + + #include "base/platform/base_platform_info.h" + +-#include <connection_thread.h> +-#include <registry.h> +-#include <surface.h> +-#include <plasmashell.h> ++#include <KWayland/Client/connection_thread.h> ++#include <KWayland/Client/registry.h> ++#include <KWayland/Client/surface.h> ++#include <KWayland/Client/plasmashell.h> + + using namespace KWayland::Client; + +Submodule Telegram/lib_base contains modified content +diff --git a/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp b/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp +index 32f0de6..30a087f 100644 +--- a/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp ++++ b/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp +@@ -13,11 +13,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL + #include <QtCore/QPointer> + #include <QtGui/QWindow> + +-#include <connection_thread.h> +-#include <registry.h> +-#include <surface.h> +-#include <xdgforeign.h> +-#include <idleinhibit.h> ++#include <KWayland/Client/connection_thread.h> ++#include <KWayland/Client/registry.h> ++#include <KWayland/Client/surface.h> ++#include <KWayland/Client/xdgforeign.h> ++#include <KWayland/Client/idleinhibit.h> + + using namespace KWayland::Client; + +Submodule Telegram/lib_ui contains modified content +diff --git a/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp b/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp +index 01f1e80..163cb6a 100644 +--- a/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp ++++ b/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp +@@ -24,8 +24,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL + #include <private/qwaylandwindow_p.h> + #include <private/qwaylandshellsurface_p.h> + +-#include <connection_thread.h> +-#include <registry.h> ++#include <KWayland/Client/connection_thread.h> ++#include <KWayland/Client/registry.h> + + Q_DECLARE_METATYPE(QMargins); + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch index d603c967cfde..8c80cafc6dad 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch @@ -1,8 +1,8 @@ diff --git a/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm b/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm -index 337055443..09604b117 100644 +index 9e9a1744b..ae55f873f 100644 --- a/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm +++ b/Telegram/SourceFiles/platform/mac/file_bookmark_mac.mm -@@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +@@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include <Cocoa/Cocoa.h> #include <CoreFoundation/CFURL.h> @@ -11,10 +11,10 @@ index 337055443..09604b117 100644 namespace Platform { namespace { diff --git a/Telegram/SourceFiles/platform/mac/specific_mac.mm b/Telegram/SourceFiles/platform/mac/specific_mac.mm -index 3b4395ae3..7f8ee401f 100644 +index 1d68457bb..ac8c4e0ab 100644 --- a/Telegram/SourceFiles/platform/mac/specific_mac.mm +++ b/Telegram/SourceFiles/platform/mac/specific_mac.mm -@@ -119,6 +119,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) { +@@ -118,6 +118,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) { switch (type) { case PermissionType::Microphone: case PermissionType::Camera: @@ -22,7 +22,7 @@ index 3b4395ae3..7f8ee401f 100644 const auto nativeType = (type == PermissionType::Microphone) ? AVMediaTypeAudio : AVMediaTypeVideo; -@@ -133,6 +134,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) { +@@ -132,6 +133,7 @@ PermissionStatus GetPermissionStatus(PermissionType type) { return PermissionStatus::Denied; } } @@ -30,7 +30,7 @@ index 3b4395ae3..7f8ee401f 100644 break; } return PermissionStatus::Granted; -@@ -142,6 +144,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal +@@ -141,6 +143,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal switch (type) { case PermissionType::Microphone: case PermissionType::Camera: @@ -38,7 +38,7 @@ index 3b4395ae3..7f8ee401f 100644 const auto nativeType = (type == PermissionType::Microphone) ? AVMediaTypeAudio : AVMediaTypeVideo; -@@ -152,6 +155,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal +@@ -151,6 +154,7 @@ void RequestPermission(PermissionType type, Fn<void(PermissionStatus)> resultCal }); }]; } @@ -217,7 +217,7 @@ index 464f87c9c..9a008c75e 100644 controller:(not_null<Window::Controller*>)controller Submodule Telegram/ThirdParty/tgcalls contains modified content diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm -index 8a4417b..2d9794e 100644 +index b280c1b..a1ed0d2 100644 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoDecoderFactory.mm @@ -71,7 +71,7 @@ @@ -239,10 +239,10 @@ index 8a4417b..2d9794e 100644 if ([info.name isEqualToString:kRTCVideoCodecH265Name]) { return [[TGRTCVideoDecoderH265 alloc] init]; diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm -index 2901417..ac9ec2a 100644 +index 9960607..f3659b3 100644 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/TGRTCDefaultVideoEncoderFactory.mm -@@ -76,7 +76,7 @@ +@@ -89,7 +89,7 @@ [result addObject:h265Info]; } } @@ -251,7 +251,7 @@ index 2901417..ac9ec2a 100644 if (@available(macOS 10.13, *)) { if ([[AVAssetExportSession allExportPresets] containsObject:AVAssetExportPresetHEVCHighestQuality]) { [result addObject:h265Info]; -@@ -112,7 +112,7 @@ +@@ -129,7 +129,7 @@ return [[TGRTCVideoEncoderH265 alloc] initWithCodecInfo:info]; } } @@ -261,7 +261,7 @@ index 2901417..ac9ec2a 100644 if ([info.name isEqualToString:kRTCVideoCodecH265Name]) { return [[TGRTCVideoEncoderH265 alloc] initWithCodecInfo:info]; diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm -index de92427..9a5b20d 100644 +index bf99063..b717645 100644 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoCameraCapturerMac.mm @@ -507,8 +507,7 @@ static tgcalls::DarwinVideoTrackSource *getObjCVideoSource(const rtc::scoped_ref @@ -274,11 +274,20 @@ index de92427..9a5b20d 100644 RTCLogError(@"Dropped sample buffer. Reason: %@", droppedReason); } +@@ -682,7 +681,7 @@ static tgcalls::DarwinVideoTrackSource *getObjCVideoSource(const rtc::scoped_ref + int closest = -1; + CMTime result; + for (int i = 0; i < format.videoSupportedFrameRateRanges.count; i++) { +- const auto rateRange = format.videoSupportedFrameRateRanges[i]; ++ const AVFrameRateRange *rateRange = format.videoSupportedFrameRateRanges[i]; + int gap = abs(rateRange.minFrameRate - target); + if (gap <= closest || closest == -1) { + closest = gap; diff --git a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm -index bcabcf7..de7b6c7 100644 +index 4ef8630..3fc753c 100644 --- a/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm +++ b/Telegram/ThirdParty/tgcalls/tgcalls/platform/darwin/VideoMetalViewMac.mm -@@ -245,9 +245,11 @@ private: +@@ -243,9 +243,11 @@ private: layer.framebufferOnly = true; layer.opaque = false; // layer.cornerRadius = 4; @@ -290,7 +299,7 @@ index bcabcf7..de7b6c7 100644 // layer.presentsWithTransaction = YES; layer.backgroundColor = [NSColor clearColor].CGColor; layer.contentsGravity = kCAGravityResizeAspectFill; -@@ -334,9 +336,7 @@ private: +@@ -332,9 +334,7 @@ private: - (RTCVideoRotation)rtcFrameRotation { if (_rotationOverride) { RTCVideoRotation rotation; @@ -323,10 +332,10 @@ index 5491702..32befc6 100644 } diff --git a/Telegram/lib_base/base/platform/mac/base_info_mac.mm b/Telegram/lib_base/base/platform/mac/base_info_mac.mm -index 29e368f..ea1f65f 100644 +index f1f259a..6629eb6 100644 --- a/Telegram/lib_base/base/platform/mac/base_info_mac.mm +++ b/Telegram/lib_base/base/platform/mac/base_info_mac.mm -@@ -203,16 +203,20 @@ void Finish() { +@@ -226,16 +226,20 @@ void Finish() { } void OpenInputMonitoringPrivacySettings() { @@ -348,10 +357,10 @@ index 29e368f..ea1f65f 100644 } diff --git a/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm b/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm -index c86ac77..b081162 100644 +index 6102705..8981239 100644 --- a/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm +++ b/Telegram/lib_base/base/platform/mac/base_system_media_controls_mac.mm -@@ -271,6 +271,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) { +@@ -277,6 +277,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) { if (thumbnail.isNull()) { return; } @@ -359,7 +368,7 @@ index c86ac77..b081162 100644 if (@available(macOS 10.13.2, *)) { const auto copy = thumbnail; [_private->info -@@ -284,6 +285,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) { +@@ -290,6 +291,7 @@ void SystemMediaControls::setThumbnail(const QImage &thumbnail) { forKey:MPMediaItemPropertyArtwork]; updateDisplay(); } @@ -367,7 +376,7 @@ index c86ac77..b081162 100644 } void SystemMediaControls::setDuration(int duration) { -@@ -302,10 +304,12 @@ void SystemMediaControls::setVolume(float64 volume) { +@@ -308,10 +310,12 @@ void SystemMediaControls::setVolume(float64 volume) { } void SystemMediaControls::clearThumbnail() { @@ -380,7 +389,7 @@ index c86ac77..b081162 100644 } void SystemMediaControls::clearMetadata() { -@@ -367,9 +371,11 @@ bool SystemMediaControls::volumeSupported() const { +@@ -373,9 +377,11 @@ bool SystemMediaControls::volumeSupported() const { } bool SystemMediaControls::Supported() { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch index a9adf5737a55..af1d47a3b44e 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch @@ -1,3 +1,16 @@ +diff --git a/src/rtc_base/async_resolver.cc b/src/rtc_base/async_resolver.cc +index ad1598f2..fe9c3832 100644 +--- a/src/rtc_base/async_resolver.cc ++++ b/src/rtc_base/async_resolver.cc +@@ -57,7 +57,7 @@ void GlobalGcdRunTask(void* context) { + + // Post a task into the system-defined global concurrent queue. + void PostTaskToGlobalQueue(std::unique_ptr<webrtc::QueuedTask> task) { +- dispatch_queue_global_t global_queue = ++ dispatch_queue_t global_queue = + dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + webrtc::QueuedTask* context = task.release(); + dispatch_async_f(global_queue, context, &GlobalGcdRunTask); diff --git a/src/rtc_base/system/gcd_helpers.m b/src/rtc_base/system/gcd_helpers.m index fd9a361f..3a63be6d 100644 --- a/src/rtc_base/system/gcd_helpers.m @@ -13,10 +26,10 @@ index fd9a361f..3a63be6d 100644 dispatch_set_target_queue(queue, target); return queue; diff --git a/src/sdk/objc/components/video_codec/nalu_rewriter.cc b/src/sdk/objc/components/video_codec/nalu_rewriter.cc -index 61c1e7d6..b19f3f91 100644 +index 1121c921..f21926b0 100644 --- a/src/sdk/objc/components/video_codec/nalu_rewriter.cc +++ b/src/sdk/objc/components/video_codec/nalu_rewriter.cc -@@ -245,10 +245,7 @@ bool H265CMSampleBufferToAnnexBBuffer( +@@ -242,10 +242,7 @@ bool H265CMSampleBufferToAnnexBBuffer( int nalu_header_size = 0; size_t param_set_count = 0; OSStatus status = noErr; @@ -28,7 +41,7 @@ index 61c1e7d6..b19f3f91 100644 RTC_LOG(LS_ERROR) << "Not supported."; return false; } -@@ -271,10 +268,7 @@ bool H265CMSampleBufferToAnnexBBuffer( +@@ -268,10 +265,7 @@ bool H265CMSampleBufferToAnnexBBuffer( size_t param_set_size = 0; const uint8_t* param_set = nullptr; for (size_t i = 0; i < param_set_count; ++i) { @@ -40,7 +53,7 @@ index 61c1e7d6..b19f3f91 100644 RTC_LOG(LS_ERROR) << "Not supported."; return false; } -@@ -514,11 +508,7 @@ CMVideoFormatDescriptionRef CreateH265VideoFormatDescription( +@@ -501,11 +495,7 @@ CMVideoFormatDescriptionRef CreateH265VideoFormatDescription( // Parse the SPS and PPS into a CMVideoFormatDescription. CMVideoFormatDescriptionRef description = nullptr; OSStatus status = noErr; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix index fe62270b8e80..e171622616ae 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix @@ -25,8 +25,8 @@ , abseil-cpp , pipewire , mesa -, libglvnd -, libepoxy +, libdrm +, libGL , Cocoa , AppKit , IOKit @@ -46,13 +46,13 @@ stdenv.mkDerivation { pname = "tg_owt"; - version = "unstable-2022-02-26"; + version = "unstable-2022-04-13"; src = fetchFromGitHub { owner = "desktop-app"; repo = "tg_owt"; - rev = "a264028ec71d9096e0aa629113c49c25db89d260"; - sha256 = "sha256-JR+M+4w0QsQLfIunZ/7W+5Knn+gX+RR3DBrpOz7q44I="; + rev = "63a934db1ed212ebf8aaaa20f0010dd7b0d7b396"; + sha256 = "sha256-WddSsQ9KW1zYyYckzdUOvfFZArYAbyvXmABQNMtK6cM="; fetchSubmodules = true; }; @@ -61,11 +61,19 @@ stdenv.mkDerivation { ./tg_owt-10.12-sdk.patch ]; + postPatch = lib.optionalString stdenv.isLinux '' + substituteInPlace src/modules/desktop_capture/linux/egl_dmabuf.cc \ + --replace '"libEGL.so.1"' '"${libGL}/lib/libEGL.so.1"' \ + --replace '"libGL.so.1"' '"${libGL}/lib/libGL.so.1"' \ + --replace '"libgbm.so.1"' '"${mesa}/lib/libgbm.so.1"' \ + --replace '"libdrm.so.2"' '"${libdrm}/lib/libdrm.so.2"' + ''; + outputs = [ "out" "dev" ]; nativeBuildInputs = [ pkg-config cmake ninja yasm ]; - buildInputs = [ + propagatedBuildInputs = [ libjpeg openssl libopus @@ -87,8 +95,8 @@ stdenv.mkDerivation { glib pipewire mesa - libepoxy - libglvnd + libdrm + libGL ] ++ lib.optionals stdenv.isDarwin [ Cocoa AppKit @@ -112,13 +120,5 @@ stdenv.mkDerivation { enableParallelBuilding = true; - propagatedBuildInputs = [ - # Required for linking downstream binaries. - abseil-cpp - openh264 - usrsctp - libvpx - ]; - meta.license = lib.licenses.bsd3; } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix new file mode 100644 index 000000000000..435268cdf623 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix @@ -0,0 +1,23 @@ +{ stdenv, lib, kotatogram-desktop, glib-networking, webkitgtk, makeWrapper }: + +with lib; + +stdenv.mkDerivation { + pname = "${kotatogram-desktop.pname}-with-webkit"; + version = kotatogram-desktop.version; + nativeBuildInputs = [ makeWrapper ]; + dontUnpack = true; + installPhase = '' + mkdir -p $out + cp -r ${kotatogram-desktop}/share $out + ''; + postFixup = '' + mkdir -p $out/bin + makeWrapper ${kotatogram-desktop}/bin/kotatogram-desktop $out/bin/kotatogram-desktop \ + --prefix GIO_EXTRA_MODULES : ${glib-networking}/lib/gio/modules \ + --prefix LD_LIBRARY_PATH : ${makeLibraryPath [ webkitgtk ]} + ''; + meta = kotatogram-desktop.meta // { + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix index c23e416d2c62..3f1468126fd8 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix @@ -1,5 +1,4 @@ -{ mkDerivation -, lib +{ lib , fetchFromGitHub , callPackage , pkg-config @@ -10,9 +9,11 @@ , wrapQtAppsHook , extra-cmake-modules , qtbase +, qtwayland +, qtsvg , qtimageformats +, qt5compat , gtk3 -, kwayland , libdbusmenu , lz4 , xxHash @@ -22,6 +23,7 @@ , libopus , alsa-lib , libpulseaudio +, pipewire , range-v3 , tl-expected , hunspell @@ -34,6 +36,7 @@ , util-linuxMinimal , pcre , libpthreadstubs +, libXdamage , libXdmcp , libselinux , libsepol @@ -70,7 +73,7 @@ let in env.mkDerivation rec { pname = "telegram-desktop"; - version = "3.6.0"; + version = "4.1.0"; # Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py # Telegram-Desktop with submodules @@ -79,7 +82,7 @@ env.mkDerivation rec { repo = "tdesktop"; rev = "v${version}"; fetchSubmodules = true; - sha256 = "0zcjm08nfdlxrsv0fi6dqg3lk52bcvsxnsf6jm5fv6gf5v9ia3hq"; + sha256 = "06va1b5dac7a2av6vc0xin27y1hfnf4xbafy10myv33am8l5222m"; }; postPatch = '' @@ -112,9 +115,11 @@ env.mkDerivation rec { buildInputs = [ qtbase + qtwayland + qtsvg qtimageformats + qt5compat gtk3 - kwayland libdbusmenu lz4 xxHash @@ -124,6 +129,7 @@ env.mkDerivation rec { libopus alsa-lib libpulseaudio + pipewire range-v3 tl-expected hunspell @@ -136,6 +142,7 @@ env.mkDerivation rec { util-linuxMinimal # Required for libmount thus not nativeBuildInputs. pcre libpthreadstubs + libXdamage libXdmcp libselinux libsepol @@ -158,8 +165,6 @@ env.mkDerivation rec { "-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c" # See: https://github.com/NixOS/nixpkgs/pull/130827#issuecomment-885212649 "-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF" - # TODO: Remove once QT6 is available in nixpkgs - "-DDESKTOP_APP_QT6=OFF" ]; postFixup = '' diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix index 200e0e887e3e..590e8f337fe6 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation { pname = "tg_owt"; - version = "unstable-2022-02-25"; + version = "unstable-2022-08-11"; src = fetchFromGitHub { owner = "desktop-app"; repo = "tg_owt"; - rev = "a264028ec71d9096e0aa629113c49c25db89d260"; - sha256 = "10p3x8z3ps8s1ivi9y8px2gsg4pvsvz6g9wbgh5w8hilikxqq7r5"; + rev = "a5fbc9123e056e611e69acf0ceb4252ddd838adb"; + sha256 = "1hzck63spjjkqzkj0mlrxygrix4lw0n3i5cmc0vkxaphfzawz74n"; fetchSubmodules = true; }; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix index 3b69aa5566dc..c8e8598c1403 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, jansson, lib, libconfig, libevent, libgcrypt, lua, lua53Packages +{ stdenv, fetchFromGitHub, fetchpatch, jansson, lib, libconfig, libevent, libgcrypt, lua, lua53Packages , makeWrapper, openssl, pkg-config, python3, readline, zlib }: @@ -14,6 +14,16 @@ stdenv.mkDerivation rec { fetchSubmodules = true; }; + patches = [ + # Pull patch pending upstream upstream inclusion for -fno-common toolchains: + # https://github.com/kenorb-contrib/tg/pull/61 + (fetchpatch { + name = "fno-common.patch"; + url = "https://github.com/kenorb-contrib/tg/commit/aad2e644fffa16066b227741d54de31bddb04ff8.patch"; + sha256 = "sha256-LAa5J4BVj3QCiDSs+p2bynDroMSIqCeexQvrgaDl6OE="; + }) + ]; + buildInputs = [ jansson libconfig diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix new file mode 100644 index 000000000000..0918bfee91e2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix @@ -0,0 +1,25 @@ +{ lib, buildPythonApplication, fetchFromGitHub, pythonOlder, python-telegram }: + +buildPythonApplication rec { + pname = "tg"; + version = "0.19.0"; + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "paul-nameless"; + repo = pname; + rev = "v${version}"; + hash = "sha256-apHd26XnOz5nak+Kz8PJPsonQfTWDyPz7Mi/tWf7zwM="; + }; + + propagatedBuildInputs = [ python-telegram ]; + + doCheck = false; # No tests + + meta = with lib; { + description = "Terminal client for telegram"; + homepage = "https://github.com/paul-nameless/tg"; + license = licenses.unlicense; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix deleted file mode 100644 index 882fae1c3b5f..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchurl, libxslt, glib, libxml2, telepathy-glib, python2, avahi, libsoup -, libuuid, openssl, pcre, sqlite, pkg-config }: - -stdenv.mkDerivation rec { - pname = "telepathy-salut"; - version = "0.8.1"; - - src = fetchurl { - url = "https://telepathy.freedesktop.org/releases/telepathy-salut/telepathy-salut-${version}.tar.gz"; - sha256 = "13k112vrr3zghzr03pnbqc1id65qvpj0sn0virlbf4dmr2511fbh"; - }; - - # pcre needed because https://github.com/NixOS/nixpkgs/pull/15046 - buildInputs = [ glib libxml2 telepathy-glib avahi libsoup libuuid openssl - sqlite pcre python2 ]; - - nativeBuildInputs = [ libxslt pkg-config ]; - - configureFlags = [ "--disable-avahi-tests" ]; - - meta = with lib; { - description = "Link-local XMPP connection manager for Telepathy"; - platforms = platforms.gnu ++ platforms.linux; # Random choice - maintainers = [ ]; - broken = true; - }; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix index 30bfde7a96f1..852abe8e6dc4 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "threema-desktop"; - version = "1.0.3"; + version = "1.2.13"; src = fetchurl { # As Threema only offers a Latest Release url, the plan is to upload each # new release url to web.archive.org until their Github releases page gets populated. - url = "https://web.archive.org/web/20211027194646/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb"; - sha256 = "sha256-qiFv52nnyfHxCWTePmyxW/MgzFy3EUxmW6n+UIkw7tk="; + url = "https://web.archive.org/web/20220621152620id_/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb"; + sha256 = "sha256-X16GMxUIKUloj0FxhzWQKUBf4zwfSBVg0cwLgGxHPHE="; }; nativeBuildInputs = [ @@ -47,6 +47,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Desktop client for Threema, a privacy-focused end-to-end encrypted mobile messenger"; homepage = "https://threema.ch"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.agpl3Only; maintainers = with maintainers; [ wolfangaukang ]; platforms = [ "x86_64-linux" ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix deleted file mode 100644 index 3278d68cd0b5..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, python2, unzip, tor }: - -stdenv.mkDerivation rec { - pname = "torchat"; - version = "0.9.9.553"; - - src = fetchFromGitHub { - owner = "prof7bit"; - repo = "TorChat"; - rev = version; - sha256 = "2LHG9qxZDo5rV6wsputdRo2Y1aHs+irMwt1ucFnXQE0="; - }; - - nativeBuildInputs = [ unzip ]; - buildInputs = with python2.pkgs; [ python wxPython wrapPython ]; - pythonPath = with python2.pkgs; [ wxPython ]; - - preConfigure = "cd torchat/src; rm portable.txt"; - - installPhase = '' - substituteInPlace "Tor/tor.sh" --replace "tor -f" "${tor}/bin/tor -f" - - wrapPythonPrograms - - mkdir -p $out/lib/torchat - cp -rf * $out/lib/torchat - makeWrapper ${python2}/bin/python $out/bin/torchat \ - --set PYTHONPATH $out/lib/torchat:$program_PYTHONPATH \ - --run "cd $out/lib/torchat" \ - --add-flags "-O $out/lib/torchat/torchat.py" - ''; - - meta = with lib; { - homepage = "https://github.com/prof7bit/TorChat"; - description = "Instant messaging application on top of the Tor network and it's location hidden services"; - license = licenses.gpl3; - maintainers = [ ]; - platforms = platforms.unix; - }; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/trillian-im/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/trillian-im/default.nix new file mode 100644 index 000000000000..0d4a6299adfc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/trillian-im/default.nix @@ -0,0 +1,78 @@ +{ lib +, stdenv +, fetchurl +, autoPatchelfHook +, dpkg +, atkmm +, cairo +, cairomm +, gtk3 +, gtkmm3 +, libnotify +, libsecret +, pangomm +, xorg +, libpulseaudio +, librsvg +, libzip +, openssl +, webkitgtk +, libappindicator-gtk3 +}: + +stdenv.mkDerivation rec { + pname = "trillian-im"; + version = "6.3.0.1"; + + src = fetchurl { + url = "https://www.trillian.im/get/linux/6.3/trillian_${version}_amd64.deb"; + sha256 = "42e3466ee236ac2644907059f0961eba3a6ed6b6156afb2c57f54ebe6065ac6f"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + ]; + + buildInputs = [ + atkmm + cairo + cairomm + gtk3 + gtkmm3 + libnotify + libsecret + pangomm + xorg.libXScrnSaver + libpulseaudio + librsvg + libzip + openssl + webkitgtk + libappindicator-gtk3 + ]; + + dontUnpack = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out + dpkg -x $src $out + cp -av $out/usr/* $out + rm -rf $out/usr + + rm $out/bin/trillian + ln -s "$out/share/trillian/trillian" "$out/bin/trillian" + + runHook postInstall + ''; + + meta = with lib; { + description = "Modern instant messaging for home and work that prioritizes chat interoperability and security"; + homepage = "https://www.trillian.im/"; + license = licenses.unfree; + maintainers = with maintainers; [ majiir ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix index 42dd9f835c9a..c368c049daf0 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix @@ -19,6 +19,10 @@ let rev = "v${version}"; sha256 = "0k4bdlwjna6f1k19jki4xqgckrinkkw8b9wihzymr1l04rwd05nw"; }; + propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ + super.six + super.requests.optional-dependencies.socks + ]; doCheck = false; }); }; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix new file mode 100644 index 000000000000..ec9df5ec10dd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix @@ -0,0 +1,25 @@ +{ lib, fetchFromGitHub, rustPlatform, pkg-config, openssl }: + +rustPlatform.buildRustPackage rec { + pname = "twitch-tui"; + version = "1.6.0"; + + src = fetchFromGitHub { + owner = "Xithrius"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-144yn/QQPIZJOgqKFUWjB7KCmEKfNpj6XjMGhTpQdEQ="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ openssl ]; + + cargoHash = "sha256-zUeI01EyXsuoKzHbpVu3jyA3H2aBk6wMY+GW3h3v8vc="; + + meta = with lib; { + description = "Twitch chat in the terminal"; + homepage = "https://github.com/Xithrius/twitch-tui"; + license = licenses.mit; + maintainers = [ maintainers.taha ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix index f8e048edc4b0..be19ec257424 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix @@ -101,6 +101,7 @@ stdenv.mkDerivation { meta = { homepage = "https://www.viber.com"; description = "An instant messaging and Voice over IP (VoIP) app"; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; license = lib.licenses.unfree; platforms = [ "x86_64-linux" ]; maintainers = with lib.maintainers; [ jagajaga ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix index bb34fd7534c9..a22437bf8da0 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix @@ -47,6 +47,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A console (ncurses) client for vk.com written in D"; homepage = "https://github.com/vk-cli/vk"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.asl20; maintainers = with maintainers; [ dan4ik605743 ]; platforms = [ "x86_64-linux" ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix index 5fb0f14f36a0..1d249794d443 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix @@ -24,6 +24,7 @@ let meta = with lib; { description = "Simple and Convenient Messaging App for VK"; homepage = "https://vk.com/messenger"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; maintainers = [ ]; platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix new file mode 100644 index 000000000000..f324dd0db083 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix @@ -0,0 +1,175 @@ +{ lib +, writeScript +, stdenv +, fetchurl +, alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, cairo +, cups +, dbus +, expat +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gtk3 +, harfbuzz +, libdrm +, libgcrypt +, libglvnd +, libkrb5 +, libpulseaudio +, libsecret +, udev +, libxcb +, libxkbcommon +, lshw +, mesa +, nspr +, nss +, pango +, zlib +, libX11 +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXrandr +, libXrender +, libXtst +, libxshmfence +, xcbutil +, xcbutilimage +, xcbutilkeysyms +, xcbutilrenderutil +, xcbutilwm +, p7zip +, wayland +, libXScrnSaver +}: + +stdenv.mkDerivation rec { + pname = "webex"; + version = "42.8.0.22907"; + + src = fetchurl { + url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Blue/20220712081040/Webex_ubuntu.7z"; + sha256 = "b83950cdcf978a3beda93de27b25b70554fc82fcf072a5a7ea858d2ce0d176ac"; + }; + + buildInputs = [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + fontconfig + freetype + glib + gdk-pixbuf + gtk3 + harfbuzz + lshw + mesa + nspr + nss + pango + zlib + libdrm + libgcrypt + libglvnd + libkrb5 + libpulseaudio + libsecret + udev + libxcb + libxkbcommon + libX11 + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + libxshmfence + xcbutil + xcbutilimage + libXScrnSaver + xcbutilkeysyms + xcbutilrenderutil + xcbutilwm + p7zip + wayland + ]; + + libPath = "$out/opt/Webex/lib:$out/opt/Webex/bin:${lib.makeLibraryPath buildInputs}"; + + unpackPhase = '' + 7z x $src + mv Webex_ubuntu/opt . + ''; + + postPatch = '' + substituteInPlace opt/Webex/bin/webex.desktop --replace /opt $out/opt + ''; + + dontPatchELF = true; + + buildPhase = '' + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${libPath}" \ + opt/Webex/bin/CiscoCollabHost \ + opt/Webex/bin/CiscoCollabHostCef \ + opt/Webex/bin/CiscoCollabHostCefWM \ + opt/Webex/bin/WebexFileSelector \ + opt/Webex/bin/pxgsettings + for each in $(find opt/Webex -type f | grep \\.so); do + patchelf --set-rpath "${libPath}" "$each" + done + ''; + + installPhase = '' + mkdir -p "$out/bin" "$out/share/applications" + cp -r opt "$out" + + ln -s "$out/opt/Webex/bin/CiscoCollabHost" "$out/bin/webex" + chmod +x $out/bin/webex + + mv "$out/opt/Webex/bin/webex.desktop" "$out/share/applications/webex.desktop" + ''; + + passthru.updateScript = writeScript "webex-update-script" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p curl jq common-updater-scripts + set -eou pipefail; + + channel=blue + manifest=$(curl -s "https://client-upgrade-a.wbx2.com/client-upgrade/api/v1/webexteamsdesktop/upgrade/@me?channel=$channel&model=ubuntu" | jq '.manifest') + + url=$(jq -r '.packageLocation' <<< "$manifest") + version=$(jq -r '.version' <<< "$manifest") + hash=$(jq -r '.checksum' <<< "$manifest") + + update-source-version ${pname} "$version" "$hash" "$url" --file=./pkgs/applications/networking/instant-messengers/webex/default.nix + ''; + + meta = with lib; { + description = "The all-in-one app to call, meet, message, and get work done"; + homepage = "https://webex.com/"; + downloadPage = "https://www.webex.com/downloads.html"; + license = licenses.unfree; + maintainers = with lib.maintainers; [ uvnikita ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix index 974d9a6a05df..304d1bf4255c 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix @@ -11,6 +11,7 @@ , cpio , xar , libdbusmenu +, libxshmfence }: let @@ -22,13 +23,13 @@ let pname = "wire-desktop"; version = { - x86_64-darwin = "3.26.4145"; - x86_64-linux = "3.26.2941"; + x86_64-darwin = "3.27.4357"; + x86_64-linux = "3.27.2944"; }.${system} or throwSystem; sha256 = { - x86_64-darwin = "1ck74a9z2mrwmljrqm347bqhjiaf1v0bf1jfnp58cqngh5ygqnf2"; - x86_64-linux = "01gy84gr0gw5ap7hpy72azaf6hlzac7vxkn5cgad5sfbyzxgjgc9"; + x86_64-darwin = "0xihg9fzsbwib2fmb1yqx9015i9q4k0ph8lna4mzgicmrjkw54g8"; + x86_64-linux = "1wqnrmp8q84izvqv25fgks5pv6la3vahm5dsn7bc6zxqb0xz2xvy"; }.${system} or throwSystem; meta = with lib; { @@ -46,6 +47,7 @@ let ''; homepage = "https://wire.com/"; downloadPage = "https://wire.com/download/"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.gpl3Plus; maintainers = with maintainers; [ arianvp @@ -90,7 +92,7 @@ let wrapGAppsHook ]; - buildInputs = atomEnv.packages; + buildInputs = [ libxshmfence ] ++ atomEnv.packages; unpackPhase = '' runHook preUnpack diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix deleted file mode 100644 index 4367230f7756..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, buildGoPackage, fetchFromGitHub }: - -buildGoPackage rec { - pname = "xmpp-client"; - version = "20160916-${lib.strings.substring 0 7 rev}"; - rev = "abbf9020393e8caae3e8996a16ce48446e31cf0e"; - - goPackagePath = "github.com/agl/xmpp-client"; - - src = fetchFromGitHub { - owner = "agl"; - repo = "xmpp-client"; - inherit rev; - sha256 = "0j9mfr208cachzm39i8b94v5qk9hws278vv2ms9ma4wn16wns81s"; - }; - - goDeps = ./deps.nix; - - meta = with lib; { - description = "An XMPP client with OTR support"; - homepage = "https://github.com/agl/xmpp-client"; - license = licenses.bsd3; - maintainers = with maintainers; [ codsl ]; - }; -} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix deleted file mode 100644 index caa41024fc61..000000000000 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - goPackagePath = "golang.org/x/net"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/net"; - rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4"; - sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p"; - }; - } - { - goPackagePath = "golang.org/x/crypto"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/crypto"; - rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6"; - sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa"; - }; - } -] diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix new file mode 100644 index 000000000000..c1a8891a073e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix @@ -0,0 +1,38 @@ +{lib, stdenv, fetchFromGitea, autoconf-archive, autoreconfHook, pkg-config, libstrophe, glib, gpgme }: + +stdenv.mkDerivation rec { + pname = "xmppc"; + version = "0.1.2"; + + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "Anoxinon_e.V."; + repo = "xmppc"; + rev = version; + sha256 = "07cy3j4g7vycagdiva3dqb59361lw7s5f2yydpczmyih29v7hkm8"; + }; + + nativeBuildInputs = [ + autoconf-archive + autoreconfHook + pkg-config + ]; + + buildInputs = [ + libstrophe + glib + gpgme + ]; + + preAutoreconf = '' + mkdir m4 + ''; + + meta = with lib; { + description = "Command Line Interface Tool for XMPP"; + homepage = "https://codeberg.org/Anoxinon_e.V./xmppc"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = [ maintainers.jugendhacker ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix new file mode 100644 index 000000000000..9b4a21cb7d28 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix @@ -0,0 +1 @@ +"0cwplzza8vv4nzxf35i2p4gfnna4dpgp0ddqbpdxl8cxrikq5rji" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix new file mode 100644 index 000000000000..4fd4c471b3cf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix @@ -0,0 +1 @@ +"5.11.1.8356" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix index 4aa9dbc9b10c..f85fa1e28f6c 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -1,22 +1,34 @@ { stdenv , lib , fetchurl +, pipewire , makeWrapper +, xar +, cpio # Dynamic libraries , alsa-lib , atk +, at-spi2-atk +, at-spi2-core , cairo +, cups , dbus +, expat +, libdrm , libGL , fontconfig , freetype , gtk3 , gdk-pixbuf , glib +, mesa +, nspr +, nss , pango , wayland , xorg , libxkbcommon +, udev , zlib # Runtime , coreutils @@ -28,11 +40,28 @@ }: let - version = "5.9.6.2225"; + inherit (stdenv.hostPlatform) system; + throwSystem = throw "Unsupported system: ${system}"; + + # Zoom versions are released at different times for each platform + version = { + aarch64-darwin =import ./arm64-darwin-version.nix; + x86_64-darwin = import ./x86_64-darwin-version.nix; + x86_64-linux = import ./x86_64-linux-version.nix; + }.${system} or throwSystem; + srcs = { + aarch64-darwin = fetchurl { + url = "https://zoom.us/client/${version}/Zoom.pkg?archType=arm64"; + sha256 = import ./arm64-darwin-sha.nix; + }; + x86_64-darwin = fetchurl { + url = "https://zoom.us/client/${version}/Zoom.pkg"; + sha256 = import ./x86_64-darwin-sha.nix; + }; x86_64-linux = fetchurl { url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz"; - sha256 = "0rynpw2fjn9j75f34rk0rgqn9wzyzgzmwh1a3xcx7hqingv45k53"; + sha256 = import ./x86_64-linux-sha.nix; }; }; @@ -40,28 +69,41 @@ let # $ LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH:$PWD ldd zoom | grep 'not found' alsa-lib atk + at-spi2-atk + at-spi2-core cairo + cups dbus + expat + libdrm libGL + pipewire fontconfig freetype gtk3 gdk-pixbuf glib + mesa + nspr + nss pango stdenv.cc.cc wayland xorg.libX11 xorg.libxcb xorg.libXcomposite + xorg.libXdamage xorg.libXext libxkbcommon + xorg.libXrandr xorg.libXrender - zlib + xorg.libxshmfence xorg.xcbutilimage xorg.xcbutilkeysyms xorg.libXfixes xorg.libXtst + udev + zlib ] ++ lib.optional (pulseaudioSupport) libpulseaudio); in @@ -69,23 +111,41 @@ stdenv.mkDerivation rec { pname = "zoom"; inherit version; - src = srcs.${stdenv.hostPlatform.system}; + src = srcs.${system} or throwSystem; - dontUnpack = true; + dontUnpack = stdenv.isLinux; + unpackPhase = lib.optionalString stdenv.isDarwin '' + xar -xf $src + zcat < zoomus.pkg/Payload | cpio -i + ''; nativeBuildInputs = [ makeWrapper + ] + ++ lib.optionals stdenv.isDarwin [ + xar + cpio ]; installPhase = '' runHook preInstall - mkdir $out - tar -C $out -xf $src - mv $out/usr/* $out/ + ${rec { + aarch64-darwin = '' + mkdir -p $out/Applications + cp -R zoom.us.app $out/Applications/ + ''; + # darwin steps same on both architectures + x86_64-darwin = aarch64-darwin; + x86_64-linux = '' + mkdir $out + tar -C $out -xf $src + mv $out/usr/* $out/ + ''; + }.${system} or throwSystem} runHook postInstall ''; - postFixup = '' + postFixup = lib.optionalString stdenv.isLinux '' # Desktop File substituteInPlace $out/share/applications/Zoom.desktop \ --replace "Exec=/usr/bin/zoom" "Exec=$out/bin/zoom" @@ -95,7 +155,9 @@ stdenv.mkDerivation rec { done # ZoomLauncher sets LD_LIBRARY_PATH before execing zoom - wrapProgram $out/opt/zoom/zoom \ + # IPC breaks if the executable name does not end in 'zoom' + mv $out/opt/zoom/zoom $out/opt/zoom/.zoom + makeWrapper $out/opt/zoom/.zoom $out/opt/zoom/zoom \ --prefix LD_LIBRARY_PATH ":" ${libs} rm $out/bin/zoom @@ -104,7 +166,7 @@ stdenv.mkDerivation rec { # Clear Qt paths to prevent tripping over "foreign" Qt resources. # Clear Qt screen scaling settings to prevent over-scaling. makeWrapper $out/opt/zoom/ZoomLauncher $out/bin/zoom \ - --run "cd $out/opt/zoom" \ + --chdir "$out/opt/zoom" \ --unset QML2_IMPORT_PATH \ --unset QT_PLUGIN_PATH \ --unset QT_SCREEN_SCALE_FACTORS \ @@ -123,6 +185,7 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://zoom.us/"; description = "zoom.us video conferencing application"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; platforms = builtins.attrNames srcs; maintainers = with maintainers; [ danbst tadfisher doronbehar ]; diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh index 3ec1cccd0d64..6d9b50252d12 100755 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh @@ -1,10 +1,30 @@ #!/usr/bin/env nix-shell -#!nix-shell -i bash -p curl pup common-updater-scripts +#!nix-shell -i bash -p curl pup set -eu -o pipefail -version="$(curl -Ls https://zoom.us/download\?os\=linux | \ - pup '.linux-ver-text text{}' | \ - awk -F'[ ().]' '{printf $2"."$3"."$4"."$6"\n"}')" +dirname="$(dirname "$0")" -update-source-version zoom-us "$version" +uname="$(uname)" + +if [[ "$uname" == "Linux" ]]; then + version="$(curl -Ls https://zoom.us/download\?os\=linux | \ + pup '.linux-ver-text text{}' | \ + awk -F'[ ().]' '{printf $2"."$3"."$4"."$6"\n"}')" + printf '"%s"\n' ${version} > $dirname/x86_64-linux-version.nix + printf '"%s"\n' \ + $(nix-prefetch-url https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz) > \ + $dirname/x86_64-linux-sha.nix +elif [[ $uname == "Darwin" ]]; then + # The 1st line might be empty + # 2nd line is the version of the conference room application + version="$(curl -Ls https://zoom.us/download\?os\=mac | \ + pup '.ver text{}' | \ + sed '/^$/d' |\ + head -1 | \ + awk -F'[ ().]' '{printf $2"."$3"."$4"."$6"\n"}')" + printf '"%s"\n' ${version} > "$dirname/$(uname -m)-darwin-version.nix" + printf '"%s"\n' \ + $(nix-prefetch-url "https://zoom.us/client/${version}/Zoom.pkg?archType=$(uname -m)") > \ + "$dirname/$(uname -m)-darwin-sha.nix" +fi diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix new file mode 100644 index 000000000000..a5ef33d28b56 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix @@ -0,0 +1 @@ +"12s4z80n1qk1vcp5vppabj6fxanm4q7pjj7mggalmjbj6984fsza" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix new file mode 100644 index 000000000000..4fd4c471b3cf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix @@ -0,0 +1 @@ +"5.11.1.8356" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix new file mode 100644 index 000000000000..778aaf85f56b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix @@ -0,0 +1 @@ +"09x0l50frck8v2zhgp84m57q3kj74chk37sc69mpbhwy0s6vg980" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix new file mode 100644 index 000000000000..e3f51ac695de --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix @@ -0,0 +1 @@ +"5.11.3.3882" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix index 1775ce9a4817..cf48ba4420e6 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix @@ -7,14 +7,14 @@ python3.pkgs.buildPythonApplication rec { pname = "zulip-term"; - version = "0.6.0"; + version = "0.7.0"; # no tests on PyPI src = fetchFromGitHub { owner = "zulip"; repo = "zulip-terminal"; rev = version; - sha256 = "sha256-nlvZaGMVRRCu8PZHxPWjNSxkqhZs0T/tE1js/3pDUFk="; + sha256 = "sha256-ZouUU4p1FSGMxPuzDo5P971R+rDXpBdJn2MqvkJO+Fw="; }; patches = [ @@ -22,15 +22,17 @@ python3.pkgs.buildPythonApplication rec { ]; propagatedBuildInputs = with python3.pkgs; [ - urwid - zulip - urwid-readline beautifulsoup4 lxml - typing-extensions + pygments + pyperclip python-dateutil pytz + typing-extensions tzlocal + urwid + urwid-readline + zulip ]; checkInputs = [ diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch index 4602a254ab88..a816993b8c4b 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch @@ -1,13 +1,22 @@ diff --git a/tests/cli/test_run.py b/tests/cli/test_run.py -index 459aa82..c6e434e 100644 +index 1452cfd..0a21c09 100644 --- a/tests/cli/test_run.py +++ b/tests/cli/test_run.py -@@ -180,7 +180,7 @@ def test_main_multiple_autohide_options(capsys, options): - assert str(e.value) == "2" +@@ -240,7 +240,7 @@ def test_main_multiple_autohide_options( + captured = capsys.readouterr() - lines = captured.err.strip('\n') + lines = captured.err.strip("\n") - lines = lines.split("pytest: ", 1)[1] + lines = lines.split("__main__.py: ", 1)[1] - expected = ("error: argument {}: not allowed " - "with argument {}".format(options[1], options[0])) + expected = f"error: argument {options[1]}: not allowed with argument {options[0]}" assert lines == expected + +@@ -277,7 +277,7 @@ def test_main_multiple_notify_options( + + captured = capsys.readouterr() + lines = captured.err.strip("\n") +- lines = lines.split("pytest: ", 1)[1] ++ lines = lines.split("__main__.py: ", 1)[1] + expected = f"error: argument {options[1]}: not allowed with argument {options[0]}" + assert lines == expected + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix index 1fce1a6b6e52..c56e78b9f945 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix @@ -5,12 +5,12 @@ let pname = "zulip"; - version = "5.8.1"; + version = "5.9.3"; name = "${pname}-${version}"; src = fetchurl { url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage"; - sha256 = "02m18y5j6jmmlygv8ycwaaq6n7mvj97ljhd3l9pvii0adwcvrpfz"; + hash = "sha256-Hws9vENGzCLQqav4uXtbbI0iNoS3JozC5m2DG38+3Fk="; name="${pname}-${version}.AppImage"; }; |