[packages/liblinphone] - updated to 5.4.17; added patch for soci 4.1.x compatibility

qboosh qboosh at pld-linux.org
Wed May 21 07:32:54 CEST 2025


commit 07b95cee2774b881397d38f692d4a4436b62078c
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Wed May 21 06:09:43 2025 +0200

    - updated to 5.4.17; added patch for soci 4.1.x compatibility

 liblinphone-soci.patch | 53 +++++++++++++++++++++++++++++++++++++++++++
 liblinphone.spec       | 61 ++++++++++++++++++++++++++------------------------
 2 files changed, 85 insertions(+), 29 deletions(-)
---
diff --git a/liblinphone.spec b/liblinphone.spec
index fb203e9..28c5774 100644
--- a/liblinphone.spec
+++ b/liblinphone.spec
@@ -9,23 +9,24 @@
 Summary:	Linphone Internet Phone libraries
 Summary(pl.UTF-8):	Biblioteki telefonu internetowego Linphone
 Name:		liblinphone
-Version:	5.3.104
+Version:	5.4.17
 Release:	1
 License:	AGPL v3+ or proprietary
 Group:		Applications/Communications
 #Source0Download: https://gitlab.linphone.org/BC/public/liblinphone/-/tags
 Source0:	https://gitlab.linphone.org/BC/public/liblinphone/-/archive/%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5:	0d8f2df10989765e9fdc686f0061e12d
+# Source0-md5:	59998279524f56f7324f28e06c366c7d
 Patch0:		%{name}-wrappers.patch
 Patch1:		%{name}-jsoncpp.patch
+Patch2:		%{name}-soci.patch
 Patch4:		%{name}-zxing.patch
 URL:		https://www.linphone.org/technical-corner/liblinphone
 # base and tester components
-BuildRequires:	bctoolbox-devel >= 5.3.0
-BuildRequires:	belcard-devel >= 5.3.0
-BuildRequires:	belle-sip-devel >= 5.3.0
-BuildRequires:	belr-devel >= 5.3.0
-%{?with_lime:BuildRequires:	bzrtp-devel >= 5.3.0}
+BuildRequires:	bctoolbox-devel >= 5.4.0
+BuildRequires:	belcard-devel >= 5.4.0
+BuildRequires:	belle-sip-devel >= 5.4.0
+BuildRequires:	belr-devel >= 5.4.0
+%{?with_lime:BuildRequires:	bzrtp-devel >= 5.4.0}
 BuildRequires:	cmake >= 3.22
 # required not only for docs, but also C++ wrappers
 BuildRequires:	doxygen
@@ -35,10 +36,10 @@ BuildRequires:	libsoci-devel >= 4.0
 BuildRequires:	libsoci-sqlite3-devel >= 4.0
 BuildRequires:	libstdc++-devel >= 6:7
 BuildRequires:	libxml2-devel >= 2.0
-%{?with_lime:BuildRequires:	lime-devel >= 5.3.0}
-BuildRequires:	mediastreamer-devel >= 5.3.0
+%{?with_lime:BuildRequires:	lime-devel >= 5.4.0}
+BuildRequires:	mediastreamer-devel >= 5.4.0
 %{?with_ldap:BuildRequires:	openldap-devel}
-BuildRequires:	ortp-devel >= 5.3.0
+BuildRequires:	ortp-devel >= 5.4.0
 BuildRequires:	pkgconfig
 BuildRequires:	python3 >= 1:3
 # to generate C++ wrappers
@@ -52,14 +53,14 @@ BuildRequires:	xerces-c-devel
 BuildRequires:	zxing-cpp-nu-devel >= 1.4.0
 BuildRequires:	zlib-devel >= 1.2.3
 Requires(post,postun):	/sbin/ldconfig
