From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: Re: [PATCH 1/2] gnu: Add numpy Date: Mon, 27 Oct 2014 21:26:41 +0100 Message-ID: References: <87bnoyk6g9.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39784) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XiqsG-0006sf-A2 for guix-devel@gnu.org; Mon, 27 Oct 2014 16:26:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XiqsF-0004xX-1y for guix-devel@gnu.org; Mon, 27 Oct 2014 16:26:44 -0400 In-Reply-To: <87bnoyk6g9.fsf@gnu.org> 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: =?UTF-8?Q?Ludovic_Court=C3=A8s?= Cc: Guix-devel On Sun, Oct 26, 2014 at 7:56 PM, Ludovic Court=C3=A8s wrote: > Can these manuals be built from source? I get error messages that matplotlib is missing. I started looking at matplotlib as well, but I've found that, for the TkAgg back-end, it needs TKinter which is part of the standard python libraries and it is built if, during the build phase, tk is available. The current python package does not build that library (no tk). In fact, I would like to add it to be able to move forward with matplotlib :-) For the other back-ends some packages are missing (python-gtk, Qt, ...) Another annoying problem is that matplotlib needs numpy, thereby creating a dependency loop (although only for the documentation). > If they can but the process is tedious, then it=E2=80=99s OK to leave it = that > way with a TODO, and also a comment stating what its license is. I've not seen any license statement specific for the documentation. But, given that the source is distributed with the code, can't we just assume it is the same license? >> + (inputs >> + `(("python" ,python) ; otherwise ld does not find libpython3.3m > > This is because Python is not added to =E2=80=98LIBRARY_PATH=E2=80=99, ri= ght? > > I think this is fixed by this patch: > > > > Can you confirm? Actually it does not. The "...-python-numpy-1.9.0-guile-builder" still shows that only the python-wrapper is imported. The wrapper does not include the libraries. > As discussed in the other thread, this should probably be the generic > (unoptimized) ATLAS here. I think that as a temporary situation this is OK. However, in my opinion it does not make much sense to have a separate sub-optimal package. I would like to propose to add specific flags to a single atlas package and, once the new "local-build" flag will be available, we will remove those flags. > >> + (alist-replace >> + 'build >> + (lambda* (#:key outputs inputs >> + #:allow-other-keys #:rest args) >> + (let* ((build (assoc-ref %standard-phases 'build)) > > Use =E2=80=98alist-cons-before=E2=80=99 instead of calling the original = =E2=80=98build=E2=80=99 phase (I > think this was discussed before and there was rough consensus on that.) OK. > Just use (string-append ,name "-" ,version) so the =E2=80=98package-name= =E2=80=99 > procedure isn=E2=80=99t needed. that's much better :-) > Use the =E2=80=98copy-file=E2=80=99 procedure instead of calling =E2=80= =98cp=E2=80=99. The reason that made me use 'cp' instead of 'copy-file' is that the documentation states that the return value of the latter is not specified and I'm still not familiar with Guile exception handling. However, I see many places where 'copy-file' is used without any 'catch'. In principle this should never fail. If it is OK, I will do the same. > >> + ;; Tests can only be run after the library has been installed = and not >> + ;; within the source directory. >> + (alist-cons-after >> + 'install 'check >> + (lambda _ >> + (with-directory-excursion "/tmp" >> + (zero? (system* "python" "-c" "import numpy; numpy.test()= ")))) >> + (alist-delete >> + 'check >> + %standard-phases)))))) > > Just (alist-replace 'check ...) ? Actually the check phase needs to be moved after the install one (see comment). That's the reason for this two step approach. Thanks for the comments. Regards, Fede