Faliure in guix import go

  • Done
  • quality assurance status badge
Details
3 participants
  • Sarah Morgensen
  • Ludovic Courtès
  • Stephen Paul Weber
Owner
unassigned
Submitted by
Stephen Paul Weber
Severity
normal
S
S
Stephen Paul Weber wrote on 15 Sep 2021 02:32
(address . bug-guix@gnu.org)
20210915003242.GA22238@singpolyma-beefy.lan
$ guix import go -r bdd.fi/x/runitor

guix import: warning: Failed to import package "bdd.fi/x/runitor".
reason: ("struct-vtable" "Wrong type argument in position 1 (expecting struct): ~S" (#f) (#f)).
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEWeaCw+rzmiEMpzU00RwpEc5RnN4FAmFBPyUACgkQ0RwpEc5R
nN69rxAAjyULgWYkXQXhZMxpdijPh6OzSXmHpKbLYAAjW3TqxaN/ZuHJrQIb8w8C
FN5oF18tx/deF2Vm9zT3VSeV+poNDREMLOU9fn5ruQ2PJlmLmw62sP06aByDtAz4
1LAX+BpHUddosbm4YSQiu7pQttXjImoybx8C16+u4cZdMmVqKNm9Qv09eyGris8B
clP3XW2/34myBLRjLQUhK+qFtN4Zb6v3z8YaKTlFoTIb8YkANwnHy/DjdjfJNA+v
xcLLTcgAVvYk5uJb9nWqKlNPh3KKvL2Bj7wB4aoTAB1dSA0P5mvTjmh6C6AKzvMi
djlDJUtIxK1BN63rPddi4OvTmtfGkDP62jmteUSM5CZvzoPCz5vkiOWDtB+S9thx
EMRFbL81LUxqU8aSBismeOy9Ja01NI2OoHndEQUzq7DClxEHEY35CuEPDKN10b9s
evg2wEn0cK4HS0BmryjwinIJxSmHJbqNACdRc9GSysVTumKvWiZyGobDhnqZTy7h
oSyzH0Ek8RnWiv14Z5xoTYEN90sb6q4chzBA/U6w4yeBRc37XodMqhHJP2WRk/Os
Os5X2+InthrlCiU7dj08yAnhQ3uClIe+37AbUVrVBW+6HSriLsrP5JNzavqDMLZu
/cu/ubcKaEISyjWleRRhMapqyX9nFtu1uiDgLLVIaQJ4kF7hJro=
=OueR
-----END PGP SIGNATURE-----


S
S
Stephen Paul Weber wrote on 15 Sep 2021 04:27
Re: Failure in guix import go
(address . 50595@debbugs.gnu.org)
20210915022754.GC22238@singpolyma-beefy.lan
Getting a similar failure here:

$ guix import go github.com/cncf/udpa/go/

guix import: warning: Failed to import package "github.com/cncf/udpa/go/".
reason: ("vector-ref" "Wrong type argument in position 1 (expecting vector): ~S" (#f) (#f)).
guix import: error: failed to download meta-data for module 'github.com/cncf/udpa/go/'
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEWeaCw+rzmiEMpzU00RwpEc5RnN4FAmFBWiUACgkQ0RwpEc5R
nN6UnQ/9HZuFZYLgQrLT7htlABH66lLFG3gGWlMQJk82oSledcfzsEkCYVmhatCw
RY7dknRPpcP2tW+CztgH1vFu144dgIjsNkJjLMsK9jEzbKPHpuXaS74qiu09SkOI
VbafXWYQckHKLXomhXYs79II1iBbhEzc62NduUVioUY2fbsojEph/o46GXBvb+a5
evNobc0Gkjb3InmOORvrSbuZnOAOHS2kd6qEJ4Vz6ZrKl4gaOzBFFDP3U9g3XiSp
DuF3oUWeTS9d5sGmvrXp0OTSUUdIDujwZOQT9kB2/r32dwDTyX6Y2sBJpGPYqXQ5
xVBEVS/s1buRS8nBS/GhkN7fOntiE/sN0OlldhoafwG9JsOLvx8u2vMSsqKgbphW
IQ+tjdYLBoUS7qqUpJR5JAjknEKZXK+NiwIJCBvnlAyXd9i5enzcrTeEzwqQ/TE8
/9AXg4aRwf8p9/riXhruLbHsyqn5Gbubenf3joC863D9TK+sUJN+Nh4afkkAAiK5
4YKi7TjLyXNtJ3HWBg+RZWmZ79X2lRHNJsC1lcYZivsJELKrKAE0s+yDN/bRGVji
HkwjEgkp8FPVQvjvCFlTUMa39oentjEoxB8KlKWpbfcGA3c8oCCxcjPf7WEFvL0p
aj4iFdoXmbuvlPN52nTOsar8J6v7lpz2DpmCs4AZOxQ6TvmqSn0=
=oiBs
-----END PGP SIGNATURE-----


S
S
Sarah Morgensen wrote on 17 Sep 2021 05:07
Re: bug#50595: Faliure in guix import go
(name . Stephen Paul Weber)(address . singpolyma@singpolyma.net)(address . 50595@debbugs.gnu.org)
861r5nj3w7.fsf@mgsn.dev
Hello,

Thanks for your report!

Stephen Paul Weber <singpolyma@singpolyma.net> writes:

Toggle quote (5 lines)
> $ guix import go -r bdd.fi/x/runitor
>
> guix import: warning: Failed to import package "bdd.fi/x/runitor".
> reason: ("struct-vtable" "Wrong type argument in position 1 (expecting struct): ~S" (#f) (#f)).

It seems this is occurring because "https://bdd.fi/x/runitor?go-get=1"
does not have the

<meta "go-import" ...>

tag in the <head> element, as the Go spec requires (it's a direct child
of the <html> element). However, it seems fairly harmless to relax this
requirement in our importer, so the following patch should fix this.
From ca17299a3011171d6889202003d1e888b22303ec Mon Sep 17 00:00:00 2001
Message-Id: <ca17299a3011171d6889202003d1e888b22303ec.1631842353.git.iskarian@mgsn.dev>
From: Sarah Morgensen <iskarian@mgsn.dev>
Date: Thu, 16 Sep 2021 18:27:09 -0700
Subject: [PATCH] import: go: Match "go-import" meta tags anywhere.

Some personal sites forget to put <meta name="go-import" ...> in a
<head> element, so look anywhere for them.

* guix/import/go.scm (fetch-module-meta-data): Match "go-import" meta
tags anywhere in the page.
---
guix/import/go.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/guix/import/go.scm b/guix/import/go.scm
index dad007d511..43abe004b3 100644
--- a/guix/import/go.scm
+++ b/guix/import/go.scm
@@ -480,7 +480,7 @@ build a package."
(strip-.git-suffix/maybe repo-url)))))
;; <meta name="go-import" content="import-prefix vcs repo-root">
(let* ((meta-data (http-fetch* (format #f "https://~a?go-get=1" module-path)))
- (select (sxpath `(// head (meta (@ (equal? (name "go-import"))))
+ (select (sxpath `(// (meta (@ (equal? (name "go-import"))))
// content))))
(match (select (html->sxml meta-data #:strict? #t))
(() #f) ;nothing selected

base-commit: 72297993a174586ee0a23b95b6b9ee2f3db34cf1
--
2.33.0
S
S
Sarah Morgensen wrote on 17 Sep 2021 23:39
Re: bug#50595: Failure in guix import go
(name . Stephen Paul Weber)(address . singpolyma@singpolyma.net)(address . 50595@debbugs.gnu.org)
86sfy2hoep.fsf@mgsn.dev
Hello,

Stephen Paul Weber <singpolyma@singpolyma.net> writes:

Toggle quote (11 lines)
> Getting a similar failure here:
>
> $ guix import go github.com/cncf/udpa/go/
>
> following redirection to `https://proxy.golang.org/github.com/cncf/udpa/go/@v/list'...
> following redirection to `https://proxy.golang.org/github.com/cncf/udpa/go/@latest'...
> following redirection to `https://proxy.golang.org/github.com/cncf/udpa/go/@v/v0.0.0-20210322005330-6414d713912e.mod'...
> guix import: warning: Failed to import package "github.com/cncf/udpa/go/".
> reason: ("vector-ref" "Wrong type argument in position 1 (expecting vector): ~S" (#f) (#f)).
> guix import: error: failed to download meta-data for module 'github.com/cncf/udpa/go/'

This one seems to be caused by the importer incorrectly using the
repository root instead of the module path in a couple places. The
attached patch fixes this.

Hope that helps,
--
Sarah
From b9ef64a641c20d331cf1886d71b85b81be910b30 Mon Sep 17 00:00:00 2001
Message-Id: <b9ef64a641c20d331cf1886d71b85b81be910b30.1631914185.git.iskarian@mgsn.dev>
From: Sarah Morgensen <iskarian@mgsn.dev>
Date: Thu, 16 Sep 2021 18:24:40 -0700
Subject: [PATCH] import: go: Improve handling of modules in VCS
subdirectories.

Use the supplied module path (instead of the repository root) as the import
path for everything except source and homepage URLs. For modules not in the
root of a VCS repository, set #:unpack-path to the repository root by default.

* guix/import/go.scm (go-module->guix-package): Use 'module-path'
instead of 'root-module-path' for #:import-path. Emit #:unpack-path
when #:import-path is not equal to 'root-module-path'.
---
guix/import/go.scm | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

Toggle diff (27 lines)
diff --git a/guix/import/go.scm b/guix/import/go.scm
index c6ecdbaffd..fe7387dec2 100644
--- a/guix/import/go.scm
+++ b/guix/import/go.scm
@@ -619,7 +619,7 @@ hint: use one of the following available versions ~a\n"
(meta-data (fetch-module-meta-data root-module-path))
(vcs-type (module-meta-vcs meta-data))
(vcs-repo-url (module-meta-data-repo-url meta-data goproxy))
- (synopsis (go-package-synopsis root-module-path))
+ (synopsis (go-package-synopsis module-path))
(description (go-package-description module-path))
(licenses (go-package-licenses module-path)))
(values
@@ -630,7 +630,10 @@ hint: use one of the following available versions ~a\n"
,(vcs->origin vcs-type vcs-repo-url version*))
(build-system go-build-system)
(arguments
- '(#:import-path ,root-module-path))
+ '(#:import-path ,module-path
+ ,@(if (string=? module-path root-module-path)
+ '()
+ `(#:unpack-path ,root-module-path))))
,@(maybe-propagated-inputs
(map (match-lambda
((name version)

base-commit: 72297993a174586ee0a23b95b6b9ee2f3db34cf1
--
2.33.0
L
L
Ludovic Courtès wrote on 18 Sep 2021 23:12
Re: bug#50595: Faliure in guix import go
(name . Sarah Morgensen)(address . iskarian@mgsn.dev)
87lf3tsi46.fsf_-_@gnu.org
Hi,

Sarah Morgensen <iskarian@mgsn.dev> skribis:

Toggle quote (15 lines)
>>From b9ef64a641c20d331cf1886d71b85b81be910b30 Mon Sep 17 00:00:00 2001
> Message-Id: <b9ef64a641c20d331cf1886d71b85b81be910b30.1631914185.git.iskarian@mgsn.dev>
> From: Sarah Morgensen <iskarian@mgsn.dev>
> Date: Thu, 16 Sep 2021 18:24:40 -0700
> Subject: [PATCH] import: go: Improve handling of modules in VCS
> subdirectories.
>
> Use the supplied module path (instead of the repository root) as the import
> path for everything except source and homepage URLs. For modules not in the
> root of a VCS repository, set #:unpack-path to the repository root by default.
>
> * guix/import/go.scm (go-module->guix-package): Use 'module-path'
> instead of 'root-module-path' for #:import-path. Emit #:unpack-path
> when #:import-path is not equal to 'root-module-path'.

[...]

Toggle quote (12 lines)
>>From ca17299a3011171d6889202003d1e888b22303ec Mon Sep 17 00:00:00 2001
> Message-Id: <ca17299a3011171d6889202003d1e888b22303ec.1631842353.git.iskarian@mgsn.dev>
> From: Sarah Morgensen <iskarian@mgsn.dev>
> Date: Thu, 16 Sep 2021 18:27:09 -0700
> Subject: [PATCH] import: go: Match "go-import" meta tags anywhere.
>
> Some personal sites forget to put <meta name="go-import" ...> in a
> <head> element, so look anywhere for them.
>
> * guix/import/go.scm (fetch-module-meta-data): Match "go-import" meta
> tags anywhere in the page.

I went ahead and pushed these two patches on your behalf (after adding a
reference to this bug):

281ede2e7d * import: go: Match "go-import" meta tags anywhere.
b3907e304d * import: go: Improve handling of modules in VCS subdirectories.

Should we close this bug now, Sarah?

Thanks!

Ludo’.
S
S
Sarah Morgensen wrote on 18 Sep 2021 23:37
(name . Ludovic Courtès)(address . ludo@gnu.org)
86lf3th8ez.fsf@mgsn.dev
Hi,

Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (6 lines)
> I went ahead and pushed these two patches on your behalf (after adding a
> reference to this bug):
>
> 281ede2e7d * import: go: Match "go-import" meta tags anywhere.
> b3907e304d * import: go: Improve handling of modules in VCS subdirectories.

Thanks (that was quick)!

Toggle quote (2 lines)
> Should we close this bug now, Sarah?

Yes; I've closed it now.

If anyone has some time and free disk space, you might try importing
something which brings in complicated repos like AWS, and see if
anything else falls out. Perhaps try github.com/cloudfoundry/cli? I've
tried that one before and it was a mess.

--
Sarah
Closed
?