summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2020-07-29 16:45:12 +0200
committerAlexis Ballier <aballier@gentoo.org>2020-07-29 16:45:23 +0200
commit42b36a01c6a1020fb97ef1e1ed03c891ec718b9b (patch)
tree804b5a5816b2a9eadf08426e2bbfada4781a370c
parentdev-ros/rospy_tutorials: set proper search path for tests (diff)
downloadgentoo-42b36a01c6a1020fb97ef1e1ed03c891ec718b9b.tar.gz
gentoo-42b36a01c6a1020fb97ef1e1ed03c891ec718b9b.tar.bz2
gentoo-42b36a01c6a1020fb97ef1e1ed03c891ec718b9b.zip
dev-python/python_orocos_kdl: Fix build with latest sip
Patch from upstream backported by Victor Mataré. Closes: https://bugs.gentoo.org/728618 Package-Manager: Portage-3.0.1, Repoman-2.3.23 Signed-off-by: Alexis Ballier <aballier@gentoo.org>
-rw-r--r--dev-python/python_orocos_kdl/files/0001-Declare-assignment-operator-private-for-SIP-Closes-2.patch134
-rw-r--r--dev-python/python_orocos_kdl/python_orocos_kdl-1.4.0-r1.ebuild1
2 files changed, 135 insertions, 0 deletions
diff --git a/dev-python/python_orocos_kdl/files/0001-Declare-assignment-operator-private-for-SIP-Closes-2.patch b/dev-python/python_orocos_kdl/files/0001-Declare-assignment-operator-private-for-SIP-Closes-2.patch
new file mode 100644
index 000000000000..b02f18747cfe
--- /dev/null
+++ b/dev-python/python_orocos_kdl/files/0001-Declare-assignment-operator-private-for-SIP-Closes-2.patch
@@ -0,0 +1,134 @@
+https://bugs.gentoo.org/728618
+
+Backported by Victor Mataré
+
+From 30e5057f01627539dd170a1e831bb14278433deb Mon Sep 17 00:00:00 2001
+From: Jochen Sprickerhof <git@jochen.sprickerhof.de>
+Date: Fri, 26 Jun 2020 17:04:12 +0200
+Subject: [PATCH] Declare assignment operator private for SIP (Closes: #260)
+
+Starting with v4.19.23 SIP expects a working operator= or one marked
+private explicitly. All classes in this PR have a reference member
+(&chain) resulting in the compiler deleting the default assignment
+operator. This PR makes this known to SIP as well.
+---
+ python_orocos_kdl/PyKDL/dynamics.sip | 3 +++
+ python_orocos_kdl/PyKDL/kinfam.sip | 29 ++++++++++++++++++++++++++++
+ 2 files changed, 32 insertions(+)
+
+diff --git a/python_orocos_kdl/PyKDL/dynamics.sip b/python_orocos_kdl/PyKDL/dynamics.sip
+index e0096dd..36f833c 100644
+--- a/python_orocos_kdl/PyKDL/dynamics.sip
++++ b/python_orocos_kdl/PyKDL/dynamics.sip
+@@ -72,4 +72,7 @@ public:
+ int JntToCoriolis(const JntArray &q, const JntArray &q_dot, JntArray &coriolis);
+ int JntToMass(const JntArray &q, JntSpaceInertiaMatrix& H);
+ int JntToGravity(const JntArray &q,JntArray &gravity);
++
++private:
++ ChainDynParam& operator=(const ChainDynParam&);
+ };
+diff --git a/python_orocos_kdl/PyKDL/kinfam.sip b/python_orocos_kdl/PyKDL/kinfam.sip
+index d87fd00..e87ceb8 100644
+--- a/python_orocos_kdl/PyKDL/kinfam.sip
++++ b/python_orocos_kdl/PyKDL/kinfam.sip
+@@ -344,6 +344,9 @@ public:
+ ChainFkSolverPos_recursive(const Chain& chain);
+ virtual int JntToCart(const JntArray& q_in, Frame& p_out,int segmentNr=-1);
+ virtual void updateInternalDataStructures();
++
++private:
++ ChainFkSolverPos_recursive& operator=(const ChainFkSolverPos_recursive&);
+ };
+
+ class ChainFkSolverVel_recursive : ChainFkSolverVel
+@@ -357,6 +360,9 @@ public:
+ virtual int JntToCart(const JntArrayVel& q_in ,FrameVel& out,int
+ segmentNr=-1 );
+ virtual void updateInternalDataStructures();
++
++private:
++ ChainFkSolverVel_recursive& operator=(const ChainFkSolverVel_recursive&);
+ };
+
+ class ChainIkSolverPos : SolverI {
+@@ -392,6 +398,9 @@ public:
+
+ virtual int CartToJnt(const JntArray& q_init , const Frame& p_in ,JntArray& q_out);
+ virtual void updateInternalDataStructures();
++
++private:
++ ChainIkSolverPos_NR& operator=(const ChainIkSolverPos_NR&);
+ };
+
+ class ChainIkSolverPos_NR_JL : ChainIkSolverPos
+@@ -407,6 +416,9 @@ public:
+
+ virtual int CartToJnt(const JntArray& q_init , const Frame& p_in ,JntArray& q_out);
+ virtual void updateInternalDataStructures();
++
++private:
++ ChainIkSolverPos_NR_JL& operator=(const ChainIkSolverPos_NR_JL&);
+ };
+
+ class ChainIkSolverVel_pinv : ChainIkSolverVel
+@@ -420,6 +432,9 @@ public:
+
+ virtual int CartToJnt(const JntArray& q_in, const Twist& v_in, JntArray& qdot_out);
+ virtual void updateInternalDataStructures();
++
++private:
++ ChainIkSolverVel_pinv& operator=(const ChainIkSolverVel_pinv&);
+ };
+
+ class ChainIkSolverVel_wdls : ChainIkSolverVel
+@@ -506,6 +521,8 @@ public:
+
+ void setLambda(const double& lambda);
+
++private:
++ ChainIkSolverVel_wdls& operator=(const ChainIkSolverVel_wdls&);
+ };
+
+
+@@ -520,6 +537,9 @@ public:
+
+ virtual int CartToJnt(const JntArray& q_init , const Frame& p_in ,JntArray& q_out);
+ virtual void updateInternalDataStructures();
++
++private:
++ ChainIkSolverPos_LMA& operator=(const ChainIkSolverPos_LMA&);
+ };
+
+
+@@ -546,6 +566,9 @@ public:
+ const JntArray& getOptPos()const /Factory/;
+
+ const double& getAlpha()const /Factory/;
++
++private:
++ ChainIkSolverVel_pinv_nso& operator=(const ChainIkSolverVel_pinv_nso&);
+ };
+
+ class ChainIkSolverVel_pinv_givens : ChainIkSolverVel
+@@ -559,6 +582,9 @@ public:
+
+ virtual int CartToJnt(const JntArray& q_in, const Twist& v_in, JntArray& qdot_out);
+ virtual void updateInternalDataStructures();
++
++private:
++ ChainIkSolverVel_pinv_givens& operator=(const ChainIkSolverVel_pinv_givens&);
+ };
+
+ class ChainJntToJacSolver : SolverI
+@@ -571,4 +597,7 @@ public:
+ ChainJntToJacSolver(const Chain& chain);
+ int JntToJac(const JntArray& q_in,Jacobian& jac);
+ virtual void updateInternalDataStructures();
++
++private:
++ ChainJntToJacSolver& operator=(const ChainJntToJacSolver&);
+ };
+--
+2.27.0
+
diff --git a/dev-python/python_orocos_kdl/python_orocos_kdl-1.4.0-r1.ebuild b/dev-python/python_orocos_kdl/python_orocos_kdl-1.4.0-r1.ebuild
index 06e204006f9f..a1f82a9e03ef 100644
--- a/dev-python/python_orocos_kdl/python_orocos_kdl-1.4.0-r1.ebuild
+++ b/dev-python/python_orocos_kdl/python_orocos_kdl-1.4.0-r1.ebuild
@@ -32,6 +32,7 @@ RDEPEND="
>=sci-libs/orocos_kdl-1.4.0:=
dev-python/sip[${PYTHON_USEDEP}]"
DEPEND="${RDEPEND}"
+PATCHES=( "${FILESDIR}/0001-Declare-assignment-operator-private-for-SIP-Closes-2.patch" )
if [ "${PV#9999}" != "${PV}" ] ; then
S=${WORKDIR}/${P}/python_orocos_kdl