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.
go run github.com/dennwc/flatpak-go-mod@latest ./path/to/your/project
It will generate following files: go.mod.yml
(or go.mod.json
) and modules.txt
.
Contents of go.mod.yml
(or go.mod.json
) 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.
# 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
[
{
"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"
}
]
line-pref
customizes indentation in YAML/JSON filedest-pref
sets a prefix forsources.dest
paths in YAML/JSON filejson
changes the output format to JSON instead of YAML
MIT