From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: bug#21829: guix import hackage failures Date: Wed, 11 Nov 2015 22:29:20 +0100 Message-ID: References: <87d1vghjhk.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]:44286) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zwcxz-00022B-BM for bug-guix@gnu.org; Wed, 11 Nov 2015 16:30:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zwcxv-0000n2-SA for bug-guix@gnu.org; Wed, 11 Nov 2015 16:30:07 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:42933) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zwcxv-0000mv-Nx for bug-guix@gnu.org; Wed, 11 Nov 2015 16:30:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Zwcxv-0002sv-A2 for bug-guix@gnu.org; Wed, 11 Nov 2015 16:30:03 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87d1vghjhk.fsf@gnu.org> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 21829@debbugs.gnu.org On Wed, Nov 11, 2015 at 12:18 PM, Ludovic Court=C3=A8s wrote= : > Federico Beffa skribis: > >> * I do not get backtraces, but the following error: > > The backtrace thing was fixed in 5453de3d. > >> * The following packages fail because the file has DOS line endings: >> >> happy, base-compat, base-orphans, fast-logger, generic-deriving, Objec= tName, >> SDL, setenv, split, StateVar, syb, transformers-base, wai, xmonad (+ 1= more >> problem), zlib (+ 1 more problem). >> >> Changing the encoding to UNIX line endings fixes the problem. This is >> the number 1 problem. Is there a Guile way to easily fix this? > > Could you explain how if fails exactly? The extra character '\r' screws up the parsing because it was not accounted for in the logic to recognize multi-line values and indentation based block separation. What do you think of a kind of piped filter as follows: (define (call-with-input-file-eol-crlf->lf proc port) (let* ((port-pair (pipe)) (input-port (match port-pair ((in . out) in))) (output-port (match port-pair ((in . out) out)))) (letpar ((transcoder (let loop ((line (get-line port))) (unless (eof-object? line) (write-line (string-trim-right line #\return) output-port= ) (loop (get-line port))) (flush-output-port output-port))) (result (proc input-port))) (close-output-port output-port) (close-input-port input-port) result))) Then instead of calling (read-cabal port) I would call (call-with-input-file-eol-crlf->lf read-cabal port). Regards, Fede