Accepting request 1238761 from server:messaging

- Replace ffmpeg-6-*-devel with ffmpeg-7-*-devel BuildRequires.
- 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

OBS-URL: https://build.opensuse.org/request/show/1238761
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/telegram-desktop?expand=0&rev=129
This commit is contained in:
Dominique Leuenberger 2025-01-19 20:49:52 +00:00 committed by Git OBS Bridge
commit 2ddc79648e
14 changed files with 81 additions and 203 deletions

24
0001-dynamic-link-x.patch Normal file
View File

@ -0,0 +1,24 @@
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()

View File

@ -1,13 +0,0 @@
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()

View File

@ -1,71 +0,0 @@
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()

View File

@ -1,18 +0,0 @@
Index: tdesktop-5.6.3-full/cmake/external/webrtc/CMakeLists.txt
===================================================================
--- tdesktop-5.6.3-full.orig/cmake/external/webrtc/CMakeLists.txt
+++ tdesktop-5.6.3-full/cmake/external/webrtc/CMakeLists.txt
@@ -97,13 +97,10 @@ 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_openh264>
$<TARGET_FILE:desktop-app::external_openh264>
$<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)

View File

@ -1,13 +0,0 @@
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

View File

@ -1,26 +0,0 @@
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()

View File

@ -1,12 +0,0 @@
Index: tdesktop-5.6.3-full/cmake/external/webrtc/CMakeLists.txt
===================================================================
--- tdesktop-5.6.3-full.orig/cmake/external/webrtc/CMakeLists.txt
+++ tdesktop-5.6.3-full/cmake/external/webrtc/CMakeLists.txt
@@ -98,7 +98,6 @@ INTERFACE
$<LINK_ONLY:desktop-app::external_openssl>
$<LINK_ONLY:desktop-app::external_jpeg>
$<LINK_ONLY:desktop-app::external_openh264>
- $<TARGET_FILE:desktop-app::external_openh264>
$<LINK_ONLY:desktop-app::external_opus>
$<LINK_ONLY:desktop-app::external_vpx>
)

View File

@ -26,8 +26,8 @@
<param name="version">_none_</param>
</service>
<service name="tar" mode="manual" />
<service name="recompress" mode="manual">
<service name="tar" mode="buildtime" />
<service name="recompress" mode="buildtime">
<param name="compression">zstd</param>
<param name="file">*.tar</param>
</service>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5204e3b21a8d62fe3cb77c71659d74c8df00956f0d2fd853da85b7513f8f1ad8
size 319285

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:beacaecc2de9b8f8acff44bb6d0bcc60210a050cd444779d05d628c7c3822290
size 62007582

View File

@ -1,3 +1,23 @@
-------------------------------------------------------------------
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>

View File

@ -50,23 +50,11 @@ Source1: tg_owt.%{srcext}
Source2: ada.%{srcext}
Source3: 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
# PATCH-FIX-OPENSUSE
Patch2: 0002-use-bundled-rnnoise-expected-gsl-ranges-webrtc.patch
%endif
# 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
# PATCH-FIX_OPENSUSE
Patch7: 0007-tg_owt-h264-dlopen.patch
Patch1: 0001-dynamic-link-x.patch
Patch2: 0002-tg_owt-h264-dlopen.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
@ -78,11 +66,11 @@ BuildRequires: clang
BuildRequires: cmake >= 3.16
BuildRequires: desktop-file-utils
BuildRequires: enchant-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
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
%if %{with compiler_upgrade} || %{with compiler_downgrade}
BuildRequires: gcc12
BuildRequires: gcc12-c++
@ -183,7 +171,6 @@ BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
%endif
BuildRequires: zstd
BuildRequires: pkgconfig(tslib)
BuildRequires: pkgconfig(vdpau)
BuildRequires: pkgconfig(vpx)
@ -224,13 +211,13 @@ The service also provides APIs to independent developers.
%prep
%setup -q -n tdesktop-%{version}
%autopatch -p1 -M 6
%autopatch -p1 1
cd %{_builddir}
mkdir -p %{_builddir}/Libraries
# -q: quiet mode
# -T: do not perform default archive unpacking
# -D: do not delete tdesktop-%{version} directory
# -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
@ -247,7 +234,7 @@ mv ../rnnoise-git20210122 ../Libraries/rnnoise
%endif
pushd %{_builddir}/Libraries/tg_owt
%autopatch -p1 7
%autopatch -p1 2
popd
%build
@ -271,38 +258,47 @@ 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 \
-DCMAKE_BUILD_TYPE=Release \
-B out/Release \
-DCMAKE_INSTALL_PREFIX=%{_builddir}/Libraries/install \
-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' build.ninja
ninja
-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
cd %{_builddir}/tdesktop-%{version}
pushd %{_builddir}/tdesktop-%{version}
# 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 \

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:63272e4ce309381962248ef75e704e32f753ea016ef6f98f54e1c25df6b34dfc
size 13348903