diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/instant-messengers')
224 files changed, 36832 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix new file mode 100644 index 000000000000..f402faf965be --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost }: + +stdenv.mkDerivation rec { + pname = "SkypeExport"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "Temptin"; + repo = "SkypeExport"; + rev = "v${version}"; + sha256 = "1ilkh0s3dz5cp83wwgmscnfmnyck5qcwqg1yxp9zv6s356dxnbak"; + }; + + patches = [ + (fetchpatch { + name = "boost167.patch"; + url = "https://github.com/Temptin/SkypeExport/commit/ef60f2e4fc9e4a5764c8d083a73b585457bc10b1.patch"; + sha256 = "sha256-t+/v7c66OULmQCD/sNt+iDJeQ/6UG0CJ8uQY2PVSFQo="; + }) + ]; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ boost ]; + + preConfigure = "cd src/SkypeExport/_gccbuild/linux"; + installPhase = "install -Dt $out/bin SkypeExport"; + + meta = with lib; { + description = "Export Skype history to HTML"; + homepage = "https://github.com/Temptin/SkypeExport"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ yana ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/abaddon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/abaddon/default.nix new file mode 100644 index 000000000000..3dbab9211dfa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/abaddon/default.nix @@ -0,0 +1,85 @@ +{ lib +, fetchFromGitHub +, stdenv +, cmake +, copyDesktopItems +, makeDesktopItem +, makeWrapper +, pkg-config +, curl +, gtkmm3 +, libhandy +, libopus +, libsecret +, libsodium +, nlohmann_json +, pcre2 +, spdlog +, sqlite +}: + +stdenv.mkDerivation rec { + pname = "abaddon"; + version = "0.1.14"; + + src = fetchFromGitHub { + owner = "uowuo"; + repo = "abaddon"; + rev = "v${version}"; + hash = "sha256-Amp6PkQWd4PnwUL29fzGETLuQXVEaARr+jIRlfrxTKc="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + cmake + copyDesktopItems + makeWrapper + pkg-config + ]; + + buildInputs = [ + curl + gtkmm3 + libhandy + libopus + libsecret + libsodium + nlohmann_json + pcre2 + spdlog + sqlite + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/abaddon + cp -r ../res/{css,res} $out/share/abaddon + mkdir $out/bin + cp abaddon $out/bin + wrapProgram $out/bin/abaddon \ + --chdir $out/share/abaddon + + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = pname; + exec = pname; + desktopName = "Abaddon"; + genericName = meta.description; + startupWMClass = pname; + categories = [ "Network" "InstantMessaging" ]; + mimeTypes = [ "x-scheme-handler/discord" ]; + }) + ]; + + meta = with lib; { + description = "A discord client reimplementation, written in C++"; + homepage = "https://github.com/uowuo/abaddon"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ genericnerdyusername ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix new file mode 100644 index 000000000000..0cf3230bf88a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix @@ -0,0 +1,82 @@ +{ 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 = "9.8.1"; + + src = fetchurl { + url = "https://assets.alfaview.com/stable/linux/deb/${pname}_${version}.deb"; + hash = "sha256-agi0f3aj5nHGV2/TAjaX+tY8/4nTdRlRiRn6rkTqokY="; + }; + + nativeBuildInputs = [ + dpkg + makeWrapper + autoPatchelfHook + wrapGAppsHook + ]; + + buildInputs = [ + alsa-lib + dbus + fontconfig + freetype + glib + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-base + libGL + libinput + libpulseaudio + libsecret + libtiff + libxkbcommon + mesa + openssl + stdenv.cc.cc + systemd + xorg.libX11 + xorg.xcbutilwm + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilrenderutil + ]; + + libPath = lib.makeLibraryPath buildInputs; + + dontBuild = true; + dontConfigure = true; + + unpackPhase = '' + dpkg-deb -x ${src} ./ + ''; + + installPhase = '' + runHook preInstall + + mv usr $out + mv opt $out + + substituteInPlace $out/share/applications/alfaview.desktop \ + --replace "/opt/alfaview" "$out/bin" \ + --replace "/usr/share/pixmaps/alfaview_production.png" alfaview_production + + makeWrapper $out/opt/alfaview/alfaview $out/bin/alfaview \ + --prefix LD_LIBRARY_PATH : ${libPath} + + runHook postInstall + ''; + + 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 hexchen ]; + mainProgram = "alfaview"; + 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..c52ed6fe5cc5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/armcord/default.nix @@ -0,0 +1,141 @@ +{ lib +, stdenv +, fetchurl +, autoPatchelfHook +, dpkg +, makeBinaryWrapper +, wrapGAppsHook +, alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, cairo +, cups +, dbus +, expat +, ffmpeg +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gtk3 +, libappindicator-gtk3 +, libdrm +, libnotify +, libpulseaudio +, libsecret +, libuuid +, libxkbcommon +, mesa +, nss +, pango +, systemd +, xdg-utils +, xorg +, wayland +, pipewire +}: + +stdenv.mkDerivation rec { + pname = "armcord"; + version = "3.2.6"; + + src = + let + base = "https://github.com/ArmCord/ArmCord/releases/download"; + in + { + x86_64-linux = fetchurl { + url = "${base}/v${version}/ArmCord_${version}_amd64.deb"; + hash = "sha256-9AcxqCxhLAjYclaw6lri06R0PgQQeRHTbLJLEdhDCWU="; + }; + aarch64-linux = fetchurl { + url = "${base}/v${version}/ArmCord_${version}_arm64.deb"; + hash = "sha256-/uk2slpNF1sSTW6z319Yg9yx/s45fJPvJQJpY11ULVw="; + }; + }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + + nativeBuildInputs = [ autoPatchelfHook dpkg makeBinaryWrapper wrapGAppsHook ]; + + dontWrapGApps = true; + + buildInputs = [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + ffmpeg + fontconfig + freetype + gdk-pixbuf + glib + gtk3 + pango + systemd + mesa # for libgbm + nss + libuuid + libdrm + libnotify + libsecret + libpulseaudio + libxkbcommon + libappindicator-gtk3 + xorg.libX11 + xorg.libxcb + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXScrnSaver + xorg.libxshmfence + xorg.libXtst + wayland + pipewire + ]; + + sourceRoot = "."; + unpackCmd = "dpkg-deb -x $src ."; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/bin" + cp -R "opt" "$out" + cp -R "usr/share" "$out/share" + chmod -R g-w "$out" + + # Wrap the startup command + makeBinaryWrapper $out/opt/ArmCord/armcord $out/bin/armcord \ + "''${gappsWrapperArgs[@]}" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=UseOzonePlatform --enable-features=WebRTCPipeWireCapturer }}" \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \ + --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} + + # Fix desktop link + substituteInPlace $out/share/applications/armcord.desktop \ + --replace /opt/ArmCord/ $out/bin/ + + runHook postInstall + ''; + + meta = with lib; { + description = "Lightweight, alternative desktop client for Discord"; + homepage = "https://armcord.app"; + downloadPage = "https://github.com/ArmCord/ArmCord"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.osl3; + maintainers = with maintainers; [ wrmilling ]; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + mainProgram = "armcord"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/beeper/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/beeper/default.nix new file mode 100644 index 000000000000..21542fc5f475 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/beeper/default.nix @@ -0,0 +1,83 @@ +{ lib +, stdenvNoCC +, fetchurl +, appimageTools +, libsecret +, makeWrapper +, writeShellApplication +, curl +, yq +, common-updater-scripts +}: +let + pname = "beeper"; + version = "3.95.22"; + name = "${pname}-${version}"; + src = fetchurl { + url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.95.22-build-240206gs9w02ysg-x86_64.AppImage"; + hash = "sha256-svTHoKLlKoCEL+Cc5VCJBJQSO8b/4T1Ukpwbc2nuHxA="; + }; + appimage = appimageTools.wrapType2 { + inherit version pname src; + extraPkgs = pkgs: with pkgs; [ libsecret ]; + }; + appimageContents = appimageTools.extractType2 { + inherit version pname src; + }; +in +stdenvNoCC.mkDerivation rec { + inherit name pname version; + + src = appimage; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mv bin/${name} bin/${pname} + + mkdir -p $out/ + cp -r bin $out/bin + + mkdir -p $out/share/${pname} + cp -a ${appimageContents}/locales $out/share/${pname} + cp -a ${appimageContents}/resources $out/share/${pname} + cp -a ${appimageContents}/usr/share/icons $out/share/ + install -Dm 644 ${appimageContents}/${pname}.desktop -t $out/share/applications/ + + substituteInPlace $out/share/applications/${pname}.desktop --replace "AppRun" "${pname}" + + wrapProgram $out/bin/${pname} \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}} --no-update" + + runHook postInstall + ''; + + passthru = { + updateScript = lib.getExe (writeShellApplication { + name = "update-beeper"; + runtimeInputs = [ curl yq common-updater-scripts ]; + text = '' + set -o errexit + latestLinux="$(curl -s https://download.todesktop.com/2003241lzgn20jd/latest-linux.yml)" + version="$(echo "$latestLinux" | yq -r .version)" + filename="$(echo "$latestLinux" | yq -r '.files[] | .url | select(. | endswith(".AppImage"))')" + update-source-version beeper "$version" "" "https://download.todesktop.com/2003241lzgn20jd/$filename" --source-key=src.src + ''; + }); + }; + + meta = with lib; { + description = "Universal chat app."; + longDescription = '' + Beeper is a universal chat app. With Beeper, you can send + and receive messages to friends, family and colleagues on + many different chat networks. + ''; + homepage = "https://beeper.com"; + license = licenses.unfree; + maintainers = with maintainers; [ jshcmpbll mjm edmundmiller ]; + platforms = [ "x86_64-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 new file mode 100644 index 000000000000..6badb7cda760 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix @@ -0,0 +1,31 @@ +{ lib, fetchFromGitHub, stdenv, bitlbee, autoreconfHook, pkg-config, glib }: + +stdenv.mkDerivation rec { + pname = "bitlbee-discord"; + version = "0.4.3"; + + src = fetchFromGitHub { + rev = version; + owner = "sm00th"; + repo = "bitlbee-discord"; + sha256 = "00qgdvrp7hv02n0ns685igp810zxmv3adsama8601122al6x041n"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ bitlbee ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + export BITLBEE_DATADIR=$out/share/bitlbee + ./autogen.sh + ''; + + meta = with lib; { + description = "Bitlbee plugin for Discord"; + + homepage = "https://github.com/sm00th/bitlbee-discord"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ lassulus ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix new file mode 100644 index 000000000000..e5a45a1e9f52 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix @@ -0,0 +1,30 @@ +{ lib, fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkg-config, json-glib }: + +stdenv.mkDerivation rec { + pname = "bitlbee-facebook"; + version = "1.2.2"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "bitlbee"; + repo = "bitlbee-facebook"; + sha256 = "1qiiiq17ybylbhwgbwsvmshb517589r8yy5rsh1rfaylmlcxyy7z"; + }; + + nativeBuildInputs = [ autoconf automake libtool pkg-config ]; + + buildInputs = [ bitlbee json-glib ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + ./autogen.sh + ''; + + meta = with lib; { + description = "The Facebook protocol plugin for bitlbee"; + homepage = "https://github.com/bitlbee/bitlbee-facebook"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ toonn ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix new file mode 100644 index 000000000000..3e09a6aa25b8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix @@ -0,0 +1,28 @@ +{ lib, fetchgit, stdenv, bitlbee, autoreconfHook, pkg-config, glib }: + +stdenv.mkDerivation rec { + pname = "bitlbee-mastodon"; + version = "1.4.5"; + + src = fetchgit { + url = "https://alexschroeder.ch/cgit/bitlbee-mastodon"; + rev = "v${version}"; + sha256 = "sha256-8vmq/YstuBYUxe00P4NrxD/eMYI++R9uvn1sCcMTr7I="; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ bitlbee ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + export BITLBEE_DATADIR=$out/share/bitlbee + ''; + + meta = with lib; { + description = "Bitlbee plugin for Mastodon"; + homepage = "https://alexschroeder.ch/cgit/bitlbee-mastodon/about"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ jpotier ]; + 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 new file mode 100644 index 000000000000..441963f57ddf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix @@ -0,0 +1,29 @@ +{ lib, fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkg-config, libgcrypt }: + +stdenv.mkDerivation rec { + version = "1.4.2"; + pname = "bitlbee-steam"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "bitlbee"; + repo = "bitlbee-steam"; + sha256 = "121r92mgwv445wwxzh35n19fs5k81ihr0j19k256ia5502b1xxaq"; + }; + + nativeBuildInputs = [ pkg-config autoconf automake ]; + buildInputs = [ bitlbee libtool libgcrypt ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + ./autogen.sh + ''; + + meta = with lib; { + description = "Steam protocol plugin for BitlBee"; + + homepage = "https://github.com/jgeboski/bitlbee-steam"; + license = licenses.gpl2Plus; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix new file mode 100644 index 000000000000..99ce3f8811ef --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix @@ -0,0 +1,68 @@ +{ lib, fetchurl, fetchpatch, stdenv, gnutls, glib, pkg-config, check, libotr, python3 +, enableLibPurple ? false, pidgin ? null +, enablePam ? false, pam ? null +}: + +stdenv.mkDerivation rec { + pname = "bitlbee"; + version = "3.6"; + + src = fetchurl { + url = "mirror://bitlbee/src/bitlbee-${version}.tar.gz"; + sha256 = "0zhhcbcr59sx9h4maf8zamzv2waya7sbsl7w74gbyilvy93dw5cz"; + }; + + nativeBuildInputs = [ pkg-config ] ++ lib.optional doCheck check; + + buildInputs = [ gnutls libotr python3 ] + ++ lib.optional enableLibPurple pidgin + ++ lib.optional enablePam pam; + + propagatedBuildInputs = [ glib ]; + + configureFlags = [ + "--otr=1" + "--ssl=gnutls" + "--pidfile=/var/lib/bitlbee/bitlbee.pid" + ] ++ lib.optional enableLibPurple "--purple=1" + ++ lib.optional enablePam "--pam=1"; + + patches = [ + # This should be dropped once the issue is fixed upstream. + (fetchpatch { + url = "https://github.com/bitlbee/bitlbee/commit/6ff651b3ec93e5fd74f80766d5e9714d963137bc.diff"; + sha256 = "144dpm4kq7c268fpww1q3n88ayg068n73fbabr5arh1zryw48qfv"; + }) + ]; + + installTargets = [ "install" "install-dev" ]; + + doCheck = !enableLibPurple; # Checks fail with libpurple for some reason + checkPhase = '' + # check flags set VERBOSE=y which breaks the build due overriding a command + make check + ''; + + enableParallelBuilding = true; + + meta = with lib; { + description = "IRC instant messaging gateway"; + + longDescription = '' + BitlBee brings IM (instant messaging) to IRC clients. It's a + great solution for people who have an IRC client running all the + time and don't want to run an additional MSN/AIM/whatever + client. + + BitlBee currently supports the following IM networks/protocols: + XMPP/Jabber (including Google Talk), MSN Messenger, Yahoo! + Messenger, AIM and ICQ. + ''; + + homepage = "https://www.bitlbee.org/"; + license = licenses.gpl2Plus; + + maintainers = with maintainers; [ lassulus pSub ]; + platforms = platforms.gnu ++ platforms.linux; # arbitrary choice + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix new file mode 100644 index 000000000000..f750f7f9d602 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix @@ -0,0 +1,13 @@ +{ lib, runCommandLocal, bitlbee }: + +plugins: runCommandLocal "bitlbee-plugins" { + inherit plugins; + buildInputs = [ bitlbee plugins ]; +} '' + mkdir -p $out/lib/bitlbee + for plugin in $plugins; do + for thing in $(ls $plugin/lib/bitlbee); do + ln -s $plugin/lib/bitlbee/$thing $out/lib/bitlbee/ + done + done +'' diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix new file mode 100644 index 000000000000..e1bc3b3b560f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix @@ -0,0 +1,137 @@ +{ stdenv +, lib +, fetchurl +, rpmextract +, libnotify +, libuuid +, cairo +, cups +, pango +, fontconfig +, udev +, dbus +, gtk3 +, atk +, at-spi2-atk +, expat +, gdk-pixbuf +, freetype +, nspr +, glib +, nss +, libX11 +, libXrandr +, libXrender +, libXtst +, libXdamage +, libxcb +, libXcursor +, libXi +, libXext +, libXfixes +, libXft +, libXcomposite +, libXScrnSaver +, alsa-lib +, pulseaudio +, makeWrapper +, xdg-utils +}: + +let + getFirst = n: v: builtins.concatStringsSep "." (lib.take n (lib.splitString "." v)); +in + +stdenv.mkDerivation rec { + pname = "bluejeans"; + version = "2.32.1.3"; + + src = fetchurl { + url = "https://swdl.bluejeans.com/desktop-app/linux/${getFirst 3 version}/BlueJeans_${version}.rpm"; + sha256 = "sha256-lsUS7JymCMOa5wlWJOwLFm4KRnAYixi9Kk5CYHB17Ac="; + }; + + nativeBuildInputs = [ rpmextract makeWrapper ]; + + libPath = + lib.makeLibraryPath + [ + libnotify + libuuid + cairo + cups + pango + fontconfig + gtk3 + atk + at-spi2-atk + expat + gdk-pixbuf + dbus + (lib.getLib udev) + freetype + nspr + glib + stdenv.cc.cc.lib + nss + libX11 + libXrandr + libXrender + libXtst + libXdamage + libxcb + libXcursor + libXi + libXext + libXfixes + libXft + libXcomposite + libXScrnSaver + alsa-lib + pulseaudio + ]; + + localtime64_stub = ./localtime64_stub.c; + + buildCommand = '' + mkdir -p $out/bin/ + cd $out + rpmextract $src + mv usr/share share + rmdir usr + + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --replace-needed libudev.so.0 libudev.so.1 \ + opt/BlueJeans/bluejeans-v2 + + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + opt/BlueJeans/resources/BluejeansHelper + + cc $localtime64_stub -shared -o "${placeholder "out"}"/opt/BlueJeans/liblocaltime64_stub.so + + # make xdg-open overrideable at runtime + makeWrapper $out/opt/BlueJeans/bluejeans-v2 $out/bin/bluejeans \ + --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/opt/BlueJeans \ + --set LD_PRELOAD "$out"/opt/BlueJeans/liblocaltime64_stub.so \ + --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} + + substituteInPlace "$out"/share/applications/bluejeans-v2.desktop \ + --replace "/opt/BlueJeans/bluejeans-v2" "$out/bin/bluejeans" + + patchShebangs "$out" + ''; + + passthru.updateScript = ./update.sh; + + 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/bluejeans/localtime64_stub.c b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c new file mode 100644 index 000000000000..87c2fa11714c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c @@ -0,0 +1,12 @@ +#include <stdio.h> +#include <stdlib.h> + +void *localtime64() { + fprintf(stderr, "nixpkgs: call into localtime64_r\n"); + abort(); +} + +void *localtime64_r() { + fprintf(stderr, "nixpkgs: call into localtime64_r\n"); + abort(); +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/update.sh new file mode 100755 index 000000000000..3bb7d309e875 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/update.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl pup common-updater-scripts + +set -eu -o pipefail + +version="$(curl -Ls https://www.bluejeans.com/downloads | \ + pup 'a[href$=".rpm"] attr{href}' | \ + # output contains app and events + grep "desktop-app" | \ + awk -F'[ ._ ]' '{printf $6"."$7"."$8"."$9"\n"}')" + +update-source-version bluejeans-gui "$version" 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..4bdc8f7f6deb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, fetchurl +, openjdk +, libnotify +, 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.5.0-beta"; + + src = fetchurl { + url = "https://desktop.briarproject.org/jars/linux/${version}/briar-desktop-linux-${version}.jar"; + hash = "sha256-J93ODYAiRbQxG2BF7P3H792ymAcJ3f07l7zRSw8kM+E="; + }; + + dontUnpack = true; + + nativeBuildInputs = [ + makeWrapper + p7zip + ]; + + installPhase = '' + mkdir -p $out/{bin,lib} + cp ${src} $out/lib/briar-desktop.jar + makeWrapper ${openjdk}/bin/java $out/bin/briar-desktop \ + --add-flags "-jar $out/lib/briar-desktop.jar" \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ + libnotify + ]}" + ''; + + 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" ]; + }; +} 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..104f39f4460b --- /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 + 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 pname version src; }; +in +(appimageTools.wrapType2 { + inherit pname version src; + + passthru = { + inherit pname version src; + }; + + profile = '' + export LC_ALL=C.UTF-8 + ''; + + extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs; + + extraInstallCommands = '' + mv $out/bin/{${pname}-${version},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" ]; + }; +}) 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..6a53bba026c5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nix @@ -0,0 +1,34 @@ +{ 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; + }; +} 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..73d132185015 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix @@ -0,0 +1,26 @@ +{ lib, callPackage, stdenvNoCC }: +let + pname = "caprine"; + version = "2.59.1"; + 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 = "sha256-stMv4KQoWPmK5jcfdhamC27Rb51zjbeEn40u6YUvXz4="; + }; + x86_64-dmg = callPackage ./build-from-dmg.nix { + inherit pname version metaCommon; + sha256 = "sha256-WMT4yrLjDSMsI/lFbYODu3/0whcF+++4ShoChfMyLfQ="; + }; +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; + mainProgram = "caprine"; + }; +}) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix new file mode 100644 index 000000000000..2e4dc6dbb55e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, gnused, openssl, curl, ncurses, libjpeg +, withGpg ? true, gpgme ? null}: + +stdenv.mkDerivation rec { + version = "5.0.1"; + pname = "centerim5"; + + src = fetchurl { + url = "http://centerim.org/download/cim5/${pname}-${version}.tar.gz"; + sha256 = "0viz86jflp684vfginhl6aaw4gh2qvalc25anlwljjl3kkmibklk"; + }; + + CXXFLAGS = "-std=gnu++98"; + + buildInputs = [ openssl curl ncurses libjpeg ] + ++ lib.optional withGpg gpgme; + + preConfigure = '' + ${gnused}/bin/sed -i '1,1i#include <stdio.h>' libicq2000/libicq2000/sigslot.h + ''; + + configureFlags = [ + "--with-openssl=${openssl.dev}" + ]; + + meta = { + homepage = "https://www.centerim.org/"; + description = "Fork of CenterICQ, a curses instant messaging program"; + license = lib.licenses.gpl2Plus; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix new file mode 100644 index 000000000000..4353c983320b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix @@ -0,0 +1,36 @@ +{ stdenv, lib, cmake, pkg-config, fetchFromGitHub, qtbase, qtsvg, qtmultimedia, qtimageformats, qttools, boost, openssl, wrapQtAppsHook, libsecret }: + +stdenv.mkDerivation rec { + pname = "chatterino2"; + version = "2.4.6"; + src = fetchFromGitHub { + owner = "Chatterino"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-CQviw5Fw6v5EwjCldAQoJfAIZMWKBfBzUIQZEgW34k0="; + fetchSubmodules = true; + }; + nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ]; + buildInputs = [ qtbase qtsvg qtmultimedia qtimageformats qttools boost openssl libsecret ]; + 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"; + longDescription = '' + Chatterino is a chat client for Twitch chat. It aims to be an + improved/extended version of the Twitch web chat. Chatterino 2 is + the second installment of the Twitch chat client series + "Chatterino". + ''; + homepage = "https://github.com/Chatterino/chatterino2"; + changelog = "https://github.com/Chatterino/chatterino2/blob/master/CHANGELOG.md"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ rexim ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix new file mode 100644 index 000000000000..9faecf609272 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix @@ -0,0 +1,87 @@ +{ lib +, stdenv +, fetchFromGitLab +, appstream-glib +, desktop-file-utils +, itstool +, meson +, ninja +, pkg-config +, wrapGAppsHook4 +, evolution-data-server +, feedbackd +, glibmm +, libsecret +, gnome-desktop +, gspell +, gtk4 +, json-glib +, libgcrypt +, libadwaita +, libphonenumber +, modemmanager +, olm +, pidgin +, protobuf +, sqlite +, plugins ? [ ] +}: + +stdenv.mkDerivation rec { + pname = "chatty"; + version = "0.8.1"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = "Chatty"; + rev = "v${version}"; + fetchSubmodules = true; + hash = "sha256-5IkQnXAKl0duy/B6+z7PXYv5zxakxJCgQhWBw5wioWg="; + }; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + itstool + meson + ninja + pkg-config + wrapGAppsHook4 + ]; + + buildInputs = [ + evolution-data-server + feedbackd + glibmm + libsecret + gnome-desktop + gspell + gtk4 + json-glib + libgcrypt + libadwaita + libphonenumber + modemmanager + olm + pidgin + protobuf + sqlite + ]; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PURPLE_PLUGIN_PATH : ${lib.escapeShellArg (pidgin.makePluginPath plugins)} + ${lib.concatMapStringsSep " " (p: p.wrapArgs or "") plugins} + ) + ''; + + meta = with lib; { + description = "XMPP and SMS messaging via libpurple and ModemManager"; + homepage = "https://gitlab.gnome.org/World/Chatty"; + changelog = "https://gitlab.gnome.org/World/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/Cargo.lock b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny-desktop/Cargo.lock new file mode 100644 index 000000000000..0fe7233f63ad --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny-desktop/Cargo.lock @@ -0,0 +1,3660 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "anyhow" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" + +[[package]] +name = "atk" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +dependencies = [ + "atk-sys", + "bitflags", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "attohttpc" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fcf00bc6d5abb29b5f97e3c61a90b6d3caa12f3faf897d4a3e3607c050a35a7" +dependencies = [ + "flate2", + "http", + "log", + "native-tls", + "serde", + "serde_json", + "serde_urlencoded", + "url", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "3.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "memchr", +] + +[[package]] +name = "bumpalo" +version = "3.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" + +[[package]] +name = "bytemuck" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" + +[[package]] +name = "cairo-rs" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +dependencies = [ + "bitflags", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "cargo_toml" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa0e3586af56b3bfa51fca452bd56e8dbbbd5d8d81cbf0b7e4e35b695b537eb8" +dependencies = [ + "serde", + "toml", +] + +[[package]] +name = "cc" +version = "1.0.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" +dependencies = [ + "byteorder", + "uuid 0.8.2", +] + +[[package]] +name = "cfg-expr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-expr" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cinny" +version = "3.1.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", +] + +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +dependencies = [ + "bitflags", + "block", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "combine" +version = "4.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation", + "foreign-types", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "ctor" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "dbus" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8bcdd56d2e5c4ed26a529c5a9029f5db8290d433497506f958eae3be148eb6" +dependencies = [ + "libc", + "libdbus-sys", + "winapi", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "dtoa-short" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c" + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "field-offset" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +dependencies = [ + "memoffset", + "rustc_version 0.3.3", +] + +[[package]] +name = "filetime" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "windows-sys 0.42.0", +] + +[[package]] +name = "flate2" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" + +[[package]] +name = "futures-executor" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" + +[[package]] +name = "futures-macro" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-task" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" + +[[package]] +name = "futures-util" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +dependencies = [ + "bitflags", + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "gdk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.0.3", +] + +[[package]] +name = "gdkx11-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps 6.0.3", + "x11", +] + +[[package]] +name = "generator" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d266041a359dfa931b370ef684cceb84b166beb14f7f0421f4a6a3d0c446d12e" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "windows 0.39.0", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gio" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", + "winapi", +] + +[[package]] +name = "glib" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64" +dependencies = [ + "anyhow", + "heck 0.4.0", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +dependencies = [ + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "globset" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "gobject-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "gtk" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +dependencies = [ + "atk", + "bitflags", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "once_cell", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps 6.0.3", +] + +[[package]] +name = "gtk3-macros" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" +dependencies = [ + "anyhow", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "html5ever" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "http" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.4", +] + +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + +[[package]] +name = "ico" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031530fe562d8c8d71c0635013d6d155bbfe8ba0aa4b4d2d24ce8af6b71047bd" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +dependencies = [ + "crossbeam-utils", + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "image" +version = "0.24.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69b7ea949b537b0fd0af141fff8c77690f2ce96f4f41f042ccb6c69c6c965945" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", +] + +[[package]] +name = "indexmap" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "infer" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" +dependencies = [ + "cfb", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "javascriptcore-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +dependencies = [ + "bitflags", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "jni" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3fa5a61630976fc4c353c70297f2e93f1930e3ccee574d59d618ccbd5154ce" +dependencies = [ + "serde", + "serde_json", + "treediff", +] + +[[package]] +name = "kuchiki" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +dependencies = [ + "cssparser", + "html5ever", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libappindicator" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2d3cb96d092b4824cb306c9e544c856a4cb6210c1081945187f7f1924b47e8" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1b3b6681973cea8cc3bce7391e6d7d5502720b80a581c9a95c9cbaf592826aa" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.138" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8" + +[[package]] +name = "libdbus-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "loom" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "mac-notification-sys" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e72d50edb17756489e79d52eb146927bec8eba9dd48faadf9ef08bca3791ad5" +dependencies = [ + "cc", + "dirs-next", + "objc-foundation", + "objc_id", + "time", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +dependencies = [ + "log", + "phf 0.8.0", + "phf_codegen", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "minisign-verify" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "933dca44d65cdd53b355d0b73d380a2ff5da71f87f036053188bf1eab6a19881" + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "notify-rust" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc2e370356160e41aba3fd0fbac26d86a89ddd2ac4300c03de999a77cfa2509" +dependencies = [ + "dbus", + "mac-notification-sys", + "tauri-winrt-notification", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "once_cell" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" + +[[package]] +name = "open" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" +dependencies = [ + "pathdiff", + "windows-sys 0.42.0", +] + +[[package]] +name = "openssl" +version = "0.10.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29d971fd5722fec23977260f6e81aa67d2f22cadbdc2aa049f1022d9a3be1566" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5454462c0eced1e97f2ec09036abc8da362e66802f66fd20f86854d9d8cbcbc4" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "os_info" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4750134fb6a5d49afc80777394ad5d95b04bc12068c6abb92fae8f43817270f" +dependencies = [ + "log", + "serde", + "winapi", +] + +[[package]] +name = "os_pipe" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6a252f1f8c11e84b3ab59d7a488e48e4478a93937e027076638c49536204639" +dependencies = [ + "libc", + "windows-sys 0.42.0", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pango" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +dependencies = [ + "bitflags", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.0.3", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys 0.42.0", +] + +[[package]] +name = "paste" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pest" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" + +[[package]] +name = "plist" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" +dependencies = [ + "base64", + "indexmap", + "line-wrap", + "serde", + "time", + "xml-rs", +] + +[[package]] +name = "png" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" +dependencies = [ + "bitflags", + "crc32fast", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +dependencies = [ + "once_cell", + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro2" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.8", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" +dependencies = [ + "cty", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.8", + "redox_syscall", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.37.0", +] + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.14", +] + +[[package]] +name = "rustversion" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +dependencies = [ + "lazy_static", + "windows-sys 0.36.1", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "security-framework" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +dependencies = [ + "itoa 1.0.4", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.4", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared_child" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "soup2" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +dependencies = [ + "bitflags", + "gio", + "glib", + "libc", + "once_cell", + "soup2-sys", +] + +[[package]] +name = "soup2-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +dependencies = [ + "bitflags", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "state" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +dependencies = [ + "loom", +] + +[[package]] +name = "string_cache" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "syn" +version = "1.0.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-deps" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +dependencies = [ + "cfg-expr 0.9.1", + "heck 0.3.3", + "pkg-config", + "toml", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" +dependencies = [ + "cfg-expr 0.11.0", + "heck 0.4.0", + "pkg-config", + "toml", + "version-compare 0.1.1", +] + +[[package]] +name = "tao" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1fa15735311b4816d030ff54da58560b047daca0970e1031aed5502e84231a8" +dependencies = [ + "bitflags", + "cairo-rs", + "cc", + "cocoa", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dirs-next", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gdkx11-sys", + "gio", + "glib", + "glib-sys", + "gtk", + "image", + "instant", + "jni", + "lazy_static", + "libappindicator", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "paste", + "png", + "raw-window-handle", + "scopeguard", + "serde", + "unicode-segmentation", + "uuid 1.2.2", + "windows 0.39.0", + "windows-implement", + "x11-dl", +] + +[[package]] +name = "tar" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tauri" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b48820ee3bb6a5031a83b2b6e11f8630bdc5a2f68cb841ab8ebc7a15a916679" +dependencies = [ + "anyhow", + "attohttpc", + "base64", + "cocoa", + "dirs-next", + "embed_plist", + "encoding_rs", + "flate2", + "futures-util", + "glib", + "glob", + "gtk", + "heck 0.4.0", + "http", + "ignore", + "minisign-verify", + "notify-rust", + "objc", + "once_cell", + "open", + "os_info", + "os_pipe", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "regex", + "rfd", + "semver 1.0.14", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "shared_child", + "state", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "tempfile", + "thiserror", + "time", + "tokio", + "url", + "uuid 1.2.2", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "zip", +] + +[[package]] +name = "tauri-build" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8807c85d656b2b93927c19fe5a5f1f1f348f96c2de8b90763b3c2d561511f9b4" +dependencies = [ + "anyhow", + "cargo_toml", + "heck 0.4.0", + "json-patch", + "semver 1.0.14", + "serde_json", + "tauri-utils", + "winres", +] + +[[package]] +name = "tauri-codegen" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14388d484b6b1b5dc0f6a7d6cc6433b3b230bec85eaa576adcdf3f9fafa49251" +dependencies = [ + "base64", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "regex", + "semver 1.0.14", + "serde", + "serde_json", + "sha2", + "tauri-utils", + "thiserror", + "time", + "uuid 1.2.2", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069319e5ecbe653a799b94b0690d9f9bf5d00f7b1d3989aa331c524d4e354075" +dependencies = [ + "heck 0.4.0", + "proc-macro2", + "quote", + "syn", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c507d954d08ac8705d235bc70ec6975b9054fb95ff7823af72dbb04186596f3b" +dependencies = [ + "gtk", + "http", + "http-range", + "rand 0.8.5", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "uuid 1.2.2", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36b1c5764a41a13176a4599b5b7bd0881bea7d94dfe45e1e755f789b98317e30" +dependencies = [ + "cocoa", + "gtk", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "tauri-runtime", + "tauri-utils", + "uuid 1.2.2", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5abbc109a6eb45127956ffcc26ef0e875d160150ac16cfa45d26a6b2871686f1" +dependencies = [ + "brotli", + "ctor", + "glob", + "heck 0.4.0", + "html5ever", + "infer", + "json-patch", + "kuchiki", + "memchr", + "phf 0.10.1", + "proc-macro2", + "quote", + "semver 1.0.14", + "serde", + "serde_json", + "serde_with", + "thiserror", + "url", + "walkdir", + "windows 0.39.0", +] + +[[package]] +name = "tauri-winrt-notification" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58de036c4d2e20717024de2a3c4bf56c301f07b21bc8ef9b57189fce06f1f3b" +dependencies = [ + "quick-xml", + "strum", + "windows 0.39.0", +] + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" +dependencies = [ + "itoa 1.0.4", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + +[[package]] +name = "time-macros" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +dependencies = [ + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46" +dependencies = [ + "autocfg", + "bytes", + "memchr", + "num_cpus", + "pin-project-lite", + "windows-sys 0.42.0", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "treediff" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" +dependencies = [ + "serde_json", +] + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" + +[[package]] +name = "uuid" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" +dependencies = [ + "getrandom 0.2.8", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version-compare" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" + +[[package]] +name = "version-compare" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" + +[[package]] +name = "web-sys" +version = "0.3.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup2", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" +dependencies = [ + "atk-sys", + "bitflags", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pango-sys", + "pkg-config", + "soup2-sys", + "system-deps 6.0.3", +] + +[[package]] +name = "webview2-com" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "webview2-com-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "webview2-com-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" +dependencies = [ + "regex", + "serde", + "serde_json", + "thiserror", + "windows 0.39.0", + "windows-bindgen", + "windows-metadata", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + +[[package]] +name = "windows" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +dependencies = [ + "windows-implement", + "windows_aarch64_msvc 0.39.0", + "windows_i686_gnu 0.39.0", + "windows_i686_msvc 0.39.0", + "windows_x86_64_gnu 0.39.0", + "windows_x86_64_msvc 0.39.0", +] + +[[package]] +name = "windows-bindgen" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" +dependencies = [ + "windows-metadata", + "windows-tokens", +] + +[[package]] +name = "windows-implement" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +dependencies = [ + "syn", + "windows-tokens", +] + +[[package]] +name = "windows-metadata" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", +] + +[[package]] +name = "windows-tokens" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + +[[package]] +name = "windows_i686_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + +[[package]] +name = "windows_i686_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" + +[[package]] +name = "winres" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" +dependencies = [ + "toml", +] + +[[package]] +name = "wry" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae300cf3ac1abd15037d0956d25d084077c8d67a075d7ef6971426a04f6fdd1" +dependencies = [ + "base64", + "block", + "cocoa", + "core-graphics", + "crossbeam-channel", + "dunce", + "gdk", + "gio", + "glib", + "gtk", + "html5ever", + "http", + "kuchiki", + "libc", + "log", + "objc", + "objc_id", + "once_cell", + "serde", + "serde_json", + "sha2", + "soup2", + "tao", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "x11" +version = "2.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2638d5b9c17ac40575fb54bb461a4b1d2a8d1b4ffcc4ff237d254ec59ddeb82" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1536d6965a5d4e573c7ef73a2c15ebcd0b2de3347bdf526c34c297c00ac40f0" +dependencies = [ + "lazy_static", + "libc", + "pkg-config", +] + +[[package]] +name = "xattr" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +dependencies = [ + "libc", +] + +[[package]] +name = "xml-rs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" + +[[package]] +name = "zip" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537ce7411d25e54e8ae21a7ce0b15840e7bfcff15b51d697ec3266cc76bdf080" +dependencies = [ + "byteorder", + "crc32fast", + "crossbeam-utils", +] 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..9777dca11c59 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny-desktop/default.nix @@ -0,0 +1,85 @@ +{ lib +, fetchFromGitHub +, rustPlatform +, cinny +, copyDesktopItems +, wrapGAppsHook +, pkg-config +, openssl +, dbus +, glib +, glib-networking +, libayatana-appindicator +, webkitgtk +, makeDesktopItem +}: + +rustPlatform.buildRustPackage rec { + pname = "cinny-desktop"; + version = "3.1.0"; + + src = fetchFromGitHub { + owner = "cinnyapp"; + repo = "cinny-desktop"; + rev = "v${version}"; + hash = "sha256-v5D0/EHVQ2xo7TGo+jZoRDBVFczkaZu2ka6QpwV4dpw="; + }; + + sourceRoot = "${src.name}/src-tauri"; + + # modififying $cargoDepsCopy requires the lock to be vendored + cargoLock.lockFile = ./Cargo.lock; + + postPatch = let + cinny' = + assert lib.assertMsg (cinny.version == version) "cinny.version (${cinny.version}) != cinny-desktop.version (${version})"; + cinny; + in '' + substituteInPlace tauri.conf.json \ + --replace '"distDir": "../cinny/dist",' '"distDir": "${cinny'}",' + + substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \ + --replace "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1" + ''; + + postInstall = '' + install -DT icons/128x128@2x.png $out/share/icons/hicolor/256x256@2/apps/cinny.png + install -DT icons/128x128.png $out/share/icons/hicolor/128x128/apps/cinny.png + install -DT icons/32x32.png $out/share/icons/hicolor/32x32/apps/cinny.png + ''; + + nativeBuildInputs = [ + copyDesktopItems + wrapGAppsHook + pkg-config + ]; + + buildInputs = [ + openssl + dbus + glib + glib-networking + libayatana-appindicator + webkitgtk + ]; + + desktopItems = [ + (makeDesktopItem { + name = "cinny"; + exec = "cinny"; + icon = "cinny"; + desktopName = "Cinny"; + comment = meta.description; + categories = [ "Network" "InstantMessaging" ]; + }) + ]; + + meta = with lib; { + description = "Yet another matrix client for desktop"; + homepage = "https://github.com/cinnyapp/cinny-desktop"; + maintainers = [ ]; + license = licenses.agpl3Only; + 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 new file mode 100644 index 000000000000..db3b48e4a2a3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cinny/default.nix @@ -0,0 +1,62 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +, writeText +, jq +, python3 +, pkg-config +, pixman +, cairo +, pango +, stdenv +, darwin +, conf ? { } +}: + +let + configOverrides = writeText "cinny-config-overrides.json" (builtins.toJSON conf); +in +buildNpmPackage rec { + pname = "cinny"; + version = "3.1.0"; + + src = fetchFromGitHub { + owner = "cinnyapp"; + repo = "cinny"; + rev = "v${version}"; + hash = "sha256-GcygxK9NcGlv4rwxQCJqi0BhNlOTFxjGB8mbfTaBMOk="; + }; + + npmDepsHash = "sha256-4R+To2LhcnEM9x1noo6MhCckyBKgPWiAi7zgDqAmaN0="; + + nativeBuildInputs = [ + jq + python3 + pkg-config + ]; + + buildInputs = [ + pixman + cairo + pango + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.CoreText + ]; + + installPhase = '' + runHook preInstall + + cp -r dist $out + jq -s '.[0] * .[1]' "config.json" "${configOverrides}" > "$out/config.json" + + runHook postInstall + ''; + + meta = with lib; { + description = "Yet another Matrix client for the web"; + homepage = "https://cinny.in/"; + maintainers = with maintainers; [ abbe ashkitten ]; + license = licenses.agpl3Only; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix new file mode 100644 index 000000000000..01bd4ff50e4c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "cordless"; + version = "2020-11-22"; + + src = fetchFromGitHub { + owner = "Bios-Marcel"; + repo = pname; + rev = version; + hash = "sha256-nOHLI0N4d8aC7KaWdLezSpVU1DS1fkfW5UO7cVYCbis="; + }; + + subPackages = [ "." ]; + + vendorHash = "sha256-XnwTqd19q+hOJZsfnFExiPDbg4pzV1Z9A6cq/jhcVgU="; + + meta = with lib; { + homepage = "https://github.com/Bios-Marcel/cordless"; + description = "Discord terminal client"; + license = licenses.bsd3; + maintainers = with maintainers; [ colemickens ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix new file mode 100644 index 000000000000..61fb4b43a033 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix @@ -0,0 +1,38 @@ +{ lib +, stdenv +, buildGoPackage +, fetchFromGitHub +, pkg-config +, cairo +, gdk-pixbuf +, glib +, gnome +, wrapGAppsHook +, gtk3 +}: + +buildGoPackage rec { + pname = "coyim"; + version = "0.4.1"; + + goPackagePath = "github.com/coyim/coyim"; + + src = fetchFromGitHub { + owner = "coyim"; + repo = "coyim"; + rev = "v${version}"; + sha256 = "sha256-PmB6POaHKEXzIAaz3lAbUOhtVOzrj5oXRk90giYo6SI="; + }; + + nativeBuildInputs = [ pkg-config wrapGAppsHook ]; + + buildInputs = [ glib cairo gdk-pixbuf gtk3 gnome.adwaita-icon-theme ]; + + meta = with lib; { + description = "a safe and secure chat client"; + homepage = "https://coy.im/"; + license = licenses.gpl3; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + broken = stdenv.isDarwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix new file mode 100644 index 000000000000..8e496c6c1101 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix @@ -0,0 +1,53 @@ +{ lib +, python3 +, fetchFromGitHub +, testers +, deltachat-cursed +}: + +python3.pkgs.buildPythonApplication rec { + pname = "deltachat-cursed"; + version = "0.8.0"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "adbenitez"; + repo = "deltachat-cursed"; + rev = "v${version}"; + hash = "sha256-1QNhNPa6ZKn0lGQXs/cmfdSFHscwlYwFC/2DpnMoHvY="; + }; + + nativeBuildInputs = with python3.pythonOnBuildForHost.pkgs; [ + setuptools + setuptools-scm + ]; + + propagatedBuildInputs = with python3.pkgs; [ + appdirs + deltachat + emoji + notify-py + setuptools # for pkg_resources + urwid-readline + ]; + + doCheck = false; # no tests implemented + + passthru.tests = { + version = testers.testVersion rec { + package = deltachat-cursed; + command = '' + HOME="$TEMP" ${lib.getExe package} --version + ''; + }; + }; + + meta = with lib; { + description = "Lightweight Delta Chat client"; + homepage = "https://github.com/adbenitez/deltachat-cursed"; + license = licenses.gpl3Plus; + mainProgram = "curseddelta"; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix new file mode 100644 index 000000000000..ab6b0ff5abc4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix @@ -0,0 +1,144 @@ +{ lib +, buildNpmPackage +, copyDesktopItems +, electron_26 +, buildGoModule +, esbuild +, fetchFromGitHub +, jq +, libdeltachat +, makeDesktopItem +, makeWrapper +, noto-fonts-color-emoji +, pkg-config +, python3 +, roboto +, sqlcipher +, stdenv +, CoreServices +, testers +, deltachat-desktop +}: + +let + esbuild' = esbuild.override { + buildGoModule = args: buildGoModule (args // rec { + version = "0.19.8"; + src = fetchFromGitHub { + owner = "evanw"; + repo = "esbuild"; + rev = "v${version}"; + hash = "sha256-f13YbgHFQk71g7twwQ2nSOGA0RG0YYM01opv6txRMuw="; + }; + vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ="; + }); + }; +in +buildNpmPackage rec { + pname = "deltachat-desktop"; + version = "1.42.2"; + + src = fetchFromGitHub { + owner = "deltachat"; + repo = "deltachat-desktop"; + rev = "v${version}"; + hash = "sha256-c8eK6YpxCP+Ga/VcqbbOUYuL1h4xspjglCZ1wiEAags="; + }; + + npmDepsHash = "sha256-7xMSsKESK9BqQrMvxceEhsETwDFue0/viCNULtzzwGo="; + + postPatch = '' + test \ + $(jq -r '.packages."node_modules/@deltachat/jsonrpc-client".version' package-lock.json) \ + = $(pkg-config --modversion deltachat) \ + || (echo "error: libdeltachat version does not match jsonrpc-client" && exit 1) + ''; + + nativeBuildInputs = [ + jq + makeWrapper + pkg-config + python3 + ] ++ lib.optionals stdenv.isLinux [ + copyDesktopItems + ]; + + buildInputs = [ + libdeltachat + ] ++ lib.optionals stdenv.isDarwin [ + CoreServices + ]; + + env = { + ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; + ESBUILD_BINARY_PATH = "${esbuild'}/bin/esbuild"; + USE_SYSTEM_LIBDELTACHAT = "true"; + VERSION_INFO_GIT_REF = src.rev; + }; + + preBuild = '' + rm -r node_modules/deltachat-node/node/prebuilds + ''; + + npmBuildScript = "build4production"; + + installPhase = '' + runHook preInstall + + npm prune --production + + mkdir -p $out/lib/node_modules/deltachat-desktop + cp -r . $out/lib/node_modules/deltachat-desktop + + awk '!/^#/ && NF' build/packageignore_list \ + | xargs -I {} sh -c "rm -rf $out/lib/node_modules/deltachat-desktop/{}" || true + + install -D build/icon.png \ + $out/share/icons/hicolor/scalable/apps/deltachat.png + + ln -sf ${noto-fonts-color-emoji}/share/fonts/noto/NotoColorEmoji.ttf \ + $out/lib/node_modules/deltachat-desktop/html-dist/fonts/noto/emoji + for font in $out/lib/node_modules/deltachat-desktop/html-dist/fonts/Roboto-*.ttf; do + ln -sf ${roboto}/share/fonts/truetype/$(basename $font) \ + $out/lib/node_modules/deltachat-desktop/html-dist/fonts + done + + makeWrapper ${electron_26}/bin/electron $out/bin/deltachat \ + --set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher${stdenv.hostPlatform.extensions.sharedLibrary} \ + --add-flags $out/lib/node_modules/deltachat-desktop + + runHook postInstall + ''; + + desktopItems = lib.singleton (makeDesktopItem { + name = "deltachat"; + exec = "deltachat %u"; + icon = "deltachat"; + desktopName = "Delta Chat"; + genericName = "Delta Chat"; + comment = meta.description; + categories = [ "Network" "InstantMessaging" "Chat" ]; + startupWMClass = "DeltaChat"; + mimeTypes = [ + "x-scheme-handler/openpgp4fpr" + "x-scheme-handler/dcaccount" + "x-scheme-handler/dclogin" + "x-scheme-handler/mailto" + ]; + }); + + passthru.tests = { + version = testers.testVersion { + package = deltachat-desktop; + }; + }; + + 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/dino/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix new file mode 100644 index 000000000000..879314a97f0e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix @@ -0,0 +1,129 @@ +{ lib, stdenv, fetchFromGitHub +, buildPackages +, vala, cmake, ninja, wrapGAppsHook, pkg-config, gettext +, gobject-introspection, glib, gdk-pixbuf, gtk4, glib-networking +, libadwaita +, libnotify, libsoup, libgee +, libsignal-protocol-c +, libgcrypt +, sqlite +, gpgme +, pcre2 +, qrencode +, icu +, gspell +, srtp +, libnice +, gnutls +, gstreamer +, gst-plugins-base +, gst-plugins-good +, gst-plugins-bad +, gst-vaapi +, webrtc-audio-processing +}: + +stdenv.mkDerivation rec { + pname = "dino"; + version = "0.4.3"; + + src = fetchFromGitHub { + owner = "dino"; + repo = "dino"; + rev = "v${version}"; + sha256 = "sha256-smy/t6wTCnG0kuRFKwyeLENKqOQDhL0fZTtj3BHo6kw="; + }; + + postPatch = '' + # don't overwrite manually set version information + substituteInPlace CMakeLists.txt \ + --replace "include(ComputeVersion)" "" + ''; + + nativeBuildInputs = [ + vala + cmake + ninja # https://github.com/dino/dino/issues/230 + pkg-config + wrapGAppsHook + gettext + gobject-introspection + ]; + + buildInputs = [ + qrencode + glib + glib-networking # required for TLS support + libadwaita + libgee + sqlite + gdk-pixbuf + gtk4 + libnotify + gpgme + libgcrypt + libsoup + pcre2 + icu + libsignal-protocol-c + gspell + srtp + libnice + gnutls + gstreamer + gst-plugins-base + gst-plugins-good # contains rtpbin, required for VP9 + gst-plugins-bad # required for H264, MSDK + gst-vaapi # required for VAAPI + webrtc-audio-processing + ]; + + cmakeFlags = [ + "-DBUILD_TESTS=true" + "-DRTP_ENABLE_H264=true" + "-DRTP_ENABLE_MSDK=true" + "-DRTP_ENABLE_VAAPI=true" + "-DRTP_ENABLE_VP9=true" + "-DVERSION_FOUND=true" + "-DVERSION_IS_RELEASE=true" + "-DVERSION_FULL=${version}" + "-DXGETTEXT_EXECUTABLE=${lib.getBin buildPackages.gettext}/bin/xgettext" + "-DMSGFMT_EXECUTABLE=${lib.getBin buildPackages.gettext}/bin/msgfmt" + "-DGLIB_COMPILE_RESOURCES_EXECUTABLE=${lib.getDev buildPackages.glib}/bin/glib-compile-resources" + "-DSOUP_VERSION=${lib.versions.major libsoup.version}" + ]; + + # Undefined symbols for architecture arm64: "_gpg_strerror" + NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lgpg-error"; + + 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 + # + # Therefore, on macOS rename all of the plugins to use correct names that Dino + # will load + # + # See https://github.com/dino/dino/wiki/macOS + postFixup = lib.optionalString (stdenv.isDarwin) '' + cd "$out/lib/dino/plugins/" + for f in *.dylib; do + mv "$f" "$(basename "$f" .dylib).so" + done + ''; + + meta = with lib; { + description = "Modern Jabber/XMPP Client using GTK/Vala"; + homepage = "https://github.com/dino/dino"; + license = licenses.gpl3Plus; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ qyliss tomfitzhenry ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix new file mode 100644 index 000000000000..44ef7cae84c7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix @@ -0,0 +1,56 @@ +{ lib +, stdenv +, fetchFromGitHub +, wrapQtAppsHook +, cmake +, pkg-config +, qtbase +, qtwebengine +, qtwayland +, pipewire +, nix-update-script +}: + +stdenv.mkDerivation rec { + pname = "discord-screenaudio"; + version = "1.9.2"; + + src = fetchFromGitHub { + owner = "maltejur"; + repo = "discord-screenaudio"; + rev = "v${version}"; + hash = "sha256-it7JSmiDz3k1j+qEZrrNhyAuoixiQuiEbXac7lbJmko="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + wrapQtAppsHook + cmake + pkg-config + ]; + + buildInputs = [ + qtbase + qtwebengine + qtwayland + pipewire + ]; + + preConfigure = '' + # version.cmake either uses git tags or a version.txt file to get app version. + # Since cmake can't access git tags, write the version to a version.txt ourselves. + echo "${version}" > version.txt + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "A custom discord client that supports streaming with audio on Linux"; + homepage = "https://github.com/maltejur/discord-screenaudio"; + downloadPage = "https://github.com/maltejur/discord-screenaudio/releases"; + changelog = "https://github.com/maltejur/discord-screenaudio/releases/tag/v${version}"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ huantian ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix new file mode 100644 index 000000000000..c6f901639693 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/darwin.nix @@ -0,0 +1,49 @@ +{ pname, version, src, meta, stdenv, binaryName, desktopName, lib, undmg, makeWrapper, writeScript +, branch +, withOpenASAR ? false, openasar +, withVencord ? false, vencord }: + +stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ undmg makeWrapper ]; + + sourceRoot = "."; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications + cp -r "${desktopName}.app" $out/Applications + + # wrap executable to $out/bin + mkdir -p $out/bin + makeWrapper "$out/Applications/${desktopName}.app/Contents/MacOS/${binaryName}" "$out/bin/${binaryName}" + + runHook postInstall + ''; + + postInstall = lib.strings.optionalString withOpenASAR '' + cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar + '' + lib.strings.optionalString withVencord '' + mv $out/Applications/${desktopName}.app/Contents/Resources/app.asar $out/Applications/${desktopName}.app/Contents/Resources/_app.asar + mkdir $out/Applications/${desktopName}.app/Contents/Resources/app.asar + echo '{"name":"discord","main":"index.js"}' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/package.json + echo 'require("${vencord}/patcher.js")' > $out/Applications/${desktopName}.app/Contents/Resources/app.asar/index.js + ''; + + passthru = { + updateScript = writeScript "discord-update-script" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p curl gnugrep common-updater-scripts + set -x + set -eou pipefail; + url=$(curl -sI "https://discordapp.com/api/download/${ + builtins.replaceStrings [ "discord-" "discord" ] [ "" "stable" ] pname + }?platform=osx&format=dmg" | grep -oP 'location: \K\S+') + version=''${url##https://dl*.discordapp.net/apps/osx/} + version=''${version%%/*.dmg} + update-source-version ${lib.optionalString (!stdenv.buildPlatform.isDarwin) "pkgsCross.aarch64-darwin."}${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix --version-key=${branch} + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix new file mode 100644 index 000000000000..0d1e0a52ef06 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -0,0 +1,106 @@ +{ branch ? "stable", callPackage, fetchurl, lib, stdenv }: +let + versions = + if stdenv.isLinux then { + stable = "0.0.42"; + ptb = "0.0.67"; + canary = "0.0.267"; + development = "0.0.13"; + } else { + stable = "0.0.292"; + ptb = "0.0.96"; + canary = "0.0.401"; + development = "0.0.27"; + }; + version = versions.${branch}; + srcs = rec { + x86_64-linux = { + stable = fetchurl { + url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; + hash = "sha256-7can15JhBc6OJAWZMk8uEdt/D1orCKG1MN1WBdTZrI0="; + }; + ptb = fetchurl { + url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; + hash = "sha256-LySb261stSdUWMfCZ6Ca/MZMhnJ+CEEKmm38cuD1k1s="; + }; + canary = fetchurl { + url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; + hash = "sha256-Hq78SDer7Gb+ju8wk9DrMLisHnoYoSwTzrs8PKhbS3s="; + }; + development = fetchurl { + url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz"; + hash = "sha256-/vYi82c9ef83MSBtmnZRGEgTNTOj/01zRUbvBWR0ayo="; + }; + }; + x86_64-darwin = { + stable = fetchurl { + url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg"; + hash = "sha256-1BKMIWSb7+oQ+B80GUCslKn5VNdM0hPTNyZkI/RsxhM="; + }; + ptb = fetchurl { + url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg"; + hash = "sha256-dG0Wcx8X2+kzrpacFZmMCXfLsuLOLbDK4qVLAMzd4RA="; + }; + canary = fetchurl { + url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg"; + hash = "sha256-fz/LDQJ/B8luN6Ffobp82hnycBOLg9Kdi0kXLGltCDc="; + }; + development = fetchurl { + url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg"; + hash = "sha256-MRCBPe98Czm1OG2l3c1GAW4a27fV8XMtQ9pPIJMgqzA="; + }; + }; + aarch64-darwin = x86_64-darwin; + }; + src = srcs.${stdenv.hostPlatform.system}.${branch}; + + meta = with lib; { + 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; [ MP2E Scrumplex artturin infinidoge jopejoe1 ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; + mainProgram = "discord"; + }; + 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 branch; + meta = meta // { mainProgram = value.binaryName; }; + })) + { + stable = rec { + pname = "discord"; + binaryName = "Discord"; + desktopName = "Discord"; + }; + ptb = rec { + pname = "discord-ptb"; + binaryName = if stdenv.isLinux then "DiscordPTB" else desktopName; + desktopName = "Discord PTB"; + }; + canary = rec { + pname = "discord-canary"; + binaryName = if stdenv.isLinux then "DiscordCanary" else desktopName; + desktopName = "Discord Canary"; + }; + development = rec { + pname = "discord-development"; + binaryName = if stdenv.isLinux then "DiscordDevelopment" else desktopName; + desktopName = "Discord Development"; + }; + } + ); +in +packages.${branch} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/disable-breaking-updates.py b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/disable-breaking-updates.py new file mode 100644 index 000000000000..fca1b7694173 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/disable-breaking-updates.py @@ -0,0 +1,49 @@ +#!@pythonInterpreter@ +# slightly tweaked from the script created by @lionirdeadman +# https://github.com/flathub/com.discordapp.Discord/blob/master/disable-breaking-updates.py +""" +Disable breaking updates which will prompt users to download a deb or tar file +and lock them out of Discord making the program unusable. + +This will dramatically improve the experience : + + 1) The maintainer doesn't need to be worried at all times of an update which will break Discord. + 2) People will not be locked out of the program while the maintainer runs to update it. + +""" + +import json +import os +import sys +from pathlib import Path + +XDG_CONFIG_HOME = os.environ.get("XDG_CONFIG_HOME") or os.path.join( + os.path.expanduser("~"), ".config" +) + +settings_path = Path(f"{XDG_CONFIG_HOME}/@configDirName@/settings.json") +settings_path_temp = Path(f"{XDG_CONFIG_HOME}/@configDirName@/settings.json.tmp") + +if os.path.exists(settings_path): + with settings_path.open(encoding="utf-8") as settings_file: + try: + settings = json.load(settings_file) + except json.JSONDecodeError: + print("[Nix] settings.json is malformed, letting Discord fix itself") + sys.exit(0) +else: + settings = {} + +if settings.get("SKIP_HOST_UPDATE"): + print("[Nix] Disabling updates already done") +else: + skip_host_update = {"SKIP_HOST_UPDATE": True} + settings.update(skip_host_update) + + os.makedirs(os.path.dirname(settings_path), exist_ok=True) + + with settings_path_temp.open("w", encoding="utf-8") as settings_file_temp: + json.dump(settings, settings_file_temp, indent=2) + + settings_path_temp.rename(settings_path) + print("[Nix] Disabled updates") diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix new file mode 100644 index 000000000000..1d7a64b892a0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/linux.nix @@ -0,0 +1,162 @@ +{ pname, version, src, 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, libglvnd, 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, python3, runCommand +, libunity +, speechd +, wayland +, branch +, withOpenASAR ? false, openasar +, withVencord ? false, vencord +, withTTS ? true }: + +let + disableBreakingUpdates = runCommand "disable-breaking-updates.py" + { + pythonInterpreter = "${python3.interpreter}"; + configDirName = lib.toLower binaryName; + meta.mainProgram = "disable-breaking-updates.py"; + } '' + mkdir -p $out/bin + cp ${./disable-breaking-updates.py} $out/bin/disable-breaking-updates.py + substituteAllInPlace $out/bin/disable-breaking-updates.py + chmod +x $out/bin/disable-breaking-updates.py + ''; +in + +stdenv.mkDerivation rec { + inherit pname version src meta; + + nativeBuildInputs = [ + alsa-lib + autoPatchelfHook + cups + libdrm + libuuid + libXdamage + libX11 + libXScrnSaver + libXtst + libxcb + libxshmfence + mesa + nss + wrapGAppsHook + makeShellWrapper + ]; + + dontWrapGApps = true; + + libPath = lib.makeLibraryPath ([ + libcxx + systemd + libpulseaudio + libdrm + mesa + stdenv.cc.cc + alsa-lib + atk + at-spi2-atk + at-spi2-core + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gtk3 + libglvnd + libnotify + libX11 + libXcomposite + libunity + libuuid + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + nspr + libxcb + pango + libXScrnSaver + libappindicator-gtk3 + libdbusmenu + wayland + ] ++ lib.optional withTTS speechd); + + installPhase = '' + 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} + + wrapProgramShell $out/opt/${binaryName}/${binaryName} \ + "''${gappsWrapperArgs[@]}" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" \ + ${lib.strings.optionalString withTTS "--add-flags \"--enable-speech-dispatcher\""} \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/${binaryName} \ + --run "${lib.getExe disableBreakingUpdates}" + + ln -s $out/opt/${binaryName}/${binaryName} $out/bin/ + # Without || true the install would fail on case-insensitive filesystems + 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 + '' + lib.strings.optionalString withVencord '' + mv $out/opt/${binaryName}/resources/app.asar $out/opt/${binaryName}/resources/_app.asar + mkdir $out/opt/${binaryName}/resources/app.asar + echo '{"name":"discord","main":"index.js"}' > $out/opt/${binaryName}/resources/app.asar/package.json + echo 'require("${vencord}/patcher.js")' > $out/opt/${binaryName}/resources/app.asar/index.js + ''; + + desktopItem = makeDesktopItem { + name = pname; + exec = binaryName; + icon = pname; + inherit desktopName; + genericName = meta.description; + categories = [ "Network" "InstantMessaging" ]; + mimeTypes = [ "x-scheme-handler/discord" ]; + }; + + passthru = { + # make it possible to run disableBreakingUpdates standalone + inherit disableBreakingUpdates; + updateScript = writeScript "discord-update-script" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p curl gnugrep common-updater-scripts + set -eou pipefail; + url=$(curl -sI "https://discordapp.com/api/download/${ + builtins.replaceStrings [ "discord-" "discord" ] [ "" "stable" ] pname + }?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+') + version=''${url##https://dl*.discordapp.net/apps/linux/} + version=''${version%%/*.tar.gz} + update-source-version ${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix --version-key=${branch} + ''; + }; +} 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..dbb05162f12a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/openasar.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchFromGitHub, nodejs, bash, asar, unzip }: + +stdenv.mkDerivation rec { + pname = "openasar"; + version = "unstable-2023-10-24"; + + src = fetchFromGitHub { + owner = "GooseMod"; + repo = "OpenAsar"; + rev = "eee9bab822e3dbd97a735d0050ddd41ba27917f2"; + hash = "sha256-SSWQSqGgTZjowgrzF6qHZDTw/Y9xFHNTZvetxqZubYI="; + }; + + 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 + ${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; [ ]; + platforms = nodejs.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix new file mode 100644 index 000000000000..46a7f821446c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix @@ -0,0 +1,155 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, makeDesktopItem +, prefetch-yarn-deps +, yarn +, nodejs +, fetchYarnDeps +, jq +, electron +, element-web +, sqlcipher +, callPackage +, Security +, AppKit +, CoreServices +, desktopToDarwinBundle +, useKeytar ? true +}: + +let + pinData = import ./pin.nix; + inherit (pinData.hashes) desktopSrcHash desktopYarnHash; + executableName = "element-desktop"; + keytar = callPackage ./keytar { inherit Security AppKit; }; + seshat = callPackage ./seshat { inherit CoreServices; }; +in +stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // { + pname = "element-desktop"; + name = "${finalAttrs.pname}-${finalAttrs.version}"; + src = fetchFromGitHub { + owner = "vector-im"; + repo = "element-desktop"; + rev = "v${finalAttrs.version}"; + hash = desktopSrcHash; + }; + + offlineCache = fetchYarnDeps { + yarnLock = finalAttrs.src + "/yarn.lock"; + sha256 = desktopYarnHash; + }; + + nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs makeWrapper jq ] + ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ]; + + inherit seshat; + + configurePhase = '' + runHook preConfigure + + export HOME=$(mktemp -d) + yarn config --offline set yarn-offline-mirror $offlineCache + fixup-yarn-lock yarn.lock + yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive + patchShebangs node_modules/ + + runHook postConfigure + ''; + + # Only affects unused scripts in $out/share/element/electron/scripts. Also + # breaks because there are some `node`-scripts with a `npx`-shebang and + # this shouldn't be in the closure just for unused scripts. + dontPatchShebangs = true; + + buildPhase = '' + runHook preBuild + + yarn --offline run build:ts + yarn --offline run i18n + yarn --offline run build:res + + rm -rf node_modules/matrix-seshat node_modules/keytar + ${lib.optionalString useKeytar "ln -s ${keytar} node_modules/keytar"} + ln -s $seshat node_modules/matrix-seshat + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + # resources + mkdir -p "$out/share/element" + ln -s '${element-web}' "$out/share/element/webapp" + cp -r '.' "$out/share/element/electron" + cp -r './res/img' "$out/share/element" + rm -rf "$out/share/element/electron/node_modules" + cp -r './node_modules' "$out/share/element/electron" + cp $out/share/element/electron/lib/i18n/strings/en_EN.json $out/share/element/electron/lib/i18n/strings/en-us.json + ln -s $out/share/element/electron/lib/i18n/strings/en{-us,}.json + + # icons + for icon in $out/share/element/electron/build/icons/*.png; do + mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps" + ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/element.png" + done + + # desktop item + mkdir -p "$out/share" + ln -s "${finalAttrs.desktopItem}/share/applications" "$out/share/applications" + + # executable wrapper + # LD_PRELOAD workaround for sqlcipher not found: https://github.com/matrix-org/seshat/issues/102 + 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:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" + + runHook postInstall + ''; + + # The desktop item properties should be kept in sync with data from upstream: + # https://github.com/vector-im/element-desktop/blob/develop/package.json + desktopItem = makeDesktopItem { + name = "element-desktop"; + exec = "${executableName} %u"; + icon = "element"; + desktopName = "Element"; + genericName = "Matrix Client"; + comment = finalAttrs.meta.description; + categories = [ "Network" "InstantMessaging" "Chat" ]; + startupWMClass = "Element"; + mimeTypes = [ "x-scheme-handler/element" ]; + }; + + postFixup = lib.optionalString stdenv.isDarwin '' + cp build/icon.icns $out/Applications/Element.app/Contents/Resources/element.icns + ''; + + passthru = { + updateScript = ./update.sh; + + # TL;DR: keytar is optional while seshat isn't. + # + # This prevents building keytar when `useKeytar` is set to `false`, because + # if libsecret is unavailable (e.g. set to `null` or fails to build), then + # this package wouldn't even considered for building because + # "one of the dependencies failed to build", + # although the dependency wouldn't even be used. + # + # It needs to be `passthru` anyways because other packages do depend on it. + inherit keytar; + }; + + meta = with lib; { + description = "A feature-rich client for Matrix.org"; + homepage = "https://element.io/"; + changelog = "https://github.com/vector-im/element-desktop/blob/v${finalAttrs.version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = teams.matrix.members; + inherit (electron.meta) platforms; + mainProgram = "element-desktop"; + }; +}) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web-wrapper.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web-wrapper.nix new file mode 100644 index 000000000000..c9a143ecb49e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web-wrapper.nix @@ -0,0 +1,26 @@ +{ stdenv +, jq +, element-web-unwrapped +, conf ? { } +}: + +if (conf == { }) then element-web-unwrapped else +stdenv.mkDerivation rec { + pname = "${element-web-unwrapped.pname}-wrapped"; + inherit (element-web-unwrapped) version meta; + + dontUnpack = true; + + nativeBuildInputs = [ jq ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out + ln -s ${element-web-unwrapped}/* $out + rm $out/config.json + jq -s '.[0] * $conf' "${element-web-unwrapped}/config.json" --argjson "conf" '${builtins.toJSON conf}' > "$out/config.json" + + runHook postInstall + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix new file mode 100644 index 000000000000..343c21d64730 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix @@ -0,0 +1,87 @@ +{ lib +, stdenv +, runCommand +, fetchFromGitHub +, fetchYarnDeps +, writeText +, jq +, yarn +, prefetch-yarn-deps +, nodejs +, jitsi-meet +}: + +let + pinData = import ./pin.nix; + inherit (pinData.hashes) webSrcHash webYarnHash; + noPhoningHome = { + disable_guests = true; # disable automatic guest account registration at matrix.org + }; +in +stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // { + pname = "element-web"; + + src = fetchFromGitHub { + owner = "vector-im"; + repo = finalAttrs.pname; + rev = "v${finalAttrs.version}"; + hash = webSrcHash; + }; + + offlineCache = fetchYarnDeps { + yarnLock = finalAttrs.src + "/yarn.lock"; + sha256 = webYarnHash; + }; + + nativeBuildInputs = [ yarn prefetch-yarn-deps jq nodejs ]; + + buildPhase = '' + runHook preBuild + + export VERSION=${finalAttrs.version} + yarn --offline build:res + yarn --offline build:module_system + yarn --offline build:bundle + + runHook postBuild + ''; + + configurePhase = '' + runHook preConfigure + + export HOME=$PWD/tmp + # with the update of openssl3, some key ciphers are not supported anymore + # this flag will allow those codecs again as a workaround + # see https://medium.com/the-node-js-collection/node-js-17-is-here-8dba1e14e382#5f07 + # and https://github.com/vector-im/element-web/issues/21043 + export NODE_OPTIONS=--openssl-legacy-provider + mkdir -p $HOME + + fixup-yarn-lock yarn.lock + yarn config --offline set yarn-offline-mirror $offlineCache + yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive + patchShebangs node_modules + + runHook postConfigure + ''; + + installPhase = '' + runHook preInstall + + cp -R webapp $out + cp ${jitsi-meet}/libs/external_api.min.js $out/jitsi_external_api.min.js + echo "${finalAttrs.version}" > "$out/version" + jq -s '.[0] * $conf' "config.sample.json" --argjson "conf" '${builtins.toJSON noPhoningHome}' > "$out/config.json" + + runHook postInstall + ''; + + meta = { + description = "A glossy Matrix collaboration client for the web"; + homepage = "https://element.io/"; + changelog = "https://github.com/vector-im/element-web/blob/v${finalAttrs.version}/CHANGELOG.md"; + maintainers = lib.teams.matrix.members; + license = lib.licenses.asl20; + platforms = lib.platforms.all; + }; +}) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix new file mode 100644 index 000000000000..84196371be3a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv, fetchFromGitHub, nodejs, python3, callPackage, removeReferencesTo +, pkg-config, libsecret, xcbuild, Security, AppKit, fetchNpmDeps, npmHooks }: + +let + pinData = lib.importJSON ./pin.json; + +in stdenv.mkDerivation rec { + pname = "keytar"; + inherit (pinData) version; + + src = fetchFromGitHub { + owner = "atom"; + repo = "node-keytar"; + rev = "v${version}"; + hash = pinData.srcHash; + }; + + nativeBuildInputs = [ + nodejs python3 pkg-config + npmHooks.npmConfigHook + ] + ++ lib.optional stdenv.isDarwin xcbuild; + + buildInputs = lib.optionals (!stdenv.isDarwin) [ libsecret ] + ++ lib.optionals stdenv.isDarwin [ Security AppKit ]; + + npmDeps = fetchNpmDeps { + inherit src; + hash = pinData.npmHash; + }; + + doCheck = false; + + installPhase = '' + runHook preInstall + shopt -s extglob + rm -rf node_modules + 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/keytar/pin.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/pin.json new file mode 100644 index 000000000000..626f5a62ea1d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/pin.json @@ -0,0 +1,5 @@ +{ + "version": "7.9.0", + "srcHash": "sha256-Mnl0Im2hZJXJEtyXb5rgMntekkUAnOG2MN1bwfgh0eg=", + "npmHash": "sha256-ldfRWV+HXBdBYO2ZiGbVFSHV4/bMG43U7w+sJ4kpVUY=" +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/update.sh new file mode 100755 index 000000000000..9b8d014f03c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/keytar/update.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=../../../../../../ -i bash -p wget prefetch-npm-deps nix-prefetch-github + +if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then + echo "Regenerates packaging data for the keytar package." + echo "Usage: $0 [git release tag]" + exit 1 +fi + +version="$1" + +set -euo pipefail + +if [ -z "$version" ]; then + version="$(wget -O- "https://api.github.com/repos/atom/node-keytar/releases?per_page=1" | jq -r '.[0].tag_name')" +fi + +# strip leading "v" +version="${version#v}" + +SRC="https://raw.githubusercontent.com/atom/node-keytar/v$version" + +wget "$SRC/package-lock.json" +wget "$SRC/package.json" +npm_hash=$(prefetch-npm-deps package-lock.json) +rm -rf node_modules package.json package-lock.json + +src_hash=$(nix-prefetch-github atom node-keytar --rev v${version} | jq -r .hash) + +cat > pin.json << EOF +{ + "version": "$version", + "srcHash": "$src_hash", + "npmHash": "$npm_hash" +} +EOF diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.nix new file mode 100644 index 000000000000..9a10c2eddba8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.nix @@ -0,0 +1,9 @@ +{ + "version" = "1.11.57"; + "hashes" = { + "desktopSrcHash" = "sha256-U1Koq+YrTQnbJAQmMuBioU6lxtw3oH9U3W3iMIDbibY="; + "desktopYarnHash" = "03kx7g1fhm4qn6iq450156fgw1x6bf0sngmqhd2hrhp699mjxs5s"; + "webSrcHash" = "sha256-ZoB6ALNUDYh8nYUYsPNeiCaXn3qvg3NRJzDRJaHT4oU="; + "webYarnHash" = "0vznx306p3racnq5xv27ywvlrdxql9x8i3fl77i5vlc8g7crpc3m"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix new file mode 100644 index 000000000000..980e22c0c3e3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/default.nix @@ -0,0 +1,56 @@ +{ lib, stdenv, rustPlatform, fetchFromGitHub, callPackage, sqlcipher, nodejs, python3, yarn, prefetch-yarn-deps, CoreServices, fetchYarnDeps, removeReferencesTo }: + +let + pinData = lib.importJSON ./pin.json; + +in rustPlatform.buildRustPackage rec { + pname = "seshat-node"; + inherit (pinData) version cargoHash; + + src = fetchFromGitHub { + owner = "matrix-org"; + repo = "seshat"; + rev = version; + hash = pinData.srcHash; + }; + + sourceRoot = "${src.name}/seshat-node/native"; + + nativeBuildInputs = [ nodejs python3 yarn prefetch-yarn-deps ]; + buildInputs = [ sqlcipher ] ++ lib.optional stdenv.isDarwin CoreServices; + + npm_config_nodedir = nodejs; + + yarnOfflineCache = fetchYarnDeps { + yarnLock = src + "/seshat-node/yarn.lock"; + sha256 = pinData.yarnHash; + }; + + buildPhase = '' + runHook preBuild + cd .. + chmod u+w . ./yarn.lock + export HOME=$PWD/tmp + mkdir -p $HOME + yarn config --offline set yarn-offline-mirror $yarnOfflineCache + fixup-yarn-lock yarn.lock + yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive + patchShebangs node_modules/ + node_modules/.bin/neon build --release + runHook postBuild + ''; + + doCheck = false; + + installPhase = '' + runHook preInstall + shopt -s extglob + 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 ]; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/pin.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/pin.json new file mode 100644 index 000000000000..f0648d11f2e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/pin.json @@ -0,0 +1,6 @@ +{ + "version": "2.3.3", + "srcHash": "sha256-HmKHWFoO8TQ9S/RcJnJ3h85/2uSkqGrgLnX82hkux4Q=", + "yarnHash": "1cbkv8ap7f8vxl5brzqb86d2dyxg555sz67cldrp0vgnk8sq6ibp", + "cargoHash": "sha256-WsgTbQ91aZZV5sIuFVjsccdiXivjtAUC1Zs/4uNk1zU=" +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/update.sh new file mode 100755 index 000000000000..6e7e75e66bce --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/seshat/update.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=../../../../../../ -i bash -p wget prefetch-yarn-deps yarn nix-prefetch nix-prefetch-github + +if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then + echo "Regenerates packaging data for the seshat package." + echo "Usage: $0 [git release tag]" + exit 1 +fi + +version="$1" + +set -euo pipefail + +if [ -z "$version" ]; then + version="$(wget -O- "https://api.github.com/repos/matrix-org/seshat/tags" | jq -r '.[] | .name' | sort --version-sort | tail -1)" +fi + +SRC="https://raw.githubusercontent.com/matrix-org/seshat/$version" + +tmpdir=$(mktemp -d) +trap 'rm -rf "$tmpdir"' EXIT + +pushd $tmpdir +wget "$SRC/seshat-node/yarn.lock" +yarn_hash=$(prefetch-yarn-deps yarn.lock) +popd + +src_hash=$(nix-prefetch-github matrix-org seshat --rev ${version} | jq -r .hash) + +cat > pin.json << EOF +{ + "version": "$version", + "srcHash": "$src_hash", + "yarnHash": "$yarn_hash", + "cargoHash": "0000000000000000000000000000000000000000000000000000" +} +EOF + +cargo_hash=$(nix-prefetch "{ sha256 }: (import ../../../../../.. {}).element-desktop.seshat.cargoDeps") + +cat > pin.json << EOF +{ + "version": "$version", + "srcHash": "$src_hash", + "yarnHash": "$yarn_hash", + "cargoHash": "$cargo_hash" +} +EOF + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh new file mode 100755 index 000000000000..0a1cc0595f87 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/update.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=../../../../../ -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github jq + +if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then + echo "Regenerates packaging data for the element packages." + echo "Usage: $0 [git release tag]" + exit 1 +fi + +version="$1" + +set -euo pipefail + +if [ -z "$version" ]; then + version="$(wget -q -O- "https://api.github.com/repos/vector-im/element-desktop/releases?per_page=1" | jq -r '.[0].tag_name')" +fi + +# strip leading "v" +version="${version#v}" + +# 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 .hash) + +web_tmpdir=$(mktemp -d) +trap 'rm -rf "$web_tmpdir"' EXIT + +pushd $web_tmpdir +wget -q "$web_src/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 .hash) + +desktop_tmpdir=$(mktemp -d) +trap 'rm -rf "$desktop_tmpdir"' EXIT + +pushd $desktop_tmpdir +wget -q "$desktop_src/yarn.lock" +desktop_yarn_hash=$(prefetch-yarn-deps yarn.lock) +popd + +cat > pin.nix << EOF +{ + "version" = "$version"; + "hashes" = { + "desktopSrcHash" = "$desktop_src_hash"; + "desktopYarnHash" = "$desktop_yarn_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..602df7626f0e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix @@ -0,0 +1,200 @@ +{ addOpenGLRunpath +, alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, autoPatchelfHook +, cairo +, cups +, curl +, 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 +, libpulseaudio +, 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 = "6.9.16"; + pname = "feishu"; + packageHash = "fe01b99b"; # 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"; + hash = "sha256-+koH6/K0J8KCVaNGIVvmLmPn/Ttyc9WcNAp0f7PLkqg="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + makeShellWrapper + dpkg + ]; + + buildInputs = [ + gtk3 + + # for autopatchelf + alsa-lib + cups + curl + libXdamage + libXtst + libdrm + libgcrypt + libpulseaudio + libxshmfence + mesa + nspr + nss + ]; + + rpath = lib.makeLibraryPath [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + curl + 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 + libpulseaudio + 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:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ + ${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 + + # feishu comes with a bundled libcurl.so + # and has many dependencies that are hard to satisfy + # e.g. openldap version 2.4 + # so replace it with our own libcurl.so + ln -sf ${curl}/lib/libcurl.so $out/opt/bytedance/feishu/libcurl.so + ''; + + 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 new file mode 100644 index 000000000000..f3362ab77501 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix @@ -0,0 +1,38 @@ +{ lib, mkFranzDerivation, fetchurl, xorg, xdg-utils, buildEnv, writeShellScriptBin }: + +let + mkFranzDerivation' = mkFranzDerivation.override { + xdg-utils = buildEnv { + name = "xdg-utils-for-ferdi"; + paths = [ + xdg-utils + (lib.hiPrio (writeShellScriptBin "xdg-open" '' + unset GDK_BACKEND + exec ${xdg-utils}/bin/xdg-open "$@" + '')) + ]; + }; + }; +in +mkFranzDerivation' rec { + pname = "ferdi"; + name = "Ferdi"; + version = "5.8.1"; + src = fetchurl { + 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 ]; + 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..2730af4d4e65 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix @@ -0,0 +1,35 @@ +{ lib, mkFranzDerivation, fetchurl, xorg, nix-update-script, stdenv }: + +let + arch = { + x86_64-linux = "amd64"; + aarch64-linux = "arm64"; + }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + hash = { + amd64-linux_hash = "sha256-X1wGrxwENEXKhJkY8cg0iFVJTnJzWDs/4jsluq01sZM="; + arm64-linux_hash = "sha256-7qjM2H88rc+oGT8u4z5DzKMxu03yRDrXVJ9joK58vwM="; + }."${arch}-linux_hash"; +in mkFranzDerivation rec { + pname = "ferdium"; + name = "Ferdium"; + version = "6.7.0"; + src = fetchurl { + url = "https://github.com/ferdium/ferdium-app/releases/download/v${version}/Ferdium-linux-${version}-${arch}.deb"; + inherit hash; + }; + + extraBuildInputs = [ xorg.libxshmfence ]; + + passthru = { + updateScript = ./update.sh; + }; + + 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" "aarch64-linux" ]; + hydraPlatforms = [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/update.sh new file mode 100755 index 000000000000..baae211ee9bd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/update.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p git bash curl jq nix-update + +set -xe + +dirname="$(dirname "$0")" + +latestTag=$(curl https://api.github.com/repos/ferdium/ferdium-app/releases/latest | jq -r ".tag_name") +latestVersion="$(expr $latestTag : 'v\(.*\)')" + +nix-update --version "$latestVersion" --system aarch64-linux --override-filename "$dirname/default.nix" ferdium +nix-update --version skip --system x86_64-linux --override-filename "$dirname/default.nix" ferdium diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/Cargo.lock b/nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/Cargo.lock new file mode 100644 index 000000000000..d4b2aa7a916f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/Cargo.lock @@ -0,0 +1,4486 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", + "zeroize", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "polyval", + "subtle", + "zeroize", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ashpd" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c018490e423efb6f032ef575f873ea57b61d44bec763cfe027b8e8852a027cf" +dependencies = [ + "enumflags2", + "futures-channel", + "futures-util", + "gdk4-wayland", + "gdk4-x11", + "gtk4", + "once_cell", + "rand", + "serde", + "serde_repr", + "tokio", + "url", + "zbus", +] + +[[package]] +name = "async-broadcast" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +dependencies = [ + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +dependencies = [ + "concurrent-queue", + "event-listener 4.0.1", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" +dependencies = [ + "async-lock 3.2.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.1.0", + "parking", + "polling 3.3.1", + "rustix 0.38.28", + "slab", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + +[[package]] +name = "async-lock" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +dependencies = [ + "event-listener 4.0.1", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.28", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "async-signal" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +dependencies = [ + "async-io 2.2.2", + "async-lock 2.8.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.28", + "signal-hook-registry", + "slab", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-task" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" + +[[package]] +name = "async-trait" +version = "0.1.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "async-tungstenite" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e9efbe14612da0a19fb983059a0b621e9cf6225d7018ecab4f9988215540dc" +dependencies = [ + "futures-io", + "futures-util", + "log", + "pin-project-lite", + "rustls-native-certs", + "tokio", + "tokio-rustls", + "tungstenite", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide 0.7.1", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + +[[package]] +name = "blake3" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +dependencies = [ + "async-channel", + "async-lock 3.2.0", + "async-task", + "fastrand 2.0.1", + "futures-io", + "futures-lite 2.1.0", + "piper", + "tracing", +] + +[[package]] +name = "blurhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa5ddff25bcae3e2ac5a93506cc050c730163fd92d319556861375b225164dde" +dependencies = [ + "gdk-pixbuf", + "image 0.23.14", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "cairo-rs" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1" +dependencies = [ + "bitflags 2.4.1", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cfg-expr" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.48.5", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "cmake" +version = "0.1.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" +dependencies = [ + "cc", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "concurrent-queue" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpufeatures" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek" +version = "4.0.0" +source = "git+https://github.com/signalapp/curve25519-dalek?tag=signal-curve25519-4.0.0#463e5c7cba32561ffee8a281c4455ff3c25660d4" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "platforms", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.0" +source = "git+https://github.com/signalapp/curve25519-dalek?tag=signal-curve25519-4.0.0#463e5c7cba32561ffee8a281c4455ff3c25660d4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "data-encoding" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" + +[[package]] +name = "deflate" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "enumflags2" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "env_logger" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "err-derive" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34a887c8df3ed90498c1c437ce21f211c8e27672921a8ffa293cb8d6d4caa9e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.1", + "pin-project-lite", +] + +[[package]] +name = "exr" +version = "1.71.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "832a761f35ab3e6664babfbdc6cef35a4860e816ec3916dcfd0882954e98a8a8" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide 0.7.1", + "rayon-core", + "smallvec", + "zune-inflate", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fdeflate" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "fiat-crypto" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset 0.9.0", + "rustc_version", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flare" +version = "0.11.2" +dependencies = [ + "ashpd", + "async-trait", + "blurhash", + "env_logger", + "err-derive", + "futures", + "gdk4", + "gettext-rs", + "gtk4", + "image 0.24.7", + "lazy_static", + "libadwaita", + "libsignal-service", + "libspelling", + "log", + "once_cell", + "oo7", + "presage", + "presage-store-sled", + "qrcode-generator", + "rand", + "regex", + "sled", + "sourceview5", + "tokio", + "tracing", + "url", + "zbus", +] + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide 0.7.1", +] + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "spin 0.9.8", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk4" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk4-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk4-sys" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdk4-wayland" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0db9102ff11e55bd65e153c1192abc21ddfa45ede90622e423d4e4a0e5d5f313" +dependencies = [ + "gdk4", + "gdk4-wayland-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk4-wayland-sys" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d48159be256ae0212d5a2b9884627197d08082c7168b28775b53a0f9885d5624" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk4-x11" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28c9bbf8ea1ea8469e74c3fdfafc142c9e14810a27f89ddb01b5e9076a60a450" +dependencies = [ + "gdk4", + "gdk4-x11-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk4-x11-sys" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3de1709370758192369f5329aa593847797f1c693c95e8a261e9b2e06a5f125" +dependencies = [ + "gdk4-sys", + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gettext-rs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364" +dependencies = [ + "gettext-sys", + "locale_config", +] + +[[package]] +name = "gettext-sys" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d" +dependencies = [ + "cc", + "temp-dir", +] + +[[package]] +name = "ghash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +dependencies = [ + "opaque-debug", + "polyval", + "zeroize", +] + +[[package]] +name = "gif" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e" +dependencies = [ + "bitflags 2.4.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "graphene-rs" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401" +dependencies = [ + "glib", + "graphene-sys", + "libc", +] + +[[package]] +name = "graphene-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59" +dependencies = [ + "glib-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gsk4" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e" +dependencies = [ + "cairo-rs", + "gdk4", + "glib", + "graphene-rs", + "gsk4-sys", + "libc", + "pango", +] + +[[package]] +name = "gsk4-sys" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55" +dependencies = [ + "cairo-sys-rs", + "gdk4-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk4" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842" +dependencies = [ + "cairo-rs", + "field-offset", + "futures-channel", + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "graphene-rs", + "gsk4", + "gtk4-macros", + "gtk4-sys", + "libc", + "pango", +] + +[[package]] +name = "gtk4-macros" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f" +dependencies = [ + "anyhow", + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "gtk4-sys" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", + "gsk4-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "half" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" +dependencies = [ + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.5", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "html-escape" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" +dependencies = [ + "utf8-width", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.4.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "image" +version = "0.23.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "gif 0.11.4", + "jpeg-decoder 0.1.22", + "num-iter", + "num-rational 0.3.2", + "num-traits", + "png 0.16.8", + "scoped_threadpool", + "tiff 0.6.1", +] + +[[package]] +name = "image" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif 0.12.0", + "jpeg-decoder 0.3.0", + "num-rational 0.4.1", + "num-traits", + "png 0.17.10", + "qoi", + "tiff 0.9.0", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi", + "rustix 0.38.28", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" +dependencies = [ + "rayon", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" +dependencies = [ + "rayon", +] + +[[package]] +name = "js-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + +[[package]] +name = "libadwaita" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c" +dependencies = [ + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "gtk4", + "libadwaita-sys", + "libc", + "pango", +] + +[[package]] +name = "libadwaita-sys" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a" +dependencies = [ + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "libc" +version = "0.2.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libsignal-protocol" +version = "0.1.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.32.0#72f046fe19a5eac22c7abcf9917956f240759364" +dependencies = [ + "aes", + "aes-gcm-siv", + "arrayref", + "async-trait", + "ctr", + "curve25519-dalek", + "displaydoc", + "hex", + "hkdf", + "hmac", + "itertools 0.10.5", + "log", + "num_enum", + "pqcrypto-kyber", + "pqcrypto-traits", + "prost 0.9.0", + "prost-build 0.9.0", + "rand", + "sha2", + "signal-crypto", + "static_assertions", + "subtle", + "thiserror", + "uuid", + "x25519-dalek", +] + +[[package]] +name = "libsignal-service" +version = "0.1.0" +source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=9d55addebe010f0acbcabdfc02ab41979c1863e0#9d55addebe010f0acbcabdfc02ab41979c1863e0" +dependencies = [ + "aes", + "aes-gcm", + "async-trait", + "base64 0.13.1", + "bincode", + "bytes", + "cbc", + "chrono", + "ctr", + "derivative", + "futures", + "hex", + "hkdf", + "hmac", + "libsignal-protocol", + "log", + "phonenumber", + "prost 0.10.4", + "prost-build 0.10.4", + "rand", + "serde", + "serde_json", + "sha2", + "thiserror", + "url", + "uuid", + "zkgroup", +] + +[[package]] +name = "libsignal-service-hyper" +version = "0.1.0" +source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=9d55addebe010f0acbcabdfc02ab41979c1863e0#9d55addebe010f0acbcabdfc02ab41979c1863e0" +dependencies = [ + "async-trait", + "async-tungstenite", + "bytes", + "futures", + "headers", + "hyper", + "hyper-rustls", + "hyper-timeout", + "libsignal-service", + "log", + "mpart-async", + "rustls-pemfile 0.3.0", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-rustls", + "url", +] + +[[package]] +name = "libspelling" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "850363056ea48497686407e7e583c50c793896c151bbe7139ad4ea02fbf15e76" +dependencies = [ + "gio", + "glib", + "gtk4", + "libc", + "libspelling-sys", + "sourceview5", +] + +[[package]] +name = "libspelling-sys" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "377675d9465da676ebc05742743d5e5bc53a49be1138f463583181aea97da3c6" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", + "libc", + "sourceview5-sys", + "system-deps", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + +[[package]] +name = "locale_config" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934" +dependencies = [ + "lazy_static", + "objc", + "objc-foundation", + "regex", + "winapi", +] + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" +dependencies = [ + "adler32", +] + +[[package]] +name = "miniz_oxide" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +dependencies = [ + "adler", + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "mpart-async" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ea6ab2359d45d2401bd7ba5ce5a67582f2abb872ea9ec17f78efb6ac3591864" +dependencies = [ + "bytes", + "futures-core", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "rand", + "thiserror", + "tokio", + "tokio-util", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational 0.4.1", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "serde", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oncemutex" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d11de466f4a3006fe8a5e7ec84e93b79c70cb992ae0aa0eb631ad2df8abfe2" + +[[package]] +name = "oo7" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "220729ba847d98e1a9902c05e41dae79ce4a0b913dad68bc540dd3120a8c2b6b" +dependencies = [ + "aes", + "byteorder", + "cbc", + "cipher", + "digest", + "futures-util", + "hkdf", + "hmac", + "num", + "num-bigint-dig", + "once_cell", + "pbkdf2", + "rand", + "serde", + "sha2", + "tokio", + "zbus", + "zeroize", +] + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest", + "hmac", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "phonenumber" +version = "0.3.3+8.13.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "635f3e6288e4f01c049d89332a031bd74f25d64b6fb94703ca966e819488cd06" +dependencies = [ + "bincode", + "either", + "fnv", + "itertools 0.11.0", + "lazy_static", + "nom", + "quick-xml", + "regex", + "regex-cache", + "serde", + "serde_derive", + "strum", + "thiserror", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.1", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" + +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + +[[package]] +name = "png" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "deflate", + "miniz_oxide 0.3.7", +] + +[[package]] +name = "png" +version = "0.17.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide 0.7.1", +] + +[[package]] +name = "poksho" +version = "0.7.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.32.0#72f046fe19a5eac22c7abcf9917956f240759364" +dependencies = [ + "curve25519-dalek", + "hmac", + "sha2", + "subtle", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +dependencies = [ + "cfg-if", + "concurrent-queue", + "pin-project-lite", + "rustix 0.38.28", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "polyval" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pqcrypto-internals" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9d34bec6abe2283e6de7748b68b292d1ffa2203397e3e71380ff8418a49fb46" +dependencies = [ + "cc", + "dunce", + "getrandom", + "libc", +] + +[[package]] +name = "pqcrypto-kyber" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e205df07793e278e4a77c44db68b7d0e81064984cfcf508f24ae68cde63b6609" +dependencies = [ + "cc", + "glob", + "libc", + "pqcrypto-internals", + "pqcrypto-traits", +] + +[[package]] +name = "pqcrypto-traits" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e851c7654eed9e68d7d27164c454961a616cf8c203d500607ef22c737b51bb" + +[[package]] +name = "presage" +version = "0.6.0-dev" +source = "git+https://github.com/Schmiddiii/presage?rev=e74ea1bcf5acb27853c9eb9c9c2ff3d1d653fdf1#e74ea1bcf5acb27853c9eb9c9c2ff3d1d653fdf1" +dependencies = [ + "base64 0.21.5", + "futures", + "libsignal-service", + "libsignal-service-hyper", + "log", + "parking_lot", + "rand", + "serde", + "serde_json", + "sha2", + "thiserror", + "tokio", + "url", +] + +[[package]] +name = "presage-store-cipher" +version = "0.1.0" +source = "git+https://github.com/Schmiddiii/presage?rev=e74ea1bcf5acb27853c9eb9c9c2ff3d1d653fdf1#e74ea1bcf5acb27853c9eb9c9c2ff3d1d653fdf1" +dependencies = [ + "blake3", + "chacha20poly1305", + "hmac", + "pbkdf2", + "rand", + "serde", + "serde_json", + "sha2", + "thiserror", + "zeroize", +] + +[[package]] +name = "presage-store-sled" +version = "0.6.0-dev" +source = "git+https://github.com/Schmiddiii/presage?rev=e74ea1bcf5acb27853c9eb9c9c2ff3d1d653fdf1#e74ea1bcf5acb27853c9eb9c9c2ff3d1d653fdf1" +dependencies = [ + "async-trait", + "base64 0.12.3", + "fs_extra", + "log", + "presage", + "presage-store-cipher", + "prost 0.10.4", + "prost-build 0.10.4", + "quickcheck_macros", + "serde", + "serde_json", + "sha2", + "sled", + "thiserror", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +dependencies = [ + "bytes", + "prost-derive 0.9.0", +] + +[[package]] +name = "prost" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" +dependencies = [ + "bytes", + "prost-derive 0.10.1", +] + +[[package]] +name = "prost-build" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +dependencies = [ + "bytes", + "heck 0.3.3", + "itertools 0.10.5", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost 0.9.0", + "prost-types 0.9.0", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-build" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae5a4388762d5815a9fc0dea33c56b021cdc8dde0c55e0c9ca57197254b0cab" +dependencies = [ + "bytes", + "cfg-if", + "cmake", + "heck 0.4.1", + "itertools 0.10.5", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost 0.10.4", + "prost-types 0.10.1", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "prost-derive" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "prost-types" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +dependencies = [ + "bytes", + "prost 0.9.0", +] + +[[package]] +name = "prost-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" +dependencies = [ + "bytes", + "prost 0.10.4", +] + +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "qrcode-generator" +version = "4.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d06cb9646c7a14096231a2474d7f21e5e8c13de090c68d13bde6157cfe7f159" +dependencies = [ + "html-escape", + "image 0.24.7", + "qrcodegen", +] + +[[package]] +name = "qrcodegen" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4339fc7a1021c9c1621d87f5e3505f2805c8c105420ba2f2a4df86814590c142" + +[[package]] +name = "quick-xml" +version = "0.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1" +dependencies = [ + "memchr", +] + +[[package]] +name = "quickcheck_macros" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-cache" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f7b62d69743b8b94f353b6b7c3deb4c5582828328bcb8d5fedf214373808793" +dependencies = [ + "lru-cache", + "oncemutex", + "regex", + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "ring" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +dependencies = [ + "cc", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.5", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "scoped_threadpool" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" + +[[package]] +name = "serde" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "serde_spanned" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +dependencies = [ + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "signal-crypto" +version = "0.1.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.32.0#72f046fe19a5eac22c7abcf9917956f240759364" +dependencies = [ + "aes", + "cbc", + "ctr", + "displaydoc", + "ghash", + "hmac", + "sha1", + "sha2", + "subtle", + "thiserror", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "sled" +version = "0.34.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935" +dependencies = [ + "crc32fast", + "crossbeam-epoch", + "crossbeam-utils", + "fs2", + "fxhash", + "libc", + "log", + "parking_lot", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "sourceview5" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88c5f976a113e947bc5ec67758b2960c0db4ca76f80fb410d7cd86cd456d9ee5" +dependencies = [ + "futures-channel", + "futures-core", + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "gtk4", + "libc", + "pango", + "sourceview5-sys", +] + +[[package]] +name = "sourceview5-sys" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29637cccd56075a37ba72c0cc8b8d599dbc1d857e30dadea97eaacbc29b7fd46" +dependencies = [ + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "system-deps" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" +dependencies = [ + "cfg-expr", + "heck 0.4.1", + "pkg-config", + "toml", + "version-compare", +] + +[[package]] +name = "target-lexicon" +version = "0.12.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" + +[[package]] +name = "temp-dir" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6" + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if", + "fastrand 2.0.1", + "redox_syscall 0.4.1", + "rustix 0.38.28", + "windows-sys 0.48.0", +] + +[[package]] +name = "termcolor" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "tiff" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" +dependencies = [ + "jpeg-decoder 0.1.22", + "miniz_oxide 0.4.4", + "weezl", +] + +[[package]] +name = "tiff" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +dependencies = [ + "flate2", + "jpeg-decoder 0.3.0", + "weezl", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.35.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.5", + "tokio-macros", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand", + "rustls", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.0", + "tempfile", + "winapi", +] + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "serde", +] + +[[package]] +name = "version-compare" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "waker-fn" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.42", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" + +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.28", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" +dependencies = [ + "memchr", +] + +[[package]] +name = "x25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +dependencies = [ + "curve25519-dalek", + "rand_core", + "serde", + "zeroize", +] + +[[package]] +name = "xdg-home" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" +dependencies = [ + "nix", + "winapi", +] + +[[package]] +name = "zbus" +version = "3.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" +dependencies = [ + "async-broadcast", + "async-process", + "async-recursion", + "async-trait", + "byteorder", + "derivative", + "enumflags2", + "event-listener 2.5.3", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix", + "once_cell", + "ordered-stream", + "rand", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tokio", + "tracing", + "uds_windows", + "winapi", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "3.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.42", +] + +[[package]] +name = "zkcredential" +version = "0.1.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.32.0#72f046fe19a5eac22c7abcf9917956f240759364" +dependencies = [ + "curve25519-dalek", + "displaydoc", + "lazy_static", + "poksho", + "serde", +] + +[[package]] +name = "zkgroup" +version = "0.9.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.32.0#72f046fe19a5eac22c7abcf9917956f240759364" +dependencies = [ + "aes-gcm-siv", + "bincode", + "curve25519-dalek", + "displaydoc", + "hex", + "lazy_static", + "libsignal-protocol", + "poksho", + "serde", + "sha2", + "signal-crypto", + "subtle", + "uuid", + "zkcredential", +] + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "zvariant" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "url", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/default.nix new file mode 100644 index 000000000000..b33cdbfc4acd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/default.nix @@ -0,0 +1,79 @@ +{ lib +, stdenv +, fetchFromGitLab +, cargo +, meson +, ninja +, pkg-config +, gst_all_1 +, protobuf +, libspelling +, libsecret +, libadwaita +, gtksourceview5 +, rustPlatform +, rustc +, appstream-glib +, blueprint-compiler +, desktop-file-utils +, wrapGAppsHook4 +}: + +stdenv.mkDerivation rec { + pname = "flare"; + version = "0.11.2"; + + src = fetchFromGitLab { + domain = "gitlab.com"; + owner = "schmiddi-on-mobile"; + repo = pname; + rev = version; + hash = "sha256-p6G+FbSiBkaF/qlUOPdPdgTqrrKFAOuIaCr6DCv+az4="; + }; + + cargoDeps = rustPlatform.importCargoLock { + lockFile = ./Cargo.lock; + outputHashes = { + "curve25519-dalek-4.0.0" = "sha256-KUXvYXeVvJEQ/+dydKzXWCZmA2bFa2IosDzaBL6/Si0="; + "libsignal-protocol-0.1.0" = "sha256-FCrJO7porlY5FrwZ2c67UPd4tgN7cH2/3DTwfPjihwM="; + "libsignal-service-0.1.0" = "sha256-Ul1mg+oQ8te364Jc2gOBoiq2udYsw9UBret/O9VU9ec="; + "presage-0.6.0-dev" = "sha256-0Z2ySXMZZ4wpyesxOikhra/eN7K3I+ElAh7vAaNSbb0="; + }; + }; + + nativeBuildInputs = [ + appstream-glib # for appstream-util + blueprint-compiler + desktop-file-utils # for update-desktop-database + meson + ninja + pkg-config + wrapGAppsHook4 + rustPlatform.cargoSetupHook + cargo + rustc + ]; + + buildInputs = [ + gtksourceview5 + libadwaita + libsecret + libspelling + protobuf + + # To reproduce audio messages + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + ]; + + meta = { + changelog = "https://gitlab.com/schmiddi-on-mobile/flare/-/blob/${src.rev}/CHANGELOG.md"; + description = "An unofficial Signal GTK client"; + homepage = "https://gitlab.com/schmiddi-on-mobile/flare"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ dotlambda ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix new file mode 100644 index 000000000000..869ed18c2cb3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix @@ -0,0 +1,97 @@ +{ lib +, fetchzip +, fetchFromGitHub +, imagemagick +, mesa +, libdrm +, flutter +, pulseaudio +, makeDesktopItem +, gnome + +, targetFlutterPlatform ? "linux" +}: + +let + libwebrtcRpath = lib.makeLibraryPath [ mesa libdrm ]; + pubspecLock = lib.importJSON ./pubspec.lock.json; +in +flutter.buildFlutterApplication (rec { + pname = "fluffychat-${targetFlutterPlatform}"; + version = "1.17.1"; + + src = fetchFromGitHub { + owner = "krille-chan"; + repo = "fluffychat"; + rev = "refs/tags/v${version}"; + hash = "sha256-SCZtdmpUaCwORIJgT9lQO/It+WSzkhBOd6liLzPBerU="; + }; + + inherit pubspecLock; + + gitHashes = { + keyboard_shortcuts = "sha256-U74kRujftHPvpMOIqVT0Ph+wi1ocnxNxIFA1krft4Os="; + wakelock_windows = "sha256-Dfwe3dSScD/6kvkP67notcbb+EgTQ3kEYcH7wpra2dI="; + }; + + inherit targetFlutterPlatform; + + meta = with lib; { + description = "Chat with your friends (matrix client)"; + homepage = "https://fluffychat.im/"; + license = licenses.agpl3Plus; + mainProgram = "fluffychat"; + maintainers = with maintainers; [ mkg20001 gilice ]; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + sourceProvenance = [ sourceTypes.fromSource ]; + }; +} // lib.optionalAttrs (targetFlutterPlatform == "linux") { + nativeBuildInputs = [ imagemagick ]; + + runtimeDependencies = [ pulseaudio ]; + + extraWrapProgramArgs = "--prefix PATH : ${gnome.zenity}/bin"; + + env.NIX_LDFLAGS = "-rpath-link ${libwebrtcRpath}"; + + desktopItem = makeDesktopItem { + name = "Fluffychat"; + exec = "fluffychat"; + icon = "fluffychat"; + desktopName = "Fluffychat"; + genericName = "Chat with your friends (matrix client)"; + categories = [ "Chat" "Network" "InstantMessaging" ]; + }; + + postInstall = '' + FAV=$out/app/data/flutter_assets/assets/favicon.png + ICO=$out/share/icons + + install -D $FAV $ICO/fluffychat.png + mkdir $out/share/applications + cp $desktopItem/share/applications/*.desktop $out/share/applications + for size in 24 32 42 64 128 256 512; do + D=$ICO/hicolor/''${s}x''${s}/apps + mkdir -p $D + convert $FAV -resize ''${size}x''${size} $D/fluffychat.png + done + + patchelf --add-rpath ${libwebrtcRpath} $out/app/lib/libwebrtc.so + ''; +} // lib.optionalAttrs (targetFlutterPlatform == "web") { + prePatch = + # https://github.com/krille-chan/fluffychat/blob/v1.17.1/scripts/prepare-web.sh + let + # Use Olm 1.3.2, the oldest version, for FluffyChat 1.14.1 which depends on olm_flutter 1.2.0. + olmVersion = pubspecLock.packages.flutter_olm.version; + olmJs = fetchzip { + url = "https://github.com/famedly/olm/releases/download/v${olmVersion}/olm.zip"; + stripRoot = false; + hash = "sha256-Vl3Cp2OaYzM5CPOOtTHtUb1W48VXePzOV6FeiIzyD1Y="; + }; + in + '' + rm -r assets/js/package + cp -r '${olmJs}/javascript' assets/js/package + ''; +}) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json new file mode 100644 index 000000000000..ea9578706e02 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json @@ -0,0 +1,2798 @@ +{ + "packages": { + "_fe_analyzer_shared": { + "dependency": "transitive", + "description": { + "name": "_fe_analyzer_shared", + "sha256": "ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "61.0.0" + }, + "adaptive_dialog": { + "dependency": "direct main", + "description": { + "name": "adaptive_dialog", + "sha256": "30dc6deee139cde31e5d10a1d05e1a2a1bb6d592cf0eea27b978884b1ff03405", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "analyzer": { + "dependency": "transitive", + "description": { + "name": "analyzer", + "sha256": "ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.13.0" + }, + "analyzer_plugin": { + "dependency": "transitive", + "description": { + "name": "analyzer_plugin", + "sha256": "c1d5f167683de03d5ab6c3b53fc9aeefc5d59476e7810ba7bbddff50c6f4392d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.11.2" + }, + "animations": { + "dependency": "direct main", + "description": { + "name": "animations", + "sha256": "ef57563eed3620bd5d75ad96189846aca1e033c0c45fc9a7d26e80ab02b88a70", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.8" + }, + "ansicolor": { + "dependency": "transitive", + "description": { + "name": "ansicolor", + "sha256": "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "appkit_ui_element_colors": { + "dependency": "transitive", + "description": { + "name": "appkit_ui_element_colors", + "sha256": "c3e50f900aae314d339de489535736238627071457c4a4a2dbbb1545b4f04f22", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "archive": { + "dependency": "direct main", + "description": { + "name": "archive", + "sha256": "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.4.9" + }, + "args": { + "dependency": "transitive", + "description": { + "name": "args", + "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.2" + }, + "async": { + "dependency": "direct main", + "description": { + "name": "async", + "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.11.0" + }, + "audio_session": { + "dependency": "transitive", + "description": { + "name": "audio_session", + "sha256": "6fdf255ed3af86535c96452c33ecff1245990bb25a605bfb1958661ccc3d467f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.18" + }, + "badges": { + "dependency": "direct main", + "description": { + "name": "badges", + "sha256": "a7b6bbd60dce418df0db3058b53f9d083c22cdb5132a052145dc267494df0b84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, + "base58check": { + "dependency": "transitive", + "description": { + "name": "base58check", + "sha256": "6c300dfc33e598d2fe26319e13f6243fea81eaf8204cb4c6b69ef20a625319a5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "blurhash_dart": { + "dependency": "direct main", + "description": { + "name": "blurhash_dart", + "sha256": "43955b6c2e30a7d440028d1af0fa185852f3534b795cc6eb81fbf397b464409f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "boolean_selector": { + "dependency": "transitive", + "description": { + "name": "boolean_selector", + "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "build_config": { + "dependency": "transitive", + "description": { + "name": "build_config", + "sha256": "bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "callkeep": { + "dependency": "direct main", + "description": { + "name": "callkeep", + "sha256": "9e86e9632a603a61f7045c179ea5ca0ee4da0a49fc5f80c2fe09fb422b96d3c6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.3" + }, + "canonical_json": { + "dependency": "transitive", + "description": { + "name": "canonical_json", + "sha256": "d6be1dd66b420c6ac9f42e3693e09edf4ff6edfee26cb4c28c1c019fdb8c0c15", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.2" + }, + "characters": { + "dependency": "transitive", + "description": { + "name": "characters", + "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.0" + }, + "charcode": { + "dependency": "transitive", + "description": { + "name": "charcode", + "sha256": "fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.1" + }, + "checked_yaml": { + "dependency": "transitive", + "description": { + "name": "checked_yaml", + "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.3" + }, + "chewie": { + "dependency": "direct main", + "description": { + "name": "chewie", + "sha256": "ccfce3350ae9fd419cd336cdf3380f77a08e45171e1e3cb3d499d204de5e7ea8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.7.1" + }, + "cli_util": { + "dependency": "transitive", + "description": { + "name": "cli_util", + "sha256": "b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.0" + }, + "clock": { + "dependency": "transitive", + "description": { + "name": "clock", + "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "collection": { + "dependency": "direct main", + "description": { + "name": "collection", + "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.18.0" + }, + "console": { + "dependency": "transitive", + "description": { + "name": "console", + "sha256": "e04e7824384c5b39389acdd6dc7d33f3efe6b232f6f16d7626f194f6a01ad69a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.0" + }, + "convert": { + "dependency": "transitive", + "description": { + "name": "convert", + "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.1" + }, + "cross_file": { + "dependency": "transitive", + "description": { + "name": "cross_file", + "sha256": "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.3+7" + }, + "crypto": { + "dependency": "transitive", + "description": { + "name": "crypto", + "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, + "csslib": { + "dependency": "transitive", + "description": { + "name": "csslib", + "sha256": "831883fb353c8bdc1d71979e5b342c7d88acfbc643113c14ae51e2442ea0f20f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.17.3" + }, + "cupertino_icons": { + "dependency": "direct main", + "description": { + "name": "cupertino_icons", + "sha256": "d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.6" + }, + "dart_code_metrics": { + "dependency": "direct dev", + "description": { + "name": "dart_code_metrics", + "sha256": "3dede3f7abc077a4181ec7445448a289a9ce08e2981e6a4d49a3fb5099d47e1f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.7.6" + }, + "dart_code_metrics_presets": { + "dependency": "transitive", + "description": { + "name": "dart_code_metrics_presets", + "sha256": "b71eadf02a3787ebd5c887623f83f6fdc204d45c75a081bd636c4104b3fd8b73", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.8.0" + }, + "dart_style": { + "dependency": "transitive", + "description": { + "name": "dart_style", + "sha256": "1efa911ca7086affd35f463ca2fc1799584fb6aa89883cf0af8e3664d6a02d55", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "dart_webrtc": { + "dependency": "transitive", + "description": { + "name": "dart_webrtc", + "sha256": "5897a3bdd6c7fded07e80e250260ca4c9cd61f9080911aa308b516e1206745a9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.3" + }, + "dbus": { + "dependency": "transitive", + "description": { + "name": "dbus", + "sha256": "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.7.10" + }, + "dependency_validator": { + "dependency": "transitive", + "description": { + "name": "dependency_validator", + "sha256": "f727a5627aa405965fab4aef4f468e50a9b632ba0737fd2f98c932fec6d712b9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.3" + }, + "desktop_drop": { + "dependency": "direct main", + "description": { + "name": "desktop_drop", + "sha256": "d55a010fe46c8e8fcff4ea4b451a9ff84a162217bdb3b2a0aa1479776205e15d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.4" + }, + "desktop_notifications": { + "dependency": "direct main", + "description": { + "name": "desktop_notifications", + "sha256": "6d92694ad6e9297a862c5ff7dd6b8ff64c819972557754769f819d2209612927", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.3" + }, + "device_info_plus": { + "dependency": "direct main", + "description": { + "name": "device_info_plus", + "sha256": "0042cb3b2a76413ea5f8a2b40cec2a33e01d0c937e91f0f7c211fde4f7739ba6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "9.1.1" + }, + "device_info_plus_platform_interface": { + "dependency": "transitive", + "description": { + "name": "device_info_plus_platform_interface", + "sha256": "d3b01d5868b50ae571cd1dc6e502fc94d956b665756180f7b16ead09e836fd64", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.0.0" + }, + "dynamic_color": { + "dependency": "direct main", + "description": { + "name": "dynamic_color", + "sha256": "8b8bd1d798bd393e11eddeaa8ae95b12ff028bf7d5998fc5d003488cd5f4ce2f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.6.8" + }, + "emoji_picker_flutter": { + "dependency": "direct main", + "description": { + "name": "emoji_picker_flutter", + "sha256": "009c51efc763d5a6ba05a5628b8b2184c327cd117d66ea9c3e7edf2ff269c423", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.6.3" + }, + "emoji_proposal": { + "dependency": "direct main", + "description": { + "name": "emoji_proposal", + "sha256": "e931bc42b54a65397b3df7915bb58ee7dcbd3ed81c3b8c256b9a5b210e94ea63", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.0.1" + }, + "emojis": { + "dependency": "direct main", + "description": { + "name": "emojis", + "sha256": "2e4d847c3f1e2670f30dc355909ce6fa7808b4e626c34a4dd503a360995a38bf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.9" + }, + "enhanced_enum": { + "dependency": "transitive", + "description": { + "name": "enhanced_enum", + "sha256": "074c5a8b9664799ca91e1e8b68003b8694cb19998671cbafd9c7779c13fcdecf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.4" + }, + "equatable": { + "dependency": "transitive", + "description": { + "name": "equatable", + "sha256": "c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.5" + }, + "fake_async": { + "dependency": "transitive", + "description": { + "name": "fake_async", + "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.1" + }, + "ffi": { + "dependency": "transitive", + "description": { + "name": "ffi", + "sha256": "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "file": { + "dependency": "transitive", + "description": { + "name": "file", + "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.4" + }, + "file_picker": { + "dependency": "direct main", + "description": { + "name": "file_picker", + "sha256": "4e42aacde3b993c5947467ab640882c56947d9d27342a5b6f2895b23956954a6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.1" + }, + "file_selector_linux": { + "dependency": "transitive", + "description": { + "name": "file_selector_linux", + "sha256": "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.2+1" + }, + "file_selector_macos": { + "dependency": "transitive", + "description": { + "name": "file_selector_macos", + "sha256": "b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.3+3" + }, + "file_selector_platform_interface": { + "dependency": "transitive", + "description": { + "name": "file_selector_platform_interface", + "sha256": "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.6.1" + }, + "file_selector_windows": { + "dependency": "transitive", + "description": { + "name": "file_selector_windows", + "sha256": "d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.3+1" + }, + "flutter": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_app_badger": { + "dependency": "direct main", + "description": { + "name": "flutter_app_badger", + "sha256": "64d4a279bab862ed28850431b9b446b9820aaae0bf363322d51077419f930fa8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.5.0" + }, + "flutter_blurhash": { + "dependency": "direct main", + "description": { + "name": "flutter_blurhash", + "sha256": "5e67678e479ac639069d7af1e133f4a4702311491188ff3e0227486430db0c06", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.8.2" + }, + "flutter_cache_manager": { + "dependency": "direct main", + "description": { + "name": "flutter_cache_manager", + "sha256": "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.3.1" + }, + "flutter_driver": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_foreground_task": { + "dependency": "direct main", + "description": { + "name": "flutter_foreground_task", + "sha256": "e48d2d810a2d643362e64de41146ed8e95d4dd282bae6abbb32309d9f0bf5d67", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.2" + }, + "flutter_highlighter": { + "dependency": "direct main", + "description": { + "name": "flutter_highlighter", + "sha256": "93173afd47a9ada53f3176371755e7ea4a1065362763976d06d6adfb4d946e10", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.1" + }, + "flutter_html": { + "dependency": "direct main", + "description": { + "name": "flutter_html", + "sha256": "02ad69e813ecfc0728a455e4bf892b9379983e050722b1dce00192ee2e41d1ee", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.0-beta.2" + }, + "flutter_html_table": { + "dependency": "direct main", + "description": { + "name": "flutter_html_table", + "sha256": "e20c72d67ea2512e7b4949f6f7dd13d004e773b0f82c586a21f895e6bd90383c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.0-beta.2" + }, + "flutter_keyboard_visibility": { + "dependency": "transitive", + "description": { + "name": "flutter_keyboard_visibility", + "sha256": "4983655c26ab5b959252ee204c2fffa4afeb4413cd030455194ec0caa3b8e7cb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.4.1" + }, + "flutter_keyboard_visibility_linux": { + "dependency": "transitive", + "description": { + "name": "flutter_keyboard_visibility_linux", + "sha256": "6fba7cd9bb033b6ddd8c2beb4c99ad02d728f1e6e6d9b9446667398b2ac39f08", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "flutter_keyboard_visibility_macos": { + "dependency": "transitive", + "description": { + "name": "flutter_keyboard_visibility_macos", + "sha256": "c5c49b16fff453dfdafdc16f26bdd8fb8d55812a1d50b0ce25fc8d9f2e53d086", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "flutter_keyboard_visibility_platform_interface": { + "dependency": "transitive", + "description": { + "name": "flutter_keyboard_visibility_platform_interface", + "sha256": "e43a89845873f7be10cb3884345ceb9aebf00a659f479d1c8f4293fcb37022a4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "flutter_keyboard_visibility_web": { + "dependency": "transitive", + "description": { + "name": "flutter_keyboard_visibility_web", + "sha256": "d3771a2e752880c79203f8d80658401d0c998e4183edca05a149f5098ce6e3d1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "flutter_keyboard_visibility_windows": { + "dependency": "transitive", + "description": { + "name": "flutter_keyboard_visibility_windows", + "sha256": "fc4b0f0b6be9b93ae527f3d527fb56ee2d918cd88bbca438c478af7bcfd0ef73", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "flutter_layout_grid": { + "dependency": "transitive", + "description": { + "name": "flutter_layout_grid", + "sha256": "3529b7aa7ed2cb9861a0bbaa5c14d4be2beaf5a070ce0176077159f80c5de094", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.5" + }, + "flutter_linkify": { + "dependency": "direct main", + "description": { + "name": "flutter_linkify", + "sha256": "74669e06a8f358fee4512b4320c0b80e51cffc496607931de68d28f099254073", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.0.0" + }, + "flutter_lints": { + "dependency": "direct dev", + "description": { + "name": "flutter_lints", + "sha256": "e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.1" + }, + "flutter_local_notifications": { + "dependency": "direct main", + "description": { + "name": "flutter_local_notifications", + "sha256": "bb5cd63ff7c91d6efe452e41d0d0ae6348925c82eafd10ce170ef585ea04776e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "16.2.0" + }, + "flutter_local_notifications_linux": { + "dependency": "transitive", + "description": { + "name": "flutter_local_notifications_linux", + "sha256": "33f741ef47b5f63cc7f78fe75eeeac7e19f171ff3c3df054d84c1e38bedb6a03", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.0+1" + }, + "flutter_local_notifications_platform_interface": { + "dependency": "transitive", + "description": { + "name": "flutter_local_notifications_platform_interface", + "sha256": "7cf643d6d5022f3baed0be777b0662cce5919c0a7b86e700299f22dc4ae660ef", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.0.0+1" + }, + "flutter_localizations": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_map": { + "dependency": "direct main", + "description": { + "name": "flutter_map", + "sha256": "52c65a977daae42f9aae6748418dd1535eaf27186e9bac9bf431843082bc75a3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.0" + }, + "flutter_math_fork": { + "dependency": "direct main", + "description": { + "name": "flutter_math_fork", + "sha256": "94bee4642892a94939af0748c6a7de0ff8318feee588379dcdfea7dc5cba06c8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.7.2" + }, + "flutter_native_splash": { + "dependency": "direct dev", + "description": { + "name": "flutter_native_splash", + "sha256": "c4d899312b36e7454bedfd0a4740275837b99e532d81c8477579d8183db1de6c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.6" + }, + "flutter_olm": { + "dependency": "direct main", + "description": { + "name": "flutter_olm", + "sha256": "69aaac45d854e74d17d04dac8a0ca3f548266d271a0f0fa7600e006e81432417", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.2" + }, + "flutter_openssl_crypto": { + "dependency": "direct main", + "description": { + "name": "flutter_openssl_crypto", + "sha256": "6dcecf6f7c1804ae6f5d73ee05df8af72ea8133bf2447d25979d739503186c96", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.0" + }, + "flutter_plugin_android_lifecycle": { + "dependency": "transitive", + "description": { + "name": "flutter_plugin_android_lifecycle", + "sha256": "b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.17" + }, + "flutter_ringtone_player": { + "dependency": "direct main", + "description": { + "name": "flutter_ringtone_player", + "sha256": "bdbf0ba551fd81cf02fab5c45800dc0006fc51167a1ed252321046fd8ac2bce3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.0+2" + }, + "flutter_secure_storage": { + "dependency": "direct main", + "description": { + "name": "flutter_secure_storage", + "sha256": "ffdbb60130e4665d2af814a0267c481bcf522c41ae2e43caf69fa0146876d685", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "9.0.0" + }, + "flutter_secure_storage_linux": { + "dependency": "direct overridden", + "description": { + "name": "flutter_secure_storage_linux", + "sha256": "0912ae29a572230ad52d8a4697e5518d7f0f429052fd51df7e5a7952c7efe2a3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.3" + }, + "flutter_secure_storage_macos": { + "dependency": "transitive", + "description": { + "name": "flutter_secure_storage_macos", + "sha256": "bd33935b4b628abd0b86c8ca20655c5b36275c3a3f5194769a7b3f37c905369c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.1" + }, + "flutter_secure_storage_platform_interface": { + "dependency": "transitive", + "description": { + "name": "flutter_secure_storage_platform_interface", + "sha256": "0d4d3a5dd4db28c96ae414d7ba3b8422fd735a8255642774803b2532c9a61d7e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.2" + }, + "flutter_secure_storage_web": { + "dependency": "transitive", + "description": { + "name": "flutter_secure_storage_web", + "sha256": "30f84f102df9dcdaa2241866a958c2ec976902ebdaa8883fbfe525f1f2f3cf20", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.2" + }, + "flutter_secure_storage_windows": { + "dependency": "transitive", + "description": { + "name": "flutter_secure_storage_windows", + "sha256": "5809c66f9dd3b4b93b0a6e2e8561539405322ee767ac2f64d084e2ab5429d108", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.0" + }, + "flutter_svg": { + "dependency": "transitive", + "description": { + "name": "flutter_svg", + "sha256": "d39e7f95621fc84376bc0f7d504f05c3a41488c562f4a8ad410569127507402c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.9" + }, + "flutter_test": { + "dependency": "direct dev", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_typeahead": { + "dependency": "direct main", + "description": { + "name": "flutter_typeahead", + "sha256": "b9942bd5b7611a6ec3f0730c477146cffa4cd4b051077983ba67ddfc9e7ee818", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.8.0" + }, + "flutter_web_auth_2": { + "dependency": "direct main", + "description": { + "name": "flutter_web_auth_2", + "sha256": "ea57000909d0002824179f1e4907c074f39538e86a9e4d93a74b7c37dbaee242", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.4" + }, + "flutter_web_auth_2_platform_interface": { + "dependency": "transitive", + "description": { + "name": "flutter_web_auth_2_platform_interface", + "sha256": "9124824cbd21e12680bf58190e27b77f251c897e80ec81cd557ec1fde9aecabf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.0" + }, + "flutter_web_plugins": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_webrtc": { + "dependency": "direct main", + "description": { + "name": "flutter_webrtc", + "sha256": "8522e9f347aed9f03ec591d05fc286a698c1b11a1a6d3e994e92727d24c6f352", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.46" + }, + "fuchsia_remote_debug_protocol": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "future_loading_dialog": { + "dependency": "direct main", + "description": { + "name": "future_loading_dialog", + "sha256": "2718b1a308db452da32ab9bca9ad496ff92b683e217add9e92cf50520f90537e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.0" + }, + "geolocator": { + "dependency": "direct main", + "description": { + "name": "geolocator", + "sha256": "b8f520252c5c66851295bcc263bc8ae7555501938427f72216ba7688702e261d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.7.1" + }, + "geolocator_android": { + "dependency": "direct overridden", + "description": { + "name": "geolocator_android", + "sha256": "a4834a98fab5124f2d5b881e62a40ebb4a71d6aad6ad577e047a3ffb69b67dac", + "url": "https://hanntech-gmbh.gitlab.io/free2pass/flutter-geolocator-floss/" + }, + "source": "hosted", + "version": "1.0.1" + }, + "geolocator_apple": { + "dependency": "transitive", + "description": { + "name": "geolocator_apple", + "sha256": "1e8e398cc92151d946a4bbd34e2075885333e42d35ca33e418e7ce7b0a29991e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.2" + }, + "geolocator_platform_interface": { + "dependency": "transitive", + "description": { + "name": "geolocator_platform_interface", + "sha256": "9d6f34a8a4b704d504f34acc5e52d880a7d2caedd99739902d6319179b0336d4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.6" + }, + "geolocator_web": { + "dependency": "transitive", + "description": { + "name": "geolocator_web", + "sha256": "0b9e0ec13ce2211085cae0055b3516c975bd6cfe2878a20c8f13611f1a259855", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.6" + }, + "get_it": { + "dependency": "transitive", + "description": { + "name": "get_it", + "sha256": "f79870884de16d689cf9a7d15eedf31ed61d750e813c538a6efb92660fea83c3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.6.4" + }, + "glob": { + "dependency": "transitive", + "description": { + "name": "glob", + "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "go_router": { + "dependency": "direct main", + "description": { + "name": "go_router", + "sha256": "c247a4f76071c3b97bb5ae8912968870d5565644801c5e09f3bc961b4d874895", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "12.1.1" + }, + "gradient_borders": { + "dependency": "transitive", + "description": { + "name": "gradient_borders", + "sha256": "69eeaff519d145a4c6c213ada1abae386bcc8981a4970d923e478ce7ba19e309", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "highlighter": { + "dependency": "transitive", + "description": { + "name": "highlighter", + "sha256": "92180c72b9da8758e1acf39a45aa305a97dcfe2fdc8f3d1d2947c23f2772bfbc", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.1" + }, + "hive": { + "dependency": "direct main", + "description": { + "name": "hive", + "sha256": "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.3" + }, + "hive_flutter": { + "dependency": "direct main", + "description": { + "name": "hive_flutter", + "sha256": "dca1da446b1d808a51689fb5d0c6c9510c0a2ba01e22805d492c73b68e33eecc", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "html": { + "dependency": "direct main", + "description": { + "name": "html", + "sha256": "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.15.4" + }, + "html_unescape": { + "dependency": "transitive", + "description": { + "name": "html_unescape", + "sha256": "15362d7a18f19d7b742ef8dcb811f5fd2a2df98db9f80ea393c075189e0b61e3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "http": { + "dependency": "direct main", + "description": { + "name": "http", + "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.13.6" + }, + "http_parser": { + "dependency": "transitive", + "description": { + "name": "http_parser", + "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.2" + }, + "image": { + "dependency": "transitive", + "description": { + "name": "image", + "sha256": "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.3" + }, + "image_picker": { + "dependency": "direct main", + "description": { + "name": "image_picker", + "sha256": "7d7f2768df2a8b0a3cefa5ef4f84636121987d403130e70b17ef7e2cf650ba84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "image_picker_android": { + "dependency": "transitive", + "description": { + "name": "image_picker_android", + "sha256": "d6a6e78821086b0b737009b09363018309bbc6de3fd88cc5c26bc2bb44a4957f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.8.8+2" + }, + "image_picker_for_web": { + "dependency": "transitive", + "description": { + "name": "image_picker_for_web", + "sha256": "50bc9ae6a77eea3a8b11af5eb6c661eeb858fdd2f734c2a4fd17086922347ef7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.1" + }, + "image_picker_ios": { + "dependency": "transitive", + "description": { + "name": "image_picker_ios", + "sha256": "76ec722aeea419d03aa915c2c96bf5b47214b053899088c9abb4086ceecf97a7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.8.8+4" + }, + "image_picker_linux": { + "dependency": "transitive", + "description": { + "name": "image_picker_linux", + "sha256": "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.1+1" + }, + "image_picker_macos": { + "dependency": "transitive", + "description": { + "name": "image_picker_macos", + "sha256": "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.1+1" + }, + "image_picker_platform_interface": { + "dependency": "transitive", + "description": { + "name": "image_picker_platform_interface", + "sha256": "ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.9.1" + }, + "image_picker_windows": { + "dependency": "transitive", + "description": { + "name": "image_picker_windows", + "sha256": "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.1+1" + }, + "import_sorter": { + "dependency": "direct dev", + "description": { + "name": "import_sorter", + "sha256": "eb15738ccead84e62c31e0208ea4e3104415efcd4972b86906ca64a1187d0836", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.6.0" + }, + "integration_test": { + "dependency": "direct dev", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "intersperse": { + "dependency": "transitive", + "description": { + "name": "intersperse", + "sha256": "2f8a905c96f6cbba978644a3d5b31b8d86ddc44917662df7d27a61f3df66a576", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "intl": { + "dependency": "direct main", + "description": { + "name": "intl", + "sha256": "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.18.1" + }, + "io": { + "dependency": "transitive", + "description": { + "name": "io", + "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "js": { + "dependency": "transitive", + "description": { + "name": "js", + "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.7" + }, + "json_annotation": { + "dependency": "transitive", + "description": { + "name": "json_annotation", + "sha256": "b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.8.1" + }, + "just_audio": { + "dependency": "direct main", + "description": { + "name": "just_audio", + "sha256": "b607cd1a43bac03d85c3aaee00448ff4a589ef2a77104e3d409889ff079bf823", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.36" + }, + "just_audio_platform_interface": { + "dependency": "transitive", + "description": { + "name": "just_audio_platform_interface", + "sha256": "c3dee0014248c97c91fe6299edb73dc4d6c6930a2f4f713579cd692d9e47f4a1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.2.2" + }, + "just_audio_web": { + "dependency": "transitive", + "description": { + "name": "just_audio_web", + "sha256": "134356b0fe3d898293102b33b5fd618831ffdc72bb7a1b726140abdf22772b70", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.9" + }, + "keyboard_shortcuts": { + "dependency": "direct main", + "description": { + "path": ".", + "ref": "null-safety", + "resolved-ref": "a3d4020911860ff091d90638ab708604b71d2c5a", + "url": "https://github.com/TheOneWithTheBraid/keyboard_shortcuts.git" + }, + "source": "git", + "version": "0.1.4" + }, + "latlong2": { + "dependency": "direct main", + "description": { + "name": "latlong2", + "sha256": "08ef7282ba9f76e8495e49e2dc4d653015ac929dce5f92b375a415d30b407ea0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.8.2" + }, + "linkify": { + "dependency": "direct main", + "description": { + "name": "linkify", + "sha256": "4139ea77f4651ab9c315b577da2dd108d9aa0bd84b5d03d33323f1970c645832", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.0.0" + }, + "lints": { + "dependency": "transitive", + "description": { + "name": "lints", + "sha256": "cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.0" + }, + "list_counter": { + "dependency": "transitive", + "description": { + "name": "list_counter", + "sha256": "c447ae3dfcd1c55f0152867090e67e219d42fe6d4f2807db4bbe8b8d69912237", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.2" + }, + "lists": { + "dependency": "transitive", + "description": { + "name": "lists", + "sha256": "4ca5c19ae4350de036a7e996cdd1ee39c93ac0a2b840f4915459b7d0a7d4ab27", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.1" + }, + "logging": { + "dependency": "transitive", + "description": { + "name": "logging", + "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "macos_ui": { + "dependency": "transitive", + "description": { + "name": "macos_ui", + "sha256": "cc499122655c61728185561e9006af4b239f9526f98d7b2cbf42124e9044a0ff", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "macos_window_utils": { + "dependency": "transitive", + "description": { + "name": "macos_window_utils", + "sha256": "b3dfd47bbc605f0e315af684b50370a8f84932267aaa542098063fa384d593bd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.4.0" + }, + "markdown": { + "dependency": "transitive", + "description": { + "name": "markdown", + "sha256": "acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.1.1" + }, + "matcher": { + "dependency": "transitive", + "description": { + "name": "matcher", + "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.12.16" + }, + "material_color_utilities": { + "dependency": "transitive", + "description": { + "name": "material_color_utilities", + "sha256": "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.0" + }, + "matrix": { + "dependency": "direct main", + "description": { + "name": "matrix", + "sha256": "ae57870b14484044896a07abbc102b29cfafcfe38c382e954ba057e63196afdd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.25.5" + }, + "matrix_api_lite": { + "dependency": "transitive", + "description": { + "name": "matrix_api_lite", + "sha256": "62bdd1dffb956e956863ba21e52109157502342b749e4728f4105f0c6d73a254", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.7.2" + }, + "meta": { + "dependency": "transitive", + "description": { + "name": "meta", + "sha256": "a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.10.0" + }, + "mgrs_dart": { + "dependency": "transitive", + "description": { + "name": "mgrs_dart", + "sha256": "fb89ae62f05fa0bb90f70c31fc870bcbcfd516c843fb554452ab3396f78586f7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "mime": { + "dependency": "transitive", + "description": { + "name": "mime", + "sha256": "e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "msix": { + "dependency": "direct dev", + "description": { + "name": "msix", + "sha256": "957d04eee260e4bd15bec1fdb988dfc73718285e201cf89d97ef01ef38e66d4c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.16.6" + }, + "native_imaging": { + "dependency": "direct main", + "description": { + "name": "native_imaging", + "sha256": "182ccd8e0815a8a2158500ef66c828c030f6b9e05783e41e22f33bbcfd46a3d5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.1" + }, + "nested": { + "dependency": "transitive", + "description": { + "name": "nested", + "sha256": "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "olm": { + "dependency": "transitive", + "description": { + "name": "olm", + "sha256": "37948a6576949256f3ee1d0063d5b408634ff7e452b9a5c2f6410f9d7ced1c20", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.3" + }, + "package_config": { + "dependency": "transitive", + "description": { + "name": "package_config", + "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "package_info_plus": { + "dependency": "direct main", + "description": { + "name": "package_info_plus", + "sha256": "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.2.0" + }, + "package_info_plus_platform_interface": { + "dependency": "transitive", + "description": { + "name": "package_info_plus_platform_interface", + "sha256": "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.1" + }, + "pasteboard": { + "dependency": "direct main", + "description": { + "name": "pasteboard", + "sha256": "1c8b6a8b3f1d12e55d4e9404433cda1b4abe66db6b17bc2d2fb5965772c04674", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.0" + }, + "path": { + "dependency": "transitive", + "description": { + "name": "path", + "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.8.3" + }, + "path_parsing": { + "dependency": "transitive", + "description": { + "name": "path_parsing", + "sha256": "e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.1" + }, + "path_provider": { + "dependency": "direct main", + "description": { + "name": "path_provider", + "sha256": "a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "path_provider_android": { + "dependency": "transitive", + "description": { + "name": "path_provider_android", + "sha256": "e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "path_provider_foundation": { + "dependency": "transitive", + "description": { + "name": "path_provider_foundation", + "sha256": "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.1" + }, + "path_provider_linux": { + "dependency": "transitive", + "description": { + "name": "path_provider_linux", + "sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "path_provider_platform_interface": { + "dependency": "transitive", + "description": { + "name": "path_provider_platform_interface", + "sha256": "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "path_provider_windows": { + "dependency": "transitive", + "description": { + "name": "path_provider_windows", + "sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "permission_handler": { + "dependency": "direct main", + "description": { + "name": "permission_handler", + "sha256": "860c6b871c94c78e202dc69546d4d8fd84bd59faeb36f8fb9888668a53ff4f78", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "11.1.0" + }, + "permission_handler_android": { + "dependency": "transitive", + "description": { + "name": "permission_handler_android", + "sha256": "2f1bec180ee2f5665c22faada971a8f024761f632e93ddc23310487df52dcfa6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "12.0.1" + }, + "permission_handler_apple": { + "dependency": "transitive", + "description": { + "name": "permission_handler_apple", + "sha256": "1a816084338ada8d574b1cb48390e6e8b19305d5120fe3a37c98825bacc78306", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "9.2.0" + }, + "permission_handler_html": { + "dependency": "transitive", + "description": { + "name": "permission_handler_html", + "sha256": "d96ff56a757b7f04fa825c469d296c5aebc55f743e87bd639fef91a466a24da8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.0+1" + }, + "permission_handler_platform_interface": { + "dependency": "transitive", + "description": { + "name": "permission_handler_platform_interface", + "sha256": "d87349312f7eaf6ce0adaf668daf700ac5b06af84338bd8b8574dfbd93ffe1a1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.2" + }, + "permission_handler_windows": { + "dependency": "transitive", + "description": { + "name": "permission_handler_windows", + "sha256": "1e8640c1e39121128da6b816d236e714d2cf17fac5a105dd6acdd3403a628004", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.0" + }, + "petitparser": { + "dependency": "transitive", + "description": { + "name": "petitparser", + "sha256": "eeb2d1428ee7f4170e2bd498827296a18d4e7fc462b71727d111c0ac7707cfa6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.0.1" + }, + "platform": { + "dependency": "transitive", + "description": { + "name": "platform", + "sha256": "ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, + "platform_detect": { + "dependency": "transitive", + "description": { + "name": "platform_detect", + "sha256": "08f4ee79c0e1c4858d37e06b22352a3ebdef5466b613749a3adb03e703d4f5b0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.11" + }, + "plugin_platform_interface": { + "dependency": "transitive", + "description": { + "name": "plugin_platform_interface", + "sha256": "f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.7" + }, + "pointer_interceptor": { + "dependency": "transitive", + "description": { + "name": "pointer_interceptor", + "sha256": "adf7a637f97c077041d36801b43be08559fd4322d2127b3f20bb7be1b9eebc22", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.3+7" + }, + "pointycastle": { + "dependency": "transitive", + "description": { + "name": "pointycastle", + "sha256": "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.7.3" + }, + "polylabel": { + "dependency": "transitive", + "description": { + "name": "polylabel", + "sha256": "41b9099afb2aa6c1730bdd8a0fab1400d287694ec7615dd8516935fa3144214b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.1" + }, + "process": { + "dependency": "transitive", + "description": { + "name": "process", + "sha256": "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.2.4" + }, + "proj4dart": { + "dependency": "transitive", + "description": { + "name": "proj4dart", + "sha256": "c8a659ac9b6864aa47c171e78d41bbe6f5e1d7bd790a5814249e6b68bc44324e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "provider": { + "dependency": "direct main", + "description": { + "name": "provider", + "sha256": "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.1" + }, + "pub_semver": { + "dependency": "transitive", + "description": { + "name": "pub_semver", + "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "pub_updater": { + "dependency": "transitive", + "description": { + "name": "pub_updater", + "sha256": "05ae70703e06f7fdeb05f7f02dd680b8aad810e87c756a618f33e1794635115c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.0" + }, + "pubspec_parse": { + "dependency": "transitive", + "description": { + "name": "pubspec_parse", + "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.3" + }, + "punycode": { + "dependency": "direct main", + "description": { + "name": "punycode", + "sha256": "39b874cc1f78b94e57db17e74b3f2ba2a96e25c0bebdcc8a571614dccda0ff0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "qr": { + "dependency": "transitive", + "description": { + "name": "qr", + "sha256": "64957a3930367bf97cc211a5af99551d630f2f4625e38af10edd6b19131b64b3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.1" + }, + "qr_code_scanner": { + "dependency": "direct main", + "description": { + "name": "qr_code_scanner", + "sha256": "f23b68d893505a424f0bd2e324ebea71ed88465d572d26bb8d2e78a4749591fd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.1" + }, + "qr_flutter": { + "dependency": "direct main", + "description": { + "name": "qr_flutter", + "sha256": "5095f0fc6e3f71d08adef8feccc8cea4f12eec18a2e31c2e8d82cb6019f4b097", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.0" + }, + "quiver": { + "dependency": "transitive", + "description": { + "name": "quiver", + "sha256": "b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.1" + }, + "random_string": { + "dependency": "transitive", + "description": { + "name": "random_string", + "sha256": "03b52435aae8cbdd1056cf91bfc5bf845e9706724dd35ae2e99fa14a1ef79d02", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.1" + }, + "receive_sharing_intent": { + "dependency": "direct main", + "description": { + "name": "receive_sharing_intent", + "sha256": "912bebb551bce75a14098891fd750305b30d53eba0d61cc70cd9973be9866e8d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.4.5" + }, + "record": { + "dependency": "direct main", + "description": { + "name": "record", + "sha256": "f703397f5a60d9b2b655b3acc94ba079b2d9a67dc0725bdb90ef2fee2441ebf7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.4.4" + }, + "record_linux": { + "dependency": "transitive", + "description": { + "name": "record_linux", + "sha256": "348db92c4ec1b67b1b85d791381c8c99d7c6908de141e7c9edc20dad399b15ce", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.1" + }, + "record_macos": { + "dependency": "transitive", + "description": { + "name": "record_macos", + "sha256": "d1d0199d1395f05e218207e8cacd03eb9dc9e256ddfe2cfcbbb90e8edea06057", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.2" + }, + "record_platform_interface": { + "dependency": "transitive", + "description": { + "name": "record_platform_interface", + "sha256": "7a2d4ce7ac3752505157e416e4e0d666a54b1d5d8601701b7e7e5e30bec181b4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.0" + }, + "record_web": { + "dependency": "transitive", + "description": { + "name": "record_web", + "sha256": "219ffb4ca59b4338117857db56d3ffadbde3169bcaf1136f5f4d4656f4a2372d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.0" + }, + "record_windows": { + "dependency": "transitive", + "description": { + "name": "record_windows", + "sha256": "42d545155a26b20d74f5107648dbb3382dbbc84dc3f1adc767040359e57a1345", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.7.1" + }, + "remove_emoji": { + "dependency": "transitive", + "description": { + "name": "remove_emoji", + "sha256": "ed9e8463e8c9ca05b86fcddd4c0dbd2c2605a50d267f4ffa05496607924809e3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.0.10" + }, + "rxdart": { + "dependency": "transitive", + "description": { + "name": "rxdart", + "sha256": "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.27.7" + }, + "scroll_to_index": { + "dependency": "direct main", + "description": { + "name": "scroll_to_index", + "sha256": "b707546e7500d9f070d63e5acf74fd437ec7eeeb68d3412ef7b0afada0b4f176", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.1" + }, + "sdp_transform": { + "dependency": "transitive", + "description": { + "name": "sdp_transform", + "sha256": "73e412a5279a5c2de74001535208e20fff88f225c9a4571af0f7146202755e45", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.2" + }, + "sentiment_dart": { + "dependency": "transitive", + "description": { + "name": "sentiment_dart", + "sha256": "ddac8742cf5141f531eb1510b074ce715b9958cb02a763a4cc0a918768e4a0c8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.0.5" + }, + "share_plus": { + "dependency": "direct main", + "description": { + "name": "share_plus", + "sha256": "f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.2.1" + }, + "share_plus_platform_interface": { + "dependency": "transitive", + "description": { + "name": "share_plus_platform_interface", + "sha256": "df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.3.1" + }, + "shared_preferences": { + "dependency": "direct main", + "description": { + "name": "shared_preferences", + "sha256": "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.2" + }, + "shared_preferences_android": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_android", + "sha256": "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "shared_preferences_foundation": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_foundation", + "sha256": "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.4" + }, + "shared_preferences_linux": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_linux", + "sha256": "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "shared_preferences_platform_interface": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_platform_interface", + "sha256": "d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.1" + }, + "shared_preferences_web": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_web", + "sha256": "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.2" + }, + "shared_preferences_windows": { + "dependency": "transitive", + "description": { + "name": "shared_preferences_windows", + "sha256": "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "sky_engine": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.99" + }, + "slugify": { + "dependency": "direct main", + "description": { + "name": "slugify", + "sha256": "b272501565cb28050cac2d96b7bf28a2d24c8dae359280361d124f3093d337c3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "source_span": { + "dependency": "transitive", + "description": { + "name": "source_span", + "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.10.0" + }, + "sqflite": { + "dependency": "direct main", + "description": { + "name": "sqflite", + "sha256": "591f1602816e9c31377d5f008c2d9ef7b8aca8941c3f89cc5fd9d84da0c38a9a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.0" + }, + "sqflite_common": { + "dependency": "transitive", + "description": { + "name": "sqflite_common", + "sha256": "bb4738f15b23352822f4c42a531677e5c6f522e079461fd240ead29d8d8a54a6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.5.0+2" + }, + "sqflite_common_ffi": { + "dependency": "direct main", + "description": { + "name": "sqflite_common_ffi", + "sha256": "35d2fce1e971707c227cc4775cc017d5eafe06c2654c3435ebd5c3ad6c170f5f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.0+4" + }, + "sqflite_sqlcipher": { + "dependency": "direct main", + "description": { + "name": "sqflite_sqlcipher", + "sha256": "e1dfb55bf21ee5a18c43f28faa4291272a801da4ab34a6ba9973b6c0e1ed77da", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "sqlite3": { + "dependency": "transitive", + "description": { + "name": "sqlite3", + "sha256": "db65233e6b99e99b2548932f55a987961bc06d82a31a0665451fa0b4fff4c3fb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "stack_trace": { + "dependency": "transitive", + "description": { + "name": "stack_trace", + "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.11.1" + }, + "stream_channel": { + "dependency": "transitive", + "description": { + "name": "stream_channel", + "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "string_scanner": { + "dependency": "transitive", + "description": { + "name": "string_scanner", + "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "swipe_to_action": { + "dependency": "direct main", + "description": { + "name": "swipe_to_action", + "sha256": "0914f78df07a15b5fd97e800036fd63a2bcd4dbe67a4a514a597303806a361ea", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.0" + }, + "sync_http": { + "dependency": "transitive", + "description": { + "name": "sync_http", + "sha256": "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.1" + }, + "synchronized": { + "dependency": "transitive", + "description": { + "name": "synchronized", + "sha256": "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.0" + }, + "term_glyph": { + "dependency": "transitive", + "description": { + "name": "term_glyph", + "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "test_api": { + "dependency": "transitive", + "description": { + "name": "test_api", + "sha256": "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.1" + }, + "timezone": { + "dependency": "transitive", + "description": { + "name": "timezone", + "sha256": "1cfd8ddc2d1cfd836bc93e67b9be88c3adaeca6f40a00ca999104c30693cdca0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.2" + }, + "tint": { + "dependency": "transitive", + "description": { + "name": "tint", + "sha256": "9652d9a589f4536d5e392cf790263d120474f15da3cf1bee7f1fdb31b4de5f46", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.1" + }, + "tor_detector_web": { + "dependency": "direct main", + "description": { + "name": "tor_detector_web", + "sha256": "c4acbd6c0fecd2cd0e8fe00b1a37332422e041021a42488dfddcb3e7ec809b3f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "translations_cleaner": { + "dependency": "direct dev", + "description": { + "name": "translations_cleaner", + "sha256": "060f4a8cd782e271509719741dd3540fe81ddaad49bd79e1d8fc4598299a6b84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.0.5" + }, + "tuple": { + "dependency": "transitive", + "description": { + "name": "tuple", + "sha256": "a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "typed_data": { + "dependency": "transitive", + "description": { + "name": "typed_data", + "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.2" + }, + "uni_links": { + "dependency": "direct main", + "description": { + "name": "uni_links", + "sha256": "051098acfc9e26a9fde03b487bef5d3d228ca8f67693480c6f33fd4fbb8e2b6e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.1" + }, + "uni_links_platform_interface": { + "dependency": "transitive", + "description": { + "name": "uni_links_platform_interface", + "sha256": "929cf1a71b59e3b7c2d8a2605a9cf7e0b125b13bc858e55083d88c62722d4507", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.0" + }, + "uni_links_web": { + "dependency": "transitive", + "description": { + "name": "uni_links_web", + "sha256": "7539db908e25f67de2438e33cc1020b30ab94e66720b5677ba6763b25f6394df", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.0" + }, + "unicode": { + "dependency": "transitive", + "description": { + "name": "unicode", + "sha256": "0f69e46593d65245774d4f17125c6084d2c20b4e473a983f6e21b7d7762218f1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.1" + }, + "unifiedpush": { + "dependency": "direct main", + "description": { + "name": "unifiedpush", + "sha256": "ef7f3ae6139d27169604e3844379ef7929af573a2be21d9e82187f44ab7b9a32", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.0.1" + }, + "unifiedpush_android": { + "dependency": "transitive", + "description": { + "name": "unifiedpush_android", + "sha256": "19fcdd2671c46bd074efbb80c43cedd0bcddd1fc0cfd3e2f74aec03fb0659d58", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.0" + }, + "unifiedpush_platform_interface": { + "dependency": "transitive", + "description": { + "name": "unifiedpush_platform_interface", + "sha256": "7782b18a15d22bb184fa766ef1e0c675eef862055ff815453df7041dfd026146", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.1" + }, + "universal_html": { + "dependency": "direct main", + "description": { + "name": "universal_html", + "sha256": "56536254004e24d9d8cfdb7dbbf09b74cf8df96729f38a2f5c238163e3d58971", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.4" + }, + "universal_io": { + "dependency": "transitive", + "description": { + "name": "universal_io", + "sha256": "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.2" + }, + "unorm_dart": { + "dependency": "transitive", + "description": { + "name": "unorm_dart", + "sha256": "5b35bff83fce4d76467641438f9e867dc9bcfdb8c1694854f230579d68cd8f4b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.0" + }, + "url_launcher": { + "dependency": "direct main", + "description": { + "name": "url_launcher", + "sha256": "b1c9e98774adf8820c96fbc7ae3601231d324a7d5ebd8babe27b6dfac91357ba", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.2.1" + }, + "url_launcher_android": { + "dependency": "transitive", + "description": { + "name": "url_launcher_android", + "sha256": "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.2.0" + }, + "url_launcher_ios": { + "dependency": "transitive", + "description": { + "name": "url_launcher_ios", + "sha256": "bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.2.1" + }, + "url_launcher_linux": { + "dependency": "transitive", + "description": { + "name": "url_launcher_linux", + "sha256": "9f2d390e096fdbe1e6e6256f97851e51afc2d9c423d3432f1d6a02a8a9a8b9fd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.0" + }, + "url_launcher_macos": { + "dependency": "transitive", + "description": { + "name": "url_launcher_macos", + "sha256": "b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.0" + }, + "url_launcher_platform_interface": { + "dependency": "transitive", + "description": { + "name": "url_launcher_platform_interface", + "sha256": "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.0" + }, + "url_launcher_web": { + "dependency": "transitive", + "description": { + "name": "url_launcher_web", + "sha256": "138bd45b3a456dcfafc46d1a146787424f8d2edfbf2809c9324361e58f851cf7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "url_launcher_windows": { + "dependency": "transitive", + "description": { + "name": "url_launcher_windows", + "sha256": "7754a1ad30ee896b265f8d14078b0513a4dba28d358eabb9d5f339886f4a1adc", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.0" + }, + "uuid": { + "dependency": "transitive", + "description": { + "name": "uuid", + "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.7" + }, + "vector_graphics": { + "dependency": "transitive", + "description": { + "name": "vector_graphics", + "sha256": "0f0c746dd2d6254a0057218ff980fc7f5670fd0fcf5e4db38a490d31eed4ad43", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.9+1" + }, + "vector_graphics_codec": { + "dependency": "transitive", + "description": { + "name": "vector_graphics_codec", + "sha256": "0edf6d630d1bfd5589114138ed8fada3234deacc37966bec033d3047c29248b7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.9+1" + }, + "vector_graphics_compiler": { + "dependency": "transitive", + "description": { + "name": "vector_graphics_compiler", + "sha256": "d24333727332d9bd20990f1483af4e09abdb9b1fc7c3db940b56ab5c42790c26", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.9+1" + }, + "vector_math": { + "dependency": "transitive", + "description": { + "name": "vector_math", + "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "vibration": { + "dependency": "direct main", + "description": { + "name": "vibration", + "sha256": "63d4f6b03e38d106599da18e786d5edcd02354433a4ed478fccbbcfc347193ab", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.8.3" + }, + "video_compress": { + "dependency": "direct main", + "description": { + "name": "video_compress", + "sha256": "407693726e674a1e1958801deb2d9daf5a5297707ba6d03375007012dae7389a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, + "video_player": { + "dependency": "direct main", + "description": { + "name": "video_player", + "sha256": "e16f0a83601a78d165dabc17e4dac50997604eb9e4cc76e10fa219046b70cef3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.8.1" + }, + "video_player_android": { + "dependency": "transitive", + "description": { + "name": "video_player_android", + "sha256": "3fe89ab07fdbce786e7eb25b58532d6eaf189ceddc091cb66cba712f8d9e8e55", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.10" + }, + "video_player_avfoundation": { + "dependency": "transitive", + "description": { + "name": "video_player_avfoundation", + "sha256": "bc923884640d6dc403050586eb40713cdb8d1d84e6886d8aca50ab04c59124c2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.5.2" + }, + "video_player_platform_interface": { + "dependency": "transitive", + "description": { + "name": "video_player_platform_interface", + "sha256": "be72301bf2c0150ab35a8c34d66e5a99de525f6de1e8d27c0672b836fe48f73a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.2.1" + }, + "video_player_web": { + "dependency": "transitive", + "description": { + "name": "video_player_web", + "sha256": "ab7a462b07d9ca80bed579e30fb3bce372468f1b78642e0911b10600f2c5cb5b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "visibility_detector": { + "dependency": "transitive", + "description": { + "name": "visibility_detector", + "sha256": "15c54a459ec2c17b4705450483f3d5a2858e733aee893dcee9d75fd04814940d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.3" + }, + "vm_service": { + "dependency": "transitive", + "description": { + "name": "vm_service", + "sha256": "c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "11.10.0" + }, + "wakelock_platform_interface": { + "dependency": "transitive", + "description": { + "name": "wakelock_platform_interface", + "sha256": "1f4aeb81fb592b863da83d2d0f7b8196067451e4df91046c26b54a403f9de621", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.0" + }, + "wakelock_plus": { + "dependency": "direct main", + "description": { + "name": "wakelock_plus", + "sha256": "f45a6c03aa3f8322e0a9d7f4a0482721c8789cb41d555407367650b8f9c26018", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.3" + }, + "wakelock_plus_platform_interface": { + "dependency": "transitive", + "description": { + "name": "wakelock_plus_platform_interface", + "sha256": "40fabed5da06caff0796dc638e1f07ee395fb18801fbff3255a2372db2d80385", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "wakelock_windows": { + "dependency": "direct overridden", + "description": { + "path": "wakelock_windows", + "ref": "main", + "resolved-ref": "f3610d6c246098fee74463de09434ed81fc2a7c8", + "url": "https://github.com/chandrabezzo/wakelock.git" + }, + "source": "git", + "version": "0.2.2" + }, + "watcher": { + "dependency": "transitive", + "description": { + "name": "watcher", + "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "web": { + "dependency": "transitive", + "description": { + "name": "web", + "sha256": "afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.0" + }, + "webdriver": { + "dependency": "transitive", + "description": { + "name": "webdriver", + "sha256": "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "webrtc_interface": { + "dependency": "direct main", + "description": { + "name": "webrtc_interface", + "sha256": "2efbd3e4e5ebeb2914253bcc51dafd3053c4b87b43f3076c74835a9deecbae3a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.2" + }, + "win32": { + "dependency": "transitive", + "description": { + "name": "win32", + "sha256": "7c99c0e1e2fa190b48d25c81ca5e42036d5cac81430ef249027d97b0935c553f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.1.0" + }, + "win32_registry": { + "dependency": "transitive", + "description": { + "name": "win32_registry", + "sha256": "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.2" + }, + "window_to_front": { + "dependency": "transitive", + "description": { + "name": "window_to_front", + "sha256": "7aef379752b7190c10479e12b5fd7c0b9d92adc96817d9e96c59937929512aee", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.0.3" + }, + "wkt_parser": { + "dependency": "transitive", + "description": { + "name": "wkt_parser", + "sha256": "8a555fc60de3116c00aad67891bcab20f81a958e4219cc106e3c037aa3937f13", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.0" + }, + "xdg_directories": { + "dependency": "transitive", + "description": { + "name": "xdg_directories", + "sha256": "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.3" + }, + "xml": { + "dependency": "transitive", + "description": { + "name": "xml", + "sha256": "af5e77e9b83f2f4adc5d3f0a4ece1c7f45a2467b695c2540381bac793e34e556", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.4.2" + }, + "yaml": { + "dependency": "transitive", + "description": { + "name": "yaml", + "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + } + }, + "sdks": { + "dart": ">=3.2.0 <4.0.0", + "flutter": ">=3.16.0" + } +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/Cargo.lock b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/Cargo.lock new file mode 100644 index 000000000000..8d77d6a44c59 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/Cargo.lock @@ -0,0 +1,6864 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "accessory" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "850bb534b9dc04744fbbb71d30ad6d25a7e4cf6dc33e223c81ef3a92ebab4e0b" +dependencies = [ + "macroific", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", + "zeroize", +] + +[[package]] +name = "ahash" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "ammonia" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e6d1c7838db705c9b756557ee27c384ce695a1c51a6fe528784cb1c6840170" +dependencies = [ + "html5ever", + "maplit", + "once_cell", + "tendril", + "url", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "anymap2" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c" + +[[package]] +name = "aquamarine" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760" +dependencies = [ + "include_dir", + "itertools 0.10.5", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +dependencies = [ + "serde", +] + +[[package]] +name = "as_variant" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38fa22307249f86fb7fad906fcae77f2564caeb56d7209103c551cd1cf4798f" + +[[package]] +name = "ashpd" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c018490e423efb6f032ef575f873ea57b61d44bec763cfe027b8e8852a027cf" +dependencies = [ + "enumflags2", + "futures-channel", + "futures-util", + "libc", + "once_cell", + "pipewire", + "rand", + "serde", + "serde_repr", + "tokio", + "tracing", + "url", + "zbus", +] + +[[package]] +name = "assign" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f093eed78becd229346bf859eec0aa4dd7ddde0757287b2b4107a1f09c80002" + +[[package]] +name = "async-broadcast" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +dependencies = [ + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +dependencies = [ + "concurrent-queue", + "event-listener 4.0.0", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-compression" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" +dependencies = [ + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" +dependencies = [ + "async-lock 3.2.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.1.0", + "parking", + "polling 3.3.1", + "rustix 0.38.28", + "slab", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + +[[package]] +name = "async-lock" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +dependencies = [ + "event-listener 4.0.0", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-once-cell" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9338790e78aa95a416786ec8389546c4b6a1dfc3dc36071ed9518a9413a542eb" + +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.28", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "async-rx" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a30de4e5329a0947e389f738a6ca0d0b938fea5cb7baaeae7d72e243614468a2" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-signal" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +dependencies = [ + "async-io 2.2.2", + "async-lock 2.8.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.28", + "signal-hook-registry", + "slab", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "async-task" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" + +[[package]] +name = "async-trait" +version = "0.1.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "async_cell" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "834eee9ce518130a3b4d5af09ecc43e9d6b57ee76613f227a1ddd6b77c7a62bc" + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "atomic_refcell" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom", + "instant", + "pin-project-lite", + "rand", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bindgen" +version = "0.66.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" +dependencies = [ + "bitflags 2.4.1", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.41", +] + +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + +[[package]] +name = "bitmaps" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703642b98a00b3b90513279a8ede3fcfa479c126c5fb46e78f3051522f021403" + +[[package]] +name = "blake3" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +dependencies = [ + "async-channel", + "async-lock 3.2.0", + "async-task", + "fastrand 2.0.1", + "futures-io", + "futures-lite 2.1.0", + "piper", + "tracing", +] + +[[package]] +name = "bs58" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "bytesize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" + +[[package]] +name = "cairo-rs" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1" +dependencies = [ + "bitflags 2.4.1", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-expr" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg-vis" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3a2c3bf5fc10fe2ca157564fbe08a4cb2b0a7d2ff3fe2f9683e65d5e7c7859c" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "checked_int_cast" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" + +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.48.5", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "clang-sys" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "concurrent-queue" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const_panic" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6051f239ecec86fde3410901ab7860d458d160371533842974fc61f96d15879b" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "cookie-factory" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpufeatures" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.9.0", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "platforms", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +dependencies = [ + "darling_core 0.20.3", + "darling_macro 0.20.3", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.41", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core 0.20.3", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "data-encoding" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" + +[[package]] +name = "deadpool" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb84100978c1c7b37f09ed3ce3e5f843af02c2a2c431bae5b19230dad2c1b490" +dependencies = [ + "async-trait", + "deadpool-runtime", + "num_cpus", + "tokio", +] + +[[package]] +name = "deadpool-runtime" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63dfa964fe2a66f3fde91fc70b267fe193d822c7e603e2a675a49a7f46ad3f49" +dependencies = [ + "tokio", +] + +[[package]] +name = "deadpool-sqlite" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8010e36e12f3be22543a5e478b4af20aeead9a700dd69581a5e050a070fc22c" +dependencies = [ + "deadpool", + "deadpool-sync", + "rusqlite", +] + +[[package]] +name = "deadpool-sync" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8db70494c13cae4ce67b4b4dafdaf828cf0df7237ab5b9e2fcabee4965d0a0a" +dependencies = [ + "deadpool-runtime", +] + +[[package]] +name = "delegate-display" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98a85201f233142ac819bbf6226e36d0b5e129a47bd325084674261c82d4cd66" +dependencies = [ + "macroific", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "der_derive", + "flagset", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "der_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fe87ce4529967e0ba1dcf8450bab64d97dfd5010a6256187ffe2e43e6f0e049" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "deranged" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling 0.14.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "djb_hash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8cf7d61e627a3b49af8f24f47e57f3788cdd7a0e4f17cd79fda5ada87f08578" + +[[package]] +name = "dyn-clone" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "serde", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core", + "serde", + "sha2", + "subtle", + "zeroize", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "hkdf", + "pem-rfc7468", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enumflags2" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.0", + "pin-project-lite", +] + +[[package]] +name = "exr" +version = "1.71.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "832a761f35ab3e6664babfbdc6cef35a4860e816ec3916dcfd0882954e98a8a8" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + +[[package]] +name = "eyeball" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42482893d982111055ce4b24234d6250396d3785767c6b04cedd84612a0b80fb" +dependencies = [ + "futures-core", + "readlock", + "tracing", +] + +[[package]] +name = "eyeball-im" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021fab29d9670be5867b16d56a95c29a12c3c1bb654e7d589010a028716d625d" +dependencies = [ + "futures-core", + "imbl", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "eyeball-im-util" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "191adac85d269e80f4e44c2b3e8fc2b193b2e3574a997962066b5980cab1fcc1" +dependencies = [ + "eyeball-im", + "futures-core", + "imbl", + "pin-project-lite", +] + +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + +[[package]] +name = "fancy_constructor" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f71f317e4af73b2f8f608fac190c52eac4b1879d2145df1db2fe48881ca69435" +dependencies = [ + "macroific", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fdeflate" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset 0.9.0", + "rustc_version", +] + +[[package]] +name = "flagset" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a7e408202050813e6f1d9addadcaafef3dca7530c7ddfb005d4081cce6779" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "spin 0.9.8", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fractal" +version = "6.0.0" +dependencies = [ + "ashpd", + "djb_hash", + "eyeball-im", + "futures-channel", + "futures-util", + "geo-uri", + "gettext-rs", + "gst-plugin-gtk4", + "gstreamer", + "gstreamer-base", + "gstreamer-pbutils", + "gstreamer-play", + "gstreamer-video", + "gtk4", + "html-escape", + "html2pango", + "html5gum", + "image 0.24.7", + "indexmap 2.1.0", + "libadwaita", + "libshumate", + "matrix-sdk", + "matrix-sdk-ui", + "mime", + "mime_guess", + "once_cell", + "oo7", + "pulldown-cmark", + "qrcode", + "rand", + "regex", + "rmp-serde", + "rqrr", + "ruma", + "secular", + "serde", + "serde_json", + "sourceview5", + "strum", + "thiserror", + "tokio", + "tracing", + "tracing-subscriber", + "url", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-executor" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "futures-sink" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fuzzy-matcher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" +dependencies = [ + "thread_local", +] + +[[package]] +name = "g2gen" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2c7625b2fc250dd90b63f7887a6bb0f7ec1d714c8278415bea2669ef20820e" +dependencies = [ + "g2poly", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "g2p" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc36d9bdc3d2da057775a9f4fa7d7b09edab3e0eda7a92cc353358fa63b8519e" +dependencies = [ + "g2gen", + "g2poly", +] + +[[package]] +name = "g2poly" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af6a86e750338603ea2c14b1c0bfe58cd61f87ca67a0021d9334996024608e12" + +[[package]] +name = "gdk-pixbuf" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk4" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk4-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk4-sys" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdk4-win32" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe66650c41f64e41ada9f85c4bdb96e5549c669e594892240dfb147a63256057" +dependencies = [ + "gdk4", + "gdk4-win32-sys", + "gio", + "glib", + "libc", + "system-deps", +] + +[[package]] +name = "gdk4-win32-sys" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b5c187546cd3ad9f1787b46c66272d8fcdf8197bfe4f6e2647fe910c39e396d" +dependencies = [ + "gdk-pixbuf-sys", + "gdk4-sys", + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "geo-uri" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6b8812a079cb4a3b5b366c2d05db8e231e2f231c443acb3532daad996d89f71" +dependencies = [ + "derive_builder", + "thiserror", +] + +[[package]] +name = "getopts" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gettext-rs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364" +dependencies = [ + "gettext-sys", + "locale_config", +] + +[[package]] +name = "gettext-sys" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d" +dependencies = [ + "cc", + "temp-dir", +] + +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e" +dependencies = [ + "bitflags 2.4.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5" +dependencies = [ + "heck", + "proc-macro-crate 2.0.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "gloo-utils" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "graphene-rs" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401" +dependencies = [ + "glib", + "graphene-sys", + "libc", +] + +[[package]] +name = "graphene-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59" +dependencies = [ + "glib-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "gsk4" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e" +dependencies = [ + "cairo-rs", + "gdk4", + "glib", + "graphene-rs", + "gsk4-sys", + "libc", + "pango", +] + +[[package]] +name = "gsk4-sys" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55" +dependencies = [ + "cairo-sys-rs", + "gdk4-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gst-plugin-gtk4" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33970273495544e54d5f486d761b09d402f0cf8760990e1ea508bd5141f8ebeb" +dependencies = [ + "gdk4-win32", + "gst-plugin-version-helper", + "gstreamer", + "gstreamer-base", + "gstreamer-gl", + "gstreamer-video", + "gtk4", + "windows-sys 0.48.0", +] + +[[package]] +name = "gst-plugin-version-helper" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "334c37a15ca23861ad8159c8ff6e20f011aa2000defc5c9159096a28842f811b" +dependencies = [ + "chrono", + "toml_edit 0.20.2", +] + +[[package]] +name = "gstreamer" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed97f98d186e63e49079b26af1a1b73e70ab7a2f450eb46a136f2bffc2bf12d5" +dependencies = [ + "cfg-if", + "futures-channel", + "futures-core", + "futures-util", + "glib", + "gstreamer-sys", + "itertools 0.11.0", + "libc", + "muldiv", + "num-integer", + "num-rational 0.4.1", + "option-operations", + "paste", + "pin-project-lite", + "pretty-hex", + "smallvec", + "thiserror", +] + +[[package]] +name = "gstreamer-audio" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36d1678eacb7677c1ffdcf220ada416b5fb68e87c33b77319f14bba169fbe3fc" +dependencies = [ + "cfg-if", + "glib", + "gstreamer", + "gstreamer-audio-sys", + "gstreamer-base", + "libc", +] + +[[package]] +name = "gstreamer-audio-sys" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bd94ae8b177377855b38c3d809c686526786cdb771e6d68510509634b955d1" +dependencies = [ + "glib-sys", + "gobject-sys", + "gstreamer-base-sys", + "gstreamer-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gstreamer-base" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb150b6904a49052237fede7cc2e6479df6ced5043d95e6af8134bc141a3167f" +dependencies = [ + "atomic_refcell", + "cfg-if", + "glib", + "gstreamer", + "gstreamer-base-sys", + "libc", +] + +[[package]] +name = "gstreamer-base-sys" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ca701f9078fe115b29b24c80910b577f9cb5b039182f050dbadf5933594b64" +dependencies = [ + "glib-sys", + "gobject-sys", + "gstreamer-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gstreamer-gl" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ecfb91128263c160448a915a15e430cfdc69317b1b087316222e0693bb51b90" +dependencies = [ + "glib", + "gstreamer", + "gstreamer-base", + "gstreamer-gl-sys", + "gstreamer-video", + "libc", +] + +[[package]] +name = "gstreamer-gl-sys" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d580971b3c99a667c9739812d499e6c5cadbb92873f984cd0d1d0b4e7346f1cd" +dependencies = [ + "glib-sys", + "gobject-sys", + "gstreamer-base-sys", + "gstreamer-sys", + "gstreamer-video-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gstreamer-pbutils" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953055f80677b68b2f46f23859d9241df6b3dcf3ca8240db5f9ab50716255237" +dependencies = [ + "glib", + "gstreamer", + "gstreamer-audio", + "gstreamer-pbutils-sys", + "gstreamer-video", + "libc", + "thiserror", +] + +[[package]] +name = "gstreamer-pbutils-sys" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6faae6e3454bc8ca5986d7ef6477fc44b809bfc952a8680eaedb4f2e001f9d69" +dependencies = [ + "glib-sys", + "gobject-sys", + "gstreamer-audio-sys", + "gstreamer-sys", + "gstreamer-video-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gstreamer-play" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad2efa4c3f92fa5d5e51e95c83f3b847c9ad16e3498a65beaf721d324187f04a" +dependencies = [ + "glib", + "gstreamer", + "gstreamer-play-sys", + "gstreamer-video", + "libc", +] + +[[package]] +name = "gstreamer-play-sys" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cc41f9524b98e49da474696abd8fc026b0accfea7fd754e5be09107cb96038f" +dependencies = [ + "glib-sys", + "gobject-sys", + "gstreamer-sys", + "gstreamer-video-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gstreamer-sys" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "564cda782b3e6eed1b81cb4798a06794db56440fb05b422505be689f34ce3bc4" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gstreamer-video" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e85b2a4d1d3b7a98ae03806c3ed5c2db89d6b37a5f138780b48de015d68715e5" +dependencies = [ + "cfg-if", + "futures-channel", + "glib", + "gstreamer", + "gstreamer-base", + "gstreamer-video-sys", + "libc", + "thiserror", +] + +[[package]] +name = "gstreamer-video-sys" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0302318d98e6b054501e485b6bb4ee20225823218f4a8660c182f115a33b16ee" +dependencies = [ + "glib-sys", + "gobject-sys", + "gstreamer-base-sys", + "gstreamer-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk4" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842" +dependencies = [ + "cairo-rs", + "field-offset", + "futures-channel", + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "graphene-rs", + "gsk4", + "gtk4-macros", + "gtk4-sys", + "libc", + "pango", +] + +[[package]] +name = "gtk4-macros" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f" +dependencies = [ + "anyhow", + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "gtk4-sys" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", + "gsk4-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "h2" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" +dependencies = [ + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashlink" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +dependencies = [ + "hashbrown 0.14.3", +] + +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "byteorder", + "num-traits", +] + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "html-escape" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" +dependencies = [ + "utf8-width", +] + +[[package]] +name = "html2pango" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5f061cc3c0538033f81a94417f209e2b1908e3dab8b87b205d84e6109c8091b" +dependencies = [ + "ammonia", + "anyhow", + "html5ever", + "linkify", + "maplit", + "markup5ever_rcdom", + "once_cell", + "regex", +] + +[[package]] +name = "html5ever" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "html5gum" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4e556171a058ba117bbe88b059fb37b6289023e007d2903ea6dca3a3cbff14" +dependencies = [ + "jetscii", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.4.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "image" +version = "0.23.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-iter", + "num-rational 0.3.2", + "num-traits", +] + +[[package]] +name = "image" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "jpeg-decoder", + "num-rational 0.4.1", + "num-traits", + "png", + "qoi", + "tiff", +] + +[[package]] +name = "imbl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978d142c8028edf52095703af2fad11d6f611af1246685725d6b850634647085" +dependencies = [ + "bitmaps", + "imbl-sized-chunks", + "rand_core", + "rand_xoshiro", + "serde", + "version_check", +] + +[[package]] +name = "imbl-sized-chunks" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6957ea0b2541c5ca561d3ef4538044af79f8a05a1eb3a3b148936aaceaa1076" +dependencies = [ + "bitmaps", +] + +[[package]] +name = "include_dir" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "indexed_db_futures" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cc2083760572ee02385ab8b7c02c20925d2dd1f97a1a25a8737a238608f1152" +dependencies = [ + "accessory", + "cfg-if", + "delegate-display", + "fancy_constructor", + "js-sys", + "uuid", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", + "serde", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "iri-string" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21859b667d66a4c1dacd9df0863b3efb65785474255face87f5bca39dd8407c0" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "jetscii" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47f142fe24a9c9944451e8349de0a56af5f3e7226dc46f3ed4d4ecc0b85af75e" + +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" +dependencies = [ + "rayon", +] + +[[package]] +name = "js-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "js_int" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d937f95470b270ce8b8950207715d71aa8e153c0d44c6684d59397ed4949160a" +dependencies = [ + "serde", +] + +[[package]] +name = "js_option" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68421373957a1593a767013698dbf206e2b221eefe97a44d98d18672ff38423c" +dependencies = [ + "serde", +] + +[[package]] +name = "k256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", + "signature", +] + +[[package]] +name = "konst" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d712a8c49d4274f8d8a5cf61368cb5f3c143d149882b1a2918129e53395fdb0" +dependencies = [ + "const_panic", + "konst_kernel", + "typewit", +] + +[[package]] +name = "konst_kernel" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dac6ea8c376b6e208a81cf39b8e82bebf49652454d98a4829e907dac16ef1790" +dependencies = [ + "typewit", +] + +[[package]] +name = "language-tags" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" +dependencies = [ + "serde", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + +[[package]] +name = "libadwaita" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c" +dependencies = [ + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "gtk4", + "libadwaita-sys", + "libc", + "pango", +] + +[[package]] +name = "libadwaita-sys" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a" +dependencies = [ + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "libc" +version = "0.2.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libshumate" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b743d27ff75bbd10e97729e771fa706f0e2e80503f8b737c7ebd39abd6ed1b2d" +dependencies = [ + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "gtk4", + "libc", + "libshumate-sys", +] + +[[package]] +name = "libshumate-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2d267a8d525823ad53986bde3b56ed6ef8c319227b33fc71028daed41ea5103" +dependencies = [ + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", + "libc", + "system-deps", +] + +[[package]] +name = "libspa" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0434617020ddca18b86067912970c55410ca654cdafd775480322f50b857a8c4" +dependencies = [ + "bitflags 2.4.1", + "cc", + "convert_case", + "cookie-factory", + "libc", + "libspa-sys", + "nix", + "nom", + "system-deps", +] + +[[package]] +name = "libspa-sys" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3e70ca3f3e70f858ef363046d06178c427b4e0b63d210c95fd87d752679d345" +dependencies = [ + "bindgen", + "cc", + "system-deps", +] + +[[package]] +name = "libsqlite3-sys" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +dependencies = [ + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linkify" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96dd5884008358112bc66093362197c7248ece00d46624e2cf71e50029f8cff5" +dependencies = [ + "memchr", +] + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + +[[package]] +name = "locale_config" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934" +dependencies = [ + "lazy_static", + "objc", + "objc-foundation", + "regex", + "winapi", +] + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "lru" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" +dependencies = [ + "hashbrown 0.13.2", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "macroific" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05c00ac596022625d01047c421a0d97d7f09a18e429187b341c201cb631b9dd" +dependencies = [ + "macroific_attr_parse", + "macroific_core", + "macroific_macro", +] + +[[package]] +name = "macroific_attr_parse" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd94d5da95b30ae6e10621ad02340909346ad91661f3f8c0f2b62345e46a2f67" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "macroific_core" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13198c120864097a565ccb3ff947672d969932b7975ebd4085732c9f09435e55" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "macroific_macro" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c9853143cbed7f1e41dc39fee95f9b361bec65c8dc2a01bf609be01b61f5ae" +dependencies = [ + "macroific_attr_parse", + "macroific_core", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "markup5ever" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +dependencies = [ + "log", + "phf 0.10.1", + "phf_codegen", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "markup5ever_rcdom" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9521dd6750f8e80ee6c53d65e2e4656d7de37064f3a7a5d2d11d05df93839c2" +dependencies = [ + "html5ever", + "markup5ever", + "tendril", + "xml5ever", +] + +[[package]] +name = "mas-http" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da6948721a2bc05e73f8029515e05b0c7deabb6fcec51ee7f033ecbfe60b7818" +dependencies = [ + "bytes", + "futures-util", + "headers", + "http", + "http-body", + "hyper", + "mas-tower", + "once_cell", + "opentelemetry", + "serde", + "serde_json", + "serde_urlencoded", + "thiserror", + "tower", + "tower-http", + "tracing", + "tracing-opentelemetry", +] + +[[package]] +name = "mas-iana" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c48820df73240471efb9fe90f90461b0029e4f0b7915e2df23633523635dfa3" +dependencies = [ + "schemars", + "serde", +] + +[[package]] +name = "mas-jose" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39a251dfb34fb81d7259e91b368ee3551013406149333484ae30bd7da8c2c74" +dependencies = [ + "base64ct", + "chrono", + "digest", + "ecdsa", + "elliptic-curve", + "generic-array", + "hmac", + "k256", + "mas-iana", + "p256", + "p384", + "rand", + "rsa", + "schemars", + "sec1", + "serde", + "serde_json", + "serde_with", + "sha2", + "signature", + "thiserror", + "tracing", + "url", +] + +[[package]] +name = "mas-keystore" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75c2a138f5805d21cf62c3947e23743349cb1303e8e3374aad14a5d571d7912" +dependencies = [ + "aead", + "base64ct", + "chacha20poly1305", + "const-oid", + "der", + "ecdsa", + "elliptic-curve", + "generic-array", + "k256", + "mas-iana", + "mas-jose", + "p256", + "p384", + "pem-rfc7468", + "pkcs1", + "pkcs8", + "rand", + "rsa", + "sec1", + "spki", + "thiserror", +] + +[[package]] +name = "mas-oidc-client" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3138f9b4240f515c740ec61e27b436f1fd5a24aabb66b51d93346c7d46e2e571" +dependencies = [ + "base64ct", + "bytes", + "chrono", + "form_urlencoded", + "futures-util", + "headers", + "http", + "http-body", + "hyper", + "hyper-rustls", + "language-tags", + "mas-http", + "mas-iana", + "mas-jose", + "mas-keystore", + "mime", + "oauth2-types", + "once_cell", + "rand", + "rustls", + "serde", + "serde_json", + "serde_urlencoded", + "serde_with", + "thiserror", + "tokio", + "tower", + "tower-http", + "tracing", + "url", +] + +[[package]] +name = "mas-tower" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6beeba7843e755539b582e6240293db1e6bd428e22bc1a6ef4220b1fd2fc53d" +dependencies = [ + "http", + "opentelemetry", + "opentelemetry-http", + "opentelemetry-semantic-conventions", + "pin-project-lite", + "tokio", + "tower", + "tracing", + "tracing-opentelemetry", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matrix-pickle" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7fd26463ce5d86b8d9bb9c4142d453198ba22fb91bd46d3c9f144ae699d821d" +dependencies = [ + "matrix-pickle-derive", + "thiserror", +] + +[[package]] +name = "matrix-pickle-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93779aa78d39c2fe34746287b10a866192cf8af1b81767fff76bd64099acc0f5" +dependencies = [ + "proc-macro-crate 2.0.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "matrix-sdk" +version = "0.6.2" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6" +dependencies = [ + "anymap2", + "aquamarine", + "as_variant", + "async-channel", + "async-stream", + "async-trait", + "backoff", + "bytes", + "bytesize", + "cfg-vis", + "chrono", + "event-listener 4.0.0", + "eyeball", + "eyeball-im", + "eyeball-im-util", + "futures-core", + "futures-util", + "gloo-timers", + "http", + "hyper", + "image 0.24.7", + "imbl", + "indexmap 2.1.0", + "language-tags", + "mas-oidc-client", + "matrix-sdk-base", + "matrix-sdk-common", + "matrix-sdk-indexeddb", + "matrix-sdk-sqlite", + "mime", + "mime2ext", + "rand", + "reqwest", + "ruma", + "serde", + "serde_html_form", + "serde_json", + "sha2", + "tempfile", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tracing", + "url", + "urlencoding", + "zeroize", +] + +[[package]] +name = "matrix-sdk-base" +version = "0.6.1" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6" +dependencies = [ + "as_variant", + "async-trait", + "bitflags 2.4.1", + "eyeball", + "futures-util", + "matrix-sdk-common", + "matrix-sdk-crypto", + "matrix-sdk-store-encryption", + "once_cell", + "ruma", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "matrix-sdk-common" +version = "0.6.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6" +dependencies = [ + "async-trait", + "futures-core", + "futures-util", + "gloo-timers", + "instant", + "ruma", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-subscriber", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "matrix-sdk-crypto" +version = "0.6.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6" +dependencies = [ + "aes", + "as_variant", + "async-trait", + "bs58", + "byteorder", + "cbc", + "cfg-if", + "ctr", + "eyeball", + "futures-core", + "futures-util", + "hkdf", + "hmac", + "itertools 0.12.0", + "matrix-sdk-common", + "matrix-sdk-qrcode", + "pbkdf2", + "rand", + "rmp-serde", + "ruma", + "serde", + "serde_json", + "sha2", + "subtle", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "ulid", + "vodozemac", + "zeroize", +] + +[[package]] +name = "matrix-sdk-indexeddb" +version = "0.2.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6" +dependencies = [ + "anyhow", + "async-trait", + "base64", + "getrandom", + "gloo-utils", + "indexed_db_futures", + "js-sys", + "matrix-sdk-base", + "matrix-sdk-crypto", + "matrix-sdk-store-encryption", + "ruma", + "serde", + "serde-wasm-bindgen", + "serde_json", + "thiserror", + "tokio", + "tracing", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "matrix-sdk-qrcode" +version = "0.4.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6" +dependencies = [ + "byteorder", + "qrcode", + "ruma-common", + "thiserror", + "vodozemac", +] + +[[package]] +name = "matrix-sdk-sqlite" +version = "0.1.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6" +dependencies = [ + "async-trait", + "deadpool-sqlite", + "itertools 0.12.0", + "matrix-sdk-base", + "matrix-sdk-crypto", + "matrix-sdk-store-encryption", + "rmp-serde", + "ruma", + "rusqlite", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "vodozemac", +] + +[[package]] +name = "matrix-sdk-store-encryption" +version = "0.2.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6" +dependencies = [ + "blake3", + "chacha20poly1305", + "displaydoc", + "getrandom", + "hmac", + "pbkdf2", + "rand", + "rmp-serde", + "serde", + "serde_json", + "sha2", + "thiserror", + "zeroize", +] + +[[package]] +name = "matrix-sdk-ui" +version = "0.6.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=19526cea6bce133fc48904838956846aeb966dc6#19526cea6bce133fc48904838956846aeb966dc6" +dependencies = [ + "as_variant", + "async-once-cell", + "async-rx", + "async-stream", + "async-trait", + "async_cell", + "chrono", + "eyeball", + "eyeball-im", + "eyeball-im-util", + "futures-core", + "futures-util", + "fuzzy-matcher", + "imbl", + "indexmap 2.1.0", + "itertools 0.12.0", + "matrix-sdk", + "matrix-sdk-base", + "mime", + "once_cell", + "pin-project-lite", + "ruma", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "unicode-normalization", + "url", +] + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime2ext" +version = "0.1.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a85a5069ebd40e64b1985773cc81addbe9d90d7ecf60e7b5475a57ad584c70" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "muldiv" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0" + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", + "pin-utils", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational 0.4.1", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "serde", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "oauth2-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd0c3fa3366856696f31b0686570dc4a511b499e648a03e433ad8b940ed2f122" +dependencies = [ + "chrono", + "data-encoding", + "http", + "language-tags", + "mas-iana", + "mas-jose", + "parse-display", + "serde", + "serde_json", + "serde_with", + "sha2", + "thiserror", + "url", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oo7" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "220729ba847d98e1a9902c05e41dae79ce4a0b913dad68bc540dd3120a8c2b6b" +dependencies = [ + "aes", + "byteorder", + "cbc", + "cipher", + "digest", + "futures-util", + "hkdf", + "hmac", + "num", + "num-bigint-dig", + "once_cell", + "pbkdf2", + "rand", + "serde", + "sha2", + "tokio", + "tracing", + "zbus", + "zeroize", +] + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl" +version = "0.10.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" +dependencies = [ + "bitflags 2.4.1", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.97" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "opentelemetry" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a" +dependencies = [ + "futures-core", + "futures-sink", + "indexmap 2.1.0", + "js-sys", + "once_cell", + "pin-project-lite", + "thiserror", + "urlencoding", +] + +[[package]] +name = "opentelemetry-http" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f51189ce8be654f9b5f7e70e49967ed894e84a06fc35c6c042e64ac1fc5399e" +dependencies = [ + "async-trait", + "bytes", + "http", + "opentelemetry", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84" +dependencies = [ + "opentelemetry", +] + +[[package]] +name = "opentelemetry_sdk" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "968ba3f2ca03e90e5187f5e4f46c791ef7f2c163ae87789c8ce5f5ca3b7b7de5" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "once_cell", + "opentelemetry", + "ordered-float", + "percent-encoding", + "rand", + "thiserror", +] + +[[package]] +name = "option-operations" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0" +dependencies = [ + "paste", +] + +[[package]] +name = "ordered-float" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e" +dependencies = [ + "num-traits", +] + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + +[[package]] +name = "p384" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "parse-display" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6509d08722b53e8dafe97f2027b22ccbe3a5db83cb352931e9716b0aa44bc5c" +dependencies = [ + "once_cell", + "parse-display-derive", + "regex", +] + +[[package]] +name = "parse-display-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68517892c8daf78da08c0db777fcc17e07f2f63ef70041718f8a7630ad84f341" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "regex", + "regex-syntax 0.7.5", + "structmeta", + "syn 2.0.41", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest", + "hmac", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_shared 0.10.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_codegen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator 0.11.2", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.1", + "futures-io", +] + +[[package]] +name = "pipewire" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2d009c8dd65e890b515a71950f7e4c801523b8894ff33863a40830bf762e9e9" +dependencies = [ + "anyhow", + "bitflags 2.4.1", + "libc", + "libspa", + "libspa-sys", + "nix", + "once_cell", + "pipewire-sys", + "thiserror", +] + +[[package]] +name = "pipewire-sys" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "890c084e7b737246cb4799c86b71a0e4da536031ff7473dd639eba9f95039f64" +dependencies = [ + "bindgen", + "libspa-sys", + "system-deps", +] + +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs5" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e847e2c91a18bfa887dd028ec33f2fe6f25db77db3619024764914affe8b69a6" +dependencies = [ + "aes", + "cbc", + "der", + "pbkdf2", + "scrypt", + "sha2", + "spki", +] + +[[package]] +name = "pkcs7" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d79178be066405e0602bf3035946edef6b11b3f9dde46dfe5f8bfd7dea4b77e7" +dependencies = [ + "der", + "spki", + "x509-cert", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "pkcs5", + "rand_core", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + +[[package]] +name = "png" +version = "0.17.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +dependencies = [ + "cfg-if", + "concurrent-queue", + "pin-project-lite", + "rustix 0.38.28", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "pretty-hex" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5" + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "pulldown-cmark" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +dependencies = [ + "bitflags 1.3.2", + "getopts", + "memchr", + "unicase", +] + +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "qrcode" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d2f1455f3630c6e5107b4f2b94e74d76dea80736de0981fd27644216cff57f" +dependencies = [ + "checked_int_cast", + "image 0.23.14", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "readlock" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7b323e7196daa571c8584de958be19e92941c41f845776fe06babfe8fa280a2" + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "reqwest" +version = "0.11.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +dependencies = [ + "async-compression", + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "system-configuration", + "tokio", + "tokio-native-tls", + "tokio-socks", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "winreg", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +dependencies = [ + "cc", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted", + "windows-sys 0.48.0", +] + +[[package]] +name = "rmp" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rqrr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a8b87d1f9f69bb1a6c77e20fd303f9617b2b68dcff87cd9bcbfff2ced4b8a0b" +dependencies = [ + "g2p", + "image 0.24.7", + "lru", +] + +[[package]] +name = "rsa" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core", + "signature", + "spki", + "subtle", + "zeroize", +] + +[[package]] +name = "ruma" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2779c38df072964c63476259d9300efb07d0d1a7178c6469893636ce0c547a36" +dependencies = [ + "assign", + "js_int", + "js_option", + "ruma-client-api", + "ruma-common", + "ruma-events", + "ruma-federation-api", + "ruma-html", + "ruma-push-gateway-api", +] + +[[package]] +name = "ruma-client-api" +version = "0.17.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "641837258fa214a70823477514954ef0f5d3bc6ae8e1d5d85081856a33103386" +dependencies = [ + "assign", + "bytes", + "http", + "js_int", + "js_option", + "maplit", + "ruma-common", + "ruma-events", + "serde", + "serde_html_form", + "serde_json", +] + +[[package]] +name = "ruma-common" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bca4c33c50e47b4cdceeac71bdef0c04153b0e29aa992d9030ec14a62323e85" +dependencies = [ + "as_variant", + "base64", + "bytes", + "form_urlencoded", + "getrandom", + "http", + "indexmap 2.1.0", + "js-sys", + "js_int", + "konst", + "percent-encoding", + "rand", + "regex", + "ruma-identifiers-validation", + "ruma-macros", + "serde", + "serde_html_form", + "serde_json", + "thiserror", + "tracing", + "url", + "uuid", + "wildmatch", +] + +[[package]] +name = "ruma-events" +version = "0.27.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d20a52770e5a9fb30b7a1c14ba8b3dcf76dadc01674e58e40094f78e6bd5e3f1" +dependencies = [ + "as_variant", + "indexmap 2.1.0", + "js_int", + "js_option", + "percent-encoding", + "pulldown-cmark", + "regex", + "ruma-common", + "ruma-html", + "ruma-identifiers-validation", + "ruma-macros", + "serde", + "serde_json", + "thiserror", + "tracing", + "url", + "wildmatch", +] + +[[package]] +name = "ruma-federation-api" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1901c1f27bc327652d58af2a130c73acef3198abeccd24cee97f7267fdf3fe7" +dependencies = [ + "js_int", + "ruma-common", + "ruma-events", + "serde", + "serde_json", +] + +[[package]] +name = "ruma-html" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9674a149b1a6965fe2174ba528c89ee201258abd9209bbe74953df7073a83a5b" +dependencies = [ + "as_variant", + "html5ever", + "phf 0.11.2", + "tracing", + "wildmatch", +] + +[[package]] +name = "ruma-identifiers-validation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8ad1259274f2f57c20901bd1cc5e4a8f23169d1c1d887b6338b02f058e9b41" +dependencies = [ + "js_int", + "thiserror", +] + +[[package]] +name = "ruma-macros" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0280534a4b3e34416f883285fac4f9c408cd0b737890ae66f3e7a7056d14be80" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.1", + "proc-macro2", + "quote", + "ruma-identifiers-validation", + "serde", + "syn 2.0.41", + "toml", +] + +[[package]] +name = "ruma-push-gateway-api" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f343045c4d4a5943f93b5014160af3c7413e6ee32ea47b147e1e91f2a977486b" +dependencies = [ + "js_int", + "ruma-common", + "ruma-events", + "serde", + "serde_json", +] + +[[package]] +name = "rusqlite" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d" +dependencies = [ + "bitflags 2.4.1", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "smallvec", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "schemars" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 1.0.109", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" +dependencies = [ + "pbkdf2", + "salsa20", + "sha2", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "secular" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3dc3eccdf599b53eba8a34a1190bd47394948258d1c43dca9cceb2426e25bb5" +dependencies = [ + "unicode-normalization", +] + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" + +[[package]] +name = "serde" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9b713f70513ae1f8d92665bbbbda5c295c2cf1da5542881ae5eefe20c9af132" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde_bytes" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_html_form" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224e6a14f315852940f3ec103125aa6482f0e224732ed91ed3330ed633077c34" +dependencies = [ + "form_urlencoded", + "indexmap 2.1.0", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_spanned" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" +dependencies = [ + "base64", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.1.0", + "serde", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" +dependencies = [ + "darling 0.20.3", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "sourceview5" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88c5f976a113e947bc5ec67758b2960c0db4ca76f80fb410d7cd86cd456d9ee5" +dependencies = [ + "futures-channel", + "futures-core", + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "gtk4", + "libc", + "pango", + "sourceview5-sys", +] + +[[package]] +name = "sourceview5-sys" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29637cccd56075a37ba72c0cc8b8d599dbc1d857e30dadea97eaacbc29b7fd46" +dependencies = [ + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "structmeta" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ad9e09554f0456d67a69c1584c9798ba733a5b50349a6c0d0948710523922d" +dependencies = [ + "proc-macro2", + "quote", + "structmeta-derive", + "syn 2.0.41", +] + +[[package]] +name = "structmeta-derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.41", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-deps" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" +dependencies = [ + "cfg-expr", + "heck", + "pkg-config", + "toml", + "version-compare", +] + +[[package]] +name = "target-lexicon" +version = "0.12.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" + +[[package]] +name = "temp-dir" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab" + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if", + "fastrand 2.0.1", + "redox_syscall", + "rustix 0.38.28", + "windows-sys 0.48.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thiserror" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiff" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + +[[package]] +name = "time" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +dependencies = [ + "deranged", + "itoa", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.5", + "tokio-macros", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-socks" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0" +dependencies = [ + "either", + "futures-util", + "thiserror", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.1.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "hdrhistogram", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +dependencies = [ + "bitflags 2.4.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "iri-string", + "pin-project-lite", + "tokio", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c67ac25c5407e7b961fafc6f7e9aa5958fd297aada2d20fa2ae1737357e55596" +dependencies = [ + "js-sys", + "once_cell", + "opentelemetry", + "opentelemetry_sdk", + "tracing", + "tracing-core", + "tracing-subscriber", + "web-time", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "typewit" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6779a69cc5f9a7388274a0a8a353eb1c9e45195f9ae74a26690b055a7cf9592a" +dependencies = [ + "typewit_proc_macros", +] + +[[package]] +name = "typewit_proc_macros" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36a83ea2b3c704935a01b4642946aadd445cea40b10935e3f8bd8052b8193d6" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.0", + "tempfile", + "winapi", +] + +[[package]] +name = "ulid" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e37c4b6cbcc59a8dcd09a6429fbc7890286bcbb79215cea7b38a3c4c0921d93" +dependencies = [ + "rand", +] + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version-compare" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "vodozemac" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c66c59f2218deeddfe34c0fee8a1908967f8566bafd91c3c6b9600d0b68cde1" +dependencies = [ + "aes", + "arrayvec", + "base64", + "cbc", + "curve25519-dalek", + "ed25519-dalek", + "getrandom", + "hkdf", + "hmac", + "matrix-pickle", + "pkcs7", + "prost", + "rand", + "serde", + "serde_bytes", + "serde_json", + "sha2", + "subtle", + "thiserror", + "x25519-dalek", + "zeroize", +] + +[[package]] +name = "waker-fn" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.41", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" + +[[package]] +name = "wasm-streams" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57099a701fb3a8043f993e8228dc24229c7b942e2b009a1b962e54489ba1d3bf" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "wildmatch" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee583bdc5ff1cf9db20e9db5bb3ff4c3089a8f6b8b31aff265c9aba85812db86" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "x25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +dependencies = [ + "curve25519-dalek", + "rand_core", + "serde", + "zeroize", +] + +[[package]] +name = "x509-cert" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25eefca1d99701da3a57feb07e5079fc62abba059fc139e98c13bbb250f3ef29" +dependencies = [ + "const-oid", + "der", + "spki", +] + +[[package]] +name = "xdg-home" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" +dependencies = [ + "nix", + "winapi", +] + +[[package]] +name = "xml5ever" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650" +dependencies = [ + "log", + "mac", + "markup5ever", +] + +[[package]] +name = "zbus" +version = "3.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" +dependencies = [ + "async-broadcast", + "async-process", + "async-recursion", + "async-trait", + "byteorder", + "derivative", + "enumflags2", + "event-listener 2.5.3", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix", + "once_cell", + "ordered-stream", + "rand", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tokio", + "tracing", + "uds_windows", + "winapi", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "3.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.7.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "zvariant" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "url", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix new file mode 100644 index 000000000000..0ff8eadbf548 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix @@ -0,0 +1,90 @@ +{ stdenv +, lib +, fetchFromGitLab +, nix-update-script +, cargo +, meson +, ninja +, rustPlatform +, rustc +, pkg-config +, glib +, gtk4 +, gtksourceview5 +, libadwaita +, gst_all_1 +, desktop-file-utils +, appstream-glib +, openssl +, pipewire +, libshumate +, wrapGAppsHook4 +, sqlite +, xdg-desktop-portal +}: + +stdenv.mkDerivation rec { + pname = "fractal"; + version = "6"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "fractal"; + rev = version; + hash = "sha256-J4Jb7G5Rfou3N7mytetIdLl0dGY5dSvTjnu8aj4kWXQ="; + }; + + cargoDeps = rustPlatform.importCargoLock { + lockFile = ./Cargo.lock; + outputHashes = { + "matrix-sdk-0.6.2" = "sha256-CY0Ylrd3NkP1IevyQa351IS/+evG2GgrjPnR/ZDFR9Q="; + }; + }; + + nativeBuildInputs = [ + glib + gtk4 + meson + ninja + pkg-config + rustPlatform.bindgenHook + rustPlatform.cargoSetupHook + cargo + rustc + desktop-file-utils + appstream-glib + wrapGAppsHook4 + ]; + + buildInputs = [ + glib + gtk4 + gtksourceview5 + libadwaita + openssl + pipewire + libshumate + sqlite + xdg-desktop-portal + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-bad + gst-plugins-good + ]); + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = with lib; { + description = "Matrix group messaging app"; + homepage = "https://gitlab.gnome.org/GNOME/fractal"; + changelog = "https://gitlab.gnome.org/World/fractal/-/releases/${version}"; + license = licenses.gpl3Plus; + maintainers = teams.gnome.members ++ (with maintainers; [ anselmschueler dtzWill ]); + platforms = platforms.linux; + mainProgram = "fractal"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix new file mode 100644 index 000000000000..a910105fde80 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix @@ -0,0 +1,20 @@ +{ lib, mkFranzDerivation, fetchurl }: + +mkFranzDerivation rec { + pname = "franz"; + name = "Franz"; + version = "5.9.2"; + src = fetchurl { + url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb"; + 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" ]; + hydraPlatforms = [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix new file mode 100644 index 000000000000..39c892b33512 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix @@ -0,0 +1,96 @@ +{ stdenv +, lib +, makeWrapper +, wrapGAppsHook +, autoPatchelfHook +, dpkg +, xorg +, atk +, glib +, pango +, gdk-pixbuf +, cairo +, freetype +, fontconfig +, gtk3 +, dbus +, nss +, nspr +, alsa-lib +, cups +, expat +, udev +, libnotify +, xdg-utils +, mesa +, libglvnd +, libappindicator-gtk3 +}: + +# Helper function for building a derivation for Franz and forks. + +{ pname, name, version, src, meta, extraBuildInputs ? [], ... } @ args: +let + cleanedArgs = builtins.removeAttrs args [ "pname" "name" "version" "src" "meta" "extraBuildInputs" ]; +in stdenv.mkDerivation (rec { + inherit pname version src meta; + + # Don't remove runtime deps. + dontPatchELF = true; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ]; + buildInputs = extraBuildInputs ++ (with xorg; [ + libXi + libXcursor + libXdamage + libXrandr + libXcomposite + libXext + libXfixes + libXrender + libX11 + libXtst + libXScrnSaver + ]) ++ [ + mesa #libgbm + gtk3 + atk + glib + pango + gdk-pixbuf + cairo + freetype + fontconfig + dbus + nss + nspr + alsa-lib + cups + expat + stdenv.cc.cc + ]; + runtimeDependencies = [ libglvnd stdenv.cc.cc.lib (lib.getLib udev) libnotify libappindicator-gtk3 ]; + + unpackPhase = "dpkg-deb -x $src ."; + + installPhase = '' + mkdir -p $out/bin + cp -r opt $out + ln -s $out/opt/${name}/${pname} $out/bin + + # Provide desktop item and icon. + cp -r usr/share $out + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace /opt/${name}/${pname} ${pname} + ''; + + dontWrapGApps = true; + + postFixup = '' + # make xdg-open overrideable at runtime + wrapProgram $out/opt/${name}/${pname} \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDependencies}" \ + --suffix PATH : ${xdg-utils}/bin \ + "''${gappsWrapperArgs[@]}" + ''; +} // cleanedArgs) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix new file mode 100644 index 000000000000..fdfbbc5b275b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl +, guile, pkg-config, glib, loudmouth, gmp, libidn, readline, libtool +, libunwind, ncurses, curl, jansson, texinfo +, argp-standalone }: +stdenv.mkDerivation rec { + pname = "freetalk"; + version = "4.2"; + + src = fetchurl { + url = "mirror://gnu/freetalk/freetalk-${version}.tar.gz"; + hash = "sha256-u1tPKacGry+JGYeAIgDia3N7zs5EM4FyQZdV8e7htYA="; + }; + + nativeBuildInputs = [ pkg-config texinfo ]; + buildInputs = [ + guile glib loudmouth gmp libidn readline libtool + libunwind ncurses curl jansson + ] ++ lib.optionals stdenv.isDarwin [ + argp-standalone + ]; + + env.NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-largp"; + + meta = with lib; { + description = "Console XMPP client"; + license = licenses.gpl3Plus ; + maintainers = with maintainers; [ raskin ]; + platforms = platforms.unix; + downloadPage = "https://www.gnu.org/software/freetalk/"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix new file mode 100644 index 000000000000..458577b8d053 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix @@ -0,0 +1,92 @@ +{ lib, fetchurl, fetchFromGitLab, gettext, wrapGAppsHook + +# Native dependencies +, python3, gtk3, gobject-introspection, gnome +, gtksourceview4 +, glib-networking + +# Test dependencies +, xvfb-run, dbus + +# Optional dependencies +, enableJingle ? true, farstream, gstreamer, gst-plugins-base, gst-libav, gst-plugins-good, libnice +, enableE2E ? true +, enableSecrets ? true, libsecret +, enableRST ? true, docutils +, enableSpelling ? true, gspell +, enableUPnP ? true, gupnp-igd +, enableAppIndicator ? true, libappindicator-gtk3 +, extraPythonPackages ? ps: [] +}: + +python3.pkgs.buildPythonApplication rec { + pname = "gajim"; + version = "1.8.4"; + + src = fetchurl { + url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz"; + hash = "sha256-WPzth7HOAbPVJpvN8zSZJGUzsBtACNlwHrHhDPlOScU="; + }; + + format = "pyproject"; + + buildInputs = [ + 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 + ++ lib.optional enableSpelling gspell + ++ lib.optional enableUPnP gupnp-igd + ++ lib.optional enableAppIndicator libappindicator-gtk3; + + nativeBuildInputs = [ + gettext wrapGAppsHook gobject-introspection + ]; + + dontWrapGApps = true; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + propagatedBuildInputs = with python3.pkgs; [ + nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools packaging gssapi + omemo-dr qrcode + ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ] + ++ lib.optional enableRST docutils + ++ extraPythonPackages python3.pkgs; + + nativeCheckInputs = [ xvfb-run dbus ]; + + preBuild = '' + python pep517build/build_metadata.py -o dist/metadata + ''; + + postInstall = '' + python pep517build/install_metadata.py dist/metadata --prefix=$out + ''; + + checkPhase = '' + xvfb-run dbus-run-session \ + --config-file=${dbus}/share/dbus-1/session.conf \ + ${python3.interpreter} -m unittest discover -s test/gui -v + ${python3.interpreter} -m unittest discover -s test/common -v + ''; + + # test are broken in 1.7.3, 1.8.0 + doCheck = false; + + # necessary for wrapGAppsHook + strictDeps = false; + + meta = { + homepage = "http://gajim.org/"; + description = "Jabber client written in PyGTK"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ raskin abbradar ]; + downloadPage = "http://gajim.org/download/"; + platforms = lib.platforms.linux; + mainProgram = "gajim"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix new file mode 100644 index 000000000000..d1947825c42b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, buildGoModule, fetchFromGitHub, nixosTests, olm }: + +buildGoModule { + pname = "go-neb"; + version = "unstable-2021-07-21"; + src = fetchFromGitHub { + owner = "matrix-org"; + repo = "go-neb"; + rev = "8916c80f8ce1732f64b50f9251242ca189082e76"; + sha256 = "sha256-kuH4vbvS4G1bczxUdY4bd4oL4pIZzuueUxdEp4xuzJM="; + }; + + subPackages = [ "." ]; + + buildInputs = [ olm ]; + + vendorHash = "sha256-5Vg7aUkqiFIQuxmsDOJjvXoeA5NjMoBoD0XBhC+o4GA="; + + doCheck = false; + + passthru.tests.go-neb = nixosTests.go-neb; + + meta = with lib; { + broken = stdenv.isDarwin; + description = "Extensible matrix bot written in Go"; + homepage = "https://github.com/matrix-org/go-neb"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa maralorn ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix new file mode 100644 index 000000000000..d7fd40029843 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix @@ -0,0 +1,57 @@ +{ lib +, stdenv +, substituteAll +, buildGoModule +, fetchFromGitHub +, makeDesktopItem +, makeWrapper +, libnotify +, olm +, pulseaudio +, sound-theme-freedesktop +}: + +buildGoModule rec { + pname = "gomuks"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "tulir"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-gLyjqmGZudj8PmsYUGXHOjetZzi6u5CFI7Y50y2XAzk="; + }; + + vendorHash = "sha256-FmQJG6hv0YPyHVjZ/DvkQExrGLc1hjoiPS59MnqG2gU="; + + doCheck = false; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ olm ]; + + postInstall = '' + cp -r ${ + makeDesktopItem { + name = "net.maunium.gomuks.desktop"; + exec = "@out@/bin/gomuks"; + terminal = true; + desktopName = "Gomuks"; + genericName = "Matrix client"; + categories = [ "Network" "Chat" ]; + comment = meta.description; + } + }/* $out/ + substituteAllInPlace $out/share/applications/* + wrapProgram $out/bin/gomuks \ + --prefix PATH : "${lib.makeBinPath (lib.optionals stdenv.isLinux [ libnotify pulseaudio ])}" \ + --set-default GOMUKS_SOUND_NORMAL "${sound-theme-freedesktop}/share/sounds/freedesktop/stereo/message-new-instant.oga" \ + --set-default GOMUKS_SOUND_CRITICAL "${sound-theme-freedesktop}/share/sounds/freedesktop/stereo/complete.oga" + ''; + + meta = with lib; { + homepage = "https://maunium.net/go/gomuks/"; + description = "A terminal based Matrix client written in Go"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ chvp emily ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/Cargo.lock b/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/Cargo.lock new file mode 100644 index 000000000000..71697cfc7df2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/Cargo.lock @@ -0,0 +1,5611 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +dependencies = [ + "generic-array", +] + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if", + "cipher 0.3.0", + "cpufeatures", + "ctr 0.8.0", + "opaque-debug", +] + +[[package]] +name = "aes" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if", + "cipher 0.4.4", + "cpufeatures", + "zeroize", +] + +[[package]] +name = "aes-gcm" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f" +dependencies = [ + "aead 0.4.3", + "aes 0.7.5", + "cipher 0.3.0", + "ctr 0.7.0", + "ghash 0.4.4", + "subtle", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" +dependencies = [ + "aead 0.5.2", + "aes 0.8.3", + "cipher 0.4.4", + "ctr 0.9.2", + "polyval 0.6.1", + "subtle", + "zeroize", +] + +[[package]] +name = "ahash" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstream" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arboard" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aafb29b107435aa276664c1db8954ac27a6e105cdad3c88287a199eb0e313c08" +dependencies = [ + "clipboard-win", + "core-graphics", + "image", + "log", + "objc", + "objc-foundation", + "objc_id", + "parking_lot 0.12.1", + "thiserror", + "winapi", + "wl-clipboard-rs", + "x11rb", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "async-broadcast" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +dependencies = [ + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +dependencies = [ + "concurrent-queue", + "event-listener 4.0.0", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +dependencies = [ + "async-lock 3.2.0", + "async-task", + "concurrent-queue", + "fastrand 2.0.1", + "futures-lite 2.1.0", + "slab", +] + +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" +dependencies = [ + "async-lock 3.2.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.1.0", + "parking", + "polling 3.3.1", + "rustix 0.38.28", + "slab", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + +[[package]] +name = "async-lock" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +dependencies = [ + "event-listener 4.0.0", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.28", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "async-signal" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +dependencies = [ + "async-io 2.2.2", + "async-lock 2.8.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.28", + "signal-hook-registry", + "slab", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-task" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" + +[[package]] +name = "async-trait" +version = "0.1.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "async-tungstenite" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e9efbe14612da0a19fb983059a0b621e9cf6225d7018ecab4f9988215540dc" +dependencies = [ + "futures-io", + "futures-util", + "log", + "pin-project-lite", + "rustls-native-certs", + "tokio", + "tokio-rustls", + "tungstenite", +] + +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "atomic-write-file" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436" +dependencies = [ + "nix 0.27.1", + "rand", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] + +[[package]] +name = "blake3" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-modes" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cb03d1bed155d89dce0f845b7899b18a9a163e148fd004e1c28421a783e2d8e" +dependencies = [ + "block-padding 0.2.1", + "cipher 0.3.0", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +dependencies = [ + "async-channel", + "async-lock 3.2.0", + "async-task", + "fastrand 2.0.1", + "futures-io", + "futures-lite 2.1.0", + "piper", + "tracing", +] + +[[package]] +name = "bstr" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +dependencies = [ + "memchr", + "regex-automata 0.4.3", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "bytecount" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher 0.4.4", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher 0.4.4", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead 0.5.2", + "chacha20", + "cipher 0.4.4", + "poly1305", + "zeroize", +] + +[[package]] +name = "checked_int_cast" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" + +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.48.5", +] + +[[package]] +name = "ciborium" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" + +[[package]] +name = "ciborium-ll" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "clap" +version = "4.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "clap_lex" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + +[[package]] +name = "cmake" +version = "0.1.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" +dependencies = [ + "cc", +] + +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "concurrent-queue" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "console" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "windows-sys 0.45.0", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "futures", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + +[[package]] +name = "critical-section" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" + +[[package]] +name = "crossbeam-channel" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.9.0", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bcf5bdbfdd6030fb4a1c497b5d5fc5921aa2f60d359a17e249c0e6df3de153" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossterm" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" +dependencies = [ + "bitflags 2.4.1", + "crossterm_winapi", + "futures-core", + "libc", + "mio", + "parking_lot 0.12.1", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" +dependencies = [ + "cipher 0.3.0", +] + +[[package]] +name = "ctr" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +dependencies = [ + "cipher 0.3.0", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher 0.4.4", +] + +[[package]] +name = "curve25519-dalek" +version = "4.0.0" +source = "git+https://github.com/signalapp/curve25519-dalek?tag=signal-curve25519-4.0.0#463e5c7cba32561ffee8a281c4455ff3c25660d4" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "platforms", + "rustc_version", + "serde", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.0" +source = "git+https://github.com/signalapp/curve25519-dalek?tag=signal-curve25519-4.0.0#463e5c7cba32561ffee8a281c4455ff3c25660d4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "data-encoding" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive-new" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading", +] + +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +dependencies = [ + "serde", +] + +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "emojis" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee61eb945bff65ee7d19d157d39c67c33290ff0742907413fd5eefd29edc979" +dependencies = [ + "phf", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "enumflags2" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "env_logger" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.0", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fdeflate" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "fiat-crypto" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "finl_unicode" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "futures-core", + "futures-sink", + "spin 0.9.8", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + +[[package]] +name = "futures" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-executor" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot 0.12.1", +] + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" +dependencies = [ + "fastrand 2.0.1", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "futures-sink" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "gethostname" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "getopts" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "ghash" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +dependencies = [ + "opaque-debug", + "polyval 0.5.3", +] + +[[package]] +name = "ghash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +dependencies = [ + "opaque-debug", + "polyval 0.6.1", + "zeroize", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gurk" +version = "0.4.0" +dependencies = [ + "aho-corasick 0.7.20", + "anyhow", + "arboard", + "async-trait", + "base64 0.13.1", + "chrono", + "clap", + "criterion", + "crossterm", + "derivative", + "dirs", + "emojis", + "futures-channel", + "hex", + "hex-literal", + "hostname", + "image", + "insta", + "itertools 0.10.5", + "log-panics", + "mime_guess", + "notify-rust", + "once_cell", + "opener", + "phonenumber", + "postcard", + "presage", + "presage-store-sled", + "prost 0.10.4", + "qr2term", + "quickcheck", + "quickcheck_macros", + "ratatui", + "rayon", + "regex", + "regex-automata 0.1.10", + "scopeguard", + "serde", + "serde_json", + "sha2", + "sqlx", + "tempfile", + "textwrap", + "thiserror", + "thread_local", + "tokio", + "tokio-stream", + "toml", + "tracing", + "tracing-appender", + "tracing-subscriber", + "unicode-width", + "uuid", + "whoami", +] + +[[package]] +name = "half" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashlink" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.5", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version", + "serde", + "spin 0.9.8", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.5", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "image" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", + "png", + "tiff", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "indoc" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding 0.3.3", + "generic-array", +] + +[[package]] +name = "insta" +version = "1.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc" +dependencies = [ + "console", + "lazy_static", + "linked-hash-map", + "serde", + "similar", + "yaml-rust", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi", + "rustix 0.38.28", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" + +[[package]] +name = "js-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] + +[[package]] +name = "libc" +version = "0.2.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "libloading" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall 0.4.1", +] + +[[package]] +name = "libsignal-protocol" +version = "0.1.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.32.0#72f046fe19a5eac22c7abcf9917956f240759364" +dependencies = [ + "aes 0.8.3", + "aes-gcm-siv", + "arrayref", + "async-trait", + "ctr 0.9.2", + "curve25519-dalek", + "displaydoc", + "hex", + "hkdf", + "hmac", + "itertools 0.10.5", + "log", + "num_enum", + "pqcrypto-kyber", + "pqcrypto-traits", + "prost 0.9.0", + "prost-build 0.9.0", + "rand", + "sha2", + "signal-crypto", + "static_assertions", + "subtle", + "thiserror", + "uuid", + "x25519-dalek", +] + +[[package]] +name = "libsignal-service" +version = "0.1.0" +source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=0a7987e#0a7987e59bbb9fb110e899ac09e8efb6e28bc46d" +dependencies = [ + "aes 0.7.5", + "aes-gcm", + "async-trait", + "base64 0.13.1", + "bincode", + "block-modes", + "bytes", + "chrono", + "derivative", + "futures", + "hex", + "hkdf", + "hmac", + "libsignal-protocol", + "log", + "phonenumber", + "prost 0.10.4", + "prost-build 0.10.4", + "rand", + "serde", + "serde_json", + "sha2", + "thiserror", + "url", + "uuid", + "zkgroup", +] + +[[package]] +name = "libsignal-service-hyper" +version = "0.1.0" +source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=0a7987e#0a7987e59bbb9fb110e899ac09e8efb6e28bc46d" +dependencies = [ + "async-trait", + "async-tungstenite", + "bytes", + "futures", + "headers", + "hyper", + "hyper-rustls", + "hyper-timeout", + "libsignal-service", + "log", + "mpart-async", + "rustls-pemfile 0.3.0", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-rustls", + "url", +] + +[[package]] +name = "libsqlite3-sys" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "log-panics" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f9dd8546191c1850ecf67d22f5ff00a935b890d0e84713159a55495cc2ac5f" +dependencies = [ + "log", +] + +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "mac-notification-sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51fca4d74ff9dbaac16a01b924bc3693fa2bba0862c2c633abc73f9a8ea21f64" +dependencies = [ + "cc", + "dirs-next", + "objc-foundation", + "objc_id", + "time", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "mpart-async" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ea6ab2359d45d2401bd7ba5ce5a67582f2abb872ea9ec17f78efb6ac3591864" +dependencies = [ + "bytes", + "futures-core", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "rand", + "thiserror", + "tokio", + "tokio-util", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", + "pin-utils", +] + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.4.1", + "cfg-if", + "libc", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "notify-rust" +version = "4.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "827c5edfa80235ded4ab3fe8e9dc619b4f866ef16fe9b1c6b8a7f8692c0f2226" +dependencies = [ + "log", + "mac-notification-sys", + "serde", + "tauri-winrt-notification", + "zbus", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oncemutex" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d11de466f4a3006fe8a5e7ec84e93b79c70cb992ae0aa0eb631ad2df8abfe2" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "opener" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "293c15678e37254c15bd2f092314abb4e51d7fdde05c2021279c12631b54f005" +dependencies = [ + "bstr", + "winapi", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "os_pipe" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest", + "hmac", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phonenumber" +version = "0.3.3+8.13.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "635f3e6288e4f01c049d89332a031bd74f25d64b6fb94703ca966e819488cd06" +dependencies = [ + "bincode", + "either", + "fnv", + "itertools 0.11.0", + "lazy_static", + "nom", + "quick-xml 0.28.2", + "regex", + "regex-cache", + "serde", + "serde_derive", + "strum 0.24.1", + "thiserror", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.1", + "futures-io", +] + +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + +[[package]] +name = "plotters" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" + +[[package]] +name = "plotters-svg" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "png" +version = "0.17.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "poksho" +version = "0.7.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.32.0#72f046fe19a5eac22c7abcf9917956f240759364" +dependencies = [ + "curve25519-dalek", + "hmac", + "sha2", + "subtle", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +dependencies = [ + "cfg-if", + "concurrent-queue", + "pin-project-lite", + "rustix 0.38.28", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash 0.5.1", +] + +[[package]] +name = "polyval" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash 0.4.0", +] + +[[package]] +name = "polyval" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash 0.5.1", +] + +[[package]] +name = "postcard" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +dependencies = [ + "cobs", + "embedded-io", + "heapless", + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pqcrypto-internals" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9d34bec6abe2283e6de7748b68b292d1ffa2203397e3e71380ff8418a49fb46" +dependencies = [ + "cc", + "dunce", + "getrandom", + "libc", +] + +[[package]] +name = "pqcrypto-kyber" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9d9695c19e525d5366c913562a331fbeef9a2ad801d9a9ded61a0e4c2fe0fb" +dependencies = [ + "cc", + "glob", + "libc", + "pqcrypto-internals", + "pqcrypto-traits", +] + +[[package]] +name = "pqcrypto-traits" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94e851c7654eed9e68d7d27164c454961a616cf8c203d500607ef22c737b51bb" + +[[package]] +name = "presage" +version = "0.6.0-dev" +source = "git+https://github.com/whisperfish/presage?rev=6d7003f#6d7003fed1fa0397d42ac257ed49573d01ca6e93" +dependencies = [ + "base64 0.21.5", + "futures", + "libsignal-service", + "libsignal-service-hyper", + "log", + "parking_lot 0.11.2", + "rand", + "serde", + "serde_json", + "sha2", + "thiserror", + "tokio", + "url", +] + +[[package]] +name = "presage-store-cipher" +version = "0.1.0" +source = "git+https://github.com/whisperfish/presage?rev=6d7003f#6d7003fed1fa0397d42ac257ed49573d01ca6e93" +dependencies = [ + "blake3", + "chacha20poly1305", + "hmac", + "pbkdf2", + "rand", + "serde", + "serde_json", + "sha2", + "thiserror", + "zeroize", +] + +[[package]] +name = "presage-store-sled" +version = "0.6.0-dev" +source = "git+https://github.com/whisperfish/presage?rev=6d7003f#6d7003fed1fa0397d42ac257ed49573d01ca6e93" +dependencies = [ + "async-trait", + "base64 0.12.3", + "fs_extra", + "log", + "presage", + "presage-store-cipher", + "prost 0.10.4", + "prost-build 0.10.4", + "quickcheck_macros", + "serde", + "serde_json", + "sha2", + "sled", + "thiserror", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +dependencies = [ + "bytes", + "prost-derive 0.9.0", +] + +[[package]] +name = "prost" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" +dependencies = [ + "bytes", + "prost-derive 0.10.1", +] + +[[package]] +name = "prost-build" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +dependencies = [ + "bytes", + "heck 0.3.3", + "itertools 0.10.5", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost 0.9.0", + "prost-types 0.9.0", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-build" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae5a4388762d5815a9fc0dea33c56b021cdc8dde0c55e0c9ca57197254b0cab" +dependencies = [ + "bytes", + "cfg-if", + "cmake", + "heck 0.4.1", + "itertools 0.10.5", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost 0.10.4", + "prost-types 0.10.1", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "prost-derive" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "prost-types" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +dependencies = [ + "bytes", + "prost 0.9.0", +] + +[[package]] +name = "prost-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" +dependencies = [ + "bytes", + "prost 0.10.4", +] + +[[package]] +name = "pulldown-cmark" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +dependencies = [ + "bitflags 1.3.2", + "getopts", + "memchr", + "unicase", +] + +[[package]] +name = "qr2term" +version = "0.3.1" +source = "git+https://github.com/boxdot/qr2term-rs?rev=ed8ae7f#ed8ae7fe3a115578820fd54955f8aac8e4df374a" +dependencies = [ + "crossterm", + "qrcode", +] + +[[package]] +name = "qrcode" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d2f1455f3630c6e5107b4f2b94e74d76dea80736de0981fd27644216cff57f" +dependencies = [ + "checked_int_cast", +] + +[[package]] +name = "quick-xml" +version = "0.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" +dependencies = [ + "memchr", +] + +[[package]] +name = "quickcheck" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" +dependencies = [ + "env_logger", + "log", + "rand", +] + +[[package]] +name = "quickcheck_macros" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "ratatui" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e2e4cd95294a85c3b4446e63ef054eea43e0205b1fd60120c16b74ff7ff96ad" +dependencies = [ + "bitflags 2.4.1", + "cassowary", + "crossterm", + "indoc", + "itertools 0.11.0", + "paste", + "strum 0.25.0", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick 1.1.2", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick 1.1.2", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-cache" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f7b62d69743b8b94f353b6b7c3deb4c5582828328bcb8d5fedf214373808793" +dependencies = [ + "lru-cache", + "oncemutex", + "regex", + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "ring" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +dependencies = [ + "cc", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted", + "windows-sys 0.48.0", +] + +[[package]] +name = "rsa" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core", + "signature", + "spki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.5", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" + +[[package]] +name = "serde" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-crypto" +version = "0.1.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.32.0#72f046fe19a5eac22c7abcf9917956f240759364" +dependencies = [ + "aes 0.8.3", + "cbc", + "ctr 0.9.2", + "displaydoc", + "ghash 0.5.0", + "hmac", + "sha1", + "sha2", + "subtle", + "thiserror", +] + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "similar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "sled" +version = "0.34.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935" +dependencies = [ + "crc32fast", + "crossbeam-epoch", + "crossbeam-utils", + "fs2", + "fxhash", + "libc", + "log", + "parking_lot 0.11.2", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sqlformat" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" +dependencies = [ + "itertools 0.12.0", + "nom", + "unicode_categories", +] + +[[package]] +name = "sqlx" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" +dependencies = [ + "ahash", + "atoi", + "byteorder", + "bytes", + "chrono", + "crc", + "crossbeam-queue", + "dotenvy", + "either", + "event-listener 2.5.3", + "futures-channel", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashlink", + "hex", + "indexmap", + "log", + "memchr", + "once_cell", + "paste", + "percent-encoding", + "rustls", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlformat", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "url", + "uuid", + "webpki-roots", +] + +[[package]] +name = "sqlx-macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn 1.0.109", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841" +dependencies = [ + "atomic-write-file", + "dotenvy", + "either", + "heck 0.4.1", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2", + "sqlx-core", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", + "syn 1.0.109", + "tempfile", + "tokio", + "url", +] + +[[package]] +name = "sqlx-mysql" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4" +dependencies = [ + "atoi", + "base64 0.21.5", + "bitflags 2.4.1", + "byteorder", + "bytes", + "chrono", + "crc", + "digest", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "percent-encoding", + "rand", + "rsa", + "serde", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "uuid", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24" +dependencies = [ + "atoi", + "base64 0.21.5", + "bitflags 2.4.1", + "byteorder", + "chrono", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "rand", + "serde", + "serde_json", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "uuid", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490" +dependencies = [ + "atoi", + "chrono", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "sqlx-core", + "tracing", + "url", + "urlencoding", + "uuid", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "stringprep" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6" +dependencies = [ + "finl_unicode", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros 0.24.3", +] + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.3", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.41", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tar" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tauri-winrt-notification" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "006851c9ccefa3c38a7646b8cec804bb429def3da10497bfa977179869c3e8e2" +dependencies = [ + "quick-xml 0.30.0", + "windows", +] + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if", + "fastrand 2.0.1", + "redox_syscall 0.4.1", + "rustix 0.38.28", + "windows-sys 0.48.0", +] + +[[package]] +name = "textwrap" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiff" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + +[[package]] +name = "time" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +dependencies = [ + "deranged", + "itoa", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +dependencies = [ + "time-core", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "socket2 0.5.5", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tree_magic_mini" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91adfd0607cacf6e4babdb870e9bec4037c1c4b151cfd279ccefc5e0c7feaa6d" +dependencies = [ + "bytecount", + "fnv", + "lazy_static", + "nom", + "once_cell", + "petgraph", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand", + "rustls", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.0", + "tempfile", + "winapi", +] + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + +[[package]] +name = "universal-hash" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", + "serde", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "waker-fn" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" + +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.41", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" + +[[package]] +name = "wayland-backend" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4" +dependencies = [ + "cc", + "downcast-rs", + "nix 0.26.4", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3" +dependencies = [ + "bitflags 2.4.1", + "nix 0.26.4", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c" +dependencies = [ + "bitflags 2.4.1", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +dependencies = [ + "bitflags 2.4.1", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c" +dependencies = [ + "proc-macro2", + "quick-xml 0.30.0", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af" +dependencies = [ + "dlib", + "log", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" + +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.28", +] + +[[package]] +name = "whoami" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-wsapoll" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +dependencies = [ + "windows-core", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" +dependencies = [ + "memchr", +] + +[[package]] +name = "wl-clipboard-rs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57af79e973eadf08627115c73847392e6b766856ab8e3844a59245354b23d2fa" +dependencies = [ + "derive-new", + "libc", + "log", + "nix 0.26.4", + "os_pipe", + "tempfile", + "thiserror", + "tree_magic_mini", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", +] + +[[package]] +name = "x11rb" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a" +dependencies = [ + "gethostname", + "nix 0.26.4", + "winapi", + "winapi-wsapoll", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc" +dependencies = [ + "nix 0.26.4", +] + +[[package]] +name = "x25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +dependencies = [ + "curve25519-dalek", + "rand_core", + "serde", + "zeroize", +] + +[[package]] +name = "xattr" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7dae5072fe1f8db8f8d29059189ac175196e410e40ba42d5d4684ae2f750995" +dependencies = [ + "libc", + "linux-raw-sys 0.4.12", + "rustix 0.38.28", +] + +[[package]] +name = "xdg-home" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" +dependencies = [ + "nix 0.26.4", + "winapi", +] + +[[package]] +name = "xflags" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d9e15fbb3de55454b0106e314b28e671279009b363e6f1d8e39fdc3bf048944" +dependencies = [ + "xflags-macros", +] + +[[package]] +name = "xflags-macros" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "672423d4fea7ffa2f6c25ba60031ea13dc6258070556f125cc4d790007d4a155" + +[[package]] +name = "xshell" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2107fe03e558353b4c71ad7626d58ed82efaf56c54134228608893c77023ad" +dependencies = [ + "xshell-macros", +] + +[[package]] +name = "xshell-macros" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e2c411759b501fb9501aac2b1b2d287a6e93e5bdcf13c25306b23e1b716dd0e" + +[[package]] +name = "xtask" +version = "0.1.0" +dependencies = [ + "anyhow", + "flate2", + "pulldown-cmark", + "semver", + "tar", + "xflags", + "xshell", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "zbus" +version = "3.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "byteorder", + "derivative", + "enumflags2", + "event-listener 2.5.3", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.26.4", + "once_cell", + "ordered-stream", + "rand", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tracing", + "uds_windows", + "winapi", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "3.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.7.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "zkcredential" +version = "0.1.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.32.0#72f046fe19a5eac22c7abcf9917956f240759364" +dependencies = [ + "curve25519-dalek", + "displaydoc", + "lazy_static", + "poksho", + "serde", +] + +[[package]] +name = "zkgroup" +version = "0.9.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.32.0#72f046fe19a5eac22c7abcf9917956f240759364" +dependencies = [ + "aes-gcm-siv", + "bincode", + "curve25519-dalek", + "displaydoc", + "hex", + "lazy_static", + "libsignal-protocol", + "poksho", + "serde", + "sha2", + "signal-crypto", + "subtle", + "uuid", + "zkcredential", +] + +[[package]] +name = "zvariant" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix new file mode 100644 index 000000000000..352fa1a511cd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix @@ -0,0 +1,50 @@ +{ stdenv +, lib +, protobuf +, rustPlatform +, fetchFromGitHub +, Cocoa +, pkgsBuildHost +}: + +rustPlatform.buildRustPackage rec { + pname = "gurk-rs"; + version = "0.4.2"; + + src = fetchFromGitHub { + owner = "boxdot"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-UTjTXUc0W+vlO77ilveAy0HWF5KSKbDnrg5ewTyuTdA="; + }; + + postPatch = '' + rm .cargo/config.toml + ''; + + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "libsignal-protocol-0.1.0" = "sha256-FCrJO7porlY5FrwZ2c67UPd4tgN7cH2/3DTwfPjihwM="; + "libsignal-service-0.1.0" = "sha256-OWLtaxldKgYPP/aJuWezNkNN0990l3RtDWK38R1fL90="; + "curve25519-dalek-4.0.0" = "sha256-KUXvYXeVvJEQ/+dydKzXWCZmA2bFa2IosDzaBL6/Si0="; + "presage-0.6.0-dev" = "sha256-65YhxMAAFsnOprBWiB0uH/R9iITt+EYn+kMVjAwTgOQ="; + "qr2term-0.3.1" = "sha256-U8YLouVZTtDwsvzZiO6YB4Pe75RXGkZXOxHCQcCOyT8="; + }; + }; + + nativeBuildInputs = [ protobuf ]; + + buildInputs = lib.optionals stdenv.isDarwin [ Cocoa ]; + + NIX_LDFLAGS = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ "-framework" "AppKit" ]; + + PROTOC = "${pkgsBuildHost.protobuf}/bin/protoc"; + + meta = with lib; { + description = "Signal Messenger client for terminal"; + homepage = "https://github.com/boxdot/gurk-rs"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/hamsket/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/hamsket/default.nix new file mode 100644 index 000000000000..225a5669469c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/hamsket/default.nix @@ -0,0 +1,47 @@ +{ lib +, appimageTools +, fetchurl +, makeDesktopItem +}: + +let + pname = "hamsket"; + version = "0.6.5"; + + src = fetchurl { + url = "https://github.com/TheGoddessInari/hamsket/releases/download/nightly/Hamsket-${version}.AppImage"; + sha256 = "sha256-r85ZwcalBd/nCIBxOaQk7XClxj7VZtxwky4eWWm2tZ8="; + }; + + desktopItem = (makeDesktopItem { + desktopName = "Hamsket"; + name = pname; + exec = pname; + icon = pname; + categories = [ "Network" ]; + }); + + appimageContents = appimageTools.extractType2 { + inherit pname version src; + }; + +in +appimageTools.wrapType2 { + inherit pname version src; + + extraInstallCommands = '' + mkdir -p $out/share/applications $out/share/icons/hicolor/256x256/apps + ln -sf hamsket-${version} $out/bin/${pname} + install -Dm644 ${appimageContents}/usr/share/icons/hicolor/256x256/apps/hamsket*.png $out/share/icons/hicolor/256x256/apps/${pname}.png + install -Dm644 ${desktopItem}/share/applications/* $out/share/applications + ''; + + meta = { + description = "A free and open source messaging and emailing app that combines common web applications into one"; + homepage = "https://github.com/TheGoddessInari/hamsket"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ nova-madeline ]; + platforms = [ "x86_64-linux" ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/hydrogen-web/unwrapped.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/hydrogen-web/unwrapped.nix new file mode 100644 index 000000000000..2debdc6140d2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/hydrogen-web/unwrapped.nix @@ -0,0 +1,65 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchYarnDeps +, yarn +, prefetch-yarn-deps +, nodejs +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "hydrogen-web"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "vector-im"; + repo = finalAttrs.pname; + rev = "v${finalAttrs.version}"; + hash = "sha256-u8Yex3r7EZH+JztQHJbfncYeyyl6hgb1ZNFIg//wcb0="; + }; + + offlineCache = fetchYarnDeps { + yarnLock = finalAttrs.src + "/yarn.lock"; + hash = "sha256-N9lUAhfYLlEAIaWSNS3Ecq+aBTz+f7Z22Sclwj9rp6w="; + }; + + nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs ]; + + configurePhase = '' + runHook preConfigure + + export HOME=$PWD/tmp + mkdir -p $HOME + + fixup-yarn-lock yarn.lock + yarn config --offline set yarn-offline-mirror $offlineCache + yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive + patchShebangs node_modules + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + yarn build --offline + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + cp -R target $out + + runHook postInstall + ''; + + meta = { + description = "Lightweight matrix client with legacy and mobile browser support"; + homepage = "https://github.com/vector-im/hydrogen-web"; + maintainers = lib.teams.matrix.members; + license = lib.licenses.asl20; + platforms = lib.platforms.all; + }; +}) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/hydrogen-web/wrapper.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/hydrogen-web/wrapper.nix new file mode 100644 index 000000000000..9ea22e864f43 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/hydrogen-web/wrapper.nix @@ -0,0 +1,26 @@ +{ stdenv +, jq +, hydrogen-web-unwrapped +, conf ? { } +}: + +if (conf == { }) then hydrogen-web-unwrapped else +stdenv.mkDerivation { + pname = "${hydrogen-web-unwrapped.pname}-wrapped"; + inherit (hydrogen-web-unwrapped) version meta; + + dontUnpack = true; + + nativeBuildInputs = [ jq ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out + ln -s ${hydrogen-web-unwrapped}/* $out + rm $out/config.json + jq -s '.[0] * $conf' "${hydrogen-web-unwrapped}/config.json" --argjson "conf" '${builtins.toJSON conf}' > "$out/config.json" + + runHook postInstall + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/iamb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/iamb/default.nix new file mode 100644 index 000000000000..ea8351c74f66 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/iamb/default.nix @@ -0,0 +1,39 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, installShellFiles +, darwin +, stdenv +}: + +rustPlatform.buildRustPackage rec { + pname = "iamb"; + version = "0.0.8"; + + src = fetchFromGitHub { + owner = "ulyssa"; + repo = "iamb"; + rev = "v${version}"; + hash = "sha256-Mt4/UWySC6keoNvb1VDCVPoK24F0rmd0R47ZRPADkaw="; + }; + + cargoHash = "sha256-UbmeEcmUr3zx05Hk36tjsl0Y9ay7DNM1u/3lPqlXN2o="; + + nativeBuildInputs = [ installShellFiles ]; + buildInputs = lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.AppKit + ]; + + postInstall = '' + OUT_DIR=$releaseDir/build/iamb-*/out + installManPage $OUT_DIR/iamb.{1,5} + ''; + + meta = with lib; { + description = "A Matrix client for Vim addicts"; + homepage = "https://github.com/ulyssa/iamb"; + changelog = "https://github.com/ulyssa/iamb/releases/tag/${src.rev}"; + license = licenses.asl20; + maintainers = with maintainers; [ meain ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix new file mode 100644 index 000000000000..2c86b3e86fa8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix @@ -0,0 +1,53 @@ +{ lib, fetchFromGitHub, ocamlPackages }: + +with ocamlPackages; + +buildDunePackage rec { + pname = "jackline"; + version = "unstable-2023-03-09"; + + minimalOCamlVersion = "4.08"; + + src = fetchFromGitHub { + owner = "hannesm"; + repo = "jackline"; + rev = "a7acd19bd8141b842ac69b05146d9a63e729230d"; + hash = "sha256-AhiFfZkDit9tnGenETc3A1hHqWN+csiS2bVjsGNaHf8="; + }; + + nativeBuildInpts = [ + ppx_sexp_conv + ppx_deriving + ]; + + buildInputs = [ + erm_xmpp + tls + mirage-crypto-pk + x509 + domain-name + lwt + otr + astring + ptime + notty + sexplib + hex + uchar + uucp + uuseg + uutf + dns-client + cstruct + base64 + happy-eyeballs-lwt + ppx_sexp_conv + ]; + + meta = with lib; { + homepage = "https://github.com/hannesm/jackline"; + description = "minimalistic secure XMPP client in OCaml"; + license = licenses.bsd2; + maintainers = with maintainers; [ sternenseemann ]; + }; +} 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/config/pjsip_patches b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches new file mode 100644 index 000000000000..5b9579f8f94e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/config/pjsip_patches @@ -0,0 +1 @@ +0009-add-config-site.patch diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix new file mode 100644 index 000000000000..7acbd1b3b393 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix @@ -0,0 +1,256 @@ +{ stdenv +, lib +, pkg-config +, fetchFromGitLab +, gitUpdater +, ffmpeg_6 + + # for daemon +, autoreconfHook +, perl # for pod2man +, alsa-lib +, asio +, dbus +, sdbus-cpp +, fmt +, gmp +, gnutls +, http-parser +, jack +, jsoncpp +, libarchive +, libgit2 +, libnatpmp +, libpulseaudio +, libupnp +, yaml-cpp +, msgpack-cxx +, openssl +, restinio +, secp256k1 +, speex +, udev +, webrtc-audio-processing +, zlib + + # for client +, cmake +, networkmanager # for libnm +, python3 +, qttools # for translations +, wrapQtAppsHook +, libnotify +, qt5compat +, qtbase +, qtdeclarative +, qrencode +, qtmultimedia +, qtnetworkauth +, qtpositioning +, qtsvg +, qtwebengine +, qtwebchannel +, wrapGAppsHook +, withWebengine ? true + + # for pjsip +, fetchFromGitHub +, pjsip + + # for opendht +, opendht +}: + +let + readLinesToList = with builtins; file: filter (s: isString s && stringLength s > 0) (split "\n" (readFile file)); +in +stdenv.mkDerivation rec { + pname = "jami"; + version = "20231201.0"; + + src = fetchFromGitLab { + domain = "git.jami.net"; + owner = "savoirfairelinux"; + repo = "jami-client-qt"; + rev = "stable/${version}"; + hash = "sha256-A38JwjqdQVy03d738p2tpTFA6EWRSPNiesS5wZfti7Y="; + fetchSubmodules = true; + }; + + pjsip-jami = pjsip.overrideAttrs (old: + let + patch-src = src + "/daemon/contrib/src/pjproject/"; + in + rec { + version = "311bd018fc07aaf62d4c2d2494e08b5ee97e6846"; + + src = fetchFromGitHub { + owner = "savoirfairelinux"; + repo = "pjproject"; + rev = version; + hash = "sha256-pZiOSOUxAXzMY4c1/AyKcwa7nyIJC/ZVOqDg9/QO/Nk="; + }; + + patches = (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches)); + + configureFlags = (readLinesToList ./config/pjsip_args_common) + ++ lib.optionals stdenv.isLinux (readLinesToList ./config/pjsip_args_linux); + }); + + opendht-jami = opendht.override { + enableProxyServerAndClient = true; + enablePushNotifications = true; + }; + + dhtnet = stdenv.mkDerivation { + pname = "dhtnet"; + version = "unstable-2023-11-23"; + + src = fetchFromGitLab { + domain = "git.jami.net"; + owner = "savoirfairelinux"; + repo = "dhtnet"; + rev = "b1bcdecbac2a41de3941ef5a34faa6fbe4472535"; + hash = "sha256-EucSsUuHXbVqr7drrTLK0f+WZT2k9Tx/LV+IBldTQO8="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + asio + fmt + gnutls + http-parser + jsoncpp + libupnp + msgpack-cxx + opendht-jami + openssl + pjsip-jami + restinio + ]; + + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=Off" + "-DBUILD_BENCHMARKS=Off" + "-DBUILD_TOOLS=Off" + "-DBUILD_TESTING=Off" + ]; + + meta = with lib; { + description = "Lightweight Peer-to-Peer Communication Library"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = [ maintainers.linsui ]; + }; + }; + + daemon = stdenv.mkDerivation { + pname = "jami-daemon"; + inherit src version meta; + sourceRoot = "${src.name}/daemon"; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + perl + ]; + + buildInputs = [ + alsa-lib + asio + dbus + dhtnet + sdbus-cpp + fmt + ffmpeg_6 + gmp + gnutls + http-parser + jack + jsoncpp + libarchive + libgit2 + libnatpmp + libpulseaudio + libupnp + yaml-cpp + msgpack-cxx + opendht-jami + openssl + pjsip-jami + restinio + secp256k1 + speex + udev + webrtc-audio-processing + zlib + ]; + + enableParallelBuilding = true; + }; + + preConfigure = '' + echo 'const char VERSION_STRING[] = "${version}";' > src/app/version.h + # Currently the daemon is still built seperately but jami expects it in CMAKE_INSTALL_PREFIX + # This can be removed in future versions when JAMICORE_AS_SUBDIR is on + mkdir -p $out + ln -s ${daemon} $out/daemon + ''; + + dontWrapGApps = true; + + nativeBuildInputs = [ + wrapGAppsHook + wrapQtAppsHook + pkg-config + cmake + python3 + qttools + ]; + + buildInputs = [ + ffmpeg_6 + libnotify + networkmanager + qtbase + qt5compat + qrencode + qtnetworkauth + qtdeclarative + qtmultimedia + qtpositioning + qtsvg + qtwebchannel + ] ++ lib.optionals withWebengine [ + qtwebengine + ]; + + cmakeFlags = 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" + ]; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + passthru.updateScript = gitUpdater { + rev-prefix = "stable/"; + }; + + meta = with lib; { + homepage = "https://jami.net/"; + description = "The free and universal communication platform that respects the privacy and freedoms of its users"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = [ maintainers.linsui ]; + }; +} 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 new file mode 100644 index 000000000000..71253c52b643 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix @@ -0,0 +1,106 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +, copyDesktopItems +, makeDesktopItem +, makeWrapper +, libpng +, libX11 +, libXi +, libXtst +, zlib +, electron +, pipewire +}: + +buildNpmPackage rec { + pname = "jitsi-meet-electron"; + version = "2023.11.3"; + + src = fetchFromGitHub { + owner = "jitsi"; + repo = "jitsi-meet-electron"; + rev = "v${version}"; + hash = "sha256-gE5CP0l3SrAHGNS6Hr5/MefTtE86JTmc85CwOmylEpg="; + }; + + nativeBuildInputs = [ + copyDesktopItems + makeWrapper + ]; + + # robotjs node-gyp dependencies + buildInputs = [ + libpng + libX11 + libXi + libXtst + zlib + ]; + + npmDepsHash = "sha256-JZVJcKzG4X7YIUvIRWZsDQnHx+dNqCj6kFm8mZaSH2k="; + + makeCacheWritable = true; + + env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1; + + postPatch = '' + substituteInPlace main.js \ + --replace "require('electron-is-dev')" "false" + ''; + + preBuild = '' + # remove some prebuilt binaries + find node_modules -type d -name prebuilds -exec rm -r {} + + ''; + + postBuild = '' + # generate .asar file + # asarUnpack makes sure to unwrap binaries so that nix can see the RPATH + npm exec electron-builder -- \ + --dir \ + -c.asarUnpack="**/*.node" \ + -c.electronDist=${electron}/libexec/electron \ + -c.electronVersion=${electron.version} + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/jitsi-meet-electron + cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/jitsi-meet-electron + + makeWrapper ${lib.getExe electron} $out/bin/jitsi-meet-electron \ + --add-flags $out/share/jitsi-meet-electron/resources/app.asar \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pipewire ]} \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ + --inherit-argv0 + + install -Dm644 resources/icons/512x512.png $out/share/icons/hicolor/512x512/apps/jitsi-meet-electron.png + + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "jitsi-meet-electron"; + exec = "jitsi-meet-electron %U"; + icon = "jitsi-meet-electron"; + desktopName = "Jitsi Meet"; + comment = meta.description; + categories = [ "VideoConference" "AudioVideo" "Audio" "Video" "Network" ]; + mimeTypes = [ "x-scheme-handler/jitsi-meet" ]; + terminal = false; + }) + ]; + + meta = with lib; { + changelog = "https://github.com/jitsi/jitsi-meet-electron/releases/tag/${src.rev}"; + description = "Jitsi Meet desktop application powered by Electron"; + homepage = "https://github.com/jitsi/jitsi-meet-electron"; + license = licenses.asl20; + mainProgram = "jitsi-meet-electron"; + maintainers = teams.jitsi.members ++ [ maintainers.tomasajt ]; + inherit (electron.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix new file mode 100644 index 000000000000..cb634f434d24 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix @@ -0,0 +1,78 @@ +{ stdenv, lib, fetchFromGitHub, makeDesktopItem, unzip, ant, jdk8 +# Optional, Jitsi still runs without, but you may pass null: +, alsa-lib, dbus, gtk2, libpulseaudio, openssl, xorg +}: + +let jdk = jdk8; in +stdenv.mkDerivation rec { + pname = "jitsi"; + version = "2.11.5633"; + + src = fetchFromGitHub { + owner = "jitsi"; + repo = "jitsi"; + rev = "refs/tags/${lib.versions.patch version}"; + hash = "sha256-CN4o0VfHdoUteI2wyJ2hFJ9UsQ2wWUzcvrLMbR/l36M="; + }; + + patches = [ ./jitsi.patch ]; + + jitsiItem = makeDesktopItem { + name = "Jitsi"; + exec = "jitsi"; + comment = "VoIP and Instant Messaging client"; + desktopName = "Jitsi"; + genericName = "Instant Messaging"; + categories = [ "Chat" ]; + }; + + libPath = lib.makeLibraryPath ([ + stdenv.cc.cc # For libstdc++. + alsa-lib + dbus + gtk2 + libpulseaudio + openssl + xorg.libX11 + xorg.libXext + xorg.libXScrnSaver + xorg.libXv + ]); + + nativeBuildInputs = [ unzip ]; + buildInputs = [ ant jdk ]; + + buildPhase = "ant make"; + + installPhase = '' + mkdir -p $out + cp -a lib $out/ + rm -rf $out/lib/native/solaris + cp -a sc-bundles $out/ + mkdir $out/bin + cp resources/install/generic/run.sh $out/bin/jitsi + chmod +x $out/bin/jitsi + substituteInPlace $out/bin/jitsi \ + --subst-var-by JAVA ${jdk}/bin/java \ + --subst-var-by EXTRALIBS ${gtk2.out}/lib + sed -e 's,^java\ ,${jdk}/bin/java ,' -i $out/bin/jitsi + patchShebangs $out + libPath="$libPath:${jdk.home}/lib/${jdk.architecture}" + find $out/ -type f -name '*.so' | while read file; do + patchelf --set-rpath "$libPath" "$file" && \ + patchelf --shrink-rpath "$file" + done + ''; + + meta = with lib; { + homepage = "https://desktop.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/jitsi/jitsi.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch new file mode 100644 index 000000000000..07b16b919962 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch @@ -0,0 +1,27 @@ +--- /home/dario/Downloads/jitsi/resources/install/generic/run.sh 2013-11-01 15:37:21.000000000 +0000 ++++ jitsi/resources/install/generic/run.sh 2014-03-04 11:52:30.796397567 +0000 +@@ -1,4 +1,9 @@ +-mkdir -p $HOME/.sip-communicator/log ++#! /bin/bash ++# A modified version of the generic run.sh ++ ++#mkdir -p $HOME/.sip-communicator/log ++ ++cd "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" + + # Get architecture + ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/` +@@ -6,10 +11,12 @@ + # Additionnal JVM arguments + CLIENTARGS="" + ++NATIVELIBS="lib/native/linux-64" + if [ $ARCH = 32 ] + then + CLIENTARGS="-client -Xmx256m" ++ NATIVELIBS="lib/native/linux" + fi + + export PATH=$PATH:native +-java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=native -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator ++LD_LIBRARY_PATH=@EXTRALIBS@ exec @JAVA@ $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix new file mode 100644 index 000000000000..5a242e9cd517 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix @@ -0,0 +1,79 @@ +{ mkDerivation +, lib +, fetchFromGitLab +, cmake +, extra-cmake-modules +, pkg-config +, qtquickcontrols2 +, qtmultimedia +, qtlocation +, qqc2-desktop-style +, kirigami-addons +, kirigami2 +, kio +, knotifications +, kquickimageedit +, zxing-cpp +, qxmpp +, sonnet +, gst_all_1 +}: + +mkDerivation rec { + pname = "kaidan"; + version = "0.9.1"; + + src = fetchFromGitLab { + domain = "invent.kde.org"; + owner = "network"; + repo = pname; + rev = "v${version}"; + hash = "sha256-F5GhN9hAF2e8b0T3peUnLk8CVd+nq4YR8k52x6ZOoLM="; + }; + + nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ]; + + buildInputs = with gst_all_1; [ + qtquickcontrols2 + qtmultimedia + qtlocation + qqc2-desktop-style + kirigami-addons + kirigami2 + kio + knotifications + kquickimageedit + zxing-cpp + qxmpp + sonnet + gstreamer + gst-plugins-bad + gst-plugins-base + gst-plugins-good + ]; + postInstall = '' + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "User-friendly and modern chat app, using XMPP"; + longDescription = '' + Kaidan is a user-friendly and modern chat app for every device. It uses + the open communication protocol XMPP (Jabber). Unlike other chat apps, + you are not dependent on one specific service provider. + + Kaidan does not have all basic features yet and has still some + stability issues. Current features include audio messages, video + messages, and file sharing. + ''; + homepage = "https://www.kaidan.im"; + license = with licenses; [ + gpl3Plus + mit + asl20 + cc-by-sa-40 + ]; + maintainers = with maintainers; [ astro ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix new file mode 100644 index 000000000000..30d1ee2dcda8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix @@ -0,0 +1,53 @@ +{ lib +, mkDerivation +, fetchFromSourcehut +, cmake +, extra-cmake-modules +, pkg-config +, kirigami2 +, libdeltachat +, qtbase +, qtimageformats +, qtmultimedia +, qtwebengine +}: + +mkDerivation rec { + pname = "kdeltachat"; + version = "unstable-2024-01-14"; + + src = fetchFromSourcehut { + owner = "~link2xt"; + repo = "kdeltachat"; + rev = "d61a01c2d6d5bdcc9ca500b466ed42689b2bd5c6"; + hash = "sha256-KmL3ODXPi1c8C5z2ySHg0vA5Vg/dZumDZTbpxkzf7A4="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + pkg-config + ]; + + buildInputs = [ + kirigami2 + libdeltachat + qtimageformats + qtmultimedia + qtwebengine + ]; + + # needed for qmlplugindump to work + QT_PLUGIN_PATH = "${qtbase.bin}/${qtbase.qtPluginPrefix}"; + QML2_IMPORT_PATH = lib.concatMapStringsSep ":" + (lib: "${lib}/${qtbase.qtQmlPrefix}") + [ kirigami2 qtmultimedia ]; + + meta = with lib; { + description = "Delta Chat client using Kirigami framework"; + homepage = "https://git.sr.ht/~link2xt/kdeltachat"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/keet/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/keet/default.nix new file mode 100644 index 000000000000..557078cd8b50 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/keet/default.nix @@ -0,0 +1,32 @@ +{ lib, appimageTools, fetchurl }: + +let + pname = "keet"; + version = "1.2.1"; + + src = fetchurl { + url = "https://keet.io/downloads/${version}/Keet.AppImage"; + sha256 = "1f76ccfa16719a24f6d84b88e5ca49fab1c372de309ce74393461903c5c49d98"; + }; + + appimageContents = appimageTools.extract { inherit pname version src; }; +in appimageTools.wrapType2 { + inherit src pname version; + + extraInstallCommands = '' + mv $out/bin/${pname}-${version} $out/bin/${pname} + + install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + cp -r ${appimageContents}/usr/share/icons $out/share + ''; + + meta = with lib; { + description = "Peer-to-Peer Chat"; + homepage = "https://keet.io"; + license = licenses.unfree; + maintainers = with maintainers; [ extends ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix new file mode 100644 index 000000000000..1d930612e9f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix @@ -0,0 +1,141 @@ +{ bctoolbox +, belcard +, belle-sip +, belr +, cmake +, fetchFromGitLab +, lib +, liblinphone +, mediastreamer +, mediastreamer-openh264 +, minizip-ng +, mkDerivation +, qtgraphicaleffects +, qtmultimedia +, qtquickcontrols2 +, qttools +}: + +# 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 = "5.1.2"; + + src = fetchFromGitLab { + domain = "gitlab.linphone.org"; + owner = "public"; + group = "BC"; + repo = pname; + rev = version; + hash = "sha256-Pu2tGKe3C1uR4lzXkC5sJFu8iJBqF76UfWJXYjPwBkc="; + }; + + patches = [ + ./do-not-build-linphone-sdk.patch + ./remove-bc_compute_full_version-usage.patch + ./no-store-path-in-autostart.patch + ./reset-output-dirs.patch + ]; + + # See: https://gitlab.linphone.org/BC/public/linphone-desktop/issues/21 + postPatch = '' + echo "project(linphoneqt VERSION ${version})" >linphone-app/linphoneqt_version.cmake + substituteInPlace linphone-app/src/app/AppController.cpp \ + --replace "APPLICATION_SEMVER" "\"${version}\"" + substituteInPlace CMakeLists.txt \ + --subst-var out + ''; + + # TODO: After linphone-desktop and liblinphone split into separate packages, + # there might be some build inputs here that aren't needed for + # linphone-desktop. + buildInputs = [ + # Made by BC + bctoolbox + belcard + belle-sip + belr + liblinphone + mediastreamer + mediastreamer-openh264 + + minizip-ng + qtgraphicaleffects + qtmultimedia + qtquickcontrols2 + ]; + + nativeBuildInputs = [ + cmake + qttools + ]; + + cmakeFlags = [ + "-DMINIZIP_INCLUDE_DIRS=${minizip-ng}/include" + "-DMINIZIP_LIBRARIES=minizip" + + # RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/ + "-DCMAKE_SKIP_BUILD_RPATH=ON" + + # Requires EQt5Keychain + "-DENABLE_QT_KEYCHAIN=OFF" + + "-DCMAKE_INSTALL_BINDIR=bin" + "-DCMAKE_INSTALL_INCLUDEDIR=include" + "-DCMAKE_INSTALL_LIBDIR=lib" + ]; + + preInstall = '' + mkdir -p $out/share/linphone + mkdir -p $out/share/sounds/linphone + ''; + + # In order to find mediastreamer plugins, mediastreamer package was patched to + # support an environment variable pointing to the plugin directory. Set that + # environment variable by wrapping the Linphone executable. + # + # Also, some grammar files needed to be copied too from some dependencies. I + # suppose if one define a dependency in such a way that its share directory is + # found, then this copying would be unnecessary. These missing grammar files + # were discovered when linphone crashed at startup and it was run with + # --verbose flag. Instead of actually copying these files, create symlinks. + # + # It is quite likely that there are some other files still missing and + # Linphone will randomly crash when it tries to access those files. Then, + # those just need to be copied manually below. + postInstall = '' + 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/ + + 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/ + + wrapProgram $out/bin/linphone \ + --set MEDIASTREAMER_PLUGINS_DIR $out/lib/mediastreamer/plugins + ''; + + meta = with lib; { + homepage = "https://www.linphone.org/"; + description = "Open source SIP phone for voice/video calls and instant messaging"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ jluttine ]; + }; +} 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 new file mode 100644 index 000000000000..f93f031bf690 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch @@ -0,0 +1,157 @@ +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 + +--- + CMakeLists.txt | 100 +----------------- + .../cmake_builder/additional_steps.cmake | 9 -- + 2 files changed, 5 insertions(+), 104 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b5a4ab5..3afcd88 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -194,7 +194,6 @@ list(APPEND APP_OPTIONS "-DQTKEYCHAIN_TARGET_NAME=${QTKEYCHAIN_TARGET_NAME}") + + 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}") +@@ -237,41 +236,8 @@ if(ENABLE_BUILD_APP_PLUGINS) + endif() + endif() + +-if(NOT LINPHONE_QT_ONLY) +-#add_subdirectory(external/qtkeychain) +- if(ENABLE_QT_KEYCHAIN) +- ExternalProject_Add(app-qtkeychain PREFIX "${CMAKE_BINARY_DIR}/qtkeychain" +- SOURCE_DIR "${CMAKE_SOURCE_DIR}/external/qtkeychain" +- INSTALL_DIR "${QTKEYCHAIN_OUTPUT_DIR}" +- BINARY_DIR "${SDK_BUILD_DIR}/qtkeychain" +- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND} +- LIST_SEPARATOR | # Use the alternate list separator +- CMAKE_ARGS ${APP_OPTIONS} ${QTKEYCHAIN_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} -DCMAKE_OSX_ARCHITECTURES=${LINPHONESDK_MACOS_ARCHS} +- BUILD_ALWAYS NO #${DO_BUILD} +- ) +- endif() +- ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk" +- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk" +- INSTALL_DIR "${LINPHONE_OUTPUT_DIR}" +- STAMP_DIR "${SDK_BUILD_DIR}/stamp" +- BINARY_DIR "${SDK_BUILD_DIR}" +- STEP_TARGETS build +- 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} -DCMAKE_OSX_ARCHITECTURES=${LINPHONESDK_MACOS_ARCHS} +- BUILD_ALWAYS NO #${DO_BUILD} +- ) +- ExternalProject_Add_Step(sdk force_build +- COMMENT "Forcing build for 'sdk'" +- DEPENDEES configure +- DEPENDERS build +- ALWAYS 1 +- ) +-endif() + include(FindPkgConfig) + +-set(APP_DEPENDS sdk)# Used if NOT LINPHONE_QT_ONLY + if(ENABLE_QT_KEYCHAIN) + list(APPEND APP_DEPENDS app-qtkeychain) + endif() +@@ -289,65 +255,9 @@ find_package(Mediastreamer2 CONFIG QUIET) + find_package(ortp CONFIG QUIET) + find_package(${QTKEYCHAIN_TARGET_NAME} 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 ( ENABLE_QT_KEYCHAIN AND NOT(${QTKEYCHAIN_TARGET_NAME}_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" +- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app" +- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}" +- 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 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} -DCMAKE_OSX_ARCHITECTURES=${LINPHONESDK_MACOS_ARCHS} +- # ${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} -DCMAKE_OSX_ARCHITECTURES=${LINPHONESDK_MACOS_ARCHS} +- ) +- endif() +- install(CODE "message(STATUS \"Running install\")") +- set(AUTO_REGENERATION auto_regeneration) +- 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) +- 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}" +- BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app" +- 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} -DCMAKE_OSX_ARCHITECTURES=${LINPHONESDK_MACOS_ARCHS} +- EXCLUDE_FROM_ALL ON +- #BUILD_ALWAYS ON +-) +diff --git a/linphone-app/cmake_builder/additional_steps.cmake b/linphone-app/cmake_builder/additional_steps.cmake +index 7f7fd57..a69a04e 100644 +--- a/linphone-app/cmake_builder/additional_steps.cmake ++++ b/linphone-app/cmake_builder/additional_steps.cmake +@@ -54,14 +54,5 @@ if (ENABLE_PACKAGING) + linphone_builder_apply_flags() + linphone_builder_set_ep_directories(linphone_package) + linphone_builder_expand_external_project_vars() +- ExternalProject_Add(TARGET_linphone_package +- DEPENDS TARGET_linphone_builder +- TMP_DIR ${ep_tmp} +- BINARY_DIR ${ep_build} +- SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/linphone_package" +- DOWNLOAD_COMMAND "" +- CMAKE_GENERATOR ${CMAKE_GENERATOR} +- CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_OUTPUT_DIR=${CMAKE_INSTALL_PREFIX} -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY} +- ) + endif () + endif () +-- +2.39.3 (Apple Git-145) + 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 new file mode 100644 index 000000000000..225f0e78db23 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch @@ -0,0 +1,74 @@ +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] remove bc_compute_full_version usage + +--- + linphone-app/CMakeLists.txt | 11 +---------- + linphone-app/build/CMakeLists.txt | 5 ----- + .../cmake_builder/linphone_package/CMakeLists.txt | 10 +--------- + 3 files changed, 2 insertions(+), 24 deletions(-) + +diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt +index de7f917f..ee14ff78 100644 +--- a/linphone-app/CMakeLists.txt ++++ b/linphone-app/CMakeLists.txt +@@ -21,17 +21,8 @@ + ################################################################################ + cmake_minimum_required(VERSION 3.1) + ++include(linphoneqt_version.cmake) + find_package(bctoolbox CONFIG) +-set(FULL_VERSION ) +-bc_compute_full_version(FULL_VERSION) +-set(version_major ) +-set(version_minor ) +-set(version_patch ) +-set(identifiers ) +-set(metadata ) +-bc_parse_full_version("${FULL_VERSION}" version_major version_minor version_patch identifiers metadata) +- +-project(linphoneqt VERSION "${version_major}.${version_minor}.${version_patch}") + + + if(ENABLE_BUILD_VERBOSE) +diff --git a/linphone-app/build/CMakeLists.txt b/linphone-app/build/CMakeLists.txt +index 8ef03faa..97d94bd6 100644 +--- a/linphone-app/build/CMakeLists.txt ++++ b/linphone-app/build/CMakeLists.txt +@@ -46,11 +46,6 @@ set(CPACK_SOURCE_IGNORE_FILES + "libmng.spec" + ) + +-bc_compute_full_version(PROJECT_VERSION_BUILD) +-if(PROJECT_VERSION_BUILD) +- set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${PROJECT_VERSION_BUILD}") +-endif() +- + message("-- Package file name is ${CPACK_PACKAGE_FILE_NAME}") + + 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 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") + # ============================================================================== + # Build package version. + # ============================================================================== +-bc_compute_full_version(APP_PROJECT_VERSION) +-if (GIT_EXECUTABLE AND NOT(APP_PROJECT_VERSION)) +- execute_process( +- COMMAND ${GIT_EXECUTABLE} describe --always +- OUTPUT_VARIABLE APP_PROJECT_VERSION +- OUTPUT_STRIP_TRAILING_WHITESPACE +- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../.." +- ) +-elseif (NOT(APP_PROJECT_VERSION)) ++if (NOT(APP_PROJECT_VERSION)) + set(APP_PROJECT_VERSION "0.0.0") + endif () + string(REGEX REPLACE "([0-9.]+)-?.*" "\\1" LINPHONE_VERSION "${APP_PROJECT_VERSION}") +-- +2.25.1 + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/reset-output-dirs.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/reset-output-dirs.patch new file mode 100644 index 000000000000..2ad43fb17e28 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/reset-output-dirs.patch @@ -0,0 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b5a4ab5..b6b89c2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -59,10 +59,10 @@ set(CMAKE_CXX_STANDARD 11) + + # Prepare gobal CMAKE configuration specific to the current project + set(SDK_BUILD_DIR "${CMAKE_BINARY_DIR}/WORK") # SDK build in WORK. Keep all in it. +-set(LINPHONE_OUTPUT_DIR "${CMAKE_BINARY_DIR}/linphone-sdk/desktop") +-set(QTKEYCHAIN_OUTPUT_DIR "${CMAKE_BINARY_DIR}/qtkeychain") ++set(LINPHONE_OUTPUT_DIR "@out@") ++set(QTKEYCHAIN_OUTPUT_DIR "@out@") + set(QTKEYCHAIN_TARGET_NAME "EQt5Keychain") +-set(APPLICATION_OUTPUT_DIR "${CMAKE_BINARY_DIR}/OUTPUT") ++set(APPLICATION_OUTPUT_DIR "@out@") + + set(CMAKE_PREFIX_PATH "${LINPHONE_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR}/include${PREFIX_PATH}") + if(WIN32) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix new file mode 100644 index 000000000000..154803697873 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix @@ -0,0 +1,63 @@ +{ lib +, fetchFromGitHub +, buildPythonApplication +, cacert +, setuptools +, matrix-nio +, python-magic +, markdown +, pillow +, aiofiles +, notify2 +, dbus-python +, pyxdg +, python-olm +, emoji +}: + +buildPythonApplication rec { + pname = "matrix-commander"; + version = "7.2.0"; + + src = fetchFromGitHub { + owner = "8go"; + repo = "matrix-commander"; + rev = "v${version}"; + hash = "sha256-qL6ARkAWu0FEuYK2e9Z9hMSfK4TW0kGgoIFUfJ8Dgwk="; + }; + + format = "pyproject"; + + 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 + aiofiles + notify2 + dbus-python + pyxdg + python-olm + emoji + ] ++ matrix-nio.optional-dependencies.e2e; + + meta = with lib; { + description = "Simple but convenient CLI-based Matrix client app for sending and receiving"; + homepage = "https://github.com/8go/matrix-commander"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = [ maintainers.seb314 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix new file mode 100644 index 000000000000..0b2be12ad0b3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix @@ -0,0 +1,33 @@ +{ lib +, python3Packages +, fetchFromGitHub +}: + +python3Packages.buildPythonApplication rec { + pname = "matrix-dl"; + version = "unstable-2020-07-14"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "rubo77"; + repo = pname; + rev = "b1a86d1421f39ee327284e1023f09dc165e3c8a5"; + sha256 = "1l8nh8z7kz24v0wcy3ll3w6in2yxwa1yz8lyc3x0blz37d8ss4ql"; + }; + + nativeBuildInputs = with python3Packages; [ + setuptools + ]; + + propagatedBuildInputs = with python3Packages; [ + matrix-client + ]; + + meta = with lib; { + description = "Download backlogs from Matrix as raw text"; + homepage = src.meta.homepage; + license = licenses.gpl1Plus; + maintainers = with maintainers; [ aw ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix new file mode 100644 index 000000000000..9b501facb7f6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix @@ -0,0 +1,53 @@ +{ lib, fetchFromGitHub + , buildPythonApplication, buildPythonPackage + , pygobject3, pytest-runner, requests, responses, pytest, python-olm + , canonicaljson, olm +}: +let + mainsrc = fetchFromGitHub { + owner = "saadnpq"; + repo = "matrixcli"; + rev = "61ebde173ca2f77185c261c2b7f6db297ca89863"; + sha256 = "sha256-eH/8b8IyfXqUo7odSECYF+84pXTsP+5S7pFR3oWXknU="; + fetchSubmodules = true; + }; + + sdk = buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "matrix-python-sdk-matrixcli"; + version = "0.0.2019-08-15"; + + src = "${mainsrc}/matrix-python-sdk/"; + + propagatedBuildInputs = [ + requests responses olm python-olm canonicaljson + pytest-runner pytest + ]; + + doCheck = false; + doInstallCheck = false; + + meta = { + license = lib.licenses.asl20; + description = "Fork of Matrix Python SDK"; + platforms = lib.platforms.linux; + }; + }; + +in +buildPythonApplication rec { + pname = "matrixcli"; + version = "0.0.2019-08-15"; + + src = mainsrc; + + propagatedBuildInputs = [pygobject3 sdk]; + + meta = { + description = "CLI client for Matrix"; + license = lib.licenses.gpl3; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.linux; + homepage = "https://github.com/saadnpq/matrixcli"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix new file mode 100644 index 000000000000..56bc542d4206 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix @@ -0,0 +1,69 @@ +{ lib +, stdenv +, fetchurl +, electron_26 +, makeWrapper +}: + +let + + pname = "mattermost-desktop"; + version = "5.5.1"; + + srcs = { + "x86_64-linux" = { + url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz"; + hash = "sha256-bRiO5gYM7nrnkbHBP3B9zAK2YV5POkc3stEsbZJ48VA="; + }; + + "aarch64-linux" = { + url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-arm64.tar.gz"; + hash = "sha256-Z4U6Jbwasra69QPHJ9/7WwMSxh0O9r4QIe/xC3WRf4w="; + }; + }; + + inherit (stdenv.hostPlatform) system; + +in + +stdenv.mkDerivation { + inherit pname version; + + src = fetchurl (srcs."${system}" or (throw "Unsupported system ${system}")); + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + # Mattermost tarball comes with executable bit set for everything. + # We’ll apply it only to files that need it. + find . -type f -print0 | xargs -0 chmod -x + find . -type f \( -name '*.so.*' -o -name '*.s[oh]' \) -print0 | xargs -0 chmod +x + chmod +x mattermost-desktop chrome-sandbox + + mkdir -p $out/bin $out/share/applications $out/share/${pname}/ + cp -r app_icon.png create_desktop_file.sh locales/ resources/* $out/share/${pname}/ + + patchShebangs $out/share/${pname}/create_desktop_file.sh + $out/share/${pname}/create_desktop_file.sh + rm $out/share/${pname}/create_desktop_file.sh + mv Mattermost.desktop $out/share/applications/Mattermost.desktop + substituteInPlace $out/share/applications/Mattermost.desktop \ + --replace /share/mattermost-desktop/mattermost-desktop /bin/mattermost-desktop + + makeWrapper ${electron_26}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/app.asar + + runHook postInstall + ''; + + meta = with lib; { + description = "Mattermost Desktop client"; + homepage = "https://about.mattermost.com/"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.asl20; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + maintainers = [ maintainers.joko ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix new file mode 100644 index 000000000000..3acd11a9a0d3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchurl, fetchpatch, openssl, ncurses, pkg-config, glib, loudmouth, libotr +, gpgme +}: + +stdenv.mkDerivation rec { + pname = "mcabber"; + version = "1.1.2"; + + src = fetchurl { + url = "https://mcabber.com/files/mcabber-${version}.tar.bz2"; + sha256 = "0q1i5acyghsmzas88qswvki8kkk2nfpr8zapgnxbcd3lwcxl38f4"; + }; + + patches = [ + # Pull upstream patch for ncurses-6.3. + (fetchpatch { + name = "ncurses-6.3.patch"; + url = "https://github.com/McKael/mcabber/commit/5a0893d69023b77b7671731defbdca5d47731130.patch"; + sha256 = "01bc23z0mva9l9jv587sq2r9w3diachgkmb9ad99hlzgj02fmq4v"; + stripLen = 1; + }) + ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ openssl ncurses glib loudmouth libotr gpgme ]; + + configureFlags = [ + "--with-openssl=${openssl.dev}" + "--enable-modules" + "--enable-otr" + ]; + + doCheck = true; + + meta = with lib; { + homepage = "http://mcabber.com/"; + description = "Small Jabber console client"; + license = licenses.gpl2; + maintainers = with maintainers; [ pSub ]; + platforms = with platforms; linux; + downloadPage = "http://mcabber.com/files/"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix new file mode 100644 index 000000000000..b34ed84d044d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix @@ -0,0 +1,159 @@ +{ lib +, stdenv +, fetchurl +, bundlerEnv +, alsa-utils +, atk +, copyDesktopItems +, gobject-introspection +, gtk2 +, ruby +, libicns +, libnotify +, makeDesktopItem +, which +, wrapGAppsHook +, writeText +}: + +let + # NOTE: $out may have different values depending on context + mikutterPaths = rec { + optPrefixDir = "$out/opt/mikutter"; + appPrefixDir = "$out/Applications/mikutter.app/Contents"; + appBinDir = "${appPrefixDir}/MacOS"; + appResourceDir = "${appPrefixDir}/Resources"; + iconPath = "${optPrefixDir}/core/skin/data/icon.png"; + }; + + gems = bundlerEnv { + name = "mikutter-gems"; # leave the version out to enable package reuse + gemdir = ./deps; + groups = [ "default" "plugin" ]; + inherit ruby; + + # Avoid the following error: + # > `<module:Moneta>': uninitialized constant Moneta::Builder (NameError) + # + # Related: + # https://github.com/NixOS/nixpkgs/pull/76510 + # https://github.com/NixOS/nixpkgs/pull/76765 + # https://github.com/NixOS/nixpkgs/issues/83442 + # https://github.com/NixOS/nixpkgs/issues/106545 + copyGemFiles = true; + }; + + mkDesktopItem = { description }: + makeDesktopItem { + name = "mikutter"; + desktopName = "mikutter"; + exec = "mikutter"; + icon = "mikutter"; + categories = [ "Network" ]; + comment = description; + keywords = [ "Mastodon" ]; + }; + + mkInfoPlist = { version }: + writeText "Info.plist" (lib.generators.toPlist { } { + CFBundleName = "mikutter"; + CFBundleDisplayName = "mikutter"; + CFBundleExecutable = "mikutter"; + CFBundleIconFile = "mikutter"; + CFBundleIdentifier = "net.hachune.mikutter"; + CFBundleInfoDictionaryVersion = "6.0"; + CFBundlePackageType = "APPL"; + CFBundleVersion = version; + CFBundleShortVersionString = version; + }); + + inherit (gems) wrappedRuby; +in +with mikutterPaths; stdenv.mkDerivation rec { + pname = "mikutter"; + version = "4.1.4"; + + src = fetchurl { + url = "https://mikutter.hachune.net/bin/mikutter-${version}.tar.gz"; + sha256 = "05253nz4i1lmnq6czj48qdab2ny4vx2mznj6nsn2l1m2z6zqkwk3"; + }; + + nativeBuildInputs = [ copyDesktopItems wrapGAppsHook gobject-introspection ] + ++ lib.optionals stdenv.isDarwin [ libicns ]; + buildInputs = [ + atk + gtk2 + libnotify + which # some plugins use it at runtime + wrappedRuby + ] ++ lib.optionals stdenv.isLinux [ alsa-utils ]; + + scriptPath = lib.makeBinPath ( + [ wrappedRuby libnotify which ] + ++ lib.optionals stdenv.isLinux [ alsa-utils ] + ); + + postUnpack = '' + rm -rf vendor + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin ${optPrefixDir} + + install -Dm644 README $out/share/doc/mikutter/README + install -Dm644 LICENSE $out/share/doc/mikutter/LICENSE + rm -r README LICENSE deployment + + cp -r . ${optPrefixDir} + + gappsWrapperArgsHook # FIXME: currently runs at preFixup + wrapGApp ${optPrefixDir}/mikutter.rb \ + --prefix PATH : "${scriptPath}" \ + --set DISABLE_BUNDLER_SETUP 1 + mv ${optPrefixDir}/mikutter.rb $out/bin/mikutter + + install -Dm644 ${iconPath} $out/share/icons/hicolor/256x256/apps/mikutter.png + + runHook postInstall + ''; + + postInstall = + let + infoPlist = mkInfoPlist { inherit version; }; + in + lib.optionalString stdenv.isDarwin '' + mkdir -p ${appBinDir} ${appResourceDir} + install -Dm644 ${infoPlist} ${appPrefixDir}/Info.plist + ln -s $out/bin/mikutter ${appBinDir}/mikutter + png2icns ${appResourceDir}/mikutter.icns ${iconPath} + ''; + + installCheckPhase = '' + runHook preInstallCheck + + testDir="$(mktemp -d)" + install -Dm644 ${./test_plugin.rb} "$testDir/plugin/test_plugin/test_plugin.rb" + + $out/bin/mikutter --confroot="$testDir" --plugin=test_plugin --debug + + runHook postInstallCheck + ''; + + desktopItems = [ + (mkDesktopItem { inherit (meta) description; }) + ]; + + doInstallCheck = true; + dontWrapGApps = true; # the target is placed outside of bin/ + + passthru.updateScript = [ ./update.sh version (toString ./.) ]; + + meta = with lib; { + description = "An extensible Mastodon client"; + homepage = "https://mikutter.hachune.net"; + platforms = ruby.meta.platforms; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile new file mode 100644 index 000000000000..fbe6a2f29c5d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile @@ -0,0 +1,39 @@ +alias __source_distinct__ source +def source(url) + @loaded ||= {} + unless @loaded[url] + @loaded[url] = true + __source_distinct__(url) end end + +source 'https://rubygems.org' + +ruby '>= 2.5.0' + +group :default do + gem 'addressable','>= 2.7.0', '< 2.8' + gem 'delayer','>= 1.1.2', '< 2.0' + gem 'delayer-deferred','>= 2.2.0', '< 3.0' + gem 'diva','>= 1.0.2', '< 2.0' + gem 'memoist','>= 0.16.2', '< 0.17' + gem 'oauth','>= 0.5.4' + gem 'pluggaloid','>= 1.5.0', '< 2.0' + gem 'typed-array','>= 0.1.2', '< 0.2' +end + +group :test do + gem 'test-unit','>= 3.3.4', '< 4.0' + gem 'rake','>= 13.0.1' + gem 'mocha','>= 1.11.1' + gem 'webmock','>= 3.7.6' + gem 'ruby-prof','>= 1.1.0' +end + + +group :plugin do + Dir.glob(File.expand_path(File.join(__dir__, 'plugin/*/Gemfile'))){ |path| + eval File.open(path).read + } + Dir.glob(File.join(File.expand_path(ENV['MIKUTTER_CONFROOT'] || '~/.mikutter'), 'plugin/*/Gemfile')){ |path| + eval File.open(path).read + } +end diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile.lock b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile.lock new file mode 100644 index 000000000000..92568056d52a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile.lock @@ -0,0 +1,101 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + atk (3.4.1) + glib2 (= 3.4.1) + cairo (1.17.5) + native-package-installer (>= 1.0.3) + pkg-config (>= 1.2.2) + red-colors + cairo-gobject (3.4.1) + cairo (>= 1.16.2) + glib2 (= 3.4.1) + crack (0.4.5) + rexml + delayer (1.2.0) + delayer-deferred (2.2.0) + delayer (>= 1.1.2, < 2.0) + diva (1.0.2) + addressable (>= 2.5.2, < 2.8) + gdk_pixbuf2 (3.4.1) + gio2 (= 3.4.1) + gettext (3.3.7) + locale (>= 2.0.5) + text (>= 1.3.0) + gio2 (3.4.1) + gobject-introspection (= 3.4.1) + glib2 (3.4.1) + native-package-installer (>= 1.0.3) + pkg-config (>= 1.3.5) + gobject-introspection (3.4.1) + glib2 (= 3.4.1) + gtk2 (3.4.1) + atk (= 3.4.1) + gdk_pixbuf2 (= 3.4.1) + pango (= 3.4.1) + hashdiff (1.0.1) + httpclient (2.8.3) + instance_storage (1.0.0) + locale (2.1.3) + memoist (0.16.2) + mini_portile2 (2.5.0) + mocha (1.12.0) + moneta (1.4.1) + native-package-installer (1.1.1) + nokogiri (1.11.3) + mini_portile2 (~> 2.5.0) + racc (~> 1.4) + oauth (0.5.6) + pango (3.4.1) + cairo-gobject (= 3.4.1) + gobject-introspection (= 3.4.1) + pkg-config (1.4.6) + pluggaloid (1.5.0) + delayer (>= 1.1.0, < 2.0) + instance_storage (>= 1.0.0, < 2.0.0) + power_assert (2.0.0) + public_suffix (4.0.6) + racc (1.5.2) + rake (13.0.3) + red-colors (0.1.1) + rexml (3.2.5) + ruby-prof (1.4.3) + test-unit (3.4.0) + power_assert + text (1.3.1) + typed-array (0.1.2) + webmock (3.12.2) + addressable (>= 2.3.6) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + +PLATFORMS + ruby + +DEPENDENCIES + addressable (>= 2.7.0, < 2.8) + delayer (>= 1.1.2, < 2.0) + delayer-deferred (>= 2.2.0, < 3.0) + diva (>= 1.0.2, < 2.0) + gettext (>= 3.3.5, < 3.4) + gtk2 (= 3.4.1) + httpclient + memoist (>= 0.16.2, < 0.17) + mocha (>= 1.11.1) + moneta + nokogiri + oauth (>= 0.5.4) + pluggaloid (>= 1.5.0, < 2.0) + rake (>= 13.0.1) + ruby-prof (>= 1.1.0) + test-unit (>= 3.3.4, < 4.0) + typed-array (>= 0.1.2, < 0.2) + webmock (>= 3.7.6) + +RUBY VERSION + ruby 2.6.6p146 + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/gemset.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/gemset.nix new file mode 100644 index 000000000000..b45a36c6fec0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/gemset.nix @@ -0,0 +1,410 @@ +{ + addressable = { + dependencies = ["public_suffix"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; + type = "gem"; + }; + version = "2.7.0"; + }; + atk = { + dependencies = ["glib2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8q9a1f6x4gy55p8cf52a22bnpjgn18ad9n959x0f4gybbhs948"; + type = "gem"; + }; + version = "3.4.1"; + }; + cairo = { + dependencies = ["native-package-installer" "pkg-config" "red-colors"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vbj9szp2xbnxqan8hppip8vm9fxpcmpx745y5fvg2scdh9f0p7s"; + type = "gem"; + }; + version = "1.17.5"; + }; + cairo-gobject = { + dependencies = ["cairo" "glib2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gkxdfslcvrwrs48giilji3bgxd5bwijwq33p9h00r10jzfg2028"; + type = "gem"; + }; + version = "3.4.1"; + }; + crack = { + dependencies = ["rexml"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r"; + type = "gem"; + }; + version = "0.4.5"; + }; + delayer = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0iqf4i18i8rk3x7qgvkhbiqskf0xzdf733fjimrq6xkag2mq60bl"; + type = "gem"; + }; + version = "1.2.0"; + }; + delayer-deferred = { + dependencies = ["delayer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i2das3ncssacpqdgaf4as77vrxm7jfiizaja884fqv4rzv6s2sv"; + type = "gem"; + }; + version = "2.2.0"; + }; + diva = { + dependencies = ["addressable"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05wl4wg57vvng4nrp4lzjq148v908xzq092kq93phwvyxs7jnw2g"; + type = "gem"; + }; + version = "1.0.2"; + }; + gdk_pixbuf2 = { + dependencies = ["gio2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0194gzn0kialfh0j7crllvp808r64sg6dh297x69b0av21ar5pam"; + type = "gem"; + }; + version = "3.4.1"; + }; + gettext = { + dependencies = ["locale" "text"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fqlwq7i8ck1fjyhn19q3skvgrbz44q7gq51mlr0qym5rkj5f6rn"; + type = "gem"; + }; + version = "3.3.7"; + }; + gio2 = { + dependencies = ["gobject-introspection"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l3jpgbdvb55xhcmpkcqgwx5068dfyi8kijfvzhbqh96ng0p1m7g"; + type = "gem"; + }; + version = "3.4.1"; + }; + glib2 = { + dependencies = ["native-package-installer" "pkg-config"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18clyn0fp0h5alnkf9i2bqd6wvl78h468pdbzs1csqnba8vw4q1c"; + type = "gem"; + }; + version = "3.4.1"; + }; + gobject-introspection = { + dependencies = ["glib2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a3x8qiisbax3x0izj8l5w66r53ba5ma53ax2jhdbhbvaxx3d02n"; + type = "gem"; + }; + version = "3.4.1"; + }; + gtk2 = { + dependencies = ["atk" "gdk_pixbuf2" "pango"]; + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17az8g0n1yzz90kdbjg2hpabi04qccda7v6lin76bs637ivfg2md"; + type = "gem"; + }; + version = "3.4.1"; + }; + hashdiff = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c"; + type = "gem"; + }; + version = "1.0.1"; + }; + httpclient = { + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + type = "gem"; + }; + version = "2.8.3"; + }; + instance_storage = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08nf5fhq9dckq9lmaklxydq0hrlfi7phk66gr3bggxg45zd687pl"; + type = "gem"; + }; + version = "1.0.0"; + }; + locale = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0997465kxvpxm92fiwc2b16l49mngk7b68g5k35ify0m3q0yxpdn"; + type = "gem"; + }; + version = "2.1.3"; + }; + memoist = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55"; + type = "gem"; + }; + version = "0.16.2"; + }; + mini_portile2 = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7"; + type = "gem"; + }; + version = "2.5.0"; + }; + mocha = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05yw6rwgjppq116jgqfg4pv4bql3ci4r2fmmg0m2c3sqib1bq41a"; + type = "gem"; + }; + version = "1.12.0"; + }; + moneta = { + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z25b4yysvnf2hi9jxnsiv3fvnicnzr2m70ci231av5093jfknc6"; + type = "gem"; + }; + version = "1.4.1"; + }; + native-package-installer = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ww1mq41q7rda975byjmq5dk8k13v8dawvm33370pbkrymd8syp8"; + type = "gem"; + }; + version = "1.1.1"; + }; + nokogiri = { + dependencies = ["mini_portile2" "racc"]; + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0"; + type = "gem"; + }; + version = "1.11.3"; + }; + oauth = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zwd6v39yqfdrpg1p3d9jvzs9ljg55ana2p06m0l7qn5w0lgx1a0"; + type = "gem"; + }; + version = "0.5.6"; + }; + pango = { + dependencies = ["cairo-gobject" "gobject-introspection"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d0cn50qgpifrcv8qx72wi6l9xalw3ryngbfmm9xpg9vx5rl1qbp"; + type = "gem"; + }; + version = "3.4.1"; + }; + pkg-config = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mjjy1grxr64znkffxsvprcckbrrnm40b6gbllnbm7jxslbr3gjl"; + type = "gem"; + }; + version = "1.4.6"; + }; + pluggaloid = { + dependencies = ["delayer" "instance_storage"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m3f940lf1bg01jin22by7hg9hs43y995isgcyqb6vbvlv51zj11"; + type = "gem"; + }; + version = "1.5.0"; + }; + power_assert = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "172qfmzwxdf82bmwgcb13hnz9i3p6i2s2nijxnx6r63kn3drjppr"; + type = "gem"; + }; + version = "2.0.0"; + }; + public_suffix = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9"; + type = "gem"; + }; + version = "4.0.6"; + }; + racc = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g"; + type = "gem"; + }; + version = "1.5.2"; + }; + rake = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67"; + type = "gem"; + }; + version = "13.0.3"; + }; + red-colors = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ar2k7zvhr1215jx5di29hkg5h1798f1gypmq6v0sy9v35w6ijca"; + type = "gem"; + }; + version = "0.1.1"; + }; + rexml = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; + type = "gem"; + }; + version = "3.2.5"; + }; + ruby-prof = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r3xalp91l07m0cwllcxjzg6nkviiqnxkcbgg5qnzsdji6rgy65m"; + type = "gem"; + }; + version = "1.4.3"; + }; + test-unit = { + dependencies = ["power_assert"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h0c323zfn4hdida4g58h8wnlh4kax438gyxlw20dd78kcp01i8m"; + type = "gem"; + }; + version = "3.4.0"; + }; + text = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg"; + type = "gem"; + }; + version = "1.3.1"; + }; + typed-array = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qlv2rnkin9rwkgjx3k5qvc17m0m7jf5cdirw3wxbjnw5kga27w9"; + type = "gem"; + }; + version = "0.1.2"; + }; + webmock = { + dependencies = ["addressable" "crack" "hashdiff"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "038igpmkpmn0nw0k7s4db8x88af1nwcy7wzh9m9c9q4p74h7rii0"; + type = "gem"; + }; + version = "3.12.2"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/gtk/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/gtk/Gemfile new file mode 100644 index 000000000000..3306c29e3cbf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/gtk/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gem 'gtk2', '3.4.1' + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/image_file_cache/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/image_file_cache/Gemfile new file mode 100644 index 000000000000..f86005fef078 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/image_file_cache/Gemfile @@ -0,0 +1 @@ +gem 'moneta' diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/photo_support/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/photo_support/Gemfile new file mode 100644 index 000000000000..66016eee9c46 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/photo_support/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gem 'nokogiri' +gem 'httpclient' diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/uitranslator/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/uitranslator/Gemfile new file mode 100644 index 000000000000..08b4831dfc66 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/uitranslator/Gemfile @@ -0,0 +1,5 @@ +source 'https://rubygems.org' + +group :default do + gem 'gettext', '>= 3.3.5', '< 3.4' +end diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/test_plugin.rb b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/test_plugin.rb new file mode 100644 index 000000000000..b19c15cd304f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/test_plugin.rb @@ -0,0 +1,10 @@ +# Tests mikutter's event system. + +Plugin.create(:test_plugin) do + require 'logger' + Delayer.new do + log = Logger.new(STDOUT) + log.info("loaded test_plugin") + exit + end +end diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/update.sh new file mode 100755 index 000000000000..142fd8ca9424 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/update.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bundler bundix curl jq common-updater-scripts +# shellcheck shell=bash + +set -euo pipefail + +main() { + local currentVer="$1" + local scriptDir="$2" + local latestVer + local srcDir + + if [[ -z "$UPDATE_NIX_ATTR_PATH" ]]; then + echo "[ERROR] Please run the following instead:" >&2 + echo >&2 + echo " % nix-shell maintainers/scripts/update.nix --argstr path mikutter" >&2 + exit 1 + fi + + latestVer="$(queryLatestVersion)" + if [[ "$currentVer" == "$latestVer" ]]; then + echo "[INFO] mikutter is already up to date" >&2 + exit + fi + + update-source-version "$UPDATE_NIX_ATTR_PATH" "$latestVer" + + cd "$scriptDir" + + rm -rf deps + mkdir deps + cd deps + + srcDir="$(nix-build ../../../../../.. --no-out-link -A mikutter.src)" + tar xvf "$srcDir" --strip-components=1 + find . -not -name Gemfile -exec rm {} \; + find . -type d -exec rmdir -p --ignore-fail-on-non-empty {} \; || true + + bundle lock + bundix +} + +queryLatestVersion() { + curl -sS 'https://mikutter.hachune.net/download.json?count=1' \ + | jq -r '.[].version_string' \ + | head -n1 +} + +main "$@" + +# vim:set ft=bash: diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix new file mode 100644 index 000000000000..b6c48a0e948c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix @@ -0,0 +1,21 @@ +{ lib, buildGoModule, fetchgit }: + +buildGoModule { + pname = "mm"; + version = "2020.11.17"; + + src = fetchgit { + url = "https://git.lost.host/meutraa/mm.git"; + rev = "e5fa8eeb845aac8f28fc36013ee8a1dbe1e5710c"; + sha256 = "sha256-SdD4EE/rc85H7xqKB/kU8XFsC63i1sVObPha/zrxFGk="; + }; + + vendorHash = "sha256-zJJ9PzQShv2iRNyCg1XVscbwjV9ZtMIojJDtXXm3rVM="; + + meta = with lib; { + description = "A file system based matrix client"; + homepage = "https://git.lost.host/meutraa/mm"; + license = licenses.isc; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nchat/default.nix new file mode 100644 index 000000000000..51b704f5bc7b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nchat/default.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchFromGitHub, cmake, gperf +, file, ncurses, openssl, readline, sqlite, zlib +, AppKit, Cocoa, Foundation +}: + +stdenv.mkDerivation rec { + pname = "nchat"; + version = "3.67"; + + src = fetchFromGitHub { + owner = "d99kris"; + repo = "nchat"; + rev = "v${version}"; + hash = "sha256-PhvZejtSoDptzoMP5uIe6T0Ws/bQQXVuYH9uoZo3JsI="; + }; + + postPatch = '' + substituteInPlace lib/tgchat/ext/td/CMakeLists.txt \ + --replace "get_git_head_revision" "#get_git_head_revision" + ''; + + nativeBuildInputs = [ cmake gperf ]; + + buildInputs = [ + file # for libmagic + ncurses + openssl + readline + sqlite + zlib + ] ++ lib.optionals stdenv.isDarwin [ AppKit Cocoa Foundation ]; + + cmakeFlags = [ + "-DHAS_WHATSAPP=OFF" # go module build required + ]; + + meta = with lib; { + description = "Terminal-based chat client with support for Telegram and WhatsApp"; + homepage = "https://github.com/d99kris/nchat"; + license = licenses.mit; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/neosay/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/neosay/default.nix new file mode 100644 index 000000000000..3f76bdade3a8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/neosay/default.nix @@ -0,0 +1,27 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "neosay"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "donuts-are-good"; + repo = "neosay"; + rev = "v${version}"; + hash = "sha256-2tFjvAobDpBh1h0ejdtqxDsC+AqyneN+xNssOJNfEbk="; + }; + + vendorHash = "sha256-w0aZnel5Obq73UXcG9wmO9t/7qQTE8ru656u349cvzQ="; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + description = "Pipe stdin to matrix"; + homepage = "https://github.com/donuts-are-good/neosay"; + license = licenses.mit; + maintainers = with maintainers; [ janik ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix new file mode 100644 index 000000000000..45c7e556a71d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -0,0 +1,119 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, asciidoc +, pkg-config +, boost179 +, cmark +, coeurl +, curl +, libevent +, libsecret +, lmdb +, lmdbxx +, mtxclient +, nlohmann_json +, olm +, qtbase +, qtgraphicaleffects +, qtimageformats +, qtkeychain +, qtmacextras +, qtmultimedia +, qtquickcontrols2 +, qttools +, re2 +, spdlog +, wrapQtAppsHook +, voipSupport ? true +, gst_all_1 +, libnice +}: + +stdenv.mkDerivation rec { + pname = "nheko"; + version = "0.11.3"; + + src = fetchFromGitHub { + owner = "Nheko-Reborn"; + repo = "nheko"; + rev = "v${version}"; + hash = "sha256-2daXxTbpSUlig47y901JOkWRxbZGH4qrvNMepJbvS3o="; + }; + + patches = [ + # The 2 following patches can be removed with the next version bump. + # Backport of https://github.com/Nheko-Reborn/nheko/commit/e89e65dc17020772eb057414b4f0c5d6f4ad98d0. + (fetchpatch { + name = "nheko-fmt10.patch"; + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/nheko/-/raw/1b0d5c9eff6409dfd82953f346546d36c288a4a9/nheko-0.11.3-fix-for-fmt-10.patch"; + hash = "sha256-UYqAu2iXT3Bn/MxCtybiJrJLfVMOOVRchWqrGuPfapI="; + }) + # https://github.com/Nheko-Reborn/nheko/pull/1552 + (fetchpatch { + name = "nheko-fmt10.1.patch"; + url = "https://github.com/Nheko-Reborn/nheko/commit/614facf93c2b5d6118beb822cc542ac53a883c37.patch"; + hash = "sha256-rjsQNDfj3Lzbv8ow3qiNozGXQFrtYLhArS6a9JCdgBQ="; + }) + ]; + + nativeBuildInputs = [ + asciidoc + cmake + lmdbxx + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + boost179 + cmark + coeurl + curl + libevent + libsecret + lmdb + mtxclient + nlohmann_json + olm + qtbase + qtgraphicaleffects + qtimageformats + qtkeychain + qtmultimedia + qtquickcontrols2 + qttools + re2 + spdlog + ] ++ lib.optional stdenv.isDarwin qtmacextras + ++ lib.optionals voipSupport (with gst_all_1; [ + gstreamer + gst-plugins-base + (gst-plugins-good.override { qt5Support = true; }) + gst-plugins-bad + libnice + ]); + + cmakeFlags = [ + "-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389 + ]; + + preFixup = lib.optionalString voipSupport '' + # add gstreamer plugins path to the wrapper + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "Desktop client for the Matrix protocol"; + homepage = "https://github.com/Nheko-Reborn/nheko"; + license = licenses.gpl3Plus; + mainProgram = "nheko"; + maintainers = with maintainers; [ ekleog fpletz ]; + platforms = platforms.all; + # Should be fixable if a higher clang version is used, see: + # https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619287177 + broken = stdenv.hostPlatform.isDarwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix new file mode 100644 index 000000000000..5dc09ae1f3ee --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix @@ -0,0 +1,41 @@ +{ stdenv, lib, perl, perlPackages, coreutils, +fetchFromGitHub, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "oysttyer"; + version = "2.10.0"; + + src = fetchFromGitHub { + owner = "oysttyer"; + repo = "oysttyer"; + rev = version; + sha256 = "0cm1hvi68iqgjsg15xdii271pklgzjn9j9afb1c460z71kgy3wz2"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ + perl + ]; + + propagatedBuildInputs = with perlPackages; [ + DateTimeFormatDateParse + TermReadLineTTYtter + TermReadKey + ]; + + installPhase = '' + ${coreutils}/bin/install -Dm755 \ + oysttyer.pl \ + $out/bin/oysttyer + + wrapProgram $out/bin/oysttyer \ + --prefix PERL5LIB : $PERL5LIB + ''; + + meta = with lib; { + description = "Perl Console Twitter Client"; + homepage = "http://oysttyer.github.io/"; + maintainers = with maintainers; [ woffs ]; + license = with licenses; [ ffsl ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix new file mode 100644 index 000000000000..dbe944d189b6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix @@ -0,0 +1,78 @@ +{ lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder, + attrs, aiohttp, appdirs, click, keyring, logbook, peewee, janus, + prompt-toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3, + setuptools, installShellFiles, nixosTests, + + pytest, faker, pytest-aiohttp, aioresponses, + + enableDbusUi ? true +}: + +buildPythonApplication rec { + pname = "pantalaimon"; + version = "0.10.5"; + + disabled = pythonOlder "3.6"; + + # pypi tarball miss tests + src = fetchFromGitHub { + owner = "matrix-org"; + repo = pname; + rev = version; + sha256 = "sha256-yMhE3wKRbFHoL0vdFR8gMkNU7Su4FHbAwKQYADaaWpk="; + }; + + propagatedBuildInputs = [ + aiohttp + appdirs + attrs + click + janus + keyring + logbook + matrix-nio + peewee + prompt-toolkit + setuptools + ] + ++ matrix-nio.optional-dependencies.e2e + ++ lib.optionals enableDbusUi [ + dbus-python + notify2 + pygobject3 + pydbus + ]; + + nativeCheckInputs = [ + pytest + faker + pytest-aiohttp + aioresponses + ]; + + nativeBuildInputs = [ + installShellFiles + ]; + + # darwin has difficulty communicating with server, fails some integration tests + doCheck = !stdenv.isDarwin; + + checkPhase = '' + pytest + ''; + + postInstall = '' + installManPage docs/man/*.[1-9] + ''; + + passthru.tests = { + inherit (nixosTests) pantalaimon; + }; + + meta = with lib; { + description = "An end-to-end encryption aware Matrix reverse proxy daemon"; + homepage = "https://github.com/matrix-org/pantalaimon"; + license = licenses.asl20; + maintainers = with maintainers; [ valodim ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch new file mode 100644 index 000000000000..b0758777186a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch @@ -0,0 +1,20 @@ +diff --git a/libpurple/plugin.c b/libpurple/plugin.c +index 4f2b402..fda9add 100644 +--- a/libpurple/plugin.c ++++ b/libpurple/plugin.c +@@ -1181,8 +1181,15 @@ purple_plugins_get_handle(void) { + void + purple_plugins_init(void) { + void *handle = purple_plugins_get_handle(); ++ gchar **paths, **p; + + purple_plugins_add_search_path(LIBDIR); ++ paths = g_strsplit(g_getenv("PURPLE_PLUGIN_PATH"), ":", -1); ++ if (paths) { ++ for (p = paths; *p; ++p) ++ if (**p) purple_plugins_add_search_path(*p); ++ } ++ g_strfreev(paths); + + purple_signal_register(handle, "plugin-load", + purple_marshal_VOID__POINTER, diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix new file mode 100644 index 000000000000..1314853ad668 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix @@ -0,0 +1,149 @@ +{ stdenv +, callPackage +, fetchurl +, makeWrapper +, aspell +, avahi +, cacert +, dbus +, dbus-glib +, farstream +, gettext +, gst_all_1 +, gtk2 +, gtk2-x11 +, gtkspell2 +, intltool +, lib +, libICE +, libSM +, libXScrnSaver +, libXext +, libgcrypt +, libgnt +, libidn +, libstartup_notification +, libxml2 +, ncurses +, nspr +, nss +, perlPackages +, pkg-config +, python3 +, pidgin +, plugins ? [] +, withOpenssl ? false, openssl +, withGnutls ? false , gnutls +, withCyrus_sasl ? true, cyrus_sasl +, pidginPackages +}: + +# FIXME: clean the mess around choosing the SSL library (nss by default) + +let + unwrapped = stdenv.mkDerivation rec { + pname = "pidgin"; + version = "2.14.12"; + + src = fetchurl { + url = "mirror://sourceforge/pidgin/pidgin-${version}.tar.bz2"; + sha256 = "sha256-KwUka+IIYF7buTrp7cB5WD1EniqXENttNI0X9ZAgpLc="; + }; + + nativeBuildInputs = [ makeWrapper intltool ]; + + env.NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"; + + buildInputs = let + python-with-dbus = python3.withPackages (pp: with pp; [ dbus-python ]); + in [ + aspell + avahi + cyrus_sasl + dbus + dbus-glib + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + gst_all_1.gstreamer + libICE + libSM + libXScrnSaver + libXext + libgnt + libidn + libstartup_notification + libxml2 + ncurses # optional: build finch - the console UI + nspr + nss + python-with-dbus + ] + ++ lib.optional withOpenssl openssl + ++ lib.optionals withGnutls [ gnutls libgcrypt ] + ++ lib.optionals stdenv.isLinux [ gtk2 gtkspell2 farstream ] + ++ lib.optional stdenv.isDarwin gtk2-x11; + + + propagatedBuildInputs = [ pkg-config gettext ] + ++ (with perlPackages; [ perl XMLParser ]) + ++ lib.optional stdenv.isLinux gtk2 + ++ lib.optional stdenv.isDarwin gtk2-x11; + + patches = [ + ./add-search-path.patch + ./pidgin-makefile.patch + ]; + + configureFlags = [ + "--with-nspr-includes=${nspr.dev}/include/nspr" + "--with-nspr-libs=${nspr.out}/lib" + "--with-nss-includes=${nss.dev}/include/nss" + "--with-nss-libs=${nss.out}/lib" + "--with-ncurses-headers=${ncurses.dev}/include" + "--with-system-ssl-certs=${cacert}/etc/ssl/certs" + "--disable-meanwhile" + "--disable-nm" + "--disable-tcl" + "--disable-gevolution" + ] + ++ lib.optionals withCyrus_sasl [ "--enable-cyrus-sasl=yes" ] + ++ lib.optionals withGnutls [ "--enable-gnutls=yes" "--enable-nss=no" ] + ++ lib.optionals stdenv.isDarwin [ "--disable-gtkspell" "--disable-vv" ]; + + enableParallelBuilding = true; + + postInstall = '' + wrapProgram $out/bin/pidgin \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" + ''; + + doInstallCheck = stdenv.hostPlatform == stdenv.buildPlatform; + # In particular, this detects missing python imports in some of the tools. + postFixup = let + # TODO: python is a script, so it doesn't work as interpreter on darwin + binsToTest = lib.optionalString stdenv.isLinux "purple-remote," + "pidgin,finch"; + in lib.optionalString doInstallCheck '' + for f in "''${!outputBin}"/bin/{${binsToTest}}; do + echo "Testing: $f --help" + "$f" --help + done + ''; + + passthru = { + makePluginPath = lib.makeSearchPathOutput "lib" "lib/purple-${lib.versions.major version}"; + withPlugins = pluginfn: callPackage ./wrapper.nix { + plugins = pluginfn pidginPackages; + pidgin = unwrapped; + }; + }; + + meta = { + description = "Multi-protocol instant messaging client"; + homepage = "https://pidgin.im/"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.lucasew ]; + }; + }; + +in if plugins == [] then unwrapped + else unwrapped.withPlugins (_: plugins) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch new file mode 100644 index 000000000000..049d404a8d5f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch @@ -0,0 +1,64 @@ +diff --git a/pidgin/Makefile.am b/pidgin/Makefile.am +index 84d927b..1467c19 100644 +--- a/pidgin/Makefile.am ++++ b/pidgin/Makefile.am +@@ -151,6 +151,7 @@ pidgin_LDADD = \ + $(GLIB_LIBS) \ + $(DBUS_LIBS) \ + $(GSTREAMER_LIBS) \ ++ $(GSTINTERFACES_LIBS) \ + $(GSTVIDEO_LIBS) \ + $(XSS_LIBS) \ + $(SM_LIBS) \ +@@ -171,6 +172,7 @@ AM_CPPFLAGS = \ + -I$(top_srcdir) \ + $(GLIB_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ ++ $(GSTINTERFACES_CFLAGS) \ + $(DEBUG_CFLAGS) \ + $(GTK_CFLAGS) \ + $(DBUS_CFLAGS) \ +diff --git a/pidgin/Makefile.in b/pidgin/Makefile.in +index 0d51e25..dd5d879 100644 +--- a/pidgin/Makefile.in ++++ b/pidgin/Makefile.in +@@ -703,6 +703,7 @@ EXTRA_DIST = \ + @ENABLE_GTK_TRUE@ $(GLIB_LIBS) \ + @ENABLE_GTK_TRUE@ $(DBUS_LIBS) \ + @ENABLE_GTK_TRUE@ $(GSTREAMER_LIBS) \ ++@ENABLE_GTK_TRUE@ $(GSTINTERFACES_LIBS) \ + @ENABLE_GTK_TRUE@ $(GSTVIDEO_LIBS) \ + @ENABLE_GTK_TRUE@ $(XSS_LIBS) \ + @ENABLE_GTK_TRUE@ $(SM_LIBS) \ +@@ -723,6 +724,7 @@ EXTRA_DIST = \ + @ENABLE_GTK_TRUE@ -I$(top_srcdir) \ + @ENABLE_GTK_TRUE@ $(GLIB_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(GSTREAMER_CFLAGS) \ ++@ENABLE_GTK_TRUE@ $(GSTINTERFACES_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(DEBUG_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(GTK_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(DBUS_CFLAGS) \ +diff --git a/pidgin/plugins/Makefile.am b/pidgin/plugins/Makefile.am +index 3bb8c22..6d1e869 100644 +--- a/pidgin/plugins/Makefile.am ++++ b/pidgin/plugins/Makefile.am +@@ -145,6 +145,7 @@ AM_CPPFLAGS = \ + $(GTK_CFLAGS) \ + $(UNITY_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ ++ $(GSTINTERFACES_CFLAGS) \ + $(PLUGIN_CFLAGS) + + # +diff --git a/pidgin/plugins/Makefile.in b/pidgin/plugins/Makefile.in +index 82a34aa..1f7db00 100644 +--- a/pidgin/plugins/Makefile.in ++++ b/pidgin/plugins/Makefile.in +@@ -781,6 +781,7 @@ AM_CPPFLAGS = \ + $(GTK_CFLAGS) \ + $(UNITY_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ ++ $(GSTINTERFACES_CFLAGS) \ + $(PLUGIN_CFLAGS) + + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/carbons/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/carbons/default.nix new file mode 100644 index 000000000000..f702a667ae16 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/carbons/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, libxml2, pidgin, pkg-config, fetchFromGitHub } : + +stdenv.mkDerivation rec { + pname = "pidgin-carbons"; + version = "0.2.3"; + + src = fetchFromGitHub { + owner = "gkdr"; + repo = "carbons"; + rev = "v${version}"; + sha256 = "sha256-qiyIvmJbRmCrAi/93UxDVtO76nSdtzUVfT/sZGxxAh8="; + }; + + makeFlags = [ "PURPLE_PLUGIN_DIR=$(out)/lib/pidgin" ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libxml2 pidgin ]; + + meta = with lib; { + homepage = "https://github.com/gkdr/carbons"; + description = "XEP-0280: Message Carbons plugin for libpurple"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/default.nix new file mode 100644 index 000000000000..4d4fa9521fc4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/default.nix @@ -0,0 +1,70 @@ +{ lib +, newScope +, pidgin +, texliveBasic +, config +}: + +lib.makeScope newScope (self: + let callPackage = self.callPackage; + in { + pidgin = callPackage ../. { + withOpenssl = config.pidgin.openssl or true; + withGnutls = config.pidgin.gnutls or false; + plugins = []; + }; + + pidginPackages = self; + + pidgin-indicator = callPackage ./pidgin-indicator { }; + + pidgin-latex = callPackage ./pidgin-latex { + texLive = texliveBasic; + }; + + pidgin-msn-pecan = callPackage ./msn-pecan { }; + + pidgin-mra = callPackage ./pidgin-mra { }; + + pidgin-skypeweb = callPackage ./pidgin-skypeweb { }; + + pidgin-carbons = callPackage ./carbons { }; + + pidgin-xmpp-receipts = callPackage ./pidgin-xmpp-receipts { }; + + pidgin-otr = callPackage ./otr { }; + + pidgin-osd = callPackage ./pidgin-osd { }; + + pidgin-sipe = callPackage ./sipe { }; + + pidgin-window-merge = callPackage ./window-merge { }; + + purple-discord = callPackage ./purple-discord { }; + + purple-googlechat = callPackage ./purple-googlechat { }; + + purple-hangouts = callPackage ./purple-hangouts { }; + + purple-lurch = callPackage ./purple-lurch { }; + + purple-matrix = callPackage ./purple-matrix { }; + + purple-mm-sms = callPackage ./purple-mm-sms { }; + + purple-plugin-pack = callPackage ./purple-plugin-pack { }; + + purple-signald = callPackage ./purple-signald { }; + + purple-slack = callPackage ./purple-slack { }; + + purple-vk-plugin = callPackage ./purple-vk-plugin { }; + + purple-xmpp-http-upload = callPackage ./purple-xmpp-http-upload { }; + + tdlib-purple = callPackage ./tdlib-purple { }; + + pidgin-opensteamworks = callPackage ./pidgin-opensteamworks { }; + + purple-facebook = callPackage ./purple-facebook { }; +}) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/msn-pecan/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/msn-pecan/default.nix new file mode 100644 index 000000000000..7a761c1e91c8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/msn-pecan/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, pidgin} : + +stdenv.mkDerivation rec { + pname = "pidgin-msn-pecan"; + version = "0.1.4"; + src = fetchFromGitHub { + owner = "felipec"; + repo = "msn-pecan"; + rev = "v${version}"; + sha256 = "0133rpiy4ik6rx9qn8m38vp7w505hnycggr53g3a2hfpk5xj03zh"; + }; + + meta = { + description = "Alternative MSN protocol plug-in for Pidgin IM"; + homepage = "https://github.com/felipec/msn-pecan"; + platforms = lib.platforms.linux; + }; + + makeFlags = [ + "PURPLE_LIBDIR=${placeholder "out"}/lib" + "PURPLE_DATADIR=${placeholder "out"}/share/data" + ]; + + buildInputs = [pidgin]; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/otr/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/otr/default.nix new file mode 100644 index 000000000000..aa871df5e8af --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/otr/default.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchurl, libotr, pidgin, intltool } : + +stdenv.mkDerivation rec { + pname = "pidgin-otr"; + version = "4.0.2"; + src = fetchurl { + url = "https://otr.cypherpunks.ca/pidgin-otr-${version}.tar.gz"; + sha256 = "1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl"; + }; + + postInstall = "ln -s \$out/lib/pidgin \$out/share/pidgin-otr"; + + nativeBuildInputs = [ intltool ]; + buildInputs = [ libotr pidgin ]; + + meta = with lib; { + homepage = "https://otr.cypherpunks.ca/"; + description = "Plugin for Pidgin 2.x which implements OTR Messaging"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ abbradar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-indicator/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-indicator/default.nix new file mode 100644 index 000000000000..70cb3a9028df --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-indicator/default.nix @@ -0,0 +1,33 @@ +{ autoreconfHook +, fetchFromGitHub +, glib +, intltool +, lib +, libappindicator-gtk2 +, libtool +, pidgin +, stdenv +}: + +stdenv.mkDerivation rec { + pname = "pidgin-indicator"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "philipl"; + repo = pname; + rev = version; + sha256 = "sha256-CdA/aUu+CmCRbVBKpJGydicqFQa/rEsLWS3MBKlH2/M="; + }; + + nativeBuildInputs = [ autoreconfHook intltool ]; + buildInputs = [ glib libappindicator-gtk2 libtool pidgin ]; + + meta = with lib; { + description = "An AppIndicator and KStatusNotifierItem Plugin for Pidgin"; + homepage = "https://github.com/philipl/pidgin-indicator"; + maintainers = with maintainers; [ imalison ]; + license = licenses.gpl2; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-latex/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-latex/default.nix new file mode 100644 index 000000000000..1250e3877b96 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-latex/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchurl, pkg-config, pidgin, texLive, imagemagick, glib, gtk2 }: + +let version = "1.5.0"; +in +stdenv.mkDerivation { + pname = "pidgin-latex"; + inherit version; + + src = fetchurl { + url = "mirror://sourceforge/pidgin-latex/pidgin-latex_${version}.tar.bz2"; + sha256 = "9c850aee90d7e59de834f83e09fa6e3e51b123f06e265ead70957608ada95441"; + }; + + nativeBuildInputs = [pkg-config]; + buildInputs = [gtk2 glib pidgin]; + makeFlags = [ "PREFIX=$(out)" ]; + + postPatch = '' + sed -e 's/-Wl,-soname//' -i Makefile + ''; + + passthru = { + wrapArgs = "--prefix PATH ':' ${lib.makeBinPath [ texLive imagemagick ]}"; + }; + + meta = with lib; { + homepage = "https://sourceforge.net/projects/pidgin-latex/"; + description = "LaTeX rendering plugin for Pidgin IM"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ abbradar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-mra/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-mra/default.nix new file mode 100644 index 000000000000..2c6a0c5e7e64 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-mra/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin } : + +stdenv.mkDerivation rec { + pname = "pidgin-mra"; + version = "unstable-2014-07-08"; + + src = fetchFromGitHub { + owner = "dreadatour"; + repo = "pidgin-mra"; + rev = "54b299266265cde800289b2d51f13b81f6bf379c"; + sha256 = "sha256-fKdEOaijW2LfsH8RHlVGbMpL7Zhu+x2vW4fPEN4puKk="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin ]; + + postPatch = '' + sed -i 's|-I/usr/include/libpurple|$(shell pkg-config --cflags purple)|' Makefile + ''; + + makeFlags = [ + "DESTDIR=/" + "LIBDIR=${placeholder "out"}/lib" + "DATADIR=${placeholder "out"}/share" + ]; + + meta = { + homepage = "https://github.com/dreadatour/pidgin-mra"; + description = "Mail.ru Agent plugin for Pidgin / libpurple"; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-opensteamworks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-opensteamworks/default.nix new file mode 100644 index 000000000000..ceeac0acd0c3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-opensteamworks/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin, glib, json-glib, nss, nspr +, libsecret +} : + +stdenv.mkDerivation rec { + pname = "pidgin-opensteamworks"; + version = "1.7.2"; + + src = fetchFromGitHub { + owner = "EionRobb"; + repo = "pidgin-opensteamworks"; + rev = version; + sha256 = "sha256-VWsoyFG+Ro+Y6ngSTMQ7yBYf6awCMNOc6U0WqNeg/jU="; + }; + + sourceRoot = "${src.name}/steam-mobile"; + + installFlags = [ + "PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2" + "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share" + ]; + + nativeBuildInputs = [ + pkg-config + ]; + buildInputs = [ + pidgin glib json-glib nss nspr libsecret + ]; + + meta = with lib; { + homepage = "https://github.com/EionRobb/pidgin-opensteamworks"; + description = "Plugin for Pidgin 2.x which implements Steam Friends/Steam IM compatibility"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arobyn ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-osd/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-osd/default.nix new file mode 100644 index 000000000000..d50a3ed5c30f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-osd/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, pidgin, xosd +, autoreconfHook } : + +stdenv.mkDerivation rec { + pname = "pidgin-osd"; + version = "0.2.0"; + src = fetchFromGitHub { + owner = "edanaher"; + repo = "pidgin-osd"; + rev = "${pname}-${version}"; + sha256 = "07wa9anz99hnv6kffpcph3fbq8mjbyq17ij977ggwgw37zb9fzb5"; + }; + + # autoreconf is run such that it *really* wants all the files, and there's no + # default ChangeLog. So make it happy. + preAutoreconf = "touch ChangeLog"; + + postInstall = '' + mkdir -p $out/lib/pidgin + mv $out/lib/pidgin-osd.{la,so} $out/lib/pidgin + ''; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ xosd pidgin ]; + + meta = with lib; { + homepage = "https://github.com/mbroemme/pidgin-osd"; + description = "Plugin for Pidgin which implements on-screen display via libxosd"; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-skypeweb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-skypeweb/default.nix new file mode 100644 index 000000000000..d7c3c6cacabd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-skypeweb/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin, json-glib }: + +stdenv.mkDerivation rec { + pname = "pidgin-skypeweb"; + version = "1.7"; + + src = fetchFromGitHub { + owner = "EionRobb"; + repo = "skype4pidgin"; + rev = version; + sha256 = "11snyrjhm58gjvdmr5h5ajii3ah4a7c8zw3cavjv9xnnwrpfm5rb"; + }; + + setSourceRoot = '' + sourceRoot=$(echo */skypeweb) + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin json-glib ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + meta = with lib; { + homepage = "https://github.com/EionRobb/skype4pidgin"; + description = "SkypeWeb plugin for Pidgin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-xmpp-receipts/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-xmpp-receipts/default.nix new file mode 100644 index 000000000000..f545b65cd8ea --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-xmpp-receipts/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, pidgin } : + +let + version = "0.8"; +in +stdenv.mkDerivation { + pname = "pidgin-xmpp-receipts"; + inherit version; + + src = fetchFromGitHub { + owner = "noonien-d"; + repo = "pidgin-xmpp-receipts"; + rev = "release_${version}"; + sha256 = "13kwaymzkymjsdv8q95byd173i4vanj211vgx9cm0y8ag2r3cjsb"; + }; + + buildInputs = [ pidgin ]; + + installPhase = '' + mkdir -p $out/lib/pidgin/ + cp xmpp-receipts.so $out/lib/pidgin/ + ''; + + meta = with lib; { + homepage = "http://devel.kondorgulasch.de/pidgin-xmpp-receipts/"; + description = "Message delivery receipts (XEP-0184) Pidgin plugin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ orivej ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-discord/default.nix new file mode 100644 index 000000000000..8af6811d6a58 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-discord/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, imagemagick, gettext, pidgin, json-glib }: + +stdenv.mkDerivation { + pname = "purple-discord"; + version = "unstable-2021-10-17"; + + src = fetchFromGitHub { + owner = "EionRobb"; + repo = "purple-discord"; + rev = "b7ac72399218d2ce011ac84bb171b572560aa2d2"; + sha256 = "0xvj9rdvgsvcr55sk9m40y07rchg699l1yr98xqwx7sc2sba3814"; + }; + + nativeBuildInputs = [ imagemagick gettext ]; + buildInputs = [ pidgin json-glib ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + meta = with lib; { + homepage = "https://github.com/EionRobb/purple-discord"; + description = "Discord plugin for Pidgin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ sna ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-facebook/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-facebook/default.nix new file mode 100644 index 000000000000..b1078c864de6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-facebook/default.nix @@ -0,0 +1,66 @@ +{ lib, stdenv, fetchFromGitHub, fetchhg, pidgin, glib, json-glib, autoreconfHook }: + + +let + pidginHg = fetchhg { + url = "https://bitbucket.org/pidgin/main"; + # take from VERSION file + rev = "9ff9acf9fa14"; + sha256 = "06imlhsps4wrjgjb92zpaxprxfxl2pjb2x9pl859c8cryssrz2jv"; + }; + +in stdenv.mkDerivation rec { + pname = "purple-facebook"; + version = "0.9.5"; + + src = fetchFromGitHub { + owner = "dequis"; + repo = "purple-facebook"; + rev = "v${version}-9ff9acf9fa14"; + sha256 = "0a1860bkzrmyxahm9rlxi80z335w491wzdaqaw6j9ccavbymhwhs"; + }; + + postPatch = '' + # we do all patching from update.sh in preAutoreconf + echo "#!${stdenv.shell}" > update.sh + ''; + + preAutoreconf = '' + for FILE in $(cat MANIFEST_PIDGIN); do + install -Dm644 "${pidginHg}/$FILE" "pidgin/$FILE" || true + done + + touch $(cat MANIFEST_VOIDS) + + patchdir="$(pwd)/patches" + pushd pidgin + + for patch in $(ls -1 "$patchdir"); do + patch -p1 -i "$patchdir/$patch" + done + popd + + ./autogen.sh + ''; + + makeFlags = [ + "PLUGIN_DIR_PURPLE=/lib/pidgin/" + "DATA_ROOT_DIR_PURPLE=/share" + ]; + + installPhase = '' + mkdir -p $out/lib/purple-2 + cp pidgin/libpurple/protocols/facebook/.libs/*.so $out/lib/purple-2/ + ''; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ pidgin glib json-glib ]; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Facebook protocol plugin for libpurple"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ davorb ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-googlechat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-googlechat/default.nix new file mode 100644 index 000000000000..b274b55ac228 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-googlechat/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, pidgin, glib, json-glib, protobuf, protobufc }: + +stdenv.mkDerivation { + pname = "purple-googlechat"; + version = "unstable-2021-10-18"; + + src = fetchFromGitHub { + owner = "EionRobb"; + repo = "purple-googlechat"; + rev = "56ba7f79883eca67d37629d365776f6c0b40abdc"; + sha256 = "sha256-iTYVgYI9+6rqqBl5goeEAXpK8FgHDv0MmPsV/82reWA="; + }; + + nativeBuildInputs = [ protobufc ]; + buildInputs = [ pidgin glib json-glib protobuf ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + meta = with lib; { + homepage = "https://github.com/EionRobb/purple-googlechat"; + description = "Native Google Chat support for pidgin"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-hangouts/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-hangouts/default.nix new file mode 100644 index 000000000000..653708abe3b6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-hangouts/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchhg, pidgin, glib, json-glib, protobuf, protobufc }: + +stdenv.mkDerivation { + pname = "purple-hangouts-hg"; + version = "2018-12-02"; + + src = fetchhg { + url = "https://bitbucket.org/EionRobb/purple-hangouts/"; + rev = "cccf2f6"; + sha256 = "1zd1rlzqvw1zkb0ydyz039n3xa1kv1f20a4l6rkm9a8sp6rpf3pi"; + }; + + buildInputs = [ pidgin glib json-glib protobuf protobufc ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + meta = with lib; { + homepage = "https://bitbucket.org/EionRobb/purple-hangouts"; + description = "Native Hangouts support for pidgin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ralith ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-lurch/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-lurch/default.nix new file mode 100644 index 000000000000..c0497ed86ce1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-lurch/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pidgin, minixml, libxml2, sqlite, libgcrypt }: + +stdenv.mkDerivation rec { + pname = "purple-lurch"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "gkdr"; + repo = "lurch"; + rev = "v${version}"; + sha256 = "sha256-yyzotKL1Z4B2BxloJndJKemONMPLG9pVDVe2K5AL05g="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ pidgin minixml libxml2 sqlite libgcrypt ]; + + dontUseCmakeConfigure = true; + + installPhase = '' + install -Dm755 -t $out/lib/purple-2 build/lurch.so + ''; + + meta = with lib; { + homepage = "https://github.com/gkdr/lurch"; + description = "XEP-0384: OMEMO Encryption for libpurple"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ emmanuelrosa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-matrix/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-matrix/default.nix new file mode 100644 index 000000000000..0b51d172b746 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-matrix/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin, json-glib, glib, http-parser, sqlite, olm, libgcrypt } : + +stdenv.mkDerivation rec { + pname = "purple-matrix-unstable"; + version = "2019-06-06"; + + src = fetchFromGitHub { + owner = "matrix-org"; + repo = "purple-matrix"; + rev = "4494ba22b479917f0b1f96a3019792d3d75bcff1"; + sha256 = "1gjm0z4wa5vi9x1xk43rany5pffrwg958n180ahdj9a7sa8a4hpm"; + }; + + env.NIX_CFLAGS_COMPILE = builtins.toString [ + # glib-2.62 deprecations + "-DGLIB_DISABLE_DEPRECATION_WARNINGS" + # override "-O0 -Werror" set by build system + "-O3" "-Wno-error" + ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin json-glib glib http-parser sqlite olm libgcrypt ]; + + makeFlags = [ + "PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2" + "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share" + ]; + + buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; # fix build on darwin + + meta = with lib; { + homepage = "https://github.com/matrix-org/purple-matrix"; + description = "Matrix support for Pidgin / libpurple"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ symphorien ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-mm-sms/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-mm-sms/default.nix new file mode 100644 index 000000000000..121ef0231a74 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-mm-sms/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, glibmm, pidgin, pkg-config, modemmanager, fetchFromGitLab } : + +stdenv.mkDerivation rec { + pname = "purple-mm-sms"; + version = "0.1.7"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = pname; + rev = "v${version}"; + sha256 = "0917gjig35hmi6isqb62vhxd3lkc2nwdn13ym2gvzgcjfgjzjajr"; + }; + + makeFlags = [ + "DATA_ROOT_DIR_PURPLE=$(out)/share" + "PLUGIN_DIR_PURPLE=$(out)/lib/purple-2" + ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ glibmm pidgin modemmanager ]; + + meta = with lib; { + homepage = "https://source.puri.sm/Librem5/purple-mm-sms"; + description = "A libpurple plugin for sending and receiving SMS via Modemmanager"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-plugin-pack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-plugin-pack/default.nix new file mode 100644 index 000000000000..388f633f3dab --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-plugin-pack/default.nix @@ -0,0 +1,42 @@ +{ lib +, stdenv +, fetchurl +, meson +, ninja +, pidgin +}: + +stdenv.mkDerivation rec { + pname = "purple-plugin-pack"; + version = "2.8.0"; + + src = fetchurl { + url = "mirror://sourceforge/pidgin/purple-plugin-pack-2.8.0.tar.xz"; + hash = "sha256-gszemnJRp1t+A6P5qSkBTY4AjBtvRuWGOPX0dto+JC0="; + }; + + postPatch = '' + substituteInPlace meson.build \ + --replace "PURPLE.get_pkgconfig_variable('plugindir')" "'$out/lib/purple-2'" \ + --replace "PURPLE.get_pkgconfig_variable('datadir')" "'$out/share'" \ + --replace "PIDGIN.get_pkgconfig_variable('plugindir')" "'$out/lib/pidgin'" \ + --replace "PIDGIN.get_pkgconfig_variable('datadir')" "'$out/share'" + ''; + + nativeBuildInputs = [ + meson + ninja + ]; + + buildInputs = [ + pidgin + ]; + + meta = with lib; { + homepage = "https://keep.imfreedom.org/pidgin/purple-plugin-pack"; + description = "Collection of plugins for purple-based clients such as Pidgin"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ bdimcheff ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-signald/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-signald/default.nix new file mode 100644 index 000000000000..50ae99ceaecf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-signald/default.nix @@ -0,0 +1,32 @@ +{ 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"; + PKG_CONFIG_PIDGIN_DATADIR = "${placeholder "out"}/share"; + + 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/pidgin-plugins/purple-slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-slack/default.nix new file mode 100644 index 000000000000..9f5f9a2bda1e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-slack/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, pidgin, pkg-config }: + +stdenv.mkDerivation { + pname = "purple-slack-unstable"; + version = "2020-09-22"; + + src = fetchFromGitHub { + owner = "dylex"; + repo = "slack-libpurple"; + rev = "2e9fa028224b02e29473b1b998fc1e5f487e79ec"; + sha256 = "1sksqshiwldd32k8jmiflp2pcax31ym6rypr4qa4v5vdn907g80m"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATAROOTDIR = "${placeholder "out"}/share"; + + meta = with lib; { + homepage = "https://github.com/dylex/slack-libpurple"; + description = "Slack plugin for Pidgin"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ eyjhb ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-vk-plugin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-vk-plugin/default.nix new file mode 100644 index 000000000000..07b38ff3c5a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-vk-plugin/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchhg, pidgin, cmake, libxml2 } : + +let + version = "40ddb6d"; +in +stdenv.mkDerivation { + pname = "purple-vk-plugin"; + inherit version; + + src = fetchhg { + url = "https://bitbucket.org/olegoandreev/purple-vk-plugin"; + rev = version; + sha256 = "02p57fgx8ml00cbrb4f280ak2802svz80836dzk9f1zwm1bcr2qc"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ pidgin libxml2 ]; + + preConfigure = '' + sed -i -e 's|DESTINATION.*PURPLE_PLUGIN_DIR}|DESTINATION lib/purple-2|' CMakeLists.txt + ''; + + cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT=1" ]; + + meta = { + homepage = "https://bitbucket.org/olegoandreev/purple-vk-plugin"; + description = "Vk (russian social network) plugin for Pidgin / libpurple"; + license = lib.licenses.gpl3; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-xmpp-http-upload/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-xmpp-http-upload/default.nix new file mode 100644 index 000000000000..c52082e06c90 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-xmpp-http-upload/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, pidgin, glib, libxml2 }: + +stdenv.mkDerivation { + pname = "purple-xmpp-upload"; + version = "unstable-2021-11-04"; + + src = fetchFromGitHub { + owner = "Junker"; + repo = "purple-xmpp-http-upload"; + rev = "f370b4a2c474c6fe4098d929d8b7c18aeba87b6b"; + sha256 = "0n05jybmibn44xb660p08vrrbanfsyjn17w1xm9gwl75fxxq8cdc"; + }; + + buildInputs = [ pidgin glib libxml2 ]; + + installPhase = '' + install -Dm644 -t $out/lib/purple-2 jabber_http_file_upload.so + ''; + + meta = with lib; { + homepage = "https://github.com/Junker/purple-xmpp-http-upload"; + description = "HTTP File Upload plugin for libpurple (XMPP Protocol XEP-0363)"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ emmanuelrosa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/sipe/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/sipe/default.nix new file mode 100644 index 000000000000..1cf7fed874e9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/sipe/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchurl, fetchpatch, pidgin, intltool, libxml2, gmime, nss }: + +stdenv.mkDerivation rec { + pname = "pidgin-sipe"; + version = "1.25.0"; + + src = fetchurl { + url = "mirror://sourceforge/sipe/${pname}-${version}.tar.gz"; + sha256 = "0262sz00iqxylx0xfyr48xikhiqzr8pg7b4b7vwj5iv4qxpxv939"; + }; + + patches = [ + # add sipe_utils_memdup() function + (fetchpatch { + url = "https://repo.or.cz/siplcs.git/patch/567d0ddc0692adfef5f15d0d383825a9b2ea4b49"; + sha256 = "24L8ZfoOGc3JoTCGxuTNjuHzt5QgFDu1+vSoJpGvde4="; + }) + # replace g_memdup() with sipe_utils_memdup() + # g_memdup is deprecatein newer Glib + (fetchpatch { + url = "https://repo.or.cz/siplcs.git/patch/583a734e63833f03d11798b7b0d59a17d08ae60f"; + sha256 = "Ai6Czpy/FYvBi4GZR7yzch6OcouJgfreI9HcojhGVV4="; + }) + ]; + + nativeBuildInputs = [ intltool ]; + buildInputs = [ pidgin gmime libxml2 nss ]; + configureFlags = [ + "--without-dbus" + "--enable-quality-check=no" + ]; + + enableParallelBuilding = true; + + postInstall = "ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe"; + + meta = with lib; { + description = "SIPE plugin for Pidgin IM"; + homepage = "http://sipe.sourceforge.net/"; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/tdlib-purple/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/tdlib-purple/default.nix new file mode 100644 index 000000000000..1a1fd3b409a6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/tdlib-purple/default.nix @@ -0,0 +1,45 @@ +{ 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 + + env.NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ "-U__ARM_NEON__" ]); + + 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; + + # tdlib-purple is not actively maintained and currently not + # compatible with recent versions of tdlib + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/window-merge/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/window-merge/default.nix new file mode 100644 index 000000000000..c5437e965ed8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/window-merge/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchurl, pidgin } : + +stdenv.mkDerivation rec { + pname = "pidgin-window-merge"; + version = "0.3"; + + src = fetchurl { + url = "https://github.com/downloads/dm0-/window_merge/window_merge-${version}.tar.gz"; + sha256 = "0cb5rvi7jqvm345g9mlm4wpq0240kcybv81jpw5wlx7hz0lwi478"; + }; + + buildInputs = [ pidgin ]; + + meta = with lib; { + homepage = "https://github.com/dm0-/window_merge"; + description = "Pidgin plugin that merges the Buddy List window with a conversation window"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix new file mode 100644 index 000000000000..a2885d7194f4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix @@ -0,0 +1,20 @@ +{ lib, symlinkJoin, pidgin, makeWrapper, plugins }: + +let +extraArgs = map (x: x.wrapArgs or "") plugins; +in symlinkJoin { + name = "pidgin-with-plugins-${pidgin.version}"; + + paths = [ pidgin ] ++ plugins; + + nativeBuildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/pidgin \ + --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${lib.versions.major pidgin.version} $out/lib/pidgin" \ + ${toString extraArgs} + wrapProgram $out/bin/finch \ + --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${lib.versions.major pidgin.version}" \ + ${toString extraArgs} + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix new file mode 100644 index 000000000000..a0163322064e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix @@ -0,0 +1,52 @@ +{ lib +, fetchFromGitLab +, pkg-config +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "poezio"; + version = "0.13.1"; + format = "setuptools"; + + src = fetchFromGitLab { + domain = "lab.louiz.org"; + owner = pname; + repo = pname; + rev = "refs/tags/v${version}"; + sha256 = "sha256-3pUegEfhQxEv/7Htw6b2BN1lXtDockyANmi1xW4wPhA="; + }; + + nativeBuildInputs = [ + pkg-config + ]; + + propagatedBuildInputs = with python3.pkgs; [ + aiodns + cffi + mpd2 + potr + pyasn1 + pyasn1-modules + pycares + pyinotify + slixmpp + typing-extensions + ]; + + nativeCheckInputs = with python3.pkgs; [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "poezio" + ]; + + meta = with lib; { + description = "Free console XMPP client"; + homepage = "https://poez.io"; + changelog = "https://lab.louiz.org/poezio/poezio/-/blob/v${version}/CHANGELOG"; + license = licenses.zlib; + maintainers = with maintainers; [ lsix ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix new file mode 100644 index 000000000000..cb8b09c336db --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix @@ -0,0 +1,103 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoconf-archive +, autoreconfHook +, cmocka +, curl +, expat +, expect +, glib +, glibcLocales +, libstrophe +, libmicrohttpd +, libotr +, libuuid +, ncurses +, openssl +, pkg-config +, readline +, sqlite +, autoAwaySupport ? true, libXScrnSaver, libX11 +, notifySupport ? true, libnotify, gdk-pixbuf +, omemoSupport ? true, libsignal-protocol-c, libgcrypt +, pgpSupport ? true, gpgme +, pythonPluginSupport ? true, python3 +, traySupport ? true, gtk3 +}: + +stdenv.mkDerivation rec { + pname = "profanity"; + version = "0.14.0"; + + src = fetchFromGitHub { + owner = "profanity-im"; + repo = "profanity"; + rev = version; + hash = "sha256-u/mp+vtMj602LfrulA+nhLNH8K6sqKIOuPJzhZusVmE="; + }; + + patches = [ + ./patches/packages-osx.patch + ]; + + enableParallelBuilding = true; + + nativeBuildInputs = [ + autoconf-archive + autoreconfHook + glibcLocales + pkg-config + ]; + + buildInputs = [ + cmocka + curl + expat + expect + glib + libstrophe + libmicrohttpd + libotr + libuuid + ncurses + openssl + readline + sqlite + ] ++ lib.optionals autoAwaySupport [ libXScrnSaver libX11 ] + ++ lib.optionals notifySupport [ libnotify gdk-pixbuf ] + ++ lib.optionals omemoSupport [ libsignal-protocol-c libgcrypt ] + ++ lib.optionals pgpSupport [ gpgme ] + ++ lib.optionals pythonPluginSupport [ python3 ] + ++ lib.optionals traySupport [ gtk3 ]; + + # Enable feature flags, so that build fail if libs are missing + configureFlags = [ + "--enable-c-plugins" + "--enable-otr" + ] ++ lib.optionals notifySupport [ "--enable-notifications" ] + ++ lib.optionals traySupport [ "--enable-icons-and-clipboard" ] + ++ lib.optionals pgpSupport [ "--enable-pgp" ] + ++ lib.optionals pythonPluginSupport [ "--enable-python-plugins" ] + ++ lib.optionals omemoSupport [ "--enable-omemo" ]; + + preAutoreconf = '' + mkdir m4 + ''; + + doCheck = true; + + LC_ALL = "en_US.utf8"; + + meta = with lib; { + homepage = "http://www.profanity.im/"; + description = "A console based XMPP client"; + longDescription = '' + Profanity is a console based XMPP client written in C using ncurses and + libstrophe, inspired by Irssi. + ''; + license = licenses.gpl3Plus; + maintainers = [ maintainers.devhell ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch new file mode 100644 index 000000000000..796ec6b0a615 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch @@ -0,0 +1,13 @@ +diff --git a/configure.ac b/configure.ac +index 5c00aca..eb78060 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -23,7 +23,6 @@ PLATFORM="unknown" + AS_CASE([$host_os], + [freebsd*], [PLATFORM="freebsd"], + [openbsd*], [PLATFORM="openbsd"], +- [darwin*], [PLATFORM="osx"], + [cygwin], [PLATFORM="cygwin"], + [PLATFORM="nix"]) + + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix new file mode 100644 index 000000000000..750ebe186bb8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix @@ -0,0 +1,106 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, qtbase +, qtmultimedia +, qtimageformats +, qtx11extras +, qttools +, libidn +, qca-qt5 +, libXScrnSaver +, hunspell +, libsecret +, libgcrypt +, libotr +, html-tidy +, libgpg-error +, libsignal-protocol-c +, usrsctp + +, chatType ? "basic" # See the assertion below for available options +, qtwebkit +, qtwebengine + +, enablePlugins ? true + + # Voice messages +, voiceMessagesSupport ? true +, gst_all_1 + +, enablePsiMedia ? false +, pkg-config +}: + +assert builtins.elem (lib.toLower chatType) [ + "basic" # Basic implementation, no web stuff involved + "webkit" # Legacy one, based on WebKit (see https://wiki.qt.io/Qt_WebKit) + "webengine" # QtWebEngine (see https://wiki.qt.io/QtWebEngine) +]; + +assert enablePsiMedia -> enablePlugins; + +mkDerivation rec { + pname = "psi-plus"; + version = "1.5.1653"; + + src = fetchFromGitHub { + owner = "psi-plus"; + repo = "psi-plus-snapshots"; + rev = version; + sha256 = "sha256-9WT2S6ZgIsrHoEAvlWUB078gzCdrPylvSjkkogU5tsU="; + }; + + cmakeFlags = [ + "-DCHAT_TYPE=${chatType}" + "-DENABLE_PLUGINS=${if enablePlugins then "ON" else "OFF"}" + "-DBUILD_PSIMEDIA=${if enablePsiMedia then "ON" else "OFF"}" + ]; + + nativeBuildInputs = [ + cmake + qttools + ] ++ lib.optionals enablePsiMedia [ + pkg-config + ]; + + buildInputs = [ + qtbase + qtmultimedia + qtimageformats + qtx11extras + libidn + qca-qt5 + libXScrnSaver + hunspell + libsecret + libgcrypt + libotr + html-tidy + libgpg-error + libsignal-protocol-c + usrsctp + ] ++ lib.optionals voiceMessagesSupport [ + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + ] ++ lib.optionals (chatType == "webkit") [ + qtwebkit + ] ++ lib.optionals (chatType == "webengine") [ + qtwebengine + ]; + + preFixup = lib.optionalString voiceMessagesSupport '' + qtWrapperArgs+=( + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" + ) + ''; + + meta = with lib; { + homepage = "https://psi-plus.com"; + description = "XMPP (Jabber) client based on Qt5"; + maintainers = with maintainers; [ orivej misuzu unclechu ]; + license = licenses.gpl2Only; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix new file mode 100644 index 000000000000..62b6c8f8e59c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix @@ -0,0 +1,32 @@ +{ lib, mkDerivation, fetchFromGitHub, cmake +, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine +, libidn, qca-qt5, libXScrnSaver, hunspell +}: + +mkDerivation rec { + pname = "psi"; + version = "1.5"; + src = fetchFromGitHub { + owner = "psi-im"; + repo = pname; + rev = version; + sha256 = "hXDZODHl14kimRlMQ1XjISQ2kk9NS78axVN3U21wkuM="; + fetchSubmodules = true; + }; + patches = [ + ./fix-cmake-hunspell-1.7.patch + ]; + nativeBuildInputs = [ cmake qttools ]; + buildInputs = [ + qtbase qtmultimedia qtx11extras qtwebengine + libidn qca-qt5 libXScrnSaver hunspell + ]; + + meta = with lib; { + homepage = "https://psi-im.org"; + description = "An XMPP (Jabber) client"; + maintainers = [ maintainers.raskin ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch new file mode 100644 index 000000000000..7d5711a6f2bc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch @@ -0,0 +1,12 @@ +diff --git a/cmake/modules/FindHunspell.cmake b/cmake/modules/FindHunspell.cmake +index a2d180b3..3a5aef3a 100644 +--- a/cmake/modules/FindHunspell.cmake ++++ b/cmake/modules/FindHunspell.cmake +@@ -64,6 +64,7 @@ set(HUNSPELL_NAMES + hunspell-1.4 + hunspell-1.5 + hunspell-1.6 ++ hunspell-1.7 + libhunspell${d} + ) + find_library( diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/qq/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/qq/default.nix new file mode 100644 index 000000000000..0f02f0413506 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qq/default.nix @@ -0,0 +1,108 @@ +{ alsa-lib +, cups +, dpkg +, fetchurl +, glib +, gtk3 +, lib +, libayatana-appindicator +, libdrm +, libgcrypt +, libkrb5 +, libnotify +, mesa # for libgbm +, libGL +, nss +, xorg +, systemd +, stdenv +, vips +, at-spi2-core +, autoPatchelfHook +, wrapGAppsHook +}: + +let + sources = import ./sources.nix; + srcs = { + x86_64-linux = fetchurl { + url = "https://dldir1.qq.com/qqfile/qq/QQNT/${sources.urlhash}/linuxqq_${sources.version}_amd64.deb"; + hash = sources.amd64_hash; + }; + aarch64-linux = fetchurl { + url = "https://dldir1.qq.com/qqfile/qq/QQNT/${sources.urlhash}/linuxqq_${sources.version}_arm64.deb"; + hash = sources.arm64_hash; + }; + }; + src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); +in +stdenv.mkDerivation { + pname = "qq"; + version = sources.version; + inherit src; + + nativeBuildInputs = [ + autoPatchelfHook + wrapGAppsHook + dpkg + ]; + + buildInputs = [ + alsa-lib + at-spi2-core + cups + glib + gtk3 + libdrm + libgcrypt + libkrb5 + mesa + nss + vips + xorg.libXdamage + ]; + + runtimeDependencies = map lib.getLib [ + systemd + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp -r opt $out/opt + cp -r usr/share $out/share + substituteInPlace $out/share/applications/qq.desktop \ + --replace "/opt/QQ/qq" "$out/bin/qq" \ + --replace "/usr/share" "$out/share" + makeWrapper $out/opt/QQ/qq $out/bin/qq \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" + + # Remove bundled libraries + rm -r $out/opt/QQ/resources/app/sharp-lib + + # https://aur.archlinux.org/cgit/aur.git/commit/?h=linuxqq&id=f7644776ee62fa20e5eb30d0b1ba832513c77793 + rm -r $out/opt/QQ/resources/app/libssh2.so.1 + + # https://github.com/microcai/gentoo-zh/commit/06ad5e702327adfe5604c276635ae8a373f7d29e + ln -s ${libayatana-appindicator}/lib/libayatana-appindicator3.so \ + $out/opt/QQ/libappindicator3.so + + ln -s ${libnotify}/lib/libnotify.so \ + $out/opt/QQ/libnotify.so + + runHook postInstall + ''; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + homepage = "https://im.qq.com/linuxqq/"; + description = "Messaging app"; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + license = licenses.unfree; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + maintainers = with lib.maintainers; [ fee1-dead ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/qq/sources.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/qq/sources.nix new file mode 100644 index 000000000000..eda78b80edef --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qq/sources.nix @@ -0,0 +1,8 @@ +# Generated by ./update.sh - do not update manually! +# Last updated: 2024-01-27 +{ + version = "3.2.5-21159"; + urlhash = "feb78c41"; + arm64_hash = "sha256-3zbhFKQrO1tMSnWJllLJLaVeVpLs44WBbuuyU1LTMIU="; + amd64_hash = "sha256-pX99V18gjlMM6+jC9U7E5YvHDODGsrj0twt9K4rJN4Y="; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/qq/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/qq/update.sh new file mode 100755 index 000000000000..8b9121299bbe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qq/update.sh @@ -0,0 +1,31 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i bash --pure --keep GITHUB_TOKEN -p nix git curl cacert nix-prefetch-git jq + +set -euo pipefail + +cd $(readlink -e $(dirname "${BASH_SOURCE[0]}")) + +payload=$(curl https://im.qq.com/rainbow/linuxQQDownload | grep -oP "var params= \K\{.*\}(?=;)") +amd64_url=$(jq -r .x64DownloadUrl.deb <<< "$payload") +arm64_url=$(jq -r .armDownloadUrl.deb <<< "$payload") + +urlhash=$(grep -oP "(?<=QQNT/)[a-f0-9]+(?=/linuxqq)" <<< "$amd64_url") +version=$(grep -oP "(?<=/linuxqq_).*(?=_amd64.deb)" <<< "$amd64_url") + +amd64_hash=$(nix-prefetch-url $amd64_url) +arm64_hash=$(nix-prefetch-url $arm64_url) + +# use friendlier hashes +amd64_hash=$(nix hash to-sri --type sha256 "$amd64_hash") +arm64_hash=$(nix hash to-sri --type sha256 "$arm64_hash") + +cat >sources.nix <<EOF +# Generated by ./update.sh - do not update manually! +# Last updated: $(date +%F) +{ + version = "$version"; + urlhash = "$urlhash"; + arm64_hash = "$arm64_hash"; + amd64_hash = "$amd64_hash"; +} +EOF diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix new file mode 100644 index 000000000000..8273a6fdbc6d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix @@ -0,0 +1,77 @@ +{ lib +, stdenv +, mkDerivation +, fetchFromGitHub +, cmake +, pkg-config +, perl +, libtoxcore +, libpthreadstubs +, libXdmcp +, libXScrnSaver +, qtbase +, qtsvg +, qttools +, ffmpeg +, filter-audio +, libexif +, libsodium +, libopus +, libvpx +, openal +, pcre +, qrencode +, sqlcipher +, AVFoundation +}: + +mkDerivation rec { + pname = "qtox"; + version = "1.17.6"; + + src = fetchFromGitHub { + owner = "qTox"; + repo = "qTox"; + rev = "v${version}"; + sha256 = "sha256-naKWoodSMw0AEtACvkASFmw9t0H0d2pcqOW79NNTYF0="; + }; + + buildInputs = [ + libtoxcore + libpthreadstubs + libXdmcp + libXScrnSaver + qtbase + qtsvg + ffmpeg + filter-audio + libexif + libopus + libsodium + libvpx + openal + pcre + qrencode + sqlcipher + ] ++ lib.optionals stdenv.isDarwin [ AVFoundation ]; + + nativeBuildInputs = [ cmake pkg-config qttools ] + ++ lib.optionals stdenv.isDarwin [ perl ]; + + cmakeFlags = [ + "-DGIT_DESCRIBE=v${version}" + "-DENABLE_STATUSNOTIFIER=False" + "-DENABLE_GTK_SYSTRAY=False" + "-DENABLE_APPINDICATOR=False" + "-DTIMESTAMP=1" + ]; + + meta = with lib; { + broken = stdenv.isDarwin; + description = "Qt Tox client"; + homepage = "https://tox.chat"; + license = licenses.gpl3; + maintainers = with maintainers; [ akaWolf peterhoeg ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix new file mode 100644 index 000000000000..133766d8cc0d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix @@ -0,0 +1,60 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, wrapQtAppsHook +, qtbase +, qtquickcontrols2 +, qtkeychain +, qtmultimedia +, qttools +, libquotient +, libsecret +, olm +}: + +stdenv.mkDerivation rec { + pname = "quaternion"; + version = "0.0.96-beta4"; + + src = fetchFromGitHub { + owner = "quotient-im"; + repo = "Quaternion"; + rev = "refs/tags/${version}"; + hash = "sha256-yItl31Ze48lRIIey+FlRLMVAkg4mHu8G1sFOceHvTJw="; + }; + + buildInputs = [ + libquotient + libsecret + olm + qtbase + qtkeychain + qtmultimedia + qtquickcontrols2 + ]; + + nativeBuildInputs = [ cmake qttools wrapQtAppsHook ]; + + cmakeFlags = [ + "-DBUILD_WITH_QT6=OFF" + ]; + + postInstall = + if stdenv.isDarwin then '' + mkdir -p $out/Applications + mv $out/bin/quaternion.app $out/Applications + rmdir $out/bin || : + '' else '' + substituteInPlace $out/share/applications/com.github.quaternion.desktop \ + --replace 'Exec=quaternion' "Exec=$out/bin/quaternion" + ''; + + meta = with lib; { + description = "Cross-platform desktop IM client for the Matrix protocol"; + homepage = "https://matrix.org/ecosystem/clients/quaternion/"; + license = licenses.gpl3; + maintainers = with maintainers; [ peterhoeg ]; + inherit (qtquickcontrols2.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix new file mode 100644 index 000000000000..87f0cd4c9747 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix @@ -0,0 +1,43 @@ +{ appimageTools, lib, fetchurl, makeDesktopItem }: + +let + pname = "rambox"; + version = "2.3.0"; + + src = fetchurl { + url = "https://github.com/ramboxapp/download/releases/download/v${version}/Rambox-${version}-linux-x64.AppImage"; + sha256 = "sha256-PmTiXQp+AkTwCKisH1tR6B1+cHPx25P8FAAlLvKEb3w="; + }; + + desktopItem = (makeDesktopItem { + desktopName = "Rambox"; + name = pname; + exec = "rambox"; + icon = pname; + categories = [ "Network" ]; + }); + + appimageContents = appimageTools.extractType2 { + inherit pname version src; + }; +in +appimageTools.wrapType2 { + inherit pname version src; + + extraInstallCommands = '' + mkdir -p $out/share/applications $out/share/icons/hicolor/256x256/apps + ln -sf rambox-${version} $out/bin/${pname} + install -Dm644 ${appimageContents}/usr/share/icons/hicolor/256x256/apps/rambox*.png $out/share/icons/hicolor/256x256/apps/${pname}.png + install -Dm644 ${desktopItem}/share/applications/* $out/share/applications + ''; + + extraPkgs = pkgs: with pkgs; [ procps ]; + + meta = with lib; { + description = "Workspace Simplifier - a cross-platform application organizing web services into Workspaces similar to browser profiles"; + homepage = "https://rambox.app"; + license = licenses.unfree; + maintainers = with maintainers; [ nazarewk ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix new file mode 100644 index 000000000000..5dcb22050763 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchgit, libtoxcore +, conf ? null }: + +let + configFile = lib.optionalString (conf!=null) (builtins.toFile "config.h" conf); + +in stdenv.mkDerivation { + pname = "ratox"; + version = "0.4.20180303"; + + src = fetchgit { + url = "git://git.2f30.org/ratox.git"; + rev = "269f7f97fb374a8f9c0b82195c21de15b81ddbbb"; + sha256 = "0bpn37h8jvsqd66fkba8ky42nydc8acawa5x31yxqlxc8mc66k74"; + }; + + buildInputs = [ libtoxcore ]; + + preConfigure = '' + substituteInPlace config.mk \ + --replace '-lsodium -lopus -lvpx ' "" + + ${lib.optionalString (conf!=null) "cp ${configFile} config.def.h"} + ''; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + description = "FIFO based tox client"; + homepage = "http://ratox.2f30.org/"; + license = licenses.isc; + maintainers = with maintainers; [ ehmry ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix new file mode 100644 index 000000000000..857614962d3e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix @@ -0,0 +1,62 @@ +{ stdenv +, lib +, fetchurl +, appimageTools +, makeWrapper +, electron +}: + +stdenv.mkDerivation rec { + pname = "revolt-desktop"; + version = "1.0.6"; + + src = fetchurl { + url = "https://github.com/revoltchat/desktop/releases/download/v${version}/Revolt-linux.AppImage"; + sha256 = "sha256-Wsm6ef2Reenq3/aKGaP2yzlOuLKaxKtRHCLLMxvWUUY="; + }; + + appimageContents = appimageTools.extractType2 { + name = "${pname}-${version}"; + inherit src; + }; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ + makeWrapper + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/{applications,revolt-desktop} + + cp -a ${appimageContents}/{locales,resources} $out/share/${pname} + cp -a ${appimageContents}/revolt-desktop.desktop $out/share/applications/${pname}.desktop + cp -a ${appimageContents}/usr/share/icons $out/share/icons + + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/resources/app.asar \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" + ''; + + meta = with lib; { + description = "An open source user-first chat platform"; + homepage = "https://revolt.chat/"; + changelog = "https://github.com/revoltchat/desktop/releases/tag/v${version}"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ heyimnova ]; + platforms = platforms.linux; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + mainProgram = "revolt-desktop"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix new file mode 100644 index 000000000000..99c7cbbc7d8e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix @@ -0,0 +1,74 @@ +{ mkDerivation +, lib +, fetchFromGitHub +, pkg-config +, makeDesktopItem +, qtbase +, qttools +, qtmultimedia +, qtquickcontrols +, openssl +, protobuf +, qmake +}: + +mkDerivation rec { + pname = "ricochet"; + version = "1.1.4"; + + src = fetchFromGitHub { + owner = "ricochet-im"; + repo = "ricochet"; + rev = "v${version}"; + sha256 = "sha256-CGVTHa0Hqj90WvB6ZbA156DVgzv/R7blsU550y2Ai9c="; + }; + + desktopItem = makeDesktopItem { + name = "ricochet"; + exec = "ricochet"; + icon = "ricochet"; + desktopName = "Ricochet"; + genericName = "Ricochet"; + comment = meta.description; + categories = [ "Office" "Email" ]; + }; + + buildInputs = [ + qtbase + qttools + qtmultimedia + qtquickcontrols + openssl + protobuf + ]; + + nativeBuildInputs = [ pkg-config qmake ]; + + preConfigure = '' + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags openssl)" + ''; + + qmakeFlags = [ "DEFINES+=RICOCHET_NO_PORTABLE" ]; + + installPhase = '' + mkdir -p $out/bin + cp ricochet $out/bin + + mkdir -p $out/share/applications + cp $desktopItem/share/applications"/"* $out/share/applications + + mkdir -p $out/share/pixmaps + cp icons/ricochet.png $out/share/pixmaps/ricochet.png + ''; + + # RCC: Error in 'translation/embedded.qrc': Cannot find file 'ricochet_en.qm' + enableParallelBuilding = false; + + meta = with lib; { + description = "Anonymous peer-to-peer instant messaging"; + homepage = "https://ricochet.im"; + license = licenses.bsd3; + maintainers = [ maintainers.codsl maintainers.jgillich maintainers.np ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix new file mode 100644 index 000000000000..39403ba774fa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix @@ -0,0 +1,34 @@ +{ stdenvNoCC, lib, fetchzip }: + +stdenvNoCC.mkDerivation rec { + pname = "ripcord"; + version = "0.4.29"; + + src = fetchzip { + url = "https://cancel.fm/dl/Ripcord_Mac_${version}.zip"; + sha256 = "sha256-v8iydjLBjFN5LuctpcBpEkhSICxPhLKzLjSASWtsQok="; + stripRoot = false; + }; + + dontBuild = true; + dontFixup = true; # modification is not allowed by the license https://cancel.fm/ripcord/shareware-redistribution/ + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications + cp -r $src/Ripcord.app $out/Applications/ + + runHook postInstall + ''; + + 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 ]; + platforms = [ "x86_64-darwin" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix new file mode 100644 index 000000000000..7fd0bd9bb1d3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix @@ -0,0 +1,69 @@ +{ lib, mkDerivation, fetchurl, makeFontsConf, appimageTools +, qtbase, qtsvg, qtmultimedia, qtwebsockets, qtimageformats +, autoPatchelfHook, desktop-file-utils, imagemagick +, twemoji-color-font, xorg, libsodium, libopus, libGL, alsa-lib }: + +mkDerivation rec { + pname = "ripcord"; + version = "0.4.29"; + + src = let + appimage = fetchurl { + url = "https://cancel.fm/dl/Ripcord-${version}-x86_64.AppImage"; + sha256 = "sha256-4yDLPEBDsPKWtLwdpmSyl3b5XCwLAr2/EVtNRrFmmJk="; + name = "${pname}-${version}.AppImage"; + }; + in appimageTools.extract { + name = "${pname}-${version}"; + src = appimage; + }; + + nativeBuildInputs = [ autoPatchelfHook desktop-file-utils imagemagick ]; + buildInputs = [ libsodium libopus libGL alsa-lib ] + ++ [ qtbase qtsvg qtmultimedia qtwebsockets qtimageformats ] + ++ (with xorg; [ libX11 libXScrnSaver libXcursor xkeyboardconfig ]); + + fontsConf = makeFontsConf { + fontDirectories = [ twemoji-color-font ]; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -r ${src}/{qt.conf,translations,twemoji.ripdb} $out + + for size in 16 32 48 64 72 96 128 192 256 512 1024; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + convert -resize "$size"x"$size" ${src}/Ripcord_Icon.png $out/share/icons/hicolor/"$size"x"$size"/apps/ripcord.png + done + + desktop-file-install --dir $out/share/applications \ + --set-key Exec --set-value ripcord \ + --set-key Icon --set-value ripcord \ + --set-key Comment --set-value "${meta.description}" \ + ${src}/Ripcord.desktop + mv $out/share/applications/Ripcord.desktop $out/share/applications/ripcord.desktop + + install -Dm755 ${src}/Ripcord $out/Ripcord + patchelf --replace-needed libsodium.so.18 libsodium.so $out/Ripcord + makeQtWrapper $out/Ripcord $out/bin/ripcord \ + --chdir "$out" \ + --set FONTCONFIG_FILE "${fontsConf}" \ + --prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \ + --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \ + --set RIPCORD_ALLOW_UPDATES 0 + + runHook postInstall + ''; + + 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 ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix new file mode 100644 index 000000000000..a05df511ab0a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix @@ -0,0 +1,97 @@ +{ lib, stdenv, pkgs, fetchurl, wrapGAppsHook }: +let + libPathNative = { packages }: lib.makeLibraryPath packages; +in +stdenv.mkDerivation rec { + pname = "rocketchat-desktop"; + version = "3.9.11"; + + src = fetchurl { + url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat-${version}-linux-amd64.deb"; + hash = "sha256-jyBHXzzFkCHGy8tdnE/daNbADYYAINBlC5td+wHOl4k="; + }; + + nativeBuildInputs = [ + wrapGAppsHook #to fully work with gnome also needs programs.dconf.enable = true in your configuration.nix + ]; + + buildInputs = with pkgs; [ + gtk3 + stdenv.cc.cc + zlib + glib + dbus + atk + pango + freetype + libgnome-keyring3 + fontconfig + gdk-pixbuf + cairo + cups + expat + libgpg-error + alsa-lib + nspr + nss + xorg.libXrender + xorg.libX11 + xorg.libXext + xorg.libXdamage + xorg.libXtst + xorg.libXcomposite + xorg.libXi + xorg.libXfixes + xorg.libXrandr + xorg.libXcursor + xorg.libxkbfile + xorg.libXScrnSaver + systemd + libnotify + xorg.libxcb + at-spi2-atk + at-spi2-core + libdbusmenu + libdrm + mesa + xorg.libxshmfence + libxkbcommon + ]; + + dontBuild = true; + dontConfigure = true; + + unpackPhase = '' + ar p $src data.tar.xz | tar xJ ./opt/ ./usr/ + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + mv opt $out + mv usr/share $out + ln -s $out/opt/Rocket.Chat/rocketchat-desktop $out/bin/rocketchat-desktop + runHook postInstall + ''; + + postFixup = + let + libpath = libPathNative { packages = buildInputs; }; + in + '' + app=$out/opt/Rocket.Chat + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${libpath}:$app" \ + $app/rocketchat-desktop + sed -i -e "s|Exec=.*$|Exec=$out/bin/rocketchat-desktop|" $out/share/applications/rocketchat-desktop.desktop + ''; + + 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 = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix new file mode 100644 index 000000000000..6f85141f22fe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix @@ -0,0 +1,23 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonPackage rec { + pname = "scudcloud"; + version = "1.65"; + + src = fetchFromGitHub { + owner = "raelgc"; + repo = "scudcloud"; + rev = "v${version}"; + sha256 = "1ffdy74igll74fwpmnn3brvcxbk4iianqscdzz18sx1pfqpw16cl"; + }; + + propagatedBuildInputs = with python3Packages; [ pyqt5-webkit dbus-python jsmin ]; + + meta = with lib; { + description = "Non-official desktop client for Slack"; + homepage = "https://github.com/raelgc/scudcloud"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ volhovm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix new file mode 100644 index 000000000000..ed02def3eb88 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix @@ -0,0 +1,37 @@ +{ lib +, stdenv +, fetchurl +, alsa-lib +, libopus +, libogg +, gmp +, ncurses +}: + +stdenv.mkDerivation rec { + pname = "seren"; + version = "0.0.21"; + + buildInputs = [ alsa-lib libopus libogg gmp ncurses ]; + + src = fetchurl { + url = "http://holdenc.altervista.org/seren/downloads/${pname}-${version}.tar.gz"; + sha256 = "sha256-adI365McrJkvTexvnWjMzpHcJkLY3S/uWfE8u4yuqho="; + }; + + meta = with lib; { + description = "A simple ncurses VoIP program based on the Opus codec"; + longDescription = '' + Seren is a simple VoIP program based on the Opus codec + that allows you to create a voice conference from the terminal, with up to 10 + participants, without having to register accounts, exchange emails, or add + people to contact lists. All you need to join an existing conference is the + host name or IP address of one of the participants. + ''; + homepage = "http://holdenc.altervista.org/seren/"; + changelog = "http://holdenc.altervista.org/seren/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ matthewcroughan nixinator ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop/default.nix new file mode 100644 index 000000000000..9b2dc1e62ef3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop/default.nix @@ -0,0 +1,66 @@ +{ lib +, makeDesktopItem +, copyDesktopItems +, stdenvNoCC +, fetchurl +, appimageTools +, makeWrapper +}: + +let + version = "1.11.5"; + pname = "session-desktop"; + + src = fetchurl { + url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage"; + hash = "sha256-Sma8e3A1tf7JmnlS4mbtlF98Ow5aRPqw+aUoitzCjmk="; + }; + appimage = appimageTools.wrapType2 { + inherit version pname src; + }; + appimage-contents = appimageTools.extractType2 { + inherit version pname src; + }; +in +stdenvNoCC.mkDerivation { + inherit version pname; + src = appimage; + + nativeBuildInputs = [ copyDesktopItems makeWrapper ]; + + desktopItems = [ + (makeDesktopItem { + name = "Session"; + desktopName = "Session"; + comment = "Onion routing based messenger"; + exec = "${appimage}/bin/session-desktop-${version}"; + icon = "${appimage-contents}/session-desktop.png"; + terminal = false; + type = "Application"; + categories = [ "Network" ]; + }) + ]; + + installPhase = '' + runHook preInstall + + mv bin/session-desktop-${version} bin/session-desktop + + mkdir -p $out/ + cp -r bin $out/bin + + wrapProgram $out/bin/session-desktop \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" + + runHook postInstall + ''; + + meta = with lib; { + description = "Onion routing based messenger"; + homepage = "https://getsession.org/"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ alexnortung ]; + platforms = [ "x86_64-linux" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix new file mode 100644 index 000000000000..dfa5155f64ce --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix @@ -0,0 +1,55 @@ +{ stdenv, lib, fetchurl, makeWrapper, openjdk17_headless, libmatthew_java, dbus, dbus_java }: + +stdenv.mkDerivation rec { + pname = "signal-cli"; + version = "0.12.2"; + + # 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}-Linux.tar.gz"; + hash = "sha256-XhLTovymqjbc19X717WyNIi4jdpwnyttXGqkkHBFwQA="; + }; + + buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ]; + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/bin + cp -r lib $out/lib + cp bin/signal-cli $out/bin/signal-cli + '' + (if stdenv.isLinux then '' + makeWrapper ${openjdk17_headless}/bin/java $out/bin/signal-cli \ + --set JAVA_HOME "${openjdk17_headless}" \ + --add-flags "-classpath '$out/lib/*:${libmatthew_java}/lib/jni'" \ + --add-flags "-Djava.library.path=${libmatthew_java}/lib/jni:${dbus_java}/share/java/dbus:$out/lib" \ + --add-flags "org.asamk.signal.Main" + '' else '' + wrapProgram $out/bin/signal-cli \ + --prefix PATH : ${lib.makeBinPath [ openjdk17_headless ]} \ + --set JAVA_HOME ${openjdk17_headless} + ''); + + # Execution in the macOS (10.13) sandbox fails with + # dyld: Library not loaded: /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa + # Referenced from: /nix/store/5ghc2l65p8jcjh0bsmhahd5m9k5p8kx0-zulu1.8.0_121-8.20.0.5/bin/java + # Reason: no suitable image found. Did find: + # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat() + # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat() + # /nix/store/in41dz8byyyz4c0w132l7mqi43liv4yr-stdenv-darwin/setup: line 1310: 2231 Abort trap: 6 signal-cli --version + doInstallCheck = stdenv.isLinux; + + installCheckPhase = '' + export PATH=$PATH:$out/bin + # --help returns non-0 exit code even when working + signal-cli --version + ''; + + meta = with lib; { + homepage = "https://github.com/AsamK/signal-cli"; + description = "Command-line and dbus interface for communicating with the Signal messaging service"; + changelog = "https://github.com/AsamK/signal-cli/blob/v${version}/CHANGELOG.md"; + license = licenses.gpl3; + maintainers = with maintainers; [ ivan ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix new file mode 100644 index 000000000000..364843e7bfa8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -0,0 +1,6 @@ +{ hostPlatform, callPackage }: { + signal-desktop = if hostPlatform.system == "aarch64-linux" + then callPackage ./signal-desktop-aarch64.nix { } + else callPackage ./signal-desktop.nix { }; + signal-desktop-beta = callPackage ./signal-desktop-beta.nix{ }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/generic.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/generic.nix new file mode 100644 index 000000000000..b29d4d3c9c64 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/generic.nix @@ -0,0 +1,195 @@ +{ stdenv +, lib +, fetchurl +, autoPatchelfHook +, dpkg +, wrapGAppsHook +, makeWrapper +, nixosTests +, gtk3 +, atk +, at-spi2-atk +, cairo +, pango +, pipewire +, 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 +, wayland +}: + +{ pname +, dir +, version +, hash +, url +}: + +let + inherit (stdenv) targetPlatform; + ARCH = if targetPlatform.isAarch64 then "arm64" else "x64"; +in stdenv.mkDerivation rec { + inherit pname version; + + # 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: + # $ grep -a "^{\"buildExpiration" "${signal-desktop}/lib/${dir}/resources/app.asar" + # (Alternatively we could try to patch the asar archive, but that requires a + # few additional steps and might not be the best idea.) + + src = fetchurl { + inherit url hash; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + (wrapGAppsHook.override { inherit makeWrapper; }) + ]; + + buildInputs = [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gtk3 + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + libappindicator-gtk3 + libnotify + libuuid + mesa # for libgbm + nspr + nss + pango + systemd + xorg.libxcb + xorg.libxshmfence + ]; + + runtimeDependencies = [ + (lib.getLib systemd) + libappindicator-gtk3 + libnotify + libdbusmenu + xdg-utils + wayland + ]; + + unpackPhase = "dpkg-deb -x $src ."; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + # We need to run autoPatchelf manually with the "no-recurse" option, see + # https://github.com/NixOS/nixpkgs/pull/78413 for the reasons. + dontAutoPatchelf = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib + + mv usr/share $out/share + mv "opt/${dir}" "$out/lib/${dir}" + + # Note: The following path contains bundled libraries: + # $out/lib/${dir}/resources/app.asar.unpacked/node_modules/sharp/vendor/lib/ + # We run autoPatchelf with the "no-recurse" option to avoid picking those + # up, but resources/app.asar still requires them. + + # Symlink to bin + mkdir -p $out/bin + ln -s "$out/lib/${dir}/${pname}" $out/bin/${pname} + + # Create required symlinks: + ln -s libGLESv2.so "$out/lib/${dir}/libGLESv2.so.2" + + runHook postInstall + ''; + + preFixup = '' + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc pipewire ] }" + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" + --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} + ) + + # Fix the desktop link and fix showing application icon in tray + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace "/opt/${dir}/${pname}" $out/bin/${pname} \ + ${if pname == "signal-desktop" then "--replace \"bin/signal-desktop\" \"bin/signal-desktop --use-tray-icon\"" else ""} + + autoPatchelf --no-recurse -- "$out/lib/${dir}/" + patchelf --add-needed ${libpulseaudio}/lib/libpulse.so "$out/lib/${dir}/resources/app.asar.unpacked/node_modules/@signalapp/ringrtc/build/linux/libringrtc-${ARCH}.node" + ''; + + passthru = { + # Tests if the application launches and waits for "Link your phone to Signal Desktop": + tests.application-launch = nixosTests.signal-desktop; + updateScript.command = [ ./update.sh ]; + }; + + meta = { + description = "Private, simple, and secure messenger"; + longDescription = '' + Signal Desktop is an Electron application that links with your + "Signal Android" or "Signal iOS" app. + ''; + homepage = "https://signal.org/"; + changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${version}"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ eclairevoyant mic92 equirosa urandom bkchr ]; + mainProgram = pname; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix new file mode 100644 index 000000000000..c1ccec86b366 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-aarch64.nix @@ -0,0 +1,8 @@ +{ callPackage }: +callPackage ./generic.nix { } rec { + pname = "signal-desktop"; + dir = "Signal"; + version = "6.44.0"; + url = "https://github.com/0mniteck/Signal-Desktop-Mobian/raw/${version}/builds/release/signal-desktop_${version}_arm64.deb"; + hash = "sha256-M4Xiy8cDQciMzgGl1/eeKZjEaelVtkk6JXJYBP4ua2s="; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix new file mode 100644 index 000000000000..33f78a190e8d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix @@ -0,0 +1,8 @@ +{ callPackage }: +callPackage ./generic.nix {} rec { + pname = "signal-desktop-beta"; + dir = "Signal Beta"; + version = "6.48.0-beta.1"; + url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb"; + hash = "sha256-lDiab7XMXcg0XI4+7DJr5PWBAWes3cnL6oxiLy63eqY="; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix new file mode 100644 index 000000000000..9a129a9ce628 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix @@ -0,0 +1,8 @@ +{ callPackage }: +callPackage ./generic.nix {} rec { + pname = "signal-desktop"; + dir = "Signal"; + version = "6.46.0"; + url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb"; + hash = "sha256-6s6wFg2mJRaxEyWkZrCefspAdlcDwbjxXpx5CMNGW94="; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/update.sh new file mode 100755 index 000000000000..37c0f33d12f7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/update.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bash nix-update curl coreutils jq + +set -ex + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" + +curl_github() { + curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} "$@" +} + +case "$UPDATE_NIX_ATTR_PATH" in +signal-desktop) + latestTag=$(curl_github https://api.github.com/repos/signalapp/Signal-Desktop/releases/latest | jq -r ".tag_name") + latestVersion="$(expr "$latestTag" : 'v\(.*\)')" + latestVersionAarch64=$(curl_github "https://api.github.com/repos/0mniteck/Signal-Desktop-Mobian/releases/latest" | jq -r ".tag_name") + + echo "Updating signal-desktop for x86_64-linux" + nix-update --version "$latestVersion" \ + --system x86_64-linux \ + --override-filename "$SCRIPT_DIR/signal-desktop.nix" \ + signal-desktop + + echo "Updating signal-desktop for aarch64-linux" + nix-update --version "$latestVersionAarch64" \ + --system aarch64-linux \ + --override-filename "$SCRIPT_DIR/signal-desktop-aarch64.nix" \ + signal-desktop + ;; +signal-desktop-beta) + latestTagBeta=$(curl_github https://api.github.com/repos/signalapp/Signal-Desktop/releases | jq -r ".[0].tag_name") + latestVersionBeta="$(expr "$latestTagBeta" : 'v\(.*\)')" + echo "Updating signal-desktop-beta for x86_64-linux" + nix-update --version "$latestVersionBeta" --system x86_64-linux --override-filename "$SCRIPT_DIR/signal-desktop-beta.nix" signal-desktop-beta + ;; +*) + echo "Unknown attr path $UPDATE_NIX_ATTR_PATH" + ;; +esac diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix new file mode 100644 index 000000000000..0854e5300a66 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchFromGitHub, openssl, sqlite }: + +stdenv.mkDerivation rec { + pname = "signalbackup-tools"; + version = "20240205"; + + src = fetchFromGitHub { + owner = "bepaald"; + repo = pname; + rev = version; + hash = "sha256-Iwos+WJrCWXbNpuaZTLyc8OEtfMA0EF1DIyLNlsZSx4="; + }; + + postPatch = '' + patchShebangs BUILDSCRIPT_MULTIPROC.bash44 + ''; + + buildInputs = [ openssl sqlite ]; + + buildPhase = '' + runHook preBuild + ./BUILDSCRIPT_MULTIPROC.bash44${lib.optionalString stdenv.isDarwin " --config nixpkgs-darwin"} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp signalbackup-tools $out/bin/ + runHook postInstall + ''; + + meta = with lib; { + description = "Tool to work with Signal Backup files"; + homepage = "https://github.com/bepaald/signalbackup-tools"; + license = licenses.gpl3Only; + maintainers = [ maintainers.malo ]; + platforms = platforms.all; + }; +} 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 new file mode 100644 index 000000000000..4a49ff991e6b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch @@ -0,0 +1,42 @@ +From 33d8de9ccce7eecb12542e0fc11131b5101e1aa8 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 | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/build.gradle b/build.gradle +index ea3fea1..01e444d 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -82,6 +82,9 @@ static String getVersion() { + + repositories { + maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages ++ maven { ++ url "https://plugins.gradle.org/m2/" ++ } + mavenCentral() + } + +@@ -101,6 +104,8 @@ dependencies { + implementation 'io.prometheus:simpleclient:0.16.0' + implementation 'io.prometheus:simpleclient_hotspot:0.16.0' + implementation 'io.prometheus:simpleclient_httpserver:0.16.0' ++ implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3' ++ implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10' + implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0' + implementation 'io.sentry:sentry:6.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.9.0' +@@ -170,4 +175,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.38.3 + 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 new file mode 100644 index 000000000000..bf583de53ba2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch @@ -0,0 +1,71 @@ +From 4bf0aef4003f7494103a93ae1c2957b2cd32bb59 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 | 26 ++++++++++++++++++-------- + 1 file changed, 18 insertions(+), 8 deletions(-) + +diff --git a/build.gradle b/build.gradle +index ea3fea1..24415d8 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -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 { ++ maven { ++ url(uri("@deps@")) ++ } ++ } ++ dependencies { ++ classpath "com.github.gmazzo:gradle-buildconfig-plugin:3.0.3" ++ } ++} ++ + 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 +92,10 @@ static String getVersion() { + + repositories { + maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages +- mavenCentral() ++ mavenLocal() ++ maven { ++ url uri("@deps@") ++ } + } + + dependencies { +@@ -101,6 +114,8 @@ dependencies { + implementation 'io.prometheus:simpleclient:0.16.0' + implementation 'io.prometheus:simpleclient_hotspot:0.16.0' + implementation 'io.prometheus:simpleclient_httpserver:0.16.0' ++ implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3' ++ implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10' + implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0' + implementation 'io.sentry:sentry:6.11.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.9.0' +@@ -166,8 +181,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.38.3 + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix new file mode 100644 index 000000000000..4bd465ce033d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix @@ -0,0 +1,143 @@ +{ lib, stdenv, fetchurl, fetchFromGitLab, jdk17_headless, coreutils, findutils, gnused, +gradle, git, perl, makeWrapper, fetchpatch, substituteAll, jre_minimal +}: + +# NOTE: when updating the package, please check if some of the hacks in `deps.installPhase` +# can be removed again! + +let + pname = "signald"; + version = "0.23.2"; + + src = fetchFromGitLab { + owner = pname; + repo = pname; + rev = version; + sha256 = "sha256-EofgwZSDp2ZFhlKL2tHfzMr3EsidzuY4pkRZrV2+1bA="; + }; + + gradleWithJdk = gradle.override { java = jdk17_headless; }; + + jre' = jre_minimal.override { + jdk = jdk17_headless; + # from https://gitlab.com/signald/signald/-/blob/0.23.0/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 + deps = stdenv.mkDerivation { + pname = "${pname}-deps"; + inherit src version; + nativeBuildInputs = [ gradleWithJdk perl ]; + patches = [ ./0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch ]; + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + gradle --no-daemon build + ''; + installPhase = '' + find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ + | sh -x + + # WARNING: don't try this at home and wear safety-goggles while working with this! + # We patch around in the dependency tree to resolve some spurious dependency resolution errors. + # Whenever this package gets updated, please check if some of these hacks are obsolete! + + # Mimic existence of okio-3.2.0.jar. Originally known as okio-jvm-3.2.0 (and renamed), + # but gradle doesn't detect such renames, only fetches the latter and then fails + # in `signald.buildPhase` because it cannot find `okio-3.2.0.jar`. + pushd $out/com/squareup/okio/okio/3.2.0 &>/dev/null + cp -v ../../okio-jvm/3.2.0/okio-jvm-3.2.0.jar okio-3.2.0.jar + popd &>/dev/null + + # For some reason gradle fetches 2.14.1 instead of 2.14.0 here even though 2.14.0 is required + # according to `./gradlew -q dependencies`, so we pretend to have 2.14.0 available here. + # According to the diff in https://github.com/FasterXML/jackson-dataformats-text/compare/jackson-dataformats-text-2.14.0...jackson-dataformats-text-2.14.1 + # the only relevant change is in the code itself (and in the tests/docs), so this seems + # binary-compatible. + cp -v \ + $out/com/fasterxml/jackson/dataformat/jackson-dataformat-toml/2.14.1/jackson-dataformat-toml-2.14.1.jar \ + $out/com/fasterxml/jackson/dataformat/jackson-dataformat-toml/2.14.0/jackson-dataformat-toml-2.14.0.jar + ''; + # Don't move info to share/ + forceShare = [ "dummy" ]; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + # Downloaded jars differ by platform + outputHash = { + x86_64-linux = "sha256-9DHykkvazVBN2kfw1Pbejizk/R18v5w8lRBHZ4aXL5Q="; + aarch64-linux = "sha256-RgAiRbUojBc+9RN/HpAzzpTjkjZ6q+jebDsqvah5XBw="; + }.${stdenv.system} or (throw "Unsupported platform"); + }; + +in stdenv.mkDerivation { + inherit pname src version; + + patches = [ + (substituteAll { + src = ./0002-buildconfig-local-deps-fixes.patch; + inherit deps; + }) + ]; + + passthru = { + # Mostly for debugging purposes. + inherit deps; + }; + + buildPhase = '' + runHook preBuild + + export GRADLE_USER_HOME=$(mktemp -d) + + gradle --offline --no-daemon distTar + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out + tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/ + wrapProgram $out/bin/signald \ + --prefix PATH : ${lib.makeBinPath [ coreutils findutils gnused ]} \ + --set JAVA_HOME "${jre'}" + + runHook postInstall + ''; + + nativeBuildInputs = [ git gradleWithJdk makeWrapper ]; + + doCheck = true; + + meta = with lib; { + description = "Unofficial daemon for interacting with Signal"; + longDescription = '' + Signald is a daemon that facilitates communication over Signal. It is + unofficial, unapproved, and not nearly as secure as the real Signal + clients. + ''; + homepage = "https://signald.org"; + sourceProvenance = with sourceTypes; [ + fromSource + binaryBytecode # deps + ]; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ expipiplus1 ]; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signaldctl/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signaldctl/default.nix new file mode 100644 index 000000000000..82637dbbb0c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signaldctl/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildGoModule +, fetchFromGitLab +, gitUpdater +}: + +buildGoModule rec { + pname = "signaldctl"; + version = "0.6.1"; + src = fetchFromGitLab { + owner = "signald"; + repo = "signald-go"; + rev = "v${version}"; + hash = "sha256-lMJyr4BPZ8V2f//CUkr7CVQ6o8nRyeLBHMDEyLcHSgQ="; + }; + + vendorHash = "sha256-LGIWAVhDJCg6Ox7U4ZK15K8trjsvSZm4/0jNpIDmG7I="; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + # install only the binary and not any intermediate artifacts like + # `generators` which is only used during build + cp "$GOPATH/bin/signaldctl" $out/bin + + runHook postInstall + ''; + + passthru.updateScript = gitUpdater { + rev-prefix = "v"; + }; + + meta = with lib; { + description = "A golang library for communicating with signald"; + homepage = "https://signald.org/signaldctl/"; + license = licenses.gpl3; + maintainers = with maintainers; [ colinsane ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix new file mode 100644 index 000000000000..417cb4dbb844 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchurl, perl, pkg-config, glib, ncurses +, enablePlugin ? false }: + +# Enabling the plugin and using it with a recent irssi, segafults on join: +# http://marc.info/?l=silc-devel&m=125610477802211 + +stdenv.mkDerivation rec { + pname = "silc-client" + lib.optionalString enablePlugin "-irssi-plugin"; + version = "1.1.11"; + + src = fetchurl { + url = "mirror://sourceforge/silc/silc/client/sources/silc-client-${version}.tar.bz2"; + sha256 = "13cp3fmdnj8scjak0d2xal3bfvs2k7ssrwdhp0zl6jar5rwc7prn"; + }; + + enableParallelBuilding = true; + + dontDisableStatic = true; + + hardeningDisable = [ "format" ]; + + configureFlags = [ "--with-ncurses=${ncurses.dev}" ]; + + preConfigure = lib.optionalString enablePlugin '' + configureFlags="$configureFlags --with-silc-plugin=$out/lib/irssi" + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ perl glib ncurses ]; + + meta = { + homepage = "http://silcnet.org/"; + description = "Secure Internet Live Conferencing server"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [viric]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix new file mode 100644 index 000000000000..e949625875e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix @@ -0,0 +1,67 @@ +{ lib +, mkDerivation +, fetchurl +, autoPatchelfHook +, zstd +, curl +, ffmpeg +, libjpeg_turbo +, libpam-wrapper +, libv4l +, pulseaudio +, zlib +, xorg +}: + +mkDerivation rec { + pname = "sky"; + version = "2.1.7801"; + + src = fetchurl { + url = "https://tel.red/repos/archlinux/sky-archlinux-${version}-1-x86_64.pkg.tar.zst"; + sha256 = "sha256-3xiq2b3CwNjRd09q0z8olrmLGhgkJGAVkZoJSIHom+k="; + }; + + nativeBuildInputs = [ autoPatchelfHook zstd ]; + + buildInputs = [ + curl + ffmpeg + libjpeg_turbo + libpam-wrapper + libv4l + pulseaudio + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcursor + xorg.libXdamage + xorg.libXinerama + xorg.libXmu + xorg.libXrandr + xorg.libXtst + xorg.libXv + xorg.libxkbfile + zlib + ]; + + installPhase = '' + runHook preInstall + + mkdir $out + mv * $out/ + ln --force --symbolic $out/lib/sky/sky{,_sender} $out/bin + substituteInPlace $out/share/applications/sky.desktop \ + --replace /usr/ $out/ + + runHook postInstall + ''; + + 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 new file mode 100644 index 000000000000..50db157ccac1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix @@ -0,0 +1,129 @@ +{ lib, stdenv, fetchurl, dpkg +, alsa-lib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome +, gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg +, at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon, libxshmfence }: + +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.110.76.107"; + + rpath = lib.makeLibraryPath [ + alsa-lib + atk + at-spi2-atk + at-spi2-core + cairo + cups + curl + dbus + expat + fontconfig + freetype + glib + glibc + libsecret + libuuid + + gdk-pixbuf + gtk3 + libappindicator-gtk3 + + gnome.gnome-keyring + + libnotify + libpulseaudio + nspr + nss + pango + stdenv.cc.cc + systemd + + libv4l + libdrm + mesa + libxkbcommon + libxshmfence + xorg.libxkbfile + xorg.libX11 + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libXScrnSaver + xorg.libxcb + ] + ":${stdenv.cc.cc.lib}/lib64"; + + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + urls = [ + "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb" + "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-ocXhISwEtwzPd1dOPjgIj5UQ/8sqq2gUtmZ8KZBAxKM="; + } + else + throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}"; + +in stdenv.mkDerivation { + pname = "skypeforlinux"; + inherit version; + + system = "x86_64-linux"; + + inherit src; + + nativeBuildInputs = [ + wrapGAppsHook + glib # For setup hook populating GSETTINGS_SCHEMA_PATH + ]; + + buildInputs = [ dpkg ]; + + dontUnpack = true; + installPhase = '' + mkdir -p $out + dpkg -x $src $out + cp -av $out/usr/* $out + rm -rf $out/opt $out/usr + rm $out/bin/skypeforlinux + + ln -s "$out/share/skypeforlinux/skypeforlinux" "$out/bin/skypeforlinux" + + # Otherwise it looks "suspicious" + chmod -R g-w $out + ''; + + postFixup = '' + for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* -or -name \*.node\* \) ); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --set-rpath ${rpath}:$out/share/skypeforlinux $file || true + done + + # Fix the desktop link + substituteInPlace $out/share/applications/skypeforlinux.desktop \ + --replace /usr/bin/ "" + substituteInPlace $out/share/applications/skypeforlinux-share.desktop \ + --replace /usr/bin/ "" + substituteInPlace $out/share/kservices5/ServiceMenus/skypeforlinux.desktop \ + --replace /usr/bin/ "" + ''; + + 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" ]; + mainProgram = "skypeforlinux"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix new file mode 100644 index 000000000000..2750336cf1d1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "slack-term"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "erroneousboat"; + repo = "slack-term"; + rev = "v${version}"; + sha256 = "1fbq7bdhy70hlkklppimgdjamnk0v059pg73xm9ax1f4616ki1m6"; + }; + vendorHash = null; + + meta = with lib; { + description = "Slack client for your terminal"; + homepage = "https://github.com/erroneousboat/slack-term"; + license = licenses.mit; + maintainers = with maintainers; [ dtzWill ]; + mainProgram = "slack-term"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix new file mode 100644 index 000000000000..7012b8e8f43e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix @@ -0,0 +1,208 @@ +{ lib +, stdenv +, fetchurl +, dpkg +, undmg +, makeWrapper +, asar +, alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, cairo +, cups +, curl +, dbus +, expat +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gtk3 +, libGL +, libappindicator-gtk3 +, libdrm +, libnotify +, libpulseaudio +, libuuid +, libxcb +, libxkbcommon +, libxshmfence +, mesa +, nspr +, nss +, pango +, pipewire +, systemd +, wayland +, xdg-utils +, xorg +}: + +let + inherit (stdenv.hostPlatform) system; + throwSystem = throw "slack does not support system: ${system}"; + + pname = "slack"; + + x86_64-darwin-version = "4.36.140"; + x86_64-darwin-sha256 = "0w1fxza3aglh7513znv190gsha12rk7k1ybdp4ml2pffwmm8diad"; + + x86_64-linux-version = "4.36.140"; + x86_64-linux-sha256 = "0zahhhpcb1dxdhfmam32iqr5w3pspzbmcdv53ciqfnbkmwzkc3xr"; + + aarch64-darwin-version = "4.36.140"; + aarch64-darwin-sha256 = "118mzkpk431dcm61gkbj5m4sdxkwnk6fvmxg9f96xiv6n22n7pnx"; + + version = { + x86_64-darwin = x86_64-darwin-version; + x86_64-linux = x86_64-linux-version; + aarch64-darwin = aarch64-darwin-version; + }.${system} or throwSystem; + + + src = let + base = "https://downloads.slack-edge.com"; + in { + x86_64-darwin = fetchurl { + url = "${base}/releases/macos/${version}/prod/x64/Slack-${version}-macOS.dmg"; + sha256 = x86_64-darwin-sha256; + }; + x86_64-linux = fetchurl { + url = "${base}/releases/linux/${version}/prod/x64/slack-desktop-${version}-amd64.deb"; + sha256 = x86_64-linux-sha256; + }; + aarch64-darwin = fetchurl { + url = "${base}/releases/macos/${version}/prod/arm64/Slack-${version}-macOS.dmg"; + sha256 = aarch64-darwin-sha256; + }; + }.${system} or throwSystem; + + meta = with lib; { + description = "Desktop client for Slack"; + homepage = "https://slack.com"; + changelog = "https://slack.com/release-notes"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.unfree; + maintainers = with maintainers; [ mmahut amaxine ]; + platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-darwin" ]; + mainProgram = "slack"; + }; + + linux = stdenv.mkDerivation rec { + inherit pname version src meta; + + passthru.updateScript = ./update.sh; + + rpath = lib.makeLibraryPath [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + curl + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gtk3 + libGL + libappindicator-gtk3 + libdrm + libnotify + libpulseaudio + libuuid + libxcb + libxkbcommon + mesa + nspr + nss + pango + pipewire + stdenv.cc.cc + systemd + wayland + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libxkbfile + xorg.libxshmfence + ] + ":${stdenv.cc.cc.lib}/lib64"; + + buildInputs = [ + gtk3 # needed for GSETTINGS_SCHEMAS_PATH + ]; + + nativeBuildInputs = [ dpkg makeWrapper asar ]; + + dontUnpack = true; + dontBuild = true; + dontPatchELF = true; + + installPhase = '' + runHook preInstall + + # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here + dpkg --fsys-tarfile $src | tar --extract + rm -rf usr/share/lintian + + mkdir -p $out + mv usr/* $out + + # Otherwise it looks "suspicious" + chmod -R g-w $out + + for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --set-rpath ${rpath}:$out/lib/slack $file || true + done + + # Replace the broken bin/slack symlink with a startup wrapper. + # Make xdg-open overrideable at runtime. + rm $out/bin/slack + makeWrapper $out/lib/slack/slack $out/bin/slack \ + --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \ + --suffix PATH : ${lib.makeBinPath [xdg-utils]} \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations,WebRTCPipeWireCapturer}}" + + # Fix the desktop link + substituteInPlace $out/share/applications/slack.desktop \ + --replace /usr/bin/ $out/bin/ \ + --replace /usr/share/pixmaps/slack.png slack \ + --replace bin/slack "bin/slack -s" + + runHook postInstall + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version src meta; + + passthru.updateScript = ./update.sh; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "Slack.app"; + + installPhase = '' + runHook preInstall + mkdir -p $out/Applications/Slack.app + cp -R . $out/Applications/Slack.app + runHook postInstall + ''; + }; +in +if stdenv.isDarwin +then darwin +else linux diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh new file mode 100755 index 000000000000..eacd7b4284c7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p curl gnused + +set -eou pipefail + +latest_linux_version=$(curl -L --silent https://slack.com/downloads/linux | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p') +latest_mac_version=$(curl -L --silent https://slack.com/downloads/mac | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p') + +nixpkgs="$(git rev-parse --show-toplevel)" +slack_nix="$nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix" +nixpkgs_linux_version=$(cat "$slack_nix" | sed -n 's/.*x86_64-linux-version = \"\([0-9\.]\+\)\";.*/\1/p') +nixpkgs_mac_version=$(cat "$slack_nix" | sed -n 's/.*x86_64-darwin-version = \"\([0-9\.]\+\)\";.*/\1/p') +nixpkgs_mac_arm_version=$(cat "$slack_nix" | sed -n 's/.*aarch64-darwin-version = \"\([0-9\.]\+\)\";.*/\1/p') + +if [[ "$nixpkgs_linux_version" == "$latest_linux_version" && \ + "$nixpkgs_mac_version" == "$latest_mac_version" && \ + "$nixpkgs_mac_arm_version" == "$latest_mac_version" ]]; then + echo "nixpkgs versions are all up to date!" + exit 0 +fi + +linux_url="https://downloads.slack-edge.com/releases/linux/${latest_linux_version}/prod/x64/slack-desktop-${latest_linux_version}-amd64.deb" +mac_url="https://downloads.slack-edge.com/releases/macos/${latest_mac_version}/prod/x64/Slack-${latest_mac_version}-macOS.dmg" +mac_arm_url="https://downloads.slack-edge.com/releases/macos/${latest_mac_version}/prod/arm64/Slack-${latest_mac_version}-macOS.dmg" +linux_sha256=$(nix-prefetch-url ${linux_url}) +mac_sha256=$(nix-prefetch-url ${mac_url}) +mac_arm_sha256=$(nix-prefetch-url ${mac_arm_url}) + +sed -i "s/x86_64-linux-version = \".*\"/x86_64-linux-version = \"${latest_linux_version}\"/" "$slack_nix" +sed -i "s/x86_64-darwin-version = \".*\"/x86_64-darwin-version = \"${latest_mac_version}\"/" "$slack_nix" +sed -i "s/aarch64-darwin-version = \".*\"/aarch64-darwin-version = \"${latest_mac_version}\"/" "$slack_nix" +sed -i "s/x86_64-linux-sha256 = \".*\"/x86_64-linux-sha256 = \"${linux_sha256}\"/" "$slack_nix" +sed -i "s/x86_64-darwin-sha256 = \".*\"/x86_64-darwin-sha256 = \"${mac_sha256}\"/" "$slack_nix" +sed -i "s/aarch64-darwin-sha256 = \".*\"/aarch64-darwin-sha256 = \"${mac_arm_sha256}\"/" "$slack_nix" + +if ! nix-build -A slack "$nixpkgs" --arg config '{ allowUnfree = true; }'; then + echo "The updated slack failed to build." + exit 1 +fi + +echo "Successfully updated" +echo "slack: $nixpkgs_linux_version -> $latest_linux_version" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix new file mode 100644 index 000000000000..15ff9a9e2b50 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ssh-chat"; + version = "1.10.1"; + + src = fetchFromGitHub { + owner = "shazow"; + repo = "ssh-chat"; + rev = "v${version}"; + hash = "sha256-LgrqIuM/tLC0JqDai2TLu6G/edZ5Q7WFXjX5bzc0Bcc="; + }; + + vendorHash = "sha256-QTUBorUAsWDOpNP3E/Y6ht7ZXZViWBbrMPtLl7lHtgE="; + + meta = with lib; { + description = "Chat over SSH"; + homepage = "https://github.com/shazow/ssh-chat"; + license = licenses.mit; + maintainers = with maintainers; [ luc65r ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix new file mode 100644 index 000000000000..df460db31664 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix @@ -0,0 +1,90 @@ +{ stdenv +, lib +, fetchFromGitHub +, appstream-glib +, desktop-file-utils +, gdk-pixbuf +, gettext +, gjs +, glib +, glib-networking +, gobject-introspection +, gsettings-desktop-schemas +, gtk4 +, libadwaita +, gst_all_1 +, hicolor-icon-theme +, meson +, ninja +, pkg-config +, python3 +, webkitgtk_6_0 +, blueprint-compiler +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "tangram"; + version = "3.0"; + + src = fetchFromGitHub { + owner = "sonnyp"; + repo = "Tangram"; + rev = "v${version}"; + hash = "sha256-6QOkvsYFgFFyxnDlA5Xpl3FnsSZOj9ooehCPOmpKe8M="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + gettext + gobject-introspection + hicolor-icon-theme + meson + ninja + pkg-config + python3 + blueprint-compiler + wrapGAppsHook + ]; + + buildInputs = [ + gdk-pixbuf + gjs + glib + glib-networking + gsettings-desktop-schemas + gtk4 + libadwaita + webkitgtk_6_0 + ] ++ (with gst_all_1; [ + gstreamer + gst-libav + gst-plugins-base + (gst-plugins-good.override { gtkSupport = true; }) + gst-plugins-bad + ]); + + dontPatchShebangs = true; + + postPatch = '' + substituteInPlace src/meson.build --replace "/app/bin/blueprint-compiler" "blueprint-compiler" + substituteInPlace src/bin.js troll/gjspack/bin/gjspack \ + --replace "#!/usr/bin/env -S gjs -m" "#!${gjs}/bin/gjs -m" + ''; + + # https://github.com/NixOS/nixpkgs/issues/31168#issuecomment-341793501 + preFixup = '' + sed -e '2iimports.package._findEffectiveEntryPointName = () => "re.sonny.Tangram"' \ + -i $out/bin/re.sonny.Tangram + ''; + + meta = with lib; { + description = "Run web apps on your desktop"; + homepage = "https://github.com/sonnyp/Tangram"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ austinbutler chuangzhu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix new file mode 100644 index 000000000000..98edbce3cb49 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix @@ -0,0 +1,109 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, makeDesktopItem +, copyDesktopItems +, yarn +, nodejs +, fetchYarnDeps +, prefetch-yarn-deps +, electron +, libpulseaudio +, pipewire +, alsa-utils +, which +, testers +, teams-for-linux +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "teams-for-linux"; + version = "1.4.10"; + + src = fetchFromGitHub { + owner = "IsmaelMartinez"; + repo = "teams-for-linux"; + rev = "v${finalAttrs.version}"; + hash = "sha256-dR9YJJBBxvnJkD42+MwIql3B1dlA6WUSLJ//lW22mmc="; + }; + + offlineCache = fetchYarnDeps { + yarnLock = "${finalAttrs.src}/yarn.lock"; + hash = "sha256-Z2vnLr14F/Etuq9yWH7ygQwa54an7v99LbU3gPcEuII="; + }; + + nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs copyDesktopItems makeWrapper ]; + + configurePhase = '' + runHook preConfigure + + export HOME=$(mktemp -d) + yarn config --offline set yarn-offline-mirror $offlineCache + fixup-yarn-lock yarn.lock + yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive + patchShebangs node_modules/ + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + yarn --offline electron-builder \ + --dir ${if stdenv.isDarwin then "--macos" else "--linux"} ${if stdenv.hostPlatform.isAarch64 then "--arm64" else "--x64"} \ + -c.electronDist=${electron}/libexec/electron \ + -c.electronVersion=${electron.version} + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/{applications,teams-for-linux} + cp dist/${if stdenv.isDarwin then "darwin-" else "linux-"}${lib.optionalString stdenv.hostPlatform.isAarch64 "arm64-"}unpacked/resources/app.asar $out/share/teams-for-linux/ + + pushd build/icons + for image in *png; do + mkdir -p $out/share/icons/hicolor/''${image%.png}/apps + cp -r $image $out/share/icons/hicolor/''${image%.png}/apps/teams-for-linux.png + done + popd + + # Linux needs 'aplay' for notification sounds, 'libpulse' for meeting sound, and 'libpipewire' for screen sharing + makeWrapper '${electron}/bin/electron' "$out/bin/teams-for-linux" \ + ${lib.optionalString stdenv.isLinux '' + --prefix PATH : ${lib.makeBinPath [ alsa-utils which ]} \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpulseaudio pipewire ]} \ + ''} \ + --add-flags "$out/share/teams-for-linux/app.asar" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" + + runHook postInstall + ''; + + desktopItems = [(makeDesktopItem { + name = finalAttrs.pname; + exec = finalAttrs.pname; + icon = finalAttrs.pname; + desktopName = "Microsoft Teams for Linux"; + comment = finalAttrs.meta.description; + categories = [ "Network" "InstantMessaging" "Chat" ]; + })]; + + passthru.updateScript = ./update.sh; + passthru.tests.version = testers.testVersion rec { + package = teams-for-linux; + command = "HOME=$TMPDIR ${package.meta.mainProgram or package.pname} --version"; + }; + + meta = { + description = "Unofficial Microsoft Teams client for Linux"; + homepage = "https://github.com/IsmaelMartinez/teams-for-linux"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ muscaln lilyinstarlight qjoly chvp ]; + platforms = lib.platforms.unix; + broken = stdenv.isDarwin; + }; +}) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/update.sh new file mode 100755 index 000000000000..650edf188611 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/update.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p nix jq common-updater-scripts + +set -euo pipefail + +nixpkgs="$(git rev-parse --show-toplevel || (printf 'Could not find root of nixpkgs repo\nAre we running from within the nixpkgs git repo?\n' >&2; exit 1))" + +stripwhitespace() { + sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' +} + +nixeval() { + nix --extra-experimental-features nix-command eval --json --impure -f "$nixpkgs" "$1" | jq -r . +} + +vendorhash() { + (nix --extra-experimental-features nix-command build --impure --argstr nixpkgs "$nixpkgs" --argstr attr "$1" --expr '{ nixpkgs, attr }: let pkgs = import nixpkgs {}; in with pkgs.lib; (getAttrFromPath (splitString "." attr) pkgs).overrideAttrs (attrs: { outputHash = fakeHash; })' --no-link 2>&1 >/dev/null | tail -n3 | grep -F got: | cut -d: -f2- | stripwhitespace) 2>/dev/null || true +} + +findpath() { + path="$(nix --extra-experimental-features nix-command eval --json --impure -f "$nixpkgs" "$1.meta.position" | jq -r . | cut -d: -f1)" + outpath="$(nix --extra-experimental-features nix-command eval --json --impure --expr "builtins.fetchGit \"$nixpkgs\"")" + + if [ -n "$outpath" ]; then + path="${path/$(echo "$outpath" | jq -r .)/$nixpkgs}" + fi + + echo "$path" +} + +attr="${UPDATE_NIX_ATTR_PATH:-teams-for-linux}" +version="$(cd "$nixpkgs" && list-git-tags --pname="$(nixeval "$attr".pname)" --attr-path="$attr" | grep '^v' | sed -e 's|^v||' | sort -V | tail -n1)" + +pkgpath="$(findpath "$attr")" + +updated="$(cd "$nixpkgs" && update-source-version "$attr" "$version" --file="$pkgpath" --print-changes | jq -r length)" + +if [ "$updated" -eq 0 ]; then + echo 'update.sh: Package version not updated, nothing to do.' + exit 0 +fi + +curhash="$(nixeval "$attr.offlineCache.outputHash")" +newhash="$(vendorhash "$attr.offlineCache")" + +if [ -n "$newhash" ] && [ "$curhash" != "$newhash" ]; then + sed -i -e "s|\"$curhash\"|\"$newhash\"|" "$pkgpath" +else + echo 'update.sh: New vendorHash same as old vendorHash, nothing to do.' +fi diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix new file mode 100644 index 000000000000..e0fcae460b42 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix @@ -0,0 +1,58 @@ +{ lib +, stdenv +, fetchurl +, xar +, cpio +, makeWrapper +}: + +let + pname = "teams"; + versions = { + darwin = "1.6.00.4464"; + }; + hashes = { + darwin = "sha256-DvXMrXotKWUqFCb7rZj8wU7mmZJKuTLGyx8qOB/aQtg="; + }; + 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; [ tricktron ]; + platforms = [ "x86_64-darwin" "aarch64-darwin" ]; + mainProgram = "teams"; + }; + + appName = "Teams.app"; +in +stdenv.mkDerivation { + inherit pname meta; + version = versions.darwin; + + src = fetchurl { + url = "https://statics.teams.cdn.office.net/production-osx/${versions.darwin}/Teams_osx.pkg"; + hash = hashes.darwin; + }; + + nativeBuildInputs = [ xar cpio makeWrapper ]; + + unpackPhase = '' + xar -xf $src + zcat < Teams_osx_app.pkg/Payload | cpio -i + ''; + + sourceRoot = "Microsoft\ Teams.app"; + dontPatch = true; + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + mkdir -p $out/{Applications/${appName},bin} + cp -R . $out/Applications/${appName} + makeWrapper $out/Applications/${appName}/Contents/MacOS/Teams $out/bin/teams + runHook postInstall + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix new file mode 100644 index 000000000000..a0c7b678d5a0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix @@ -0,0 +1,156 @@ +{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, zlib, glib, libpng, freetype, openssl +, xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, qtsvg, qtwebsockets, xkeyboard_config +, alsa-lib, libpulseaudio ? null, libredirect, quazip, which, unzip, perl, llvmPackages +}: + +let + + arch = "amd64"; + + libDir = "lib64"; + + deps = + [ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender openssl + xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama + xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsa-lib qtbase qtwebengine qtwebchannel qtsvg + qtwebsockets libpulseaudio quazip llvmPackages.libcxx llvmPackages.libcxxabi + ]; + + desktopItem = makeDesktopItem { + name = "teamspeak"; + exec = "ts3client"; + icon = "teamspeak"; + comment = "The TeamSpeak voice communication tool"; + desktopName = "TeamSpeak"; + genericName = "TeamSpeak"; + categories = [ "Network" ]; + }; +in + +stdenv.mkDerivation rec { + pname = "teamspeak-client"; + + version = "3.6.2"; + + src = fetchurl { + url = "https://files.teamspeak-services.com/releases/client/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"; + hash = "sha256-WfEQQ4lxoj+QSnAOfdCoEc+Z1Oa5dbo6pFli1DsAZCI="; + }; + + # grab the plugin sdk for the desktop icon + pluginsdk = fetchurl { + url = "http://dl.4players.de/ts/client/pluginsdk/pluginsdk_3.1.1.1.zip"; + sha256 = "1bywmdj54glzd0kffvr27r84n4dsd0pskkbmh59mllbxvj0qwy7f"; + }; + + nativeBuildInputs = [ + makeWrapper + which + unzip + perl # Installer script needs `shasum` + ]; + + # This just runs the installer script. If it gets stuck at something like + # ++ exec + # + PAGER_PATH= + # it's looking for a dependency and didn't find it. Check the script and make sure the dep is in nativeBuildInputs. + unpackPhase = + '' + echo -e '\ny' | PAGER=cat sh -xe $src + cd TeamSpeak* + ''; + + buildPhase = + '' + mv ts3client_linux_${arch} ts3client + echo "patching ts3client..." + patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip1-qt5.so ts3client + patchelf \ + --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${lib.makeLibraryPath deps}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir} \ + --force-rpath \ + ts3client + ''; + + installPhase = + '' + # Delete unecessary libraries - these are provided by nixos. + rm *.so.* *.so + rm QtWebEngineProcess + rm qt.conf + rm -r platforms # contains libqxcb.so + + # Install files. + mkdir -p $out/lib/teamspeak + mv * $out/lib/teamspeak/ + + # Make a desktop item + mkdir -p $out/share/applications/ $out/share/icons/hicolor/64x64/apps/ + unzip ${pluginsdk} + cp pluginsdk/docs/client_html/images/logo.png $out/share/icons/hicolor/64x64/apps/teamspeak.png + cp ${desktopItem}/share/applications/* $out/share/applications/ + + # Make a symlink to the binary from bin. + mkdir -p $out/bin/ + ln -s $out/lib/teamspeak/ts3client $out/bin/ts3client + + 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 + ''; + + dontStrip = true; + dontPatchELF = true; + + 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/"; + free = false; + }; + maintainers = with maintainers; [ lhvwb lukegb atemu ]; + mainProgram = "ts3client"; + platforms = [ "x86_64-linux" ]; + }; +} + +/* +License issues: +Date: Mon, 10 Dec 2007 19:55:16 -0500 +From: TeamSpeak Sales <sales@tritoncia.com> +To: 'Marc Weber' <marco-oweber@gmx.de> +Subject: RE: teamspeak on nix? + +Yes, that would be fine. As long as you are not renting servers or selling +TeamSpeak then you are more than welcome to distribute it. + +Thank you, + +TeamSpeak Sales Team +________________________________ +e-Mail: sales@tritoncia.com +TeamSpeak: http://www.TeamSpeak.com +Account Login: https://sales.TritonCIA.com/users + + + +-----Original Message----- +From: Marc Weber [mailto:marco-oweber@gmx.de] +Sent: Monday, December 10, 2007 5:03 PM +To: sales@tritoncia.com +Subject: teamspeak on nix? + +Hello, + +nix is very young software distribution system (http://nix.cs.uu.nl/) +I'd like to ask wether you permit us to add teamspeak (server/ client?) + +Sincerly +Marc Weber (small nix contributor) +*/ 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..0f2e33e7446c --- /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-beta77"; + + 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 = "6f3bf97b120d3c799cefc90c448e45836708a826d7caa07ad32b5c868eb9181b"; + }; + + 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 new file mode 100644 index 000000000000..577589f6a40b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix @@ -0,0 +1,101 @@ +{ lib, stdenv, fetchurl, postgresql, autoPatchelfHook, writeScript }: + +let + arch = if stdenv.is64bit then "amd64" else "x86"; +in stdenv.mkDerivation rec { + pname = "teamspeak-server"; + 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-d1pXMamAmAHkyPkGbNm8ViobNoVTE5wSSfKgdA1QBB4=" + else "sha256-aMEDOnvBeKfzG8lDFhU8I5DYgG53IsCDBMV2MUyJi2g="; + }; + + buildInputs = [ stdenv.cc.cc postgresql.lib ]; + + nativeBuildInputs = [ autoPatchelfHook ]; + + installPhase = '' + runHook preInstall + + # Install files. + mkdir -p $out/lib/teamspeak + mv * $out/lib/teamspeak/ + + # Make symlinks to the binaries from bin. + mkdir -p $out/bin/ + ln -s $out/lib/teamspeak/ts3server $out/bin/ts3server + ln -s $out/lib/teamspeak/tsdns/tsdnsserver $out/bin/tsdnsserver + + runHook postInstall + ''; + + passthru.updateScript = writeScript "update-teampeak-server" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused jq pup + + set -eu -o pipefail + + version=$( \ + curl https://www.teamspeak.com/en/downloads/ \ + | pup "#server .linux .version json{}" \ + | jq -r ".[0].text" + ) + + versionOld=$(nix-instantiate --eval --strict -A "teamspeak_server.version") + + nixFile=pkgs/applications/networking/instant-messengers/teamspeak/server.nix + + update-source-version teamspeak_server "$version" --system=i686-linux + + sed -i -e "s/version = \"$version\";/version = $versionOld;/" "$nixFile" + + update-source-version teamspeak_server "$version" --system=x86_64-linux + ''; + + 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 ]; + }; +} + +/* +License issues: +Date: Mon, 10 Dec 2007 19:55:16 -0500 +From: TeamSpeak Sales <sales@tritoncia.com> +To: 'Marc Weber' <marco-oweber@gmx.de> +Subject: RE: teamspeak on nix? + +Yes, that would be fine. As long as you are not renting servers or selling +TeamSpeak then you are more than welcome to distribute it. + +Thank you, + +TeamSpeak Sales Team +________________________________ +e-Mail: sales@tritoncia.com +TeamSpeak: http://www.TeamSpeak.com +Account Login: https://sales.TritonCIA.com/users + + + +-----Original Message----- +From: Marc Weber [mailto:marco-oweber@gmx.de] +Sent: Monday, December 10, 2007 5:03 PM +To: sales@tritoncia.com +Subject: teamspeak on nix? + +Hello, + +nix is very young software distribution system (http://nix.cs.uu.nl/) +I'd like to ask wether you permit us to add teamspeak (server/ client?) + +Sincerly +Marc Weber (small nix contributor) +*/ 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 new file mode 100644 index 000000000000..dbd81911501e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix @@ -0,0 +1,225 @@ +{ lib +, stdenv +, fetchFromGitHub +, callPackage +, pkg-config +, cmake +, ninja +, clang +, python3 +, wrapQtAppsHook +, removeReferencesTo +, extra-cmake-modules +, qtbase +, qtimageformats +, qtsvg +, kwayland +, lz4 +, xxHash +, ffmpeg_4 +, openalSoft +, minizip +, libopus +, alsa-lib +, libpulseaudio +, range-v3 +, tl-expected +, hunspell +, glibmm +, jemalloc +, rnnoise +, abseil-cpp +, microsoft-gsl +, wayland +, libicns +, Cocoa +, CoreFoundation +, CoreServices +, CoreText +, CoreGraphics +, CoreMedia +, OpenGL +, AudioUnit +, ApplicationServices +, Foundation +, AGL +, Security +, SystemConfiguration +, Carbon +, AudioToolbox +, VideoToolbox +, VideoDecodeAcceleration +, AVFoundation +, CoreAudio +, CoreVideo +, CoreMediaIO +, QuartzCore +, AppKit +, CoreWLAN +, WebKit +, IOKit +, GSS +, MediaPlayer +, IOSurface +, Metal +, MetalKit +}: + +let + tg_owt = callPackage ./tg_owt.nix { + abseil-cpp = abseil-cpp.override { + # abseil-cpp should use the same compiler + inherit stdenv; + cxxStandard = "20"; + }; + + # tg_owt should use the same compiler + inherit stdenv; + + inherit Cocoa AppKit IOKit IOSurface Foundation AVFoundation CoreMedia VideoToolbox + CoreGraphics CoreVideo OpenGL Metal MetalKit CoreFoundation ApplicationServices; + }; +in +stdenv.mkDerivation rec { + pname = "kotatogram-desktop"; + version = "1.4.9"; + + src = fetchFromGitHub { + owner = "kotatogram"; + repo = "kotatogram-desktop"; + rev = "k${version}"; + sha256 = "sha256-6bF/6fr8mJyyVg53qUykysL7chuewtJB8E22kVyxjHw="; + fetchSubmodules = true; + }; + + patches = [ + ./kf594.patch + ./shortcuts-binary-path.patch + ]; + + postPatch = lib.optionalString stdenv.isLinux '' + substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioInputALSA.cpp \ + --replace '"libasound.so.2"' '"${alsa-lib}/lib/libasound.so.2"' + substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioOutputALSA.cpp \ + --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"' + '' + lib.optionalString stdenv.isDarwin '' + sed -i "13i#import <CoreAudio/CoreAudio.h>" Telegram/lib_webrtc/webrtc/mac/webrtc_media_devices_mac.mm + substituteInPlace Telegram/CMakeLists.txt \ + --replace 'COMMAND iconutil' 'COMMAND png2icns' \ + --replace '--convert icns' "" \ + --replace '--output AppIcon.icns' 'AppIcon.icns' \ + --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" + ''; + + nativeBuildInputs = [ + pkg-config + cmake + ninja + python3 + wrapQtAppsHook + removeReferencesTo + ] ++ lib.optionals stdenv.isLinux [ + # to build bundled libdispatch + clang + extra-cmake-modules + ]; + + buildInputs = [ + qtbase + qtimageformats + qtsvg + lz4 + xxHash + ffmpeg_4 + openalSoft + minizip + libopus + range-v3 + tl-expected + rnnoise + tg_owt + microsoft-gsl + ] ++ lib.optionals stdenv.isLinux [ + kwayland + alsa-lib + libpulseaudio + hunspell + glibmm + jemalloc + wayland + ] ++ lib.optionals stdenv.isDarwin [ + Cocoa + CoreFoundation + CoreServices + CoreText + CoreGraphics + CoreMedia + OpenGL + AudioUnit + ApplicationServices + Foundation + AGL + Security + SystemConfiguration + Carbon + AudioToolbox + VideoToolbox + VideoDecodeAcceleration + AVFoundation + CoreAudio + CoreVideo + CoreMediaIO + QuartzCore + AppKit + CoreWLAN + WebKit + IOKit + GSS + MediaPlayer + IOSurface + Metal + libicns + ]; + + enableParallelBuilding = true; + + cmakeFlags = [ + "-DTDESKTOP_API_TEST=ON" + "-DDESKTOP_APP_QT6=OFF" + ]; + + installPhase = lib.optionalString stdenv.isDarwin '' + mkdir -p $out/Applications + cp -r Kotatogram.app $out/Applications + ln -s $out/Applications/Kotatogram.app/Contents/MacOS $out/bin + ''; + + preFixup = '' + binName=${if stdenv.isLinux then "kotatogram-desktop" else "Kotatogram"} + remove-references-to -t ${stdenv.cc.cc} $out/bin/$binName + remove-references-to -t ${microsoft-gsl} $out/bin/$binName + remove-references-to -t ${tg_owt.dev} $out/bin/$binName + ''; + + passthru = { + inherit tg_owt; + }; + + meta = with lib; { + description = "Kotatogram – experimental Telegram Desktop fork"; + longDescription = '' + Unofficial desktop client for the Telegram messenger, based on Telegram Desktop. + + It contains some useful (or purely cosmetic) features, but they could be unstable. A detailed list is available here: https://kotatogram.github.io/changes + ''; + license = licenses.gpl3; + platforms = platforms.all; + homepage = "https://kotatogram.github.io"; + changelog = "https://github.com/kotatogram/kotatogram-desktop/releases/tag/k{version}"; + maintainers = with maintainers; [ ilya-fedin ]; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isAarch64; + }; +} 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/shortcuts-binary-path.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/shortcuts-binary-path.patch new file mode 100644 index 000000000000..f173a64f141a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/shortcuts-binary-path.patch @@ -0,0 +1,38 @@ +diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp +index 2a092c6ea..de46dd269 100644 +--- a/Telegram/SourceFiles/core/application.cpp ++++ b/Telegram/SourceFiles/core/application.cpp +@@ -1173,7 +1173,7 @@ void Application::startShortcuts() { + + void Application::RegisterUrlScheme() { + base::Platform::RegisterUrlScheme(base::Platform::UrlSchemeDescriptor{ +- .executable = cExeDir() + cExeName(), ++ .executable = qsl("kotatogram-desktop"), + .arguments = qsl("-workdir \"%1\"").arg(cWorkingDir()), + .protocol = qsl("tg"), + .protocolName = qsl("Telegram Link"), +diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp +index 26168baa7..00d2525a0 100644 +--- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp ++++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp +@@ -303,19 +303,11 @@ bool GenerateDesktopFile( + + QFile target(targetFile); + if (target.open(QIODevice::WriteOnly)) { +- fileText = fileText.replace( +- QRegularExpression( +- qsl("^TryExec=.*$"), +- QRegularExpression::MultilineOption), +- qsl("TryExec=%1").arg( +- QString(cExeDir() + cExeName()).replace('\\', "\\\\"))); +- + fileText = fileText.replace( + QRegularExpression( + qsl("^Exec=kotatogram-desktop(.*)$"), + QRegularExpression::MultilineOption), +- qsl("Exec=%1 -workdir %2\\1").arg( +- EscapeShellInLauncher(cExeDir() + cExeName()), ++ qsl("Exec=kotatogram-desktop -workdir %1\\1").arg( + EscapeShellInLauncher(cWorkingDir()))); + + fileText = fileText.replace( 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 new file mode 100644 index 000000000000..694021d0f7fe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix @@ -0,0 +1,145 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, pkg-config +, cmake +, ninja +, yasm +, libjpeg +, openssl +, libopus +, ffmpeg_4 +, protobuf +, openh264 +, usrsctp +, libvpx +, libX11 +, libXtst +, libXcomposite +, libXdamage +, libXext +, libXrender +, libXrandr +, libXi +, glib +, abseil-cpp +, pipewire +, mesa +, libdrm +, libGL +, Cocoa +, AppKit +, IOKit +, IOSurface +, Foundation +, AVFoundation +, CoreMedia +, VideoToolbox +, CoreGraphics +, CoreVideo +, OpenGL +, Metal +, MetalKit +, CoreFoundation +, ApplicationServices +}: + +let + libsrtp = fetchFromGitHub { + owner = "cisco"; + repo = "libsrtp"; + + # https://github.com/desktop-app/tg_owt/commit/6894e86eef8809d42b66eb85e376006f2a816a56 + rev = "a566a9cfcd619e8327784aa7cff4a1276dc1e895"; + sha256 = "sha256-OvCw7oF1OuamP3qO2BsimeBSHq1rcXFLfK8KnbbgkMU="; + }; +in + +stdenv.mkDerivation { + pname = "tg_owt"; + version = "unstable-2022-04-13"; + + src = fetchFromGitHub { + owner = "desktop-app"; + repo = "tg_owt"; + rev = "63a934db1ed212ebf8aaaa20f0010dd7b0d7b396"; + sha256 = "sha256-WddSsQ9KW1zYyYckzdUOvfFZArYAbyvXmABQNMtK6cM="; + fetchSubmodules = true; + }; + + patches = [ + ./tg_owt.patch + + (fetchpatch { + url = "https://github.com/desktop-app/tg_owt/commit/0614aac699b1a53242ffe2664e3724533bf64f97.patch"; + hash = "sha256-iCdX518CB/RboDFhl3opnwcAgtqpNWZzYtV75Q+WB6Y="; + }) + + (fetchpatch { + url = "https://github.com/desktop-app/tg_owt/commit/9d120195334db4f232c925529aa7601656dc59d7.patch"; + hash = "sha256-k99OBCdE2eQVyXEyvreEqVtzC8Xfdolbgd1Z7lV2ceE="; + }) + ]; + + postPatch = '' + rm -r src/third_party/libsrtp + cp -r --no-preserve=mode ${libsrtp} src/third_party/libsrtp + '' + 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 ]; + + propagatedBuildInputs = [ + libjpeg + openssl + libopus + ffmpeg_4 + protobuf + openh264 + usrsctp + libvpx + abseil-cpp + ] ++ lib.optionals stdenv.isLinux [ + libX11 + libXtst + libXcomposite + libXdamage + libXext + libXrender + libXrandr + libXi + glib + pipewire + mesa + libdrm + libGL + ] ++ lib.optionals stdenv.isDarwin [ + Cocoa + AppKit + IOKit + IOSurface + Foundation + AVFoundation + CoreMedia + VideoToolbox + CoreGraphics + CoreVideo + OpenGL + Metal + MetalKit + CoreFoundation + ApplicationServices + ]; + + enableParallelBuilding = true; + + meta.license = lib.licenses.bsd3; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch new file mode 100644 index 000000000000..be7d696fc84d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch @@ -0,0 +1,43 @@ +--- a/src/modules/include/module_common_types_public.h ++++ b/src/modules/include/module_common_types_public.h +@@ -11,6 +11,7 @@ + #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_ + #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_ + ++#include <cstdint> + #include <limits> + + #include "absl/types/optional.h" +diff --git a/src/common_video/h265/h265_pps_parser.h b/src/common_video/h265/h265_pps_parser.h +index 28c95ea9..790b0b73 100644 +--- a/src/common_video/h265/h265_pps_parser.h ++++ b/src/common_video/h265/h265_pps_parser.h +@@ -13,6 +13,8 @@ + + #include "absl/types/optional.h" + ++#include <stdint.h> ++ + namespace rtc { + class BitBuffer; + } +--- a/src/rtc_base/third_party/base64/base64.h ++++ b/src/rtc_base/third_party/base64/base64.h +@@ -11,6 +11,7 @@ + #ifndef RTC_BASE_THIRD_PARTY_BASE64_BASE64_H_ + #define RTC_BASE_THIRD_PARTY_BASE64_BASE64_H_ + ++#include <cstdint> + #include <string> + #include <vector> + +--- a/src/modules/audio_processing/transient/file_utils.h ++++ b/src/modules/audio_processing/transient/file_utils.h +@@ -11,6 +11,7 @@ + #ifndef MODULES_AUDIO_PROCESSING_TRANSIENT_FILE_UTILS_H_ + #define MODULES_AUDIO_PROCESSING_TRANSIENT_FILE_UTILS_H_ + ++#include <stdint.h> + #include <string.h> + + #include "rtc_base/system/file_wrapper.h" 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..73c71d294c84 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix @@ -0,0 +1,21 @@ +{ stdenv, lib, kotatogram-desktop, glib-networking, webkitgtk, makeWrapper }: + +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 : ${lib.makeLibraryPath [ webkitgtk ]} + ''; + meta = kotatogram-desktop.meta // { + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix new file mode 100644 index 000000000000..2e270607274d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix @@ -0,0 +1,239 @@ +{ lib +, fetchFromGitHub +, fetchpatch +, callPackage +, pkg-config +, cmake +, ninja +, python3 +, gobject-introspection +, wrapGAppsHook +, wrapQtAppsHook +, extra-cmake-modules +, qtbase +, qtwayland +, qtsvg +, qtimageformats +, gtk3 +, boost +, fmt +, libdbusmenu +, lz4 +, xxHash +, ffmpeg +, openalSoft +, minizip +, libopus +, alsa-lib +, libpulseaudio +, pipewire +, range-v3 +, tl-expected +, hunspell +, glibmm_2_68 +, webkitgtk_6_0 +, jemalloc +, rnnoise +, protobuf +, abseil-cpp +, xdg-utils +, microsoft-gsl +, rlottie +, stdenv +, darwin +, lld +, libicns +, nix-update-script +}: + +# Main reference: +# - This package was originally based on the Arch package but all patches are now upstreamed: +# https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/telegram-desktop +# Other references that could be useful: +# - https://git.alpinelinux.org/aports/tree/testing/telegram-desktop/APKBUILD +# - https://github.com/void-linux/void-packages/blob/master/srcpkgs/telegram-desktop/template + +let + tg_owt = callPackage ./tg_owt.nix { + inherit stdenv; + abseil-cpp = abseil-cpp.override { + cxxStandard = "20"; + }; + }; + mainProgram = if stdenv.isLinux then "telegram-desktop" else "Telegram"; +in +stdenv.mkDerivation rec { + pname = "telegram-desktop"; + version = "4.14.15"; + + src = fetchFromGitHub { + owner = "telegramdesktop"; + repo = "tdesktop"; + rev = "v${version}"; + fetchSubmodules = true; + hash = "sha256-706FAtXS541D7H/Qc86eC1FLUWu1/tZuCq3GgJ0L/Ds="; + }; + + patches = [ + ./macos.patch + # the generated .desktop files contains references to unwrapped tdesktop, breaking scheme handling + # and the scheme handler is already registered in the packaged .desktop file, rendering this unnecessary + # see https://github.com/NixOS/nixpkgs/issues/218370 + (fetchpatch { + url = "https://salsa.debian.org/debian/telegram-desktop/-/raw/09b363ed5a4fcd8ecc3282b9bfede5fbb83f97ef/debian/patches/Disable-register-custom-scheme.patch"; + hash = "sha256-B8X5lnSpwwdp1HlvyXJWQPybEN+plOwimdV5gW6aY2Y="; + }) + ]; + + postPatch = lib.optionalString stdenv.isLinux '' + substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioInputALSA.cpp \ + --replace-fail '"libasound.so.2"' '"${alsa-lib}/lib/libasound.so.2"' + substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioOutputALSA.cpp \ + --replace-fail '"libasound.so.2"' '"${alsa-lib}/lib/libasound.so.2"' + substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp \ + --replace-fail '"libpulse.so.0"' '"${libpulseaudio}/lib/libpulse.so.0"' + substituteInPlace Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk_library.cpp \ + --replace-fail '"libwebkitgtk-6.0.so.4"' '"${webkitgtk_6_0}/lib/libwebkitgtk-6.0.so.4"' + '' + lib.optionalString stdenv.isDarwin '' + substituteInPlace Telegram/lib_webrtc/webrtc/platform/mac/webrtc_environment_mac.mm \ + --replace-fail kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster + ''; + + # We want to run wrapProgram manually (with additional parameters) + dontWrapGApps = true; + dontWrapQtApps = true; + + nativeBuildInputs = [ + pkg-config + cmake + ninja + python3 + wrapQtAppsHook + ] ++ lib.optionals stdenv.isLinux [ + gobject-introspection + wrapGAppsHook + extra-cmake-modules + ] ++ lib.optionals stdenv.isDarwin [ + lld + ]; + + buildInputs = [ + qtbase + qtsvg + qtimageformats + boost + lz4 + xxHash + ffmpeg + openalSoft + minizip + libopus + range-v3 + tl-expected + rnnoise + protobuf + tg_owt + microsoft-gsl + rlottie + ] ++ lib.optionals stdenv.isLinux [ + qtwayland + gtk3 + fmt + libdbusmenu + alsa-lib + libpulseaudio + pipewire + hunspell + glibmm_2_68 + webkitgtk_6_0 + jemalloc + ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ + Cocoa + CoreFoundation + CoreServices + CoreText + CoreGraphics + CoreMedia + OpenGL + AudioUnit + ApplicationServices + Foundation + AGL + Security + SystemConfiguration + Carbon + AudioToolbox + VideoToolbox + VideoDecodeAcceleration + AVFoundation + CoreAudio + CoreVideo + CoreMediaIO + QuartzCore + AppKit + CoreWLAN + WebKit + IOKit + GSS + MediaPlayer + IOSurface + Metal + NaturalLanguage + libicns + ]); + + env = lib.optionalAttrs stdenv.isDarwin { + NIX_CFLAGS_LINK = "-fuse-ld=lld"; + }; + + cmakeFlags = [ + "-Ddisable_autoupdate=ON" + # We're allowed to used the API ID of the Snap package: + "-DTDESKTOP_API_ID=611335" + "-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c" + # See: https://github.com/NixOS/nixpkgs/pull/130827#issuecomment-885212649 + "-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF" + "-DDESKTOP_APP_DISABLE_SCUDO=ON" + ]; + + preBuild = '' + # for cppgir to locate gir files + export GI_GIR_PATH="$XDG_DATA_DIRS" + ''; + + installPhase = lib.optionalString stdenv.isDarwin '' + mkdir -p $out/Applications + cp -r ${mainProgram}.app $out/Applications + ln -s $out/{Applications/${mainProgram}.app/Contents/MacOS,bin} + ''; + + postFixup = lib.optionalString stdenv.isLinux '' + # This is necessary to run Telegram in a pure environment. + # We also use gappsWrapperArgs from wrapGAppsHook. + wrapProgram $out/bin/${mainProgram} \ + "''${gappsWrapperArgs[@]}" \ + "''${qtWrapperArgs[@]}" \ + --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} + '' + lib.optionalString stdenv.isDarwin '' + wrapQtApp $out/Applications/${mainProgram}.app/Contents/MacOS/${mainProgram} + ''; + + passthru = { + inherit tg_owt; + updateScript = nix-update-script { }; + }; + + meta = with lib; { + description = "Telegram Desktop messaging app"; + longDescription = '' + Desktop client for the Telegram messenger, based on the Telegram API and + the MTProto secure protocol. + ''; + license = licenses.gpl3Only; + platforms = platforms.all; + homepage = "https://desktop.telegram.org/"; + changelog = "https://github.com/telegramdesktop/tdesktop/releases/tag/v${version}"; + maintainers = with maintainers; [ nickcao ]; + inherit mainProgram; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/macos.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/macos.patch new file mode 100644 index 000000000000..c8424359fdbf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/macos.patch @@ -0,0 +1,69 @@ +diff --git a/Telegram/SourceFiles/platform/mac/overlay_widget_mac.mm b/Telegram/SourceFiles/platform/mac/overlay_widget_mac.mm +index ef544803e9..69c61b3139 100644 +--- a/Telegram/SourceFiles/platform/mac/overlay_widget_mac.mm ++++ b/Telegram/SourceFiles/platform/mac/overlay_widget_mac.mm +@@ -97,9 +97,11 @@ void MacOverlayWidgetHelper::updateStyles(bool fullscreen) { + [window setTitleVisibility:NSWindowTitleHidden]; + [window setTitlebarAppearsTransparent:YES]; + [window setStyleMask:[window styleMask] | NSWindowStyleMaskFullSizeContentView]; ++#if 0 + if (@available(macOS 12.0, *)) { + _data->topNotchSkip = [[window screen] safeAreaInsets].top; + } ++#endif + } + + void MacOverlayWidgetHelper::refreshButtons(bool fullscreen) { +Submodule Telegram/lib_base contains modified content +diff --git a/Telegram/lib_base/base/platform/mac/base_battery_saving_mac.mm b/Telegram/lib_base/base/platform/mac/base_battery_saving_mac.mm +index 7ce90d3..dac3c2c 100644 +--- a/Telegram/lib_base/base/platform/mac/base_battery_saving_mac.mm ++++ b/Telegram/lib_base/base/platform/mac/base_battery_saving_mac.mm +@@ -138,6 +138,7 @@ BatterySaving::BatterySaving(Fn<void()> changedCallback) { + _observer = [[LowPowerModeObserver alloc] initWithCallback:std::move(wrapped)]; + + NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; ++#if 0 + if (@available(macOS 12.0, *)) { + [center + addObserver: _observer +@@ -145,6 +146,7 @@ BatterySaving::BatterySaving(Fn<void()> changedCallback) { + name: NSProcessInfoPowerStateDidChangeNotification + object: nil]; + } ++#endif + [center + addObserver: _observer + selector: @selector(powerStateChanged:) +@@ -178,11 +180,13 @@ std::optional<bool> BatterySaving::enabled() const { + return std::nullopt; + } + NSProcessInfo *info = [NSProcessInfo processInfo]; ++#if 0 + if (@available(macOS 12.0, *)) { + if ([info isLowPowerModeEnabled]) { + return true; + } + } ++#endif + const auto state = DetectBatteryState(); + if (!state.has || !state.draining) { + return false; +Submodule Telegram/lib_webview contains modified content +diff --git a/Telegram/lib_webview/webview/platform/mac/webview_mac.mm b/Telegram/lib_webview/webview/platform/mac/webview_mac.mm +index 738e574..80ff5f0 100644 +--- a/Telegram/lib_webview/webview/platform/mac/webview_mac.mm ++++ b/Telegram/lib_webview/webview/platform/mac/webview_mac.mm +@@ -254,10 +254,12 @@ void *Instance::winId() { + } + + void Instance::setOpaqueBg(QColor opaqueBg) { ++#if 0 + if (@available(macOS 12.0, *)) { + [_webview setValue: @NO forKey: @"drawsBackground"]; + [_webview setUnderPageBackgroundColor:[NSColor clearColor]]; + } ++#endif + } + + void Instance::resizeToWindow() { diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix new file mode 100644 index 000000000000..b9059e17bc26 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix @@ -0,0 +1,79 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch +, pkg-config, cmake, ninja, yasm +, libjpeg, openssl, libopus, ffmpeg, alsa-lib, libpulseaudio, protobuf +, openh264, usrsctp, libevent, libvpx +, libX11, libXtst, libXcomposite, libXdamage, libXext, libXrender, libXrandr, libXi +, glib, abseil-cpp, pcre, util-linuxMinimal, libselinux, libsepol, pipewire +, mesa, libepoxy, libglvnd, unstableGitUpdater, darwin +}: + +stdenv.mkDerivation { + pname = "tg_owt"; + version = "unstable-2023-12-21"; + + src = fetchFromGitHub { + owner = "desktop-app"; + repo = "tg_owt"; + rev = "afd9d5d31798d3eacf9ed6c30601e91d0f1e4d60"; + sha256 = "sha256-/1cghoxmm+6uFEUgCjh1Xhb0CTnd1XAq1M21FruDRek="; + fetchSubmodules = true; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ pkg-config cmake ninja yasm ]; + + buildInputs = [ + libjpeg libopus ffmpeg protobuf openh264 usrsctp libevent libvpx abseil-cpp + ] ++ lib.optionals stdenv.isLinux [ + libX11 libXtst libXcomposite libXdamage libXext libXrender libXrandr libXi + glib pcre util-linuxMinimal libselinux libsepol pipewire alsa-lib libpulseaudio + mesa libepoxy libglvnd + ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ + Cocoa + AppKit + IOKit + IOSurface + Foundation + AVFoundation + CoreMedia + VideoToolbox + CoreGraphics + CoreVideo + OpenGL + Metal + MetalKit + CoreFoundation + ApplicationServices + ]); + + patches = [ + # GCC 12 Fix + (fetchpatch { + url = "https://github.com/desktop-app/tg_owt/pull/101/commits/86d2bcd7afb8706663d29e30f65863de5a626142.patch"; + hash = "sha256-iWS0mB8R0vqPU/0qf6Ax54UCAKYDVCPac2mi/VHbFm0="; + }) + # additional fix for GCC 12 + musl + (fetchpatch { + url = "https://git.alpinelinux.org/aports/plain/community/tg_owt/gcc12.patch?id=8120df03fa3b6db5b8ff92c7a52b680290ad6e20"; + hash = "sha256-ikgxUH1e7pz0n0pKUemrPXXa4UkECX+w467M9gU68zs="; + }) + ]; + + cmakeFlags = [ + # Building as a shared library isn't officially supported and may break at any time. + "-DBUILD_SHARED_LIBS=OFF" + ]; + + propagatedBuildInputs = [ + # Required for linking downstream binaries. + abseil-cpp openh264 usrsctp libevent libvpx openssl + ]; + + passthru.updateScript = unstableGitUpdater { }; + + meta = with lib; { + license = licenses.bsd3; + maintainers = with maintainers; [ oxalica ]; + }; +} 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/gabble/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix new file mode 100644 index 000000000000..ed2723c0435c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchurl, pkg-config, libxslt, telepathy-glib, python3, libxml2, dbus-glib, dbus +, sqlite, libsoup, libnice, gnutls +, fetchpatch +}: + +stdenv.mkDerivation rec { + pname = "telepathy-gabble"; + version = "0.18.4"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/telepathy-gabble/telepathy-gabble-${version}.tar.gz"; + sha256 = "174nlkqm055vrhv11gy73m20jbsggcb0ddi51c7s9m3j5ibr2p0i"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/archlinux/svntogit-packages/raw/edcf78c831894000f2fbfd3e5818e363911c746a/trunk/telepathy-gabble-0.18.4-python3.patch"; + hash = "sha256-bvcZW6gbCNogqwPDaXHTbohe7c2GAYjXeHGyBEDVsB4="; + }) + ]; + + nativeBuildInputs = [ pkg-config libxslt python3 ]; + buildInputs = [ libxml2 dbus-glib sqlite libsoup libnice telepathy-glib gnutls ]; + + nativeCheckInputs = [ dbus ]; + + configureFlags = [ "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" ]; + + enableParallelBuilding = true; + doCheck = true; + + meta = with lib; { + description = "Jabber/XMPP connection manager for the Telepathy framework"; + homepage = "https://telepathy.freedesktop.org/components/telepathy-gabble/"; + license = licenses.lgpl21Plus; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix new file mode 100644 index 000000000000..36b38c585438 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, fetchurl, pidgin, telepathy-glib, python3, glib, dbus-glib, pkg-config, libxslt }: + +stdenv.mkDerivation rec { + pname = "telepathy-haze"; + version = "0.8.1"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/telepathy-haze/telepathy-haze-${version}.tar.gz"; + hash = "sha256-cEvvpC7sIXPspLrAH/0AQBRmXyutRtyJSOVCM2TN4wo="; + }; + + buildInputs = [ glib telepathy-glib dbus-glib pidgin ]; + + nativeBuildInputs = [ pkg-config libxslt python3 ]; + + meta = { + description = "A Telepathy connection manager based on libpurple"; + homepage = "https://telepathy.freedesktop.org/components/telepathy-haze/"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix new file mode 100644 index 000000000000..18908fbfb74f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchurl, glib, dconf, pkg-config, dbus-glib, telepathy-glib, python3, libxslt, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "telepathy-idle"; + version = "0.2.2"; + + src = fetchurl { + url = "http://telepathy.freedesktop.org/releases/${pname}/${pname}-${version}.tar.gz"; + hash = "sha256-g4fiXl+wtMvnAeXcCS1mbWUQuDP9Pn5GLpFw027DwV8="; + }; + + nativeBuildInputs = [ pkg-config python3 makeWrapper ]; + buildInputs = [ glib telepathy-glib dbus-glib libxslt (lib.getLib dconf) ]; + + preFixup = '' + wrapProgram "$out/libexec/telepathy-idle" \ + --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" + ''; + + meta = { + description = "IRC connection manager for the Telepathy framework"; + homepage = "https://telepathy.freedesktop.org/components/telepathy-idle/"; + license = lib.licenses.lgpl21Plus; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix new file mode 100644 index 000000000000..9a8e547b70eb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv, fetchurl, dbus-glib, libxml2, sqlite, telepathy-glib, python3, pkg-config +, dconf, makeWrapper, intltool, libxslt, gobject-introspection, dbus +, fetchpatch, darwin +}: + +stdenv.mkDerivation rec { + pname = "telepathy-logger"; + version = "0.8.2"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/telepathy-logger/telepathy-logger-${version}.tar.bz2"; + sha256 = "1bjx85k7jyfi5pvl765fzc7q2iz9va51anrc2djv7caksqsdbjlg"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/archlinux/svntogit-packages/raw/2b5bdbb4739d3517f5e7300edc8dab775743b96d/trunk/0001-tools-Fix-the-build-with-Python-3.patch"; + hash = "sha256-o1lfdZIIqaxn7ntQZnoOMqquc6efTHgSIxB5dpFWRgg="; + }) + ]; + + nativeBuildInputs = [ + makeWrapper pkg-config intltool libxslt gobject-introspection + python3 + ]; + buildInputs = [ + dbus-glib libxml2 sqlite telepathy-glib + dbus + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.AppKit + darwin.apple_sdk.frameworks.Foundation + ]; + + configureFlags = [ "--enable-call" ]; + + preFixup = '' + wrapProgram "$out/libexec/telepathy-logger" \ + --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with lib; { + description = "Logger service for Telepathy framework"; + homepage = "https://telepathy.freedesktop.org/components/telepathy-logger/"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix new file mode 100644 index 000000000000..203954434607 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix @@ -0,0 +1,58 @@ +{ lib, stdenv +, fetchurl +, pkg-config +, dconf +, telepathy-glib +, python3 +, libxslt +, makeWrapper +, autoreconfHook +, gtk-doc +}: + +stdenv.mkDerivation rec { + pname = "telepathy-mission-control"; + version = "5.16.6"; + + outputs = [ "out" "lib" "dev" ]; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/${pname}/${pname}-${version}.tar.gz"; + sha256 = "0ibs575pfr0wmhfcw6ln6iz7gw2y45l3bah11rksf6g9jlwsxy1d"; + }; + + buildInputs = [ + python3 + ]; # ToDo: optional stuff missing + + nativeBuildInputs = [ + pkg-config + libxslt + makeWrapper + ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ + autoreconfHook + gtk-doc + ]; + + propagatedBuildInputs = [ + telepathy-glib + ]; + + doCheck = true; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram "$lib/libexec/mission-control-5" \ + --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with lib; { + description = "An account manager and channel dispatcher for the Telepathy framework"; + homepage = "https://telepathy.freedesktop.org/components/telepathy-mission-control/"; + license = licenses.lgpl21Only; + maintainers = with maintainers; [ ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix new file mode 100644 index 000000000000..ffa603fb80b1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix @@ -0,0 +1,69 @@ +{ mkDerivation +, lib +, stdenv +, fetchFromGitHub +, qtbase +, qtquickcontrols +, qmake +, makeDesktopItem +}: + +# we now have libqmatrixclient so a future version of tensor that supports it +# should use that + +mkDerivation rec { + pname = "tensor"; + version = "unstable-2017-02-21"; + + src = fetchFromGitHub { + owner = "davidar"; + repo = "tensor"; + rev = "f3f3056d770d7fb4a21c610cee7936ee900569f5"; + sha256 = "sha256-aR6TsfUxsxoSDaIWYgRCwd7BCgekSEqY6LpDoQ5DNqY="; + fetchSubmodules = true; + }; + + buildInputs = [ qtbase qtquickcontrols ]; + nativeBuildInputs = [ qmake ]; + + desktopItem = makeDesktopItem { + name = "tensor"; + exec = "@bin@"; + icon = "tensor.png"; + comment = meta.description; + desktopName = "Tensor Matrix Client"; + genericName = meta.description; + categories = [ "Chat" "Utility" ]; + mimeTypes = [ "application/x-chat" ]; + }; + + installPhase = if stdenv.isDarwin then '' + runHook preInstall + + mkdir -p $out/Applications + cp -r tensor.app $out/Applications/tensor.app + + runHook postInstall + '' else '' + runHook preInstall + + install -Dm755 tensor $out/bin/tensor + install -Dm644 client/logo.png \ + $out/share/icons/hicolor/512x512/apps/tensor.png + install -Dm644 ${desktopItem}/share/applications/tensor.desktop \ + $out/share/applications/tensor.desktop + + substituteInPlace $out/share/applications/tensor.desktop \ + --subst-var-by bin $out/bin/tensor + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/davidar/tensor"; + description = "Cross-platform Qt5/QML-based Matrix client"; + license = licenses.gpl3; + maintainers = with maintainers; [ peterhoeg ]; + inherit (qtbase.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix new file mode 100644 index 000000000000..0cb8cc4ff2e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron +, alsa-lib, glibc, gtk3, libxshmfence, mesa, nss }: + +stdenv.mkDerivation rec { + pname = "threema-desktop"; + version = "1.2.31"; + + 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/20230731230034if_/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb"; + hash = "sha256-eZ/bjcSnrnzub1G4sbwPn3GCTwhDfFuYv9Plf5SJL90="; + }; + + nativeBuildInputs = [ + dpkg + autoPatchelfHook + makeWrapper + ]; + + buildInputs = [ alsa-lib glibc gtk3 libxshmfence mesa nss ]; + + dontBuild = true; + dontConfigure = true; + + unpackPhase = '' + # Can't unpack with the common dpkg-deb -x method + dpkg --fsys-tarfile $src | tar --extract + ''; + + installPhase = '' + runHook preInstall + + # This will cause confusion, not needed + rm -r usr/bin + mv usr $out + + runHook postInstall + ''; + + postFixup = '' + mv $out/share/applications/threema.desktop $out/share/applications/threema-desktop.desktop + makeWrapper ${electron}/bin/electron $out/bin/threema \ + --add-flags $out/lib/threema/resources/app.asar + ''; + + 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/toxic/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix new file mode 100644 index 000000000000..2f16cb78454f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, libsodium, ncurses, curl +, libtoxcore, openal, libvpx, freealut, libconfig, pkg-config, libopus +, qrencode, gdk-pixbuf, libnotify }: + +stdenv.mkDerivation rec { + pname = "toxic"; + version = "0.11.3"; + + src = fetchFromGitHub { + owner = "Tox"; + repo = "toxic"; + rev = "v${version}"; + sha256 = "sha256-BabRY9iu5ccEXo5POrWkWaIWAeQU4MVlMK8I+Iju6aQ="; + }; + + makeFlags = [ "PREFIX=$(out)"]; + installFlags = [ "PREFIX=$(out)"]; + + buildInputs = [ + libtoxcore libsodium ncurses curl gdk-pixbuf libnotify + ] ++ lib.optionals (!stdenv.isAarch32) [ + openal libopus libvpx freealut qrencode + ]; + nativeBuildInputs = [ pkg-config libconfig ]; + + meta = with lib; src.meta // { + description = "Reference CLI for Tox"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ ehmry ]; + platforms = platforms.linux; + }; +} 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 new file mode 100644 index 000000000000..240931065e6c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix @@ -0,0 +1,95 @@ +{ lib +, fetchpatch +, fetchFromGitHub +, fetchPypi +, python3 +}: + +let + py = python3.override { + packageOverrides = self: super: { + + # Support for later tweepy releases is missing + # https://github.com/louipc/turses/issues/12 + tweepy = super.tweepy.overridePythonAttrs (oldAttrs: rec { + version = "3.10.0"; + + src = fetchFromGitHub { + owner = "tweepy"; + repo = "tweepy"; + rev = "v${version}"; + sha256 = "0k4bdlwjna6f1k19jki4xqgckrinkkw8b9wihzymr1l04rwd05nw"; + }; + propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ + super.six + super.requests.optional-dependencies.socks + ]; + doCheck = false; + }); + }; + }; +in +with py.pkgs; + +buildPythonPackage rec { + pname = "turses"; + version = "0.3.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "15mkhm3b5ka42h8qph0mhh8izfc1200v7651c62k7ldcs50ib9j6"; + }; + + propagatedBuildInputs = with py.pkgs; [ + urwid + tweepy + future + ]; + + nativeCheckInputs = with py.pkgs; [ + mock + pytest + coverage + tox + ]; + + LC_ALL = "en_US.UTF-8"; + + patches = [ + (fetchpatch { + url = "https://github.com/louipc/turses/commit/be0961b51f502d49fd9e2e5253ac130e543a31c7.patch"; + sha256 = "17s1n0275mcj03vkf3n39dmc09niwv4y7ssrfk7k3vqx22kppzg3"; + }) + # python 3.7+ support + (fetchpatch { + url = "https://github.com/booxter/turses/commit/e6e285eae50fc3d2042a476185fe60daef1e758e.patch"; + sha256 = "0g2zsrny955viwgs2l6gpiiz8m67b5sgdcxkjmfimfvvih5sg79f"; + }) + ]; + + postPatch = '' + substituteInPlace setup.py \ + --replace "urwid==1.3.0" "urwid" \ + --replace "future==0.14.3" "future" \ + --replace "tweepy==3.3.0" "tweepy" + substituteInPlace tests/test_config.py \ + --replace "config.generate_config_file.assert_called_once()" "assert config.generate_config_file.call_count == 1" + substituteInPlace tests/test_meta.py \ + --replace "self.observer.update.assert_called_once()" "assert self.observer.update.call_count == 1" + ''; + + checkPhase = '' + TMP_TURSES=`echo turses-$RANDOM` + mkdir $TMP_TURSES + PYTHONPATH=tests:$PYTHONPATH HOME=$TMP_TURSES py.test tests/ + rm -rf $TMP_TURSES + ''; + + meta = with lib; { + description = "A Twitter client for the console"; + homepage = "https://github.com/louipc/turses"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix new file mode 100644 index 000000000000..dcf33a91f951 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix @@ -0,0 +1,71 @@ +{ lib +, fetchFromGitHub +, cmake +, libxml2 +, libsndfile +, file +, readline +, bison +, flex +, ucommon +, ccrtp +, qtbase +, qttools +, qtquickcontrols2 +, alsa-lib +, speex +, ilbc +, mkDerivation +, bcg729 +}: + +mkDerivation rec { + pname = "twinkle"; + version = "unstable-2023-03-25"; + + src = fetchFromGitHub { + owner = "LubosD"; + repo = "twinkle"; + rev = "355813d5640ad58c84dc063826069384470ce310"; + hash = "sha256-u+RewFwW17Oz2+lJLlmwebaGn4ebTBquox9Av7Jh1as="; + }; + + buildInputs = [ + libxml2 + file # libmagic + libsndfile + readline + ucommon + ccrtp + qtbase + qttools + qtquickcontrols2 + alsa-lib + speex + ilbc + ]; + + nativeBuildInputs = [ + cmake + bison + flex + bcg729 + ]; + + cmakeFlags = [ + "-DWITH_G729=On" + "-DWITH_SPEEX=On" + "-DWITH_ILBC=On" + "-DHAVE_LIBATOMIC=atomic" + /* "-DWITH_DIAMONDCARD=On" seems ancient and broken */ + ]; + + meta = with lib; { + changelog = "https://github.com/LubosD/twinkle/blob/${version}/NEWS"; + description = "A SIP-based VoIP client"; + homepage = "http://twinkle.dolezel.info/"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.mkg20001 ]; + platforms = platforms.linux; + }; +} 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..0c0949688382 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix @@ -0,0 +1,45 @@ +{ lib +, stdenv +, fetchFromGitHub +, rustPlatform +, pkg-config +, openssl +, CoreServices +, Security +, SystemConfiguration +}: + +rustPlatform.buildRustPackage rec { + pname = "twitch-tui"; + version = "2.6.3"; + + src = fetchFromGitHub { + owner = "Xithrius"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-h8qpsrMFFb49yfNb5mKEYRpul0hB0m1rDCvVW6jW+Pg="; + }; + + cargoHash = "sha256-L7psqmU4Zd7c0mbd4pK/tmPslTaxIhQoWtN0/RRMerA="; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + openssl + ] ++ lib.optionals stdenv.isDarwin [ + CoreServices + Security + SystemConfiguration + ]; + + meta = with lib; { + description = "Twitch chat in the terminal"; + homepage = "https://github.com/Xithrius/twitch-tui"; + changelog = "https://github.com/Xithrius/twitch-tui/releases/tag/v${version}"; + license = licenses.mit; + maintainers = [ maintainers.taha ]; + mainProgram = "twt"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix new file mode 100644 index 000000000000..7fee1f5c3a83 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchFromGitHub, check, cmake, pkg-config +, libtoxcore, filter-audio, dbus, libvpx, libX11, openal, freetype, libv4l +, libXrender, fontconfig, libXext, libXft, libsodium, libopus }: + +stdenv.mkDerivation rec { + pname = "utox"; + + version = "0.18.1"; + + src = fetchFromGitHub { + owner = "uTox"; + repo = "uTox"; + rev = "v${version}"; + sha256 = "sha256-DxnolxUTn+CL6TbZHKLHOUMTHhtTSWufzzOTRpKjOwc="; + fetchSubmodules = true; + }; + + buildInputs = [ + libtoxcore dbus libvpx libX11 openal freetype + libv4l libXrender fontconfig libXext libXft filter-audio + libsodium libopus + ]; + + nativeBuildInputs = [ + cmake pkg-config + ]; + + cmakeFlags = [ + "-DENABLE_AUTOUPDATE=OFF" + "-DENABLE_TESTS=${if doCheck then "ON" else "OFF"}" + ]; + + doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + nativeCheckInputs = [ check ]; + + meta = with lib; { + description = "Lightweight Tox client"; + homepage = "https://github.com/uTox/uTox"; + license = licenses.gpl3; + maintainers = with maintainers; [ ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix new file mode 100644 index 000000000000..f735907e46b8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix @@ -0,0 +1,49 @@ +{ stdenv, lib, fetchFromGitHub +, qtbase +, qttools +, qtx11extras +, qtmultimedia +, qtwebkit +, wrapQtAppsHook +, cmake +, openssl +, xorgproto, libX11, libXScrnSaver +, xz, zlib +}: +stdenv.mkDerivation { + pname = "vacuum-im"; + version = "unstable-2021-12-09"; + + src = fetchFromGitHub { + owner = "Vacuum-IM"; + repo = "vacuum-im"; + rev = "0abd5e11dd3e2538b8c47f5a06febedf73ae99ee"; + sha256 = "0l9pln07zz874m1r6wnpc9vcdbpgvjdsy49cjjilc6s4p4b2c812"; + }; + + nativeBuildInputs = [ + wrapQtAppsHook + cmake + ]; + buildInputs = [ + qtbase + qttools + qtx11extras + qtmultimedia + qtwebkit + openssl + xorgproto + libX11 + libXScrnSaver + xz + zlib + ]; + + meta = with lib; { + description = "An XMPP client fully composed of plugins"; + maintainers = [ maintainers.raskin ]; + platforms = platforms.linux; + license = licenses.gpl3; + homepage = "http://www.vacuum-im.org"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix new file mode 100644 index 000000000000..884bd0942db1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix @@ -0,0 +1,111 @@ +{fetchurl, lib, stdenv, dpkg, makeWrapper, + alsa-lib, cups, curl, dbus, expat, fontconfig, freetype, glib, gst_all_1, + harfbuzz, libcap, libGL, libGLU, libpulseaudio, libxkbcommon, libxml2, libxslt, + nspr, nss, openssl_1_1, systemd, wayland, xorg, zlib, ... +}: + +stdenv.mkDerivation { + pname = "viber"; + version = "16.1.0.37"; + + src = fetchurl { + # Official link: https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb + url = "https://web.archive.org/web/20211119123858/https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb"; + sha256 = "sha256-hOz+EQc2OOlLTPa2kOefPJMUyWvSvrgqgPgBKjWE3p8="; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ dpkg ]; + + dontUnpack = true; + + libPath = lib.makeLibraryPath [ + alsa-lib + cups + curl + dbus + expat + fontconfig + freetype + glib + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + harfbuzz + libcap + libGLU libGL + libpulseaudio + libxkbcommon + libxml2 + libxslt + nspr + nss + openssl_1_1 + stdenv.cc.cc + systemd + wayland + zlib + + xorg.libICE + xorg.libSM + xorg.libX11 + xorg.libxcb + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXScrnSaver + xorg.libXtst + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilrenderutil + xorg.xcbutilwm + ] + ; + + installPhase = '' + dpkg-deb -x $src $out + mkdir -p $out/bin + + # Soothe nix-build "suspicions" + chmod -R g-w $out + + for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --set-rpath $libPath:$out/opt/viber/lib $file || true + done + + # qt.conf is not working, so override everything using environment variables + wrapProgram $out/opt/viber/Viber \ + --set QT_QPA_PLATFORM "xcb" \ + --set QT_PLUGIN_PATH "$out/opt/viber/plugins" \ + --set QT_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" \ + --set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale" \ + --set QML2_IMPORT_PATH "$out/opt/viber/qml" + ln -s $out/opt/viber/Viber $out/bin/viber + + mv $out/usr/share $out/share + rm -rf $out/usr + + # Fix the desktop link + substituteInPlace $out/share/applications/viber.desktop \ + --replace /opt/viber/Viber $out/opt/viber/Viber \ + --replace /usr/share/ $out/share/ + ''; + + dontStrip = true; + dontPatchELF = true; + + 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 new file mode 100644 index 000000000000..a22437bf8da0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix @@ -0,0 +1,55 @@ +{ stdenv +, lib +, fetchurl +, curl +, p7zip +, glibc +, ncurses +, openssl +}: + +stdenv.mkDerivation rec { + pname = "vk-cli"; + version = "0.7.6"; + + src = fetchurl { + url = "https://github.com/vk-cli/vk/releases/download/${version}/vk-${version}-64-bin.7z"; + sha256 = "sha256-Y40oLjddunrd7ZF1JbCcgjSCn8jFTubq69jhAVxInXw="; + }; + + nativeBuildInputs = [ + p7zip + ]; + + buildInputs = [ + curl + ncurses + openssl + ]; + + unpackPhase = '' + mkdir -p $TMP/ + 7z x $src -o$TMP/ + ''; + + installPhase = '' + mkdir -p $out/bin/ + mv $TMP/vk-${version}-64-bin vk-cli + install -D vk-cli --target-directory=$out/bin/ + ''; + + postFixup = '' + patchelf $out/bin/vk-cli \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${lib.makeLibraryPath [ curl glibc ]}" + ''; + + 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 new file mode 100644 index 000000000000..0d320485fe74 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix @@ -0,0 +1,74 @@ +{ stdenv, lib, fetchurl, rpmextract, undmg, autoPatchelfHook +, xorg, gtk3, nss, alsa-lib, udev, libnotify +, wrapGAppsHook }: + +let + pname = "vk-messenger"; + version = "5.3.2"; + + src = { + i686-linux = fetchurl { + url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm"; + sha256 = "L0nE0zW4LP8udcE8uPy+cH9lLuQsUSq7cF13Gv7w2rI="; + }; + x86_64-linux = fetchurl { + url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm"; + sha256 = "spDw9cfDSlIuCwOqREsqXC19tx62TiAz9fjIS9lYjSQ="; + }; + x86_64-darwin = fetchurl { + url = "https://web.archive.org/web/20220302083827/https://desktop.userapi.com/mac/master/vk.dmg"; + sha256 = "hxK8I9sF6njfCxSs1KBCHfnG81JGKUgHKAeFLtuCNe0="; + }; + }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); + + 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"]; + }; + + linux = stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ rpmextract autoPatchelfHook wrapGAppsHook ]; + buildInputs = (with xorg; [ + libXdamage libXtst libXScrnSaver libxkbfile + ]) ++ [ gtk3 nss alsa-lib ]; + + runtimeDependencies = [ (lib.getLib udev) libnotify ]; + + unpackPhase = '' + rpmextract $src + ''; + + buildPhase = '' + substituteInPlace usr/share/applications/vk.desktop \ + --replace /usr/share/pixmaps/vk.png vk + ''; + + installPhase = '' + mkdir $out + cd usr + cp -r --parents bin $out + cp -r --parents share/vk $out + cp -r --parents share/applications $out + cp -r --parents share/pixmaps $out + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/Applications + cp -r *.app $out/Applications + ''; + }; +in if stdenv.isDarwin then darwin else linux diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix new file mode 100644 index 000000000000..9578b11fdfa6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix @@ -0,0 +1,94 @@ +{ alsa-lib +, autoPatchelfHook +, fetchurl +, gtk3 +, gtk4 +, libnotify +, copyDesktopItems +, makeDesktopItem +, makeWrapper +, mesa +, nss +, lib +, libdrm +, qt5 +, stdenv +, udev +, xdg-utils +, xorg +}: + +stdenv.mkDerivation rec { + pname = "wavebox"; + version = "10.120.10-2"; + + src = fetchurl { + url = "https://download.wavebox.app/stable/linux/tar/Wavebox_${version}.tar.gz"; + sha256 = "sha256-9kA3nJUNlNHbWYkIy0iEnWCrmIYTjULdMAGGnO4JCkg="; + }; + + # don't remove runtime deps + dontPatchELF = true; + # ignore optional Qt 6 shim + autoPatchelfIgnoreMissingDeps = [ "libQt6Widgets.so.6" "libQt6Gui.so.6" "libQt6Core.so.6" ]; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper qt5.wrapQtAppsHook copyDesktopItems ]; + + buildInputs = with xorg; [ + libXdmcp + libXScrnSaver + libXtst + libxshmfence + libXdamage + ] ++ [ + alsa-lib + gtk3 + nss + libdrm + mesa + gtk4 + qt5.qtbase + ]; + + runtimeDependencies = [ (lib.getLib udev) libnotify gtk4 ]; + + desktopItems = [ + (makeDesktopItem rec { + name = "Wavebox"; + exec = "wavebox"; + icon = "wavebox"; + desktopName = name; + genericName = name; + categories = [ "Network" "WebBrowser" ]; + }) + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/opt/wavebox + cp -r * $out/opt/wavebox + + # provide icon for desktop item + mkdir -p $out/share/icons/hicolor/128x128/apps + ln -s $out/opt/wavebox/product_logo_128.png $out/share/icons/hicolor/128x128/apps/wavebox.png + + runHook postInstall + ''; + + postFixup = '' + makeWrapper $out/opt/wavebox/wavebox-launcher $out/bin/wavebox \ + --prefix PATH : ${xdg-utils}/bin + ''; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + description = "Wavebox messaging application"; + homepage = "https://wavebox.io"; + license = licenses.mpl20; + maintainers = with maintainers; [ rawkode ]; + platforms = [ "x86_64-linux" ]; + hydraPlatforms = [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/update.sh new file mode 100755 index 000000000000..316f8bfbb7ec --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/update.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p nix-update curl jq + +version=$(curl "https://download.wavebox.app/stable/linux/latest.json" | jq --raw-output '.["urls"]["tar"] | match("https://download.wavebox.app/stable/linux/tar/Wavebox_(.+).tar.gz").captures[0]["string"]') +nix-update wavebox --version "$version" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/default.nix new file mode 100644 index 000000000000..d2ccfb8a4b03 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/default.nix @@ -0,0 +1,96 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +, copyDesktopItems +, python3 +, pipewire +, libpulseaudio +, libnotify +, xdg-utils +, electron_28 +, makeDesktopItem +, nix-update-script +}: + +buildNpmPackage rec { + pname = "webcord"; + version = "4.7.1"; + + src = fetchFromGitHub { + owner = "SpacingBat3"; + repo = "WebCord"; + rev = "v${version}"; + hash = "sha256-JzKXIdXR/C3HRbpmSUq3qXYpLnVQjIY/uO+wbt1k2jI="; + }; + + npmDepsHash = "sha256-KbMoM1zYOjX2Dwu6DJZLyezRx78AC9piPw3xsX3Kb3I="; + + nativeBuildInputs = [ + copyDesktopItems + python3 + ]; + + # npm install will error when electron tries to download its binary + # we don't need it anyways since we wrap the program with our nixpkgs electron + env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; + + # remove husky commit hooks, errors and aren't needed for packaging + postPatch = '' + rm -rf .husky + ''; + + # override installPhase so we can copy the only folders that matter + installPhase = + let + libPath = lib.makeLibraryPath [ + libpulseaudio + pipewire + libnotify + ]; + binPath = lib.makeBinPath [ xdg-utils ]; + in + '' + runHook preInstall + + # Remove dev deps that aren't necessary for running the app + npm prune --omit=dev + + mkdir -p $out/lib/node_modules/webcord + cp -r app node_modules sources package.json $out/lib/node_modules/webcord/ + + install -Dm644 sources/assets/icons/app.png $out/share/icons/hicolor/256x256/apps/webcord.png + + # Add xdg-utils to path via suffix, per PR #181171 + makeWrapper '${lib.getExe electron_28}' $out/bin/webcord \ + --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/webcord \ + --suffix PATH : "${binPath}" \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ + --add-flags $out/lib/node_modules/webcord/ + + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "webcord"; + exec = "webcord"; + icon = "webcord"; + desktopName = "WebCord"; + comment = meta.description; + categories = [ "Network" "InstantMessaging" ]; + }) + ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "A Discord and SpaceBar electron-based client implemented without Discord API"; + homepage = "https://github.com/SpacingBat3/WebCord"; + downloadPage = "https://github.com/SpacingBat3/WebCord/releases"; + changelog = "https://github.com/SpacingBat3/WebCord/releases/tag/v${version}"; + license = lib.licenses.mit; + mainProgram = "webcord"; + maintainers = with lib.maintainers; [ eclairevoyant huantian ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/webcord-vencord/add-extension.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/webcord-vencord/add-extension.patch new file mode 100644 index 000000000000..888dad1eee11 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/webcord-vencord/add-extension.patch @@ -0,0 +1,12 @@ +diff --git a/sources/code/common/main.ts b/sources/code/common/main.ts +index 3936ee0..bd745ef 100644 +--- a/sources/code/common/main.ts ++++ b/sources/code/common/main.ts +@@ -358,6 +358,7 @@ app.userAgentFallback = getUserAgent(process.versions.chrome, userAgent.mobile, + const singleInstance = app.requestSingleInstanceLock(); + + function main(): void { ++ session.defaultSession.loadExtension("@vencord@"); + if (overwriteMain) { + // Execute flag-specific functions for ready application. + overwriteMain(); diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/webcord-vencord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/webcord-vencord/default.nix new file mode 100644 index 000000000000..47e067345547 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/webcord-vencord/default.nix @@ -0,0 +1,21 @@ +{ webcord +, substituteAll +, lib +, vencord-web-extension +}: + +webcord.overrideAttrs (old: { + pname = "webcord-vencord"; + + patches = (old.patches or [ ]) ++ [ + (substituteAll { + src = ./add-extension.patch; + vencord = vencord-web-extension; + }) + ]; + + meta = with lib; old.meta // { + description = "Webcord with Vencord web extension"; + maintainers = with maintainers; [ FlafyDev NotAShelf ]; + }; +}) 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..c55178060fc8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix @@ -0,0 +1,182 @@ +{ 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 +, libxcrypt-legacy +, lshw +, mesa +, nspr +, nss +, pango +, zlib +, libX11 +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXrandr +, libXrender +, libXtst +, libxshmfence +, xcbutil +, xcbutilimage +, xcbutilkeysyms +, xcbutilrenderutil +, xcbutilwm +, p7zip +, tbb +, wayland +, libXScrnSaver +}: + +stdenv.mkDerivation rec { + pname = "webex"; + version = "43.11.0.27795"; + + src = fetchurl { + url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20231108131957/Webex_ubuntu.7z"; + sha256 = "e7a30481840a4a56c7ac38fa9efb487c722758ad9ac875432e86232d6a8e6466"; + }; + + nativeBuildInputs = [ + p7zip + ]; + + 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 + libxcrypt-legacy + libX11 + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + libxshmfence + xcbutil + xcbutilimage + libXScrnSaver + xcbutilkeysyms + xcbutilrenderutil + xcbutilwm + tbb + 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=gold # blue, green, gold + 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/whatsapp-for-linux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix new file mode 100644 index 000000000000..efca89de7cbb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix @@ -0,0 +1,78 @@ +{ fetchFromGitHub +, lib +, stdenv +, cmake +, glib-networking +, gst_all_1 +, gtkmm3 +, libayatana-appindicator +, libcanberra +, libepoxy +, libpsl +, libdatrie +, libdeflate +, libselinux +, libsepol +, libsysprof-capture +, libthai +, libxkbcommon +, sqlite +, pcre +, pcre2 +, pkg-config +, webkitgtk +, wrapGAppsHook +, xorg +}: + +stdenv.mkDerivation rec { + pname = "whatsapp-for-linux"; + version = "1.6.4"; + + src = fetchFromGitHub { + owner = "eneshecan"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-DU9tvIvDfOtBydR68yeRMFYdMjiBrOobCDXIZMmm7pQ="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + glib-networking + gst_all_1.gst-libav + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gtkmm3 + libayatana-appindicator + libcanberra + libdatrie + libdeflate + libepoxy + libpsl + libselinux + libsepol + libsysprof-capture + libthai + libxkbcommon + pcre + pcre2 + sqlite + webkitgtk + xorg.libXdmcp + xorg.libXtst + ]; + + meta = with lib; { + homepage = "https://github.com/eneshecan/whatsapp-for-linux"; + description = "Whatsapp desktop messaging app"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ bartuka ]; + 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 new file mode 100644 index 000000000000..9aaba98710e3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix @@ -0,0 +1,189 @@ +{ autoPatchelfHook +, dpkg +, fetchurl +, makeDesktopItem +, makeWrapper +, stdenv +, lib +, udev +, wrapGAppsHook +, cpio +, xar +, libdbusmenu +, alsa-lib +, mesa +, nss +, nspr +, systemd +}: + +let + + inherit (stdenv.hostPlatform) system; + + throwSystem = throw "Unsupported system: ${system}"; + + pname = "wire-desktop"; + + version = let + x86_64-darwin = "3.32.4589"; + in { + inherit x86_64-darwin; + aarch64-darwin = x86_64-darwin; + x86_64-linux = "3.32.3079"; + }.${system} or throwSystem; + + hash = let + x86_64-darwin = "sha256-PDAZCnkgzlausdtwycK+PHfp+zmL33VnX6RzCsgBTZ4="; + in { + inherit x86_64-darwin; + aarch64-darwin = x86_64-darwin; + x86_64-linux = "sha256-+4aRis141ctI50BtBwipoVtPoMGRs82ENqZ+y2ZlL58="; + }.${system} or throwSystem; + + meta = with lib; { + description = "A modern, secure messenger for everyone"; + longDescription = '' + Wire Personal is a secure, privacy-friendly messenger. It combines useful + and fun features, audited security, and a beautiful, distinct user + interface. It does not require a phone number to register and chat. + + * End-to-end encrypted chats, calls, and files + * Crystal clear voice and video calling + * File and screen sharing + * Timed messages and chats + * Synced across your phone, desktop and tablet + ''; + homepage = "https://wire.com/"; + downloadPage = "https://wire.com/download/"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ + arianvp + kiwi + toonn + ]; + platforms = platforms.darwin ++ [ + "x86_64-linux" + ]; + hydraPlatforms = []; + }; + + linux = stdenv.mkDerivation rec { + inherit pname version meta; + + src = fetchurl { + url = "https://wire-app.wire.com/linux/debian/pool/main/Wire-${version}_amd64.deb"; + inherit hash; + }; + + desktopItem = makeDesktopItem { + categories = [ "Network" "InstantMessaging" "Chat" "VideoConference" ]; + comment = "Secure messenger for everyone"; + desktopName = "Wire"; + exec = "wire-desktop %U"; + genericName = "Secure messenger"; + icon = "wire-desktop"; + name = "wire-desktop"; + startupWMClass = "Wire"; + }; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + dontWrapGApps = true; + + # TODO: migrate off autoPatchelfHook and use nixpkgs' electron + nativeBuildInputs = [ + autoPatchelfHook + dpkg + makeWrapper + wrapGAppsHook + ]; + + buildInputs = [ + alsa-lib + mesa + nss + nspr + systemd + ]; + + unpackPhase = '' + runHook preUnpack + + dpkg-deb -x $src . + + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/bin" + cp -R "opt" "$out" + cp -R "usr/share" "$out/share" + chmod -R g-w "$out" + + # Desktop file + mkdir -p "$out/share/applications" + cp "${desktopItem}/share/applications/"* "$out/share/applications" + + runHook postInstall + ''; + + runtimeDependencies = [ + (lib.getLib udev) + libdbusmenu + ]; + + postFixup = '' + makeWrapper $out/opt/Wire/wire-desktop $out/bin/wire-desktop \ + "''${gappsWrapperArgs[@]}" + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version meta; + + src = fetchurl { + url = "https://github.com/wireapp/wire-desktop/releases/download/macos%2F${version}/Wire.pkg"; + inherit hash; + }; + + buildInputs = [ + cpio + xar + ]; + + unpackPhase = '' + runHook preUnpack + + xar -xf $src + cd com.wearezeta.zclient.mac.pkg + + runHook postUnpack + ''; + + buildPhase = '' + runHook preBuild + + cat Payload | gunzip -dc | cpio -i + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications + cp -r Wire.app $out/Applications + + runHook postInstall + ''; + }; + +in +if stdenv.isDarwin +then darwin +else linux 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/ytalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix new file mode 100644 index 000000000000..1ccc9fbe6f57 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchurl, ncurses }: + +stdenv.mkDerivation rec { + pname = "ytalk"; + version = "3.3.0"; + + src = fetchurl { + url = "ftp://ftp.ourproject.org/pub/ytalk/${pname}-${version}.tar.gz"; + sha256 = "1d3jhnj8rgzxyxjwfa22vh45qwzjvxw1qh8fz6b7nfkj3zvk9jvf"; + }; + + buildInputs = [ ncurses ]; + + meta = { + homepage = "http://ytalk.ourproject.org"; + description = "A terminal based talk client"; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ taeer ]; + license = lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix new file mode 100644 index 000000000000..dcd573e69d30 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -0,0 +1,200 @@ +{ 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 +, libkrb5 + # Runtime +, coreutils +, pciutils +, procps +, util-linux +, pulseaudioSupport ? true +, libpulseaudio +}: + +let + inherit (stdenv.hostPlatform) system; + throwSystem = throw "Unsupported system: ${system}"; + + # Zoom versions are released at different times for each platform + # and often with different versions. We write them on three lines + # like this (rather than using {}) so that the updater script can + # find where to edit them. + versions.aarch64-darwin = "5.17.5.29101"; + versions.x86_64-darwin = "5.17.5.29101"; + versions.x86_64-linux = "5.17.5.2543"; + + srcs = { + aarch64-darwin = fetchurl { + url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64"; + name = "zoomusInstallerFull.pkg"; + hash = "sha256-Zq/8r4Ny9m+Ym6YMm49iMoITvkGO9q1DxQ0IqHC/7Us="; + }; + x86_64-darwin = fetchurl { + url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg"; + hash = "sha256-/GTBPIswV+YSvnbrSYefrLfcv5eXsRCe3vaTDGmptl8="; + }; + x86_64-linux = fetchurl { + url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz"; + hash = "sha256-R8LHyL5ojnaLBk00W997PtnKzDwMaADIpYClKDYkJcQ="; + }; + }; + + libs = lib.makeLibraryPath ([ + # $ 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 + xorg.libxshmfence + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilrenderutil + xorg.xcbutilwm + xorg.libXfixes + xorg.libXtst + udev + zlib + libkrb5 + ] ++ lib.optional (pulseaudioSupport) libpulseaudio); + +in +stdenv.mkDerivation rec { + pname = "zoom"; + version = versions.${system} or throwSystem; + + src = srcs.${system} or throwSystem; + + 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 + ${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 = lib.optionalString stdenv.isLinux '' + # Desktop File + substituteInPlace $out/share/applications/Zoom.desktop \ + --replace "Exec=/usr/bin/zoom" "Exec=$out/bin/zoom" + + for i in aomhost zopen zoom ZoomLauncher; do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zoom/$i + done + + # ZoomLauncher sets LD_LIBRARY_PATH before execing 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 + # Zoom expects "zopen" executable (needed for web login) to be present in CWD. Or does it expect + # everybody runs Zoom only after cd to Zoom package directory? Anyway, :facepalm: + # 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 \ + --chdir "$out/opt/zoom" \ + --unset QML2_IMPORT_PATH \ + --unset QT_PLUGIN_PATH \ + --unset QT_SCREEN_SCALE_FACTORS \ + --prefix PATH : ${lib.makeBinPath [ coreutils glib.dev pciutils procps util-linux ]} \ + --prefix LD_LIBRARY_PATH ":" ${libs} + + # Backwards compatiblity: we used to call it zoom-us + ln -s $out/bin/{zoom,zoom-us} + ''; + + # already done + dontPatchELF = true; + + passthru.updateScript = ./update.sh; + + 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 ]; + mainProgram = "zoom"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh new file mode 100755 index 000000000000..3684f057a08c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p common-updater-scripts curl jq + +set -eu -o pipefail + +scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd) +nixpkgs=$(realpath "$scriptDir"/../../../../..) + +echo >&2 "=== Obtaining version data from https://zoom.us/rest/download ..." +linux_data=$(curl -Ls 'https://zoom.us/rest/download?os=linux' | jq .result.downloadVO) +mac_data=$(curl -Ls 'https://zoom.us/rest/download?os=mac' | jq .result.downloadVO) + +version_aarch64_darwin=$(jq -r .zoomArm64.version <<<"$mac_data") +version_x86_64_darwin=$(jq -r .zoom.version <<<"$mac_data") +version_x86_64_linux=$(jq -r .zoom.version <<<"$linux_data") + +echo >&2 "=== Downloading packages and computing hashes..." +# We precalculate the hashes before calling update-source-version +# because it attempts to calculate each architecture's package's hash +# by running `nix-build --system <architecture> -A zoom-us.src` which +# causes cross compiling headaches; using nix-prefetch-url with +# hard-coded URLs is simpler. Keep these URLs in sync with the ones +# in default.nix where `srcs` is defined. +hash_aarch64_darwin=$(nix hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_aarch64_darwin}/zoomusInstallerFull.pkg?archType=arm64")) +hash_x86_64_darwin=$(nix hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_x86_64_darwin}/zoomusInstallerFull.pkg")) +hash_x86_64_linux=$(nix hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_x86_64_linux}/zoom_x86_64.pkg.tar.xz")) + +echo >&2 "=== Updating default.nix ..." +# update-source-version expects to be at the root of nixpkgs +(cd "$nixpkgs" && update-source-version zoom-us "$version_aarch64_darwin" $hash_aarch64_darwin --system=aarch64-darwin --version-key=versions.aarch64-darwin) +(cd "$nixpkgs" && update-source-version zoom-us "$version_x86_64_darwin" $hash_x86_64_darwin --system=x86_64-darwin --version-key=versions.x86_64-darwin) +(cd "$nixpkgs" && update-source-version zoom-us "$version_x86_64_linux" $hash_x86_64_linux --system=x86_64-linux --version-key=versions.x86_64-linux) + +echo >&2 "=== Done!" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix new file mode 100644 index 000000000000..092cb3299990 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix @@ -0,0 +1,81 @@ +{ lib +, python3 +, fetchFromGitHub +, glibcLocales +, libnotify +}: + +let + py = python3.override { + packageOverrides = self: super: { + + # Requires "urwid~=2.1.2", otherwise some tests are failing + urwid = super.urwid.overridePythonAttrs (oldAttrs: rec { + version = "2.1.2"; + src = fetchFromGitHub { + owner = "urwid"; + repo = "urwid"; + rev = "refs/tags/${version}"; + hash = "sha256-oPb2h/+gaqkZTXIiESjExMfBNnOzDvoMkXvkZ/+KVwo="; + }; + doCheck = false; + }); + }; + }; +in +with py.pkgs; + +buildPythonApplication rec { + pname = "zulip-term"; + version = "0.7.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "zulip"; + repo = "zulip-terminal"; + rev = "refs/tags/${version}"; + hash = "sha256-ZouUU4p1FSGMxPuzDo5P971R+rDXpBdJn2MqvkJO+Fw="; + }; + + patches = [ + ./pytest-executable-name.patch + ]; + + nativeBuildInputs = with py.pkgs; [ + setuptools + ]; + + propagatedBuildInputs = with py.pkgs; [ + beautifulsoup4 + lxml + pygments + pyperclip + python-dateutil + pytz + typing-extensions + tzlocal + urwid + urwid-readline + zulip + ]; + + nativeCheckInputs = [ + glibcLocales + ] ++ (with python3.pkgs; [ + pytestCheckHook + pytest-cov + pytest-mock + ]); + + makeWrapperArgs = [ + "--prefix" "PATH" ":" (lib.makeBinPath [ libnotify ]) + ]; + + meta = with lib; { + description = "Zulip's official terminal client"; + homepage = "https://github.com/zulip/zulip-terminal"; + changelog = "https://github.com/zulip/zulip-terminal/releases/tag/${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ dotlambda ]; + }; +} 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 new file mode 100644 index 000000000000..a816993b8c4b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch @@ -0,0 +1,22 @@ +diff --git a/tests/cli/test_run.py b/tests/cli/test_run.py +index 1452cfd..0a21c09 100644 +--- a/tests/cli/test_run.py ++++ b/tests/cli/test_run.py +@@ -240,7 +240,7 @@ def test_main_multiple_autohide_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 + +@@ -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 new file mode 100644 index 000000000000..3b12634b0caa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix @@ -0,0 +1,42 @@ +{ lib +, fetchurl +, appimageTools +}: + +let + pname = "zulip"; + version = "5.10.5"; + + src = fetchurl { + url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage"; + hash = "sha256-dWTczjE6QAW26bGTIeFTuXl1JwYr3Ma+8Ab6MjeDr78="; + name="${pname}-${version}.AppImage"; + }; + + appimageContents = appimageTools.extractType2 { + inherit pname version src; + }; + +in appimageTools.wrapType2 { + inherit pname version src; + + runScript = "appimage-exec.sh -w ${appimageContents} -- \${NIXOS_OZONE_WL:+\${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"; + + extraInstallCommands = '' + mv "$out/bin/${pname}-${version}" "$out/bin/${pname}" + install -m 444 -D ${appimageContents}/zulip.desktop $out/share/applications/zulip.desktop + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/zulip.png \ + $out/share/icons/hicolor/512x512/apps/zulip.png + substituteInPlace $out/share/applications/zulip.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "Desktop client for Zulip Chat"; + homepage = "https://zulip.com"; + license = licenses.asl20; + maintainers = with maintainers; [ andersk jonafato ]; + platforms = [ "x86_64-linux" ]; + mainProgram = "zulip"; + }; +} |