dh-make-golang is a tool to automatically create Debian packaging for Go packages. Its goal is to automate away as much of the work as possible when creating a Debian package for a Go library package or Go program.
All you need to specify is a Go package name. In your current working directory, a new directory will be created containing a git repository. Inside that repository, you’ll find the Go package’s source code plus the necessary Debian packaging files to build a Debian package. The packaging adheres to the pkg-go packaging guidelines and hence can be placed alongside the other team-maintained packages in pkg-go, hosted on Debian’s salsa.
For an introductory example, see this annotated demonstration of how to use dh-make-golang.
dh-make-golang’s usage of the internet
dh-make-golang makes heavy use of online resources to improve the resulting package. In no particular order and depending on where your package is hosted, dh-make-golang may query:
- By virtue of using
go get, the specified Go package and all of its dependencies will be downloaded. This step can quickly cause dozens of megabytes to be transferred, so be careful if you are on a metered internet connection.
- The output of filter-packages.sh, hosted on https://people.debian.org/~stapelberg/dh-make-golang/. This is used to figure out whether dependencies are already packaged in Debian, and whether you are about to duplicate somebody else’s work.
- GitHub’s API, to get the license, repository creator, description and README for Go packages hosted on GitHub.