On 01/02/2016 12:10 PM, swedebu...@riseup.net wrote: > On 2016-01-01 19:10, swedebu...@riseup.net wrote: >> On 2015-12-30 23:00, Cyril Roelandt wrote: >>> On 12/30/2015 08:53 PM, swedebu...@riseup.net 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")