diff mbox series

[meta-python,7/7] python3-matplotlib: Fix build with c++17

Message ID 20230117052237.3117521-7-raj.khem@gmail.com
State New
Headers show
Series [meta-networking,1/7] libtevent: Package cmocka tests into ptest package | expand

Commit Message

Khem Raj Jan. 17, 2023, 5:22 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...mberGenerator-class-included-random-.patch | 59 +++++++++++++++++++
 .../python/python3-matplotlib_3.6.3.bb        |  5 +-
 2 files changed, 63 insertions(+), 1 deletion(-)
 create mode 100644 meta-python/recipes-devtools/python/python3-matplotlib/0001-removed-RandomNumberGenerator-class-included-random-.patch
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-matplotlib/0001-removed-RandomNumberGenerator-class-included-random-.patch b/meta-python/recipes-devtools/python/python3-matplotlib/0001-removed-RandomNumberGenerator-class-included-random-.patch
new file mode 100644
index 0000000000..1f9b8cdeaf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-matplotlib/0001-removed-RandomNumberGenerator-class-included-random-.patch
@@ -0,0 +1,59 @@ 
+From 3eb9987b02cc10b93e09219ddc86aa6be5f10177 Mon Sep 17 00:00:00 2001
+From: tybeller <ty.c.beller@gmail.com>
+Date: Fri, 30 Sep 2022 16:13:41 -0400
+Subject: [PATCH] removed RandomNumberGenerator class, included <random>,
+ replaced random_shuffle with shuffle and used mersenne twister engine to
+ generate uniform random bit generator for the shuffle.
+
+Upstream-Status: Backport [https://github.com/matplotlib/matplotlib/commit/601d92a8850]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/tri/_tri.cpp | 20 ++++----------------
+ 1 file changed, 4 insertions(+), 16 deletions(-)
+
+diff --git a/src/tri/_tri.cpp b/src/tri/_tri.cpp
+index b7a87783de..6e639eea44 100644
+--- a/src/tri/_tri.cpp
++++ b/src/tri/_tri.cpp
+@@ -12,6 +12,7 @@
+ 
+ #include <algorithm>
+ #include <set>
++#include <random>
+ 
+ 
+ TriEdge::TriEdge()
+@@ -1465,8 +1466,8 @@ TrapezoidMapTriFinder::initialize()
+     _tree->assert_valid(false);
+ 
+     // Randomly shuffle all edges other than first 2.
+-    RandomNumberGenerator rng(1234);
+-    std::random_shuffle(_edges.begin()+2, _edges.end(), rng);
++    std::mt19937 rng(1234);
++    std::shuffle(_edges.begin()+2, _edges.end(), rng);
+ 
+     // Add edges, one at a time, to tree.
+     size_t nedges = _edges.size();
+@@ -2055,17 +2056,4 @@ TrapezoidMapTriFinder::Trapezoid::set_upper_right(Trapezoid* upper_right_)
+     upper_right = upper_right_;
+     if (upper_right != 0)
+         upper_right->upper_left = this;
+-}
+-
+-
+-
+-RandomNumberGenerator::RandomNumberGenerator(unsigned long seed)
+-    : _m(21870), _a(1291), _c(4621), _seed(seed % _m)
+-{}
+-
+-unsigned long
+-RandomNumberGenerator::operator()(unsigned long max_value)
+-{
+-    _seed = (_seed*_a + _c) % _m;
+-    return (_seed*max_value) / _m;
+-}
++}
+\ No newline at end of file
+-- 
+2.39.0
+
diff --git a/meta-python/recipes-devtools/python/python3-matplotlib_3.6.3.bb b/meta-python/recipes-devtools/python/python3-matplotlib_3.6.3.bb
index 809f9425ba..fa0a78d6a9 100644
--- a/meta-python/recipes-devtools/python/python3-matplotlib_3.6.3.bb
+++ b/meta-python/recipes-devtools/python/python3-matplotlib_3.6.3.bb
@@ -27,7 +27,8 @@  inherit pypi setuptools3 pkgconfig
 
 # Stop the component from attempting to download when it detects a missing
 # dependency
-SRC_URI += "file://matplotlib-disable-download.patch"
+SRC_URI += "file://matplotlib-disable-download.patch \
+            file://0001-removed-RandomNumberGenerator-class-included-random-.patch"
 
 # This python module requires a full copy of freetype-2.6.1
 SRC_URI += "https://downloads.sourceforge.net/project/freetype/freetype2/2.6.1/freetype-2.6.1.tar.gz;name=freetype;subdir=matplotlib-${PV}/build"
@@ -40,6 +41,8 @@  SRC_URI[qhull.sha256sum] = "b5c2d7eb833278881b952c8a52d20179eab87766b00b86500046
 # LTO with clang needs lld
 LDFLAGS:append:toolchain-clang = " -fuse-ld=lld"
 LDFLAGS:remove:toolchain-clang:mips = "-fuse-ld=lld"
+LDFLAGS:remove:toolchain-clang:riscv64 = "-fuse-ld=lld"
+LDFLAGS:remove:toolchain-clang:riscv32 = "-fuse-ld=lld"
 RDEPENDS:${PN} = "\
     freetype \
     libpng \