From 2719f73b6813d11d13a9650cdd2ab8ec6e69385d Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 9 Jul 2022 15:43:36 +0100 Subject: gentoo resync : 09.07.2022 --- media-gfx/openscad/Manifest | 7 ++ ...fix-v5.4-renames-projection-traits-header.patch | 36 +++++++ ...96-Out-of-bounds-memory-access-in-DXF-loa.patch | 74 ++++++++++++++ ...97-Out-of-bounds-memory-access-in-comment.patch | 25 +++++ ...ailure-with-generic_print_polyhedron-on-C.patch | 42 ++++++++ ...1.01-Fix-build-issue-with-overloaded-join.patch | 60 +++++++++++ ...le-quoting-of-the-output-file-parameter-f.patch | 20 ++++ media-gfx/openscad/openscad-2021.01-r4.ebuild | 112 +++++++++++++++++++++ 8 files changed, 376 insertions(+) create mode 100644 media-gfx/openscad/files/openscad-2021.01-CGAL-build-fix-v5.4-renames-projection-traits-header.patch create mode 100644 media-gfx/openscad/files/openscad-2021.01-CVE-2022-0496-Out-of-bounds-memory-access-in-DXF-loa.patch create mode 100644 media-gfx/openscad/files/openscad-2021.01-CVE-2022-0497-Out-of-bounds-memory-access-in-comment.patch create mode 100644 media-gfx/openscad/files/openscad-2021.01-Fix-build-failure-with-generic_print_polyhedron-on-C.patch create mode 100644 media-gfx/openscad/files/openscad-2021.01-Fix-build-issue-with-overloaded-join.patch create mode 100644 media-gfx/openscad/files/openscad-2021.01-Remove-double-quoting-of-the-output-file-parameter-f.patch create mode 100644 media-gfx/openscad/openscad-2021.01-r4.ebuild (limited to 'media-gfx/openscad') diff --git a/media-gfx/openscad/Manifest b/media-gfx/openscad/Manifest index 4026b2420161..7e200b1abdfb 100644 --- a/media-gfx/openscad/Manifest +++ b/media-gfx/openscad/Manifest @@ -1,7 +1,14 @@ AUX 50openscad-gentoo.el 167 BLAKE2B 36292439057e2b9a5993c73cf5d46e5b6b0b56695f46307114fcfffa79990be0b0622ec3a6918726d4a5f7e4343525b9e67f785996ec4eb7abb938b6df1cb2f7 SHA512 ce669eba45ab90e9dbcd770a7470ca9ed7088b1acabbc876fe4d31dc7a6edd36076063e4bd417d348c3e073113e3ad2bc2dd0ac89e02d3d8aeca7627ad7d2a1e AUX openscad-2021.01-0001-Gentoo-specific-Disable-ccache-building.patch 790 BLAKE2B b08a024f81a29d7fb4e0860977b814d2ec6ce6dcbf8ab87655f5d36f51ea3bbce6559369363c33ca7593cbc3284de920f71be3c38e3ab7b5efa83d3466132b79 SHA512 2af887d7b085c49203e72ad41cb5c0e32b772a8abd35843485434cb11b263ba8a727a0ebc34c7138bff1e6852245f2bdaf7d91711184a5f16ed22603578a0892 AUX openscad-2021.01-0002-fix-to-find-lib3mf-2.patch 1396 BLAKE2B a43872dd83427f28a48528fbac534924796db769bd0213ba1b6fca41a65c766aa3355aa9ee3f7d68dcbbf3d578cee984f2ad61f599fdf9551ef55724f460f4db SHA512 ffbf402976054c1e7294a0d661e0648bdb359cf57e676d818cf1140644b7a0d0943f5adf1d2f511ad17ca45a35e31785aae584dc7607f13bfc9d94795fc3812b +AUX openscad-2021.01-CGAL-build-fix-v5.4-renames-projection-traits-header.patch 1380 BLAKE2B b359211ef34bd0e1306f37fcf84f65fc8b3a03036608abb36ece8e134bee419646754fedb52134947f1a3943c02fc07d778127f544d873346d62e5cd36c3ce9a SHA512 4c0dea73a578db8e6ff499a4fc9b337292d66dc1d652559d73616e85ee57d4a5c06d93e96a4e543a9b7087d3f4939e98bd7e22f9a9305c612a487527454e4d38 +AUX openscad-2021.01-CVE-2022-0496-Out-of-bounds-memory-access-in-DXF-loa.patch 3690 BLAKE2B c320ddd5077e8f4c92f21e9ea18e741b6844f409d1be1ca90fcf8ed8fe0b394694d2a4198b068858b92d8b004e603070bd51a0de1ccafdd3afc1925377f00082 SHA512 1a08d7207a6c98493022a6019d44db468ad8b1b0a7623296302895ffcda789fd9ad90f3d361026b6309fbbd23051a5f686e1a21c01bd90a668dd5ce08fd6ba9f +AUX openscad-2021.01-CVE-2022-0497-Out-of-bounds-memory-access-in-comment.patch 752 BLAKE2B a54676bdf69a78cbc0ff1d11676de4b5913030093f06a2029bb44bb301dee681a7a971f3cd31b033061f5f4e03ac243c83b51d21576b0bbe21cdc8457632d885 SHA512 49f43408021397d8ca8a628de102dde9f55ccc4fa219f84f7a0e08db6b63232d5d31562814669728273379db521e98d819fe939521ba7a346232a05aa9dcdc89 +AUX openscad-2021.01-Fix-build-failure-with-generic_print_polyhedron-on-C.patch 1390 BLAKE2B 2c5e96675b15f9dc7020f21d5d2b5a9f7edcde154533dcda14762aef5cbe8bec78ac0fb9cc8b0426817027543313a6862c07dd5d17eb46fa101633ed55ed75d6 SHA512 58cfa61093edb3e18022b73cca93d4741ba2fddd259c37864d604ee66bc8f9f1f170677f2151b539ebdf70e3043c6d1650fa7578037c70c277d3eec4ca030a4e +AUX openscad-2021.01-Fix-build-issue-with-overloaded-join.patch 3336 BLAKE2B c92caab0f33551ee7e66c6527dfa61d5ae70c3820d51188b6b4fc042a66cd58d207d4dbcdc87641b79733784d1c088af34a85078899fa4468522b4653fed7ab7 SHA512 f8860ec827efcdf1e0037c22ec0c1f8364b5f9554d264d2bac5be57c1b86e79f6ab284b65f1763c1548e8e3479c0ca510954937907f18f0db745826338a4f2f8 +AUX openscad-2021.01-Remove-double-quoting-of-the-output-file-parameter-f.patch 775 BLAKE2B eed37277c3e7ea84635c0b8cd02cc4ffde7abea78400ee39e67bcc782800197c57dae07a82084df47705951ced8968be78243a1d0e14a551783b8adcb669d43f SHA512 94306e68e53b01e799a5feb6f16a8f44c965a4b653b60227833013712f23648d20ac8272a7bfe38bde201af42946f91fe17231f120adfbe5b16e42b07d9f8d10 DIST openscad-2021.01.tar.gz 15817555 BLAKE2B 417857d704fa3c14312641ebda983eb85a1e3bc0d517a235fa3bd2523fce6f93c1ea526c330179bc35f03e6c73d3cd7c4c57cd71480088c21bfc99bb020ab7cd SHA512 8deaa26bf4c295c12da38f323d2b2e6f827851337f5bc1cc9c79afc083c9f913c19a263086e6e853bf2c8434c1ccc705ea22ddb02dc99d39bb1e5e03fc58d128 EBUILD openscad-2021.01-r3.ebuild 2235 BLAKE2B b25634d8dfcefc9ba34f3a41033a95384a932147760d3f0c905d686a150188bbbc0b9d17958bb1d309785ecee2dd3d50228261431401a672f1ab68e8e3518e95 SHA512 4b7a65b0e9c32ce2d1d58b6850d06ff40564c1ed70e2ca832ff1dea86bb8b3503dd0b006a38962cdab3ae664f4686973d7136dfaa03021510c09a7ec071b8d9f +EBUILD openscad-2021.01-r4.ebuild 2695 BLAKE2B 16401f595a6a25bf848feefd97f52b016ba913f6ab68c9ef346bfb1644f5e8de0b73cbf91a47fa79ea9761d762fd4476937f3e5f1ceaaed43d423d394c261af7 SHA512 20766e6ce4d7ca0fda36299f8e6286f281d1c36460aa8c5c146212af8599f19ad245a6238264e4063471ba7ba6f8771016884309c00ec1b56f3ebca3c750aa8e EBUILD openscad-9999.ebuild 2508 BLAKE2B f3842eee85e9da815b3dda59c553f4cd97193bd7732d2bd65820b7283a2e8699c352cf8643b67fc3c4e8e411628b2262998d65ede1ca1154c4c0cec3edcd4f5c SHA512 a214cdebcb5be8a052b78b9b34741cf0680d262ce07a740803ee9a351a63d0e0f03fd733d754c4cdc161ffa35e6713eb8cd2ffe7627014e0851d647360eeb418 MISC metadata.xml 1348 BLAKE2B b15a74a20ef94a6a47de57826c5279a4e8c388a52bf9d1058a1ba0b347fcd77e0c8b79a42515f5411d0991fb8fb71c604f792dd2a2addaaca78bc85dbfc7a611 SHA512 fea109a00324f0bdcaae855e18fba456a449bb8192e633cfd5806fa1040fe3bba24f75493e0012d54afe8828073fc4d02ae01533b45648e05c575777b23572d1 diff --git a/media-gfx/openscad/files/openscad-2021.01-CGAL-build-fix-v5.4-renames-projection-traits-header.patch b/media-gfx/openscad/files/openscad-2021.01-CGAL-build-fix-v5.4-renames-projection-traits-header.patch new file mode 100644 index 000000000000..5fea4998683d --- /dev/null +++ b/media-gfx/openscad/files/openscad-2021.01-CGAL-build-fix-v5.4-renames-projection-traits-header.patch @@ -0,0 +1,36 @@ +https://bugs.gentoo.org/851189 +From https://github.com/openscad/openscad/commit/abfebc651343909b534ef337aacc7604c99cf0ea Mon Sep 17 00:00:00 2001 +From: Torsten Paul +Date: Wed, 2 Feb 2022 02:30:59 +0100 +Subject: [PATCH 09/11] CGAL build fix, v5.4 renames projection traits header + files and classes. + +--- a/src/cgalutils-tess.cc ++++ b/src/cgalutils-tess.cc +@@ -6,10 +6,12 @@ + #pragma push_macro("NDEBUG") + #undef NDEBUG + #include +-#if CGAL_VERSION_NR >= CGAL_VERSION_NUMBER(4,11,0) +- #include ++#if CGAL_VERSION_NR < 1050401000 ++#include ++typedef CGAL::Triangulation_2_filtered_projection_traits_3 Projection; + #else +- #include ++#include ++typedef CGAL::Filtered_projection_traits_3 Projection; + #endif + #include + #pragma pop_macro("NDEBUG") +@@ -19,7 +21,6 @@ struct FaceInfo { + bool in_domain() { return nesting_level%2 == 1; } + }; + +-typedef CGAL::Triangulation_2_filtered_projection_traits_3 Projection; + typedef CGAL::Triangulation_face_base_with_info_2 Fbb; + typedef CGAL::Triangulation_data_structure_2< + CGAL::Triangulation_vertex_base_2, +-- +2.35.1 + diff --git a/media-gfx/openscad/files/openscad-2021.01-CVE-2022-0496-Out-of-bounds-memory-access-in-DXF-loa.patch b/media-gfx/openscad/files/openscad-2021.01-CVE-2022-0496-Out-of-bounds-memory-access-in-DXF-loa.patch new file mode 100644 index 000000000000..6c0a9558e3fb --- /dev/null +++ b/media-gfx/openscad/files/openscad-2021.01-CVE-2022-0496-Out-of-bounds-memory-access-in-DXF-loa.patch @@ -0,0 +1,74 @@ +From https://github.com/openscad/openscad/commit/00a4692989c4e2f191525f73f24ad8727bacdf41 Mon Sep 17 00:00:00 2001 +From: Torsten Paul +Date: Sat, 5 Feb 2022 18:38:31 +0100 +Subject: [PATCH 01/11] CVE-2022-0496 Out-of-bounds memory access in DXF + loader. + +Public issue: +https://github.com/openscad/openscad/issues/4037 + +Fix in master branch: +https://github.com/openscad/openscad/pull/4090 +--- a/src/dxfdata.cc ++++ b/src/dxfdata.cc +@@ -441,6 +441,11 @@ DxfData::DxfData(double fn, double fs, double fa, + auto lv = grid.data(this->points[lines[idx].idx[j]][0], this->points[lines[idx].idx[j]][1]); + for (size_t ki = 0; ki < lv.size(); ++ki) { + int k = lv.at(ki); ++ if (k < 0 || k >= lines.size()) { ++ LOG(message_group::Warning,Location::NONE,"", ++ "Bad DXF line index in %1$s.",QuotedString(boostfs_uncomplete(filename, fs::current_path()).generic_string())); ++ continue; ++ } + if (k == idx || lines[k].disabled) continue; + goto next_open_path_j; + } +@@ -466,13 +471,20 @@ DxfData::DxfData(double fn, double fs, double fa, + auto lv = grid.data(ref_point[0], ref_point[1]); + for (size_t ki = 0; ki < lv.size(); ++ki) { + int k = lv.at(ki); ++ if (k < 0 || k >= lines.size()) { ++ LOG(message_group::Warning,Location::NONE,"", ++ "Bad DXF line index in %1$s.",QuotedString(boostfs_uncomplete(filename, fs::current_path()).generic_string())); ++ continue; ++ } + if (lines[k].disabled) continue; +- if (grid.eq(ref_point[0], ref_point[1], this->points[lines[k].idx[0]][0], this->points[lines[k].idx[0]][1])) { ++ auto idk0 = lines[k].idx[0]; // make it easier to read and debug ++ auto idk1 = lines[k].idx[1]; ++ if (grid.eq(ref_point[0], ref_point[1], this->points[idk0][0], this->points[idk0][1])) { + current_line = k; + current_point = 0; + goto found_next_line_in_open_path; + } +- if (grid.eq(ref_point[0], ref_point[1], this->points[lines[k].idx[1]][0], this->points[lines[k].idx[1]][1])) { ++ if (grid.eq(ref_point[0], ref_point[1], this->points[idk1][0], this->points[idk1][1])) { + current_line = k; + current_point = 1; + goto found_next_line_in_open_path; +@@ -501,13 +513,20 @@ DxfData::DxfData(double fn, double fs, double fa, + auto lv = grid.data(ref_point[0], ref_point[1]); + for (size_t ki = 0; ki < lv.size(); ++ki) { + int k = lv.at(ki); ++ if (k < 0 || k >= lines.size()) { ++ LOG(message_group::Warning,Location::NONE,"", ++ "Bad DXF line index in %1$s.",QuotedString(boostfs_uncomplete(filename, fs::current_path()).generic_string())); ++ continue; ++ } + if (lines[k].disabled) continue; +- if (grid.eq(ref_point[0], ref_point[1], this->points[lines[k].idx[0]][0], this->points[lines[k].idx[0]][1])) { ++ auto idk0 = lines[k].idx[0]; // make it easier to read and debug ++ auto idk1 = lines[k].idx[1]; ++ if (grid.eq(ref_point[0], ref_point[1], this->points[idk0][0], this->points[idk0][1])) { + current_line = k; + current_point = 0; + goto found_next_line_in_closed_path; + } +- if (grid.eq(ref_point[0], ref_point[1], this->points[lines[k].idx[1]][0], this->points[lines[k].idx[1]][1])) { ++ if (grid.eq(ref_point[0], ref_point[1], this->points[idk1][0], this->points[idk1][1])) { + current_line = k; + current_point = 1; + goto found_next_line_in_closed_path; +-- +2.35.1 + diff --git a/media-gfx/openscad/files/openscad-2021.01-CVE-2022-0497-Out-of-bounds-memory-access-in-comment.patch b/media-gfx/openscad/files/openscad-2021.01-CVE-2022-0497-Out-of-bounds-memory-access-in-comment.patch new file mode 100644 index 000000000000..39ef72406f47 --- /dev/null +++ b/media-gfx/openscad/files/openscad-2021.01-CVE-2022-0497-Out-of-bounds-memory-access-in-comment.patch @@ -0,0 +1,25 @@ +From https://github.com/openscad/openscad/commit/84addf3c1efbd51d8ff424b7da276400bbfa1a4b Mon Sep 17 00:00:00 2001 +From: Torsten Paul +Date: Sat, 5 Feb 2022 18:45:29 +0100 +Subject: [PATCH 02/11] CVE-2022-0497 Out-of-bounds memory access in comment + parser. + +Public issue: +https://github.com/openscad/openscad/issues/4043 + +Fix in master branch: +https://github.com/openscad/openscad/pull/4044 +--- a/src/comment.cpp ++++ b/src/comment.cpp +@@ -92,7 +92,7 @@ static std::string getComment(const std::string &fulltext, int line) + } + + int end = start + 1; +- while (fulltext[end] != '\n') end++; ++ while (end < fulltext.size() && fulltext[end] != '\n') end++; + + std::string comment = fulltext.substr(start, end - start); + +-- +2.35.1 + diff --git a/media-gfx/openscad/files/openscad-2021.01-Fix-build-failure-with-generic_print_polyhedron-on-C.patch b/media-gfx/openscad/files/openscad-2021.01-Fix-build-failure-with-generic_print_polyhedron-on-C.patch new file mode 100644 index 000000000000..f09954bf01be --- /dev/null +++ b/media-gfx/openscad/files/openscad-2021.01-Fix-build-failure-with-generic_print_polyhedron-on-C.patch @@ -0,0 +1,42 @@ +https://bugs.gentoo.org/851189 +From https://github.com/openscad/openscad/commit/9aa0d7e9f2914fe5f547bdde69202161d1c6064d Mon Sep 17 00:00:00 2001 +From: Jordan Brown +Date: Sun, 18 Jul 2021 21:01:46 -0700 +Subject: [PATCH 05/11] Fix build failure with "generic_print_polyhedron" on + CGAL-5.3. + +--- a/src/cgalutils-polyhedron.cc ++++ b/src/cgalutils-polyhedron.cc +@@ -337,19 +337,6 @@ namespace CGALUtils { + } + }; + +- template +- 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 */ +--- 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 std::string printPolyhedron(const Polyhedron &p); + template bool createPolySetFromPolyhedron(const Polyhedron &p, PolySet &ps); + template bool createPolyhedronFromPolySet(const PolySet &ps, Polyhedron &p); + template +-- +2.35.1 + diff --git a/media-gfx/openscad/files/openscad-2021.01-Fix-build-issue-with-overloaded-join.patch b/media-gfx/openscad/files/openscad-2021.01-Fix-build-issue-with-overloaded-join.patch new file mode 100644 index 000000000000..7a70b183d447 --- /dev/null +++ b/media-gfx/openscad/files/openscad-2021.01-Fix-build-issue-with-overloaded-join.patch @@ -0,0 +1,60 @@ +https://bugs.gentoo.org/851189 +From https://github.com/openscad/openscad/commit/08bf69b4115c989fc5671254e0d05735d01bcca5 Mon Sep 17 00:00:00 2001 +From: Torsten Paul +Date: Wed, 2 Feb 2022 00:50:43 +0100 +Subject: [PATCH 10/11] Fix build issue with overloaded join(). + +--- a/src/openscad.cc ++++ b/src/openscad.cc +@@ -65,7 +65,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -307,7 +306,7 @@ void set_render_color_scheme(const std::string color_scheme, const bool exit_if_ + } + + if (exit_if_not_found) { +- LOG(message_group::None,Location::NONE,"",(boost::join(ColorMap::inst()->colorSchemeNames(), "\n"))); ++ LOG(message_group::None,Location::NONE,"",(boost::algorithm::join(ColorMap::inst()->colorSchemeNames(), "\n"))); + + exit(1); + } else { +@@ -885,7 +884,7 @@ struct CommaSeparatedVector + }; + + template +-std::string join(const Seq &seq, const std::string &sep, const ToString &toString) ++std::string str_join(const Seq &seq, const std::string &sep, const ToString &toString) + { + return boost::algorithm::join(boost::adaptors::transform(seq, toString), sep); + } +@@ -947,7 +946,7 @@ int main(int argc, char **argv) + ("P,P", po::value(), "customizer parameter set") + #ifdef ENABLE_EXPERIMENTAL + ("enable", po::value>(), ("enable experimental features: " + +- join(boost::make_iterator_range(Feature::begin(), Feature::end()), " | ", ++ str_join(boost::make_iterator_range(Feature::begin(), Feature::end()), " | ", + [](const Feature *feature) { + return feature->get_name(); + }) + +@@ -964,11 +963,11 @@ int main(int argc, char **argv) + ("render", po::value()->implicit_value(""), "for full geometry evaluation when exporting png") + ("preview", po::value()->implicit_value(""), "[=throwntogether] -for ThrownTogether preview png") + ("animate", po::value(), "export N animated frames") +- ("view", po::value(), ("=view options: " + boost::join(viewOptions.names(), " | ")).c_str()) ++ ("view", po::value(), ("=view options: " + boost::algorithm::join(viewOptions.names(), " | ")).c_str()) + ("projection", po::value(), "=(o)rtho or (p)erspective when exporting png") + ("csglimit", po::value(), "=n -stop rendering at n CSG elements when exporting png") + ("colorscheme", po::value(), ("=colorscheme: " + +- join(ColorMap::inst()->colorSchemeNames(), " | ", ++ str_join(ColorMap::inst()->colorSchemeNames(), " | ", + [](const std::string& colorScheme) { + return (colorScheme == ColorMap::inst()->defaultColorSchemeName() ? "*" : "") + colorScheme; + }) + +-- +2.35.1 + diff --git a/media-gfx/openscad/files/openscad-2021.01-Remove-double-quoting-of-the-output-file-parameter-f.patch b/media-gfx/openscad/files/openscad-2021.01-Remove-double-quoting-of-the-output-file-parameter-f.patch new file mode 100644 index 000000000000..20167b910ee4 --- /dev/null +++ b/media-gfx/openscad/files/openscad-2021.01-Remove-double-quoting-of-the-output-file-parameter-f.patch @@ -0,0 +1,20 @@ +From https://github.com/openscad/openscad/commit/45a5e3bdd6c8071cb50b9c3f2b14a62554aafc4a Mon Sep 17 00:00:00 2001 +From: Torsten Paul +Date: Thu, 14 Apr 2022 16:07:04 +0200 +Subject: [PATCH 11/11] Remove double quoting of the output file parameter for + ghostscript. + +--- a/tests/export_pngtest.py ++++ b/tests/export_pngtest.py +@@ -82,7 +82,7 @@ result = subprocess.call(export_cmd, env = fontenv) + if result != 0: + failquit('OpenSCAD failed with return code ' + str(result)) + +-convert_cmd = gs_cmd + ["-sOutputFile=\"" + pngfile + "\"", exportfile] ++convert_cmd = gs_cmd + ["-sOutputFile=" + pngfile, exportfile] + print('Running Converter:', ' '.join(convert_cmd), file=sys.stderr) + result = subprocess.call(convert_cmd) + if result != 0: +-- +2.35.1 + diff --git a/media-gfx/openscad/openscad-2021.01-r4.ebuild b/media-gfx/openscad/openscad-2021.01-r4.ebuild new file mode 100644 index 000000000000..9b67272f4c26 --- /dev/null +++ b/media-gfx/openscad/openscad-2021.01-r4.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit elisp-common qmake-utils xdg + +SITEFILE="50${PN}-gentoo.el" + +DESCRIPTION="The Programmers Solid 3D CAD Modeller" +HOMEPAGE="https://www.openscad.org/" +SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.src.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="emacs" +# tests are not fully working and need cmake which isn't yet +# officially supported. +RESTRICT="test" + +RDEPEND=" + dev-cpp/eigen:3 + dev-libs/boost:= + dev-libs/double-conversion:= + dev-libs/glib:2 + dev-libs/gmp:0= + dev-libs/hidapi + dev-libs/libspnav + dev-libs/libxml2 + dev-libs/libzip:= + dev-libs/mpfr:0= + dev-qt/qtconcurrent:5 + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5[-gles2-only] + dev-qt/qtmultimedia:5 + dev-qt/qtnetwork:5 + dev-qt/qtopengl:5 + dev-qt/qtwidgets:5 + media-gfx/opencsg:= + media-libs/fontconfig + media-libs/freetype + >=media-libs/glew-2.0.0:0= + media-libs/harfbuzz:= + media-libs/lib3mf + sci-mathematics/cgal:= + x11-libs/cairo + >=x11-libs/qscintilla-2.10.3:= + emacs? ( >=app-editors/emacs-23.1:* ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-util/itstool + sys-devel/bison + sys-devel/flex + sys-devel/gettext + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${P}-0001-Gentoo-specific-Disable-ccache-building.patch + "${FILESDIR}"/${P}-0002-fix-to-find-lib3mf-2.patch + "${FILESDIR}"/${P}-CVE-2022-0496-Out-of-bounds-memory-access-in-DXF-loa.patch + "${FILESDIR}"/${P}-CVE-2022-0497-Out-of-bounds-memory-access-in-comment.patch + "${FILESDIR}"/${P}-Fix-build-failure-with-generic_print_polyhedron-on-C.patch + "${FILESDIR}"/${P}-CGAL-build-fix-v5.4-renames-projection-traits-header.patch + "${FILESDIR}"/${P}-Fix-build-issue-with-overloaded-join.patch + "${FILESDIR}"/${P}-Remove-double-quoting-of-the-output-file-parameter-f.patch +) + +src_configure() { + if has ccache ${FEATURES}; then + eqmake5 "PREFIX = ${ESYSROOT}/usr" "CONFIG += ccache" "${PN}.pro" + else + eqmake5 "PREFIX = ${ESYSROOT}/usr" "${PN}.pro" + fi +} + +src_compile() { + default + + if use emacs ; then + elisp-compile contrib/*.el + fi +} + +src_install() { + emake install INSTALL_ROOT="${D}" + + if use emacs; then + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + elisp-install ${PN} contrib/*.el contrib/*.elc + fi + + mv -i "${ED}"/usr/share/openscad/locale "${ED}"/usr/share || die "failed to move locales" + ln -sf ../locale "${ED}"/usr/share/openscad/locale || die + + einstalldocs +} + +pkg_postinst() { + use emacs && elisp-site-regen + xdg_desktop_database_update + xdg_mimeinfo_database_update +} + +pkg_postrm() { + use emacs && elisp-site-regen + xdg_desktop_database_update + xdg_mimeinfo_database_update +} -- cgit v1.2.3