I am updating Boost in rawhide for https://fedoraproject.org/wiki/Changes/F33Boost173 and openscad fails to build with this error: g++ -c -pipe -DSTACKSIZE=8388608 -fno-strict-aliasing -std=c++11 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=gnu++11 -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DEIGEN_DONT_ALIGN -std=c++14 -frounding-math -D_REENTRANT -Wall -Wextra -Wno-unused-local-typedefs -fPIC -DOPENSCAD_VERSION=2019.05 -DOPENSCAD_SHORTVERSION=2019.05 -DOPENSCAD_YEAR=2019.0 -DOPENSCAD_MONTH=05.0 -DOPENSCAD_DAY=.0 -DSTACKSIZE=8388608 -DUSE_QOPENGLWIDGET -DENABLE_DBUS -DENABLE_JOYSTICK -DENABLE_QGAMEPAD -DUSE_SCINTILLA_EDITOR -DQSCINTILLA_DLL -DENABLE_LIBZIP -DENABLE_OPENCSG -DENABLE_CGAL -DCGAL_HEADER_ONLY -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GAMEPAD_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -Isrc -Isrc/ext/libtess2/Include -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtPrintSupport -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtMultimedia -isystem /usr/include/qt5/QtGamepad -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtConcurrent -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtCore -Iobjects -isystem /usr/include/eigen3 -I/usr/lib64/qt5/mkspecs/linux-g++ -o objects/src/import.o src/import.cc src/import.cc:53:10: fatal error: boost/detail/endian.hpp: No such file or directory 53 | #include <boost/detail/endian.hpp> | ^~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make: *** [Makefile:3565: objects/src/import.o] Error 1 Code outside Boost itself should not include "detail" headers. It should probably be <boost/endian/endian.hpp> There's a scratch build done in the f33-boost side tag (which has the new boost package): https://koji.fedoraproject.org/koji/taskinfo?taskID=45107502
Trying with https://github.com/openscad/openscad/commit/6fecf31de12e74f4c63b146365a69ce567ef64dc Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=45283298
Scratch build with the Gentoo patch (<boost/endian/arithmetic.hpp>): https://koji.fedoraproject.org/koji/taskinfo?taskID=45286503
:/ g++ -c -pipe -DSTACKSIZE=8388608 -fno-strict-aliasing -std=c++11 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=gnu++11 -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DEIGEN_DONT_ALIGN -std=c++14 -frounding-math -D_REENTRANT -Wall -Wextra -Wno-unused-local-typedefs -fPIC -DOPENSCAD_VERSION=2019.05 -DOPENSCAD_SHORTVERSION=2019.05 -DOPENSCAD_YEAR=2019.0 -DOPENSCAD_MONTH=05.0 -DOPENSCAD_DAY=.0 -DSTACKSIZE=8388608 -DUSE_QOPENGLWIDGET -DENABLE_DBUS -DENABLE_JOYSTICK -DENABLE_QGAMEPAD -DUSE_SCINTILLA_EDITOR -DQSCINTILLA_DLL -DENABLE_LIBZIP -DENABLE_OPENCSG -DENABLE_CGAL -DCGAL_HEADER_ONLY -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GAMEPAD_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -Isrc -Isrc/ext/libtess2/Include -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtPrintSupport -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtMultimedia -isystem /usr/include/qt5/QtGamepad -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtConcurrent -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtCore -Iobjects -isystem /usr/include/eigen3 -I/usr/lib64/qt5/mkspecs/linux-g++ -o objects/objects/lexer.o objects/lexer.cxx g++ -c -pipe -DSTACKSIZE=8388608 -fno-strict-aliasing -std=c++11 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=gnu++11 -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DEIGEN_DONT_ALIGN -std=c++14 -frounding-math -D_REENTRANT -Wall -Wextra -Wno-unused-local-typedefs -fPIC -DOPENSCAD_VERSION=2019.05 -DOPENSCAD_SHORTVERSION=2019.05 -DOPENSCAD_YEAR=2019.0 -DOPENSCAD_MONTH=05.0 -DOPENSCAD_DAY=.0 -DSTACKSIZE=8388608 -DUSE_QOPENGLWIDGET -DENABLE_DBUS -DENABLE_JOYSTICK -DENABLE_QGAMEPAD -DUSE_SCINTILLA_EDITOR -DQSCINTILLA_DLL -DENABLE_LIBZIP -DENABLE_OPENCSG -DENABLE_CGAL -DCGAL_HEADER_ONLY -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GAMEPAD_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -Isrc -Isrc/ext/libtess2/Include -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtPrintSupport -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtMultimedia -isystem /usr/include/qt5/QtGamepad -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtConcurrent -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtCore -Iobjects -isystem /usr/include/eigen3 -I/usr/lib64/qt5/mkspecs/linux-g++ -o objects/objects/parser.o objects/parser.cxx src/parser.y:68:6: error: 'stack' in namespace 'std' does not name a template type 68 | std::stack<LocalScope *> scope_stack; | ^~~~~ src/parser.y:51:1: note: 'std::stack' is defined in header '<stack>'; did you forget to '#include <stack>'? 50 | #include "boost-utils.h" +++ |+#include <stack> 51 | src/parser.y: In function 'int parserparse()': src/parser.y:176:36: error: 'scope_stack' was not declared in this scope 176 | if ($1) scope_stack.top()->addChild($1); | ^~~~~~~~~~~ src/parser.y:183:15: error: 'scope_stack' was not declared in this scope 183 | scope_stack.top()->addModule($2, newmodule); | ^~~~~~~~~~~ src/parser.y:190:17: error: 'scope_stack' was not declared in this scope 190 | scope_stack.pop(); | ^~~~~~~~~~~ src/parser.y:195:15: error: 'scope_stack' was not declared in this scope 195 | scope_stack.top()->addFunction(func); | ^~~~~~~~~~~ src/parser.y:215:41: error: 'scope_stack' was not declared in this scope 215 | for (auto &assignment : scope_stack.top()->assignments) { | ^~~~~~~~~~~ In file included from src/exceptions.h:6, from src/feature.h:9, from src/module.h:5, from src/FileModule.h:8, from src/parser.y:39: src/printutils.h:53:39: error: 'str' was not declared in this scope 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ src/printutils.h:53:39: note: in definition of macro 'PRINTB' 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ src/printutils.h:53:39: note: suggested alternatives: 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ src/printutils.h:53:39: note: in definition of macro 'PRINTB' 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ In file included from /usr/include/boost/format.hpp:53, from src/printutils.h:6, from src/exceptions.h:6, from src/feature.h:9, from src/module.h:5, from src/FileModule.h:8, from src/parser.y:39: /usr/include/boost/format/free_funcs.hpp:22:38: note: 'boost::str' 22 | std::basic_string<Ch, Tr, Alloc> str(const basic_format<Ch, Tr, Alloc>& f) { | ^~~ /usr/include/boost/format/free_funcs.hpp:22:38: note: 'boost::str' In file included from src/exceptions.h:6, from src/feature.h:9, from src/module.h:5, from src/FileModule.h:8, from src/parser.y:39: src/printutils.h:53:39: error: 'str' was not declared in this scope 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ src/printutils.h:53:39: note: in definition of macro 'PRINTB' 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ src/printutils.h:53:39: note: suggested alternatives: 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ src/printutils.h:53:39: note: in definition of macro 'PRINTB' 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ In file included from /usr/include/boost/format.hpp:53, from src/printutils.h:6, from src/exceptions.h:6, from src/feature.h:9, from src/module.h:5, from src/FileModule.h:8, from src/parser.y:39: /usr/include/boost/format/free_funcs.hpp:22:38: note: 'boost::str' 22 | std::basic_string<Ch, Tr, Alloc> str(const basic_format<Ch, Tr, Alloc>& f) { | ^~~ /usr/include/boost/format/free_funcs.hpp:22:38: note: 'boost::str' In file included from src/exceptions.h:6, from src/feature.h:9, from src/module.h:5, from src/FileModule.h:8, from src/parser.y:39: src/printutils.h:53:39: error: 'str' was not declared in this scope 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ src/printutils.h:53:39: note: in definition of macro 'PRINTB' 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ src/printutils.h:53:39: note: suggested alternatives: 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ src/printutils.h:53:39: note: in definition of macro 'PRINTB' 53 | #define PRINTB(_fmt, _arg) do { PRINT(str(boost::format(_fmt) % _arg)); } while (0) | ^~~ In file included from /usr/include/boost/format.hpp:53, from src/printutils.h:6, from src/exceptions.h:6, from src/feature.h:9, from src/module.h:5, from src/FileModule.h:8, from src/parser.y:39: /usr/include/boost/format/free_funcs.hpp:22:38: note: 'boost::str' 22 | std::basic_string<Ch, Tr, Alloc> str(const basic_format<Ch, Tr, Alloc>& f) { | ^~~ /usr/include/boost/format/free_funcs.hpp:22:38: note: 'boost::str' src/parser.y:257:19: error: 'scope_stack' was not declared in this scope 257 | scope_stack.top()->addAssignment(Assignment($1, shared_ptr<Expression>($3), LOC(@$))); | ^~~~~~~~~~~ src/parser.y:287:17: error: 'scope_stack' was not declared in this scope 287 | scope_stack.push(&$1->scope); | ^~~~~~~~~~~ src/parser.y:291:17: error: 'scope_stack' was not declared in this scope 291 | scope_stack.pop(); | ^~~~~~~~~~~ src/parser.y:307:17: error: 'scope_stack' was not declared in this scope 307 | scope_stack.push(&$1->else_scope); | ^~~~~~~~~~~ src/parser.y:311:17: error: 'scope_stack' was not declared in this scope 311 | scope_stack.pop(); | ^~~~~~~~~~~ src/parser.y:320:17: error: 'scope_stack' was not declared in this scope 320 | scope_stack.push(&$<ifelse>$->scope); | ^~~~~~~~~~~ src/parser.y:324:17: error: 'scope_stack' was not declared in this scope 324 | scope_stack.pop(); | ^~~~~~~~~~~ src/parser.y:340:38: error: 'scope_stack' was not declared in this scope 340 | if ($1) scope_stack.top()->addChild($1); | ^~~~~~~~~~~ src/parser.y: In function 'bool parse(FileModule*&, const string&, const string&, const string&, int)': src/parser.y:689:3: error: 'scope_stack' was not declared in this scope 689 | scope_stack.push(&rootmodule->scope); | ^~~~~~~~~~~ make: *** [Makefile:4900: objects/objects/parser.o] Error 1 make: *** Waiting for unfinished jobs....
*** Bug 1843125 has been marked as a duplicate of this bug. ***
I also get this: g++ -c -pipe -DSTACKSIZE=8388608 -fno-strict-aliasing -std=c++11 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=gnu++11 -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DEIGEN_DONT_ALIGN -std=c++14 -frounding-math -D_REENTRANT -Wall -Wextra -Wno-unused-local-typedefs -fPIC -DOPENSCAD_VERSION=2019.05 -DOPENSCAD_SHORTVERSION=2019.05 -DOPENSCAD_YEAR=2019.0 -DOPENSCAD_MONTH=05.0 -DOPENSCAD_DAY=.0 -DSTACKSIZE=8388608 -DUSE_QOPENGLWIDGET -DENABLE_DBUS -DENABLE_JOYSTICK -DENABLE_QGAMEPAD -DUSE_SCINTILLA_EDITOR -DQSCINTILLA_DLL -DENABLE_LIBZIP -DENABLE_OPENCSG -DENABLE_CGAL -DCGAL_HEADER_ONLY -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GAMEPAD_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -Isrc -Isrc/ext/libtess2/Include -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtPrintSupport -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtMultimedia -isystem /usr/include/qt5/QtGamepad -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtConcurrent -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtCore -Iobjects -isystem /usr/include/eigen3 -I/usr/lib/qt5/mkspecs/linux-g++ -o objects/src/GeometryEvaluator.o src/GeometryEvaluator.cc In file included from /usr/include/boost/math/tools/cxx03_warn.hpp:9, from /usr/include/boost/math/constants/constants.hpp:11, from /usr/include/boost/math/special_functions/asinh.hpp:25, from /usr/include/boost/multiprecision/gmp.hpp:21, from /usr/include/CGAL/boost_mp.h:43, from /usr/include/CGAL/internal/Exact_type_selector.h:27, from /usr/include/CGAL/Exact_kernel_selector.h:26, from /usr/include/CGAL/Filtered_kernel.h:22, from /usr/include/CGAL/Exact_predicates_inexact_constructions_kernel.h:21, from /usr/include/CGAL/Epic_converter.h:18, from /usr/include/CGAL/Static_filtered_predicate.h:16, from /usr/include/CGAL/Lazy_kernel.h:18, from /usr/include/CGAL/Nef_3/SNC_k3_tree_traits.h:20, from /usr/include/CGAL/Nef_3/SNC_point_locator.h:21, from /usr/include/CGAL/Nef_3/SNC_external_structure.h:25, from /usr/include/CGAL/Nef_3/SNC_constructor.h:32, from /usr/include/CGAL/Nef_3/SNC_decorator.h:29, from /usr/include/CGAL/Nef_polyhedron_3.h:28, from src/cgal.h:18, from src/CGAL_Nef_polyhedron.h:4, from src/GeometryEvaluator.cc:18: /usr/include/boost/bind.hpp:36:1: note: '#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.' 36 | BOOST_PRAGMA_MESSAGE( | ^~~~~~~~~~~~~~~~~~~~ From CGAL. But it's only a note.
Yes, you get that note if you include <boost/bind.hpp> and don't define BOOST_BIND_GLOBAL_PLACEHOLDERS. To avoid the deprecation warning, either define the macro, or use <boost/bind/bind.hpp> and use the correct namespace to refer to the placeholders, i.e. boost::placeholders::_1 (or add a using-directive or using-declaration to make that usable as _1). I prefer the second option, since it's unclear if the first one will keep working indefinitely.
The note is fine, I am more worried about the problem in comment #3.
GCC said what to do: src/parser.y:51:1: note: 'std::stack' is defined in header '<stack>'; did you forget to '#include <stack>'? I've added the patch from your scratch build and fixed that. Building openscad-2019.05-11.fc33 for rawhide Created task: 45358493 Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=45358493 That worked in a local x86_64 mock.
There are some failing tests, but they all failed in the last successful build in koji too: 334/1244 Test #341: cgalpngtest_import_3mf-tests .................................***Failed 0.42 sec 524/1244 Test #525: opencsgtest_import_3mf-tests .................................***Failed 0.58 sec 710/1244 Test #713: csgpngtest_import_3mf-tests ..................................***Failed 0.58 sec 894/1244 Test #897: throwntogethertest_import_3mf-tests ..........................***Failed 0.43 sec 1026/1244 Test #1027: 3mfpngtest_cube10 ............................................***Failed 0.66 sec 1048/1244 Test #1054: 3mfexport_3mf-export .........................................***Failed 0.12 sec The koji build failed to checkout the package, looks like a network connectivity issue. New one running now: Building openscad-2019.05-11.fc33 for rawhide Created task: 45358614 Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=45358614
> There are some failing tests Unfortunately, this is an known issue. ---- Thanks for the fix!
Ah, upstream already has a patch for the missing <stack> header: https://patch-diff.githubusercontent.com/raw/openscad/openscad/pull/3105.patch