[packages/blender] - up to 5.2.2

baggins baggins at pld-linux.org
Thu Oct 22 21:29:29 CEST 2026


commit e7b4dc905aec9bd5c3c6ca03a2c13bed7ec54e5c
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Thu Oct 22 21:29:17 2026 +0200

    - up to 5.2.2

 blender.spec | 16 ++++++++--
 eigen3.patch | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 108 insertions(+), 3 deletions(-)
---
diff --git a/blender.spec b/blender.spec
index aaa7946..dcd6a02 100644
--- a/blender.spec
+++ b/blender.spec
@@ -16,12 +16,13 @@
 Summary:	3D modeling, rendering, animation and game creation package
 Summary(pl.UTF-8):	Pakiet do tworzenia animacji 3D oraz gier
 Name:		blender
-Version:	5.0.0
-Release:	3
+Version:	5.2.2
+Release:	1
 License:	GPL v2+
 Group:		X11/Applications/Graphics
 Source0:	https://download.blender.org/source/%{name}-%{version}.tar.xz
-# Source0-md5:	3c064098e099ce62fe8404fcdb0ca30f
+# Source0-md5:	8fcb442090c29a4f12652dcd9d6ae1f8
+Patch0:		eigen3.patch
 URL:		https://www.blender.org/
 BuildRequires:	OpenAL-devel
 BuildRequires:	OpenCOLLADA-devel
@@ -32,8 +33,16 @@ BuildRequires:	OpenGL-devel
 BuildRequires:	OpenImageIO-devel
 BuildRequires:	OpenXR-devel
 BuildRequires:	SDL2-devel
+BuildRequires:	SuiteSparse-AMD-devel
+BuildRequires:	SuiteSparse-CAMD-devel
+BuildRequires:	SuiteSparse-CCOLAMD-devel
+BuildRequires:	SuiteSparse-CHOLMOD-devel
+BuildRequires:	SuiteSparse-COLAMD-devel
+BuildRequires:	SuiteSparse-SPQR-devel
 BuildRequires:	boost-devel >= 1.48
+BuildRequires:	ceres-solver-devel
 BuildRequires:	cmake >= 3.10
+BuildRequires:	eigen3
 BuildRequires:	embree-devel >= 4.4.0
 BuildRequires:	ffmpeg-devel >= 0.4.9-4.20080930.1
 BuildRequires:	fftw3-devel >= 3
@@ -106,6 +115,7 @@ Blender to darmowy i w pełni funkcjonalny pakiet do tworzenia animacji
 
 %prep
 %setup -q
+%patch -P0 -p1
 
 %build
 install -d build
