From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: Re: [PATCH 3/3] gnu: Add ghc. Date: Mon, 2 Mar 2015 12:09:18 +0100 Message-ID: References: <8761aj29qk.fsf@netris.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]:47103) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YSODw-0005f9-O1 for guix-devel@gnu.org; Mon, 02 Mar 2015 06:09:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YSODv-0001Go-Go for guix-devel@gnu.org; Mon, 02 Mar 2015 06:09:20 -0500 In-Reply-To: <8761aj29qk.fsf@netris.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: Mark H Weaver , =?UTF-8?Q?Ludovic_Court=C3=A8s?= Cc: Guix-devel ludo@gnu.org (Ludovic Court=C3=A8s) writes: >> + (substitute* (list "testsuite/timeout/Makefile" >> + "testsuite/timeout/timeout.py" >> + "testsuite/timeout/timeout.hs" >> + "testsuite/tests/rename/prog006/Setup.lh= s" >> + "testsuite/tests/programs/life_space_leak/life.test") >> + (("/bin/sh") (which "sh")) >> + (("/bin/rm") "rm")) > > Perhaps (find-files "testsuite" ".*") would be enough? Somehow find-files appears to have problems with a file. This happens even if I install the en_US.UTF-8 locale: Backtrace: In ice-9/boot-9.scm: 2401: 19 [save-module-excursion #] 4050: 18 [#] 1724: 17 [%start-stack load-stack ...] 1729: 16 [#] In unknown file: ?: 15 [primitive-load "/gnu/store/qxy6784klrpjqnmxw00l6fpkqi60jwad-ghc-7.8.4-guile-builder"] In ice-9/eval.scm: 387: 14 [eval # ()] In srfi/srfi-1.scm: 830: 13 [every1 # ...] In /gnu/store/v4q9shphawhckqp35x05fxz5sfijv92r-module-import/guix/build/gnu= -build-system.scm: 479: 12 [# #] In ice-9/eval.scm: 432: 11 [eval # #] In srfi/srfi-1.scm: 619: 10 [for-each # #] In ice-9/boot-9.scm: 171: 9 [with-throw-handler #t ...] 867: 8 [call-with-input-file "testsuite/tests/codeGen/should_run/cgrun037.stdout" ...] In /gnu/store/v4q9shphawhckqp35x05fxz5sfijv92r-module-import/guix/build/uti= ls.scm: 443: 7 [# #] 469: 6 [# # ...] In srfi/srfi-1.scm: 465: 5 [fold # ...] In /gnu/store/v4q9shphawhckqp35x05fxz5sfijv92r-module-import/guix/build/uti= ls.scm: 472: 4 [# # ...] In ice-9/regex.scm: 189: 3 [list-matches # "hello\x00 world\n" 0] 176: 2 [fold-matches # "hello\x00 world\n" ...] In unknown file: ?: 1 [regexp-exec # "hello\x00 world\n" 0 0] In ice-9/boot-9.scm: 106: 0 [# misc-error ...] ice-9/boot-9.scm:106:20: In procedure #: ice-9/boot-9.scm:106:20: string contains #\nul character: "hello\x00 world\= n" builder for `/gnu/store/ixnpnrj6g6svayzz5kw0yhigm5vgjd2g-ghc-7.8.4.drv' failed with exit code 1 @ build-failed /gnu/store/ixnpnrj6g6svayzz5kw0yhigm5vgjd2g-ghc-7.8.4.drv - 1 builder for `/gnu/store/ixnpnrj6g6svayzz5kw0yhigm5vgjd2g-ghc-7.8.4.drv' failed with exit code 1 cannot build derivation `/gnu/store/659as6vx99qfrnwl1cc59kkgwiqwhg2l-ghc-7.8.4.drv': 1 dependencies couldn't be built killing process 10073 > > [...] > >> + (alist-cons-before >> + 'configure 'install-bin > > This phase installs bootstrap binaries to $out/bin and adds them to > $PATH, right? Wouldn=E2=80=99t it be enough to install them to $TMPDIR/b= in and > add that to $PATH? That is what is happening :-). The bootstrap binaries are installed in a temporary local directory inside the build directory: (let* ((ghc-bootstrap-path (string-append (getcwd) "/" ,name "-" ,version "/ghc-bin")) (ghc-bootstrap-prefix (string-append ghc-bootstrap-path "/usr" ))) ... (system* (string-append (getcwd) "/configure") (string-append "--prefix=3D" ghc-bootstrap-prefi= x) ... > >> + (lambda* (#:key inputs outputs #:allow-other-keys) >> + (let* ((binaries >> + (list >> + "./utils/ghc-pwd/dist-install/build/tmp/ghc-pwd" >> + "./utils/hpc/dist-install/build/tmp/hpc" >> + "./utils/haddock/dist/build/tmp/haddock" >> + "./utils/hsc2hs/dist-install/build/tmp/hsc2hs" >> + "./utils/runghc/dist-install/build/tmp/runghc" >> + "./utils/ghc-cabal/dist-install/build/tmp/ghc-ca= bal" >> + "./utils/hp2ps/dist/build/tmp/hp2ps" >> + "./utils/ghc-pkg/dist-install/build/tmp/ghc-pkg" >> + "./utils/unlit/dist/build/tmp/unlit" >> + "./ghc/stage2/build/tmp/ghc-stage2")) > > Could we just list base names and do > > (append-map (lambda (program) > (find-files "." (string-append "^" program "$"))) > '("ghc-pwd" "hpc" ...)) Here I'm puzzled. If I test the command that you suggest by displaying the generated list (during the phase execution), I see that it produces the same list as the original one (at least as displayed on screen). In spite of this, differently than with the explicit list, the phase fails because somehow the listed files do not get patched by (for-each (cut system* "patchelf" "--set-interpreter" ld-so <>) binaries) Unless you understand what's happening, I would propose for now to keep the explicit lists. Regards, Fede