dev-python/pycapnp: Fix build with capnproto 0.6
authorAlexis Ballier <aballier@gentoo.org>
Wed, 24 May 2017 11:05:08 +0000 (13:05 +0200)
committerAlexis Ballier <aballier@gentoo.org>
Wed, 24 May 2017 11:07:16 +0000 (13:07 +0200)
Package-Manager: Portage-2.3.6, Repoman-2.3.2

dev-python/pycapnp/files/capn06.patch [new file with mode: 0644]
dev-python/pycapnp/pycapnp-0.5.12.ebuild

diff --git a/dev-python/pycapnp/files/capn06.patch b/dev-python/pycapnp/files/capn06.patch
new file mode 100644 (file)
index 0000000..e1c1709
--- /dev/null
@@ -0,0 +1,29 @@
+Index: pycapnp-0.5.12/capnp/includes/capnp_cpp.pxd
+===================================================================
+--- pycapnp-0.5.12.orig/capnp/includes/capnp_cpp.pxd
++++ pycapnp-0.5.12/capnp/includes/capnp_cpp.pxd
+@@ -100,8 +100,10 @@ cdef extern from "kj/array.h" namespace
+ ctypedef Promise[PyArray] PyPromiseArray
+ 
+ cdef extern from "kj/time.h" namespace " ::kj":
++    cdef cppclass Unsafe_:
++        Unsafe_()
+     cdef cppclass Duration:
+-        Duration(int64_t)
++        Duration(int64_t, Unsafe_)
+     # cdef cppclass TimePoint:
+     #     TimePoint(Duration)
+     cdef cppclass Timer:
+Index: pycapnp-0.5.12/capnp/lib/capnp.pyx
+===================================================================
+--- pycapnp-0.5.12.orig/capnp/lib/capnp.pyx
++++ pycapnp-0.5.12/capnp/lib/capnp.pyx
+@@ -1688,7 +1688,7 @@ cdef class _Timer:
+         return self
+ 
+     cpdef after_delay(self, time) except +reraise_kj_exception:
+-        return _VoidPromise()._init(self.thisptr.afterDelay(capnp.Duration(time)))
++        return _VoidPromise()._init(self.thisptr.afterDelay(capnp.Duration(time, capnp.Unsafe_())))
+ 
+ def getTimer():
+     return _Timer()._init(helpers.getTimer(C_DEFAULT_EVENT_LOOP_GETTER().thisptr))
index 95802eec8db6ac6a34c67d0db443ebecc61aa5a6..4fb238062a912ea731b4bf09fd15c9ec8b10874d 100644 (file)
@@ -20,3 +20,11 @@ RDEPEND="dev-libs/capnproto"
 DEPEND="${RDEPEND}
        dev-python/cython[${PYTHON_USEDEP}]
 "
+
+PATCHES=( "${FILESDIR}/capn06.patch" )
+
+src_prepare() {
+       distutils-r1_src_prepare
+       # regen cython files
+       rm -f capnp/lib/capnp.cpp || die
+}