guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Trying to fix an error in the pypi-importer


From: Erik Edrosa
Subject: Re: Trying to fix an error in the pypi-importer
Date: Sat, 2 Jan 2016 13:26:20 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0

On 01/02/2016 12:10 PM, address@hidden wrote:
> On 2016-01-01 19:10, address@hidden wrote:
>> On 2015-12-30 23:00, Cyril Roelandt wrote:
>>> On 12/30/2015 08:53 PM, address@hidden wrote:
>>>> I am trying to fix this error in the pypi-importer:
>>>
>>> Could you send your fix as a unified diff? If you work from the git
>>> repo, you can just run "git diff" to produce one.
>>
>> diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm
>> index 2532210..f9b88d2 100644
>> --- a/guix/build-system/python.scm
>> +++ b/guix/build-system/python.scm
>> @@ -41,13 +41,18 @@
>>  ;;
>>  ;; Code:
>>
>> -(define (pypi-uri name version)
>> +(define (pypi-uri name version ending)
>>    "Return a URI string for the Python package hosted on the Python
>> Package
>> -Index (PyPI) corresponding to NAME and VERSION."
>> -  (string-append "https://pypi.python.org/packages/source/";
>> +Index (PyPI) corresponding to NAME, VERSION and optionally ENDING."
>> +  (if (zero? ending)
>> +      (string-append "https://pypi.python.org/packages/source/";
>>                   (string-take name 1) "/" name "/"
>> -                 name "-" version ".tar.gz"))
>> -
>> +                 name "-" version ".tar.gz")
>> +  ;else
>> +      (string-append "https://pypi.python.org/packages/source/";
>> +                 (string-take name 1) "/" name "/"
>> +                 name "-" version "." ending ))
>> +
>>  (define %python-build-system-modules
>>    ;; Build-side modules imported by default.
>>    `((guix build python-build-system)
> 
> During compilation after applying my patch above I get this error.
> 
>   GUILEC guix/build-system/python.go
> ice-9/boot-9.scm:106:20: In procedure #<procedure 8bbb4e0 at
> ice-9/boot-9.scm:97:6 (thrown-k . args)>:
> ice-9/boot-9.scm:106:20: In procedure scm_i_lreadparen:
> guix/build-system/python.scm:216:1: end of file
> Makefile:4604: recipe for target 'guix/build-system/python.go' failed
> 
> So removing the (else -> to a comment and adjusting the parentheses did
> not work.
> 
> Could somebody point me to relevant documentation about how to write
> conditional statements in guile?
> 

Here is the conditionals in the guile manual
https://www.gnu.org/software/guile/manual/html_node/Conditionals.html#Conditionals

This might be a useful book on learning scheme
http://ds26gte.github.io/tyscheme/index.html

You might find more useful intro books to scheme at
http://schemers.org/Documents/#all-texts

Regarding the changes, I think the ending argument might be better as an
optional argument (see
https://www.gnu.org/software/guile/manual/html_node/lambda_002a-and-define_002a.html#lambda_002a-and-define_002a
about optional arguments) so packages with files ending in .tar.gz do
not need to be modified.

So a package can be (pypi-uri "foo" "1.0.0") or (pypi-uri "bar" "1.0.0"
".tar.bz2")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]