Fixes for CGAL 5.3

This commit is contained in:
Miro Hrončok 2021-08-02 16:38:52 +02:00
parent 01a53d6517
commit 66bb55afc3
2 changed files with 881 additions and 1 deletions

873
openscad-cgal5.3.patch Normal file
View File

@ -0,0 +1,873 @@
From db7d4aafb1d667523ebdc7d4b8cf7ae5c99912aa Mon Sep 17 00:00:00 2001
From: Jordan Brown <github@jordan.maileater.net>
Date: Sun, 18 Jul 2021 21:01:46 -0700
Subject: [PATCH] Fix build failure with "generic_print_polyhedron" on
CGAL-5.3.
---
src/cgalutils-polyhedron.cc | 13 -------------
src/cgalutils.h | 1 -
2 files changed, 14 deletions(-)
diff --git a/src/cgalutils-polyhedron.cc b/src/cgalutils-polyhedron.cc
index 9f4f98f..41cca4b 100644
--- a/src/cgalutils-polyhedron.cc
+++ b/src/cgalutils-polyhedron.cc
@@ -337,19 +337,6 @@ namespace CGALUtils {
}
};
- template <typename Polyhedron>
- std::string printPolyhedron(const Polyhedron &p) {
- std::ostringstream sstream;
- sstream.precision(20);
-
- Polyhedron_writer writer;
- generic_print_polyhedron(sstream, p, writer);
-
- return sstream.str();
- }
-
- template std::string printPolyhedron(const CGAL_Polyhedron &p);
-
}; // namespace CGALUtils
#endif /* ENABLE_CGAL */
diff --git a/src/cgalutils.h b/src/cgalutils.h
index 21a01cd..c08a3aa 100644
--- a/src/cgalutils.h
+++ b/src/cgalutils.h
@@ -45,7 +45,6 @@ namespace CGALUtils {
bool is_approximately_convex(const PolySet &ps);
Geometry const* applyMinkowski(const Geometry::Geometries &children);
- template <typename Polyhedron> std::string printPolyhedron(const Polyhedron &p);
template <typename Polyhedron> bool createPolySetFromPolyhedron(const Polyhedron &p, PolySet &ps);
template <typename Polyhedron> bool createPolyhedronFromPolySet(const PolySet &ps, Polyhedron &p);
template <class Polyhedron_A, class Polyhedron_B>
From f8ce39a9d28615e52aff3db59899100f4ddcca9b Mon Sep 17 00:00:00 2001
From: Jordan Brown <github@jordan.maileater.net>
Date: Sun, 18 Jul 2021 23:44:29 -0700
Subject: [PATCH] Fix MacOS test report upload.
---
.../polyhedron-nonplanar-tests-expected.png | Bin 6333 -> 5846 bytes
.../polyhedron-nonplanar-tests-expected.csg | 3 ---
.../polyhedron-nonplanar-tests-expected.png | Bin 6333 -> 5846 bytes
.../polyhedron-nonplanar-tests-expected.png | Bin 6333 -> 5846 bytes
.../polyhedron-nonplanar-tests-expected.png | Bin 6333 -> 5846 bytes
5 files changed, 3 deletions(-)
diff --git a/tests/regression/cgalpngtest/polyhedron-nonplanar-tests-expected.png b/tests/regression/cgalpngtest/polyhedron-nonplanar-tests-expected.png
index 0f9ffbc11ba5e2a4dc201b8c0f876383c3cd0d80..9b5da253435b52d17a8653d690857df38094172e 100644
GIT binary patch
literal 5846
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
literal 6333
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
diff --git a/tests/regression/dumptest/polyhedron-nonplanar-tests-expected.csg b/tests/regression/dumptest/polyhedron-nonplanar-tests-expected.csg
index 6985fcc..f8beb8d 100644
--- a/tests/regression/dumptest/polyhedron-nonplanar-tests-expected.csg
+++ b/tests/regression/dumptest/polyhedron-nonplanar-tests-expected.csg
@@ -1,7 +1,4 @@
polyhedron(points = [[0.0174497, -0.0174524, 0.999695], [1.0173, -0.0174524, 0.982243], [1.0176, 0.982395, 0.999693], [0.0177543, 0.982395, 1.01715], [0.000304586, 0.999848, 0.0174497], [1.00015, 0.999848, -2.65809e-6], [0.999848, -2.71051e-14, -0.0174524], [0, 0, 0]], faces = [[3, 2, 1, 0], [7, 6, 5, 4], [0, 1, 6, 7], [1, 2, 5, 6], [2, 3, 4, 5], [3, 0, 7, 4]], convexity = 1);
-multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) {
- polyhedron(points = [[0, 0, 1], [1, 0.2, 1], [1, 1, 1], [0, 1, 1], [0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0]], faces = [[3, 2, 1, 0], [7, 6, 5, 4], [0, 1, 6, 7], [1, 2, 5, 6], [2, 3, 4, 5], [3, 0, 7, 4]], convexity = 1);
-}
multmatrix([[1, 0, 0, 4.5], [0, 1, 0, 0.5], [0, 0, 1, 0.5], [0, 0, 0, 1]]) {
multmatrix([[0.02, 0, 0, 0], [0, 0.02, 0, 0], [0, 0, 0.02, 0], [0, 0, 0, 1]]) {
polyhedron(points = [[-10, -13.0902, -34.2705], [-10, -13.0902, 34.2705], [-10, 13.0902, -34.2705], [-10, 13.0902, 34.2705], [-5, -5, -37.3607], [-5, -5, 37.3607], [-5, 5, -37.3607], [-5, 5, 37.3607], [-5, -37.3607, -5], [-5, -37.3607, 5], [-5, -21.1803, -31.1803], [-5, -21.1803, 31.1803], [-5, 37.3607, -5], [-5, 37.3607, 5], [-5, 21.1803, -31.1803], [-5, 21.1803, 31.1803], [5, -5, -37.3607], [5, -5, 37.3607], [5, 5, -37.3607], [5, 5, 37.3607], [5, -37.3607, -5], [5, -37.3607, 5], [5, -21.1803, -31.1803], [5, -21.1803, 31.1803], [5, 37.3607, -5], [5, 37.3607, 5], [5, 21.1803, -31.1803], [5, 21.1803, 31.1803], [10, -13.0902, -34.2705], [10, -13.0902, 34.2705], [10, 13.0902, -34.2705], [10, 13.0902, 34.2705], [-34.2705, -10, -13.0902], [-34.2705, -10, 13.0902], [-34.2705, 10, -13.0902], [-34.2705, 10, 13.0902], [-29.2705, -18.0902, -16.1803], [-29.2705, -18.0902, 16.1803], [-29.2705, 18.0902, -16.1803], [-29.2705, 18.0902, 16.1803], [-18.0902, -16.1803, -29.2705], [-18.0902, -16.1803, 29.2705], [-18.0902, 16.1803, -29.2705], [-18.0902, 16.1803, 29.2705], [-13.0902, -34.2705, -10], [-13.0902, -34.2705, 10], [-13.0902, -24.2705, -26.1803], [-13.0902, -24.2705, 26.1803], [-13.0902, 24.2705, -26.1803], [-13.0902, 24.2705, 26.1803], [-13.0902, 34.2705, -10], [-13.0902, 34.2705, 10], [-26.1803, -13.0902, -24.2705], [-26.1803, -13.0902, 24.2705], [-26.1803, 13.0902, -24.2705], [-26.1803, 13.0902, 24.2705], [-37.3607, -5, -5], [-37.3607, -5, 5], [-37.3607, 5, -5], [-37.3607, 5, 5], [-16.1803, -29.2705, -18.0902], [-16.1803, -29.2705, 18.0902], [-16.1803, 29.2705, -18.0902], [-16.1803, 29.2705, 18.0902], [-31.1803, -5, -21.1803], [-31.1803, -5, 21.1803], [-31.1803, 5, -21.1803], [-31.1803, 5, 21.1803], [-21.1803, -31.1803, -5], [-21.1803, -31.1803, 5], [-21.1803, 31.1803, -5], [-21.1803, 31.1803, 5], [-24.2705, -26.1803, -13.0902], [-24.2705, -26.1803, 13.0902], [-24.2705, 26.1803, -13.0902], [-24.2705, 26.1803, 13.0902], [16.1803, -29.2705, -18.0902], [16.1803, -29.2705, 18.0902], [16.1803, 29.2705, -18.0902], [16.1803, 29.2705, 18.0902], [24.2705, -26.1803, -13.0902], [24.2705, -26.1803, 13.0902], [24.2705, 26.1803, -13.0902], [24.2705, 26.1803, 13.0902], [37.3607, -5, -5], [37.3607, -5, 5], [37.3607, 5, -5], [37.3607, 5, 5], [21.1803, -31.1803, -5], [21.1803, -31.1803, 5], [21.1803, 31.1803, -5], [21.1803, 31.1803, 5], [13.0902, -34.2705, -10], [13.0902, -34.2705, 10], [13.0902, -24.2705, -26.1803], [13.0902, -24.2705, 26.1803], [13.0902, 24.2705, -26.1803], [13.0902, 24.2705, 26.1803], [13.0902, 34.2705, -10], [13.0902, 34.2705, 10], [26.1803, -13.0902, -24.2705], [26.1803, -13.0902, 24.2705], [26.1803, 13.0902, -24.2705], [26.1803, 13.0902, 24.2705], [31.1803, -5, -21.1803], [31.1803, -5, 21.1803], [31.1803, 5, -21.1803], [31.1803, 5, 21.1803], [18.0902, -16.1803, -29.2705], [18.0902, -16.1803, 29.2705], [18.0902, 16.1803, -29.2705], [18.0902, 16.1803, 29.2705], [29.2705, -18.0902, -16.1803], [29.2705, -18.0902, 16.1803], [29.2705, 18.0902, -16.1803], [29.2705, 18.0902, 16.1803], [34.2705, -10, -13.0902], [34.2705, -10, 13.0902], [34.2705, 10, -13.0902], [34.2705, 10, 13.0902]], faces = [[41, 53, 65, 67, 55, 43, 3, 7, 5, 1], [100, 104, 106, 102, 110, 30, 18, 16, 28, 108], [11, 1, 5, 17, 29, 23], [18, 30, 26, 14, 2, 6], [33, 37, 73, 69, 68, 72, 36, 32, 56, 57], [91, 90, 82, 114, 118, 86, 87, 119, 115, 83], [81, 113, 117, 85, 84, 116, 112, 80, 88, 89], [59, 58, 34, 38, 74, 70, 71, 75, 39, 35], [0, 10, 22, 28, 16, 4], [15, 27, 31, 19, 7, 3], [64, 52, 40, 0, 4, 6, 2, 42, 54, 66], [19, 31, 111, 103, 107, 105, 101, 109, 29, 17], [96, 110, 102, 114, 82, 78], [53, 41, 47, 61, 73, 37], [43, 49, 15, 3], [94, 108, 28, 22], [23, 29, 109, 95], [2, 14, 48, 42], [36, 72, 60, 46, 40, 52], [79, 83, 115, 103, 111, 97], [69, 45, 9, 8, 44, 68], [24, 98, 90, 91, 99, 25], [77, 95, 109, 101, 113, 81], [42, 48, 62, 74, 38, 54], [40, 46, 10, 0], [97, 111, 31, 27], [44, 8, 20, 92, 76, 94, 22, 10, 46, 60], [63, 51, 13, 25, 99, 79, 97, 27, 15, 49], [26, 30, 110, 96], [1, 11, 47, 41], [55, 39, 75, 63, 49, 43], [80, 112, 100, 108, 94, 76], [48, 14, 26, 96, 78, 98, 24, 12, 50, 62], [61, 47, 11, 23, 95, 77, 93, 21, 9, 45], [71, 70, 50, 12, 13, 51], [93, 89, 88, 92, 20, 21], [102, 106, 118, 114], [65, 53, 37, 33], [74, 62, 50, 70], [77, 81, 89, 93], [101, 105, 117, 113], [66, 54, 38, 34], [73, 61, 45, 69], [78, 82, 90, 98], [32, 36, 52, 64], [115, 119, 107, 103], [92, 88, 80, 76], [71, 51, 63, 75], [56, 32, 64, 66, 34, 58], [107, 119, 87, 85, 117, 105], [35, 39, 55, 67], [112, 116, 104, 100], [99, 91, 83, 79], [68, 44, 60, 72], [57, 59, 35, 67, 65, 33], [116, 84, 86, 118, 106, 104], [4, 16, 18, 6], [7, 19, 17, 5], [12, 24, 25, 13], [9, 21, 20, 8], [56, 58, 59, 57], [85, 87, 86, 84]], convexity = 1);
diff --git a/tests/regression/monotonepngtest/polyhedron-nonplanar-tests-expected.png b/tests/regression/monotonepngtest/polyhedron-nonplanar-tests-expected.png
index 0f9ffbc11ba5e2a4dc201b8c0f876383c3cd0d80..9b5da253435b52d17a8653d690857df38094172e 100644
GIT binary patch
literal 5846
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
literal 6333
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
diff --git a/tests/regression/opencsgtest/polyhedron-nonplanar-tests-expected.png b/tests/regression/opencsgtest/polyhedron-nonplanar-tests-expected.png
index 0f9ffbc11ba5e2a4dc201b8c0f876383c3cd0d80..9b5da253435b52d17a8653d690857df38094172e 100644
GIT binary patch
literal 5846
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
literal 6333
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
diff --git a/tests/regression/throwntogethertest/polyhedron-nonplanar-tests-expected.png b/tests/regression/throwntogethertest/polyhedron-nonplanar-tests-expected.png
index 0f9ffbc11ba5e2a4dc201b8c0f876383c3cd0d80..9b5da253435b52d17a8653d690857df38094172e 100644
GIT binary patch
literal 5846
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
literal 6333
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

View File

@ -1,7 +1,7 @@
Name: openscad
Version: 2021.01
%global upversion %{version}
Release: 2%{?dist}
Release: 3%{?dist}
Summary: The Programmers Solid 3D CAD Modeller
# COPYING contains a linking exception for CGAL
# Appdata file is CC0
@ -11,6 +11,9 @@ URL: http://www.%{name}.org/
Source0: http://files.%{name}.org/%{name}-%{upversion}.src.tar.gz
Patch0: %{name}-polyclipping.patch
# CGAL 5.3 fixes from https://github.com/openscad/openscad/pull/3844
Patch1: %{name}-cgal5.3.patch
# Upstream backports:
%global github https://github.com/openscad/openscad
@ -217,6 +220,10 @@ cd -
%{_datadir}/%{name}/libraries/MCAD/bitmap/*.scad
%changelog
* Mon Aug 02 2021 Miro Hrončok <mhroncok@redhat.com> - 2021.01-3
- Rebuilt with CGAL 5.3
- Fixes: rhbz#1987777
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2021.01-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild