Flatpak Go modules helper
This CLI tool generates Flatpak sources directives for Go modules.
It helps avoid exposing network access to Flatpak build step, which is one of the requirements for publishing to Flathub.
Usage
go run github.com/dennwc/flatpak-go-mod@latest ./path/to/your/project
It will generate following files: go.mod.yml
and modules.txt
.
Contents of go.mod.yml
should be copied into sources
directives of Flatpak YAML.
These directives will populate ./vendor
during Flatpak build with all dependencies of your project,
downloading them directly from Go modules mirror.
The modules.txt
file should be copied into your Flatpak directory, which will be added to ./vendor
directory during Flatpak build as well.
Then, build your Go project as usual. It should detect vendor
directory automatically.
You can also pass -mod=vendor
to force vendoring mode during build.
Output
# Workaround for Go modules generated by github.com/dennwc/flatpak-go-mod
- type: file
path: modules.txt
dest: vendor
- type: archive
url: https://proxy.golang.org/golang.org/x/mod/@v/v0.7.0.zip
strip-components: 3
dest: vendor/golang.org/x/mod
sha256: 24abd1db13329873d72034dc27efad09cbc37d39cf28b8ff7bb3c2adc8eedef7
Options
line-pref
customizes indentation in YAML file
dest-pref
sets a prefix for sources.dest
paths in YAML file
License
MIT