tdesktop: 2.3.0 -> 2.4.3 and enable webrtc (#100450)
Enables WebRTC by packaging tg_owt.
This commit is contained in:
parent
f9728adae7
commit
4c59c0b1da
@ -1,4 +1,4 @@
|
|||||||
{ mkDerivation, lib, fetchurl, fetchsvn
|
{ mkDerivation, lib, fetchurl, callPackage
|
||||||
, pkgconfig, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook
|
, pkgconfig, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook
|
||||||
, qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
|
, qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
|
||||||
, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
|
, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
|
||||||
@ -17,14 +17,17 @@ with lib;
|
|||||||
# - https://git.alpinelinux.org/aports/tree/testing/telegram-desktop/APKBUILD
|
# - https://git.alpinelinux.org/aports/tree/testing/telegram-desktop/APKBUILD
|
||||||
# - https://github.com/void-linux/void-packages/blob/master/srcpkgs/telegram-desktop/template
|
# - https://github.com/void-linux/void-packages/blob/master/srcpkgs/telegram-desktop/template
|
||||||
|
|
||||||
mkDerivation rec {
|
let
|
||||||
|
tg_owt = callPackage ./tg_owt.nix {};
|
||||||
|
|
||||||
|
in mkDerivation rec {
|
||||||
pname = "telegram-desktop";
|
pname = "telegram-desktop";
|
||||||
version = "2.3.0";
|
version = "2.4.3";
|
||||||
|
|
||||||
# Telegram-Desktop with submodules
|
# Telegram-Desktop with submodules
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
|
url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
|
||||||
sha256 = "0yga4p36jrc5m3d8q2y2g0505c2v540w5hgcscapl4xj9hyb21dw";
|
sha256 = "15a8pnz4wf3464n8dvfzr9ck0vmhlx16ya1y889y3crjagm4ipjn";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
@ -44,6 +47,7 @@ mkDerivation rec {
|
|||||||
qtbase qtimageformats gtk3 libsForQt5.libdbusmenu enchant2 lz4 xxHash
|
qtbase qtimageformats gtk3 libsForQt5.libdbusmenu enchant2 lz4 xxHash
|
||||||
dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
|
dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
|
||||||
tl-expected hunspell
|
tl-expected hunspell
|
||||||
|
tg_owt
|
||||||
# TODO: Shouldn't be required:
|
# TODO: Shouldn't be required:
|
||||||
pcre xorg.libpthreadstubs xorg.libXdmcp utillinux libselinux libsepol epoxy at-spi2-core libXtst
|
pcre xorg.libpthreadstubs xorg.libXdmcp utillinux libselinux libsepol epoxy at-spi2-core libXtst
|
||||||
];
|
];
|
||||||
@ -60,7 +64,6 @@ mkDerivation rec {
|
|||||||
"-DDESKTOP_APP_USE_PACKAGED_GSL=OFF"
|
"-DDESKTOP_APP_USE_PACKAGED_GSL=OFF"
|
||||||
"-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME=ON"
|
"-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME=ON"
|
||||||
"-DTDESKTOP_USE_PACKAGED_TGVOIP=OFF"
|
"-DTDESKTOP_USE_PACKAGED_TGVOIP=OFF"
|
||||||
"-DDESKTOP_APP_DISABLE_WEBRTC_INTEGRATION=ON"
|
|
||||||
#"-DDESKTOP_APP_SPECIAL_TARGET=\"\"" # TODO: Error when set to "": Bad special target '""'
|
#"-DDESKTOP_APP_SPECIAL_TARGET=\"\"" # TODO: Error when set to "": Bad special target '""'
|
||||||
"-DTDESKTOP_LAUNCHER_BASENAME=telegramdesktop" # Note: This is the default
|
"-DTDESKTOP_LAUNCHER_BASENAME=telegramdesktop" # Note: This is the default
|
||||||
];
|
];
|
||||||
@ -82,6 +85,10 @@ mkDerivation rec {
|
|||||||
# TODO: Package mapbox-variant
|
# TODO: Package mapbox-variant
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
|
# Nuke refs to `tg_owt` which is introduced by `__FILE__` in headers.
|
||||||
|
sed -E "s|($NIX_STORE/)[a-z0-9]{32}(-${tg_owt.name})|\1eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\2|g" \
|
||||||
|
--in-place $out/bin/telegram-desktop
|
||||||
|
|
||||||
# This is necessary to run Telegram in a pure environment.
|
# This is necessary to run Telegram in a pure environment.
|
||||||
# We also use gappsWrapperArgs from wrapGAppsHook.
|
# We also use gappsWrapperArgs from wrapGAppsHook.
|
||||||
wrapProgram $out/bin/telegram-desktop \
|
wrapProgram $out/bin/telegram-desktop \
|
||||||
|
@ -0,0 +1,159 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 6fbc0da..6cbff3c 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -1856,3 +1856,41 @@ configure_file(
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/tg_owtConfig.cmake"
|
||||||
|
COPYONLY
|
||||||
|
)
|
||||||
|
+
|
||||||
|
+install(
|
||||||
|
+TARGETS
|
||||||
|
+ tg_owt
|
||||||
|
+ libabsl
|
||||||
|
+ libopenh264
|
||||||
|
+ libpffft
|
||||||
|
+ librnnoise
|
||||||
|
+ libsrtp
|
||||||
|
+ libusrsctp
|
||||||
|
+ libvpx
|
||||||
|
+ ${vpx_export}
|
||||||
|
+ libwebrtcbuild
|
||||||
|
+ libyuv
|
||||||
|
+ ${platform_export}
|
||||||
|
+EXPORT tg_owtTargets
|
||||||
|
+RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
+ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
+LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
+INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+install(
|
||||||
|
+ DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/src/
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||||
|
+ FILES_MATCHING PATTERN "*.h"
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+install(
|
||||||
|
+ EXPORT tg_owtTargets
|
||||||
|
+ NAMESPACE tg_owt::
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/tg_owt
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+install(
|
||||||
|
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/tg_owtConfig.cmake
|
||||||
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/tg_owt
|
||||||
|
+)
|
||||||
|
diff --git a/cmake/libabsl.cmake b/cmake/libabsl.cmake
|
||||||
|
index 2fb3b8c..4a4f85b 100644
|
||||||
|
--- a/cmake/libabsl.cmake
|
||||||
|
+++ b/cmake/libabsl.cmake
|
||||||
|
@@ -123,5 +123,6 @@ PRIVATE
|
||||||
|
|
||||||
|
target_include_directories(libabsl
|
||||||
|
PUBLIC
|
||||||
|
- ${libabsl_loc}
|
||||||
|
+ $<BUILD_INTERFACE:${libabsl_loc}>
|
||||||
|
+ $<INSTALL_INTERFACE:include/third_party/abseil-cpp>
|
||||||
|
)
|
||||||
|
diff --git a/cmake/libpffft.cmake b/cmake/libpffft.cmake
|
||||||
|
index a6ceb3e..435d3a3 100644
|
||||||
|
--- a/cmake/libpffft.cmake
|
||||||
|
+++ b/cmake/libpffft.cmake
|
||||||
|
@@ -24,5 +24,6 @@ endif()
|
||||||
|
|
||||||
|
target_include_directories(libpffft
|
||||||
|
PUBLIC
|
||||||
|
- ${libpffft_loc}
|
||||||
|
+ $<BUILD_INTERFACE:${libpffft_loc}>
|
||||||
|
+ $<INSTALL_INTERFACE:include/third_party/pffft/src>
|
||||||
|
)
|
||||||
|
diff --git a/cmake/libsrtp.cmake b/cmake/libsrtp.cmake
|
||||||
|
index 57c54b5..26b3466 100644
|
||||||
|
--- a/cmake/libsrtp.cmake
|
||||||
|
+++ b/cmake/libsrtp.cmake
|
||||||
|
@@ -30,6 +30,8 @@ PRIVATE
|
||||||
|
|
||||||
|
target_include_directories(libsrtp
|
||||||
|
PUBLIC
|
||||||
|
- ${libsrtp_loc}/include
|
||||||
|
- ${libsrtp_loc}/crypto/include
|
||||||
|
+ $<BUILD_INTERFACE:${libsrtp_loc}/include>
|
||||||
|
+ $<BUILD_INTERFACE:${libsrtp_loc}/crypto/include>
|
||||||
|
+ $<INSTALL_INTERFACE:include/third_party/libsrtp/include>
|
||||||
|
+ $<INSTALL_INTERFACE:include/third_party/libsrtp/crypto/include>
|
||||||
|
)
|
||||||
|
diff --git a/cmake/libusrsctp.cmake b/cmake/libusrsctp.cmake
|
||||||
|
index caa0529..38d2ef6 100644
|
||||||
|
--- a/cmake/libusrsctp.cmake
|
||||||
|
+++ b/cmake/libusrsctp.cmake
|
||||||
|
@@ -67,6 +67,8 @@ endif()
|
||||||
|
|
||||||
|
target_include_directories(libusrsctp
|
||||||
|
PUBLIC
|
||||||
|
- ${third_party_loc}/usrsctp/usrsctplib
|
||||||
|
- ${libusrsctp_loc}
|
||||||
|
+ $<BUILD_INTERFACE:${third_party_loc}/usrsctp/usrsctplib>
|
||||||
|
+ $<BUILD_INTERFACE:${libusrsctp_loc}>
|
||||||
|
+ $<INSTALL_INTERFACE:include/third_party/usrsctp/usrsctplib/usrsctplib>
|
||||||
|
+ $<INSTALL_INTERFACE:include/third_party/usrsctp/usrsctplib>
|
||||||
|
)
|
||||||
|
diff --git a/cmake/libvpx.cmake b/cmake/libvpx.cmake
|
||||||
|
index e192e7e..78cf25b 100644
|
||||||
|
--- a/cmake/libvpx.cmake
|
||||||
|
+++ b/cmake/libvpx.cmake
|
||||||
|
@@ -68,6 +68,11 @@ else()
|
||||||
|
set(ASM_SUFFIX ".asm.S")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+foreach(dir ${include_directories})
|
||||||
|
+ string(REPLACE ${libvpx_loc} include/third_party/libvpx install_include_dir ${dir})
|
||||||
|
+ list(APPEND install_include_directories ${install_include_dir})
|
||||||
|
+endforeach()
|
||||||
|
+
|
||||||
|
function(add_sublibrary postfix)
|
||||||
|
add_library(libvpx_${postfix} OBJECT)
|
||||||
|
init_feature_target(libvpx_${postfix} ${postfix})
|
||||||
|
@@ -75,6 +80,8 @@ function(add_sublibrary postfix)
|
||||||
|
target_include_directories(libvpx_${postfix}
|
||||||
|
PRIVATE
|
||||||
|
${include_directories}
|
||||||
|
+ "$<BUILD_INTERFACE:${include_directories}>"
|
||||||
|
+ "$<INSTALL_INTERFACE:${install_include_directories}>"
|
||||||
|
)
|
||||||
|
set(sources_list ${ARGV})
|
||||||
|
list(REMOVE_AT sources_list 0)
|
||||||
|
@@ -725,5 +732,6 @@ endif()
|
||||||
|
|
||||||
|
target_include_directories(libvpx
|
||||||
|
PUBLIC
|
||||||
|
- ${include_directories}
|
||||||
|
+ "$<BUILD_INTERFACE:${include_directories}>"
|
||||||
|
+ "$<INSTALL_INTERFACE:${install_include_directories}>"
|
||||||
|
)
|
||||||
|
diff --git a/cmake/libwebrtcbuild.cmake b/cmake/libwebrtcbuild.cmake
|
||||||
|
index c3520b8..9b4b543 100644
|
||||||
|
--- a/cmake/libwebrtcbuild.cmake
|
||||||
|
+++ b/cmake/libwebrtcbuild.cmake
|
||||||
|
@@ -44,5 +44,6 @@ endif()
|
||||||
|
|
||||||
|
target_include_directories(libwebrtcbuild
|
||||||
|
INTERFACE
|
||||||
|
- ${webrtc_loc}
|
||||||
|
+ $<BUILD_INTERFACE:${webrtc_loc}>
|
||||||
|
+ $<INSTALL_INTERFACE:include>
|
||||||
|
)
|
||||||
|
diff --git a/cmake/libyuv.cmake b/cmake/libyuv.cmake
|
||||||
|
index ebfc6f0..18e70ef 100644
|
||||||
|
--- a/cmake/libyuv.cmake
|
||||||
|
+++ b/cmake/libyuv.cmake
|
||||||
|
@@ -126,7 +126,8 @@ endif()
|
||||||
|
|
||||||
|
target_include_directories(libyuv
|
||||||
|
PUBLIC
|
||||||
|
- ${libyuv_loc}/include
|
||||||
|
+ $<BUILD_INTERFACE:${libyuv_loc}/include>
|
||||||
|
+ $<INSTALL_INTERFACE:include/third_party/libyuv/include>
|
||||||
|
)
|
||||||
|
|
||||||
|
target_compile_definitions(libyuv
|
@ -0,0 +1,26 @@
|
|||||||
|
{ lib, stdenv, fetchFromGitHub, cmake, ninja, yasm
|
||||||
|
, pkg-config, libjpeg, openssl, libopus, ffmpeg, alsaLib, libpulseaudio
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
rev = "c73a4718cbff7048373a63db32068482e5fd11ef";
|
||||||
|
sha256 = "0nr20mvvmmg8ii8f2rljd7iv2szplcfjn40rpy6llkmf705mwr1k";
|
||||||
|
|
||||||
|
in stdenv.mkDerivation {
|
||||||
|
pname = "tg_owt";
|
||||||
|
version = "git-${rev}";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "desktop-app";
|
||||||
|
repo = "tg_owt";
|
||||||
|
inherit rev sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [ ./tg_owt-install.patch ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkg-config cmake ninja yasm ];
|
||||||
|
|
||||||
|
buildInputs = [ libjpeg openssl libopus ffmpeg alsaLib libpulseaudio ];
|
||||||
|
|
||||||
|
meta.license = lib.licenses.bsd3;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user