Merge pull request #268575 from ilya-fedin/kotato-nightly
kotatogram-desktop{,-with-webkit}: 1.4.9 -> 0-unstable-2024-07-01
This commit is contained in:
+50
-72
@@ -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.
|
||||
|
||||
|
||||
-57
@@ -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);
|
||||
|
||||
+66
@@ -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();
|
||||
}
|
||||
+52
@@ -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];
|
||||
-38
@@ -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(
|
||||
+12
-55
@@ -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;
|
||||
|
||||
|
||||
-43
@@ -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"
|
||||
+2
-2
@@ -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;
|
||||
|
||||
@@ -31963,23 +31963,10 @@ with pkgs;
|
||||
|
||||
kondo = callPackage ../applications/misc/kondo { };
|
||||
|
||||
kotatogram-desktop = libsForQt5.callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop {
|
||||
inherit (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 MetalKit;
|
||||
|
||||
kotatogram-desktop = kdePackages.callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop {
|
||||
stdenv = if stdenv.isDarwin
|
||||
then overrideSDK llvmPackages_14.stdenv "11.0"
|
||||
then overrideSDK stdenv "11.0"
|
||||
else stdenv;
|
||||
|
||||
# telegram-desktop has random crashes when jemalloc is built with gcc.
|
||||
# Apparently, it triggers some bug due to usage of gcc's builtin
|
||||
# functions like __builtin_ffsl by jemalloc when it's built with gcc.
|
||||
jemalloc = (jemalloc.override { stdenv = clangStdenv; }).overrideAttrs {
|
||||
# no idea how to fix the tests :(
|
||||
doCheck = false;
|
||||
};
|
||||
};
|
||||
|
||||
kotatogram-desktop-with-webkit = callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix { };
|
||||
|
||||
Reference in New Issue
Block a user