-Requires:	bctoolbox >= 5.3.0
-Requires:	belcard >= 5.3.0
-Requires:	belle-sip >= 5.3.0
-Requires:	belr >= 5.3.0
-%{?with_lime:Requires:	bzrtp >= 5.3.0}
-%{?with_lime:Requires:	lime >= 5.3.0}
-Requires:	mediastreamer >= 5.3.0
-Requires:	ortp >= 5.3.0
+Requires:	bctoolbox >= 5.4.0
+Requires:	belcard >= 5.4.0
+Requires:	belle-sip >= 5.4.0
+Requires:	belr >= 5.4.0
+%{?with_lime:Requires:	bzrtp >= 5.4.0}
+%{?with_lime:Requires:	lime >= 5.4.0}
+Requires:	mediastreamer >= 5.4.0
+Requires:	ortp >= 5.4.0
 Requires:	sqlite3 >= 3.7.0
 Requires:	zlib >= 1.2.3
 Obsoletes:	linphone-libs < 4
@@ -89,16 +90,16 @@ Summary:	Header files for Linphone library
 Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki Linphone
 Group:		Development/Libraries
 Requires:	%{name} = %{version}-%{release}
-Requires:	bctoolbox-devel >= 5.3.0
-Requires:	belle-sip-devel >= 5.3.0
-Requires:	belr-devel >= 5.3.0
-%{?with_lime:Requires:	bzrtp-devel >= 5.3.0}
+Requires:	bctoolbox-devel >= 5.4.0
+Requires:	belle-sip-devel >= 5.4.0
+Requires:	belr-devel >= 5.4.0
+%{?with_lime:Requires:	bzrtp-devel >= 5.4.0}
 Requires:	jsoncpp-devel
 Requires:	libstdc++-devel >= 6:7
 Requires:	libxml2-devel >= 2.0
-%{?with_lime:Requires:	lime-devel >= 5.3.0}
-Requires:	mediastreamer-devel >= 5.3.0
-Requires:	ortp-devel >= 5.3.0
+%{?with_lime:Requires:	lime-devel >= 5.4.0}
+Requires:	mediastreamer-devel >= 5.4.0
+Requires:	ortp-devel >= 5.4.0
 Requires:	sqlite3-devel >= 3.7.0
 Requires:	zlib-devel >= 1.2.3
 Obsoletes:	linphone-devel < 4
@@ -206,6 +207,7 @@ pochodzącego z GNOME.
 %setup -q
 %patch -P 0 -p1
 %patch -P 1 -p1
+%patch -P 2 -p1
 %patch -P 4 -p1
 
 %build
@@ -250,7 +252,7 @@ rm -rf $RPM_BUILD_ROOT
 %{__rm} $RPM_BUILD_ROOT%{_bindir}/linphone-daemon-pipetest
 
 # packaged as %doc
-%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/liblinphone-5.3.0
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/liblinphone-5.4.0
 
 # omitted by cmake install
 install -d $RPM_BUILD_ROOT%{_mandir}/{man1,cs/man1}
@@ -306,9 +308,10 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/liblinphone.so.10
 %dir %{_libdir}/liblinphone
 %dir %{_libdir}/liblinphone/plugins
-%{_datadir}/belr/grammars/cpim_grammar
-%{_datadir}/belr/grammars/ics_grammar
-%{_datadir}/belr/grammars/identity_grammar
+%{_datadir}/belr/grammars/cpim_grammar.belr
+%{_datadir}/belr/grammars/ics_grammar.belr
+%{_datadir}/belr/grammars/identity_grammar.belr
+%{_datadir}/belr/grammars/mwi_grammar.belr
 %{_datadir}/linphone
 %{_datadir}/sounds/linphone
 
