mikefarah / yq

yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor
https://mikefarah.gitbook.io/yq/
MIT License
12.36k stars 602 forks source link

Use static bin in snap #2090

Closed kian99 closed 4 months ago

kian99 commented 4 months ago

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:

Output: not a dynamic executable