GNU bug report logs - #17399
Problems building guile-2.0.11 with libunistring 0.9.0

Previous Next

Package: guile;

Reported by: Ed Green <eug2 <at> psu.edu>

Date: Sun, 4 May 2014 00:59:02 UTC

Severity: normal

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 17399 in the body.
You can then email your comments to 17399 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#17399; Package guile. (Sun, 04 May 2014 00:59:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ed Green <eug2 <at> psu.edu>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Sun, 04 May 2014 00:59:03 GMT) Full text and rfc822 format available.

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

From: Ed Green <eug2 <at> psu.edu>
To: bug-guile <at> gnu.org
Subject: compilation bugs when making guile-2.0.11
Date: Sat, 03 May 2014 19:50:21 -0400
[Message part 1 (text/plain, inline)]
Dear GNU guile team:

I compiled guile-2.0.11 yesterday, using the configure file in the
distribution and the resulting makefile.

I would like to report three things. Output of ./configure requested
that I report the second one.

I was able to compile and install guile. To the extent that I have
tested it, it works fine. (Thanks!)

Here are the problems. The attached .pdf file will walk you through them
in detail, starting with describing my system. I would be happy to
provide further information or output from the installation process, if
you would like to have it.

1. readline 6.2 is installed. The configure program identified it as
something prior to version 2.1, and output a warning.

2. Running "make check" produced an error report from "ports test:
unicode byte-order marks".

3. The make process produced a file, unistr.h, that had to be manually
adjusted in order to compile.

Sincerely,
Ed Green
[bug-guile-20140502.pdf (application/pdf, attachment)]

Information forwarded to bug-guile <at> gnu.org:
bug#17399; Package guile. (Wed, 28 May 2014 17:36:02 GMT) Full text and rfc822 format available.

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

From: ludo <at> gnu.org (Ludovic Courtès)
To: Ed Green <eug2 <at> psu.edu>
Cc: 17399 <at> debbugs.gnu.org
Subject: Re: bug#17399: compilation bugs when making guile-2.0.11
Date: Wed, 28 May 2014 19:35:40 +0200
Hello,

Could you send your config.log file as an attachment, for further
investigation?

Thanks in advance,
Ludo’.




Information forwarded to bug-guile <at> gnu.org:
bug#17399; Package guile. (Thu, 29 May 2014 01:39:02 GMT) Full text and rfc822 format available.

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

From: Ed Green <eug2 <at> psu.edu>
To: 17399 <at> debbugs.gnu.org
Subject: Fwd: Re: bug#17399: compilation bugs when making guile-2.0.11
Date: Wed, 28 May 2014 21:34:28 -0400
[Message part 1 (text/plain, inline)]
Mr. Courtes has asked me to re-send the following message. Besides the 
two config.log files originally attached, I also attach a description 
(bug-guile-20140502.pdf) of my attempt to compile the program, which was 
attached to my initial bug report.

Ed Green

-------- Original Message --------
Subject: Re: bug#17399: compilation bugs when making guile-2.0.11
Date: Wed, 28 May 2014 15:04:14 -0400
From: Ed Green <eug2 <at> psu.edu>
To: Ludovic Courtès <ludo <at> gnu.org>

Hello Ludo',

