From beb29b6a107e6c15f5e552fbfea995b59d0255ef Mon Sep 17 00:00:00 2001 From: Jason Tibbitts Date: Tue, 13 Aug 2019 14:32:51 -0500 Subject: [PATCH] Initial attempt to update to 2.1.0 alpha1. Signed-off-by: Jason Tibbitts --- ...2eb24d027817b4279f59ebbf0d80bac5f950.patch | 254 ------------------ fix-gizmo-icon-size.patch | 59 ---- mode-switching-fix.patch | 105 -------- patch-expat-includes | 13 - patch-miniz-includes | 65 ----- patch-qhull-includes | 17 -- prusa-slicer.spec | 45 ++-- 7 files changed, 16 insertions(+), 542 deletions(-) delete mode 100644 07282eb24d027817b4279f59ebbf0d80bac5f950.patch delete mode 100644 fix-gizmo-icon-size.patch delete mode 100644 mode-switching-fix.patch delete mode 100644 patch-expat-includes delete mode 100644 patch-miniz-includes delete mode 100644 patch-qhull-includes diff --git a/07282eb24d027817b4279f59ebbf0d80bac5f950.patch b/07282eb24d027817b4279f59ebbf0d80bac5f950.patch deleted file mode 100644 index 3602a20..0000000 --- a/07282eb24d027817b4279f59ebbf0d80bac5f950.patch +++ /dev/null @@ -1,254 +0,0 @@ -From 07282eb24d027817b4279f59ebbf0d80bac5f950 Mon Sep 17 00:00:00 2001 -From: Lukas Matena -Date: Wed, 22 May 2019 16:43:14 +0200 -Subject: [PATCH] Fixed unit tests when run with range checks on std::vector - -There was a bug in unit tests that led to generating the wipe tower with non-normalized preset. -This caused out-of-bounds access into max_layer_height vector in fill_wipe_tower_partitions. -The problem surfaced in https://github.com/prusa3d/PrusaSlicer/issues/2288. -I quickly patched additional normalization of the preset to prevent this from happening. - -Also, an assert in the same function turned out to trip on one of the tests. -This one was commented out for now and will (hopefully) be looked into later. - -Function Print::apply_config was renamed to apply_config_perl_tests_only so everyone -sees its current purpose and does not mistake it for the more important Print::apply. ---- - lib/Slic3r/Print/Simple.pm | 2 +- - lib/Slic3r/Test.pm | 8 ++++---- - src/libslic3r/GCode/ToolOrdering.cpp | 5 ++++- - src/libslic3r/Print.cpp | 28 +++++++++++++++++++++++++--- - src/libslic3r/Print.hpp | 2 +- - src/libslic3r/PrintBase.hpp | 2 +- - src/libslic3r/PrintObject.cpp | 2 +- - src/libslic3r/SLAPrint.cpp | 2 +- - t/combineinfill.t | 2 +- - t/print.t | 2 +- - t/skirt_brim.t | 2 +- - xs/xsp/Print.xsp | 4 ++-- - 12 files changed, 43 insertions(+), 18 deletions(-) - -diff --git a/lib/Slic3r/Print/Simple.pm b/lib/Slic3r/Print/Simple.pm -index b5b749f12..2ab68f4d3 100644 ---- a/lib/Slic3r/Print/Simple.pm -+++ b/lib/Slic3r/Print/Simple.pm -@@ -13,7 +13,7 @@ use Slic3r::Geometry qw(X Y); - has '_print' => ( - is => 'ro', - default => sub { Slic3r::Print->new }, -- handles => [qw(apply_config extruders output_filepath -+ handles => [qw(apply_config_perl_tests_only extruders output_filepath - total_used_filament total_extruded_volume - placeholder_parser process)], - ); -diff --git a/lib/Slic3r/Test.pm b/lib/Slic3r/Test.pm -index b767ca593..d1b99e48c 100644 ---- a/lib/Slic3r/Test.pm -+++ b/lib/Slic3r/Test.pm -@@ -176,7 +176,7 @@ sub init_print { - $config->set('gcode_comments', 1) if $ENV{SLIC3R_TESTS_GCODE}; - - my $print = Slic3r::Print->new; -- $print->apply_config($config); -+ $print->apply_config_perl_tests_only($config); - - $models = [$models] if ref($models) ne 'ARRAY'; - $models = [ map { ref($_) ? $_ : model($_, %params) } @$models ]; -@@ -192,8 +192,8 @@ sub init_print { - $print->add_model_object($model_object); - } - } -- # Call apply_config one more time, so that the layer height profiles are updated over all PrintObjects. -- $print->apply_config($config); -+ # Call apply_config_perl_tests_only one more time, so that the layer height profiles are updated over all PrintObjects. -+ $print->apply_config_perl_tests_only($config); - $print->validate; - - # We return a proxy object in order to keep $models alive as required by the Print API. -@@ -250,7 +250,7 @@ sub add_facet { - package Slic3r::Test::Print; - use Moo; - --has 'print' => (is => 'ro', required => 1, handles => [qw(process apply_config)]); -+has 'print' => (is => 'ro', required => 1, handles => [qw(process apply_config_perl_tests_only)]); - has 'models' => (is => 'ro', required => 1); - - 1; -diff --git a/src/libslic3r/GCode/ToolOrdering.cpp b/src/libslic3r/GCode/ToolOrdering.cpp -index e800cd53f..e25ad91fe 100644 ---- a/src/libslic3r/GCode/ToolOrdering.cpp -+++ b/src/libslic3r/GCode/ToolOrdering.cpp -@@ -327,7 +327,10 @@ void ToolOrdering::fill_wipe_tower_partitions(const PrintConfig &config, coordf_ - LayerTools <_prev = m_layer_tools[j - 1]; - LayerTools <_next = m_layer_tools[j + 1]; - assert(! lt_prev.extruders.empty() && ! lt_next.extruders.empty()); -- assert(lt_prev.extruders.back() == lt_next.extruders.front()); -+ // FIXME: Following assert tripped when running combine_infill.t. I decided to comment it out for now. -+ // If it is a bug, it's likely not critical, because this code is unchanged for a long time. It might -+ // still be worth looking into it more and decide if it is a bug or an obsolete assert. -+ //assert(lt_prev.extruders.back() == lt_next.extruders.front()); - lt_extra.has_wipe_tower = true; - lt_extra.extruders.push_back(lt_next.extruders.front()); - lt_extra.wipe_tower_partitions = lt_next.wipe_tower_partitions; -diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp -index 29bbb49fe..f9129f15a 100644 ---- a/src/libslic3r/Print.cpp -+++ b/src/libslic3r/Print.cpp -@@ -51,7 +51,7 @@ void Print::reload_object(size_t /* idx */) - this->invalidate_all_steps(); - /* TODO: this method should check whether the per-object config and per-material configs - have changed in such a way that regions need to be rearranged or we can just apply -- the diff and invalidate something. Same logic as apply_config() -+ the diff and invalidate something. Same logic as apply() - For now we just re-add all objects since we haven't implemented this incremental logic yet. - This should also check whether object volumes (parts) have changed. */ - // collect all current model objects -@@ -83,7 +83,7 @@ PrintRegion* Print::add_region(const PrintRegionConfig &config) - return m_regions.back(); - } - --// Called by Print::apply_config(). -+// Called by Print::apply(). - // This method only accepts PrintConfig option keys. - bool Print::invalidate_state_by_config_options(const std::vector &opt_keys) - { -@@ -422,10 +422,32 @@ void Print::add_model_object(ModelObject* model_object, int idx) - } - } - --bool Print::apply_config(DynamicPrintConfig config) -+// This function is only called through the Perl-C++ binding from the unit tests, should be -+// removed when unit tests are rewritten to C++. -+bool Print::apply_config_perl_tests_only(DynamicPrintConfig config) - { - tbb::mutex::scoped_lock lock(this->state_mutex()); - -+ -+ // Perl unit tests were failing in case the preset was not normalized (e.g. https://github.com/prusa3d/PrusaSlicer/issues/2288 was caused -+ // by too short max_layer_height vector. Calling the necessary function Preset::normalize(...) is not currently possible because there is no -+ // access to preset. This should be solved when the unit tests are rewritten to C++. For now we just copy-pasted code from Preset.cpp -+ // to make sure the unit tests pass (functions set_num_extruders and nozzle_options()). -+ auto *nozzle_diameter = dynamic_cast(config.option("nozzle_diameter", true)); -+ assert(nozzle_diameter != nullptr); -+ const auto &defaults = FullPrintConfig::defaults(); -+ for (const std::string &key : { "nozzle_diameter", "min_layer_height", "max_layer_height", "extruder_offset", -+ "retract_length", "retract_lift", "retract_lift_above", "retract_lift_below", "retract_speed", "deretract_speed", -+ "retract_before_wipe", "retract_restart_extra", "retract_before_travel", "wipe", -+ "retract_layer_change", "retract_length_toolchange", "retract_restart_extra_toolchange", "extruder_colour" }) -+ { -+ auto *opt = config.option(key, true); -+ assert(opt != nullptr); -+ assert(opt->is_vector()); -+ unsigned int num_extruders = (unsigned int)nozzle_diameter->values.size(); -+ static_cast(opt)->resize(num_extruders, defaults.option(key)); -+ } -+ - // we get a copy of the config object so we can modify it safely - config.normalize(); - -diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp -index be2a9a3bd..53d6d692d 100644 ---- a/src/libslic3r/Print.hpp -+++ b/src/libslic3r/Print.hpp -@@ -294,7 +294,7 @@ class Print : public PrintBaseWithState - // The following three methods are used by the Perl tests only. Get rid of them! - void reload_object(size_t idx); - void add_model_object(ModelObject* model_object, int idx = -1); -- bool apply_config(DynamicPrintConfig config); -+ bool apply_config_perl_tests_only(DynamicPrintConfig config); - - void process() override; - // Exports G-code into a file name based on the path_template, returns the file path of the generated G-code file. -diff --git a/src/libslic3r/PrintBase.hpp b/src/libslic3r/PrintBase.hpp -index a4ef67117..d4c39499c 100644 ---- a/src/libslic3r/PrintBase.hpp -+++ b/src/libslic3r/PrintBase.hpp -@@ -84,7 +84,7 @@ class PrintState : public PrintStateBase - - // Set the step as started. Block on mutex while the Print / PrintObject / PrintRegion objects are being - // modified by the UI thread. -- // This is necessary to block until the Print::apply_config() updates its state, which may -+ // This is necessary to block until the Print::apply() updates its state, which may - // influence the processing step being entered. - template - bool set_started(StepType step, tbb::mutex &mtx, ThrowIfCanceled throw_if_canceled) { -diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp -index bcc61e0bf..660a2d939 100644 ---- a/src/libslic3r/PrintObject.cpp -+++ b/src/libslic3r/PrintObject.cpp -@@ -435,7 +435,7 @@ SupportLayerPtrs::const_iterator PrintObject::insert_support_layer(SupportLayerP - return m_support_layers.insert(pos, new SupportLayer(id, this, height, print_z, slice_z)); - } - --// Called by Print::apply_config(). -+// Called by Print::apply(). - // This method only accepts PrintObjectConfig and PrintRegionConfig option keys. - bool PrintObject::invalidate_state_by_config_options(const std::vector &opt_keys) - { -diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp -index 457be23ba..f0dfddda0 100644 ---- a/src/libslic3r/SLAPrint.cpp -+++ b/src/libslic3r/SLAPrint.cpp -@@ -1552,7 +1552,7 @@ SLAPrintObject::SLAPrintObject(SLAPrint *print, ModelObject *model_object): - - SLAPrintObject::~SLAPrintObject() {} - --// Called by SLAPrint::apply_config(). -+// Called by SLAPrint::apply(). - // This method only accepts SLAPrintObjectConfig option keys. - bool SLAPrintObject::invalidate_state_by_config_options(const std::vector &opt_keys) - { -diff --git a/t/combineinfill.t b/t/combineinfill.t -index 563ecb9c1..8aa0ff5e3 100644 ---- a/t/combineinfill.t -+++ b/t/combineinfill.t -@@ -89,7 +89,7 @@ plan tests => 8; - - # we disable combination after infill has been generated - $config->set('infill_every_layers', 1); -- $print->apply_config($config); -+ $print->apply_config_perl_tests_only($config); - $print->process; - - ok !(defined first { @{$_->get_region(0)->fill_surfaces} == 0 } -diff --git a/t/print.t b/t/print.t -index 6939d5f15..be2db3431 100644 ---- a/t/print.t -+++ b/t/print.t -@@ -44,7 +44,7 @@ use Slic3r::Test; - is $print->print->regions->[0]->config->fill_density, 100, 'region config inherits model object config'; - - # user exports G-code, thus the default config is reapplied -- $print->print->apply_config($config); -+ $print->print->apply_config_perl_tests_only($config); - - is $print->print->regions->[0]->config->fill_density, 100, 'apply_config() does not override per-object settings'; - -diff --git a/t/skirt_brim.t b/t/skirt_brim.t -index 225b0a92f..b05435784 100644 ---- a/t/skirt_brim.t -+++ b/t/skirt_brim.t -@@ -106,7 +106,7 @@ use Slic3r::Test; - - # we enable support material after skirt has been generated - $config->set('support_material', 1); -- $print->apply_config($config); -+ $print->apply_config_perl_tests_only($config); - - my $skirt_length = 0; - my @extrusion_points = (); -diff --git a/xs/xsp/Print.xsp b/xs/xsp/Print.xsp -index f4c04577d..c35f967f8 100644 ---- a/xs/xsp/Print.xsp -+++ b/xs/xsp/Print.xsp -@@ -142,8 +142,8 @@ _constant() - %}; - - void add_model_object(ModelObject* model_object, int idx = -1); -- bool apply_config(DynamicPrintConfig* config) -- %code%{ RETVAL = THIS->apply_config(*config); %}; -+ bool apply_config_perl_tests_only(DynamicPrintConfig* config) -+ %code%{ RETVAL = THIS->apply_config_perl_tests_only(*config); %}; - bool has_infinite_skirt(); - std::vector extruders() const; - int validate() %code%{ diff --git a/fix-gizmo-icon-size.patch b/fix-gizmo-icon-size.patch deleted file mode 100644 index 31cba7c..0000000 --- a/fix-gizmo-icon-size.patch +++ /dev/null @@ -1,59 +0,0 @@ -diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp -index 1280fa6d9..ff2295cd7 100644 ---- a/src/slic3r/GUI/GLCanvas3D.cpp -+++ b/src/slic3r/GUI/GLCanvas3D.cpp -@@ -4098,8 +4098,8 @@ void GLCanvas3D::_render_gizmos_overlay() const - #if ENABLE_RETINA_GL - m_gizmos.set_overlay_scale(m_retina_helper->get_scale_factor()); - #else --// m_gizmos.set_overlay_scale(m_canvas->GetContentScaleFactor()); -- m_gizmos.set_overlay_scale(wxGetApp().em_unit()*0.1f);//! #ys_FIXME_experiment -+ const float size = int(GLGizmosManager::Default_Icons_Size*wxGetApp().toolbar_icon_scale()); -+ m_gizmos.set_overlay_icon_size(size); - #endif /* __WXMSW__ */ - - m_gizmos.render_overlay(*this, m_selection); -diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp -index 472abd6dc..6773dbd30 100644 ---- a/src/slic3r/GUI/GUI_App.cpp -+++ b/src/slic3r/GUI/GUI_App.cpp -@@ -390,6 +390,27 @@ void GUI_App::set_label_clr_sys(const wxColour& clr) { - app_config->save(); - } - -+float GUI_App::toolbar_icon_scale(const bool is_limited/* = false*/) const -+{ -+#ifdef __APPLE__ -+ const float icon_sc = 1.0f; // for Retina display will be used its own scale -+#else -+ const float icon_sc = m_em_unit*0.1f; -+#endif // __APPLE__ -+ -+ const std::string& use_val = app_config->get("use_custom_toolbar_size"); -+ const std::string& val = app_config->get("custom_toolbar_size"); -+ -+ if (val.empty() || use_val.empty() || use_val == "0") -+ return icon_sc; -+ -+ int int_val = atoi(val.c_str()); -+ if (is_limited && int_val < 50) -+ int_val = 50; -+ -+ return 0.01f * int_val * icon_sc; -+} -+ - void GUI_App::recreate_GUI() - { - // Weird things happen as the Paint messages are floating around the windows being destructed. -diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp -index 1c9a462c6..b70f0dc16 100644 ---- a/src/slic3r/GUI/GUI_App.hpp -+++ b/src/slic3r/GUI/GUI_App.hpp -@@ -115,6 +115,7 @@ public: - const wxFont& normal_font() { return m_normal_font; } - size_t em_unit() const { return m_em_unit; } - void set_em_unit(const size_t em_unit) { m_em_unit = em_unit; } -+ float toolbar_icon_scale(const bool is_limited = false) const; - - void recreate_GUI(); - void system_info(); diff --git a/mode-switching-fix.patch b/mode-switching-fix.patch deleted file mode 100644 index 80241af..0000000 --- a/mode-switching-fix.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp -index 472abd6dc..74a574fe3 100644 ---- a/src/slic3r/GUI/GUI_App.cpp -+++ b/src/slic3r/GUI/GUI_App.cpp -@@ -707,7 +707,7 @@ void GUI_App::update_mode() - void GUI_App::add_config_menu(wxMenuBar *menu) - { - auto local_menu = new wxMenu(); -- wxWindowID config_id_base = wxWindow::NewControlId((int)ConfigMenuCnt); -+ wxWindowID config_id_base = wxWindow::NewControlId(int(ConfigMenuCnt)); - - const auto config_wizard_name = _(ConfigWizard::name(true).wx_str()); - const auto config_wizard_tooltip = wxString::Format(_(L("Run %s")), config_wizard_name); -@@ -729,9 +729,9 @@ void GUI_App::add_config_menu(wxMenuBar *menu) - mode_menu->AppendRadioItem(config_id_base + ConfigMenuModeSimple, _(L("Simple")), _(L("Simple View Mode"))); - mode_menu->AppendRadioItem(config_id_base + ConfigMenuModeAdvanced, _(L("Advanced")), _(L("Advanced View Mode"))); - mode_menu->AppendRadioItem(config_id_base + ConfigMenuModeExpert, _(L("Expert")), _(L("Expert View Mode"))); -- Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Check(get_mode() == comSimple); }, config_id_base + ConfigMenuModeSimple); -- Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Check(get_mode() == comAdvanced); }, config_id_base + ConfigMenuModeAdvanced); -- Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { evt.Check(get_mode() == comExpert); }, config_id_base + ConfigMenuModeExpert); -+ Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { if(get_mode() == comSimple) evt.Check(true); }, config_id_base + ConfigMenuModeSimple); -+ Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { if(get_mode() == comAdvanced) evt.Check(true); }, config_id_base + ConfigMenuModeAdvanced); -+ Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { if(get_mode() == comExpert) evt.Check(true); }, config_id_base + ConfigMenuModeExpert); - - local_menu->AppendSubMenu(mode_menu, _(L("Mode")), wxString::Format(_(L("%s View Mode")), SLIC3R_APP_NAME)); - local_menu->AppendSeparator(); -@@ -810,10 +810,14 @@ void GUI_App::add_config_menu(wxMenuBar *menu) - break; - } - }); -- mode_menu->Bind(wxEVT_MENU, [this, config_id_base](wxEvent& event) { -- int id_mode = event.GetId() - config_id_base; -- save_mode(id_mode - ConfigMenuModeSimple); -- }); -+ -+ using std::placeholders::_1; -+ -+ auto modfn = [this](int mode, wxCommandEvent&) { if(get_mode() != mode) save_mode(mode); }; -+ mode_menu->Bind(wxEVT_MENU, std::bind(modfn, comSimple, _1), config_id_base + ConfigMenuModeSimple); -+ mode_menu->Bind(wxEVT_MENU, std::bind(modfn, comAdvanced, _1), config_id_base + ConfigMenuModeAdvanced); -+ mode_menu->Bind(wxEVT_MENU, std::bind(modfn, comExpert, _1), config_id_base + ConfigMenuModeExpert); -+ - menu->Append(local_menu, _(L("&Configuration"))); - } - -diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp -index 103a9ecf0..76ba853dc 100644 ---- a/src/slic3r/GUI/wxExtensions.cpp -+++ b/src/slic3r/GUI/wxExtensions.cpp -@@ -2557,6 +2557,11 @@ ModeSizer::ModeSizer(wxWindow *parent, int hgap/* = 10*/) : - {_(L("Expert")), "mode_expert_sq.png"} - }; - -+ auto modebtnfn = [](wxCommandEvent &event, int mode_id) { -+ Slic3r::GUI::wxGetApp().save_mode(mode_id); -+ event.Skip(); -+ }; -+ - m_mode_btns.reserve(3); - for (const auto& button : buttons) { - #ifdef __WXOSX__ -@@ -2567,37 +2572,22 @@ ModeSizer::ModeSizer(wxWindow *parent, int hgap/* = 10*/) : - #else - m_mode_btns.push_back(new ModeButton(parent, wxID_ANY, button.second, button.first));; - #endif // __WXOSX__ -+ -+ m_mode_btns.back()->Bind(wxEVT_BUTTON, std::bind(modebtnfn, std::placeholders::_1, m_mode_btns.size() - 1)); -+ Add(m_mode_btns.back()); - } -- -- for (auto btn : m_mode_btns) -- { -- btn->Bind(wxEVT_BUTTON, [btn, this](wxCommandEvent &event) { -- event.Skip(); -- int mode_id = 0; -- for (auto cur_btn : m_mode_btns) { -- if (cur_btn == btn) -- break; -- else -- mode_id++; -- } -- Slic3r::GUI::wxGetApp().save_mode(mode_id); -- }); -- -- Add(btn); -- } -- - } - - void ModeSizer::SetMode(const int mode) - { -- for (int m = 0; m < m_mode_btns.size(); m++) -- m_mode_btns[m]->SetState(m == mode); -+ for (size_t m = 0; m < m_mode_btns.size(); m++) -+ m_mode_btns[m]->SetState(int(m) == mode); - } - - - void ModeSizer::msw_rescale() - { -- for (int m = 0; m < m_mode_btns.size(); m++) -+ for (size_t m = 0; m < m_mode_btns.size(); m++) - m_mode_btns[m]->msw_rescale(); - } - diff --git a/patch-expat-includes b/patch-expat-includes deleted file mode 100644 index 2e0cb4c..0000000 --- a/patch-expat-includes +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/libslic3r/Format/AMF.cpp b/src/libslic3r/Format/AMF.cpp -index ff1da37..a3f92e4 100644 ---- a/src/libslic3r/Format/AMF.cpp -+++ b/src/libslic3r/Format/AMF.cpp -@@ -2,7 +2,7 @@ - #include - #include - #include --#include -+#include - - #include - diff --git a/patch-miniz-includes b/patch-miniz-includes deleted file mode 100644 index 5efbca7..0000000 --- a/patch-miniz-includes +++ /dev/null @@ -1,65 +0,0 @@ -diff --git a/src/libslic3r/Format/3mf.cpp b/src/libslic3r/Format/3mf.cpp -index 5a16a6e..2023259 100644 ---- a/src/libslic3r/Format/3mf.cpp -+++ b/src/libslic3r/Format/3mf.cpp -@@ -16,7 +16,7 @@ - - #include - #include --#include -+#include - - // VERSION NUMBERS - // 0 : .3mf, files saved by older slic3r or other applications. No version definition in them. -diff --git a/src/libslic3r/Format/AMF.cpp b/src/libslic3r/Format/AMF.cpp -index a3f92e4..f85c6d6 100644 ---- a/src/libslic3r/Format/AMF.cpp -+++ b/src/libslic3r/Format/AMF.cpp -@@ -16,7 +16,7 @@ - #include - #include - #include --#include -+#include - - #if 0 - // Enable debugging and assert in this file. -diff --git a/src/libslic3r/Format/PRUS.cpp b/src/libslic3r/Format/PRUS.cpp -index 80aae75..04cedc0 100644 ---- a/src/libslic3r/Format/PRUS.cpp -+++ b/src/libslic3r/Format/PRUS.cpp -@@ -4,7 +4,7 @@ - #include - #include - --#include -+#include - - #include - -diff --git a/src/libslic3r/Rasterizer/Rasterizer.cpp b/src/libslic3r/Rasterizer/Rasterizer.cpp -index 6384a24..e121355 100644 ---- a/src/libslic3r/Rasterizer/Rasterizer.cpp -+++ b/src/libslic3r/Rasterizer/Rasterizer.cpp -@@ -15,7 +15,7 @@ - #include - - // Experimental minz image write: --#include -+#include - - namespace Slic3r { - -diff --git a/src/libslic3r/Zipper.cpp b/src/libslic3r/Zipper.cpp -index 4466f1b..16f4f5b 100644 ---- a/src/libslic3r/Zipper.cpp -+++ b/src/libslic3r/Zipper.cpp -@@ -3,7 +3,7 @@ - #include - - #include "Zipper.hpp" --#include "miniz/miniz_zip.h" -+#include - #include - - #include "I18N.hpp" diff --git a/patch-qhull-includes b/patch-qhull-includes deleted file mode 100644 index ffe2b83..0000000 --- a/patch-qhull-includes +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp -index 20c9a9c..4d35cab 100644 ---- a/src/libslic3r/TriangleMesh.cpp -+++ b/src/libslic3r/TriangleMesh.cpp -@@ -2,9 +2,9 @@ - #include "ClipperUtils.hpp" - #include "Geometry.hpp" - #include "Tesselate.hpp" --#include "qhull/src/libqhullcpp/Qhull.h" --#include "qhull/src/libqhullcpp/QhullFacetList.h" --#include "qhull/src/libqhullcpp/QhullVertexSet.h" -+#include -+#include -+#include - #include - #include - #include diff --git a/prusa-slicer.spec b/prusa-slicer.spec index e51d5c8..f783694 100644 --- a/prusa-slicer.spec +++ b/prusa-slicer.spec @@ -2,8 +2,8 @@ %bcond_without perltests Name: prusa-slicer -Version: 2.0.0 -Release: 4%{?dist} +Version: 2.1.0~alpha1 +Release: 1%{?dist} Summary: 3D printing slicer optimized for Prusa printers # The main PrusaSlicer code and resources are AGPLv3, with small parts as @@ -16,8 +16,7 @@ Summary: 3D printing slicer optimized for Prusa printers # that here. License: AGPLv3 URL: https://github.com/prusa3d/PrusaSlicer/ -Source0: https://github.com/prusa3d/PrusaSlicer/archive/version_2.0.0.tar.gz - +Source0: https://github.com/prusa3d/PrusaSlicer/archive/version_2.1.0-alpha1.tar.gz Source1: %name.desktop Source2: %name.appdata.xml @@ -28,26 +27,18 @@ Source2: %name.appdata.xml # https://github.com/prusa3d/PrusaSlicer/issues/2461 Source10: patch-testsuite-epsilon -# Fix an improper include of expat.h -# https://github.com/prusa3d/PrusaSlicer/pull/2315 -Patch0: patch-expat-includes +# Fix a failure due to -Werror=format-security +# https://github.com/prusa3d/PrusaSlicer/pull/2757 +Patch1: patch-format-security -# Fix improper qhull include locations -# https://github.com/prusa3d/PrusaSlicer/pull/2319 -Patch1: patch-qhull-includes - -# Fix a number of failing unit tests -# https://github.com/prusa3d/PrusaSlicer/issues/2288 -Patch10: https://github.com/prusa3d/PrusaSlicer/commit/07282eb24d027817b4279f59ebbf0d80bac5f950.patch - -# These patches are pulled from upstream's Debian packaging, and were cherry picked from post-release commits. -# I (JT) have not personally seen the bugs these fix but upstream asked that they be included. -Patch20: https://raw.githubusercontent.com/prusa3d/PrusaSlicer/debian/debian/patches/fix-gizmo-icon-size.patch -Patch21: https://raw.githubusercontent.com/prusa3d/PrusaSlicer/debian/debian/patches/handle-wx-assert-with-boost.patch -Patch22: https://raw.githubusercontent.com/prusa3d/PrusaSlicer/debian/debian/patches/mode-switching-fix.patch +# This patch is pulled from upstream's Debian packaging. +# I (JT) have not personally seen related bugs these fix but upstream asked +# that this be included. +Patch10: https://raw.githubusercontent.com/prusa3d/PrusaSlicer/debian/debian/patches/handle-wx-assert-with-boost.patch BuildRequires: boost-devel BuildRequires: cmake +BuildRequires: cereal-devel BuildRequires: curl-devel BuildRequires: desktop-file-utils BuildRequires: eigen3-devel @@ -145,10 +136,6 @@ Provides: bundled(avrdude) = 6.3 # Upstream: https://github.com/artyom-beilis/nowide Provides: bundled(boost-nowide) -# License: MPLv2.0 -# Upstream: https://github.com/libigl/libigl -Provides: bundled(igl) - # Not packaged in Fedora, but could be. # License: MIT # Upstream: https://github.com/ocornut/imgui @@ -240,7 +227,7 @@ PrusaSlicer is based on Slic3r by Alessandro Ranelucci and the RepRap community. %prep -%autosetup -S git -n PrusaSlicer-version_2.0.0 +%autosetup -S git -n PrusaSlicer-version_2.1.0-alpha1 commit () { git commit -q -a -m "$1" --author "%{__scm_author}"; } @@ -278,10 +265,6 @@ unbundle eigen unbundle expat unbundle glew -# This code doesn't seem to be used, so remove it to (potentially) simplify the -# licensing issue. -unbundle igl/copyleft - # Upstream says this is obsolete, but it's still needed for compilation. # The Fedora version appears to work fine for that purpose so we'll use it. unbundle poly2tri @@ -420,6 +403,10 @@ make test ARGS=-V %changelog +* Tue Aug 13 2019 Jason L Tibbitts III - 2.1.0~alpha1-1 +- Update to the current alpha. +- Drop several upstreamed patches. + * Fri Jul 26 2019 Fedora Release Engineering - 2.0.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild