[arch-commits] Commit in kopete/repos (6 files)
Antonio Rojas
arojas at archlinux.org
Thu Dec 10 13:25:56 UTC 2020
Date: Thursday, December 10, 2020 @ 13:25:56
Author: arojas
Revision: 403401
archrelease: copy trunk to testing-x86_64
Added:
kopete/repos/testing-x86_64/
kopete/repos/testing-x86_64/PKGBUILD
(from rev 403400, kopete/trunk/PKGBUILD)
kopete/repos/testing-x86_64/kopete-mediastreamer-4.3.patch
(from rev 403400, kopete/trunk/kopete-mediastreamer-4.3.patch)
kopete/repos/testing-x86_64/kopete-mediastreamer2.14.patch
(from rev 403400, kopete/trunk/kopete-mediastreamer2.14.patch)
kopete/repos/testing-x86_64/kopete-openssl-1.1.patch
(from rev 403400, kopete/trunk/kopete-openssl-1.1.patch)
kopete/repos/testing-x86_64/kopete-srtp2.patch
(from rev 403400, kopete/trunk/kopete-srtp2.patch)
--------------------------------+
PKGBUILD | 47 +++++
kopete-mediastreamer-4.3.patch | 84 ++++++++++
kopete-mediastreamer2.14.patch | 281 +++++++++++++++++++++++++++++++++++
kopete-openssl-1.1.patch | 307 +++++++++++++++++++++++++++++++++++++++
kopete-srtp2.patch | 154 +++++++++++++++++++
5 files changed, 873 insertions(+)
Copied: kopete/repos/testing-x86_64/PKGBUILD (from rev 403400, kopete/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD (rev 0)
+++ testing-x86_64/PKGBUILD 2020-12-10 13:25:56 UTC (rev 403401)
@@ -0,0 +1,47 @@
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Maintainer: Antonio Rojas <arojas at archlinux.org>
+# Contributor: Andrea Scarpino <andrea at archlinux.org>
+
+pkgname=kopete
+pkgver=20.12.0
+pkgrel=1
+pkgdesc='Instant Messenger'
+url='https://kde.org/applications/internet/kopete/'
+arch=(x86_64)
+license=(GPL LGPL FDL)
+groups=(kde-applications kde-network)
+depends=(knotifyconfig kcmutils ktexteditor kcontacts kidentitymanagement libkleo qca kdelibs4support khtml
+ libidn libotr)
+makedepends=(extra-cmake-modules mediastreamer libgadu jsoncpp kdoctools kdesignerplugin kdnssd kinit)
+optdepends=('mediastreamer: jingle support' 'libgadu: Gadu-Gadu protocol' 'kdnssd: bonjour protocol')
+source=("https://download.kde.org/stable/release-service/$pkgver/src/$pkgname-$pkgver.tar.xz"{,.sig}
+ kopete-mediastreamer2.14.patch kopete-srtp2.patch kopete-openssl-1.1.patch kopete-mediastreamer-4.3.patch)
+sha256sums=('f6d3daf864004b5739c967c49c30bef1ca8fc5b266977705379499a1b2d7feda'
+ 'SKIP'
+ '8b8e7a5d9f17fafdddb402fab22b0b8d9963039ea8ea9fa749cad67aeeb879ac'
+ 'ceed663f7007654d186d918cf7a0742972ed5bd319879021e9ba80e395177700'
+ 'a12ea422e5162ef11274a98fd53658d6e780cafbe2e0fac70c8bc7d3291fef8b'
+ '7ff38588f25bc05eae8ba20d9624536b33addf26b74e8c64ac036291f98f2bc2')
+validpgpkeys=(CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7 # Albert Astals Cid <aacid at kde.org>
+ F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87) # Christoph Feck <cfeck at kde.org>
+
+prepare() {
+# fix build with mediastreamer 2.14 https://phabricator.kde.org/D15956
+ patch -d $pkgname-$pkgver -p1 -i ../kopete-mediastreamer2.14.patch
+# Detect mediastreamer 4.3
+ patch -d $pkgname-$pkgver -p1 -i ../kopete-mediastreamer-4.3.patch
+# fix build with OpenSSL 1.1 (Fedora patch)
+ patch -d $pkgname-$pkgver -p1 -i ../kopete-openssl-1.1.patch
+# support SRTP2
+ patch -d $pkgname-$pkgver -p1 -i ../kopete-srtp2.patch
+}
+
+build() {
+ cmake -B build -S $pkgname-$pkgver \
+ -DBUILD_TESTING=OFF
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
Copied: kopete/repos/testing-x86_64/kopete-mediastreamer-4.3.patch (from rev 403400, kopete/trunk/kopete-mediastreamer-4.3.patch)
===================================================================
--- testing-x86_64/kopete-mediastreamer-4.3.patch (rev 0)
+++ testing-x86_64/kopete-mediastreamer-4.3.patch 2020-12-10 13:25:56 UTC (rev 403401)
@@ -0,0 +1,84 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 55556be4a..8e63c2cee 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -92,8 +92,8 @@ set_package_properties(Libgadu PROPERTIES DESCRIPTION "A library providing suppo
+ find_package(LibMeanwhile QUIET)
+ set_package_properties(LibMeanwhile PROPERTIES DESCRIPTION "A library for protocol support for connection to sametime servers" URL "http://meanwhile.sourceforge.net/" TYPE OPTIONAL PURPOSE "Required for the meanwhile protocol")
+
+-find_package(LiboRTP QUIET)
+-set_package_properties(LiboRTP PROPERTIES DESCRIPTION "oRTP provides an API to send rtp packets" URL "http://www.linphone.org/index.php/eng/code_review/ortp/" TYPE OPTIONAL PURPOSE "Required for the Jabber protocol with libjingle support")
++find_package(ortp QUIET)
++set_package_properties(ortp PROPERTIES DESCRIPTION "oRTP provides an API to send rtp packets" URL "http://www.linphone.org/index.php/eng/code_review/ortp/" TYPE OPTIONAL PURPOSE "Required for the Jabber protocol with libjingle support")
+
+ find_package(LibOTR QUIET)
+ set_package_properties(LibOTR PROPERTIES DESCRIPTION "Library to encrypt messages with off-the-record encryption" URL "http://www.cypherpunks.ca/otr/" TYPE OPTIONAL PURPOSE "Required for the OTR plugin")
+@@ -107,8 +107,8 @@ set_package_properties(LibXml2 PROPERTIES DESCRIPTION "Libraries used to develop
+ find_package(LibXslt QUIET)
+ set_package_properties(LibXslt PROPERTIES DESCRIPTION "A library to transform XML files into other XML files" URL "http://www.xmlsoft.org/XSLT/" TYPE OPTIONAL PURPOSE "Required for the Webpresence plugin")
+
+-find_package(Mediastreamer QUIET)
+-set_package_properties(Mediastreamer PROPERTIES DESCRIPTION "A streaming enginer specialized for voice/video telephony applications" URL "http://www.linphone.org/index.php/eng/code_review/mediastreamer2/" TYPE OPTIONAL PURPOSE "Required for the Jabber protocol with libjingle support")
++find_package(Mediastreamer2 QUIET)
++set_package_properties(Mediastreamer2 PROPERTIES DESCRIPTION "A streaming enginer specialized for voice/video telephony applications" URL "http://www.linphone.org/index.php/eng/code_review/mediastreamer2/" TYPE OPTIONAL PURPOSE "Required for the Jabber protocol with libjingle support")
+
+ find_package(OpenSSL QUIET)
+ set_package_properties(OpenSSL PROPERTIES DESCRIPTION "OpenSSL implementation of SSL" URL "https://www.openssl.org/" TYPE OPTIONAL PURPOSE "Required for the Jabber protocol with libjingle support")
+diff --git a/protocols/CMakeLists.txt b/protocols/CMakeLists.txt
+index 89d36a4e4..5f13ff9d9 100644
+--- a/protocols/CMakeLists.txt
++++ b/protocols/CMakeLists.txt
+@@ -22,7 +22,7 @@ option(WITH_skype "Enable Kopete Skype protocol" ON)
+ set(BUILD_JINGLE FALSE)
+
+ if(OPENSSL_FOUND OR WIN32)
+- if(EXPAT_FOUND AND LIBORTP_FOUND AND SRTP_FOUND AND JSONCPP_FOUND AND MEDIASTREAMER_FOUND AND WITH_libjingle)
++ if(EXPAT_FOUND AND ORTP_FOUND AND SRTP_FOUND AND JSONCPP_FOUND AND MEDIASTREAMER2_FOUND AND WITH_libjingle)
+ message(STATUS "Building jabber libjingle support")
+ set(BUILD_LIBJINGLE TRUE)
+ else()
+diff --git a/protocols/jabber/libjingle/CMakeLists.txt b/protocols/jabber/libjingle/CMakeLists.txt
+index af7c1c3af..de7596615 100644
+--- a/protocols/jabber/libjingle/CMakeLists.txt
++++ b/protocols/jabber/libjingle/CMakeLists.txt
+@@ -286,8 +286,8 @@ set ( call_LIBS
+ ${SRTP_LIBRARY}
+ ${JSONCPP_LIBRARY}
+ ${EXPAT_LIBRARY}
+- ${MEDIASTREAMER_LIBRARIES}
+- ${LIBORTP_LIBRARY}
++ ${MEDIASTREAMER2_LIBRARIES}
++ ${ORTP_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ ${CMAKE_DL_LIBS}
+ )
+diff --git a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
+index bd11027e0..6f9e05a0a 100644
+--- a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
++++ b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
+@@ -34,11 +34,9 @@
+ #ifdef HAVE_LINPHONE
+
+ // LinphoneMediaEngine is a Linphone implementation of MediaEngine
+-extern "C" {
+ #include <mediastreamer2/mediastream.h>
+ #include <mediastreamer2/mssndcard.h>
+ #include <mediastreamer2/msfilter.h>
+-}
+
+ #include "talk/session/phone/linphonemediaengine.h"
+
+diff --git a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.h b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.h
+index 6105ab8cb..f5b5c3b14 100644
+--- a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.h
++++ b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.h
+@@ -35,9 +35,7 @@
+ #include <string>
+ #include <vector>
+
+-extern "C" {
+ #include <mediastreamer2/mediastream.h>
+-}
+
+ #include "talk/base/scoped_ptr.h"
+ #include "talk/session/phone/codec.h"
Copied: kopete/repos/testing-x86_64/kopete-mediastreamer2.14.patch (from rev 403400, kopete/trunk/kopete-mediastreamer2.14.patch)
===================================================================
--- testing-x86_64/kopete-mediastreamer2.14.patch (rev 0)
+++ testing-x86_64/kopete-mediastreamer2.14.patch 2020-12-10 13:25:56 UTC (rev 403401)
@@ -0,0 +1,281 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -34,6 +34,7 @@
+
+ find_package(KF5Contacts ${KCONTACTS_LIB_VERSION} CONFIG REQUIRED)
+ find_package(KF5IdentityManagement ${KCONTACTS_LIB_VERSION} CONFIG REQUIRED)
++find_package(Threads)
+
+ include(KDEInstallDirs)
+ include(KDECompilerSettings NO_POLICY_SCOPE)
+diff --git a/cmake/modules/FindLiboRTP.cmake b/cmake/modules/FindLiboRTP.cmake
+--- a/cmake/modules/FindLiboRTP.cmake
++++ b/cmake/modules/FindLiboRTP.cmake
+@@ -11,7 +11,7 @@
+
+ SET( LIBORTP_FOUND FALSE )
+
+-pkg_check_modules(ortp ortp)
++pkg_check_modules(ORTP ortp)
+
+ FIND_PATH( LIBORTP_INCLUDE_DIR
+ ortp/ortp.h
+@@ -40,7 +40,13 @@
+ if ( run_result EQUAL 0 )
+ # Version OK
+ SET( LIBORTP_FOUND TRUE )
+- MESSAGE( STATUS "Found libortp: ${LIBORTP_LIBRARY}" )
++ MESSAGE( STATUS "Found libortp: ${LIBORTP_LIBRARY} ${ORTP_VERSION}" )
++ IF (ORTP_VERSION VERSION_LESS 1.0.1)
++ SET(ORTP_LESS_1_0_1 TRUE)
++ ELSE (ORTP_VERSION VERSION_LESS 1.0.1)
++ SET(ORTP_LESS_1_0_1 FALSE)
++ ENDIF (ORTP_VERSION VERSION_LESS 1.0.1)
++
+ endif ( run_result EQUAL 0 )
+ endif( compile_result )
+ ENDIF( LIBORTP_INCLUDE_DIR AND LIBORTP_LIBRARY )
+diff --git a/cmake/modules/FindMediastreamer.cmake b/cmake/modules/FindMediastreamer.cmake
+--- a/cmake/modules/FindMediastreamer.cmake
++++ b/cmake/modules/FindMediastreamer.cmake
+@@ -20,17 +20,25 @@
+
+ IF (MEDIASTREAMER_FOUND)
+ IF (NOT MEDIASTREAMER_FIND_QUIETLY)
++
+ MESSAGE(STATUS "Found Mediastreamer: ${MEDIASTREAMER_LIBRARIES} (version: ${MEDIASTREAMER_VERSION})")
++
++ SET(MEDIASTREAMER_LESS_2_9 FALSE)
++ SET(MEDIASTREAMER_LESS_2_11 FALSE)
++ SET(MEDIASTREAMER_LESS_2_14 FALSE)
++
+ IF (MEDIASTREAMER_VERSION VERSION_LESS 2.9)
+ SET(MEDIASTREAMER_LESS_2_9 TRUE)
+- SET(MEDIASTREAMER_LESS_2_11 TRUE)
+- ELSEIF (MEDIASTREAMER_VERSION VERSION_LESS 2.11)
+- SET(MEDIASTREAMER_LESS_2_9 FALSE)
+- SET(MEDIASTREAMER_LESS_2_11 TRUE)
+- ELSE (MEDIASTREAMER_VERSION VERSION_LESS 2.9)
+- SET(MEDIASTREAMER_LESS_2_9 FALSE)
+- SET(MEDIASTREAMER_LESS_2_11 FALSE)
+ ENDIF (MEDIASTREAMER_VERSION VERSION_LESS 2.9)
++
++ IF (MEDIASTREAMER_VERSION VERSION_LESS 2.11)
++ SET(MEDIASTREAMER_LESS_2_11 TRUE)
++ ENDIF (MEDIASTREAMER_VERSION VERSION_LESS 2.11)
++
++ IF (MEDIASTREAMER_VERSION VERSION_LESS 2.14)
++ SET(MEDIASTREAMER_LESS_2_14 TRUE)
++ ENDIF (MEDIASTREAMER_VERSION VERSION_LESS 2.14)
++
+ ENDIF (NOT MEDIASTREAMER_FIND_QUIETLY)
+ ELSE (MEDIASTREAMER_FOUND)
+ IF (MEDIASTREAMER_FIND_REQUIRED)
+diff --git a/protocols/jabber/libjingle/CMakeLists.txt b/protocols/jabber/libjingle/CMakeLists.txt
+--- a/protocols/jabber/libjingle/CMakeLists.txt
++++ b/protocols/jabber/libjingle/CMakeLists.txt
+@@ -51,6 +51,10 @@
+ add_definitions ( -DMEDIASTREAMER_LESS_2_11 )
+ endif ( MEDIASTREAMER_LESS_2_11 )
+
++if ( MEDIASTREAMER_LESS_2_14 )
++ add_definitions ( -DMEDIASTREAMER_LESS_2_14 )
++endif ( MEDIASTREAMER_LESS_2_14 )
++
+ if ( CMAKE_BUILD_TYPE STREQUAL "Debug" )
+ add_definitions ( -D_DEBUG )
+ endif ( CMAKE_BUILD_TYPE STREQUAL "Debug" )
+@@ -284,6 +288,7 @@
+ ${EXPAT_LIBRARY}
+ ${MEDIASTREAMER_LIBRARIES}
+ ${LIBORTP_LIBRARY}
++ ${CMAKE_THREAD_LIBS_INIT}
+ ${CMAKE_DL_LIBS}
+ )
+
+diff --git a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.h b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.h
+--- a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.h
++++ b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.h
+@@ -53,7 +53,11 @@
+ class LinphoneMediaEngine : public MediaEngineInterface {
+ public:
+ LinphoneMediaEngine(const std::string& ringWav, const std::string& callWav);
++#ifdef MEDIASTREAMER_LESS_2_14
+ virtual ~LinphoneMediaEngine() {}
++#else
++ ~LinphoneMediaEngine();
++#endif
+
+ // Implement pure virtual methods of MediaEngine.
+ virtual bool Init() { return true; }
+@@ -97,6 +101,10 @@
+ bool have_speex;
+ bool have_gsm;
+
++#ifndef MEDIASTREAMER_LESS_2_14
++ MSFactory *factory;
++#endif
++
+ private:
+ std::vector<AudioCodec> voice_codecs_;
+ std::vector<VideoCodec> video_codecs_;
+@@ -110,7 +118,11 @@
+ class LinphoneVoiceChannel : public VoiceMediaChannel {
+ public:
+ LinphoneVoiceChannel(LinphoneMediaEngine *eng);
++#ifdef MEDIASTREAMER_LESS_2_14
+ virtual ~LinphoneVoiceChannel();
++#else
++ ~LinphoneVoiceChannel();
++#endif
+
+ // Implement pure virtual methods of VoiceMediaChannel.
+ virtual bool SetRecvCodecs(const std::vector<AudioCodec>& codecs);
+diff --git a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
+--- a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
++++ b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
+@@ -60,18 +60,34 @@
+ ///////////////////////////////////////////////////////////////////////////
+ LinphoneMediaEngine::LinphoneMediaEngine(const std::string& ringWav, const std::string& callWav) : ring_wav_(ringWav), call_wav_(callWav) {
+ ortp_init();
++#ifdef MEDIASTREAMER_LESS_2_14
+ ms_init();
++#else
++ factory = ms_factory_new();
++ ms_factory_init_voip(factory);
++ ms_factory_init_plugins(factory);
++#endif
+
+ #ifndef WIN32
+ char * path = strdup(MSILBC_LIBRARY);
+ char * dirc = dirname(path);
++#ifdef MEDIASTREAMER_LESS_2_14
+ ms_load_plugins(dirc);
++#else
++ ms_factory_load_plugins(factory, dirc);
++#endif
+ free(path);
+ #endif
+
++#ifdef MEDIASTREAMER_LESS_2_14
+ have_ilbc = ms_filter_codec_supported("iLBC");
+ have_speex = ms_filter_codec_supported("speex");
+ have_gsm = ms_filter_codec_supported("gsm");
++#else
++ have_ilbc = ms_factory_codec_supported(factory, "iLBC");
++ have_speex = ms_factory_codec_supported(factory, "speex");
++ have_gsm = ms_factory_codec_supported(factory, "gsm");
++#endif
+
+ if (have_speex) {
+ voice_codecs_.push_back(AudioCodec(110, payload_type_speex_wb.mime_type, payload_type_speex_wb.clock_rate, 0, 1, 8));
+@@ -88,6 +104,14 @@
+ voice_codecs_.push_back(AudioCodec(101, payload_type_telephone_event.mime_type, payload_type_telephone_event.clock_rate, 0, 1, 1));
+ }
+
++#ifndef MEDIASTREAMER_LESS_2_14
++LinphoneMediaEngine::~LinphoneMediaEngine() {
++ ms_factory_uninit_plugins(factory);
++ ms_factory_uninit_voip(factory);
++ ms_factory_destroy(factory);
++}
++#endif
++
+ void LinphoneMediaEngine::Terminate() {
+ fflush(stdout);
+ }
+@@ -149,15 +173,25 @@
+ playport2 = PORT_UNUSED;
+
+ #ifdef _DEBUG
++#ifdef MEDIASTREAMER_LESS_2_14
+ ortp_set_log_level_mask(ORTP_DEBUG|ORTP_MESSAGE|ORTP_WARNING|ORTP_ERROR|ORTP_FATAL);
+ #else
++ ortp_set_log_level_mask(ORTP_LOG_DOMAIN, ORTP_DEBUG|ORTP_MESSAGE|ORTP_WARNING|ORTP_ERROR|ORTP_FATAL);
++#endif
++#else
++#ifdef MEDIASTREAMER_LESS_2_14
+ ortp_set_log_level_mask(ORTP_FATAL);
++#else
++ ortp_set_log_level_mask(ORTP_LOG_DOMAIN, ORTP_FATAL);
++#endif
+ #endif
+
+ #ifdef MEDIASTREAMER_LESS_2_9
+ audio_stream_ = audio_stream_new(-1, 0); /* -1 means that function will choose some free port */
+-#else
++#elif MEDIASTREAMER_LESS_2_14
+ audio_stream_ = audio_stream_new(-1, -1, 0); /* -1 means that function will choose some free port */
++#else
++ audio_stream_ = audio_stream_new(engine_->factory, -1, -1, 0); /* -1 means that function will choose some free port */
+ #endif
+
+ }
+@@ -272,11 +306,22 @@
+ {
+ StopRing();
+
++#ifdef MEDIASTREAMER_LESS_2_14
++ MSSndCardManager *snd_manager = ms_snd_card_manager_get();
+ MSSndCard *playcard = ms_snd_card_manager_get_default_playback_card(ms_snd_card_manager_get());
++#else
++ MSSndCardManager *snd_manager = ms_factory_get_snd_card_manager(engine_->factory);
++ MSSndCard *playcard = ms_snd_card_manager_get_default_playback_card(snd_manager);
++#endif
++
+ if (!playcard)
+ return false;
+
++#ifdef MEDIASTREAMER_LESS_2_14
+ MSSndCard *captcard = ms_snd_card_manager_get_default_capture_card(ms_snd_card_manager_get());
++#else
++ MSSndCard *captcard = ms_snd_card_manager_get_default_capture_card(snd_manager);
++#endif
+ if (!captcard)
+ return false;
+
+@@ -333,8 +378,18 @@
+
+ void LinphoneVoiceChannel::StartRing(bool bIncomingCall)
+ {
++#ifdef MEDIASTREAMER_LESS_2_14
++ MSSndCardManager *snd_manager = ms_snd_card_manager_get();
++#else
++ MSSndCardManager *snd_manager = ms_factory_get_snd_card_manager(engine_->factory);
++#endif
++
+ MSSndCard *sndcard = NULL;
++#ifdef MEDIASTREAMER_LESS_2_14
+ sndcard=ms_snd_card_manager_get_default_card(ms_snd_card_manager_get());
++#else
++ sndcard=ms_snd_card_manager_get_default_card(snd_manager);
++#endif
+ if (sndcard)
+ {
+ if (bIncomingCall)
+@@ -342,7 +397,11 @@
+ if (engine_->GetRingWav().size() > 0)
+ {
+ LOG(LS_VERBOSE) << "incoming ring. sound file: " << engine_->GetRingWav().c_str() << "\n";
++#ifdef MEDIASTREAMER_LESS_2_14
+ ring_stream_ = ring_start (engine_->GetRingWav().c_str(), 1, sndcard);
++#else
++ ring_stream_ = ring_start (engine_->factory, engine_->GetRingWav().c_str(), 1, sndcard);
++#endif
+ }
+ }
+ else
+@@ -350,7 +409,11 @@
+ if (engine_->GetCallWav().size() > 0)
+ {
+ LOG(LS_VERBOSE) << "outgoing ring. sound file: " << engine_->GetCallWav().c_str() << "\n";
++#ifdef MEDIASTREAMER_LESS_2_14
+ ring_stream_ = ring_start (engine_->GetCallWav().c_str(), 1, sndcard);
++#else
++ ring_stream_ = ring_start (engine_->factory, engine_->GetCallWav().c_str(), 1, sndcard);
++#endif
+ }
+ }
+ }
+
Copied: kopete/repos/testing-x86_64/kopete-openssl-1.1.patch (from rev 403400, kopete/trunk/kopete-openssl-1.1.patch)
===================================================================
--- testing-x86_64/kopete-openssl-1.1.patch (rev 0)
+++ testing-x86_64/kopete-openssl-1.1.patch 2020-12-10 13:25:56 UTC (rev 403401)
@@ -0,0 +1,307 @@
+diff -ur kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssladapter.cc kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssladapter.cc
+--- kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssladapter.cc 2017-09-30 12:08:16.000000000 +0200
++++ kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssladapter.cc 2018-01-05 22:49:27.805070408 +0100
+@@ -84,6 +84,7 @@
+ static int socket_new(BIO* h);
+ static int socket_free(BIO* data);
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ static BIO_METHOD methods_socket = {
+ BIO_TYPE_BIO,
+ "socket",
+@@ -98,16 +99,40 @@
+ };
+
+ BIO_METHOD* BIO_s_socket2() { return(&methods_socket); }
++#else
++static BIO_METHOD *methods_socket = NULL;
++
++static const BIO_METHOD * BIO_s_socket2(void) {
++ if (methods_socket == NULL) {
++ methods_socket = BIO_meth_new (BIO_TYPE_BIO | BIO_get_new_index (), "socket");
++ if (methods_socket == NULL ||
++ BIO_meth_set_write (methods_socket, socket_write) ||
++ BIO_meth_set_read (methods_socket, socket_read) ||
++ BIO_meth_set_puts (methods_socket, socket_puts) ||
++ BIO_meth_set_gets (methods_socket, 0) ||
++ BIO_meth_set_ctrl (methods_socket, socket_ctrl) ||
++ BIO_meth_set_create (methods_socket, socket_new) ||
++ BIO_meth_set_destroy (methods_socket, socket_free))
++ return NULL;
++ }
++ return methods_socket;
++}
++#endif
+
+ BIO* BIO_new_socket(talk_base::AsyncSocket* socket) {
++ const BIO_METHOD *socket2 = BIO_s_socket2();
++ if (socket2 == NULL) {
++ return NULL;
++ }
+- BIO* ret = BIO_new(BIO_s_socket2());
++ BIO* ret = BIO_new(socket2);
+ if (ret == NULL) {
+ return NULL;
+ }
+- ret->ptr = socket;
++ BIO_set_data(ret, socket);
+ return ret;
+ }
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ static int socket_new(BIO* b) {
+ b->shutdown = 0;
+ b->init = 1;
+@@ -115,6 +136,14 @@
+ b->ptr = 0;
+ return 1;
+ }
++#else
++static int socket_new(BIO* b) {
++ BIO_set_shutdown(b, 0);
++ BIO_set_init(b, 1);
++ BIO_set_data(b, 0);
++ return 1;
++}
++#endif
+
+ static int socket_free(BIO* b) {
+ if (b == NULL)
+@@ -125,13 +154,11 @@
+ static int socket_read(BIO* b, char* out, int outl) {
+ if (!out)
+ return -1;
+- talk_base::AsyncSocket* socket = static_cast<talk_base::AsyncSocket*>(b->ptr);
++ talk_base::AsyncSocket* socket = static_cast<talk_base::AsyncSocket*>(BIO_get_data(b));
+ BIO_clear_retry_flags(b);
+ int result = socket->Recv(out, outl);
+ if (result > 0) {
+ return result;
+- } else if (result == 0) {
+- b->num = 1;
+ } else if (socket->IsBlocking()) {
+ BIO_set_retry_read(b);
+ }
+@@ -141,7 +168,7 @@
+ static int socket_write(BIO* b, const char* in, int inl) {
+ if (!in)
+ return -1;
+- talk_base::AsyncSocket* socket = static_cast<talk_base::AsyncSocket*>(b->ptr);
++ talk_base::AsyncSocket* socket = static_cast<talk_base::AsyncSocket*>(BIO_get_data(b));
+ BIO_clear_retry_flags(b);
+ int result = socket->Send(in, inl);
+ if (result > 0) {
+@@ -164,7 +191,6 @@
+ case BIO_CTRL_RESET:
+ return 0;
+ case BIO_CTRL_EOF:
+- return b->num;
+ case BIO_CTRL_WPENDING:
+ case BIO_CTRL_PENDING:
+ return 0;
+@@ -696,7 +722,9 @@
+ // We assign this to a local variable, instead of passing the address
+ // directly to ASN1_item_d2i.
+ // See http://readlist.com/lists/openssl.org/openssl-users/0/4761.html.
+- unsigned char* ext_value_data = extension->value->data;
++ ASN1_OCTET_STRING *extension_data = X509_EXTENSION_get_data(extension);
++ unsigned char* ext_value_data = extension_data->data;
++ long length = extension_data->length;
+
+ #if OPENSSL_VERSION_NUMBER >= 0x0090800fL
+ const unsigned char **ext_value_data_ptr =
+@@ -707,10 +735,10 @@
+
+ if (meth->it) {
+ ext_str = ASN1_item_d2i(NULL, ext_value_data_ptr,
+- extension->value->length,
++ length,
+ ASN1_ITEM_ptr(meth->it));
+ } else {
+- ext_str = meth->d2i(NULL, ext_value_data_ptr, extension->value->length);
++ ext_str = meth->d2i(NULL, ext_value_data_ptr, length);
+ }
+
+ STACK_OF(CONF_VALUE)* value = meth->i2v(meth, ext_str, NULL);
+diff -ur kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssldigest.cc kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssldigest.cc
+--- kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssldigest.cc 2017-09-30 12:08:16.000000000 +0200
++++ kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssldigest.cc 2018-01-05 22:49:27.869069361 +0100
+@@ -32,16 +32,16 @@
+ namespace talk_base {
+
+ OpenSSLDigest::OpenSSLDigest(const std::string& algorithm) {
+- EVP_MD_CTX_init(&ctx_);
++ EVP_MD_CTX_init(ctx_);
+ if (GetDigestEVP(algorithm, &md_)) {
+- EVP_DigestInit_ex(&ctx_, md_, NULL);
++ EVP_DigestInit_ex(ctx_, md_, NULL);
+ } else {
+ md_ = NULL;
+ }
+ }
+
+ OpenSSLDigest::~OpenSSLDigest() {
+- EVP_MD_CTX_cleanup(&ctx_);
++ EVP_MD_CTX_destroy(ctx_);
+ }
+
+ size_t OpenSSLDigest::Size() const {
+@@ -55,7 +55,7 @@
+ if (!md_) {
+ return;
+ }
+- EVP_DigestUpdate(&ctx_, buf, len);
++ EVP_DigestUpdate(ctx_, buf, len);
+ }
+
+ size_t OpenSSLDigest::Finish(void* buf, size_t len) {
+@@ -63,8 +63,8 @@
+ return 0;
+ }
+ unsigned int md_len;
+- EVP_DigestFinal_ex(&ctx_, static_cast<unsigned char*>(buf), &md_len);
+- EVP_DigestInit_ex(&ctx_, md_, NULL); // prepare for future Update()s
++ EVP_DigestFinal_ex(ctx_, static_cast<unsigned char*>(buf), &md_len);
++ EVP_DigestInit_ex(ctx_, md_, NULL); // prepare for future Update()s
+ ASSERT(md_len == Size());
+ return md_len;
+ }
+diff -ur kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssldigest.h kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssldigest.h
+--- kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssldigest.h 2017-09-30 12:08:16.000000000 +0200
++++ kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssldigest.h 2018-01-05 22:49:27.869069361 +0100
+@@ -55,7 +55,7 @@
+ size_t* len);
+
+ private:
+- EVP_MD_CTX ctx_;
++ EVP_MD_CTX* ctx_ = EVP_MD_CTX_create();
+ const EVP_MD* md_;
+ };
+
+diff -ur kopete-17.08.3/protocols/jabber/libjingle/talk/base/opensslidentity.cc kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/opensslidentity.cc
+--- kopete-17.08.3/protocols/jabber/libjingle/talk/base/opensslidentity.cc 2017-09-30 12:08:16.000000000 +0200
++++ kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/opensslidentity.cc 2018-01-05 22:49:27.867069394 +0100
+@@ -169,7 +169,12 @@
+ }
+
+ void OpenSSLKeyPair::AddReference() {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ CRYPTO_add(&pkey_->references, 1, CRYPTO_LOCK_EVP_PKEY);
++#else
++ EVP_PKEY_up_ref(pkey_);
++#endif
++
+ }
+
+ #ifdef _DEBUG
+@@ -275,7 +280,11 @@
+ }
+
+ void OpenSSLCertificate::AddReference() {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ CRYPTO_add(&x509_->references, 1, CRYPTO_LOCK_X509);
++#else
++ X509_up_ref(x509_);
++#endif
+ }
+
+ OpenSSLIdentity* OpenSSLIdentity::Generate(const std::string& common_name) {
+diff -ur kopete-17.08.3/protocols/jabber/libjingle/talk/base/opensslstreamadapter.cc kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/opensslstreamadapter.cc
+--- kopete-17.08.3/protocols/jabber/libjingle/talk/base/opensslstreamadapter.cc 2017-09-30 12:08:16.000000000 +0200
++++ kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/opensslstreamadapter.cc 2018-01-05 22:49:27.868069378 +0100
+@@ -87,6 +87,7 @@
+ static int stream_new(BIO* h);
+ static int stream_free(BIO* data);
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ static BIO_METHOD methods_stream = {
+ BIO_TYPE_BIO,
+ "stream",
+@@ -101,17 +102,37 @@
+ };
+
+ static BIO_METHOD* BIO_s_stream() { return(&methods_stream); }
++#else
++static BIO_METHOD *methods_stream = NULL;
++
++static const BIO_METHOD * BIO_s_stream(void) {
++ if (methods_stream == NULL) {
++ methods_stream = BIO_meth_new (BIO_TYPE_BIO | BIO_get_new_index (), "stream");
++ if (methods_stream == NULL ||
++ BIO_meth_set_write (methods_stream, stream_write) ||
++ BIO_meth_set_read (methods_stream, stream_read) ||
++ BIO_meth_set_puts (methods_stream, stream_puts) ||
++ BIO_meth_set_gets (methods_stream, 0) ||
++ BIO_meth_set_ctrl (methods_stream, stream_ctrl) ||
++ BIO_meth_set_create (methods_stream, stream_new) ||
++ BIO_meth_set_destroy (methods_stream, stream_free))
++ return NULL;
++ }
++ return methods_stream;
++}
++#endif
+
+ static BIO* BIO_new_stream(StreamInterface* stream) {
+ BIO* ret = BIO_new(BIO_s_stream());
+ if (ret == NULL)
+ return NULL;
+- ret->ptr = stream;
++ BIO_set_data(ret, stream);
+ return ret;
+ }
+
+ // bio methods return 1 (or at least non-zero) on success and 0 on failure.
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ static int stream_new(BIO* b) {
+ b->shutdown = 0;
+ b->init = 1;
+@@ -119,6 +140,14 @@
+ b->ptr = 0;
+ return 1;
+ }
++#else
++static int stream_new(BIO* b) {
++ BIO_set_shutdown(b, 0);
++ BIO_set_init(b, 1);
++ BIO_set_data(b, 0);
++ return 1;
++}
++#endif
+
+ static int stream_free(BIO* b) {
+ if (b == NULL)
+@@ -129,15 +158,13 @@
+ static int stream_read(BIO* b, char* out, int outl) {
+ if (!out)
+ return -1;
+- StreamInterface* stream = static_cast<StreamInterface*>(b->ptr);
++ StreamInterface* stream = static_cast<StreamInterface*>(BIO_get_data(b));
+ BIO_clear_retry_flags(b);
+ size_t read;
+ int error;
+ StreamResult result = stream->Read(out, outl, &read, &error);
+ if (result == SR_SUCCESS) {
+ return read;
+- } else if (result == SR_EOS) {
+- b->num = 1;
+ } else if (result == SR_BLOCK) {
+ BIO_set_retry_read(b);
+ }
+@@ -147,7 +174,7 @@
+ static int stream_write(BIO* b, const char* in, int inl) {
+ if (!in)
+ return -1;
+- StreamInterface* stream = static_cast<StreamInterface*>(b->ptr);
++ StreamInterface* stream = static_cast<StreamInterface*>(BIO_get_data(b));
+ BIO_clear_retry_flags(b);
+ size_t written;
+ int error;
+@@ -172,7 +199,6 @@
+ case BIO_CTRL_RESET:
+ return 0;
+ case BIO_CTRL_EOF:
+- return b->num;
+ case BIO_CTRL_WPENDING:
+ case BIO_CTRL_PENDING:
+ return 0;
Copied: kopete/repos/testing-x86_64/kopete-srtp2.patch (from rev 403400, kopete/trunk/kopete-srtp2.patch)
===================================================================
--- testing-x86_64/kopete-srtp2.patch (rev 0)
+++ testing-x86_64/kopete-srtp2.patch 2020-12-10 13:25:56 UTC (rev 403401)
@@ -0,0 +1,154 @@
+diff --git a/cmake/modules/FindSRTP.cmake b/cmake/modules/FindSRTP.cmake
+index 4e8baa827..ce9033497 100644
+--- a/cmake/modules/FindSRTP.cmake
++++ b/cmake/modules/FindSRTP.cmake
+@@ -11,8 +11,8 @@ include ( FindPackageHandleStandardArgs )
+ if ( SRTP_INCLUDE_DIR AND SRTP_LIBRARY )
+ set ( SRTP_FOUND true )
+ else ( SRTP_INCLUDE_DIR AND SRTP_LIBRARY )
+- find_path ( SRTP_INCLUDE_DIR srtp.h PATH_SUFFIXES srtp )
+- find_library ( SRTP_LIBRARY NAMES srtp )
++ find_path ( SRTP_INCLUDE_DIR srtp.h PATH_SUFFIXES srtp srtp2 )
++ find_library ( SRTP_LIBRARY NAMES srtp srtp2 )
+
+ if ( SRTP_INCLUDE_DIR AND SRTP_LIBRARY )
+ set ( SRTP_FOUND true )
+diff --git a/protocols/jabber/libjingle/talk/session/phone/srtpfilter.cc b/protocols/jabber/libjingle/talk/session/phone/srtpfilter.cc
+index 7a1cb7866..f5363a36a 100644
+--- a/protocols/jabber/libjingle/talk/session/phone/srtpfilter.cc
++++ b/protocols/jabber/libjingle/talk/session/phone/srtpfilter.cc
+@@ -416,7 +416,7 @@ bool SrtpSession::ProtectRtp(void* p, int in_len, int max_len, int* out_len) {
+ }
+ int seq_num;
+ GetRtpSeqNum(p, in_len, &seq_num);
+- if (err != err_status_ok) {
++ if (err != srtp_err_status_ok) {
+ LOG(LS_WARNING) << "Failed to protect SRTP packet, seqnum="
+ << seq_num << ", err=" << err << ", last seqnum="
+ << last_send_seq_num_;
+@@ -442,7 +442,7 @@ bool SrtpSession::ProtectRtcp(void* p, int in_len, int max_len, int* out_len) {
+ *out_len = in_len;
+ int err = srtp_protect_rtcp(session_, p, out_len);
+ srtp_stat_->AddProtectRtcpResult(err);
+- if (err != err_status_ok) {
++ if (err != srtp_err_status_ok) {
+ LOG(LS_WARNING) << "Failed to protect SRTCP packet, err=" << err;
+ return false;
+ }
+@@ -461,7 +461,7 @@ bool SrtpSession::UnprotectRtp(void* p, int in_len, int* out_len) {
+ if (GetRtpSsrc(p, in_len, &ssrc)) {
+ srtp_stat_->AddUnprotectRtpResult(ssrc, err);
+ }
+- if (err != err_status_ok) {
++ if (err != srtp_err_status_ok) {
+ LOG(LS_WARNING) << "Failed to unprotect SRTP packet, err=" << err;
+ return false;
+ }
+@@ -477,7 +477,7 @@ bool SrtpSession::UnprotectRtcp(void* p, int in_len, int* out_len) {
+ *out_len = in_len;
+ int err = srtp_unprotect_rtcp(session_, p, out_len);
+ srtp_stat_->AddUnprotectRtcpResult(err);
+- if (err != err_status_ok) {
++ if (err != srtp_err_status_ok) {
+ LOG(LS_WARNING) << "Failed to unprotect SRTCP packet, err=" << err;
+ return false;
+ }
+@@ -504,11 +504,11 @@ bool SrtpSession::SetKey(int type, const std::string& cs,
+ memset(&policy, 0, sizeof(policy));
+
+ if (cs == CS_AES_CM_128_HMAC_SHA1_80) {
+- crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtp);
+- crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp);
++ srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtp);
++ srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp);
+ } else if (cs == CS_AES_CM_128_HMAC_SHA1_32) {
+- crypto_policy_set_aes_cm_128_hmac_sha1_32(&policy.rtp); // rtp is 32,
+- crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp); // rtcp still 80
++ srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32(&policy.rtp); // rtp is 32,
++ srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp); // rtcp still 80
+ } else {
+ LOG(LS_WARNING) << "Failed to create SRTP session: unsupported"
+ << " cipher_suite " << cs.c_str();
+@@ -520,7 +520,7 @@ bool SrtpSession::SetKey(int type, const std::string& cs,
+ return false;
+ }
+
+- policy.ssrc.type = static_cast<ssrc_type_t>(type);
++ policy.ssrc.type = static_cast<srtp_ssrc_type_t>(type);
+ policy.ssrc.value = 0;
+ policy.key = const_cast<uint8*>(key);
+ // TODO parse window size from WSH session-param
+@@ -529,7 +529,7 @@ bool SrtpSession::SetKey(int type, const std::string& cs,
+ policy.next = NULL;
+
+ int err = srtp_create(&session_, &policy);
+- if (err != err_status_ok) {
++ if (err != srtp_err_status_ok) {
+ LOG(LS_ERROR) << "Failed to create SRTP session, err=" << err;
+ return false;
+ }
+@@ -543,13 +543,13 @@ bool SrtpSession::Init() {
+ if (!inited_) {
+ int err;
+ err = srtp_init();
+- if (err != err_status_ok) {
++ if (err != srtp_err_status_ok) {
+ LOG(LS_ERROR) << "Failed to init SRTP, err=" << err;
+ return false;
+ }
+
+ err = srtp_install_event_handler(&SrtpSession::HandleEventThunk);
+- if (err != err_status_ok) {
++ if (err != srtp_err_status_ok) {
+ LOG(LS_ERROR) << "Failed to install SRTP event handler, err=" << err;
+ return false;
+ }
+@@ -652,10 +652,10 @@ void SrtpStat::AddProtectRtpResult(uint32 ssrc, int result) {
+ key.ssrc = ssrc;
+ key.mode = SrtpFilter::PROTECT;
+ switch (result) {
+- case err_status_ok:
++ case srtp_err_status_ok:
+ key.error = SrtpFilter::ERROR_NONE;
+ break;
+- case err_status_auth_fail:
++ case srtp_err_status_auth_fail:
+ key.error = SrtpFilter::ERROR_AUTH;
+ break;
+ default:
+@@ -669,14 +669,14 @@ void SrtpStat::AddUnprotectRtpResult(uint32 ssrc, int result) {
+ key.ssrc = ssrc;
+ key.mode = SrtpFilter::UNPROTECT;
+ switch (result) {
+- case err_status_ok:
++ case srtp_err_status_ok:
+ key.error = SrtpFilter::ERROR_NONE;
+ break;
+- case err_status_auth_fail:
++ case srtp_err_status_auth_fail:
+ key.error = SrtpFilter::ERROR_AUTH;
+ break;
+- case err_status_replay_fail:
+- case err_status_replay_old:
++ case srtp_err_status_replay_fail:
++ case srtp_err_status_replay_old:
+ key.error = SrtpFilter::ERROR_REPLAY;
+ break;
+ default:
+diff --git a/protocols/jabber/libjingle/talk/session/phone/srtpfilter.h b/protocols/jabber/libjingle/talk/session/phone/srtpfilter.h
+index 991d4bf42..ff4e5070f 100644
+--- a/protocols/jabber/libjingle/talk/session/phone/srtpfilter.h
++++ b/protocols/jabber/libjingle/talk/session/phone/srtpfilter.h
+@@ -39,11 +39,7 @@
+ #include "talk/session/phone/cryptoparams.h"
+ #include "talk/p2p/base/sessiondescription.h"
+
+-// Forward declaration to avoid pulling in libsrtp headers here
+-struct srtp_event_data_t;
+-struct srtp_ctx_t;
+-typedef srtp_ctx_t* srtp_t;
+-struct srtp_policy_t;
++#include "srtp2/srtp.h"
+
+ namespace cricket {
+
More information about the arch-commits
mailing list