Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PrusaSlicer 2.2.0~alpha2 depends on Boost1.66 (due to Beast / Base64) #3375

Closed
pmjdebruijn opened this issue Dec 23, 2019 · 6 comments
Closed
Labels
Build Build issues

Comments

@pmjdebruijn
Copy link
Contributor

When trying to compile PrusaSlicer 2.2.0~alpha2 on Ubuntu 18.04, it fails because it depends on base64.hpp from beast, which is only available in boost1.66 or newer.

So, please consider not using the base64 function from beast, given that this implies a fairly significant dependancy increase for something that on the surface seems so trivial.

Relevant files:

obj-x86_64-linux-gnu/src/libslic3r/CMakeFiles/libslic3r.dir/CXX.includecache:boost/beast/core/detail/base64.hpp
src/libslic3r/GCode.cpp:#include <boost/beast/core/detail/base64.hpp>
src/libslic3r/GCode.cpp: encoded.resize(boost::beast::detail::base64::encoded_size(png_size));
src/libslic3r/GCode.cpp: encoded.resize(boost::beast::detail::base64::encode((void*)&encoded[0], (const void*)png_data, png_size));
src/slic3r/GUI/GUI_App.cpp:#include <boost/beast/core/detail/base64.hpp>
src/slic3r/GUI/GUI_App.cpp: decoded.resize(boost::beast::detail::base64::decoded_size(row.size()));
src/slic3r/GUI/GUI_App.cpp: decoded.resize(boost::beast::detail::base64::decode((void*)&decoded[0], row.data(), row.size()).first);

But if you must depend on the beast base64 functions, then please do raise the dependancy in CMakeLists:

set(MINIMUM_BOOST_VERSION "1.66.0")
@xenoxaos
Copy link

I ended up just using a ppa for libboost-1.70
https://launchpad.net/~mhier/+archive/ubuntu/libboost-latest

@xenoxaos
Copy link

Looks like the commit for this was de60b40

@pmjdebruijn
Copy link
Contributor Author

Yeah i backported the required libboost myself, but that's workaround, though raising a major complicated dependency like boost merely for base64 function is a bit much in my view.

@Salamandar
Copy link
Contributor

This is still the case, and was not fixed.

@pmjdebruijn
Copy link
Contributor Author

Most current distros now have a current enough version of boost, so that using the base64 function, should no longer be an issue for most people.

Though the CMakeLists version check should be adjusted accordingly.

See #5508

@rtyr rtyr added the Build Build issues label Feb 4, 2021
bubnikv added a commit that referenced this issue Feb 10, 2021
CMakeLists: set MINIMUM_BOOST_VERSION to 1.66.0 (due to Base64, #3375)
@bubnikv
Copy link
Collaborator

Fixed with #5508 by @pmjdebruijn, thanks for your contribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Build Build issues
Projects
None yet
Development

No branches or pull requests

5 participants