summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-python/pycapnp/files/capn06.patch29
-rw-r--r--dev-python/pycapnp/pycapnp-0.5.12.ebuild8
2 files changed, 37 insertions, 0 deletions
diff --git a/dev-python/pycapnp/files/capn06.patch b/dev-python/pycapnp/files/capn06.patch
new file mode 100644
index 000000000000..e1c1709fe8c0
--- /dev/null
+++ b/dev-python/pycapnp/files/capn06.patch
@@ -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))
diff --git a/dev-python/pycapnp/pycapnp-0.5.12.ebuild b/dev-python/pycapnp/pycapnp-0.5.12.ebuild
index 95802eec8db6..4fb238062a91 100644
--- a/dev-python/pycapnp/pycapnp-0.5.12.ebuild
+++ b/dev-python/pycapnp/pycapnp-0.5.12.ebuild
@@ -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
+}