Re: Go modules help

From: Dmitri Goutnik <dmgk_at_freebsd.org>
Date: Mon, 17 Jan 2022 20:18:59 UTC
I'd suggest switching to the new(-ish) GO_MODULE way of managing
dependencies, modules2tuple is not smart enough to handle projects of
this size.

Attached Makefile builds OK for me and the resulting binary seems to
run, untested beyond that.

Regards,
Dmitri

On Mon, Jan 17, 2022 at 1:36 PM Larry Rosenman <ler@lerctr.org> wrote:
>
> On 01/17/2022 11:53 am, Matthias Fechner wrote:
> > Am 17.01.2022 um 18:44 schrieb Larry Rosenman:
> >> On 01/17/2022 11:35 am, Matthias Fechner wrote:
> >>> Am 17.01.2022 um 17:46 schrieb Larry Rosenman:
> >>>> Progress, but I'm now getting:
> >>>> => SHA256 Checksum OK for
> >>>> go-plist-591f970eefbbeb04d7b37f334a0c4c3256e32876_GL0.tar.gz.
> >>>> /bin/rm -f -r
> >>>> /wrkdirs/usr/ports/net-mgmt/thanos/work/thanos-0.24.0/vendor/cloud.google.com/go/storage
> >>>> install -l rs
> >>>> /wrkdirs/usr/ports/net-mgmt/thanos/work/google-cloud-go-0.97.0/go/storage
> >>>> /wrkdirs/usr/ports/net-mgmt/thanos/work/thanos-0.24.0/vendor/cloud.google.com/storage
> >>>> install:
> >>>> /wrkdirs/usr/ports/net-mgmt/thanos/work/google-cloud-go-0.97.0/go/storage:
> >>>> realpath: No such file or directory
> >>>> *** Error code 71
> >>>>
> >>>> new makefile attached.  I've tried I don't know how many things with
> >>>> the m2t made lines.
> >>>>
> >>> this is a little bit tricky.
> >>> To understand it, you need to use tag storage/v1.10:
> >>> https://github.com/googleapis/google-cloud-go/tree/storage/v1.10.0
> >>>
> >>> This archive has a directory named storage you would like to link
> >>> into:
> >>> work/thanos-0.24.0/vendor/cloud.google.com/go/storage/
> >>> You can find the directory with:
> >>> tar tzvf
> >>> /usr/ports/distfiles/googleapis-google-cloud-go-storage-v1.10.0_GH0.tar.gz
> >>> So at first you download it with a GH_TUPLE definition:
> >>> +
> >>> googleapis:google-cloud-go:storage/v1.10.0:googleapis_google_cloud_go_storage
> >>> \
> >>>
> >>> The last part here must be unique, I added _storage to it.
> >>>
> >>> The content will be stored in (the path is used from the GH_TUPLE
> >>> definition):
> >>> work/google-cloud-go-storage-v1.10.0/
> >>>
> >>> The next step is now to remove the already existing directory:
> >>> @${RM} -r ${WRKSRC}/vendor/cloud.google.com/go/storage
> >>>
> >>> and now link the previously download archive into the removed
> >>> directory:
> >>> @${RLN} ${WRKSRC_googleapis_google_cloud_go_storage}/storage
> >>> ${WRKSRC}/vendor/cloud.google.com/go/storage
> >>>
> >>> I attached you the makefile, which includes this modification.
> >>> Maybe modules2tuple can be fixed to get it working if the version tag
> >>> includes a `/ `.
> >>> I added @dmgk@FreeBSD.org, maybe he has an idea how to fix this in
> >>> modules2tuple.
> >>>
> >>> Gruß
> >>> Matthias
> >>
> >>
> >> Still getting errors:
> >>
> >>  ===>  Building thanos from ./cmd/thanos
> >> vendor/cloud.google.com/go/storage/iam.go:20:2: cannot find package
> >> "." in:
> >>     /wrkdirs/usr/ports/net-mgmt/thanos/work/thanos-0.24.0/vendor/cloud.google.com/go/iam
> >> vendor/cloud.google.com/go/storage/bucket.go:24:2: cannot find package
> >> "." in:
> >>     /wrkdirs/usr/ports/net-mgmt/thanos/work/thanos-0.24.0/vendor/cloud.google.com/go/internal/optional
> >> vendor/cloud.google.com/go/storage/acl.go:22:2: cannot find package
> >> "." in:
> >>     /wrkdirs/usr/ports/net-mgmt/thanos/work/thanos-0.24.0/vendor/cloud.google.com/go/internal/trace
> >> vendor/cloud.google.com/go/storage/storage.go:43:2: cannot find
> >> package "." in:
> >>     /wrkdirs/usr/ports/net-mgmt/thanos/work/thanos-0.24.0/vendor/cloud.google.com/go/internal/version
> >> pkg/tracing/stackdriver/tracer.go:12:2: cannot find package "." in:
> >>     /wrkdirs/usr/ports/net-mgmt/thanos/work/thanos-0.24.0/vendor/cloud.google.com/go/trace/apiv1
> >> *** Error code 1
> >>
> > if you download the packages manually:
> > cd net-mgmt/thanos
> > make clean extract
> > cd work/thanos-0.24.0
> > rm -Rf vendor/cloud.google.com
> > go mod vendor
> > ls -las vendor/cloud.google.com/go
> >
> > you will see how the directory must look like.
> > I think that another googleapis:google-cloud-go tuple line needs
> > corrections.
> >
> > Gruß
> > Matthias
>
>
> ❯ ls -las vendor/cloud.google.com/go
> total 139
>   3 drwxr-xr-x  7 ler  ler      19 Jan 17 12:12 .
>   1 drwxr-xr-x  3 ler  ler       3 Jan 17 12:12 ..
>   1 -rw-r--r--  1 ler  ler      92 Jan 17 12:12 .gitignore
> 58 -rw-r--r--  1 ler  ler  131886 Jan 17 12:12 CHANGES.md
>   3 -rw-r--r--  1 ler  ler    1982 Jan 17 12:12 CODE_OF_CONDUCT.md
>   9 -rw-r--r--  1 ler  ler   13625 Jan 17 12:12 CONTRIBUTING.md
>   8 -rw-r--r--  1 ler  ler   11358 Jan 17 12:12 LICENSE
>   5 -rw-r--r--  1 ler  ler    5703 Jan 17 12:12 README.md
>   5 -rw-r--r--  1 ler  ler    6687 Jan 17 12:12 RELEASING.md
>   2 -rw-r--r--  1 ler  ler     329 Jan 17 12:12 SECURITY.md
>   1 drwxr-xr-x  3 ler  ler       3 Jan 17 12:12 compute
>   6 -rw-r--r--  1 ler  ler    8089 Jan 17 12:12 doc.go
>   2 -rw-r--r--  1 ler  ler     532 Jan 17 12:12 go.mod
> 25 -rw-r--r--  1 ler  ler   55096 Jan 17 12:12 go.sum
>   1 drwxr-xr-x  2 ler  ler       3 Jan 17 12:12 iam
>   3 drwxr-xr-x  5 ler  ler       9 Jan 17 12:12 internal
>   3 drwxr-xr-x  2 ler  ler      23 Jan 17 12:12 storage
>   6 -rw-r--r--  1 ler  ler    9063 Jan 17 12:12 testing.md
>   1 drwxr-xr-x  3 ler  ler       4 Jan 17 12:12 trace
>
> ler in borg in thanos/work/thanos-0.24.0 on  main +471 -304 via 🐹
> v1.17.6 on ☁️  (us-east-1)
> ❯
>
> post-extract:
>         @${RM} -r ${WRKSRC}/vendor/cloud.google.com/go/storage
>         @${RLN} ${WRKSRC_googleapis_google_cloud_go_storage}/storage
> ${WRKSRC}/vendor/cloud.google.com/go/storage
>         @${RM} -r ${WRKSRC}/vendor/cloud.google.com/go/internal
>         @${RLN} ${WRKSRC_googleapis_google_cloud_go_internal}/internal
> ${WRKSRC}/vendor/cloud.google.com/go/internal
>         @${RM} -r ${WRKSRC}/vendor/cloud.google.com/go/iam
>         @${RLN} ${WRKSRC_googleapis_google_cloud_go_iam}/iam
> ${WRKSRC}/vendor/cloud.google.com/go/iam
>         @${RM} -r ${WRKSRC}/vendor/cloud.google.com/go/compute
>         @${RLN} ${WRKSRC_googleapis_google_cloud_go_compute}/compute
> ${WRKSRC}/vendor/cloud.google.com/go/compute
>         @${RM} -r ${WRKSRC}/vendor/cloud.google.com/go/trace
>         @${RLN} ${WRKSRC_googleapis_google_cloud_go_compute}/trace
> ${WRKSRC}/vendor/cloud.google.com/go/trace
>
>
> => SHA256 Checksum OK for
> go-plist-591f970eefbbeb04d7b37f334a0c4c3256e32876_GL0.tar.gz.
> install: /internal: realpath: No such file or directory
> *** Error code 71
>
> this is super confusing :(
>
> --
> Larry Rosenman                     http://www.lerctr.org/~ler
> Phone: +1 214-642-9640                 E-Mail: ler@lerctr.org
> US Mail: 5708 Sabbia Dr, Round Rock, TX 78665-2106