commit:     42b36a01c6a1020fb97ef1e1ed03c891ec718b9b
Author:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 29 14:45:12 2020 +0000
Commit:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
CommitDate: Wed Jul 29 14:45:23 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=42b36a01

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 <AT> gentoo.org>

 ...ignment-operator-private-for-SIP-Closes-2.patch | 134 +++++++++++++++++++++
 .../python_orocos_kdl-1.4.0-r1.ebuild              |   1 +
 2 files changed, 135 insertions(+)

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 00000000000..b02f18747cf
--- /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 <[email protected]>
+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 06e204006f9..a1f82a9e03e 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

Reply via email to