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
GetPrerequisites.cmake doesn't detect the main binary as executable, leading to install errors #1780
Comments
What distro is that? Which version of CMake? |
As a workaround, you could just disable the bundling of dependencies by commenting out this line: |
Not the original poster, but having the same problem on Debian; following the build instructions with freshly cloned source, but install phase fails with:
(very similar to previous log, but pasted here for benefit of future searches) $ cmake --version
cmake version 3.7.2
CMake suite maintained and supported by Kitware (kitware.com/cmake). The workaround link now points at a blank line, but old versions (and the stack trace) suggests the nearby "install(" line that references install_prereqs.cmake, and commenting out this line allows make to complete without error. The resulting install dies looking for libMultiMC_gui.so (and a few others), which were simply left behind in the build directory (assuming this was supposed to be handled by that commented-out line), but manually copying them to $install_dir/bin lets it start up. |
Permalink of the line to remove: https://github.com/MultiMC/MultiMC5/blob/d70c783de8ae842ea175ee92902c31c088c2ddda/application/CMakeLists.txt#L527 Is bundling the dependencies even necessary when building from source? It's definitely a good idea for generic builds, but when I compile against my own libraries, it's seems like a waste of space. |
You can now use a different installation layout:
|
The problem with bundled dependencies seems to be that Thanks for the different installation layouts! |
I couldn't replicate the issue on Arch linux, thanks for the hint :) |
Arch doesn't build position independent executables by default, while Debian does, so that's probably the reason why you couldn't reproduce the issue. |
Just reproduced this with Gentoo, which has very recently decided to switch to PIE-by-default (17.0 profiles) |
This is reproducible on the 'stable' branch, with Debian Stretch, as-of this time. |
Can we get Yepoleb's suggestion implemented? The included modules are quite old, this fix is over 2 years old, cmake-side. I've confirmed that it works. |
I'm wondering why the module was even included in the first place. The commit description of 27732d6 leaves me clueless. |
Please do not use the bundled dependencies layout when building it yourself for your local machine. There is a
See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=multimc-git for an example of how to set this, and how the |
When I experienced this bug, I didn't choose to bundle the dependencies, it was simply the default. Judging by the comments on this issue it still is. But while changing the default is certainly a nice improvement on its own, I think resolving this issue by updating the module can't really hurt either. |
So really, the default should probably change to |
The build system now defaults to |
Thanks!! |
I absolutely can't use the bundle utilities included with current cmake. They add symlinks to everything and it would completely break the updater. It's really not set up to handle symlinks - and never was. Even if I implemented that now, I'd break updates for everyone. |
* Added install commands to the libraries instead of force installing files * Most of the application cmake stuff moved to top level * RPATH should now be set/cleared correctly * Contains a fix for GH-1780
This should be now fixed, along with other related issues reported on discord.
Anyway, I'll be on the lookout for better build systems... |
When I try to do
make install
I get this error.The text was updated successfully, but these errors were encountered: