Subject: bug#51888: closed (Re: [bug#51888] [PATCH 0/1] import: opam: Warn instead of leave when fetching fails.)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 19 Nov 2021 12:01:02 +0000

Your bug report

#51888: [PATCH 0/1] import: opam: Warn instead of leave when fetching fails.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
51888: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=51888
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#51888] [PATCH 0/1] import: opam: Warn instead of leave when fetching fails.
From: Julien Lepiller <[email-masked]>
Cc: [email-masked]
Date: Fri, 19 Nov 2021 13:00:05 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Forgot to close.

Subject: [PATCH 0/1] import: opam: Warn instead of leave when fetching fails.
From: zimoun <[email-masked]>
To: [email-masked]
Cc: zimoun <[email-masked]>
Date: Tue, 16 Nov 2021 11:10:43 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

It is possible to use another OPAM repository when importing, for instance
"guix import opam --repo=https://coq.inria.fr/opam/released" -- although Coq
packages are generally not built using OCaml or Dune build-system, another
story. :-)  Or even, a package using OCaml or Dune build system but not
included in Opam repositories supported by Guix.

However, if this package uses OCaml or Dune build system, then 'refresh'
leaves which is annoying.  For instance, consider:

--8<---------------cut here---------------start------------->8---
$ guix lint -L /tmp/pkgs example
/tmp/pkgs/mine.scm:8:2: example@0 : champ de licence invalide
/tmp/pkgs/mine.scm:23:14: example@0 : le synopsis ne devrait pas commencer par un nom de paquet
/tmp/pkgs/mine.scm:22:15: example@0 : Erreur de certificat TLS : X.509 server certificate for 'exmaple.org' does not match: C=US,ST=California,L=test,O=testexample,OU=testexample,CN=testexp

guix lint: erreur : le paquet « example » est introuvable
--8<---------------cut here---------------end--------------->8---

The trivial patch instead turns this error to a warning which allows to run
all the checkers:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix lint -L /tmp/pkgs example
/tmp/pkgs/mine.scm:8:2: example@0: invalid license field
/tmp/pkgs/mine.scm:23:14: example@0: synopsis should not start with the package name
/tmp/pkgs/mine.scm:22:15: example@0: TLS certificate error: X.509 server certificate for 'exmaple.org' does not match: C=US,ST=California,L=test,O=testexample,OU=testexample,CN=testexp

guix lint: warning: opam: package 'example' not found
/tmp/pkgs/mine.scm:12:6: warning: failed to fetch Git repository for example
/tmp/pkgs/mine.scm:12:6: example@0: updater 'opam' failed to find upstream releases
/tmp/pkgs/mine.scm:12:6: example@0: scheduled Software Heritage archival
--8<---------------cut here---------------end--------------->8---

here 'archival'.  Note that the failure is correctly handled by 'lint' when
the early leave skips.

Note that it could be better that 'opam-fetch' raises an error in order to be
catched by caller and thus make all the UI consistent.  However, this requires
a revamp of all inporters...

Cheers,
simon

Example of file /tmp/pkgs/mine.scm:

--8<---------------cut here---------------start------------->8---
(define-module (mine)
  #:use-module (guix packages)
  #:use-module (guix build-system ocaml)
  #:use-module (guix git-download))

(define-public example
  (package
    (name "example")
    (version "0")
    (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://example.org")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
          "0m5si9dsv96z92gy4xaqz8mzyz8zp7j1sp542l0wzsp5xgyfpc7i"))))
    (build-system ocaml-build-system)
    (home-page "https://exmaple.org")
    (synopsis "Example")
    (description "This is an exmaple.")
    (license #f)))
--8<---------------cut here---------------end--------------->8---

zimoun (1):
  import: opam: Warn instead of leave when fetching fails.

 guix/import/opam.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

base-commit: 122396075f12b013b6bde56dafb895587b95bc9d
-- 
2.32.0