diff options
Diffstat (limited to 'dev-python/python_orocos_kdl')
-rw-r--r-- | dev-python/python_orocos_kdl/files/0001-Declare-assignment-operator-private-for-SIP-Closes-2.patch | 134 | ||||
-rw-r--r-- | dev-python/python_orocos_kdl/python_orocos_kdl-1.4.0-r1.ebuild | 1 |
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 |