Date: Tuesday, January 3, 2023 @ 00:26:47
  Author: felixonmars
Revision: 1374184

archrelease: copy trunk to community-staging-x86_64

Added:
  prusa-slicer/repos/community-staging-x86_64/
  prusa-slicer/repos/community-staging-x86_64/PKGBUILD
    (from rev 1374183, prusa-slicer/trunk/PKGBUILD)
  prusa-slicer/repos/community-staging-x86_64/prusa-slicer-boost-1.73.patch
    (from rev 1374183, prusa-slicer/trunk/prusa-slicer-boost-1.73.patch)
  prusa-slicer/repos/community-staging-x86_64/prusa-slicer-boost-1.79-p1.patch
    (from rev 1374183, prusa-slicer/trunk/prusa-slicer-boost-1.79-p1.patch)
  prusa-slicer/repos/community-staging-x86_64/prusa-slicer-boost-1.79-p2.patch
    (from rev 1374183, prusa-slicer/trunk/prusa-slicer-boost-1.79-p2.patch)
  prusa-slicer/repos/community-staging-x86_64/prusa-slicer-boost-1.79-p3.patch
    (from rev 1374183, prusa-slicer/trunk/prusa-slicer-boost-1.79-p3.patch)
  prusa-slicer/repos/community-staging-x86_64/prusa-slicer-fix-lcereal-p1.patch
    (from rev 1374183, prusa-slicer/trunk/prusa-slicer-fix-lcereal-p1.patch)
  prusa-slicer/repos/community-staging-x86_64/prusa-slicer-fix-lcereal-p2.patch
    (from rev 1374183, prusa-slicer/trunk/prusa-slicer-fix-lcereal-p2.patch)
  prusa-slicer/repos/community-staging-x86_64/prusa-slicer-uniqueptr.patch
    (from rev 1374183, prusa-slicer/trunk/prusa-slicer-uniqueptr.patch)
  prusa-slicer/repos/community-staging-x86_64/use-system-catch2.patch
    (from rev 1374183, prusa-slicer/trunk/use-system-catch2.patch)

-----------------------------------+
 PKGBUILD                          |  112 ++++++++++++++++++++++++++++++++++++
 prusa-slicer-boost-1.73.patch     |   60 +++++++++++++++++++
 prusa-slicer-boost-1.79-p1.patch  |   81 ++++++++++++++++++++++++++
 prusa-slicer-boost-1.79-p2.patch  |   31 +++++++++
 prusa-slicer-boost-1.79-p3.patch  |   64 ++++++++++++++++++++
 prusa-slicer-fix-lcereal-p1.patch |   66 +++++++++++++++++++++
 prusa-slicer-fix-lcereal-p2.patch |   70 ++++++++++++++++++++++
 prusa-slicer-uniqueptr.patch      |   86 +++++++++++++++++++++++++++
 use-system-catch2.patch           |   40 ++++++++++++
 9 files changed, 610 insertions(+)

