Hi,

On Wed, Feb 20, 2019 at 8:13 PM Reinhard Tartler <[email protected]> wrote:
>
> 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?
>
> Thanks!
>

It's the limitation of dh-golang. You can't pass `-tags` argument to
the phase when generating Built-Using substvar.

I have met the same problem when I package containerd. (I want to use
`no_cri` tag).

As a result, I just removed the file(which has !no_cri tag) in configure phase.
https://salsa.debian.org/go-team/packages/containerd/blob/9fe3ea16/debian/rules#L18

I think there's case to use non-default build tag. But I don't know
whether it's worth to add the complex of dh-golang. And I think this
is discussed in your another thread.


--
Shengjing Zhu

Reply via email to