Subject: [bug#70684] [PATCH go-team 0/6] Update miniflux to 2.1.3

From: Rodion Goritskov <[email-masked]>
Date: Tue, 07 May 2024 23:22:06 +0400

Hi, thank you for review!

> In general the <#:import-path> is what we may see on go.mod after
> <module>. In general <#:unpack-path> is not required to build golang
> module.
>
> According to the <https://github.com/google/go-tpm/blob/v0.9.0/go.mod>
> these two packages may be packed as single one:
> <module github.com/google/go-tpm>.
>
> +(define-public go-github-com-google-go-tpm-legacy-tpm2
> +(define-public go-github-com-google-go-tpm-tpmutil

I have a problem when trying to build these packages as one.
When trying to build the single package (like this):

(define go-github-com-google-go-tpm
  (package
    (name "go-github-com-google-go-tpm")
    (version "0.9.0")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/google/go-tpm")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1pv77fmlxrnxasj6fjvzrv9yaf2qb45x1zss3nbsdvzgpwviaiyi"))))
    (build-system go-build-system)
    (arguments
     (list
      #:go go-1.22
      #:import-path "github.com/google/go-tpm"))
    (propagated-inputs (list go-golang-org-x-sys
                             go-golang-org-x-crypto))
    (home-page "https://github.com/google/go-tpm")
    (synopsis "Go-TPM library")
    (description
     "TPM 2.0 library for directly communicating with a TPM device.")
    (license license:asl2.0)))

I get the following error on the "build" phase:

command "go" "install" "-v" "-x" "-ldflags=-s -w" "-trimpath"
"github.com/google/go-tpm" failed with status 1

Actually, it fails with the following go install error (found by running
guix build with -K and running command manually in the build folder):

package github.com/google/go-tpm: no Go files in
/tmp/guix-build-go-github-com-google-go-tpm-0.9.0.drv-0/src/github.com/google/go-tpm

This is true - there are no *.go files in the project's root.
For this project to build succesfully, project directory for "go
install" should end with /... (to build all subfolders recursively), like:

"go" "install" "-v" "-x" "-ldflags=-s -w" "-trimpath"
"github.com/google/go-tpm/..."

So, for now I could remove the build (and check, because it has the same
problem) phases from the build (easy, but, AFAIK, not the best fix). In
this case we still have all the necessary sources, for dependent
packages, but no checks.

Or, maybe, we could add some kind of "recursive" flag to the
go-build-system. In this case, as I see, it will lead to all go packages rebuild
(even if it will not be enabled by default).

What do you think?

> This is one go-module no need to split it into 3 packages, see go.mod
> <https://github.com/go-webauthn/webauthn/blob/v0.10.2/go.mod>
> <module github.com/go-webauthn/webauthn>
>
> +(define-public go-github-com-go-webauthn-webauthn-protocol
> +(define-public go-github-com-go-webauthn-webauthn-metadata
> +(define-public go-github-com-go-webauthn-webauthn-webauthn

For these package I have the same problem (no go files in the root folder).