Subject: Re: bug#37332: opam->guix-package test fails

From: Julien Lepiller <[email-masked]>
Date: Sat, 07 Sep 2019 22:28:24 +0200

Le 7 septembre 2019 12:22:00 GMT+02:00, "Wiktor Żelazny" <[email-masked]> a écrit :
>My first post here. I’m assuming the bug number is going to be added
>automatically. My apologies in advance, if it’s not.
>
>I’m under GNU Guix SD (a new user), preparing to contribute my first
>package. While following [1], I’m getting FAIL for opam->guix-package
>after invoking `make check` in the Guix source tree.
>
>The relevant part of the test log:
>
>   FAIL: tests/opam
>   ================
>
>   test-name: opam->guix-package
>   location: /home/w/vurv/guix-git/tests/opam.scm:71
>   source:
>   + (test-assert
>   +   "opam->guix-package"
>   +   (mock ((guix import utils)
>   +          url-fetch
>   +          (lambda (url file-name)
>   +            (match url
>   +                   ("https://example.org/foo-1.0.0.tar.gz"
>   +                    (begin
>   +                      (mkdir-p "foo-1.0.0")
>   +                      (system* "tar" "czvf" file-name "foo-1.0.0/")
>   +                      (delete-file-recursively "foo-1.0.0")
>   +                      (set! test-source-hash
>+                        (call-with-input-file file-name
>port-sha256))))
>   +                   (_ (error "Unexpected URL: " url)))))
>   +         (let ((my-package
>   +                 (string-append
>   +                   test-repo
>   +                   "/packages/foo/foo.1.0.0")))
>   +           (mkdir-p my-package)
>   +           (with-output-to-file
>   +             (string-append my-package "/opam")
>   +             (lambda _ (format #t "~a" test-opam-file))))
>   +         (mock ((guix import opam)
>   +                get-opam-repository
>   +                (lambda _ test-repo))
>   +               (match (opam->guix-package "foo")
>   +                      (('package
>   +                        ('name "ocaml-foo")
>   +                        ('version "1.0.0")
>   +                        ('source
>   +                         ('origin
>   +                          ('method 'url-fetch)
>+                          ('uri
>"https://example.org/foo-1.0.0.tar.gz")
>   +                          ('sha256 ('base32 (? string? hash)))))
>   +                        ('build-system 'ocaml-build-system)
>   +                        ('inputs
>   +                         ('quasiquote
>+                          (("ocaml-zarith" ('unquote
>'ocaml-zarith)))))
>   +                        ('native-inputs
>   +                         ('quasiquote
>+                          (("ocaml-alcotest" ('unquote
>'ocaml-alcotest))
>   +                           ("ocamlbuild" ('unquote 'ocamlbuild)))))
>   +                        ('home-page "https://example.org/")
>   +                        ('synopsis "Some example package")
>+                        ('description "This package is just an
>example.")
>   +                        ('license #f))
>   +                       (string=?
>+                         (bytevector->nix-base32-string
>test-source-hash)
>   +                         hash))
>   +                      (x (pk 'fail x #f))))))
>   foo-1.0.0/
>
>;;; (fail (package (name "ocaml-foo") (version "1.0.0") (source (origin
>(method url-fetch) (uri "https://example.org/foo-1.0.0.tar.gz") (sha256
>(base32 "1krpnm4j5f8xi2h6jaq3v97alv9dz7v2mdw53a8sycw4i97qxkaq"))))
>(build-system ocaml-build-system) (propagated-inputs (quasiquote
>(("ocaml-zarith" (unquote ocaml-zarith))))) (native-inputs (quasiquote
>(("ocaml-alcotest" (unquote ocaml-alcotest)) ("ocamlbuild" (unquote
>ocamlbuild))))) (home-page "https://example.org/") (synopsis "Some
>example package") (description "This package is just an example.")
>(license #f)) #f)
>   actual-value: #f
>   result: FAIL
>
>Software versions:
>
>   GNU Guix: 66d2133 for invoking `guix environment`, d550845 for the
>   tested source tree
>   GNU Guile: 2.2.4
>   Guile-Gcrypt: 0.1.0
>   GnuTLS: 3.6.5
>   Guile-SQLite3: 0.1.0
>   Guile-Git: 0.2.0
>   Guile-JSON: 1.2.0
>   zlib: 1.2.11
>   GNU Make: 4.2.1
>
>In the mailing list archives, I can see some recurring opam/ocaml
>issues, but I’m not familiar with any of those, so I cannot judge what
>the problem could be. I will appreciate any hints.
>
>WŻ
>
>[1]: https://guix.gnu.org/manual/en/html_node/Building-from-Git.html

Thanks for the report! I recently changed the importer to use propagated inputs instead of inputs and forgot about the test. I just pushed 1d03a91 which fixes the test.