[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