kotatogram-desktop{,-with-webkit}: 1.4.9 -> 0-unstable-2024-07-01
Upstream doesn't have enough manpower to do even beta quality releases. Builds from random commits might be more usable for people relying on new Telegram features, at the price of not having various Kotatogram-specific features and having various bugs.
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;
|
||||
|
||||
@@ -31967,23 +31967,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