From mboxrd@z Thu Jan 1 00:00:00 1970 From: Erik Edrosa Subject: Re: Trying to fix an error in the pypi-importer Date: Sat, 2 Jan 2016 13:26:20 -0500 Message-ID: <5688164C.8050605@gmail.com> References: <568453F6.1050605@gmail.com> <2c5756c8877a36699f8dbb07731ab3c1@riseup.net> <257e9ac376ee2c97785c0e63715ed38c@riseup.net> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47810) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aFQsh-0000li-Ec for guix-devel@gnu.org; Sat, 02 Jan 2016 13:26:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aFQsg-0001rA-3z for guix-devel@gnu.org; Sat, 02 Jan 2016 13:26:23 -0500 Received: from mail-oi0-x233.google.com ([2607:f8b0:4003:c06::233]:36103) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aFQsf-0001r6-V7 for guix-devel@gnu.org; Sat, 02 Jan 2016 13:26:22 -0500 Received: by mail-oi0-x233.google.com with SMTP id o62so231394631oif.3 for ; Sat, 02 Jan 2016 10:26:21 -0800 (PST) Received: from ?IPv6:2602:306:c5c9:a3e0:7c36:ba7e:17e7:2eb0? ([2602:306:c5c9:a3e0:7c36:ba7e:17e7:2eb0]) by smtp.googlemail.com with ESMTPSA id s3sm30508962obf.29.2016.01.02.10.26.20 for (version=TLSv1/SSLv3 cipher=OTHER); Sat, 02 Jan 2016 10:26:21 -0800 (PST) In-Reply-To: <257e9ac376ee2c97785c0e63715ed38c@riseup.net> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org On 01/02/2016 12:10 PM, swedebugia@riseup.net wrote: > On 2016-01-01 19:10, swedebugia@riseup.net wrote: >> On 2015-12-30 23:00, Cyril Roelandt wrote: >>> On 12/30/2015 08:53 PM, swedebugia@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 # 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")