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

Use static bin in snap #2090

Merged
merged 1 commit into from
Jul 21, 2024
Merged

Conversation

kian99
Copy link
Contributor

@kian99 kian99 commented Jul 3, 2024

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 using yq, after yq's update to core22, I ran into errors when my snap would try and run yq 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

@mikefarah mikefarah merged commit b80e1cb into mikefarah:master Jul 21, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants