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