tech-pkg archive

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

Re: [Fwd: Re: gnutls guile]



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?

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