bug#37071: guix import pypi httpie fails

2019-08-30 Thread Maxim Cournoyer
Hello,

Ludovic Courtès  writes:

> Hi,
>
> Robert Vollmert  skribis:
>
>> $ guix import pypi httpie
>>  …0.2.tar.gz  83KiB   291KiB/s 00:00 [##] 
>> 100.0%
>>  ….py3-none-any.whl  58KiB201KiB/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 (_ # ("httpie") _)
>> In unknown file:
>>   10 (_ # …)
>> In ice-9/boot-9.scm:
>> 829:9  9 (catch _ _ # …)
>> 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 #)
>> 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  58KiB1.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





bug#37071: guix import pypi httpie fails

2019-08-28 Thread Ludovic Courtès
Hi,

Robert Vollmert  skribis:

> $ guix import pypi httpie
>  …0.2.tar.gz  83KiB   291KiB/s 00:00 [##] 
> 100.0%
>  ….py3-none-any.whl  58KiB201KiB/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 (_ # ("httpie") _)
> In unknown file:
>   10 (_ # …)
> In ice-9/boot-9.scm:
> 829:9  9 (catch _ _ # …)
> 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 #)
> 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’.





bug#37071: guix import pypi httpie fails

2019-08-21 Thread Nicolas Goaziou
Hello,

Robert Vollmert  writes:

> Just to note that the error persists after guix pull. Weird.
>
> @Nicolas: Did your test use a recently pulled guix?

I confirm the command succeeds with

Génération 34   18 août 2019 22:18:31   (actuelle)
  guix 4167181
URL du dépôt : https://git.savannah.gnu.org/git/guix.git
branche: master
commit : 41671813f13cc4965f3674fdf4eb17506b49caf2

Not sure it helps, though.

Did you try to recompile guix after make clean-go? IIRC I encountered
a similar problem a couple of weeks ago.

Regards,

-- 
Nicolas Goaziou





bug#37071: guix import pypi httpie fails

2019-08-21 Thread Robert Vollmert



> On 18. Aug 2019, at 13:49, Robert Vollmert  wrote:
> 
> 
> 
>> On 18. Aug 2019, at 13:28, Nicolas Goaziou  wrote:
>> Robert Vollmert  writes:
>> 
>>> $ guix import pypi httpie
>>> …0.2.tar.gz  83KiB   291KiB/s 00:00 [##] 
>>> 100.0%
>>> ….py3-none-any.whl  58KiB201KiB/s 00:00 [##] 
>>> 100.0%
>>> guix import: warning: Failed to extract file: 
>>> httpie-1.0.2.dist-info/METADATA from wheel.
>>> Backtrace:
>> 
>> [...]
>> 
>>> 
>>> guix/build/download.scm:728:8: In procedure maybe-expand-mirrors:
>>> In procedure struct_vtable: Wrong type argument in position
>>> 1 (expecting struct): #f
>> 
>> FWIW, I cannot reproduce it. I get
> 
> Thanks for looking into this!
> 
> I’ll try making sure everything is up to date, and try again.

Just to note that the error persists after guix pull. Weird.

@Nicolas: Did your test use a recently pulled guix?






bug#37071: guix import pypi httpie fails

2019-08-18 Thread Robert Vollmert



> On 18. Aug 2019, at 13:28, Nicolas Goaziou  wrote:
> Robert Vollmert  writes:
> 
>> $ guix import pypi httpie
>> …0.2.tar.gz  83KiB   291KiB/s 00:00 [##] 
>> 100.0%
>> ….py3-none-any.whl  58KiB201KiB/s 00:00 [##] 
>> 100.0%
>> guix import: warning: Failed to extract file: 
>> httpie-1.0.2.dist-info/METADATA from wheel.
>> Backtrace:
> 
> [...]
> 
>> 
>> guix/build/download.scm:728:8: In procedure maybe-expand-mirrors:
>> In procedure struct_vtable: Wrong type argument in position
>> 1 (expecting struct): #f
> 
> FWIW, I cannot reproduce it. I get

Thanks for looking into this!

I’ll try making sure everything is up to date, and try again.






bug#37071: guix import pypi httpie fails

2019-08-18 Thread Nicolas Goaziou
Hello,

Robert Vollmert  writes:

> $ guix import pypi httpie
>  …0.2.tar.gz  83KiB   291KiB/s 00:00 [##] 
> 100.0%
>  ….py3-none-any.whl  58KiB201KiB/s 00:00 [##] 
> 100.0%
> guix import: warning: Failed to extract file: httpie-1.0.2.dist-info/METADATA 
> from wheel.
> Backtrace:

[...]

>
> guix/build/download.scm:728:8: In procedure maybe-expand-mirrors:
> In procedure struct_vtable: Wrong type argument in position
> 1 (expecting struct): #f

FWIW, I cannot reproduce it. I get

  (package
(name "python-httpie")
(version "1.0.2")
(source
  (origin
(method url-fetch)
(uri (pypi-uri "httpie" version))
(sha256
  (base32
"1ax22jh5lpjywpj7lsl072wdhr1pxiqzmxhyph5diwxxzs2nqrzw"
(build-system python-build-system)
(propagated-inputs
  `(("python-colorama" ,python-colorama)
("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))


Regards,

-- 
Nicolas Goaziou





bug#37071: guix import pypi httpie fails

2019-08-18 Thread Robert Vollmert
$ guix import pypi httpie
 …0.2.tar.gz  83KiB   291KiB/s 00:00 [##] 100.0%
 ….py3-none-any.whl  58KiB201KiB/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 (_ # ("httpie") _)
In unknown file:
  10 (_ # …)
In ice-9/boot-9.scm:
829:9  9 (catch _ _ # …)
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 #)
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