[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

dh_golang fails because a package got completely disabled with tags

Hi Michael,

I'm not sure if this constitutes a bug in dh_golang, so I'm writing here first. I'm working on https://salsa.debian.org/go-team/packages/golang-github-containers-image which needs buildtags to avoid a dependency on ostree.

I'm in contact with upstream and we agreed that this dependency in not worth the trouble keeping we agreed that for Debian, the best way to proceed would be to use the buildtag containers_image_ostree_stub which disables the package "github.com/containers/image/ostree".

As your recommendations in the other email thread, I've added the -tag option to the dh_auto_build invocation. That appears to work fine.

However, the package build fails at the invocation of dh_golang. If I understand the utility correctly, it invokes "go list" two times: The first time to identify the golang packages that needs to be installed into the Debian package, and a second time to identify what files are involved? (Sorry, Perl is not my forte, and I think some commentary in the source code on the thinking behind the '$tmpl' and '$gofiletmpl' variables that are being passed to "go list" would be very valuable).

If I understand the control flow correctly, it is the 2nd invocation that crashes with this error message:

   dh_golang -O--buildsystem=golang
can't load package: obj-x86_64-linux-gnu/src/github.com/containers/image/ostree/ostree_src.go:21:2: cannot find package "github.com/ostreedev/ostree-go/pkg/glibobject" in any of:
        /usr/lib/go-1.11/src/github.com/ostreedev/ostree-go/pkg/glibobject (from $GOROOT)
        /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/github.com/ostreedev/ostree-go/pkg/glibobject (from $GOPATH)
can't load package: obj-x86_64-linux-gnu/src/github.com/containers/image/ostree/ostree_dest.go:29:2: cannot find package "github.com/ostreedev/ostree-go/pkg/otbuiltin" in any of:
        /usr/lib/go-1.11/src/github.com/ostreedev/ostree-go/pkg/otbuiltin (from $GOROOT)
        /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/github.com/ostreedev/ostree-go/pkg/otbuiltin (from $GOPATH)
dh_golang: go list -f '\
{{ .Dir }}/{{ index (or .GoFiles .CgoFiles .TestGoFiles .XTestGoFiles .IgnoredGoFiles) 0 }}' returned exit code 1
make: *** [debian/rules:8: binary] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2

I believe fixing this might require changes in dh_golang, but I'd really appreciate your opinion on this. Maybe there is a simple(r) solution that I may be overlooking?



Reply to: