forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
ci: container improvements #6490
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Also simplify the download and execution of `llvm.sh`
UdjinM6
requested changes
Dec 15, 2024
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
UdjinM6
approved these changes
Dec 16, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested local macos build via docker-compose, Guix build on ubuntu via direct guix-start call and GH Guix CI. All looks good 👍
ACK 04ce1fe
PastaPastaPasta
approved these changes
Dec 17, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK 04ce1fe
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Additional Information
This pull request pulls container-specific changes from dash#6387, dash#6400 and dash#6421
The
HOST
check before runningsetup_sdk.sh
isn't a part of the script itself as the script is written to be independent of external variables set. The caller is expected to know the conditions needed to runsetup_sdk.sh
as the script is relatively agnostic to its environment.The
version
attribute in thedevelop
andguix
container'sdocker-compose.yml
has been dropped as the attribute has been deprecated in the compose spec (source).Using
LD_LIBRARY_PATH
to point to LLVM's libraries are acceptable and will not interfere with executing binaries built using the distro's packaged compiler as it will eventually search default paths and find the libraries shipped with the distro (source).Currently, running LLDB will result in a "personality set failed: Operation not permitted" error (source). This is caused by its attempt at disabling ASLR for debugging.
To work around this error, the container will now operate under relaxed restrictions (
seccomp=unconfined
). As disabling ASLR is valuable when debugging and the container is meant for developers (i.e. it isn't used for CI), we have opted to relax restrictions instead of skipping ASLR disablement.As of
develop
(a8e2316), packages built by the container are stored in/tmp
, which is inadvisable as it is the same directory used to store functional test runs and it's not too difficult to delete/tmp
's contents to save space in a long runningdevelop
container and then realize that bothshellcheck
andcppcheck
are stored there and now you have to ditch the container you're working in and restart it.To remedy this, packages are now built and stored in
/opt
in accordance with the FHS (source)./usr/local
was a contender but it's pre-populated, meanwhilels /opt
would give you a very quick picture of what's built for the container./tmp
will not be entirely empty because pypa/pip#10753 results in residual.pem
files leaking into/tmp
andpyenv
stores its build log there and keeping it around has some debug value.Breaking Changes
None expected.
Checklist: