unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Herman Rimm via Guix-patches via <guix-patches@gnu.org>
To: 68935@debbugs.gnu.org
Cc: ludo@gnu.org
Subject: [bug#68935] [PATCH v2 5/6] import: Insert packages into modules alphabetically.
Date: Sat, 10 Feb 2024 16:06:49 +0100	[thread overview]
Message-ID: <hh3hzsvmnxieyypisfu4dwqqk4vehzq5xi75loxo22kd5tkrdp@rxmbjtb2ruqd> (raw)
In-Reply-To: <c14cf3064d0b349f0947583b4b7a9ab63d4785af.1707505804.git.herman@rimm.ee>

Hi,

On Fri, Feb 09, 2024 at 08:25:17PM +0100, Herman Rimm wrote:
> diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm
> index 77fcfe3990..850887e720 100644
> --- a/guix/scripts/import.scm
> +++ b/guix/scripts/import.scm
> @@ -67,10 +67,39 @@ (define (show-help)
>    (display (G_ "
>    -h, --help             display this help and exit"))
>    (display (G_ "
> +  -i, --insert           insert into package module alphabetically"))
> +  (display (G_ "
>    -V, --version          display version information and exit"))
>    (newline)
>    (show-bug-report-information))
>  
> +(define (define-import importer args proc)
> +  "Wrap package expressions from IMPORTER with 'define-public and invoke
> +PROC callback."
> +  (if (member importer importers)
> +      (match (apply (resolve-importer importer) args)
> +        ((and expr (or ('package _ ...)
> +                       ('let _ ...)))
> +         (proc (package->definition expr)))
> +        ((and expr ('define-public _ ...))

With doc/package-hello.json file:

  [
    {
      "name": "myhello",
      "version": "2.10",
      "source": "mirror://gnu/hello/hello-2.10.tar.gz",
      "build-system": "gnu",
      "arguments": {
        "tests?": false
      },
      "home-page": "https://www.gnu.org/software/hello/",
      "synopsis": "Hello, GNU world: An example GNU package",
      "description": "GNU Hello prints a greeting.",
      "license": "GPL-3.0+",
      "native-inputs": ["gettext"]
    }
  ]

'guix import json doc/package-hello.json' produces:

  Starting download of /tmp/guix-file.BLTipY
  From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz...
  following redirection to `https://mirrors.ibiblio.org/gnu/hello/hello-2.10.tar.gz'...
   …10.tar.gz  709KiB                   1.6MiB/s 00:00 ▕██████████████████▏ 100.0%
  (define-public myhello
    (package
      (name "myhello")
      (version "2.10")
      (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://gnu/hello/hello-" version ".tar.gz"))
         (sha256
          (base32 "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
      (build-system (@ (guix build-system gnu) gnu-build-system))
      (arguments
       `(#:tests? #f))
      (native-inputs (list (@ (gnu packages gettext) gnu-gettext)))
      (home-page "https://www.gnu.org/software/hello/")
      (synopsis "Hello, GNU world: An example GNU package")
      (description "GNU Hello prints a greeting.")
      (license license:gpl3+)))
  
  Backtrace:
             4 (primitive-load "/home/herman/.cache/guix/inferiors/umi…")
  In guix/ui.scm:
     2324:7  3 (run-guix . _)
    2287:10  2 (run-guix-command _ . _)
  In srfi/srfi-1.scm:
      634:9  1 (for-each #<procedure 7f31b8f81380 at guix/scripts/imp…> …)
  In guix/scripts/import.scm:
      88:21  0 (_ _)
  
  guix/scripts/import.scm:88:21: Throw to key `match-error' with args `("match" "no matching pattern" myhello)'.

I think I can remove the (myhello) variable expression after definition
from the JSON importer in a future revision. Just a heads up.

Also I provided a reduced package-hello.json, because after fixing the
comma syntax, importing the file gives:

  Starting download of /tmp/guix-file.dVsYSt
  From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz...
  following redirection to `https://mirrors.ibiblio.org/gnu/hello/hello-2.10.tar.gz'...
   …10.tar.gz  709KiB                   1.5MiB/s 00:00 ▕██████████████████▏ 100.0%
  
  Starting download of /tmp/guix-file.B2wURN
  From https://example.com/greeter-1.0.tar.gz...
  download failed "https://example.com/greeter-1.0.tar.gz" 404 "Not Found"
  
  Starting download of /tmp/guix-file.B2wURN
  From https://web.archive.org/web/20240210155936/https://example.com/greeter-1.0.tar.gz...
  following redirection to `https://web.archive.org/web/20221219143408/http://example.com/greeter-1.0.tar.gz'...
  download failed "https://web.archive.org/web/20221219143408/http://example.com/greeter-1.0.tar.gz" 404 "Not Found"
  Trying to use Disarchive to assemble /tmp/guix-file.B2wURN...
  could not find its Disarchive specification
  failed to download "/tmp/guix-file.B2wURN" from "https://example.com/greeter-1.0.tar.gz"
  Backtrace:
            13 (primitive-load "/home/herman/.cache/guix/inferiors/umi…")
  In guix/ui.scm:
     2324:7 12 (run-guix . _)
    2287:10 11 (run-guix-command _ . _)
  In guix/scripts/import.scm:
       80:6 10 (guix-import . _)
  In ice-9/boot-9.scm:
    1747:15  9 (with-exception-handler #<procedure 7f890505d3f0 at ic…> …)
  In guix/scripts/import/json.scm:
      91:16  8 (_)
  In ice-9/boot-9.scm:
    1747:15  7 (with-exception-handler #<procedure 7f890505d3c0 at ic…> …)
  In guix/import/json.scm:
      72:19  6 (_)
  In srfi/srfi-1.scm:
     460:18  5 (fold #<procedure 7f890424dd60 at guix/import/json.scm…> …)
  In guix/import/json.scm:
      81:55  4 (_ (("inputs" . #("myhello" "hello")) ("license" . #) …) …)
  In guix/import/utils.scm:
     543:12  3 (alist->package (("inputs" . #("myhello" "hello")) # …) _)
     162:33  2 (source-spec->object "https://example.com/greeter-1.0.t…")
  In ice-9/ports.scm:
     450:11  1 (call-with-input-file #f #<procedure 7f88f0ba9b40 at g…> …)
  In unknown file:
             0 (open-file #f "r" #:encoding #f #:guess-encoding #f)

Can greeter have a real source? What should it be?

Cheers,
Herman Rimm




  reply	other threads:[~2024-02-10 15:26 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-05 14:51 [bug#68935] [PATCH 0/3] Add 'put' option to guix import Herman Rimm via Guix-patches via
2024-02-05 15:07 ` [bug#68935] [PATCH 1/3] svn-fetch: Require svn-command argument Herman Rimm via Guix-patches via
2024-02-07 21:34   ` Ludovic Courtès
2024-02-05 15:07 ` [bug#68935] [PATCH 2/3] guix: import: Wrap package expressions with define-public Herman Rimm via Guix-patches via
2024-02-07 21:38   ` Ludovic Courtès
2024-02-05 15:07 ` [bug#68935] [PATCH 3/3] guix: import: Put packages into modules in alphabetical order Herman Rimm via Guix-patches via
2024-02-07 21:57   ` Ludovic Courtès
2024-02-09 19:25 ` [bug#68935] [PATCH v2 1/6] doc: Note SVN dependency of texlive importer Herman Rimm via Guix-patches via
2024-02-09 19:25   ` [bug#68935] [PATCH v2 2/6] import: Wrap package expressions with define-public Herman Rimm via Guix-patches via
2024-02-09 19:25   ` [bug#68935] [PATCH v2 3/6] utils: Add insert-expression procedure Herman Rimm via Guix-patches via
2024-02-19 21:31     ` Ludovic Courtès
2024-02-09 19:25   ` [bug#68935] [PATCH v2 4/6] utils: Add find-expression procedure Herman Rimm via Guix-patches via
2024-02-19 21:38     ` Ludovic Courtès
2024-02-09 19:25   ` [bug#68935] [PATCH v2 5/6] import: Insert packages into modules alphabetically Herman Rimm via Guix-patches via
2024-02-10 15:06     ` Herman Rimm via Guix-patches via [this message]
2024-02-16 16:06     ` Herman Rimm via Guix-patches via
2024-02-19 21:43     ` Ludovic Courtès
2024-02-09 19:25   ` [bug#68935] [PATCH v2 6/6] import: Discard args after --version and --help Herman Rimm via Guix-patches via
2024-02-20 20:45 ` [bug#68935] [PATCH v3 0/7] Add insert option to guix import Herman Rimm via Guix-patches via
2024-02-20 20:45   ` [bug#68935] [PATCH v3 1/7] doc: Note SVN dependency of texlive importer Herman Rimm via Guix-patches via
2024-02-20 20:45   ` [bug#68935] [PATCH v3 2/7] import: Wrap package expressions with define-public Herman Rimm via Guix-patches via
2024-02-20 20:45   ` [bug#68935] [PATCH v3 3/7] utils: Add insert-expression procedure Herman Rimm via Guix-patches via
2024-02-23 19:53     ` Ludovic Courtès
2024-02-20 20:45   ` [bug#68935] [PATCH v3 4/7] utils: Add find-definition-insertion-location procedure Herman Rimm via Guix-patches via
2024-02-20 20:45   ` [bug#68935] [PATCH v3 5/7] import: Insert packages into modules alphabetically Herman Rimm via Guix-patches via
2024-02-20 20:45   ` [bug#68935] [PATCH v3 6/7] import: Discard args after --version and --help Herman Rimm via Guix-patches via
2024-02-20 20:45   ` [bug#68935] [PATCH v3 7/7] import: Do not return package name with json importer Herman Rimm via Guix-patches via
2024-02-23 17:53   ` [bug#68935] [PATCH v3 0/7] Add insert option to guix import Ludovic Courtès
2024-02-23 19:52   ` bug#68935: " Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=hh3hzsvmnxieyypisfu4dwqqk4vehzq5xi75loxo22kd5tkrdp@rxmbjtb2ruqd \
    --to=guix-patches@gnu.org \
    --cc=68935@debbugs.gnu.org \
    --cc=herman@rimm.ee \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).