tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [Fwd: Re: gnutls guile]



ng0%n0.is@localhost transcribed 9.1K bytes:
> Greg Troxel transcribed 610 bytes:
> > ng0%n0.is@localhost writes:
> > 
> > > this is about building GnuTLS with the guile bindings.
> > > As detailed here http://lists.gnu.org/archive/html/help-guix/2019-03/msg00051.html
> > > and here http://lists.gnu.org/archive/html/help-guix/2019-03/msg00058.html
> > > there are some issues.
> > 
> > I am having a hard time following.  Can you step back and briefly
> > explain the big picture, in terms of if these are the autoconf triplets,
> > what the middle one means, where it's being changed (and why if you
> > know), how that leads to trouble, what the right fix is, and, assuming
> > that this fix doesn't happen, what you think we (pkgsrc) should do?

I've missed a couple points. Below just the big, detailed picture.

I have no clear knowledge about the tripplets and assume they don't
originate from autoconf or at least originate from but get modified
to match some assumption which isn't fullfiled (note how all the
other guile packages I have in pkgsrc build, unlike this one).

I don't know what we should fix if upstream doesn't do anything about it.
Ideally it gets fixed upstream because GnuTLS is not in NetBSD base and
thus GnuTLS on NetBSD always means pkgsrc is involved. Same goes for Guile.
I contributed for a long time to guix, but I don't really feel up to the
task of fixing this (or having the time between jobs and university).