diff --git a/eigen3.patch b/eigen3.patch
new file mode 100644
index 0000000..81c9a2b
--- /dev/null
+++ b/eigen3.patch
@@ -0,0 +1,95 @@
+diff --git a/intern/dualcon/intern/octree.cpp b/intern/dualcon/intern/octree.cpp
+index f735f6a7cd40..aac041848cc5 100644
+--- a/intern/dualcon/intern/octree.cpp
++++ b/intern/dualcon/intern/octree.cpp
+@@ -2183,8 +2183,12 @@ void Octree::countIntersection(Node *node, int height, int &nedge, int &ncell, i
+ /* from http://eigen.tuxfamily.org/bz/show_bug.cgi?id=257 */
+ static void pseudoInverse(const Eigen::Matrix3f &a, Eigen::Matrix3f &result, float tolerance)
+ {
++#if EIGEN_VERSION_AT_LEAST(5, 0, 0)
+   const int Options = Eigen::ComputeFullU | Eigen::ComputeFullV;
+   Eigen::JacobiSVD<Eigen::Matrix3f, Options> svd = a.jacobiSvd<Options>();
++#else
++  Eigen::JacobiSVD<Eigen::Matrix3f> svd = a.jacobiSvd(Eigen::ComputeFullU | Eigen::ComputeFullV);
++#endif
+ 
+   result = svd.matrixV() *
+            Eigen::Vector3f((svd.singularValues().array().abs() > tolerance)
+diff --git a/intern/libmv/libmv/multiview/euclidean_resection.cc b/intern/libmv/libmv/multiview/euclidean_resection.cc
+index 3dc8a3876a1d..7d20e9d5186e 100644
+--- a/intern/libmv/libmv/multiview/euclidean_resection.cc
++++ b/intern/libmv/libmv/multiview/euclidean_resection.cc
+@@ -107,7 +107,11 @@ void AbsoluteOrientation(const Mat3X& X, const Mat3X& Xp, Mat3* R, Vec3* t) {
+ 
+   // Find the unit quaternion q that maximizes qNq. It is the eigenvector
+   // corresponding to the lagest eigenvalue.
++#if EIGEN_VERSION_AT_LEAST(5, 0, 0)
+   Vec4 q = N.jacobiSvd<Eigen::ComputeFullU>().matrixU().col(0);
++#else
++  Vec4 q = N.jacobiSvd(Eigen::ComputeFullU).matrixU().col(0);
++#endif
+ 
+   // Retrieve the 3x3 rotation matrix.
+   Vec4 qq = q.array() * q.array();
+@@ -246,8 +246,14 @@ void EuclideanResectionAnsarDaniilidis(const Mat2X& x_camera,
+   }
+ 
+   int num_lambda = num_points + 1;  // Dimension of the null space of M.
++#if EIGEN_VERSION_AT_LEAST(5, 0, 0)
+   Mat V = M.jacobiSvd<Eigen::ComputeFullV>().matrixV().block(
+       0, num_m_rows, num_m_columns, num_lambda);
++#else
++  Mat V = M.jacobiSvd(Eigen::ComputeFullV)
++              .matrixV()
++              .block(0, num_m_rows, num_m_columns, num_lambda);
++#endif
+ 
+   // TODO(vess): The number of constraint equations in K (num_k_rows) must be
+   // (num_points + 1) * (num_points + 2)/2. This creates a performance issue
+@@ -303,8 +302,12 @@ void EuclideanResectionAnsarDaniilidis(const Mat2X& x_camera,
+       ++counter_k_row;
+     }
+   }
++#if EIGEN_VERSION_AT_LEAST(5, 0, 0)
+   Vec L_sq =
+       K.jacobiSvd<Eigen::ComputeFullV>().matrixV().col(num_k_columns - 1);
++#else
++  Vec L_sq = K.jacobiSvd(Eigen::ComputeFullV).matrixV().col(num_k_columns - 1);
++#endif
+ 
+   // Pivot on the largest element for numerical stability. Afterwards recover
+   // the sign of the lambda solution.
+diff --git a/intern/libmv/libmv/tracking/track_region.cc b/intern/libmv/libmv/tracking/track_region.cc
+index 620367a455b6..ec808ac9acb8 100644
+--- a/intern/libmv/libmv/tracking/track_region.cc
++++ b/intern/libmv/libmv/tracking/track_region.cc
+@@ -940,7 +940,11 @@ struct AffineWarp {
+     }
+ 
+     // TODO(keir): Check solution quality.
++#if EIGEN_VERSION_AT_LEAST(5, 0, 0)
+     Vec4 a = Q1.jacobiSvd<Eigen::ComputeThinU | Eigen::ComputeThinV>().solve(Q2);
++#else
++    Vec4 a = Q1.jacobiSvd(Eigen::ComputeThinU | Eigen::ComputeThinV).solve(Q2);
++#endif
+     parameters[2] = a[0];
+     parameters[3] = a[1];
+     parameters[4] = a[2];
+diff --git a/intern/slim/intern/slim.cpp b/intern/slim/intern/slim.cpp
+index fd0821d5a327..b42c5fd94c0c 100644
+--- a/intern/slim/intern/slim.cpp
++++ b/intern/slim/intern/slim.cpp
+@@ -208,8 +208,13 @@ static inline void polar_svd(const Eigen::PlainObjectBase<DerivedA> &A,
+                              Eigen::PlainObjectBase<DerivedV> &V)
+ {
+   using namespace std;
++#if EIGEN_VERSION_AT_LEAST(5, 0, 0)
+   Eigen::JacobiSVD<DerivedA, Eigen::ComputeFullU | Eigen::ComputeFullV> svd;
+   svd.compute(A);
++#else
++  Eigen::JacobiSVD<DerivedA> svd;
++  svd.compute(A, Eigen::ComputeFullU | Eigen::ComputeFullV);
++#endif
+   U = svd.matrixU();
+   V = svd.matrixV();
+   S = svd.singularValues();
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/blender.git/commitdiff/e7b4dc905aec9bd5c3c6ca03a2c13bed7ec54e5c



More information about the pld-cvs-commit mailing list