Source: slic3r-prusa
Version: 2.6.1+dfsg-4
Severity: serious
Tags: ftbfs patch
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: onit...@gmail.com

Hi,

During a recent upload, PrusaSlicer failed to build due to incompatible chanes 
in wxWidgets 3.2.

These changes include support for initializer lists, which clashes with some 
overloads in the
PrusaSlicer source code. The errors are as follows:

src/slic3r/GUI/Plater.cpp: In member function ‘void 
Slic3r::GUI::Plater::load_project(const wxString&)’:
src/slic3r/GUI/Plater.cpp:5313:21: error: call of overloaded 
‘load_files(<brace-enclosed initializer list>)’ is ambiguous
 5313 |     if (! load_files({ into_path(filename) }).empty()) {
      |           ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/slic3r/GUI/Plater.cpp:20:
src/slic3r/GUI/Plater.hpp:193:25: note: candidate: ‘std::vector<long unsigned 
int> Slic3r::GUI::Plater::load_files(const 
std::vector<boost::filesystem::path>&, bool, bool, bool)’
  193 |     std::vector<size_t> load_files(const 
std::vector<boost::filesystem::path>& input_files, bool load_model = true, bool 
load_config = true, bool imperial_units = false);
      |                         ^~~~~~~~~~
src/slic3r/GUI/Plater.hpp:197:10: note: candidate: ‘bool 
Slic3r::GUI::Plater::load_files(const wxArrayString&, bool)’
  197 |     bool load_files(const wxArrayString& filenames, bool 
delete_after_load = false);
      |          ^~~~~~~~~~

and

src/slic3r/GUI/PhysicalPrinterDialog.cpp: In member function 'void 
Slic3r::GUI::PhysicalPrinterDialog::build_printhost_settings(Slic3r::GUI::ConfigOptionsGroup*)':
src/slic3r/GUI/PhysicalPrinterDialog.cpp:465:27: error: call of overloaded 
'set_values(<brace-enclosed initializer list>)' is ambiguous
  465 |         choice->set_values({ m_config->opt_string("printhost_port") });
      |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/slic3r/GUI/ConfigManipulation.hpp:16,
                 from src/slic3r/GUI/Tab.hpp:50,
                 from src/slic3r/GUI/PhysicalPrinterDialog.cpp:28:
src/slic3r/GUI/Field.hpp:381:33: note: candidate: 'void 
Slic3r::GUI::Choice::set_values(const 
std::vector<std::__cxx11::basic_string<char> >&)'
  381 |         void                    set_values(const 
std::vector<std::string> &values);
      |                                 ^~~~~~~~~~
src/slic3r/GUI/Field.hpp:382:33: note: candidate: 'void 
Slic3r::GUI::Choice::set_values(const wxArrayString&)'
  382 |         void                    set_values(const wxArrayString &values);
      |                                 ^~~~~~~~~~

These issues can be worked around with an explicit instantiation of the 
std::vector.
A better solution would be a change to wxWidgets, by making the initializer 
list constructor explicit.

A patch will follow shortly.

Regards,
Gregor


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (500, 'stable-debug'), (500, 'proposed-updates-debug'), (300, 
'unstable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.5.0-4-amd64 (SMP w/24 CPU threads; PREEMPT)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Reply via email to