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.
Overview
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.
Usage/example
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.