unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 37071@debbugs.gnu.org, Robert Vollmert <rob@vllmrt.net>
Subject: bug#37071: guix import pypi httpie fails
Date: Sat, 31 Aug 2019 23:54:36 +0900	[thread overview]
Message-ID: <87pnkl5qs3.fsf@gmail.com> (raw)
In-Reply-To: <871rx5f233.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Wed, 28 Aug 2019 22:48:48 +0200")

Hello,

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

> Hi,
>
> Robert Vollmert <rob@vllmrt.net> skribis:
>
>> $ guix import pypi httpie
>>  …0.2.tar.gz  83KiB                   291KiB/s 00:00 [##################] 100.0%
>>  ….py3-none-any.whl  58KiB            201KiB/s 00:00 [##################] 100.0%
>> guix import: warning: Failed to extract file: httpie-1.0.2.dist-info/METADATA from wheel.
>> Backtrace:
>>           15 (primitive-load "/home/rob/.config/guix/current/bin/guix")
>> In guix/ui.scm:
>>   1692:12 14 (run-guix-command _ . _)
>> In guix/scripts/import.scm:
>>    115:11 13 (guix-import . _)
>> In guix/scripts/import/pypi.scm:
>>    102:23 12 (guix-import-pypi . _)
>> In guix/memoization.scm:
>>      98:0 11 (_ #<hash-table 11e5b20 0/31> ("httpie") _)
>> In unknown file:
>>           10 (_ #<procedure 11f9580 at guix/memoization.scm:179:32 …> …)
>> In ice-9/boot-9.scm:
>>     829:9  9 (catch _ _ #<procedure 7f2711b7fd48 at guix/import/pyp…> …)
>> In guix/utils.scm:
>>     635:8  8 (call-with-temporary-output-file _)
>> In guix/import/pypi.scm:
>>    384:25  7 (_ "/tmp/guix-file.A9OwRK" _)
>> In guix/utils.scm:
>>     635:8  6 (call-with-temporary-output-file #<procedure 1091c20 at…>)
>> In guix/import/utils.scm:
>>    133:10  5 (_ "/tmp/guix-file.jFzPxe" _)
>>     123:4  4 (url-fetch _ _)
>> In guix/build/download.scm:
>>     763:4  3 (url-fetch "/tmp/guix-file.A9OwRK" "/tmp/guix-file.jFz…" …)
>> In srfi/srfi-1.scm:
>>    679:15  2 (append-map _ _ . _)
>>    592:17  1 (map1 (#f))
>> In guix/build/download.scm:
>>     728:8  0 (maybe-expand-mirrors _ _)
>>
>> guix/build/download.scm:728:8: In procedure maybe-expand-mirrors:
>> In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): #f
>
> The key here is the message “Failed to extract […] METADATA from wheel”.
>
> When that happens, I think we miss too much information to do anything
> sensible.  Maxim, do you confirm?
>
> If you add ‘unzip’ to $PATH, the problem should vanish.
>
> We should probably process wheels & co. in derivations to avoid relying
> on tools that may or may not be in $PATH.
>
> Thoughts?
>
> Ludo’.

I can't seem to reproduce, even with 'unzip' removed from my profile:

--8<---------------cut here---------------start------------->8---
Starting download of /tmp/guix-file.Bdb5Iq
From https://files.pythonhosted.org/packages/d5/a4/ab61c1dbfdef33c7b7f5f7df0d79eb5cd55a106601a4acc17f983f320b4a/httpie-1.0.3.tar.gz...
 …0.3.tar.gz  85KiB                   1.4MiB/s 00:00 [##################] 100.0%

Starting download of /tmp/guix-file.F4KKQY
From https://files.pythonhosted.org/packages/da/08/22487f04aa2cb831c5e02c9286f1d145f81b06bf9bbf1e73b70d2dc15d7f/httpie-1.0.3-py2.py3-none-any.whl...
 ….py3-none-any.whl  58KiB            1.1MiB/s 00:00 [##################] 100.0%
guix import: warning: Failed to extract file: httpie-1.0.3.dist-info/METADATA from wheel.
(package
  (name "python-httpie")
  (version "1.0.3")
  (source
    (origin
      (method url-fetch)
      (uri (pypi-uri "httpie" version))
      (sha256
        (base32
          "103fcigpxf4nqmrdqjnyz7d9n4n16906slwmmqqc0gkxv8hnw6vd"))))
  (build-system python-build-system)
  (propagated-inputs
    `(("python-pygments" ,python-pygments)
      ("python-requests" ,python-requests)))
  (home-page "http://httpie.org/")
  (synopsis
    "HTTPie - a CLI, cURL-like tool for humans.")
  (description
    "HTTPie - a CLI, cURL-like tool for humans.")
  (license license:bsd-3))
--8<---------------cut here---------------end--------------->8---

It's hard to investigate the problem without being able to reproduce,
but, what the code is supposed to do is

a. Parse the METADATA file of the wheel archive.
b. If that fails, parse the first requires.txt file found in a source
archive of the package.

When both fail, empty lists are returned for the required dependencies
and optional test dependencies (and this should just give you a package
without inputs rather than a backtrace).

The later case is covered by the functional test named
"pypi->guix-package, no usable requirement file." in
guix/tests/pypi.scm.

HTH!

Maxim

      reply	other threads:[~2019-08-31  5:56 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-18 10:40 bug#37071: guix import pypi httpie fails Robert Vollmert
2019-08-18 11:28 ` Nicolas Goaziou
2019-08-18 11:49   ` Robert Vollmert
2019-08-21  7:38     ` Robert Vollmert
2019-08-21  9:03       ` Nicolas Goaziou
2019-08-28 20:48 ` Ludovic Courtès
2019-08-31 14:54   ` Maxim Cournoyer [this message]

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=87pnkl5qs3.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=37071@debbugs.gnu.org \
    --cc=ludo@gnu.org \
    --cc=rob@vllmrt.net \
    /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).