2 Commits

Author SHA256 Message Date
ef7b0ca238 fix gcc15 and other stuff 2025-07-22 00:18:00 +02:00
e1489fd365 Update to 0.14.0:
* Add SM-state serialization mechanism (#239)
* Add support for SCRAM-SHA-512-PLUS (da12298)
* Add support for SSLKEYLOGFILE with OpenSSL (d82df12)
* Fix some issues related to Stream Management (03d4313, 4359536)
* Fix a potential segfault (9fef4b7)
* New API:
  + xmpp_conn_set_sm_callback()
  + xmpp_conn_restore_sm_state()
2025-03-13 15:23:49 +01:00
7 changed files with 144 additions and 35 deletions

View File

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

View File

@@ -0,0 +1,53 @@
From dfb3e868248d86fc0f5553dffbb6f7c367c3c383 Mon Sep 17 00:00:00 2001
From: Steffen Jaeckel <s@jaeckel.eu>
Date: Wed, 26 Mar 2025 14:14:19 +0100
Subject: [PATCH] Use `void*` to store function pointer when compiled as C23.
[0] decided that `rettype (*foo)();` must now be interpreted as
`rettype (*foo)(void);`. Luckily it also allows now to store function
pointers in a `void*` (c.f. Ch. J.5.7).
[0]: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
---
src/common.h | 7 ++++++-
src/handler.c | 2 --
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/common.h b/src/common.h
index 75134bea..c387c0fe 100644
--- a/src/common.h
+++ b/src/common.h
@@ -30,12 +30,17 @@
#include "snprintf.h"
/** handlers **/
+#if (__STDC_VERSION__ >= 202000L)
+typedef void* xmpp_void_handler;
+#else
+typedef int (*xmpp_void_handler)();
+#endif
typedef struct _xmpp_handlist_t xmpp_handlist_t;
struct _xmpp_handlist_t {
/* common members */
int user_handler;
- int (*handler)();
+ xmpp_void_handler handler;
void *userdata;
int enabled; /* handlers are added disabled and enabled after the
* handler chain is processed to prevent stanzas from
diff --git a/src/handler.c b/src/handler.c
index 1c9bf9f7..05772522 100644
--- a/src/handler.c
+++ b/src/handler.c
@@ -25,8 +25,6 @@
#include "common.h"
#include "ostypes.h"
-typedef int (*xmpp_void_handler)();
-
/* Remove item from the list pointed by head, but don't free it.
* There can be a situation when user's handler deletes another handler which
* is the previous in the list. handler_fire_stanza() and handler_fire_timed()

BIN
libstrophe-0.14.0.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQT4rcH5pop6/w4sieQ5Gl78LRcJ3gUCaCn3zAAKCRA5Gl78LRcJ
3pmfAP9mWrzwKU/7hlkSWz5ALvGjCRmVQ5WRx7rh+CGpZEGHcwD/UmaXF3Ae38Zf
L3hCJVz0fKMHBhtEhb3y2kPfRW0Wxws=
=TmDi
-----END PGP SIGNATURE-----

View File

@@ -1,3 +1,23 @@
-------------------------------------------------------------------
Mon Jul 21 22:14:40 UTC 2025 - Andreas Stieger <andreas.stieger@gmx.de>
- fix gcc15 build, add libstrophe-0.14.0-gcc15.patch from upstream
- add upstream signing key
- do not bootstrap during build, and other spec file tweaks
-------------------------------------------------------------------
Thu Mar 13 14:15:02 UTC 2025 - Michael Vetter <mvetter@suse.com>
- Update to 0.14.0:
* Add SM-state serialization mechanism (#239)
* Add support for SCRAM-SHA-512-PLUS (da12298)
* Add support for SSLKEYLOGFILE with OpenSSL (d82df12)
* Fix some issues related to Stream Management (03d4313, 4359536)
* Fix a potential segfault (9fef4b7)
* New API:
+ xmpp_conn_set_sm_callback()
+ xmpp_conn_restore_sm_state()
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Feb 21 14:13:16 UTC 2024 - Michael Vetter <mvetter@suse.com> Wed Feb 21 14:13:16 UTC 2024 - Michael Vetter <mvetter@suse.com>

24
libstrophe.keyring Normal file
View File

@@ -0,0 +1,24 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: F8AD C1F9 A68A 7AFF 0E2C 89E4 391A 5EFC 2D17 09DE
Comment: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
Comment: Steffen Jaeckel <jaeckel@eyet-services.de>
xjMEXnNywRYJKwYBBAHaRw8BAQdASY7Vabe7QB1ByrFRIBKTrxpWtNSM2TmcGjAm
X8EvmyjNMFN0ZWZmZW4gSmFlY2tlbCA8amFlY2tlbC1mbG9zc0BleWV0LXNlcnZp
Y2VzLmRlPsKWBBMWCAA+FiEE+K3B+aaKev8OLInkORpe/C0XCd4FAmJ5GtECGwMF
CRLMAwAFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQORpe/C0XCd7HYAEAggyU
SiPj5TsJ52hvgfwE5sR/kB1qbSlXAtKU1uf/QlQA/15B8qblbMiL/h4gKyDE0aTI
NwkhtlJrkjeA+gYPtWgCzSpTdGVmZmVuIEphZWNrZWwgPGphZWNrZWxAZXlldC1z
ZXJ2aWNlcy5kZT7CmQQTFggAQQIbAwUJEswDAAULCQgHAgYVCgkICwIEFgIDAQIe
AQIXgBYhBPitwfmminr/DiyJ5DkaXvwtFwneBQJieRxKAhkBAAoJEDkaXvwtFwne
kbcA/0KIFIq1U9qNK9c5cKBieRxKh0xWIjRjaREEiavZJIAnAP4ueGtNFe2h8EY7
K1ensaT1ramPN+0kGl0cB0JeVIYUBsKWBBMWCAA+FiEE+K3B+aaKev8OLInkORpe
/C0XCd4FAl5zcsECGwMFCRLMAwAFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQ
ORpe/C0XCd4Q2AEA3fqlF3/h0Mf+MYJlb0jdZ6HL4z+bc1tdnZDVcJdLoPEBAJCY
U4EZHUUqM5OSqyxn9FCLuvvrRao0vDzAV8NL5AMKzjgEXnNywRIKKwYBBAGXVQEF
AQEHQFQJeSRf4mNU9DW7RbCVNKwbqg74LaB9mhMZcCF/zGl+AwEIB8J+BBgWCAAm
FiEE+K3B+aaKev8OLInkORpe/C0XCd4FAl5zcsECGwwFCRLMAwAACgkQORpe/C0X
Cd58iAD/RMV3ZUaNmHaA2wH07bHwfrbrUcDvIkdwUehsRSCkM0IA/idXR2DHyo//
4Ou0tft1M95h58RES5twGh5+N1Bj1swL
=/PVc
-----END PGP PUBLIC KEY BLOCK-----

View File

@@ -2,6 +2,7 @@
# spec file for package libstrophe # spec file for package libstrophe
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 Andreas Stieger <Andreas.Stieger@gmx.de>
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -16,75 +17,79 @@
# #
%define c_lib libstrophe0 %define sover 0
Name: libstrophe Name: libstrophe
Version: 0.13.1 Version: 0.14.0
Release: 0 Release: 0
Summary: A XMPP library for C Summary: A XMPP library for C
License: GPL-3.0-or-later OR MIT License: GPL-3.0-or-later OR MIT
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
URL: http://strophe.im/libstrophe/ URL: https://strophe.im/libstrophe/
Source0: https://github.com/strophe/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz Source0: https://github.com/strophe/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz
BuildRequires: autoconf Source1: https://github.com/strophe/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz.asc
BuildRequires: automake # https://github.com/strophe/libstrophe/blob/0.14.0/README.markdown
BuildRequires: gcc # "Releases are signed with the GPG key with ID F8ADC1F9A68A7AFF0E2C89E4391A5EFC2D1709DE"
BuildRequires: libopenssl-devel Source2: %{name}.keyring
BuildRequires: libtool Patch0: libstrophe-0.14.0-gcc15.patch
BuildRequires: libxml2-devel
BuildRequires: make
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: pkgconfig(libcrypto)
BuildRequires: pkgconfig(libssl)
BuildRequires: pkgconfig(libxml-2.0) >= 2.7
BuildRequires: pkgconfig(zlib)
%description %description
Strophe is a collection of libraries for speaking the XMPP protocol. Strophe is a collection of libraries for speaking the XMPP protocol.
While most XMPP libraries and implementations are focused on chat-based applications, While most XMPP libraries and implementations are focused on chat-based
Strophe takes a grander view. applications, Strophe takes a grander view.
It has been used to implement real-time games, notification systems, search engines, It has been used to implement real-time games, notification systems, search
as well as traditional instant messaging. engines, as well as traditional instant messaging.
The implementations are production ready, well documented, The implementations are production ready, well documented, easy to use, and
easy to use, and easy to extend. easy to extend.
%package -n libstrophe-devel %package devel
Summary: Development files for libstrophe Summary: Development files for libstrophe
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: libstrophe0 = %{version} Requires: %{name}%{sover} = %{version}
%description -n libstrophe-devel %description devel
Development files and headers for libstrophe Development files and headers for libstrophe
%package -n %{c_lib} %package -n %{name}%{sover}
Summary: A XMPP library for C Summary: A XMPP library for C
Group: System/Libraries Group: System/Libraries
%description -n %{c_lib} %description -n %{name}%{sover}
The libstrophe library is a XMPP library written in C. The libstrophe library is a XMPP library written in C.
%prep %prep
%setup -q %autosetup -p1
%build %build
./bootstrap.sh %configure \
%configure --with-libxml2 --with-libxml2 \
make %{?_smp_mflags} --disable-static \
%{nil}
%make_build
%install %install
%make_install %make_install
rm %{buildroot}%{_libdir}/libstrophe.{a,la} find %{buildroot} -type f -name "*.la" -delete -print
%check %check
make check %make_build check
%post -n libstrophe0 -p /sbin/ldconfig %ldconfig_scriptlets -n %{name}%{sover}
%postun -n libstrophe0 -p /sbin/ldconfig
%files -n libstrophe0 %files -n %{name}%{sover}
%license COPYING %license COPYING
%doc ChangeLog README %doc ChangeLog README
%{_libdir}/libstrophe.so.* %{_libdir}/libstrophe.so.%{sover}{,.*}
%files -n libstrophe-devel %files devel
%license COPYING
%{_libdir}/libstrophe.so %{_libdir}/libstrophe.so
%{_includedir}/strophe.h %{_includedir}/strophe.h
%{_libdir}/pkgconfig/libstrophe.pc %{_libdir}/pkgconfig/libstrophe.pc