To come back to the what to fix: my next assumption would be to file a
detailed bug report in GnuTLS. obviously my gnutls mailinglist post
was ignored (I've also asked offlist someone close to the project iirc),
and the guix-help list is taking this the wrong way it seems.

If GnuTLS defers to Guile, I'd file a bug there and see if it gets fixed.

If not, then we should be concerned with fixing this, or I as the person
interested in getting this into pkgsrc.

> Okay.
> 
> The best way to reproduce this under NetBSD (or probably any system
> running pkgsrc) is to try and build wip/gnutls-guile, which I have
> just commited. It's not really finished but serves best for
> demonstration purposes.
> 
> gnutls-guile[1] assumes a hard-coded tripplet for all systems. In other
> words, you will (problably, see[1]) run into no problems compiling this
> without pkgsrc as the tripplet matches.
> So these are not your regular autoconf tripplets as far as I remember.
> 
> 
> 1: or guile, it's been a while since I've read the code responsible for
>    for building.
> 
> 
> I could be way of with assuming this is a fault in GnuTLS, which is why
> I asked the maintainer of the bindings (but this wasn't very productive
> so far).
> Now the guile bindings of gnutls make use of
> http://git.savannah.gnu.org/cgit/guile.git/tree/module/system/base/target.scm
> 
> I've compiled this again, the results are below.
> In pkgsrc:
> 
> Making all in tests
> gmake[2]: Entering directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/tests'
> Making all in .
> gmake[3]: Entering directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/tests'
>   CC       utils.lo
>   CC       seccomp.lo
>   CC       utils-adv.lo
>   CCLD     libutils.la
>   CC       pkcs11/pkcs11-mock.lo
>   CCLD     libpkcs11mock1.la
> gmake[3]: Leaving directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/tests'
> Making all in cert-tests
> gmake[3]: Entering directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/tests/cert-tests'
> gmake[3]: Nothing to be done for 'all'.
> gmake[3]: Leaving directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/tests/cert-tests'
> Making all in slow
> gmake[3]: Entering directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/tests/slow'
> gmake[3]: Nothing to be done for 'all'.
> gmake[3]: Leaving directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/tests/slow'
> gmake[2]: Leaving directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/tests'
> Making all in fuzz
> gmake[2]: Entering directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/fuzz'
> gmake[2]: Nothing to be done for 'all'.
> gmake[2]: Leaving directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/fuzz'
> Making all in guile
> gmake[2]: Entering directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/guile'
> Making all in src
> gmake[3]: Entering directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/guile/src'
>   GEN      enum-map.i.c
>   GEN      smob-types.i.c
>   GEN      enums.h
>   GEN      smobs.h
>   GEN      core.x
>   GEN      errors.x
> /usr/pkg/bin/gmake  all-am
> gmake[4]: Entering directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/guile/src'
>   CC       guile_gnutls_v_2_la-core.lo
> core.c:806:19: warning: 'session_record_port_gc_hint' defined but not used [-Wunused-const-variable=]
>  static const char session_record_port_gc_hint[] =
>                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>   CC       guile_gnutls_v_2_la-errors.lo
>   CC       guile_gnutls_v_2_la-utils.lo
>   CCLD     guile-gnutls-v-2.la
> ld: /usr/pkg/guile/2.2/lib/libguile-2.2.so: warning: warning: tmpnam() possibly used unsafely, use mkstemp() or mkdtemp()
> gmake[4]: Leaving directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/guile/src'
> gmake[3]: Leaving directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/guile/src'
> gmake[3]: Entering directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/guile'
>   GEN      modules/gnutls.scm
>   GUILEC   modules/gnutls.go
> ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
> ;;;       or pass the --no-auto-compile argument to disable.
> ;;; compiling /usr/work/wip/gnutls-guile/work/.buildlink/bin/guild
> ;;; compiled /usr/work/wip/gnutls-guile/work/.home/.cache/guile/ccache/2.2-LE-8-3.A/usr/pkg/guile/2.2/bin/guild.go
> Backtrace:
>            7 (apply-smob/1 #<catch-closure 757d34548a20>)
> In ice-9/boot-9.scm:
>     705:2  6 (call-with-prompt _ _ #<procedure default-prompt-handle?>)
> In ice-9/eval.scm:
>     619:8  5 (_ #(#(#<directory (guile-user) 757d3397d140>)))
> In /usr/work/wip/gnutls-guile/work/.buildlink/bin/guild:
>     72:17  4 (main _)
> In srfi/srfi-1.scm:
>     640:9  3 (for-each #<procedure 757d325d3340 at scripts/compile.?> ?)
> In scripts/compile.scm:
>    259:26  2 (_ _)
> In system/base/target.scm:
>      52:2  1 (with-target "x86_64--netbsd" #<procedure 757d325d3300 ?>)
> In unknown file:
>            0 (scm-error misc-error #f "~A ~S" ("invalid target" "?") #)
> 
> ERROR: In procedure scm-error:
> invalid target "x86_64--netbsd"
> gmake[3]: *** [Makefile:2318: modules/gnutls.go] Error 1
> gmake[3]: Leaving directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/guile'
> gmake[2]: *** [Makefile:1806: all-recursive] Error 1
> gmake[2]: Leaving directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5/guile'
> gmake[1]: *** [Makefile:1539: all-recursive] Error 1
> gmake[1]: Leaving directory '/usr/work/wip/gnutls-guile/work/gnutls-3.6.5'
> gmake: *** [Makefile:1466: all] Error 2
> *** Error code 2
> 
> Stop.
> make[1]: stopped in /usr/pkgsrc/wip/gnutls-guile
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/pkgsrc/wip/gnutls-guile
> 
> 
> 
> The non-pkgsrc way assumes that you have a gnu gettext, git, autoconf,
> and because of those also guile2.0.. so instead I have build it this
> time from the 3.6.5 tarball. It throws a different error, but at least
> passes the check.
> 
> 
> LDFLAGS=-L/usr/pkg/lib CFLAGS="-g -O0" ./configure --enable-guile --disable-openssl-compatibility --disable-libdane --without-idn --without-tpm --disable-valgrind-tests
> 
> configure: summary of build options:
> 
>   version:              3.6.5 shared 53:0:23
>   Host/Target system:   x86_64-unknown-netbsd8.99
>   Build system:         x86_64-unknown-netbsd8.99
>   Install prefix:       /usr/local
>   Compiler:             gcc
>   Valgrind:             no 
>   CFlags:               -g -O0
>   Library types:        Shared=yes, Static=no
>   Local libopts:        yes
>   Local libtasn1:       no
>   Local unistring:      no
>   Use nettle-mini:      no
>   Documentation:        yes (manpages: yes)
> 
> configure: External hardware support:
> 
>   /dev/crypto:          no
>   Hardware accel:       x86-64
>   Padlock accel:        yes
>   Random gen. variant:  auto-detect
>   PKCS#11 support:      yes
>   TPM support:          no
> 
> configure: Optional features:
> (note that included applications might not compile properly
> if features are disabled)
> 
>   SSL3.0 support:       no
>   SSL2.0 client hello:  yes
>   Allow SHA1 sign:      no
>   DTLS-SRTP support:    yes
>   ALPN support:         yes
>   OCSP support:         yes
>   SRP support:          yes
>   PSK support:          yes
>   DHE support:          yes
>   ECDHE support:        yes
>   GOST support:         yes
>   Anon auth support:    yes
>   Heartbeat support:    yes
>   IDNA support:         no
>   Non-SuiteB curves:    yes
>   FIPS140 mode:         no
> 
> configure: Optional libraries:
> 
>   Guile wrappers:       no
>   C++ library:          yes
>   DANE library:         no
>   OpenSSL compat:       no
> 
> configure: System files:
> 
>   Trust store pkcs11:   
>   Trust store dir:      
>   Trust store file:     
>   Blacklist file:       
>   CRL file:             
>   Priority file:        /etc/gnutls/default-priorities
>   DNSSEC root key file: /etc/unbound/root.key
> 
> configure: WARNING:
> ***
> *** The DNSSEC root key file in /etc/unbound/root.key was not found.
> *** This file is needed for the verification of DNSSEC responses.
> *** Use the command: unbound-anchor -a "/etc/unbound/root.key"
> *** to generate or update it.
> *** 
> 
> copying selected object files to avoid basename conflicts...
> Making all in tests
> Making all in .
>   CC       utils.lo
>   CC       seccomp.lo
>   CC       utils-adv.lo
>   CCLD     libutils.la
>   CC       pkcs11/pkcs11-mock.lo
>   CCLD     libpkcs11mock1.la
> Making all in cert-tests
> Making all in slow
> Making all in fuzz
> Making all in guile
> Making all in src
>   GEN      enum-map.i.c
> Backtrace:
> In ice-9/boot-9.scm:
>  160: 8 [catch #t #<catch-closure 7986a59ff6e0> ...]
> In unknown file:
>    ?: 7 [apply-smob/1 #<catch-closure 7986a59ff6e0>]
> In ice-9/boot-9.scm:
>   66: 6 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
>  432: 5 [eval # #]
> In ice-9/boot-9.scm:
> 2412: 4 [save-module-excursion #<procedure 7986a58eb840 at ice-9/boot-9.scm:4084:3 ()>]
> 4091: 3 [#<procedure 7986a58eb840 at ice-9/boot-9.scm:4084:3 ()>]
> 1734: 2 [%start-stack load-stack ...]
> 1739: 1 [#<procedure 7986a58fe900 ()>]
> In unknown file:
>    ?: 0 [primitive-load "/home/ng0/gnutls-3.6.5/guile/src/"]
> 
> ERROR: In procedure primitive-load:
> ERROR: Throw to key `decoding-error' with args `("scm_from_stringn" "input locale conversion error" 85 #vu8(63 190 193 2))'.
> *** Error code 1
> 
> Stop.
> make[3]: stopped in /home/ng0/gnutls-3.6.5/guile/src
> *** Error code 1
> 
> Stop.
> make[2]: stopped in /home/ng0/gnutls-3.6.5/guile
> *** Error code 1
> 
> Stop.
> make[1]: stopped in /home/ng0/gnutls-3.6.5
> *** Error code 1
> 
> Stop.
> make: stopped in /home/ng0/gnutls-3.6.5
> 


Home | Main Index | Thread Index | Old Index