Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#64490 closed defect (fixed)

gnutls @3.6.16 +guile: does not build and install guile module gnutls

Reported by: mwette Owned by: Schamschula (Marius Schamschula)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: Cc: cooljeanius (Eric Gallager)
Port: gnutls

Description

I tried several times to "port install gnutls +guile", separated by "port uninstall gnutls". The expected files did not appear in /opt/local/lib/guile/site/2.2/extensions nor in /opt/local/share/guile/site/2.2. Finally, I performed "port -k" and dug down to the build directory. I saw that the guile files were not created. I performed "cd guile; make" and the files were then built. I'm not sure about the install process so I stopped there.

macOS 11.6.2 Xcode 12.4

Attachments (3)

config.log (2.5 MB) - added by mwette 2 years ago.
config.log from macports build dir
MakeOut (2.5 KB) - added by mwette 2 years ago.
output of "make" in top-level dir, illustrating no guile build
MakeGuile (9.4 KB) - added by mwette 2 years ago.
output of "cd guile; make", illustrating that guile module Makefile was created

Change History (11)

Changed 2 years ago by mwette

Attachment: config.log added

config.log from macports build dir

Changed 2 years ago by mwette

Attachment: MakeOut added

output of "make" in top-level dir, illustrating no guile build

Changed 2 years ago by mwette

Attachment: MakeGuile added

output of "cd guile; make", illustrating that guile module Makefile was created

comment:1 Changed 2 years ago by reneeotten (Renee Otten)

Cc: mps@… removed
Keywords: guile removed
Owner: set to Schamschula
Status: newassigned

the Portfile says:

# there currently is a build issue with the guile variant
# the workaround is to first install w/o guile and then with +guile

so you could try that... whether this is something that can be solved I'll leave to Marius to comment on.

Last edited 2 years ago by reneeotten (Renee Otten) (previous) (diff)

comment:2 Changed 2 years ago by mwette

I did try that workaround., but it did not work for me.

(I have used that workaround in the past. IIRC, the issue was that the guile link phase was only looking in /opt/local/lib for libgnutls.so.)

comment:3 Changed 2 years ago by Schamschula (Marius Schamschula)

I have to be honest: I haven't built the guile variant in several years - the last time might have been under the previous stable major version.

I'll look into it.

comment:4 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

The config.log says:

configure:68838: checking whether building Guile bindings
configure:68847: result: yes
configure:69114: checking for guile 2.2
configure:69117: $PKG_CONFIG --exists --print-errors "guile-$v"
configure:69120: $? = 0
configure:69137: found guile 2.2
configure:69685: checking whether GNU Guile is recent enough
configure:69698: /usr/bin/clang -o conftest -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch x86_64 -D_THREAD_SAFE -I/opt/local/include/guile/2.2 -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch x86_64 -Wl,-no_weak_imports conftest.c -lintl  -L/opt/local/lib -lguile-2.2 -lgc >&5
conftest.c:543:1: error: implicit declaration of function 'scm_from_locale_string' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
scm_from_locale_string ("")
^
1 error generated.

So it's just the typical implicit declaration of function problem we see with a zillion other ports when using Xcode 12 or later. Fix the configure test to include whatever header declares scm_from_locale_string.

comment:5 Changed 2 years ago by mwette

Guessing this:

--- configure.ac-orig	2022-01-25 07:55:31.000000000 -0800
+++ configure.ac	2022-01-25 07:55:55.000000000 -0800
@@ -1094,7 +1094,7 @@
       CFLAGS="$CFLAGS $GUILE_CFLAGS"
       LIBS="$LIBS $GUILE_LDFLAGS"
       AC_MSG_CHECKING([whether GNU Guile is recent enough])
-      AC_LINK_IFELSE([AC_LANG_PROGRAM([], [scm_from_locale_string ("")])],
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <libguile.h>], [scm_from_locale_string ("")])],
         [], [opt_guile_bindings=no])
       CFLAGS="$save_CFLAGS"
       LIBS="$save_LIBS"
r

EDIT: or <guile/2.2/libguile.h> but not sure how that gets in there
EDIT^2: I checked the gnutls repo: they have fixed it using #include <libguile.h>

Last edited 2 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:6 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

In 35edbee0b1af40d247ba890d562722af5843406c/macports-ports (master):

gnutls: Fix detection of guile in guile variant

Previously, with Xcode 12 or later, the guile variant would silently
build gnutls without guile support.

Closes: #64490

comment:7 Changed 2 years ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:8 Changed 2 years ago by cooljeanius (Eric Gallager)

This caused #64628

Note: See TracTickets for help on using tickets.