summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-pda/libimobiledevice/files/libimobiledevice-1.1.4-cython.patch')
-rw-r--r--app-pda/libimobiledevice/files/libimobiledevice-1.1.4-cython.patch131
1 files changed, 131 insertions, 0 deletions
diff --git a/app-pda/libimobiledevice/files/libimobiledevice-1.1.4-cython.patch b/app-pda/libimobiledevice/files/libimobiledevice-1.1.4-cython.patch
new file mode 100644
index 000000000000..d1f351d5928b
--- /dev/null
+++ b/app-pda/libimobiledevice/files/libimobiledevice-1.1.4-cython.patch
@@ -0,0 +1,131 @@
+http://bugs.gentoo.org/414063
+
+http://cgit.sukimashita.com/libimobiledevice.git/commit/?id=70dfe8ad1766990386f1db04bbe5a4826bcde4e5
+http://cgit.sukimashita.com/libimobiledevice.git/commit/?id=84235e0834e57551028329723f4510e1dbe7bc11
+http://cgit.sukimashita.com/libimobiledevice.git/commit/?id=849ea066426b8f5f6e6d1aea9804e095edca3b49
+
+--- configure.ac
++++ configure.ac
+@@ -83,10 +83,20 @@
+ CYTHON=false
+ fi
+ if [test "x$CYTHON" != "xfalse"]; then
+- CYTHON_SUB=cython
++ AC_MSG_CHECKING([for libplist Cython bindings])
+ CYTHON_PLIST_INCLUDE_DIR=$($PKG_CONFIG --variable=includedir libplist)/plist/cython
+- AC_SUBST([CYTHON_PLIST_INCLUDE_DIR])
+- cython_python_bindings=yes
++ if [test ! -d "$CYTHON_PLIST_INCLUDE_DIR"]; then
++ CYTHON=false
++ CYTHON_SUB=
++ cython_python_bindings=no
++ AC_MSG_RESULT([no])
++ AC_MSG_WARN([cannot find libplist Cython bindings. You should install your distribution specific libplist Cython bindings package.])
++ else
++ AC_SUBST([CYTHON_PLIST_INCLUDE_DIR])
++ AC_MSG_RESULT([$CYTHON_PLIST_INCLUDE_DIR])
++ CYTHON_SUB=cython
++ cython_python_bindings=yes
++ fi
+ else
+ CYTHON_SUB=
+ cython_python_bindings=no
+--- cython/afc.pxi
++++ cython/afc.pxi
+@@ -162,7 +162,7 @@
+ err = afc_client_free(self._c_client)
+ self.handle_error(err)
+
+- cdef inline BaseError _error(self, int16_t ret):
++ cdef BaseError _error(self, int16_t ret):
+ return AfcError(ret)
+
+ cpdef list get_device_info(self):
+--- cython/imobiledevice.pxd
++++ cython/imobiledevice.pxd
+@@ -51,8 +51,8 @@
+ cdef class PropertyListService(BaseService):
+ cpdef send(self, plist.Node node)
+ cpdef object receive(self)
+- cdef inline int16_t _send(self, plist.plist_t node)
+- cdef inline int16_t _receive(self, plist.plist_t* c_node)
++ cdef int16_t _send(self, plist.plist_t node)
++ cdef int16_t _receive(self, plist.plist_t* c_node)
+
+ cdef extern from "libimobiledevice/lockdown.h":
+ cdef struct lockdownd_client_private:
+--- cython/imobiledevice.pyx
++++ cython/imobiledevice.pyx
+@@ -25,9 +25,8 @@
+ return 0
+ cdef BaseError err = self._error(ret)
+ raise err
+- return -1
+
+- cdef inline BaseError _error(self, int16_t ret): pass
++ cdef BaseError _error(self, int16_t ret): pass
+
+ cdef extern from "libimobiledevice/libimobiledevice.h":
+ ctypedef enum idevice_error_t:
+@@ -211,10 +210,10 @@
+ plist.plist_free(c_node)
+ raise
+
+- cdef inline int16_t _send(self, plist.plist_t node):
++ cdef int16_t _send(self, plist.plist_t node):
+ raise NotImplementedError("send is not implemented")
+
+- cdef inline int16_t _receive(self, plist.plist_t* c_node):
++ cdef int16_t _receive(self, plist.plist_t* c_node):
+ raise NotImplementedError("receive is not implemented")
+
+ cdef class DeviceLinkService(PropertyListService):
+--- cython/mobilesync.pxi
++++ cython/mobilesync.pxi
+@@ -149,10 +149,10 @@
+ plist.plist_free(remapping)
+ raise
+
+- cdef inline int16_t _send(self, plist.plist_t node):
++ cdef int16_t _send(self, plist.plist_t node):
+ return mobilesync_send(self._c_client, node)
+
+- cdef inline int16_t _receive(self, plist.plist_t* node):
++ cdef int16_t _receive(self, plist.plist_t* node):
+ return mobilesync_receive(self._c_client, node)
+
+ cdef inline BaseError _error(self, int16_t ret):
+--- m4/ac_pkg_cython.m4
++++ m4/ac_pkg_cython.m4
+@@ -6,8 +6,11 @@
+ CYTHON=false
+ elif test -n "$1" ; then
+ AC_MSG_CHECKING([for Cython version])
+- [cython_version=`$CYTHON --version 2>&1 | grep 'Cython version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`]
++ [cython_version=`$CYTHON --version 2>&1 | sed 's/Cython version \(.*\)$/\1/g'`]
+ AC_MSG_RESULT([$cython_version])
++
++ # Setup extra version string for parsing
++ [cython_version_stripped=`echo $cython_version | sed 's/\([0-9]\+\)\.\([0-9]\+\)[^\.]*\(\.\([0-9]\+\)\)\?.*/0\1.0\2.0\4/g'`]
+ if test -n "$cython_version" ; then
+ # Calculate the required version number components
+ [required=$1]
+@@ -25,8 +28,9 @@
+ if test -z "$required_patch" ; then
+ [required_patch=0]
+ fi
++
+ # Calculate the available version number components
+- [available=$cython_version]
++ [available=$cython_version_stripped]
+ [available_major=`echo $available | sed 's/[^0-9].*//'`]
+ if test -z "$available_major" ; then
+ [available_major=0]
+@@ -41,6 +45,7 @@
+ if test -z "$available_patch" ; then
+ [available_patch=0]
+ fi
++
+ if test $available_major -gt $required_major || \
+ ( test $available_major -eq $required_major && \
+ test $available_minor -gt $required_minor ) || \