diff --git a/liblinphone-soci.patch b/liblinphone-soci.patch
new file mode 100644
index 0000000..1bc61d6
--- /dev/null
+++ b/liblinphone-soci.patch
@@ -0,0 +1,53 @@
+soci 4.1.x removed use(temporary)
+--- liblinphone-5.4.17/src/db/main-db.cpp.orig	2025-05-15 12:10:44.000000000 +0200
++++ liblinphone-5.4.17/src/db/main-db.cpp	2025-05-20 18:42:07.239298152 +0200
+@@ -1824,12 +1824,13 @@ void MainDbPrivate::updateConferenceChat
+ 	bool stateRequiresUpdatingParticipants = false;
+ 	if (state == ChatMessage::State::NotDelivered) {
+ 		const auto &meAddress = chatRoom->getMe()->getAddress();
++		const auto &eventId = chatMessage->getStorageId();
+ 		long long meAddressId = insertSipAddress(meAddress);
+ 		static const string query =
+ 		    "SELECT chat_message_participant.state FROM chat_message_participant WHERE event_id = :eventId AND "
+ 		    "chat_message_participant.participant_sip_address_id = :meAddressId";
+ 		soci::rowset<soci::row> rows =
+-		    (session->prepare << query, soci::use(chatMessage->getStorageId()), soci::use(meAddressId));
++		    (session->prepare << query, soci::use(eventId), soci::use(meAddressId));
+ 		ChatMessage::State meParticipantState = ChatMessage::State::Idle;
+ 		for (const auto &row : rows) {
+ 			meParticipantState = static_cast<ChatMessage::State>(row.get<int>(0));
+@@ -1852,7 +1853,8 @@ void MainDbPrivate::updateConferenceChat
+ 		                            " FROM sip_address, chat_message_participant"
+ 		                            " WHERE event_id = :eventId"
+ 		                            " AND sip_address.id = chat_message_participant.participant_sip_address_id";
+-		soci::rowset<soci::row> rows = (session->prepare << query, soci::use(chatMessage->getStorageId()));
++		const auto &eventId = chatMessage->getStorageId();
++		soci::rowset<soci::row> rows = (session->prepare << query, soci::use(eventId));
+ 
+ 		// Use list of participants the client is sure have received the message and not the actual list of participants
+ 		// being part of the chatroom
+@@ -4982,10 +4984,11 @@ list<shared_ptr<ChatMessage>> MainDb::ge
+ 		L_D();
+ 		list<shared_ptr<ChatMessage>> chatMessages;
+ 		auto epoch = d->dbSession.getTimeWithSociIndicator(0);
++		const auto maxMessages = EPHEMERAL_MESSAGE_TASKS_MAX_NB;
+ 		soci::rowset<soci::row> rows =
+ 		    getBackend() == MainDb::Backend::Sqlite3
+ 		        ? (d->dbSession.getBackendSession()->prepare << query, soci::use(epoch.first),
+-		           soci::use(EPHEMERAL_MESSAGE_TASKS_MAX_NB))
++		           soci::use(maxMessages))
+ 		        : (d->dbSession.getBackendSession()->prepare << query, soci::use(epoch.first));
+ 		for (const auto &row : rows) {
+ 			const long long &dbChatRoomId = d->dbSession.resolveId(row, (int)row.size() - 1);
+@@ -5755,9 +5758,10 @@ list<shared_ptr<EventLog>> MainDb::getHi
+ 			const EventLogPrivate *dEventLog = event->getPrivate();
+ 			MainDbKeyPrivate *dEventKey = static_cast<MainDbKey &>(dEventLog->dbKey).getPrivate();
+ 			const long long &dbEventId = dEventKey->storageId;
++			const auto before_plus_1 = before + 1, after_plus_1 = after + 1;
+ 
+ 			soci::rowset<soci::row> rows = (d->dbSession.getBackendSession()->prepare << query, soci::use(dbChatRoomId),
+-			                                soci::use(dbEventId), soci::use(before + 1), soci::use(after + 1));
++			                                soci::use(dbEventId), soci::use(before_plus_1), soci::use(after_plus_1));
+ 
+ 			for (const auto &row : rows) {
+ 				shared_ptr<EventLog> event = d->selectGenericConferenceEvent(chatRoom, row);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/liblinphone.git/commitdiff/07b95cee2774b881397d38f692d4a4436b62078c



More information about the pld-cvs-commit mailing list