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.
Description
This PR modifies the snapcraft.yaml file used to build the snap package to set
CGO_ENABLED=0
during the build.While normally a dynamic executable is not an issue for snaps since they are already running in an isolated environment, there is one use case this would improve. The
stage-snaps
directive is a snapcraft.yaml keyword one can use when building a snap to dump the contents of another snap. I ran into an issue where a snap I am building is based on core20 and usingyq
, after yq's update to core22, I ran into errors when my snap would try and runyq
saying that glibc versions can't be found.The documentation for stage-snaps can be found here.
The issue with staging snaps built on a different base is explained further here.
Testing
Run the following:
snapcraft clean
snapcraft
mkdir -p /mnt/snap
sudo mount -t squashfs -o ro ./yq_v4.44.2_amd64.snap /mnt/snap
ldd /mnt/snap/bin/yq
Output:
not a dynamic executable