GNU bug report logs - #12887
Broken pipe while generating guile-procedures.texi

Previous Next

Package: guile;

Reported by: DNS <dns <at> rbose.org>

Date: Wed, 14 Nov 2012 19:51:01 UTC

Severity: normal

Tags: moreinfo, unreproducible

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 12887 in the body.
You can then email your comments to 12887 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#12887; Package guile. (Wed, 14 Nov 2012 19:51:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to DNS <dns <at> rbose.org>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Wed, 14 Nov 2012 19:51:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: DNS <dns <at> rbose.org>
To: bug-guile <at> gnu.org
Subject: Broken pipe while generating guile-procedures.texi
Date: Wed, 14 Nov 2012 20:44:22 +0100
[Message part 1 (text/plain, inline)]
Hi guys,

i was trying to build guile 2.0.6 from tarball and from the latest
revision and get with both a similar error like these:
https://lists.gnu.org/archive/html/bug-guile/2011-03/msg00111.html
https://lists.gnu.org/archive/html/bug-guile/2011-12/msg00058.html
https://lists.gnu.org/archive/html/bug-guile/2012-07/msg00005.html

For me it looks like this on Trisquel 6.0 (beta):

  GEN      guile-procedures.texi
Throw without catch before boot:
Throw to key misc-error with args ("primitive-load-path" "Unable to find
file ~S in load path" ("ice-9/boot-9") #f)Aborting.
/bin/bash: line 1:  8458 Broken pipe             cat alist.doc
arbiters.doc array-handle.doc array-map.doc arrays.doc async.doc
backtrace.doc boolean.doc bitvectors.doc bytevectors.doc chars.doc
control.doc continuations.doc debug.doc deprecated.doc deprecation.doc
dynl.doc dynwind.doc eq.doc error.doc eval.doc evalext.doc expand.doc
extensions.doc feature.doc filesys.doc fluids.doc foreign.doc fports.doc
gc-malloc.doc gc.doc gettext.doc generalized-arrays.doc
generalized-vectors.doc goops.doc gsubr.doc guardians.doc hash.doc
hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc list.doc
load.doc macros.doc mallocs.doc memoize.doc modules.doc numbers.doc
objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc
procs.doc promises.doc r6rs-ports.doc random.doc rdelim.doc read.doc
root.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc sort.doc
srcprop.doc srfi-1.doc srfi-4.doc srfi-13.doc srfi-14.doc srfi-60.doc
stackchk.doc stacks.doc stime.doc strings.doc strorder.doc strports.doc
struct.doc symbols.doc threads.doc throw.doc trees.doc uniform.doc
values.doc variable.doc vectors.doc version.doc vports.doc weak-set.doc
weak-table.doc weak-vector.doc dynl.doc posix.doc net_db.doc socket.doc
regex-posix.doc
      8459 Aborted                 (core dumped) | GUILE_AUTO_COMPILE=0
../meta/uninstalled-env guild snarf-check-and-output-texi >
guile-procedures.texi
make[4]: *** [guile-procedures.texi] Error 1


Btw the autogen.sh file is missing in the 2.0.6 tarball.
If you need any further information please let me know.


Best regards,
DNS


[signature.asc (application/pgp-signature, attachment)]

Information forwarded to bug-guile <at> gnu.org:
bug#12887; Package guile. (Wed, 14 Nov 2012 23:12:02 GMT) Full text and rfc822 format available.

Message #8 received at 12887 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: DNS <dns <at> rbose.org>
Cc: 12887 <at> debbugs.gnu.org
Subject: Re: bug#12887: Broken pipe while generating guile-procedures.texi
Date: Thu, 15 Nov 2012 00:10:54 +0100
Hi,

DNS <dns <at> rbose.org> skribis:

>   GEN      guile-procedures.texi
> Throw without catch before boot:
> Throw to key misc-error with args ("primitive-load-path" "Unable to find
> file ~S in load path" ("ice-9/boot-9") #f)Aborting.

The problem here is that ice-9/boot-9.scm, which is an essential
start-up file, could not be found.  I don’t see any reason why this
would happen.

Are you building a pristine 2.0.6, with no distro patches etc.?

Can you confirm that the file module/ice-9/boot-9.scm is available in
your source tree?

Can you run ‘strace -f -o log make’, and send the output of
‘grep ice-9/boot-9 log’?

Thanks,
Ludo’.




Added tag(s) unreproducible and moreinfo. Request was from ludo <at> gnu.org (Ludovic Courtès) to control <at> debbugs.gnu.org. (Tue, 27 Nov 2012 22:57:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-guile <at> gnu.org:
bug#12887; Package guile. (Fri, 07 Dec 2012 17:31:01 GMT) Full text and rfc822 format available.

Message #13 received at 12887 <at> debbugs.gnu.org (full text, mbox):

From: DNS <dns <at> rbose.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 12887 <at> debbugs.gnu.org
Subject: Re: bug#12887: Broken pipe while generating guile-procedures.texi
Date: Fri, 07 Dec 2012 18:30:02 +0100
[Message part 1 (text/plain, inline)]
> The problem here is that ice-9/boot-9.scm, which is an essential
> start-up file, could not be found.  I don’t see any reason why this
> would happen.
> 
> Are you building a pristine 2.0.6, with no distro patches etc.?
> 
> Can you confirm that the file module/ice-9/boot-9.scm is available in
> your source tree?
> 
> Can you run ‘strace -f -o log make’, and send the output of
> ‘grep ice-9/boot-9 log’?

Heya,

sorry for my late reply, and thx a lot for your help.
i was compiling 2.0.7 and had the same issue, then i was finally lookin
at the log and figured out that it is because of a "umlaut" char in the
parent directory-name where i tried to build guile.
The directory was called "Arbeitsfläche" ("desktop" in german) and in
the log i saw the files could not be found because the dir-name was not
correctly converted (into UTF-8 i guess). The dir name was shown as
"Arbeitsf??che"...

Btw i uploaded 2.0.7 packages to the GNU PPA @ launchpad
https://launchpad.net/~dns/+archive/gnu/+packages?field.name_filter=guile-2.0&field.status_filter=published&field.series_filter=

Best regards,
DNS


[signature.asc (application/pgp-signature, attachment)]

Information forwarded to bug-guile <at> gnu.org:
bug#12887; Package guile. (Fri, 07 Dec 2012 22:01:01 GMT) Full text and rfc822 format available.

Message #16 received at 12887 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: DNS <dns <at> rbose.org>
Cc: 12887 <at> debbugs.gnu.org
Subject: Re: bug#12887: Broken pipe while generating guile-procedures.texi
Date: Fri, 07 Dec 2012 22:59:55 +0100
Hi,

Thanks for your feedback!

DNS <dns <at> rbose.org> skribis:

> sorry for my late reply, and thx a lot for your help.
> i was compiling 2.0.7 and had the same issue, then i was finally lookin
> at the log and figured out that it is because of a "umlaut" char in the
> parent directory-name where i tried to build guile.
> The directory was called "Arbeitsfläche" ("desktop" in german) and in
> the log i saw the files could not be found because the dir-name was not
> correctly converted (into UTF-8 i guess). The dir name was shown as
> "Arbeitsf??che"...

Ooh, I see.  This is related to commit ed4c3739 (see
<http://lists.gnu.org/archive/html/guile-devel/2011-12/msg00160.html>).

What happens is that the directory name may be correctly decoded when
passed as an argument:

--8<---------------cut here---------------start------------->8---
[ludo <at> pluto:~/tmp/Courtès]$ strace -f -o ,,s ~/src/guile/meta/guile -L $PWD -c '(set-port-encoding! (current-output-port) "UTF-8")(pk %load-path)'

;;; (("/home/ludo/tmp/Courtès" ...))
--8<---------------cut here---------------end--------------->8---

But then ‘scm_stat’ calls ‘scm_to_locale_string’, which uses the wrong
encoding at this point, leading to this:

--8<---------------cut here---------------start------------->8---
[ludo <at> pluto:~/tmp/Courtès]$ strace -f -o ,,s ~/src/guile/meta/guile -L $PWD -c '(use-modules (t))'

[...]

ERROR: In procedure scm-error:
ERROR: no code for module (t)

[ludo <at> pluto:~/tmp/Courtès]$ grep Court ,,s | head -10
24237 execve("/home/ludo/src/guile/meta/guile", ["/home/ludo/src/guile/meta/guile", "-L", "/home/ludo/tmp/Court\303\250s", "-c", "(use-modules (t))"], [/* 74 vars */]) = 0
24237 stat("/home/ludo/tmp/Court\303\250s", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
24237 execve("/home/ludo/src/guile/meta/uninstalled-env", ["/home/ludo/src/guile/meta/uninst"..., "/home/ludo/src/guile/libguile/gu"..., "-L", "/home/ludo/tmp/Court\303\250s", "-c", "(use-modules (t))"], [/* 73 vars */]) = 0
24237 stat("/home/ludo/tmp/Court\303\250s", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
24237 execve("/home/ludo/src/guile/libguile/guile", ["/home/ludo/src/guile/libguile/gu"..., "-L", "/home/ludo/tmp/Court\303\250s", "-c", "(use-modules (t))"], [/* 78 vars */]) = 0
24237 stat("/home/ludo/tmp/Court\303\250s", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
24256 read(3, "ludo\0x\0Ludovic Courtes\0/home/lud"..., 70) = 70
24237 execve("/home/ludo/src/guile/libguile/.libs/guile", ["/home/ludo/src/guile/libguile/.l"..., "-L", "/home/ludo/tmp/Court\303\250s", "-c", "(use-modules (t))"], [/* 80 vars */]) = 0
24237 stat("/home/ludo/tmp/Court?s/t.scm", 0x7fff16fda150) = -1 ENOENT (No such file or directory)
24237 stat("/home/ludo/tmp/Court?s/t", 0x7fff16fda150) = -1 ENOENT (No such file or directory)
--8<---------------cut here---------------end--------------->8---

The problem is even worse when the directory is passed through an
environment variable, because in that case even the input decoding is
broken:

--8<---------------cut here---------------start------------->8---
[ludo <at> pluto:~/tmp/Courtès]$ GUILE_LOAD_PATH=$PWD:... ~/src/guile/meta/guile -c '(set-port-encoding! (current-output-port) "UTF-8")(pk %load-path)'

;;; (("/home/ludo/src/guile/guile-readline" "/home/ludo/src/guile/module" "/home/ludo/tmp/Court??s"))
--8<---------------cut here---------------end--------------->8---

Ouch!

So, as mentioned in the thread above, 2.2 will not have this problem.
But for 2.0, I can’t even imagine an ugly hack that would help.

Thoughts?

Ludo’.




Information forwarded to bug-guile <at> gnu.org:
bug#12887; Package guile. (Tue, 05 Mar 2013 18:55:04 GMT) Full text and rfc822 format available.

Message #19 received at 12887 <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 12887 <at> debbugs.gnu.org, DNS <dns <at> rbose.org>
Subject: Re: bug#12887: Broken pipe while generating guile-procedures.texi
Date: Tue, 05 Mar 2013 18:40:38 +0100
On Fri 07 Dec 2012 22:59, ludo <at> gnu.org (Ludovic Courtès) writes:

> Ooh, I see.  This is related to commit ed4c3739 (see
> <http://lists.gnu.org/archive/html/guile-devel/2011-12/msg00160.html>).
>
> What happens is that the directory name may be correctly decoded when
> passed as an argument:
>
> [ludo <at> pluto:~/tmp/Courtès]$ strace -f -o ,,s ~/src/guile/meta/guile -L $PWD -c '(set-port-encoding! (current-output-port) "UTF-8")(pk %load-path)'
>
> ;;; (("/home/ludo/tmp/Courtès" ...))
>
> But then ‘scm_stat’ calls ‘scm_to_locale_string’, which uses the wrong
> encoding at this point [...]

Nice debugging for a nasty problem.

> So, as mentioned in the thread above, 2.2 will not have this problem.
> But for 2.0, I can’t even imagine an ugly hack that would help.
>
> Thoughts?

What about an environment variable that can tell Guile to do the
setlocale().  We can set the environment variable during the build so
that at least the build works, and whisper it to users when they run
into problems (while noting that the variable will not be read in 2.2).

Or should we go ahead and document it, and simply have its default value
change between 2.0 and 2.2?

Andy
-- 
http://wingolog.org/




Information forwarded to bug-guile <at> gnu.org:
bug#12887; Package guile. (Tue, 05 Mar 2013 20:50:01 GMT) Full text and rfc822 format available.

Message #22 received at 12887 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Andy Wingo <wingo <at> pobox.com>
Cc: 12887 <at> debbugs.gnu.org, DNS <dns <at> rbose.org>
Subject: Re: bug#12887: Broken pipe while generating guile-procedures.texi
Date: Tue, 05 Mar 2013 21:49:21 +0100
Andy Wingo <wingo <at> pobox.com> skribis:

> On Fri 07 Dec 2012 22:59, ludo <at> gnu.org (Ludovic Courtès) writes:
>
>> Ooh, I see.  This is related to commit ed4c3739 (see
>> <http://lists.gnu.org/archive/html/guile-devel/2011-12/msg00160.html>).
>>
>> What happens is that the directory name may be correctly decoded when
>> passed as an argument:
>>
>> [ludo <at> pluto:~/tmp/Courtès]$ strace -f -o ,,s ~/src/guile/meta/guile -L $PWD -c '(set-port-encoding! (current-output-port) "UTF-8")(pk %load-path)'
>>
>> ;;; (("/home/ludo/tmp/Courtès" ...))
>>
>> But then ‘scm_stat’ calls ‘scm_to_locale_string’, which uses the wrong
>> encoding at this point [...]
>
> Nice debugging for a nasty problem.
>
>> So, as mentioned in the thread above, 2.2 will not have this problem.
>> But for 2.0, I can’t even imagine an ugly hack that would help.
>>
>> Thoughts?
>
> What about an environment variable that can tell Guile to do the
> setlocale().  We can set the environment variable during the build so
> that at least the build works, and whisper it to users when they run
> into problems (while noting that the variable will not be read in 2.2).

Yes, sounds like a plan.  ‘GUILE_INSTALL_LOCALE’?

> Or should we go ahead and document it, and simply have its default value
> change between 2.0 and 2.2?

Yes, even better, since the setlocale change will have to be documented
at least in NEWS anyway.

Are you willing to look into it?

Ludo’.




Reply sent to Andy Wingo <wingo <at> pobox.com>:
You have taken responsibility. (Thu, 07 Mar 2013 19:11:03 GMT) Full text and rfc822 format available.

Notification sent to DNS <dns <at> rbose.org>:
bug acknowledged by developer. (Thu, 07 Mar 2013 19:11:03 GMT) Full text and rfc822 format available.

Message #27 received at 12887-done <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 12887-done <at> debbugs.gnu.org, DNS <dns <at> rbose.org>
Subject: Re: bug#12887: Broken pipe while generating guile-procedures.texi
Date: Thu, 07 Mar 2013 11:04:38 +0100
On Tue 05 Mar 2013 21:49, ludo <at> gnu.org (Ludovic Courtès) writes:

> ‘GUILE_INSTALL_LOCALE’?
>
>> Or should we go ahead and document it, and simply have its default value
>> change between 2.0 and 2.2?
>
> Yes, even better, since the setlocale change will have to be documented
> at least in NEWS anyway.
>
> Are you willing to look into it?

Sure.  I have some local patches that I will push when I next get a net
connection.

Cheers,

Andy
-- 
http://wingolog.org/




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 05 Apr 2013 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 11 years and 22 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.