You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Please confirm there isn't an existing open bug report
I have searched open bugs for this issue
Summary
As was recently discovered in the freeimage package, building without the fatfakeroot option can create non-functioning symlinks in the final package. See #2644
Instead of symlinks there are truncated ELF files in the resulting package archive.
After this another issue was found with android-tools where building from the tarball without fatfakeroot causes the cmakecreate_symlink command to fail in the install phase.
@ReillyBrogan and @malfisya reported that they can't reproduce the freeimage issue on their computers.
I've created a patch manually linking the freeimage libs for easier testing with different fakeroot LD_PRELOAD settings (the original make instructions need (fake)root privileges) here: Staudey@573a405
Some findings from testing:
Putting the whole package build into the install phase leads to working symlinks in the final result.
Putting unset LD_PRELOAD in the install phase will make tree show the correct symlinks at the last build step, but the resulting package will still have broken symlinks.
Putting unset LD_PRELOAD in the install phase but an export LD_PRELOAD=libfakeroot.so right before the tree command will make it show the broken symlink configuration (i.e. no symlinks), and this will be reflected in the final package.
Putting the whole build into the install phase and an unset LD_PRELOAD right before the final tree command will show the correct symlink configuration, and the symlinks will also be correct in the final package
At least part of the issue seems to be some sort of race condition; during one build only half the symlinks were broken, but this was not reproducible reliably. Using fatfakeroot (and probably an install-phase-only build) seems to always prevent the issue from occurring though.
Steps to reproduce
Patch freeimage recipe with the above-mentioned changes
Run go-task in the freeimage package recipe folder
Observe the tree output towards the end of the build showing no symlinks, the strip failures, and missing symlinks in the resulting package
(As mentioned above this might not be reproducible on every machine)
Expected result
Symlinks are correctly created during the build and in the resulting package, no strip failures
Actual result
Symlinks are NOT correctly created during the build and/or not found in the resulting package, build shows strip failures at the end, truncated ELF files instead of symlinks in the package archive
This was only worked around by enabling tmpfs on the builder, but it's an inherent issue with fatfakeroot. This can likely be closed once getsolus/solbuild#103 gets merged (and the builder updated)
Please confirm there isn't an existing open bug report
Summary
As was recently discovered in the
freeimage
package, building without thefatfakeroot
option can create non-functioning symlinks in the final package. See #2644Instead of symlinks there are truncated ELF files in the resulting package archive.
After this another issue was found with android-tools where building from the tarball without
fatfakeroot
causes thecmake
create_symlink
command to fail in the install phase.@ReillyBrogan and @malfisya reported that they can't reproduce the
freeimage
issue on their computers.I've created a patch manually linking the
freeimage
libs for easier testing with different fakeroot LD_PRELOAD settings (the original make instructions need (fake)root privileges) here: Staudey@573a405Some findings from testing:
install
phase leads to working symlinks in the final result.unset LD_PRELOAD
in theinstall
phase will maketree
show the correct symlinks at the last build step, but the resulting package will still have broken symlinks.unset LD_PRELOAD
in theinstall
phase but anexport LD_PRELOAD=libfakeroot.so
right before thetree
command will make it show the broken symlink configuration (i.e. no symlinks), and this will be reflected in the final package.install
phase and anunset LD_PRELOAD
right before the finaltree
command will show the correct symlink configuration, and the symlinks will also be correct in the final packagefatfakeroot
(and probably an install-phase-only build) seems to always prevent the issue from occurring though.Steps to reproduce
freeimage
recipe with the above-mentioned changesfreeimage
package recipe foldertree
output towards the end of the build showing no symlinks, the strip failures, and missing symlinks in the resulting package(As mentioned above this might not be reproducible on every machine)
Expected result
Symlinks are correctly created during the build and in the resulting package, no strip failures
Actual result
Symlinks are NOT correctly created during the build and/or not found in the resulting package, build shows strip failures at the end, truncated ELF files instead of symlinks in the package archive
Environment
Repo
Unstable
Desktop Environment
Budgie
System details
Other comments
No response
The text was updated successfully, but these errors were encountered: