New package: tg_owt-0.0.0.1

This commit is contained in:
John 2020-12-26 21:56:33 +01:00 committed by John Zimmermann
parent 385f16b699
commit 814e2a1ad9
4 changed files with 189 additions and 0 deletions

View file

@ -0,0 +1,70 @@
From 3f2d8238846d4795f1292c05923b9f212dc4d022 Mon Sep 17 00:00:00 2001
From: Charlie Li <git@vishwin.info>
Date: Sat, 21 Nov 2020 14:24:04 -0500
Subject: [PATCH] Fix build with LibreSSL
LibreSSL's dtls1.h uses some definitions from ssl.h and ssl3.h, but
expects consumers to include them. Reorder and include them before
dtls1.h.
LibreSSL does not define DTLS1_2_VERSION. Remove them from view.
---
src/rtc_base/openssl_stream_adapter.cc | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/rtc_base/openssl_stream_adapter.cc b/src/rtc_base/openssl_stream_adapter.cc
index 7f4b79a5..037002bc 100644
--- a/src/rtc_base/openssl_stream_adapter.cc
+++ b/src/rtc_base/openssl_stream_adapter.cc
@@ -17,8 +17,11 @@
#include <openssl/tls1.h>
#include <openssl/x509v3.h>
#ifndef OPENSSL_IS_BORINGSSL
-#include <openssl/dtls1.h>
#include <openssl/ssl.h>
+#ifdef LIBRESSL_VERSION_NUMBER
+#include <openssl/ssl3.h>
+#endif
+#include <openssl/dtls1.h>
#endif
#include <memory>
@@ -392,8 +395,10 @@ SSLProtocolVersion OpenSSLStreamAdapter::GetSslVersion() const {
if (ssl_mode_ == SSL_MODE_DTLS) {
if (ssl_version == DTLS1_VERSION) {
return SSL_PROTOCOL_DTLS_10;
+#ifndef LIBRESSL_VERSION_NUMBER
} else if (ssl_version == DTLS1_2_VERSION) {
return SSL_PROTOCOL_DTLS_12;
+#endif
}
} else {
if (ssl_version == TLS1_VERSION) {
@@ -985,15 +990,27 @@ SSL_CTX* OpenSSLStreamAdapter::SetupSSLContext() {
case SSL_PROTOCOL_TLS_12:
default:
SSL_CTX_set_max_proto_version(
+#ifdef LIBRESSL_VERSION_NUMBER
+ ctx, TLS1_2_VERSION);
+#else
ctx, ssl_mode_ == SSL_MODE_DTLS ? DTLS1_2_VERSION : TLS1_2_VERSION);
+#endif
break;
}
} else {
// TODO(https://bugs.webrtc.org/10261): Make this the default in M84.
SSL_CTX_set_min_proto_version(
+#ifdef LIBRESSL_VERSION_NUMBER
+ ctx, TLS1_2_VERSION);
+#else
ctx, ssl_mode_ == SSL_MODE_DTLS ? DTLS1_2_VERSION : TLS1_2_VERSION);
+#endif
SSL_CTX_set_max_proto_version(
+#ifdef LIBRESSL_VERSION_NUMBER
+ ctx, TLS1_2_VERSION);
+#else
ctx, ssl_mode_ == SSL_MODE_DTLS ? DTLS1_2_VERSION : TLS1_2_VERSION);
+#endif
}
#ifdef OPENSSL_IS_BORINGSSL

View file

@ -0,0 +1 @@
-Np1

View file

@ -0,0 +1,87 @@
diff --git CMakeLists.txt CMakeLists.txt
index d970719..c14226e 100644
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -45,7 +45,6 @@ include(cmake/libpffft.cmake)
include(cmake/librnnoise.cmake)
include(cmake/libsrtp.cmake)
include(cmake/libusrsctp.cmake)
-include(cmake/libvpx.cmake)
include(cmake/libwebrtcbuild.cmake)
include(cmake/libyuv.cmake)
if (NOT WIN32 AND NOT APPLE)
@@ -77,13 +76,6 @@ if (is_x86 OR is_x64)
tg_owt::librnnoise
tg_owt::libsrtp
tg_owt::libusrsctp
- tg_owt::libvpx
- tg_owt::libvpx_mmx
- tg_owt::libvpx_sse2
- tg_owt::libvpx_ssse3
- tg_owt::libvpx_sse4
- tg_owt::libvpx_avx
- tg_owt::libvpx_avx2
tg_owt::libyuv
)
else()
@@ -97,7 +89,6 @@ else()
tg_owt::librnnoise
tg_owt::libsrtp
tg_owt::libusrsctp
- tg_owt::libvpx
tg_owt::libyuv
)
endif()
@@ -122,6 +113,7 @@ if (APPLE)
target_link_libraries(tg_owt PUBLIC tg_owt::libsdkmacos)
endif()
+link_vpx(tg_owt)
link_openssl(tg_owt)
link_ffmpeg(tg_owt)
link_opus(tg_owt)
@@ -1868,16 +1860,6 @@ elseif (APPLE)
endif()
set(vpx_export)
-if (is_x86 OR is_x64)
- set(vpx_export
- libvpx_mmx
- libvpx_sse2
- libvpx_ssse3
- libvpx_sse4
- libvpx_avx
- libvpx_avx2
- )
-endif()
set(export_targets
tg_owt
@@ -1887,7 +1869,6 @@ set(export_targets
librnnoise
libsrtp
libusrsctp
- libvpx
${vpx_export}
libwebrtcbuild
libyuv
diff --git cmake/external.cmake cmake/external.cmake
index 964e260..82d68d0 100644
--- cmake/external.cmake
+++ cmake/external.cmake
@@ -129,3 +129,15 @@ function(link_dl target_name)
target_link_libraries(${target_name} PRIVATE ${CMAKE_DL_LIBS})
endif()
endfunction()
+
+# libvpx
+function(link_vpx target_name)
+ if (TG_OWT_PACKAGED_BUILD)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(VPX vpx)
+ endif()
+ if (VPX_FOUND)
+ target_include_directories(${target_name} PRIVATE ${VPX_INCLUDE_DIRS})
+ target_link_libraries(${target_name} PRIVATE ${VPX_LINK_LIBRARIES})
+ endif()
+endfunction()

31
srcpkgs/tg_owt/template Normal file
View file

@ -0,0 +1,31 @@
# Template file for 'tg_owt'
pkgname=tg_owt
version=0.0.0.1
revision=1
_commit=756fd0fb5f40ffb4244c675208e84de781f766f3
_libvpx_commit=5b63f0f821e94f8072eb483014cfc33b05978bb9
_libyuv_commit=ad890067f661dc747a975bc55ba3767fe30d4452
wrksrc="tg_owt-$_commit"
build_style=cmake
configure_args="-DBUILD_SHARED_LIBS=OFF"
hostmakedepends="pkg-config yasm protobuf25"
makedepends="alsa-lib-devel pulseaudio-devel libressl-devel opus-devel
libvpx-devel ffmpeg-devel libjpeg-turbo-devel protobuf-devel"
depends="$makedepends"
short_desc="WebRTC library for Telegram-desktop"
maintainer="John <me@johnnynator.dev>"
license="GPL-3.0-or-later"
homepage="https://github.com/desktop-app/tg_owt"
distfiles="https://github.com/desktop-app/tg_owt/archive/${_commit}.tar.gz
https://chromium.googlesource.com/libyuv/libyuv/+archive/${_libyuv_commit}.tar.gz"
checksum="@43d09b00a43f9206b1f04c6d6697f4b0cb3be0285100bf5df91144b1d689c89a
@1dd51820852df840c339bf3f18e6cf1166de33d5631a69cd1eae5b2b34c113e3"
skip_extraction="${_libvpx_commit}.tar.gz ${_libyuv_commit}.tar.gz"
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
makedepends+=" musl-legacy-compat"
fi
post_extract() {
bsdtar xzf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_libyuv_commit}.tar.gz -C ${wrksrc}/src/third_party/libyuv
}