Compare commits
No commits in common. "factory" and "factory" have entirely different histories.
@ -1,24 +0,0 @@
|
||||
diff --git a/tdesktop/cmake/external/webrtc/CMakeLists.txt b/tdesktop-copy/cmake/external/webrtc/CMakeLists.txt
|
||||
index a372fb7..6a81876 100644
|
||||
--- a/cmake/external/webrtc/CMakeLists.txt
|
||||
+++ b/cmake/external/webrtc/CMakeLists.txt
|
||||
@@ -9,7 +9,18 @@ add_library(desktop-app::external_webrtc ALIAS external_webrtc)
|
||||
|
||||
if (DESKTOP_APP_USE_PACKAGED)
|
||||
find_package(tg_owt REQUIRED)
|
||||
- target_link_libraries(external_webrtc INTERFACE tg_owt::tg_owt)
|
||||
+ target_link_libraries(external_webrtc INTERFACE
|
||||
+ tg_owt::tg_owt
|
||||
+ X11
|
||||
+ Xcomposite
|
||||
+ Xdamage
|
||||
+ Xext
|
||||
+ Xfixes
|
||||
+ Xrandr
|
||||
+ Xrender
|
||||
+ Xtst
|
||||
+ vpx
|
||||
+ )
|
||||
return()
|
||||
endif()
|
||||
|
13
0001-use-bundled-webrtc.patch
Normal file
13
0001-use-bundled-webrtc.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: tdesktop-4.4.0-full/cmake/external/webrtc/CMakeLists.txt
|
||||
===================================================================
|
||||
--- tdesktop-4.4.0-full.orig/cmake/external/webrtc/CMakeLists.txt
|
||||
+++ tdesktop-4.4.0-full/cmake/external/webrtc/CMakeLists.txt
|
||||
@@ -7,7 +7,7 @@
|
||||
add_library(external_webrtc INTERFACE IMPORTED GLOBAL)
|
||||
add_library(desktop-app::external_webrtc ALIAS external_webrtc)
|
||||
|
||||
-if (DESKTOP_APP_USE_PACKAGED)
|
||||
+if (NOT DESKTOP_APP_USE_PACKAGED)
|
||||
find_package(tg_owt REQUIRED)
|
||||
target_link_libraries(external_webrtc INTERFACE tg_owt::tg_owt)
|
||||
return()
|
@ -1,281 +0,0 @@
|
||||
From c985d2e06f17057255fc5f0cf2e65701f179a9ab Mon Sep 17 00:00:00 2001
|
||||
From: Xu Zhao <i@xuzhao.net>
|
||||
Date: Thu, 22 Aug 2024 01:06:23 -0400
|
||||
Subject: [PATCH] Add an option to load H264 decoder with dlopen()
|
||||
|
||||
---
|
||||
CMakeLists.txt | 3 +-
|
||||
cmake/external.cmake | 6 +-
|
||||
.../video_coding/codecs/h264/h264_dlopen.cc | 128 ++++++++++++++++++
|
||||
.../video_coding/codecs/h264/h264_dlopen.h | 46 +++++++
|
||||
.../codecs/h264/h264_encoder_impl.cc | 6 +
|
||||
.../codecs/h264/h264_encoder_impl.h | 5 +
|
||||
6 files changed, 192 insertions(+), 2 deletions(-)
|
||||
create mode 100644 src/modules/video_coding/codecs/h264/h264_dlopen.cc
|
||||
create mode 100644 src/modules/video_coding/codecs/h264/h264_dlopen.h
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index fcd8ef132..a0cc7b454 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -25,6 +25,7 @@ cmake_dependent_option(TG_OWT_USE_X11 "Use X11 for desktop capture." ON "UNIX; N
|
||||
cmake_dependent_option(TG_OWT_USE_PIPEWIRE "Use pipewire for desktop capture." ON "UNIX; NOT APPLE" OFF)
|
||||
cmake_dependent_option(TG_OWT_DLOPEN_PIPEWIRE "dlopen pipewire for desktop capture." ${not_packaged_build} TG_OWT_USE_PIPEWIRE OFF)
|
||||
option(TG_OWT_BUILD_AUDIO_BACKENDS "Build webrtc audio backends." OFF)
|
||||
+option(TG_OWT_DLOPEN_H264 "dlopen H264 for video coding." OFF)
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
@@ -168,7 +169,7 @@ link_openssl(tg_owt)
|
||||
link_ffmpeg(tg_owt)
|
||||
link_opus(tg_owt)
|
||||
link_libabsl(tg_owt)
|
||||
-link_libopenh264(tg_owt)
|
||||
+link_libopenh264(tg_owt ${TG_OWT_DLOPEN_H264})
|
||||
link_libvpx(tg_owt)
|
||||
link_crc32c(tg_owt)
|
||||
link_dl(tg_owt)
|
||||
diff --git a/cmake/external.cmake b/cmake/external.cmake
|
||||
index 1c71f8518..b1fabbc67 100644
|
||||
--- a/cmake/external.cmake
|
||||
+++ b/cmake/external.cmake
|
||||
@@ -129,7 +129,7 @@ endfunction()
|
||||
|
||||
# libopenh264
|
||||
set(TG_OWT_OPENH264_INCLUDE_PATH "" CACHE STRING "Include path for openh264.")
|
||||
-function(link_libopenh264 target_name)
|
||||
+function(link_libopenh264 target_name with_dlopen)
|
||||
if (TG_OWT_PACKAGED_BUILD)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(LIBOPENH264 openh264)
|
||||
@@ -148,6 +148,10 @@ function(link_libopenh264 target_name)
|
||||
${TG_OWT_OPENH264_INCLUDE_PATH}
|
||||
)
|
||||
endif()
|
||||
+ if (with_dlopen)
|
||||
+ target_compile_definitions(${target_name} PRIVATE -DWEBRTC_USE_H264_DLOPEN)
|
||||
+ target_sources(${target_name} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/src/modules/video_coding/codecs/h264/h264_dlopen.cc)
|
||||
+ endif()
|
||||
endfunction()
|
||||
|
||||
# libvpx
|
||||
diff --git a/src/modules/video_coding/codecs/h264/h264_dlopen.cc b/src/modules/video_coding/codecs/h264/h264_dlopen.cc
|
||||
new file mode 100644
|
||||
index 000000000..3762e1dfc
|
||||
--- /dev/null
|
||||
+++ b/src/modules/video_coding/codecs/h264/h264_dlopen.cc
|
||||
@@ -0,0 +1,128 @@
|
||||
+/*
|
||||
+ * OpenH264 dlopen code
|
||||
+ *
|
||||
+ * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
|
||||
+ *
|
||||
+ * Use of this source code is governed by a BSD-style license
|
||||
+ * that can be found in the LICENSE file in the root of the source
|
||||
+ * tree. An additional intellectual property rights grant can be found
|
||||
+ * in the file PATENTS. All contributing project authors may
|
||||
+ * be found in the AUTHORS file in the root of the source tree.
|
||||
+ */
|
||||
+
|
||||
+#include <dlfcn.h>
|
||||
+#include <cstddef>
|
||||
+
|
||||
+#include "h264_dlopen.h"
|
||||
+
|
||||
+/*
|
||||
+ * The symbol binding makes sure we do not run into strict aliasing issues which
|
||||
+ * can lead into segfaults.
|
||||
+ */
|
||||
+typedef int (*__oh264_WelsCreateSVCEncoder)(ISVCEncoder **);
|
||||
+typedef void (*__oh264_WelsDestroySVCEncoder)(ISVCEncoder *);
|
||||
+typedef int (*__oh264_WelsGetDecoderCapability)(SDecoderCapability *);
|
||||
+typedef long (*__oh264_WelsCreateDecoder)(ISVCDecoder **);
|
||||
+typedef void (*__oh264_WelsDestroyDecoder)(ISVCDecoder *);
|
||||
+typedef OpenH264Version (*__oh264_WelsGetCodecVersion)(void);
|
||||
+typedef void (*__oh264_WelsGetCodecVersionEx)(OpenH264Version *);
|
||||
+
|
||||
+#define OH264_SYMBOL_ENTRY(i) \
|
||||
+ union { \
|
||||
+ __oh264_##i f; \
|
||||
+ void *obj; \
|
||||
+ } _oh264_##i
|
||||
+
|
||||
+struct oh264_symbols {
|
||||
+ OH264_SYMBOL_ENTRY(WelsCreateSVCEncoder);
|
||||
+ OH264_SYMBOL_ENTRY(WelsDestroySVCEncoder);
|
||||
+ OH264_SYMBOL_ENTRY(WelsGetDecoderCapability);
|
||||
+ OH264_SYMBOL_ENTRY(WelsCreateDecoder);
|
||||
+ OH264_SYMBOL_ENTRY(WelsDestroyDecoder);
|
||||
+ OH264_SYMBOL_ENTRY(WelsGetCodecVersion);
|
||||
+ OH264_SYMBOL_ENTRY(WelsGetCodecVersionEx);
|
||||
+};
|
||||
+
|
||||
+/* Symbols are bound by loadLibOpenH264() */
|
||||
+static struct oh264_symbols openh264_symbols;
|
||||
+
|
||||
+int oh264_WelsCreateSVCEncoder(ISVCEncoder **ppEncoder) {
|
||||
+ return openh264_symbols._oh264_WelsCreateSVCEncoder.f(ppEncoder);
|
||||
+}
|
||||
+
|
||||
+void oh264_WelsDestroySVCEncoder(ISVCEncoder *pEncoder) {
|
||||
+ return openh264_symbols._oh264_WelsDestroySVCEncoder.f(pEncoder);
|
||||
+}
|
||||
+
|
||||
+int oh264_WelsGetDecoderCapability(SDecoderCapability *pDecCapability) {
|
||||
+ return openh264_symbols._oh264_WelsGetDecoderCapability.f(pDecCapability);
|
||||
+}
|
||||
+
|
||||
+long oh264_WelsCreateDecoder(ISVCDecoder **ppDecoder) {
|
||||
+ return openh264_symbols._oh264_WelsCreateDecoder.f(ppDecoder);
|
||||
+}
|
||||
+
|
||||
+void oh264_WelsDestroyDecoder(ISVCDecoder *pDecoder) {
|
||||
+ return openh264_symbols._oh264_WelsDestroyDecoder.f(pDecoder);
|
||||
+}
|
||||
+
|
||||
+OpenH264Version oh264_WelsGetCodecVersion(void) {
|
||||
+ return openh264_symbols._oh264_WelsGetCodecVersion.f();
|
||||
+}
|
||||
+
|
||||
+void oh264_WelsGetCodecVersionEx(OpenH264Version *pVersion) {
|
||||
+ openh264_symbols._oh264_WelsGetCodecVersionEx.f(pVersion);
|
||||
+}
|
||||
+
|
||||
+static void *_oh264_bind_symbol(void *handle,
|
||||
+ const char *sym_name) {
|
||||
+ void *sym = NULL;
|
||||
+
|
||||
+ sym = dlsym(handle, sym_name);
|
||||
+ if (sym == NULL) {
|
||||
+ const char *err = dlerror();
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ return sym;
|
||||
+}
|
||||
+
|
||||
+#define oh264_bind_symbol(handle, sym_name) \
|
||||
+ if (openh264_symbols._oh264_##sym_name.obj == NULL) { \
|
||||
+ openh264_symbols._oh264_##sym_name.obj = _oh264_bind_symbol(handle, #sym_name); \
|
||||
+ if (openh264_symbols._oh264_##sym_name.obj == NULL) { \
|
||||
+ return 1; \
|
||||
+ } \
|
||||
+ }
|
||||
+
|
||||
+int loadLibOpenH264(void) {
|
||||
+ static bool initialized = false;
|
||||
+ void *libopenh264 = NULL;
|
||||
+ const char *err = NULL;
|
||||
+
|
||||
+ if (initialized) {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+#define OPENH264_LIB "libopenh264.so.7"
|
||||
+ libopenh264 = dlopen(OPENH264_LIB, RTLD_LAZY);
|
||||
+ err = dlerror();
|
||||
+ if (err != NULL) {
|
||||
+ if (libopenh264 != NULL) {
|
||||
+ dlclose(libopenh264);
|
||||
+ }
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ oh264_bind_symbol(libopenh264, WelsCreateSVCEncoder);
|
||||
+ oh264_bind_symbol(libopenh264, WelsDestroySVCEncoder);
|
||||
+ oh264_bind_symbol(libopenh264, WelsGetDecoderCapability);
|
||||
+ oh264_bind_symbol(libopenh264, WelsCreateDecoder);
|
||||
+ oh264_bind_symbol(libopenh264, WelsDestroyDecoder);
|
||||
+ oh264_bind_symbol(libopenh264, WelsGetCodecVersion);
|
||||
+ oh264_bind_symbol(libopenh264, WelsGetCodecVersionEx);
|
||||
+
|
||||
+ initialized = true;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/src/modules/video_coding/codecs/h264/h264_dlopen.h b/src/modules/video_coding/codecs/h264/h264_dlopen.h
|
||||
new file mode 100644
|
||||
index 000000000..25fe94ea8
|
||||
--- /dev/null
|
||||
+++ b/src/modules/video_coding/codecs/h264/h264_dlopen.h
|
||||
@@ -0,0 +1,46 @@
|
||||
+/*
|
||||
+ * OpenH264 dlopen code
|
||||
+ *
|
||||
+ * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
|
||||
+ *
|
||||
+ * Use of this source code is governed by a BSD-style license
|
||||
+ * that can be found in the LICENSE file in the root of the source
|
||||
+ * tree. An additional intellectual property rights grant can be found
|
||||
+ * in the file PATENTS. All contributing project authors may
|
||||
+ * be found in the AUTHORS file in the root of the source tree.
|
||||
+ */
|
||||
+
|
||||
+#ifndef HAVE_LIBOPENH264_DLOPEN_H
|
||||
+#define HAVE_LIBOPENH264_DLOPEN_H
|
||||
+
|
||||
+#ifdef WEBRTC_USE_H264_DLOPEN
|
||||
+
|
||||
+#include <wels/codec_api.h>
|
||||
+#include <wels/codec_ver.h>
|
||||
+
|
||||
+int oh264_WelsCreateSVCEncoder(ISVCEncoder **ppEncoder);
|
||||
+#define WelsCreateSVCEncoder oh264_WelsCreateSVCEncoder
|
||||
+
|
||||
+void oh264_WelsDestroySVCEncoder(ISVCEncoder *pEncoder);
|
||||
+#define WelsDestroySVCEncoder oh264_WelsDestroySVCEncoder
|
||||
+
|
||||
+int oh264_WelsGetDecoderCapability(SDecoderCapability *pDecCapability);
|
||||
+#define WelsGetDecoderCapability oh264_WelsGetDecoderCapability
|
||||
+
|
||||
+long oh264_WelsCreateDecoder(ISVCDecoder **ppDecoder);
|
||||
+#define WelsCreateDecoder oh264_WelsCreateDecoder
|
||||
+
|
||||
+void oh264_WelsDestroyDecoder(ISVCDecoder *pDecoder);
|
||||
+#define WelsDestroyDecoder oh264_WelsDestroyDecoder
|
||||
+
|
||||
+OpenH264Version oh264_WelsGetCodecVersion(void);
|
||||
+#define WelsGetCodecVersion oh264_WelsGetCodecVersion
|
||||
+
|
||||
+void oh264_WelsGetCodecVersionEx(OpenH264Version *pVersion);
|
||||
+#define WelsGetCodecVersionEx oh264_WelsGetCodecVersionEx
|
||||
+
|
||||
+int loadLibOpenH264(void);
|
||||
+
|
||||
+#endif /* WEBRTC_USE_H264_DLOPEN */
|
||||
+
|
||||
+#endif /* HAVE_LIBOPENH264_DLOPEN_H */
|
||||
diff --git a/src/modules/video_coding/codecs/h264/h264_encoder_impl.cc b/src/modules/video_coding/codecs/h264/h264_encoder_impl.cc
|
||||
index c232133b7..fd06a98cd 100644
|
||||
--- a/src/modules/video_coding/codecs/h264/h264_encoder_impl.cc
|
||||
+++ b/src/modules/video_coding/codecs/h264/h264_encoder_impl.cc
|
||||
@@ -218,6 +218,12 @@ int32_t H264EncoderImpl::InitEncode(const VideoCodec* inst,
|
||||
return release_ret;
|
||||
}
|
||||
|
||||
+ #ifdef WEBRTC_USE_H264_DLOPEN
|
||||
+ if (loadLibOpenH264()) {
|
||||
+ return WEBRTC_VIDEO_CODEC_ERROR;
|
||||
+ }
|
||||
+ #endif
|
||||
+
|
||||
int number_of_streams = SimulcastUtility::NumberOfSimulcastStreams(*inst);
|
||||
bool doing_simulcast = (number_of_streams > 1);
|
||||
|
||||
diff --git a/src/modules/video_coding/codecs/h264/h264_encoder_impl.h b/src/modules/video_coding/codecs/h264/h264_encoder_impl.h
|
||||
index 9e246b85e..2deb5a2a3 100644
|
||||
--- a/src/modules/video_coding/codecs/h264/h264_encoder_impl.h
|
||||
+++ b/src/modules/video_coding/codecs/h264/h264_encoder_impl.h
|
||||
@@ -30,7 +30,12 @@
|
||||
#include "modules/video_coding/codecs/h264/include/h264.h"
|
||||
#include "modules/video_coding/svc/scalable_video_controller.h"
|
||||
#include "modules/video_coding/utility/quality_scaler.h"
|
||||
+
|
||||
+#ifdef WEBRTC_USE_H264_DLOPEN
|
||||
+#include "h264_dlopen.h"
|
||||
+#else
|
||||
#include <wels/codec_app_def.h>
|
||||
+#endif
|
||||
|
||||
class ISVCEncoder;
|
||||
|
71
0002-use-bundled-rnnoise-expected-gsl-ranges-webrtc.patch
Normal file
71
0002-use-bundled-rnnoise-expected-gsl-ranges-webrtc.patch
Normal file
@ -0,0 +1,71 @@
|
||||
diff -rup a/cmake/external/expected/CMakeLists.txt b/cmake/external/expected/CMakeLists.txt
|
||||
--- a/cmake/external/expected/CMakeLists.txt 2023-09-04 14:19:11.000000000 +0200
|
||||
+++ b/cmake/external/expected/CMakeLists.txt 2023-09-14 09:56:02.804347761 +0200
|
||||
@@ -7,7 +7,7 @@
|
||||
add_library(external_expected INTERFACE IMPORTED GLOBAL)
|
||||
add_library(desktop-app::external_expected ALIAS external_expected)
|
||||
|
||||
-if (DESKTOP_APP_USE_PACKAGED)
|
||||
+if (NOT DESKTOP_APP_USE_PACKAGED)
|
||||
if (DESKTOP_APP_USE_PACKAGED_LAZY)
|
||||
find_package(tl-expected QUIET)
|
||||
else()
|
||||
Only in b/cmake/external/gsl: CMakeLists.txt.rej
|
||||
diff -rup a/cmake/external/ranges/CMakeLists.txt b/cmake/external/ranges/CMakeLists.txt
|
||||
--- a/cmake/external/ranges/CMakeLists.txt 2023-09-04 14:19:11.000000000 +0200
|
||||
+++ b/cmake/external/ranges/CMakeLists.txt 2023-09-14 09:56:02.804347761 +0200
|
||||
@@ -7,7 +7,7 @@
|
||||
add_library(external_ranges INTERFACE IMPORTED GLOBAL)
|
||||
add_library(desktop-app::external_ranges ALIAS external_ranges)
|
||||
|
||||
-if (DESKTOP_APP_USE_PACKAGED)
|
||||
+if (NOT DESKTOP_APP_USE_PACKAGED)
|
||||
if (DESKTOP_APP_USE_PACKAGED_LAZY)
|
||||
find_package(range-v3 QUIET)
|
||||
else()
|
||||
diff -rup a/cmake/external/rnnoise/CMakeLists.txt b/cmake/external/rnnoise/CMakeLists.txt
|
||||
--- a/cmake/external/rnnoise/CMakeLists.txt 2023-09-04 14:19:11.000000000 +0200
|
||||
+++ b/cmake/external/rnnoise/CMakeLists.txt 2023-09-14 09:56:02.804347761 +0200
|
||||
@@ -4,7 +4,7 @@
|
||||
# For license and copyright information please follow this link:
|
||||
# https://github.com/desktop-app/legal/blob/master/LEGAL
|
||||
|
||||
-if (DESKTOP_APP_USE_PACKAGED)
|
||||
+if (NOT DESKTOP_APP_USE_PACKAGED)
|
||||
add_library(external_rnnoise INTERFACE IMPORTED GLOBAL)
|
||||
add_library(desktop-app::external_rnnoise ALIAS external_rnnoise)
|
||||
|
||||
@@ -18,7 +18,7 @@ endif()
|
||||
add_library(external_rnnoise STATIC IMPORTED GLOBAL)
|
||||
add_library(desktop-app::external_rnnoise ALIAS external_rnnoise)
|
||||
|
||||
-set(rnnoise_lib_loc ${libs_loc}/rnnoise/out)
|
||||
+set(rnnoise_lib_loc ${libs_loc}/rnnoise/.libs)
|
||||
if (WIN32)
|
||||
target_include_directories(external_rnnoise SYSTEM
|
||||
INTERFACE
|
||||
@@ -40,7 +40,11 @@ elseif (APPLE)
|
||||
IMPORTED_LOCATION_DEBUG "${rnnoise_lib_loc}/Debug/librnnoise.a"
|
||||
)
|
||||
else()
|
||||
+ target_include_directories(external_rnnoise SYSTEM
|
||||
+ INTERFACE
|
||||
+ ${libs_loc}/rnnoise/include
|
||||
+ )
|
||||
- find_library(DESKTOP_APP_RNNOISE_LIBRARIES librnnoise.a REQUIRED)
|
||||
+ find_library(DESKTOP_APP_RNNOISE_LIBRARIES librnnoise.a HINTS "${rnnoise_lib_loc}" REQUIRED)
|
||||
set_target_properties(external_rnnoise PROPERTIES
|
||||
IMPORTED_LOCATION "${DESKTOP_APP_RNNOISE_LIBRARIES}"
|
||||
)
|
||||
diff -rup a/cmake/external/webrtc/CMakeLists.txt b/cmake/external/webrtc/CMakeLists.txt
|
||||
--- a/cmake/external/webrtc/CMakeLists.txt 2023-09-04 14:19:11.000000000 +0200
|
||||
+++ b/cmake/external/webrtc/CMakeLists.txt 2023-09-14 09:56:02.804347761 +0200
|
||||
@@ -7,7 +7,7 @@
|
||||
add_library(external_webrtc INTERFACE IMPORTED GLOBAL)
|
||||
add_library(desktop-app::external_webrtc ALIAS external_webrtc)
|
||||
|
||||
-if (DESKTOP_APP_USE_PACKAGED)
|
||||
+if (NOT DESKTOP_APP_USE_PACKAGED)
|
||||
find_package(tg_owt REQUIRED)
|
||||
target_link_libraries(external_webrtc INTERFACE tg_owt::tg_owt)
|
||||
return()
|
16
0003-revert-webrtc-cmake-target-file.patch
Normal file
16
0003-revert-webrtc-cmake-target-file.patch
Normal file
@ -0,0 +1,16 @@
|
||||
Index: tdesktop-4.4.0-full/cmake/external/webrtc/CMakeLists.txt
|
||||
===================================================================
|
||||
--- tdesktop-4.4.0-full.orig/cmake/external/webrtc/CMakeLists.txt
|
||||
+++ tdesktop-4.4.0-full/cmake/external/webrtc/CMakeLists.txt
|
||||
@@ -94,11 +94,8 @@ INTERFACE
|
||||
${webrtc_libs_list}
|
||||
$<LINK_ONLY:desktop-app::external_openssl>
|
||||
$<LINK_ONLY:desktop-app::external_jpeg>
|
||||
- $<TARGET_FILE:desktop-app::external_jpeg>
|
||||
$<LINK_ONLY:desktop-app::external_opus>
|
||||
- $<TARGET_FILE:desktop-app::external_opus>
|
||||
$<LINK_ONLY:desktop-app::external_vpx>
|
||||
- $<TARGET_FILE:desktop-app::external_vpx>
|
||||
)
|
||||
|
||||
if (WIN32)
|
13
0004-use-dynamic-x-libraries.patch
Normal file
13
0004-use-dynamic-x-libraries.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: tdesktop-4.4.0-full/cmake/external/webrtc/CMakeLists.txt
|
||||
===================================================================
|
||||
--- tdesktop-4.4.0-full.orig/cmake/external/webrtc/CMakeLists.txt
|
||||
+++ tdesktop-4.4.0-full/cmake/external/webrtc/CMakeLists.txt
|
||||
@@ -110,7 +110,7 @@ elseif (APPLE)
|
||||
)
|
||||
else()
|
||||
# Required for desktop_capture
|
||||
- target_link_static_libraries(external_webrtc
|
||||
+ target_link_libraries(external_webrtc
|
||||
INTERFACE
|
||||
Xcomposite
|
||||
Xdamage
|
26
0005-use-bundled-ada.patch
Normal file
26
0005-use-bundled-ada.patch
Normal file
@ -0,0 +1,26 @@
|
||||
diff --git a/cmake/external/ada/CMakeLists.txt b/cmake/external/ada/CMakeLists.txt
|
||||
index 4b8063b..fbddaac 100644
|
||||
--- a/cmake/external/ada/CMakeLists.txt
|
||||
+++ b/cmake/external/ada/CMakeLists.txt
|
||||
@@ -4,7 +4,7 @@
|
||||
# For license and copyright information please follow this link:
|
||||
# https://github.com/desktop-app/legal/blob/master/LEGAL
|
||||
|
||||
-if (DESKTOP_APP_USE_PACKAGED)
|
||||
+if (NOT DESKTOP_APP_USE_PACKAGED)
|
||||
add_library(external_ada INTERFACE IMPORTED GLOBAL)
|
||||
add_library(desktop-app::external_ada ALIAS external_ada)
|
||||
|
||||
@@ -37,10 +37,9 @@ elseif (APPLE)
|
||||
else()
|
||||
target_include_directories(external_ada SYSTEM
|
||||
INTERFACE
|
||||
- /usr/local/include
|
||||
+ ${libs_loc}/ada/include
|
||||
)
|
||||
- find_library(DESKTOP_APP_ADA_LIBRARIES libada.a REQUIRED)
|
||||
set_target_properties(external_ada PROPERTIES
|
||||
- IMPORTED_LOCATION "${DESKTOP_APP_ADA_LIBRARIES}"
|
||||
+ IMPORTED_LOCATION ${libs_loc}/ada/build/src/libada.a
|
||||
)
|
||||
endif()
|
13
0006-tdesktop-disable-h264.patch
Normal file
13
0006-tdesktop-disable-h264.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/cmake/external/webrtc/CMakeLists.txt b/cmake/external/webrtc/CMakeLists.txt
|
||||
index 67159d6..0caf765 100644
|
||||
--- a/cmake/external/webrtc/CMakeLists.txt
|
||||
+++ b/cmake/external/webrtc/CMakeLists.txt
|
||||
@@ -134,7 +134,7 @@ else()
|
||||
Xrandr
|
||||
Xrender
|
||||
Xtst
|
||||
- openh264
|
||||
+ # openh264
|
||||
)
|
||||
target_link_libraries(external_webrtc
|
||||
INTERFACE
|
35
_service
35
_service
@ -1,35 +0,0 @@
|
||||
<services>
|
||||
|
||||
<service name="obs_scm" mode="manual">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/telegramdesktop/tdesktop</param>
|
||||
<param name="filename">tdesktop</param>
|
||||
<param name="revision">v5.10.3</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="versionrewrite-pattern">v(.*)</param>
|
||||
<param name="versionrewrite-replacement">\1</param>
|
||||
</service>
|
||||
|
||||
<service name="obs_scm" mode="manual">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/ada-url/ada</param>
|
||||
<param name="filename">ada</param>
|
||||
<param name="revision">v2.9.0</param>
|
||||
<param name="version">_none_</param>
|
||||
</service>
|
||||
|
||||
<service name="obs_scm" mode="manual">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/desktop-app/tg_owt</param>
|
||||
<param name="filename">tg_owt</param>
|
||||
<param name="revision">8198c4d8b91e22d68eb5c7327fd408e3b6abcc79</param>
|
||||
<param name="version">_none_</param>
|
||||
</service>
|
||||
|
||||
<service name="tar" mode="buildtime" />
|
||||
<service name="recompress" mode="buildtime">
|
||||
<param name="compression">zstd</param>
|
||||
<param name="file">*.tar</param>
|
||||
</service>
|
||||
|
||||
</services>
|
12
ada-packager.sh
Normal file
12
ada-packager.sh
Normal file
@ -0,0 +1,12 @@
|
||||
#! /bin/bash
|
||||
|
||||
|
||||
rm -rf ada \
|
||||
&& git clone -b v2.9.0 --depth=1 https://github.com/ada-url/ada.git \
|
||||
&& cd ada \
|
||||
&& rm -rf .git \
|
||||
&& cd .. \
|
||||
&& mv ada ada-v2.9.0 \
|
||||
&& zip ada-v2.9.0.zip -r ada-v2.9.0 -x '*.git*' \
|
||||
|
||||
rm -rf ada-v2.9.0
|
3
ada-v2.9.0.zip
Normal file
3
ada-v2.9.0.zip
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7b6fc58c3e00c4629b8c4d890aca2f1451885a8c28bbedec38f5d3960ad04cb7
|
||||
size 860638
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:60212223a382fae4724a3157a0c4d891e24497187cb3079330925775fb57f1c1
|
||||
size 2214412
|
@ -1,4 +0,0 @@
|
||||
name: ada
|
||||
version:
|
||||
mtime: 1720301936
|
||||
commit: 4358bcc6156e730eaff0681330ac74d187e881c1
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:536adeb19202099c8ca907b2f179a249d33c6fd25b2346822fe3d5a9ad73ed29
|
||||
size 193083918
|
3
tdesktop-5.4.1-full.tar.gz
Normal file
3
tdesktop-5.4.1-full.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b7ef049f64aa7015753c3be158e1a38dafd5e4b58d69bed16aee2402d11ef394
|
||||
size 70056797
|
@ -1,4 +0,0 @@
|
||||
name: tdesktop
|
||||
version: 5.10.3
|
||||
mtime: 1736448897
|
||||
commit: 48fb0f3b1e3921b7ddd5bd4b7bb0e30875c91583
|
@ -1,73 +1,3 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 5 07:15:06 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Replace pkgconfig(webkit2gtk-4.0) with pkgconfig(webkit2gtk-4.1)
|
||||
and drop superfluous webkit2gtk3-devel BuildRequires.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jan 18 12:50:30 UTC 2025 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Replace ffmpeg-6-*-devel with ffmpeg-7-*-devel BuildRequires.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jan 18 06:50:26 UTC 2025 - Xu Zhao <i@xuzhao.net>
|
||||
|
||||
- Remove patches
|
||||
* 0001-use-bundled-webrtc.patch
|
||||
* 0002-use-bundled-rnnoise-expected-gsl-ranges-webrtc.patch
|
||||
* 0003-revert-webrtc-cmake-target-file.patch
|
||||
* 0004-use-dynamic-x-libraries.patch
|
||||
* 0005-use-bundled-ada.patch
|
||||
* 0006-tdesktop-disable-h264.patch
|
||||
* 0007-tg_owt-h264-dlopen.patch
|
||||
- Add patches
|
||||
* 0001-dynamic-link-x.patch
|
||||
* 0002-tg_owt-h264-dlopen.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 10 23:14:36 UTC 2025 - Xu Zhao <i@xuzhao.net>
|
||||
|
||||
- Update to version 5.10.3
|
||||
* Fix a crash in legacy group opening.
|
||||
- Update tg_owt link in obs_scm _service file.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 3 19:54:03 UTC 2025 - Xu Zhao <i@xuzhao.net>
|
||||
|
||||
- Update to version 5.10.0
|
||||
* Collectible Gifts.
|
||||
* Reactions for Service Messages.
|
||||
- Download and compress tarballs with obs service
|
||||
* Remove ada-packager.sh
|
||||
* Remove tg_owt-packager.sh
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 17 09:24:53 UTC 2024 - Xu Zhao <i@xuzhao.net>
|
||||
|
||||
- Update to version 5.9.0
|
||||
* Affiliate programs for bots.
|
||||
* Add option to show folder tags in chats list.
|
||||
- Add 0007-tg_owt-h264-dlopen.patch
|
||||
* Patch tg_owt to load h264 decoder with dlopen.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 18 18:26:23 UTC 2024 - Dmitry Roshchin <dmitry_r@opensuse.org>
|
||||
|
||||
- Update to version 5.6.3
|
||||
* Gifts for Telegram Stars.
|
||||
* Mention / hashtag autocomplete in media caption field.
|
||||
* Resizing the window used for web apps and games.
|
||||
* "Include muted chats in folder counters" notifications setting.
|
||||
* Emoji from Unicode 15.1.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Sep 22 22:52:10 UTC 2024 - Xu Zhao <i@xuzhao.net>
|
||||
|
||||
- Update to version 5.5.5
|
||||
* Suggest URL from clipboard when creating a custom link.
|
||||
* Fix animated topic icons in topic info page.
|
||||
* Fix excessive getChannelDifference requests.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 22 05:30:55 UTC 2024 - Xu Zhao <i@xuzhao.net>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package telegram-desktop
|
||||
#
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -36,25 +36,39 @@
|
||||
%define _dwz_max_die_limit 200000000
|
||||
|
||||
%define qt_major_version 6
|
||||
%define srcext tar.zst
|
||||
|
||||
Name: telegram-desktop
|
||||
Version: 5.10.3
|
||||
Version: 5.4.1
|
||||
Release: 0
|
||||
Summary: Messaging application with a focus on speed and security
|
||||
License: GPL-3.0-only
|
||||
Group: Productivity/Networking/Instant Messenger
|
||||
URL: https://github.com/telegramdesktop/tdesktop
|
||||
Source0: tdesktop-%{version}.%{srcext}
|
||||
Source1: tg_owt.%{srcext}
|
||||
Source2: ada.%{srcext}
|
||||
Source3: tg_owt-dlopen-headers.tar.gz
|
||||
Source0: https://github.com/telegramdesktop/tdesktop/releases/download/v%{version}/tdesktop-%{version}-full.tar.gz
|
||||
# Use tg_owt-packager.sh to prepare tg_owt-master.zip
|
||||
# Usage: bash tg_owt-packager.sh
|
||||
Source1: tg_owt-packager.sh
|
||||
Source2: tg_owt-master.zip
|
||||
Source3: ada-v2.9.0.zip
|
||||
# Usage: bash ads-packager.sh
|
||||
Source4: ada-packager.sh
|
||||
Source5: tg_owt-dlopen-headers.tar.gz
|
||||
%if %{with use_system_rnnoise}
|
||||
# PATCH-FIX-OPENSUSE
|
||||
Patch1: 0001-use-bundled-webrtc.patch
|
||||
%else
|
||||
Source4: rnnoise-git20210122.tar.gz
|
||||
Source6: rnnoise-git20210122.tar.gz
|
||||
# PATCH-FIX-OPENSUSE
|
||||
Patch1: 0002-use-bundled-rnnoise-expected-gsl-ranges-webrtc.patch
|
||||
%endif
|
||||
Patch1: 0001-dynamic-link-x.patch
|
||||
Patch2: 0002-tg_owt-h264-dlopen.patch
|
||||
# PATCH-FIX-OPENSUSE
|
||||
Patch3: 0003-revert-webrtc-cmake-target-file.patch
|
||||
# PATCH-FIX-OPENSUSE
|
||||
Patch4: 0004-use-dynamic-x-libraries.patch
|
||||
# PATCH-FIX-OPENSUSE
|
||||
Patch5: 0005-use-bundled-ada.patch
|
||||
# PATCH-FIX-OPENSUSE
|
||||
Patch6: 0006-tdesktop-disable-h264.patch
|
||||
# There is an (incomplete) patch available for part of the source:
|
||||
# https://github.com/desktop-app/lib_base.git 3582bca53a1e195a31760978dc41f67ce44fc7e4
|
||||
# but tdesktop itself still falls short, and it looks to be something
|
||||
@ -66,11 +80,11 @@ BuildRequires: clang
|
||||
BuildRequires: cmake >= 3.16
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: enchant-devel
|
||||
BuildRequires: ffmpeg-7-libavcodec-devel
|
||||
BuildRequires: ffmpeg-7-libavdevice-devel
|
||||
BuildRequires: ffmpeg-7-libavfilter-devel
|
||||
BuildRequires: ffmpeg-7-libavformat-devel
|
||||
BuildRequires: ffmpeg-7-libavutil-devel
|
||||
BuildRequires: ffmpeg-6-libavcodec-devel
|
||||
BuildRequires: ffmpeg-6-libavdevice-devel
|
||||
BuildRequires: ffmpeg-6-libavfilter-devel
|
||||
BuildRequires: ffmpeg-6-libavformat-devel
|
||||
BuildRequires: ffmpeg-6-libavutil-devel
|
||||
%if %{with compiler_upgrade} || %{with compiler_downgrade}
|
||||
BuildRequires: gcc12
|
||||
BuildRequires: gcc12-c++
|
||||
@ -87,6 +101,7 @@ BuildRequires: pkgconfig
|
||||
BuildRequires: python3 >= 3.7
|
||||
BuildRequires: unzip
|
||||
BuildRequires: wayland-devel
|
||||
BuildRequires: webkit2gtk3-devel
|
||||
BuildRequires: xxhash-devel
|
||||
BuildRequires: xz
|
||||
BuildRequires: yasm
|
||||
@ -173,7 +188,7 @@ BuildRequires: libtool
|
||||
BuildRequires: pkgconfig(tslib)
|
||||
BuildRequires: pkgconfig(vdpau)
|
||||
BuildRequires: pkgconfig(vpx)
|
||||
BuildRequires: pkgconfig(webkit2gtk-4.1)
|
||||
BuildRequires: pkgconfig(webkit2gtk-4.0)
|
||||
BuildRequires: pkgconfig(xcb-ewmh)
|
||||
BuildRequires: pkgconfig(xcb-icccm)
|
||||
BuildRequires: pkgconfig(xcb-image)
|
||||
@ -209,32 +224,26 @@ always immediately published, whereas its server-side code is closed-source and
|
||||
The service also provides APIs to independent developers.
|
||||
|
||||
%prep
|
||||
%setup -q -n tdesktop-%{version}
|
||||
%autopatch -p1 1
|
||||
%setup -q -n tdesktop-%{version}-full
|
||||
%autopatch -p1 -M 6
|
||||
|
||||
cd %{_builddir}
|
||||
mkdir -p %{_builddir}/Libraries
|
||||
# -q: quiet mode
|
||||
# -T: do not perform default archive unpacking
|
||||
# -D: do not delete the tdesktop-{version} directory
|
||||
# -b <n>: unpack nth sources before changing the directory
|
||||
%setup -q -T -D -b 1 -n tdesktop-%{version}
|
||||
mv ../tg_owt %{_builddir}/Libraries
|
||||
%setup -q -T -D -b 2 -n tdesktop-%{version}
|
||||
mv ../ada %{_builddir}/Libraries
|
||||
%setup -q -T -D -b 3 -n tdesktop-%{version}
|
||||
unzip -q %{S:3}
|
||||
mv ada-v2.9.0 %{_builddir}/Libraries/ada
|
||||
|
||||
mkdir -p %{_builddir}/Libraries/openh264/include
|
||||
mv ../wels %{_builddir}/Libraries/openh264/include
|
||||
tar xzf %{S:5}
|
||||
mv wels %{_builddir}/Libraries/openh264/include/
|
||||
|
||||
# If not TW, unpack rnnoise source
|
||||
%if %{without use_system_rnnoise}
|
||||
%setup -q -T -D -b 4 -n tdesktop-%{version}
|
||||
%setup -q -T -D -b 6 -n tdesktop-%{version}-full
|
||||
mv ../rnnoise-git20210122 ../Libraries/rnnoise
|
||||
%endif
|
||||
|
||||
pushd %{_builddir}/Libraries/tg_owt
|
||||
%autopatch -p1 2
|
||||
popd
|
||||
unzip -q %{SOURCE2}
|
||||
mv tg_owt-master Libraries/tg_owt
|
||||
|
||||
%build
|
||||
%if %{with compiler_upgrade} || %{with compiler_downgrade}
|
||||
@ -257,47 +266,38 @@ pushd %{_builddir}/Libraries/rnnoise
|
||||
popd
|
||||
%endif
|
||||
|
||||
# setup library install path
|
||||
mkdir -p %{_builddir}/Libraries/install
|
||||
|
||||
# Build Ada
|
||||
pushd %{_builddir}/Libraries/ada
|
||||
cmake -GNinja -B build . \
|
||||
-D CMAKE_INSTALL_PREFIX=%{_builddir}/Libraries/install \
|
||||
-D CMAKE_BUILD_TYPE=None \
|
||||
-D ADA_TESTING=OFF \
|
||||
-D ADA_TOOLS=OFF
|
||||
cmake --build build --parallel
|
||||
# Install ada to build dir
|
||||
ninja install -C build
|
||||
|
||||
# Build tg_owt
|
||||
cd %{_builddir}/Libraries/tg_owt
|
||||
mkdir -p out/Release
|
||||
cd out/Release
|
||||
cmake -G Ninja \
|
||||
-B out/Release \
|
||||
-DCMAKE_INSTALL_PREFIX=%{_builddir}/Libraries/install \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
%ifarch armv7l armv7hl
|
||||
-DTG_OWT_ARCH_ARMV7_USE_NEON=OFF \
|
||||
-DTG_OWT_ARCH_ARMV7_USE_NEON=OFF \
|
||||
%endif
|
||||
-DTG_OWT_DLOPEN_H264=ON \
|
||||
-DTG_OWT_SPECIAL_TARGET=linux \
|
||||
-DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/include \
|
||||
-DTG_OWT_OPENH264_INCLUDE_PATH=%{_builddir}/Libraries/openh264/include \
|
||||
-DTG_OWT_OPENSSL_INCLUDE_PATH=/usr/include/openssl \
|
||||
-DTG_OWT_OPUS_INCLUDE_PATH=/usr/include/opus \
|
||||
-DTG_OWT_FFMPEG_INCLUDE_PATH=/usr/include/ffmpeg \
|
||||
-DTG_OWT_LIBVPX_INCLUDE_PATH=/usr/include/vpx \
|
||||
.
|
||||
sed -i 's,gnu++2a,gnu++17,g' out/Release/build.ninja
|
||||
cmake --build out/Release --parallel
|
||||
ninja install -C out/Release
|
||||
-DTG_OWT_DLOPEN_H264=ON \
|
||||
-DTG_OWT_SPECIAL_TARGET=linux \
|
||||
-DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/include \
|
||||
-DTG_OWT_OPENH264_INCLUDE_PATH=%{_builddir}/Libraries/openh264/include \
|
||||
-DTG_OWT_OPENSSL_INCLUDE_PATH=/usr/include/openssl \
|
||||
-DTG_OWT_OPUS_INCLUDE_PATH=/usr/include/opus \
|
||||
-DTG_OWT_FFMPEG_INCLUDE_PATH=/usr/include/ffmpeg \
|
||||
-DTG_OWT_LIBVPX_INCLUDE_PATH=/usr/include/vpx \
|
||||
../..
|
||||
sed -i 's,gnu++2a,gnu++17,g' build.ninja
|
||||
ninja
|
||||
|
||||
pushd %{_builddir}/tdesktop-%{version}
|
||||
cd %{_builddir}/tdesktop-%{version}-full
|
||||
# Use the official API key that telegram uses for their snap builds:
|
||||
# https://github.com/telegramdesktop/tdesktop/blob/8fab9167beb2407c1153930ed03a4badd0c2b59f/snap/snapcraft.yaml#L87-L88
|
||||
# Thanks to @primeos on Github.
|
||||
export CMAKE_PREFIX_PATH=%{_builddir}/Libraries/install/lib64/cmake
|
||||
%cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
|
3
tg_owt-master.zip
Normal file
3
tg_owt-master.zip
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6addc180f1fbfe33b03b3616c1f9fefa5d0a4a68972de4bc2739b69b893ad49e
|
||||
size 23497999
|
24
tg_owt-packager.sh
Normal file
24
tg_owt-packager.sh
Normal file
@ -0,0 +1,24 @@
|
||||
#! /bin/bash
|
||||
|
||||
# tg_owt origin
|
||||
# get it from https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/build/docker/centos_env/Dockerfile around line 761
|
||||
# tg_owt_origin="4a60ce1ab9fdb962004c6a959f682ace3db50cbd"
|
||||
# use xuzhao9's fork to workaround the h264 dlopen issue
|
||||
tg_owt_origin="0342ae21ee2cc6c6052798bc8fa6b737d9a66418"
|
||||
|
||||
rm -rf tg_owt \
|
||||
&& mkdir tg_owt \
|
||||
&& cd tg_owt \
|
||||
&& git init tg_owt \
|
||||
&& cd tg_owt \
|
||||
&& git remote add origin https://github.com/xuzhao9/tg_owt.git \
|
||||
&& git fetch --depth=1 origin "$tg_owt_origin" \
|
||||
&& git reset --hard FETCH_HEAD \
|
||||
&& git submodule update --init --recursive --depth=1 \
|
||||
&& rm -rf .git \
|
||||
&& cd .. \
|
||||
&& mv tg_owt tg_owt-master \
|
||||
&& zip tg_owt-master.zip -r tg_owt-master -x '*.git*' \
|
||||
&& mv tg_owt-master.zip ..
|
||||
|
||||
cd ..; rm -rf tg_owt
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c80ea2064ce33282f1f9a8f828fbde71ea105e62e8bfcfd6ce589577ed605a56
|
||||
size 72658958
|
@ -1,4 +0,0 @@
|
||||
name: tg_owt
|
||||
version:
|
||||
mtime: 1730101779
|
||||
commit: 8198c4d8b91e22d68eb5c7327fd408e3b6abcc79
|
Loading…
x
Reference in New Issue
Block a user