Copied: prusa-slicer/repos/community-staging-x86_64/PKGBUILD (from rev 1374183, 
prusa-slicer/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD                           (rev 0)
+++ community-staging-x86_64/PKGBUILD   2023-01-03 00:26:47 UTC (rev 1374184)
@@ -0,0 +1,112 @@
+# Maintainer: Sven-Hendrik Haase <[email protected]>
+# Maintainer: Bruno Pagani <[email protected]>
+
+pkgbase=prusa-slicer
+pkgname=(prusa-slicer slicer-udev)
+pkgver=2.5.0
+pkgrel=4
+pkgdesc="G-code generator for 3D printers (Prusa fork of Slic3r)"
+arch=(x86_64)
+url="https://github.com/prusa3d/PrusaSlicer";
+license=(AGPL3)
+# wx 3.2 is not supported yet 
https://github.com/prusa3d/PrusaSlicer/issues/8299
+depends=(boost-libs curl glew mpfr nlopt tbb qhull openvdb
+         gtk3 libjpeg-turbo opencascade) # wxwidgets-gtk3
+makedepends=(cmake boost cereal cgal eigen expat gtest libpng systemd
+             gst-plugins-base glu webkit2gtk libnotify) # libigl not detected?
+checkdepends=(catch2)
+replaces=(slic3r-prusa3d)
+# prusa-slicer uses a patched wxWidgets and does not work with upstream, 
commit pinned in
+# 
https://github.com/prusa3d/PrusaSlicer/blob/version_${pkgver}/deps/wxWidgets/wxWidgets.cmake
+_wxcommit=489f6118256853cf5b299d595868641938566cdb
+source=(${url}/archive/version_${pkgver}/${pkgname}-${pkgver}.tar.gz
+        
https://github.com/prusa3d/wxWidgets/archive/${_wxcommit}/wxWidgets-${_wxcommit}.tar.gz
+        ${pkgname}-fix-lcereal-p1.patch
+        ${pkgname}-fix-lcereal-p2.patch
+        ${pkgname}-boost-1.79-p1.patch
+        ${pkgname}-boost-1.79-p2.patch
+        ${pkgname}-boost-1.79-p3.patch
+        ${pkgname}-uniqueptr.patch
+        use-system-catch2.patch)
+sha256sums=('dbbf3e10c812d1dc7bae4bd6879e60f864d763b2738b099dd34b9636d0e5eb6a'
+            'b4f0f6aea13b779e87c227dd7a062a6c2af4cad2f4e92b1272e43e2d45eedf51'
+            'fcccc601d893fc1988081e05fefe30f5561f1ef47aaf516295b31127326a4ae0'
+            '0c1084277bc6b9f0e7c28d0e47f98a3a195cdfbb3f0fe973dcb22bf4e6b24670'
+            'a1cddcfb276f2da60cd91226e09ba9869b861cab3108425c9d5c1851e8009e41'
+            'c84babe994db99856abdc62be65f7cd1ff546bebffd928c0b79a434952ec4a6d'
+            '0158f5e22face6174992e9d4bfbf90ca8d79100fdc230f5540c6f01d1bebf6a0'
+            '971c1cfd696846262b326ca58c41df9c82c17320632a29cc415124739b72c254'
+            '3639dc2d290dc9a7d16259e0b421f8d21f16fb4abe46bbb3fab9328930fc5758')
+
+prepare() {
+  cd PrusaSlicer-version_${pkgver}
+  sed -i "s/7.6.2/7.6.3/" src/occt_wrapper/CMakeLists.txt # Hack for 
opencascade 7.6.3
+  patch -p1 < ../use-system-catch2.patch # Borrowed from Debian
+  patch -p1 < ../${pkgname}-fix-lcereal-p1.patch
+  patch -p1 < ../${pkgname}-fix-lcereal-p2.patch
+  patch -p1 < ../${pkgname}-boost-1.79-p1.patch
+  patch -p1 < ../${pkgname}-boost-1.79-p2.patch
+  patch -p1 < ../${pkgname}-boost-1.79-p3.patch || true
+  patch -p1 < ../${pkgname}-uniqueptr.patch
+}
+
+build() {
+  cmake -B deps -S wxWidgets-${_wxcommit} \
+    -DCMAKE_INSTALL_PREFIX="${srcdir}"/deps/destdir/usr/local \
+    -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+    -DBUILD_SHARED_LIBS=OFF \
+    -DwxBUILD_TOOLKIT=gtk3 \
+    -DwxUSE_MEDIACTRL=OFF \
+    -DwxUSE_DETECT_SM=OFF \
+    -DwxUSE_UNICODE=ON \
+    -DwxUSE_UNICODE_UTF8=ON \
+    -DwxUSE_OPENGL=ON \
+    -DwxUSE_LIBPNG=sys \
+    -DwxUSE_ZLIB=sys \
+    -DwxUSE_REGEX=builtin \
+    -DwxUSE_LIBJPEG=sys \
+    -DwxUSE_LIBTIFF=sys \
+    -DwxUSE_EXPAT=sys \
+    -DwxUSE_LIBLZMA=sys \
+    -DwxUSE_LIBSDL=OFF \
+    -DwxUSE_XTEST=OFF
+  cmake --build deps
+  cmake --install deps
+  cmake -B build -S PrusaSlicer-version_${pkgver} \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DCMAKE_INSTALL_LIBDIR=lib \
+    -DOPENVDB_FIND_MODULE_PATH=/usr/lib/cmake/OpenVDB \
+    -DSLIC3R_FHS=ON \
+    -DSLIC3R_PCH=OFF \
+    -DSLIC3R_GTK=3 \
+    -DwxWidgets_USE_STATIC=ON \
+    -DCMAKE_PREFIX_PATH="${srcdir}"/deps/destdir/usr/local
+  make -C build
+}
+
+check() {
+  cd build
+
+  ctest -v
+}
+
+package_prusa-slicer() {
+  optdepends=('slicer-udev: 3D printer connection rules')
+
+  make -C build DESTDIR="${pkgdir}" install
+
+  # Desktop icons
+  mkdir -p "${pkgdir}"/usr/share/icons/hicolor/scalable/apps/
+  ln -s /usr/share/PrusaSlicer/icons/PrusaSlicer.svg 
"${pkgdir}"/usr/share/icons/hicolor/scalable/apps/PrusaSlicer.svg
+  ln -s /usr/share/PrusaSlicer/icons/PrusaSlicer-gcodeviewer.svg 
"${pkgdir}"/usr/share/icons/hicolor/scalable/apps/PrusaSlicer-gcodeviewer.svg
+
+  # Split udev rule
+  mv "${pkgdir}"/usr/lib/udev/ .
+}
+
+package_slicer-udev() {
+  depends=() # Reset dependencies
+
+  install -d "${pkgdir}"/usr/lib/
+  mv udev "${pkgdir}"/usr/lib/
+}

Copied: 
prusa-slicer/repos/community-staging-x86_64/prusa-slicer-boost-1.73.patch (from 
rev 1374183, prusa-slicer/trunk/prusa-slicer-boost-1.73.patch)
===================================================================
--- community-staging-x86_64/prusa-slicer-boost-1.73.patch                      
        (rev 0)
+++ community-staging-x86_64/prusa-slicer-boost-1.73.patch      2023-01-03 
00:26:47 UTC (rev 1374184)
@@ -0,0 +1,60 @@
+From 3a194f91871684b5fc8c6c78300b87e0ee1cb610 Mon Sep 17 00:00:00 2001
+From: Megidd <[email protected]>
+Date: Mon, 21 Sep 2020 18:00:52 +0330
+Subject: [PATCH] Replace deprecated Boost header in "admesh"
+
+---
+ src/admesh/stlinit.cpp | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/admesh/stlinit.cpp b/src/admesh/stlinit.cpp
+index 390fe56a40..6aa2c44177 100644
+--- a/src/admesh/stlinit.cpp
++++ b/src/admesh/stlinit.cpp
+@@ -28,7 +28,7 @@
+ 
+ #include <boost/log/trivial.hpp>
+ #include <boost/nowide/cstdio.hpp>
+-#include <boost/detail/endian.hpp>
++#include <boost/predef/other/endian.h>
+ 
+ #include "stl.h"
+ 
+@@ -36,9 +36,9 @@
+ #error "SEEK_SET not defined"
+ #endif
+ 
+-#ifndef BOOST_LITTLE_ENDIAN
++#if BOOST_ENDIAN_BIG_BYTE
+ extern void stl_internal_reverse_quads(char *buf, size_t cnt);
+-#endif /* BOOST_LITTLE_ENDIAN */
++#endif /* BOOST_ENDIAN_BIG_BYTE */
+ 
+ static FILE* stl_open_count_facets(stl_file *stl, const char *file) 
+ {
+@@ -89,10 +89,10 @@ static FILE* stl_open_count_facets(stl_file *stl, const 
char *file)
+       // Read the int following the header.  This should contain # of facets.
+               uint32_t header_num_facets;
+       bool header_num_faces_read = fread(&header_num_facets, 
sizeof(uint32_t), 1, fp) != 0;
+-#ifndef BOOST_LITTLE_ENDIAN
++#if BOOST_ENDIAN_BIG_BYTE
+       // Convert from little endian to big endian.
+       stl_internal_reverse_quads((char*)&header_num_facets, 4);
+-#endif /* BOOST_LITTLE_ENDIAN */
++#endif /* BOOST_ENDIAN_BIG_BYTE */
+       if (! header_num_faces_read || num_facets != header_num_facets)
+                       BOOST_LOG_TRIVIAL(info) << "stl_open_count_facets: 
Warning: File size doesn't match number of facets in the header: " << file;
+       }
+@@ -158,10 +158,10 @@ static bool stl_read(stl_file *stl, FILE *fp, int 
first_facet, bool first)
+                       // Read a single facet from a binary .STL file. We 
assume little-endian architecture!
+                       if (fread(&facet, 1, SIZEOF_STL_FACET, fp) != 
SIZEOF_STL_FACET)
+                               return false;
+-#ifndef BOOST_LITTLE_ENDIAN
++#if BOOST_ENDIAN_BIG_BYTE
+                       // Convert the loaded little endian data to big endian.
+                       stl_internal_reverse_quads((char*)&facet, 48);
+-#endif /* BOOST_LITTLE_ENDIAN */
++#endif /* BOOST_ENDIAN_BIG_BYTE */
+       } else {
+                       // Read a single facet from an ASCII .STL file
+                       // skip solid/endsolid

Copied: 
prusa-slicer/repos/community-staging-x86_64/prusa-slicer-boost-1.79-p1.patch 
(from rev 1374183, prusa-slicer/trunk/prusa-slicer-boost-1.79-p1.patch)
===================================================================
--- community-staging-x86_64/prusa-slicer-boost-1.79-p1.patch                   
        (rev 0)
+++ community-staging-x86_64/prusa-slicer-boost-1.79-p1.patch   2023-01-03 
00:26:47 UTC (rev 1374184)
@@ -0,0 +1,81 @@
+From 408e56f0390f20aaf793e0aa0c70c4d9544401d4 Mon Sep 17 00:00:00 2001
+From: Vojtech Bubnik <[email protected]>
+Date: Mon, 25 Apr 2022 08:33:48 +0200
+Subject: [PATCH] Fix of Boost 1.79 deprecated boost::filesystem::ofstream
+ #8238 Replacing boost::filesystem::fstream with boost::nowide::fstream
+ variants with the unfortunate cost of string path conversion on Windows from
+ 16 bits to UTF8 and back to 16 bits.
+
+Unfortunately we cannot use std::filesystem yet as it is missing
+on older MACs and because the interface is crooked minefield on Windows
+see https://github.com/microsoft/STL/issues/909
+---
+ src/hints/HintsToPot.cpp            | 2 +-
+ src/libslic3r/Preset.cpp            | 2 +-
+ src/slic3r/GUI/HintNotification.cpp | 8 +++++---
+ 3 files changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/src/hints/HintsToPot.cpp b/src/hints/HintsToPot.cpp
+index 7c8029cdeb..4791f0612f 100644
+--- a/src/hints/HintsToPot.cpp
++++ b/src/hints/HintsToPot.cpp
+@@ -9,7 +9,7 @@
+ 
+ bool write_to_pot(boost::filesystem::path path, const 
std::vector<std::pair<std::string, std::string>>& data)
+ {
+-      boost::filesystem::ofstream file(std::move(path), std::ios_base::app);
++      boost::nowide::ofstream file(path.string(), std::ios_base::app);
+       for (const auto& element : data)
+       {
+               //Example of .pot element 
+diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
+index f3a1c15b3e..f171cb14dd 100644
+--- a/src/libslic3r/Preset.cpp
++++ b/src/libslic3r/Preset.cpp
+@@ -84,7 +84,7 @@ ConfigFileType guess_config_file_type(const ptree &tree)
+ VendorProfile VendorProfile::from_ini(const boost::filesystem::path &path, 
bool load_all)
+ {
+     ptree tree;
+-    boost::filesystem::ifstream ifs(path);
++    boost::nowide::ifstream ifs(path.string());
+     boost::property_tree::read_ini(ifs, tree);
+     return VendorProfile::from_ini(tree, path, load_all);
+ }
+diff --git a/src/slic3r/GUI/HintNotification.cpp 
b/src/slic3r/GUI/HintNotification.cpp
+index 93e0fb3259..820b74eedb 100644
+--- a/src/slic3r/GUI/HintNotification.cpp
++++ b/src/slic3r/GUI/HintNotification.cpp
+@@ -14,12 +14,14 @@
+ #include "libslic3r/Config.hpp"
+ #include "libslic3r/PrintConfig.hpp"
+ 
++#include <map>
++
+ #include <boost/algorithm/string/replace.hpp>
+ #include <boost/filesystem.hpp>
+ #include <boost/nowide/fstream.hpp>
+ #include <boost/log/trivial.hpp>
+ #include <boost/property_tree/ini_parser.hpp>
+-#include <map>
++
+ #include <cereal/archives/binary.hpp>
+ #include <cereal/types/string.hpp>
+ #include <cereal/types/vector.hpp>
+@@ -65,7 +67,7 @@ inline void push_style_color(ImGuiCol idx, const ImVec4& 
col, bool fading_out, f
+ 
+ void write_used_binary(const std::vector<std::string>& ids)
+ {
+-      boost::filesystem::ofstream file((boost::filesystem::path(data_dir()) / 
"cache" / "hints.cereal"), std::ios::binary);
++      boost::nowide::ofstream file((boost::filesystem::path(data_dir()) / 
"cache" / "hints.cereal").string(), std::ios::binary);
+       cereal::BinaryOutputArchive archive(file);
+               HintsCerealData cd { ids };
+       try
+@@ -84,7 +86,7 @@ void read_used_binary(std::vector<std::string>& ids)
+               BOOST_LOG_TRIVIAL(warning) << "Failed to load to hints.cereal. 
File does not exists. " << path.string();
+               return;
+       }
+-      boost::filesystem::ifstream file(path);
++      boost::nowide::ifstream file(path.string());
+       cereal::BinaryInputArchive archive(file);
+       HintsCerealData cd;
+       try

Copied: 
prusa-slicer/repos/community-staging-x86_64/prusa-slicer-boost-1.79-p2.patch 
(from rev 1374183, prusa-slicer/trunk/prusa-slicer-boost-1.79-p2.patch)
===================================================================
--- community-staging-x86_64/prusa-slicer-boost-1.79-p2.patch                   
        (rev 0)
+++ community-staging-x86_64/prusa-slicer-boost-1.79-p2.patch   2023-01-03 
00:26:47 UTC (rev 1374184)
@@ -0,0 +1,31 @@
+From 926ae0471800abd1e5335e251a5934570eb8f6ff Mon Sep 17 00:00:00 2001
+From: Vojtech Bubnik <[email protected]>
+Date: Mon, 25 Apr 2022 11:32:03 +0200
+Subject: [PATCH] Follow-up to 408e56f0390f20aaf793e0aa0c70c4d9544401d4 Fixing
+ compilation of tests on latest GCC/boost
+
+---
+ tests/fff_print/test_data.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tests/fff_print/test_data.cpp b/tests/fff_print/test_data.cpp
+index 32e31c264c..f7077007db 100644
+--- a/tests/fff_print/test_data.cpp
++++ b/tests/fff_print/test_data.cpp
+@@ -11,6 +11,7 @@
+ #include <string>
+ 
+ #include <boost/nowide/cstdio.hpp>
++#include <boost/nowide/fstream.hpp>
+ #include <boost/filesystem.hpp>
+ #include <libslic3r/ModelArrange.hpp>
+ 
+@@ -286,7 +287,7 @@ std::string gcode(Print & print)
+     print.set_status_silent();
+     print.process();
+     print.export_gcode(temp.string(), nullptr, nullptr);
+-    std::ifstream t(temp.string());
++    boost::nowide::ifstream t(temp.string());
+       std::string str((std::istreambuf_iterator<char>(t)), 
std::istreambuf_iterator<char>());
+       boost::nowide::remove(temp.string().c_str());
+       return str;

Copied: 
prusa-slicer/repos/community-staging-x86_64/prusa-slicer-boost-1.79-p3.patch 
(from rev 1374183, prusa-slicer/trunk/prusa-slicer-boost-1.79-p3.patch)
===================================================================
--- community-staging-x86_64/prusa-slicer-boost-1.79-p3.patch                   
        (rev 0)
+++ community-staging-x86_64/prusa-slicer-boost-1.79-p3.patch   2023-01-03 
00:26:47 UTC (rev 1374184)
@@ -0,0 +1,64 @@
+From 436a454b2e5dc823c6a878b836f82f56922e8834 Mon Sep 17 00:00:00 2001
+From: KARBOWSKI Piotr <[email protected]>
+Date: Mon, 9 May 2022 10:35:50 +0200
+Subject: [PATCH] Fix building with new Boost 1.79.0.
+
+Fixes #8302
+---
+ src/slic3r/GUI/DesktopIntegrationDialog.cpp | 3 ++-
+ src/slic3r/GUI/GUI_App.cpp                  | 1 +
+ src/slic3r/Utils/AppUpdater.cpp             | 3 ++-
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/slic3r/GUI/DesktopIntegrationDialog.cpp 
b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
+index 81c681bc3a..7f99a505c6 100644
+--- a/src/slic3r/GUI/DesktopIntegrationDialog.cpp
++++ b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
+@@ -10,6 +10,7 @@
+ #include "libslic3r/Platform.hpp"
+ #include "libslic3r/Config.hpp"
+ 
++#include <boost/nowide/fstream.hpp>
+ #include <boost/filesystem.hpp>
+ #include <boost/log/trivial.hpp>
+ #include <boost/dll/runtime_symbol_info.hpp>
+@@ -503,4 +504,4 @@ DesktopIntegrationDialog::~DesktopIntegrationDialog()
+ 
+ } // namespace GUI
+ } // namespace Slic3r
+-#endif // __linux__
+\ No newline at end of file
++#endif // __linux__
+diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
+index 8533854f4d..4435f836b3 100644
+--- a/src/slic3r/GUI/GUI_App.cpp
++++ b/src/slic3r/GUI/GUI_App.cpp
+@@ -13,6 +13,7 @@
+ #include <cstdlib>
+ #include <regex>
+ #include <string_view>
++#include <boost/nowide/fstream.hpp>
+ #include <boost/algorithm/string/predicate.hpp>
+ #include <boost/algorithm/string.hpp>
+ #include <boost/format.hpp>
+diff --git a/src/slic3r/Utils/AppUpdater.cpp b/src/slic3r/Utils/AppUpdater.cpp
+index 60739ccb39..80f31f69f7 100644
+--- a/src/slic3r/Utils/AppUpdater.cpp
++++ b/src/slic3r/Utils/AppUpdater.cpp
+@@ -5,6 +5,7 @@
+ 
+ #include <boost/filesystem.hpp>
+ #include <boost/log/trivial.hpp>
++#include <boost/nowide/fstream.hpp>
+ #include <boost/nowide/convert.hpp>
+ #include <boost/property_tree/ini_parser.hpp> 
+ #include <curl/curl.h>
+@@ -242,7 +243,7 @@ boost::filesystem::path 
AppUpdater::priv::download_file(const DownloadAppData& d
+                       tmp_path += format(".%1%%2%", get_current_pid(), 
".download");
+                       try
+                       {
+-                              boost::filesystem::fstream file(tmp_path, 
std::ios::out | std::ios::binary | std::ios::trunc);
++                              boost::nowide::fstream file(tmp_path, 
std::ios::out | std::ios::binary | std::ios::trunc);
+                               file.write(body.c_str(), body.size());
+                               file.close();
+                               boost::filesystem::rename(tmp_path, dest_path);

Copied: 
prusa-slicer/repos/community-staging-x86_64/prusa-slicer-fix-lcereal-p1.patch 
(from rev 1374183, prusa-slicer/trunk/prusa-slicer-fix-lcereal-p1.patch)
===================================================================
--- community-staging-x86_64/prusa-slicer-fix-lcereal-p1.patch                  
        (rev 0)
+++ community-staging-x86_64/prusa-slicer-fix-lcereal-p1.patch  2023-01-03 
00:26:47 UTC (rev 1374184)
@@ -0,0 +1,66 @@
+From 0ffcfd8393457fd035576436752267c9a1e6bbcc Mon Sep 17 00:00:00 2001
+From: Yuri D'Elia <[email protected]>
+Date: Mon, 24 Jan 2022 20:21:24 +0100
+Subject: [PATCH] Use namespaces to link against libcereal >= 1.3.1
+
+Create an alias for previous versions.
+---
+ CMakeLists.txt               | 3 +++
+ src/CMakeLists.txt           | 2 +-
+ src/libslic3r/CMakeLists.txt | 2 +-
+ src/slic3r/CMakeLists.txt    | 2 +-
+ 4 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 72fd87d224..ba458ec962 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -506,6 +506,9 @@ endif ()
+ 
+ # Find the Cereal serialization library
+ find_package(cereal REQUIRED)
++if (NOT TARGET cereal::cereal)
++    add_library(cereal::cereal ALIAS cereal)
++endif ()
+ 
+ # l10n
+ set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ab1c7b9645..bd5eb94a5e 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -126,7 +126,7 @@ if (NOT WIN32 AND NOT APPLE)
+     set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer")
+ endif ()
+ 
+-target_link_libraries(PrusaSlicer libslic3r cereal)
++target_link_libraries(PrusaSlicer libslic3r cereal::cereal)
+
+ if (APPLE)
+ #    add_compile_options(-stdlib=libc++)
+diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
+index 046aba7631..36344ebab9 100644
+--- a/src/libslic3r/CMakeLists.txt
++++ b/src/libslic3r/CMakeLists.txt
+@@ -358,7 +358,7 @@ find_package(JPEG REQUIRED)
+ target_link_libraries(libslic3r
+     libnest2d
+     admesh
+-    cereal
++    cereal::cereal
+     libigl
+     miniz
+     boost_libs
+diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
+index 34c0efd014..b23db9867f 100644
+--- a/src/slic3r/CMakeLists.txt
++++ b/src/slic3r/CMakeLists.txt
+@@ -270,7 +270,7 @@ endforeach()
+ 
+ encoding_check(libslic3r_gui)
+ 
+-target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui GLEW::GLEW 
OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
++target_link_libraries(libslic3r_gui libslic3r avrdude cereal::cereal imgui 
GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
+ 
+ if (MSVC)
+     target_link_libraries(libslic3r_gui Setupapi.lib)

Copied: 
prusa-slicer/repos/community-staging-x86_64/prusa-slicer-fix-lcereal-p2.patch 
(from rev 1374183, prusa-slicer/trunk/prusa-slicer-fix-lcereal-p2.patch)
===================================================================
--- community-staging-x86_64/prusa-slicer-fix-lcereal-p2.patch                  
        (rev 0)
+++ community-staging-x86_64/prusa-slicer-fix-lcereal-p2.patch  2023-01-03 
00:26:47 UTC (rev 1374184)
@@ -0,0 +1,70 @@
+From cc788ebb643b6d4048f3550235ac3e9d3697ada0 Mon Sep 17 00:00:00 2001
+From: tamasmeszaros <[email protected]>
+Date: Tue, 22 Feb 2022 11:36:27 +0100
+Subject: [PATCH] Fix and merge PR #7809
+
+---
+ CMakeLists.txt               | 7 +++++--
+ src/CMakeLists.txt           | 2 +-
+ src/libslic3r/CMakeLists.txt | 2 +-
+ src/slic3r/CMakeLists.txt    | 2 +-
+ 4 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ba458ec962..6c6afe6710 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -506,9 +506,12 @@ endif ()
+ 
+ # Find the Cereal serialization library
+ find_package(cereal REQUIRED)
++add_library(libcereal INTERFACE)
+ if (NOT TARGET cereal::cereal)
+-    add_library(cereal::cereal ALIAS cereal)
+-endif ()
++    target_link_libraries(libcereal INTERFACE cereal)
++else()
++    target_link_libraries(libcereal INTERFACE cereal::cereal)
++endif()
+ 
+ # l10n
+ set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index bd5eb94a5e..61a2a90d8b 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -126,7 +126,7 @@ if (NOT WIN32 AND NOT APPLE)
+     set_target_properties(PrusaSlicer PROPERTIES OUTPUT_NAME "prusa-slicer")
+ endif ()
+ 
+-target_link_libraries(PrusaSlicer libslic3r cereal::cereal)
++target_link_libraries(PrusaSlicer libslic3r libcereal)
+
+ if (APPLE)
+ #    add_compile_options(-stdlib=libc++)
+diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
+index 36344ebab9..5e8d681f1a 100644
+--- a/src/libslic3r/CMakeLists.txt
++++ b/src/libslic3r/CMakeLists.txt
+@@ -358,7 +358,7 @@ find_package(JPEG REQUIRED)
+ target_link_libraries(libslic3r
+     libnest2d
+     admesh
+-    cereal::cereal
++    libcereal
+     libigl
+     miniz
+     boost_libs
+diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
+index b23db9867f..022bba2a8a 100644
+--- a/src/slic3r/CMakeLists.txt
++++ b/src/slic3r/CMakeLists.txt
+@@ -270,7 +270,7 @@ endforeach()
+ 
+ encoding_check(libslic3r_gui)
+ 
+-target_link_libraries(libslic3r_gui libslic3r avrdude cereal::cereal imgui 
GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
++target_link_libraries(libslic3r_gui libslic3r avrdude libcereal imgui 
GLEW::GLEW OpenGL::GL hidapi libcurl ${wxWidgets_LIBRARIES})
+ 
+ if (MSVC)
+     target_link_libraries(libslic3r_gui Setupapi.lib)

Copied: 
prusa-slicer/repos/community-staging-x86_64/prusa-slicer-uniqueptr.patch (from 
rev 1374183, prusa-slicer/trunk/prusa-slicer-uniqueptr.patch)
===================================================================
--- community-staging-x86_64/prusa-slicer-uniqueptr.patch                       
        (rev 0)
+++ community-staging-x86_64/prusa-slicer-uniqueptr.patch       2023-01-03 
00:26:47 UTC (rev 1374184)
@@ -0,0 +1,86 @@
+From 4b686af12db49500205ca15038fb7d651ccc4295 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= <[email protected]>
+Date: Tue, 18 Oct 2022 01:23:47 +0200
+Subject: [PATCH] Fixed undefined behavior (dereferencing std::unique_ptr
+ pointing to nullptr) in the G-Code processing pipeline.
+
+---
+ src/libslic3r/GCode.cpp | 36 ++++++++++++++++++------------------
+ 1 file changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp
+index f8fc2e5a70..c74ee32ddb 100644
+--- a/src/libslic3r/GCode.cpp
++++ b/src/libslic3r/GCode.cpp
+@@ -1551,27 +1551,27 @@ void GCode::process_layers(
+             }
+         });
+     const auto spiral_vase = tbb::make_filter<LayerResult, 
LayerResult>(slic3r_tbb_filtermode::serial_in_order,
+-        [&spiral_vase = *this->m_spiral_vase](LayerResult in) -> LayerResult {
++        [spiral_vase = this->m_spiral_vase.get()](LayerResult in) -> 
LayerResult {
+             if (in.nop_layer_result)
+                 return in;
+ 
+-            spiral_vase.enable(in.spiral_vase_enable);
+-            return { spiral_vase.process_layer(std::move(in.gcode)), 
in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush};
++            spiral_vase->enable(in.spiral_vase_enable);
++            return { spiral_vase->process_layer(std::move(in.gcode)), 
in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush};
+         });
+     const auto pressure_equalizer = tbb::make_filter<LayerResult, 
LayerResult>(slic3r_tbb_filtermode::serial_in_order,
+-        [&pressure_equalizer = *this->m_pressure_equalizer](LayerResult in) 
-> LayerResult {
+-            return pressure_equalizer.process_layer(std::move(in));
++        [pressure_equalizer = this->m_pressure_equalizer.get()](LayerResult 
in) -> LayerResult {
++            return pressure_equalizer->process_layer(std::move(in));
+         });
+     const auto cooling = tbb::make_filter<LayerResult, 
std::string>(slic3r_tbb_filtermode::serial_in_order,
+-        [&cooling_buffer = *this->m_cooling_buffer](LayerResult in) -> 
std::string {
++        [cooling_buffer = this->m_cooling_buffer.get()](LayerResult in) -> 
std::string {
+              if (in.nop_layer_result)
+                 return in.gcode;
+ 
+-             return cooling_buffer.process_layer(std::move(in.gcode), 
in.layer_id, in.cooling_buffer_flush);
++             return cooling_buffer->process_layer(std::move(in.gcode), 
in.layer_id, in.cooling_buffer_flush);
+         });
+     const auto find_replace = tbb::make_filter<std::string, 
std::string>(slic3r_tbb_filtermode::serial_in_order,
+-        [&self = *this->m_find_replace](std::string s) -> std::string {
+-            return self.process_layer(std::move(s));
++        [find_replace = this->m_find_replace.get()](std::string s) -> 
std::string {
++            return find_replace->process_layer(std::move(s));
+         });
+     const auto output = tbb::make_filter<std::string, 
void>(slic3r_tbb_filtermode::serial_in_order,
+         [&output_stream](std::string s) { output_stream.write(s); }
+@@ -1633,25 +1633,25 @@ void GCode::process_layers(
+             }
+         });
+     const auto spiral_vase = tbb::make_filter<LayerResult, 
LayerResult>(slic3r_tbb_filtermode::serial_in_order,
+-        [&spiral_vase = *this->m_spiral_vase](LayerResult in)->LayerResult {
++        [spiral_vase = this->m_spiral_vase.get()](LayerResult 
in)->LayerResult {
+             if (in.nop_layer_result)
+                 return in;
+-            spiral_vase.enable(in.spiral_vase_enable);
+-            return { spiral_vase.process_layer(std::move(in.gcode)), 
in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush };
++            spiral_vase->enable(in.spiral_vase_enable);
++            return { spiral_vase->process_layer(std::move(in.gcode)), 
in.layer_id, in.spiral_vase_enable, in.cooling_buffer_flush };
+         });
+     const auto pressure_equalizer = tbb::make_filter<LayerResult, 
LayerResult>(slic3r_tbb_filtermode::serial_in_order,
+-        [&pressure_equalizer = *this->m_pressure_equalizer](LayerResult in) 
-> LayerResult {
+-             return pressure_equalizer.process_layer(std::move(in));
++        [pressure_equalizer = this->m_pressure_equalizer.get()](LayerResult 
in) -> LayerResult {
++             return pressure_equalizer->process_layer(std::move(in));
+         });
+     const auto cooling = tbb::make_filter<LayerResult, 
std::string>(slic3r_tbb_filtermode::serial_in_order,
+-        [&cooling_buffer = *this->m_cooling_buffer](LayerResult 
in)->std::string {
++        [cooling_buffer = this->m_cooling_buffer.get()](LayerResult 
in)->std::string {
+             if (in.nop_layer_result)
+                 return in.gcode;
+-            return cooling_buffer.process_layer(std::move(in.gcode), 
in.layer_id, in.cooling_buffer_flush);
++            return cooling_buffer->process_layer(std::move(in.gcode), 
in.layer_id, in.cooling_buffer_flush);
+         });
+     const auto find_replace = tbb::make_filter<std::string, 
std::string>(slic3r_tbb_filtermode::serial_in_order,
+-        [&self = *this->m_find_replace](std::string s) -> std::string {
+-            return self.process_layer(std::move(s));
++        [find_replace = this->m_find_replace.get()](std::string s) -> 
std::string {
++            return find_replace->process_layer(std::move(s));
+         });
+     const auto output = tbb::make_filter<std::string, 
void>(slic3r_tbb_filtermode::serial_in_order,
+         [&output_stream](std::string s) { output_stream.write(s); }

Copied: prusa-slicer/repos/community-staging-x86_64/use-system-catch2.patch 
(from rev 1374183, prusa-slicer/trunk/use-system-catch2.patch)
===================================================================
--- community-staging-x86_64/use-system-catch2.patch                            
(rev 0)
+++ community-staging-x86_64/use-system-catch2.patch    2023-01-03 00:26:47 UTC 
(rev 1374184)
@@ -0,0 +1,40 @@
+From: Tobias Frost <[email protected]>
+Date: Mon, 20 Dec 2021 02:29:22 +0800
+Subject: Use packaged catch2 library
+
+Bug-Debian: https://bugs.debian.org/979826
+---
+ tests/CMakeLists.txt | 13 +++----------
+ 1 file changed, 3 insertions(+), 10 deletions(-)
+
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index b91f75b..1322cab 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -4,15 +4,8 @@
+ set(TEST_DATA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data)
+ file(TO_NATIVE_PATH "${TEST_DATA_DIR}" TEST_DATA_DIR)
+ 
+-add_library(Catch2 INTERFACE)
+-list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules/Catch2)
+-target_include_directories(Catch2 INTERFACE ${CMAKE_CURRENT_LIST_DIR})
+-add_library(Catch2::Catch2 ALIAS Catch2)
+-if (APPLE)
+-      # OSX builds targeting OSX 10.9 do not support new 
std::uncought_exception()
+-      # see https://github.com/catchorg/Catch2/issues/1218
+-      target_compile_definitions(Catch2 INTERFACE 
-DCATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS)
+-endif()
++find_package(Catch2 REQUIRED)
++
+ include(Catch)
+ 
+ set(CATCH_EXTRA_ARGS "" CACHE STRING "Extra arguments for catch2 test 
suites.")
+@@ -20,7 +13,7 @@ set(CATCH_EXTRA_ARGS "" CACHE STRING "Extra arguments for 
catch2 test suites.")
+ add_library(test_common INTERFACE)
+ target_compile_definitions(test_common INTERFACE 
TEST_DATA_DIR=R"\(${TEST_DATA_DIR}\)" CATCH_CONFIG_FAST_COMPILE)
+ target_link_libraries(test_common INTERFACE Catch2::Catch2)
+-
++target_include_directories(test_common INTERFACE ${CMAKE_CURRENT_LIST_DIR})
+ if (APPLE)
+     target_link_libraries(test_common INTERFACE "-liconv -framework IOKit" 
"-framework CoreFoundation" -lc++)
+ endif()

Reply via email to