[packages/libsyncml] - fixes for openobex 1.6+
qboosh
qboosh at pld-linux.org
Sat Sep 6 21:09:04 CEST 2025
commit 5beab2dcf545fd8891a877f1822c7fba855f3578
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Sat Sep 6 21:11:53 2025 +0200
- fixes for openobex 1.6+
libsyncml-openobex.patch | 81 ++++++++++++++++++++++++++++++++++++++++++++++++
libsyncml.spec | 17 +++++++---
2 files changed, 93 insertions(+), 5 deletions(-)
---
diff --git a/libsyncml.spec b/libsyncml.spec
index c507bdf..31c8c9c 100644
--- a/libsyncml.spec
+++ b/libsyncml.spec
@@ -5,12 +5,13 @@ Version: 0.5.4
Release: 3
License: LGPL 2.1+
Group: Libraries
-Source0: https://downloads.sourceforge.net/project/libsyncml/libsyncml/%{version}/%{name}-%{version}.tar.bz2
+Source0: https://downloads.sourceforge.net/libsyncml/%{name}-%{version}.tar.bz2
# Source0-md5: b8ce1f222cccc12acdcd6807d65c1aea
Patch0: wbxml.patch
-URL: http://libsyncml.opensync.org/
+Patch1: %{name}-openobex.patch
+# dead
+#URL: http://libsyncml.opensync.org/
BuildRequires: bluez-libs-devel
-BuildRequires: check
BuildRequires: cmake
BuildRequires: glib2-devel >= 1:2.12
BuildRequires: libsoup-devel >= 2.2.91
@@ -19,6 +20,7 @@ BuildRequires: libxml2-devel
BuildRequires: openobex-devel >= 1.3
BuildRequires: pkgconfig
BuildRequires: rpmbuild(macros) >= 1.385
+BuildRequires: sed >= 4.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
@@ -42,11 +44,16 @@ Pliki nagłówkowe biblioteki libsyncml.
%prep
%setup -q
%patch -P0 -p1
+%patch -P1 -p1
+
+# CHECK_FOUND resets ENABLE_UNIT_TEST to ON
+%{__sed} -i '/FIND_PACKAGE( Check )/d' CMakeLists.txt
%build
install -d build
cd build
-%cmake ../
+%cmake .. \
+ -DENABLE_UNIT_TEST=OFF
%{__make}
@@ -67,7 +74,7 @@ rm -rf $RPM_BUILD_ROOT
%doc AUTHORS ChangeLog README
%attr(755,root,root) %{_bindir}/syncml*
%attr(755,root,root) %{_libdir}/libsyncml.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libsyncml.so.2
+%ghost %{_libdir}/libsyncml.so.2
%files devel
%defattr(644,root,root,755)
diff --git a/libsyncml-openobex.patch b/libsyncml-openobex.patch
new file mode 100644
index 0000000..4aeb118
--- /dev/null
+++ b/libsyncml-openobex.patch
@@ -0,0 +1,81 @@
+--- libsyncml-0.5.4/libsyncml/transports/obex_client.c.orig 2009-06-04 11:16:56.000000000 +0200
++++ libsyncml-0.5.4/libsyncml/transports/obex_client.c 2025-09-06 20:31:42.040412026 +0200
+@@ -716,7 +716,7 @@ static SmlBool smlTransportObexClientSet
+ env->obexhandle = OBEX_Init(OBEX_TRANS_BLUETOOTH, smlTransportObexClientEvent, 0);
+ break;
+ case SML_TRANSPORT_CONNECTION_TYPE_SERIAL:
+- env->obexhandle = OBEX_Init(OBEX_TRANS_CUST, smlTransportObexClientEvent, 0);
++ env->obexhandle = OBEX_Init(OBEX_TRANS_CUSTOM, smlTransportObexClientEvent, 0);
+ break;
+ case SML_TRANSPORT_CONNECTION_TYPE_USB:
+ env->obexhandle = OBEX_Init(OBEX_TRANS_USB, smlTransportObexClientEvent, 0);
+@@ -739,6 +739,7 @@ static SmlBool smlTransportObexClientSet
+ smlTransportObexClientCableConnect,
+ smlTransportObexClientCableDisconnect,
+ NULL,
++ NULL,
+ smlTransportObexClientCableWrite,
+ obex_cable_handleinput,
+ env};
+@@ -843,7 +844,7 @@ static void smlTransportObexClientConnec
+ SmlTransportObexClientEnv *env = data;
+ int fd = 0;
+ SmlError *error = NULL;
+- unsigned int obex_intf_cnt;
++ int obex_intf_cnt;
+ obex_interface_t *obex_intf;
+ env->isDisconnected = FALSE;
+
+@@ -882,22 +883,25 @@ static void smlTransportObexClientConnec
+ } else if (env->type == SML_TRANSPORT_CONNECTION_TYPE_USB) {
+ smlTrace(TRACE_INTERNAL, "%s: connecting to usb interface %i", __func__, env->port);
+
+- obex_intf_cnt = OBEX_FindInterfaces(env->obexhandle, &obex_intf);
++ obex_intf_cnt = OBEX_EnumerateInterfaces(env->obexhandle); // , &obex_intf);
+ smlTrace(TRACE_INTERNAL, "%s: found %i interfaces", __func__, obex_intf_cnt);
+
+ if (obex_intf_cnt <= 0) {
+ smlErrorSet(&error, SML_ERROR_GENERIC, "There are no valid USB interfaces.");
+ goto error;
+ } else if (env->port >= obex_intf_cnt) {
++ OBEX_FreeInterfaces(env->obexhandle);
+ smlErrorSet(&error, SML_ERROR_GENERIC, "Unable to find the USB interface number %i", env->port);
+ goto error;
+ } else {
+- if (GET_OBEX_RESULT(OBEX_InterfaceConnect(env->obexhandle, &obex_intf[env->port])) < 0) {
++ if (GET_OBEX_RESULT(OBEX_InterfaceConnect(env->obexhandle, OBEX_GetInterfaceByIndex(env->obexhandle, env->port))) < 0) {
++ OBEX_FreeInterfaces(env->obexhandle);
+ smlErrorSet(&error, SML_ERROR_GENERIC,
+ "The interface cannot be connected. %s (%i).",
+ strerror(errno), errno);
+ goto error;
+ }
++ OBEX_FreeInterfaces(env->obexhandle);
+ }
+ smlTrace(TRACE_INTERNAL, "%s: usb connect done", __func__);
+ } else if (env->type == SML_TRANSPORT_CONNECTION_TYPE_BLUETOOTH) {
+--- libsyncml-0.5.4/tools/syncml-ds-tool.c.orig 2009-06-04 11:16:56.000000000 +0200
++++ libsyncml-0.5.4/tools/syncml-ds-tool.c 2025-09-06 20:40:45.294135634 +0200
+@@ -760,14 +760,17 @@ void list_interfaces()
+ if (geteuid() != 0)
+ fprintf(stderr, "Superuser privileges are required to access complete USB information.\n");
+
+- interfaces_number = OBEX_FindInterfaces(handle, &obex_intf);
++ interfaces_number = OBEX_EnumerateInterfaces(handle); // , &obex_intf);
+ printf("Found %d USB OBEX interfaces\n", interfaces_number);
+
+- for (i = 0; i < interfaces_number; i++)
++ for (i = 0; i < interfaces_number; i++) {
++ obex_interface_t *obex_intf = OBEX_GetInterfaceByIndex(handle, i);
+ printf("Interface %d:\n\tManufacturer: %s\n\tProduct: %s\n\tInterface description: %s\n", i,
+- obex_intf[i].usb.manufacturer,
+- obex_intf[i].usb.product,
+- obex_intf[i].usb.control_interface);
++ obex_intf->usb.manufacturer,
++ obex_intf->usb.product,
++ obex_intf->usb.control_interface);
++ }
++ OBEX_FreeInterfaces(handle);
+
+ printf("Use '-u interface_number' to connect\n");
+ OBEX_Cleanup(handle);
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/libsyncml.git/commitdiff/5beab2dcf545fd8891a877f1822c7fba855f3578
More information about the pld-cvs-commit
mailing list