Classic confinement request for gomodrun

Hi there,

This is a request for classic confinement for gomodrun.

Gomodrun is the forgotten Golang tool that executes and caches binaries included in go.mod files. This makes it easy to version cli tools in your projects such as golangci-lint and ginkgo that are versioned locked to what you specify in go.mod . Binaries are cached by go version and package version.

The TL;DR of it’s underlaying workings;

  • Analyzing go projects go.mod and tools.go files.
  • Building binaries based off what exists in $GOPATH/pkg/mod source directory that’s managed by go mod.
  • Storing these binaries in a local cache within the project.

It requires classic confinements as it’s a language tool that requires the same access a developer would need to work on their projects.


It is not clear to me that gomodrun requires classic confinement - since $GOPATH is usually $HOME/go and this is accessible when the home interface is plugged by a strict mode snap, and developers usually develop code within $HOME I would expect this should work with strict mode confinement. If not, can you please outline the issues you see and hence why classic is required?

Ah, I think I misinterpreted the error and the docs along with it. You’re right! I’ll flip it back to strict on my next release. Thanks!

If you encounter errors, the snappy-debug tool can be useful way to try and diagnose solutions. Or just post them here and myself and others can try advise on ways to resolve them.