gnutls guile self checks fail: fport_fill_input

Simon Josefsson simon at josefsson.org
Mon Mar 10 13:48:15 CET 2008


ludo at gnu.org (Ludovic Courtès) writes:

> Hi Simon,
>
> First of all, sorry for not being more involved...
>
> Simon Josefsson <simon at josefsson.org> writes:
>
>> jas at mocca:~/src/gnutls/guile/tests$ make check
>> make  check-TESTS
>> make[1]: Entering directory `/home/jas/src/gnutls/guile/tests'
>> ERROR: In procedure fport_fill_input:
>> ERROR: Is a directory
>> FAIL: anonymous-auth.scm
>> ...
>
> I can't reproduce the problem here with a copy of `master'.  Does
> `openpgp-auth.scm' (or other tests) fail similarly?  What platform is
> this on?

Yes, all guile checks fail this way.  Up-to-date x86 debian testing with
some packages from unstable.

>> I couldn't find these error message inside gnutls, so they could be
>> guile bugs, but I suspect you know better than me how to debug this.
>>
>> Strace shows something that may be related: it seems to open / but fails
>> because it is a directory.
>
> That seems to be the problem here: a Guile input port has been created
> for `/' and is being read from, which fails.  I can't find why this
> happens.
>
> Can you show the value of `$GUILE_LOAD_PATH' and all the `-L' switches
> passed to `guile' (see `guile/pre-inst-guile' and `TESTS_ENVIRONMENT' in
> `guile/tests/Makefile.am')?
>
> Can you also send me the whole `strace' output, if possible?

The pre-inst-guile file contains:

GUILE_LOAD_PATH="/home/jas/src/gnutls/guile/modules:$GUILE_LOAD_PATH"
export GUILE_LOAD_PATH

exec /home/jas/src/gnutls/libtool --mode=execute		                    \
       -dlopen "/home/jas/src/gnutls/guile/src/libguile-gnutls-v-1.la"        \
       -dlopen "/home/jas/src/gnutls/guile/src/libguile-gnutls-extra-v-1.la"  \
       /usr/bin/guile "$@"

I don't have a GUILE_LOAD_PATH in my environment.  The -L switch
evaluates to '-L .'.

I can reproduce it by:

jas at mocca:~/src/gnutls/guile/tests$ GUILE_LOAD_PATH="/home/jas/src/gnutls/guile/modules" /home/jas/src/gnutls/libtool --mode=execute                           -dlopen "/home/jas/src/gnutls/guile/src/libguile-gnutls-v-1.la"               -dlopen "/home/jas/src/gnutls/guile/src/libguile-gnutls-extra-v-1.la"        /usr/bin/guile -L . openpgp-auth.scm  
ERROR: In procedure fport_fill_input:
ERROR: Is a directory
jas at mocca:~/src/gnutls/guile/tests$ 

Could it be that I'm using libtool 2.2?  Yes, that seems to be the
problem, the following works:

jas at mocca:~/src/gnutls/guile/tests$ GUILE_LOAD_PATH="/home/jas/src/gnutls/guile/modules" /usr/bin/libtool --mode=execute                           -dlopen "/home/jas/src/gnutls/guile/src/libguile-gnutls-v-1.la"               -dlopen "/home/jas/src/gnutls/guile/src/libguile-gnutls-extra-v-1.la"        /usr/bin/guile -L . ./openpgp-auth.scm  jas at mocca:~/src/gnutls/guile/tests$ echo $?
0
jas at mocca:~/src/gnutls/guile/tests$ 

Running libtool with --debug reveals that it is interpreting the -L
parameter, so the command invoked will be:

+ eval exec '$cmd -L / /'
++ exec /usr/bin/guile -L / /
ERROR: In procedure fport_fill_input:
ERROR: Is a directory
jas at mocca:~/src/gnutls/guile/tests$ 

I think I should report this as a libtool bug.  What do you think?

/Simon





More information about the Gnutls-devel mailing list