diff options
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/telegram')
10 files changed, 206 insertions, 285 deletions
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix index f0732ec039208..aaabf518b959d 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix @@ -6,17 +6,18 @@ , cmake , ninja , clang +, lld , python3 , wrapQtAppsHook , removeReferencesTo -, extra-cmake-modules , qtbase , qtimageformats , qtsvg -, kwayland +, qtwayland +, kcoreaddons , lz4 , xxHash -, ffmpeg_4 +, ffmpeg , openalSoft , minizip , libopus @@ -25,94 +26,59 @@ , range-v3 , tl-expected , hunspell -, glibmm +, gobject-introspection +, glibmm_2_68 , jemalloc , rnnoise , abseil-cpp , microsoft-gsl +, boost +, fmt , 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 +, darwin }: 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; }; + + mainProgram = if stdenv.isLinux then "kotatogram-desktop" else "Kotatogram"; in stdenv.mkDerivation rec { pname = "kotatogram-desktop"; - version = "1.4.9"; + version = "0-unstable-2024-07-01"; src = fetchFromGitHub { owner = "kotatogram"; repo = "kotatogram-desktop"; - rev = "k${version}"; - sha256 = "sha256-6bF/6fr8mJyyVg53qUykysL7chuewtJB8E22kVyxjHw="; + rev = "fbb22ebd3e39dfa4a036fa79a7a3f78b86b1cea2"; + sha256 = "sha256-ccfmaqapk9ct+5kvBI02xHJ7YCGmm1CcqwM+3hC1bk0="; fetchSubmodules = true; }; patches = [ - ./kf594.patch - ./shortcuts-binary-path.patch + ./macos.patch + ./macos-opengl.patch ]; postPatch = lib.optionalString stdenv.isLinux '' substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioInputALSA.cpp \ - --replace '"libasound.so.2"' '"${alsa-lib}/lib/libasound.so.2"' + --replace-fail '"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"' + --replace-fail '"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"' + --replace-fail '"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" + substituteInPlace Telegram/lib_webrtc/webrtc/platform/mac/webrtc_environment_mac.mm \ + --replace-fail kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster ''; + # Wrapping the inside of the app bundles, avoiding double-wrapping + dontWrapQtApps = stdenv.isDarwin; + nativeBuildInputs = [ pkg-config cmake @@ -123,7 +89,9 @@ stdenv.mkDerivation rec { ] ++ lib.optionals stdenv.isLinux [ # to build bundled libdispatch clang - extra-cmake-modules + gobject-introspection + ] ++ lib.optionals stdenv.isDarwin [ + lld ]; buildInputs = [ @@ -132,7 +100,7 @@ stdenv.mkDerivation rec { qtsvg lz4 xxHash - ffmpeg_4 + ffmpeg openalSoft minizip libopus @@ -141,15 +109,18 @@ stdenv.mkDerivation rec { rnnoise tg_owt microsoft-gsl + boost ] ++ lib.optionals stdenv.isLinux [ - kwayland + qtwayland + kcoreaddons alsa-lib libpulseaudio hunspell - glibmm + glibmm_2_68 jemalloc + fmt wayland - ] ++ lib.optionals stdenv.isDarwin [ + ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ Cocoa CoreFoundation CoreServices @@ -180,27 +151,34 @@ stdenv.mkDerivation rec { MediaPlayer IOSurface Metal + NaturalLanguage libicns - ]; + ]); enableParallelBuilding = true; + env = lib.optionalAttrs stdenv.isDarwin { + NIX_CFLAGS_LINK = "-fuse-ld=lld"; + }; + 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 + cp -r ${mainProgram}.app $out/Applications + ln -s $out/{Applications/${mainProgram}.app/Contents/MacOS,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 + remove-references-to -t ${stdenv.cc.cc} $out/bin/${mainProgram} + remove-references-to -t ${microsoft-gsl} $out/bin/${mainProgram} + remove-references-to -t ${tg_owt.dev} $out/bin/${mainProgram} + ''; + + postFixup = lib.optionalString stdenv.isDarwin '' + wrapQtApp $out/Applications/${mainProgram}.app/Contents/MacOS/${mainProgram} ''; passthru = { @@ -208,8 +186,8 @@ stdenv.mkDerivation rec { }; meta = with lib; { + inherit mainProgram; description = "Kotatogram – experimental Telegram Desktop fork"; - mainProgram = "kotatogram-desktop"; longDescription = '' Unofficial desktop client for the Telegram messenger, based on Telegram Desktop. @@ -220,7 +198,5 @@ stdenv.mkDerivation rec { 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/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch deleted file mode 100644 index 0fa2d8bc8f6ee..0000000000000 --- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patch +++ /dev/null @@ -1,57 +0,0 @@ -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/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/macos-opengl.patch b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/macos-opengl.patch new file mode 100644 index 0000000000000..e81bd53b440ce --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/macos-opengl.patch @@ -0,0 +1,66 @@ +diff --git a/Telegram/SourceFiles/media/view/media_view_pip.cpp b/Telegram/SourceFiles/media/view/media_view_pip.cpp +index 655e7cf410..c356acbffe 100644 +--- a/Telegram/SourceFiles/media/view/media_view_pip.cpp ++++ b/Telegram/SourceFiles/media/view/media_view_pip.cpp +@@ -1333,7 +1333,7 @@ void Pip::setupStreaming() { + Ui::GL::ChosenRenderer Pip::chooseRenderer( + Ui::GL::Capabilities capabilities) { + const auto use = Platform::IsMac() +- ? true ++ ? false + : capabilities.transparency; + LOG(("OpenGL: %1 (PipPanel)").arg(Logs::b(use))); + if (use) { +Submodule Telegram/lib_ui contains modified content +diff --git a/Telegram/lib_ui/ui/gl/gl_detection.cpp b/Telegram/lib_ui/ui/gl/gl_detection.cpp +index 150eb8b..c7ce9f9 100644 +--- a/Telegram/lib_ui/ui/gl/gl_detection.cpp ++++ b/Telegram/lib_ui/ui/gl/gl_detection.cpp +@@ -236,7 +236,7 @@ Capabilities CheckCapabilities(QWidget *widget, bool avoidWidgetCreation) { + + Backend ChooseBackendDefault(Capabilities capabilities) { + const auto use = ::Platform::IsMac() +- ? true ++ ? false + : ::Platform::IsWindows() + ? capabilities.supported + : capabilities.transparency; +diff --git a/Telegram/lib_ui/ui/platform/mac/ui_window_mac.mm b/Telegram/lib_ui/ui/platform/mac/ui_window_mac.mm +index 7b29363..22c4fb3 100644 +--- a/Telegram/lib_ui/ui/platform/mac/ui_window_mac.mm ++++ b/Telegram/lib_ui/ui/platform/mac/ui_window_mac.mm +@@ -16,7 +16,6 @@ + #include <QtCore/QAbstractNativeEventFilter> + #include <QtGui/QWindow> + #include <QtGui/QtEvents> +-#include <QOpenGLWidget> + #include <Cocoa/Cocoa.h> + + @interface WindowObserver : NSObject { +@@ -138,7 +137,6 @@ public: + + private: + void init(); +- void initOpenGL(); + void resolveWeakPointers(); + void revalidateWeakPointers() const; + void initCustomTitle(); +@@ -272,10 +270,6 @@ void WindowHelper::Private::enforceStyle() { + } + } + +-void WindowHelper::Private::initOpenGL() { +- auto forceOpenGL = std::make_unique<QOpenGLWidget>(_owner->window()); +-} +- + void WindowHelper::Private::resolveWeakPointers() { + if (!_owner->window()->winId()) { + _owner->window()->createWinId(); +@@ -338,7 +332,6 @@ void WindowHelper::Private::initCustomTitle() { + } + + void WindowHelper::Private::init() { +- initOpenGL(); + resolveWeakPointers(); + initCustomTitle(); + } diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/macos.patch b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/macos.patch new file mode 100644 index 0000000000000..8082f09646052 --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/macos.patch @@ -0,0 +1,52 @@ +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 657c5a4..4bfc097 100644 +--- a/Telegram/lib_webview/webview/platform/mac/webview_mac.mm ++++ b/Telegram/lib_webview/webview/platform/mac/webview_mac.mm +@@ -317,9 +317,11 @@ Instance::Instance(Config config) { + _dataRequestHandler = std::move(config.dataRequestHandler); + [configuration setURLSchemeHandler:_handler forURLScheme:stdToNS(kDataUrlScheme)]; + _webview = [[WKWebView alloc] initWithFrame:NSZeroRect configuration:configuration]; ++#if 0 + if (@available(macOS 13.3, *)) { + _webview.inspectable = config.debug ? YES : NO; + } ++#endif + [_manager addScriptMessageHandler:_handler name:@"external"]; + [_webview setNavigationDelegate:_handler]; + [_webview setUIDelegate:_handler]; diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/shortcuts-binary-path.patch b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/shortcuts-binary-path.patch deleted file mode 100644 index f173a64f141a0..0000000000000 --- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/shortcuts-binary-path.patch +++ /dev/null @@ -1,38 +0,0 @@ -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/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix index 694021d0f7fe2..e2f3c4ba884ed 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix @@ -1,7 +1,6 @@ { lib , stdenv , fetchFromGitHub -, fetchpatch , pkg-config , cmake , ninja @@ -9,10 +8,10 @@ , libjpeg , openssl , libopus -, ffmpeg_4 +, ffmpeg , protobuf , openh264 -, usrsctp +, crc32c , libvpx , libX11 , libXtst @@ -28,65 +27,23 @@ , mesa , libdrm , libGL -, Cocoa -, AppKit -, IOKit -, IOSurface -, Foundation -, AVFoundation -, CoreMedia -, VideoToolbox -, CoreGraphics -, CoreVideo -, OpenGL -, Metal -, MetalKit -, CoreFoundation -, ApplicationServices +, darwin }: -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"; + version = "0-unstable-2024-06-15"; src = fetchFromGitHub { owner = "desktop-app"; repo = "tg_owt"; - rev = "63a934db1ed212ebf8aaaa20f0010dd7b0d7b396"; - sha256 = "sha256-WddSsQ9KW1zYyYckzdUOvfFZArYAbyvXmABQNMtK6cM="; + rev = "c9cc4390ab951f2cbc103ff783a11f398b27660b"; + sha256 = "sha256-FfWmSYaeryTDbsGJT3R7YK1oiyJcrR7YKKBOF+9PmpY="; 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 \ + postPatch = lib.optionalString stdenv.isLinux '' + substituteInPlace src/modules/desktop_capture/linux/wayland/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"' \ @@ -101,10 +58,10 @@ stdenv.mkDerivation { libjpeg openssl libopus - ffmpeg_4 + ffmpeg protobuf openh264 - usrsctp + crc32c libvpx abseil-cpp ] ++ lib.optionals stdenv.isLinux [ @@ -121,7 +78,7 @@ stdenv.mkDerivation { mesa libdrm libGL - ] ++ lib.optionals stdenv.isDarwin [ + ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Cocoa AppKit IOKit @@ -137,7 +94,7 @@ stdenv.mkDerivation { MetalKit CoreFoundation ApplicationServices - ]; + ]); enableParallelBuilding = true; diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch deleted file mode 100644 index be7d696fc84d3..0000000000000 --- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.patch +++ /dev/null @@ -1,43 +0,0 @@ ---- 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/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix index 73c71d294c848..f41713389679b 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, kotatogram-desktop, glib-networking, webkitgtk, makeWrapper }: +{ stdenv, lib, kotatogram-desktop, glib-networking, webkitgtk_6_0, makeWrapper }: stdenv.mkDerivation { pname = "${kotatogram-desktop.pname}-with-webkit"; @@ -13,7 +13,7 @@ stdenv.mkDerivation { 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 ]} + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ webkitgtk_6_0 ]} ''; meta = kotatogram-desktop.meta // { platforms = lib.platforms.linux; diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix index 27617f930fae5..26a9813441b75 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix @@ -1,6 +1,5 @@ { lib , fetchFromGitHub -, fetchpatch , callPackage , pkg-config , cmake @@ -60,18 +59,17 @@ let cxxStandard = "20"; }; }; - mainProgram = if stdenv.isLinux then "telegram-desktop" else "Telegram"; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "telegram-desktop"; - version = "5.1.8"; + version = "5.2.2"; src = fetchFromGitHub { owner = "telegramdesktop"; repo = "tdesktop"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-YTCvniC8THoz0BUM/gkr97rhbbSVQ+SCE1H3qS68lIM="; + hash = "sha256-rvd4Ei4MpWiilHCV291UrJkHaUcwth9AWc3PSqjj+EI="; }; patches = [ @@ -79,10 +77,7 @@ stdenv.mkDerivation rec { # 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="; - }) + ./scheme.patch ]; postPatch = lib.optionalString stdenv.isLinux '' @@ -179,6 +174,7 @@ stdenv.mkDerivation rec { IOSurface Metal NaturalLanguage + LocalAuthentication libicns ]); @@ -203,19 +199,19 @@ stdenv.mkDerivation rec { installPhase = lib.optionalString stdenv.isDarwin '' mkdir -p $out/Applications - cp -r ${mainProgram}.app $out/Applications - ln -s $out/{Applications/${mainProgram}.app/Contents/MacOS,bin} + cp -r ${finalAttrs.meta.mainProgram}.app $out/Applications + ln -s $out/{Applications/${finalAttrs.meta.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} \ + wrapProgram $out/bin/${finalAttrs.meta.mainProgram} \ "''${gappsWrapperArgs[@]}" \ "''${qtWrapperArgs[@]}" \ --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} '' + lib.optionalString stdenv.isDarwin '' - wrapQtApp $out/Applications/${mainProgram}.app/Contents/MacOS/${mainProgram} + wrapQtApp $out/Applications/${finalAttrs.meta.mainProgram}.app/Contents/MacOS/${finalAttrs.meta.mainProgram} ''; passthru = { @@ -234,6 +230,6 @@ stdenv.mkDerivation rec { homepage = "https://desktop.telegram.org/"; changelog = "https://github.com/telegramdesktop/tdesktop/releases/tag/v${version}"; maintainers = with maintainers; [ nickcao ]; - inherit mainProgram; + mainProgram = if stdenv.hostPlatform.isLinux then "telegram-desktop" else "Telegram"; }; -} +}) diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/scheme.patch b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/scheme.patch new file mode 100644 index 0000000000000..58aaa8a7fcb54 --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/scheme.patch @@ -0,0 +1,12 @@ +diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp +index e3e0de6c6..d5851bd6e 100644 +--- a/Telegram/SourceFiles/core/application.cpp ++++ b/Telegram/SourceFiles/core/application.cpp +@@ -421,7 +421,6 @@ void Application::run() { + + void Application::autoRegisterUrlScheme() { + if (!OptionSkipUrlSchemeRegister.value()) { +- InvokeQueued(this, [] { RegisterUrlScheme(); }); + } + } + |