https://bugs.gentoo.org/898666 https://github.com/libimobiledevice/libimobiledevice/pull/1521 --- a/cython/installation_proxy.pxi +++ b/cython/installation_proxy.pxi @@ -27,7 +27,7 @@ cdef extern from "libimobiledevice/installation_proxy.h": instproxy_error_t instproxy_restore(instproxy_client_t client, char *appid, plist.plist_t client_options, instproxy_status_cb_t status_cb, void *user_data) instproxy_error_t instproxy_remove_archive(instproxy_client_t client, char *appid, plist.plist_t client_options, instproxy_status_cb_t status_cb, void *user_data) -cdef void instproxy_notify_cb(plist.plist_t command, plist.plist_t status, void *py_callback) with gil: +cdef void instproxy_notify_cb(plist.plist_t command, plist.plist_t status, void *py_callback) noexcept: (py_callback)(plist.plist_t_to_node(command, False), plist.plist_t_to_node(status, False)) cdef class InstallationProxyError(BaseError): From deba42ba94c13517ebdbe7a4d8177ab47a9589a5 Mon Sep 17 00:00:00 2001 From: IridiumXOR Date: Thu, 11 Jan 2024 22:00:39 +0100 Subject: [PATCH 2/3] Fix np_notify_cb for Cython 3 noexcept error --- a/cython/notification_proxy.pxi +++ b/cython/notification_proxy.pxi @@ -70,7 +70,7 @@ NP_ITDBPREP_DID_END = C_NP_ITDBPREP_DID_END NP_LANGUAGE_CHANGED = C_NP_LANGUAGE_CHANGED NP_ADDRESS_BOOK_PREF_CHANGED = C_NP_ADDRESS_BOOK_PREF_CHANGED -cdef void np_notify_cb(const_char_ptr notification, void *py_callback): +cdef void np_notify_cb(const_char_ptr notification, void *py_callback) noexcept: (py_callback)(notification) cdef class NotificationProxyError(BaseError): From 7739a4bf61a0fa549646d6062978f126a1ff06fa Mon Sep 17 00:00:00 2001 From: IridiumXOR Date: Thu, 11 Jan 2024 22:03:07 +0100 Subject: [PATCH 3/3] Fix idevice_event_cb for Cython 3 noexcept error --- a/cython/imobiledevice.pyx +++ b/cython/imobiledevice.pyx @@ -94,7 +94,7 @@ cdef class iDeviceEvent: def __get__(self): return self._c_event.conn_type -cdef void idevice_event_cb(const_idevice_event_t c_event, void *user_data) with gil: +cdef void idevice_event_cb(const_idevice_event_t c_event, void *user_data) noexcept: cdef iDeviceEvent event = iDeviceEvent.__new__(iDeviceEvent) event._c_event = c_event (user_data)(event)