I am attaching two config.log files (both of which I've re-named from
the original 'config.log', but have not modified). The first,
may2-config.log, will document what I wrote to you earlier. The second,
may4-config.log, was produced when I tried again to compile guile after
having compiled readline (which make didn't find on my computer). With
readline compiled and installed in the /usr/local directory tree, it was 
still not found when I ran make.

Both on May 2 and May 4, I had to edit unistr.h manually (as described
in the attachment of my previous message) for the compiler to run. In
both cases, the result was a mostly functioning (and correct, as far as
I could tell) guile, but without the command-history facility.

Subsequently, I've upgraded to Ubuntu 12-04 to 14.04. So, I'm sorry that 
I can't help you with any further compilation testing on the operating 
system that I used earlier. Short of that, please let me know if there's 
any further help that I can provide. (Happily for me, guile 2.0.11 is 
compiled in the Ubuntu 14.04 repository.)

Cordially,
Ed

On 05/28/2014 01:35 PM, Ludovic Courtès wrote:
> Hello,
>
> Could you send your config.log file as an attachment, for further
> investigation?
>
> Thanks in advance,
> Ludo’.
>



[may2-config.log (text/x-log, attachment)]
[may4-config.log (text/x-log, attachment)]
[bug-guile-20140502.pdf (application/pdf, attachment)]

Changed bug title to 'Problems building guile-2.0.11 with libunistring 0.9.0' from 'compilation bugs when making guile-2.0.11' Request was from Mark H Weaver <mhw <at> netris.org> to control <at> debbugs.gnu.org. (Thu, 16 Oct 2014 00:31:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-guile <at> gnu.org:
bug#17399; Package guile. (Thu, 16 Oct 2014 00:31:03 GMT) Full text and rfc822 format available.

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

From: Mark H Weaver <mhw <at> netris.org>
To: Ed Green <eug2 <at> psu.edu>
Cc: 17399 <at> debbugs.gnu.org, request <at> debbugs.gnu.org
Subject: Re: bug#17399: Fwd: Re: bug#17399: compilation bugs when making
 guile-2.0.11
Date: Wed, 15 Oct 2014 20:30:15 -0400
retitle 17399 Problems building guile-2.0.11 with libunistring 0.9.0
thanks

Hi Ed,

I finally looked into this test failure that you experienced when
compiling guile-2.0.11 from source code on Ubuntu 12.04.  I see that
you've since updated to Ubuntu 14.04, which includes guile-2.0.11, so
your problems are happily solved, but I'm still curious to learn what
happened here.

To summarize, your problems all stemmed from a very old GNU libunistring
that you had installed in /usr/local.  It was quite a bit older than the
minimum required version (0.9.3) which was packaged in Ubuntu 12.04.
The configure script identified the installed version as 0.9.0.

You should probably remove that old version of libunistring, as it will
likely cause problems with other software you build from source.

The rest of this email is primarily aimed at other Guile developers.

* * *

First, we should improve our configure script to bail out if the
libunistring is too old.

After Ed had manually edited the old "unistr.h" to fix the compilation
problem, he encountered this test failure:

  ERROR: ports.test: unicode byte-order marks (BOMs):
  Don't read from the port unless user asks to - arguments:
  ((decoding-error "scm_from_stringn" "input locale conversion error"
  84 #vu8(254 255)))

Here's the relevant section of test code in ports.test:

--8<---------------cut here---------------start------------->8---
  (pass-if "Don't read from the port unless user asks to"
    (let* ((p (make-soft-port
               (vector
                (lambda (c) #f)           ; write char
                (lambda (s) #f)           ; write string
                (lambda () #f)            ; flush
                (lambda () (throw 'fail)) ; read char
                (lambda () #f))
               "rw")))
      (set-port-encoding! p "UTF-16")
      (display "abc" p)
      (set-port-encoding! p "UTF-32")
      (display "def" p)
      #t))
--8<---------------cut here---------------end--------------->8---

The error occurred within 'sf_write' in vports.c while writing the BOM
to the soft port (before writing "abc").  The problem is that soft ports
are fundamentally based on strings, and anything written to them is
first converted to a string (using the locale encoding) within
'sf_write', in order to pass to the string to the user-provided "write"
procedure.  Attempting to convert the UTF-16-encoded-BOM (0xFE 0xFF) to
the locale encoding failed, unsurprisingly.

I believe the locale should have been "C", because of the call
(setlocale LC_ALL "C") in test-suite/guile-test.

I'm actually surprised that this has ever worked, and it warrants
further investigation.

      Mark




Reply sent to Andy Wingo <wingo <at> pobox.com>:
You have taken responsibility. (Tue, 21 Jun 2016 13:46:01 GMT) Full text and rfc822 format available.

Notification sent to Ed Green <eug2 <at> psu.edu>:
bug acknowledged by developer. (Tue, 21 Jun 2016 13:46:01 GMT) Full text and rfc822 format available.

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

From: Andy Wingo <wingo <at> pobox.com>
To: Mark H Weaver <mhw <at> netris.org>
Cc: 17399-done <at> debbugs.gnu.org, Ed Green <eug2 <at> psu.edu>
Subject: Re: bug#17399: Fwd: Re: bug#17399: compilation bugs when making
 guile-2.0.11
Date: Tue, 21 Jun 2016 15:45:46 +0200
On Thu 16 Oct 2014 02:30, Mark H Weaver <mhw <at> netris.org> writes:

> retitle 17399 Problems building guile-2.0.11 with libunistring 0.9.0
> thanks
>
> Hi Ed,
>
> I finally looked into this test failure that you experienced when
> compiling guile-2.0.11 from source code on Ubuntu 12.04.  I see that
> you've since updated to Ubuntu 14.04, which includes guile-2.0.11, so
> your problems are happily solved, but I'm still curious to learn what
> happened here.
>
> To summarize, your problems all stemmed from a very old GNU libunistring
> that you had installed in /usr/local.  It was quite a bit older than the
> minimum required version (0.9.3) which was packaged in Ubuntu 12.04.
> The configure script identified the installed version as 0.9.0.
>
> You should probably remove that old version of libunistring, as it will
> likely cause problems with other software you build from source.
>
> The rest of this email is primarily aimed at other Guile developers.
>
> * * *
>
> First, we should improve our configure script to bail out if the
> libunistring is too old.

Done in master.  That's enough to close this bug I think :)

> After Ed had manually edited the old "unistr.h" to fix the compilation
> problem, he encountered this test failure:
>
>   ERROR: ports.test: unicode byte-order marks (BOMs):
>   Don't read from the port unless user asks to - arguments:
>   ((decoding-error "scm_from_stringn" "input locale conversion error"
>   84 #vu8(254 255)))
>
> Here's the relevant section of test code in ports.test:
>
>   (pass-if "Don't read from the port unless user asks to"
>     (let* ((p (make-soft-port
>                (vector
>                 (lambda (c) #f)           ; write char
>                 (lambda (s) #f)           ; write string
>                 (lambda () #f)            ; flush
>                 (lambda () (throw 'fail)) ; read char
>                 (lambda () #f))
>                "rw")))
>       (set-port-encoding! p "UTF-16")
>       (display "abc" p)
>       (set-port-encoding! p "UTF-32")
>       (display "def" p)
>       #t))
>
> The error occurred within 'sf_write' in vports.c while writing the BOM
> to the soft port (before writing "abc").  The problem is that soft ports
> are fundamentally based on strings, and anything written to them is
> first converted to a string (using the locale encoding) within
> 'sf_write', in order to pass to the string to the user-provided "write"
> procedure.  Attempting to convert the UTF-16-encoded-BOM (0xFE 0xFF) to
> the locale encoding failed, unsurprisingly.
>
> I believe the locale should have been "C", because of the call
> (setlocale LC_ALL "C") in test-suite/guile-test.
>
> I'm actually surprised that this has ever worked, and it warrants
> further investigation.

It seems the BOM isn't being written.  I don't know why.  Let's open
another bug if we find that there's a bug.

Cheers,

Andy




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

This bug report was last modified 7 years and 285 days ago.

Previous Next


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