configure: error: The Guile bindings of GnuTLS are missing

  • Done
  • quality assurance status badge
Details
4 participants
  • Daniel Meißner
  • Hiep Pham
  • Ludovic Courtès
  • Simon Tournier
Owner
unassigned
Submitted by
Hiep Pham
Severity
normal
H
H
Hiep Pham wrote on 14 Oct 2023 14:49
(address . bug-guix@gnu.org)
8917dacb-185f-4081-bc9b-24d1e4ae462e@proton.me
Hi,

I'm on Fedora and started a shell with:

```
guix shell -D guix help2man git strace --pure
```

And then:

```
./bootstrap
./configure --localstatedir=/var
```

And it showed me this error:

```
[snip]
checking for guile-3.0 >= 3.0.3... yes
checking for guile-3.0... yes
checking if (gnutls) is available... no
configure: error: The Guile bindings of GnuTLS are missing; please
install them.
```

I started the shell again with some dependencies but no luck :(

```
guix shell -D guix git strace guile-gnutls gnutls --pure
```

My current (guix describe):

```
guix 8e8d20b
branch: master
commit: 8e8d20b6b35d3ab529f9045cc8a779cdcec9c471
```

--
Hiep
D
D
Daniel Meißner wrote on 17 Oct 2023 10:59
(name . Hiep Pham)(address . hiepph9@proton.me)(address . 66537@debbugs.gnu.org)
87il751v5e.fsf@rub.de
Hi Hiep,

Toggle quote (26 lines)
> Hi,
>
> I'm on Fedora and started a shell with:
>
> ```
> guix shell -D guix help2man git strace --pure
> ```
>
> And then:
>
> ```
> ./bootstrap
> ./configure --localstatedir=/var
> ```
>
> And it showed me this error:
>
> ```
> [snip]
> checking for guile-3.0 >= 3.0.3... yes
> checking for guile-3.0... yes
> checking if (gnutls) is available... no
> configure: error: The Guile bindings of GnuTLS are missing; please
> install them.
> ```

Have you installed Guile 3.0 via Fedora’s package manager also? Then
maybe configure finds Fedora’s Guile where Guile-GnuTLS is not
installed. You could try using a container to confirm:

guix shell -C -D guix help2man git strace

Then try again:

./bootstrap
./configure --localstatedir=/var

When this works configure is probably finding the wrong Guile binary.
Alternatively look into the file config.status which is generated by
configure for a line like

S["GUILE"]="/path/to/guile"

This shows which Guile binary is found.

--
Best,
Daniel
H
H
Hiep Pham wrote on 17 Oct 2023 12:28
(name . Daniel Meißner)(address . daniel.meissner-i4k@rub.de)(address . 66537@debbugs.gnu.org)
6e30603f-4ae2-4de2-af46-dc2fc2ee6bc9@proton.me
Hi Daniel,

On 10/17/23 10:59, Daniel Meißner wrote:
Toggle quote (39 lines)
> Hi Hiep,
>
>> Hi,
>>
>> I'm on Fedora and started a shell with:
>>
>> ```
>> guix shell -D guix help2man git strace --pure
>> ```
>>
>> And then:
>>
>> ```
>> ./bootstrap
>> ./configure --localstatedir=/var
>> ```
>>
>> And it showed me this error:
>>
>> ```
>> [snip]
>> checking for guile-3.0 >= 3.0.3... yes
>> checking for guile-3.0... yes
>> checking if (gnutls) is available... no
>> configure: error: The Guile bindings of GnuTLS are missing; please
>> install them.
>> ```
>
> Have you installed Guile 3.0 via Fedora’s package manager also? Then
> maybe configure finds Fedora’s Guile where Guile-GnuTLS is not
> installed. You could try using a container to confirm:
>
> guix shell -C -D guix help2man git strace
>
> Then try again:
>
> ./bootstrap
> ./configure --localstatedir=/var

Running `guix shell -C -D guix help2man git strace --pure` in a
container solved my problem! Thanks.

Toggle quote (8 lines)
> When this works configure is probably finding the wrong Guile binary.
> Alternatively look into the file config.status which is generated by
> configure for a line like
>
> S["GUILE"]="/path/to/guile"
>
> This shows which Guile binary is found.

I followed this contributing guide [1] in the manual. It might be
helpful to update the documentation to run the shell in an isolated
container.


--
Hiep
L
L
Ludovic Courtès wrote on 22 Nov 2023 13:05
[PATCH] doc: Recommend building in ‘gui x shell -CPW’.
(address . guix-patches@gnu.org)
2d49ea4ddadceb4a3017f1a6032fb2858616cdee.1700654648.git.ludo@gnu.org
This was prompted by https://issues.guix.gnu.org/66537, where someone
tried to build Guix within ‘guix shell --pure’ on a foreign distro and
found that ./configure would pick software from the host system.

Suggested by Hiep Pham <hiepph9@proton.me>.

* doc/contributing.texi (Building from Git): Recommend ‘guix shell -CPW’.

Change-Id: I7694b482d982917fef6ec404f68ddacea761f482
---
doc/contributing.texi | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

Toggle diff (28 lines)
diff --git a/doc/contributing.texi b/doc/contributing.texi
index f3cc4d7af7..da72eae067 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -76,15 +76,17 @@ Building from Git
hack on Guix:
@example
-guix shell -D guix --pure
+guix shell -D guix -CPW
@end example
or even, from within a Git worktree for Guix:
@example
-guix shell --pure
+guix shell -CPW
@end example
+If @option{-C} (short for @option{--container}) is not supported on your
+system, try @command{--pure} instead of @option{-CPW}.
@xref{Invoking guix shell}, for more information on that command.
If you are unable to use Guix when building Guix from a checkout, the

base-commit: d987b75618a62c95c030e7ca53e0972e700c4f06
--
2.41.0
S
S
Simon Tournier wrote on 29 Nov 2023 20:33
Re: bug#66537: [PATCH] doc: Recommend building in ‘guix shell -CPW’.
87fs0o5p7g.fsf@gmail.com
Hi,

On mer., 22 nov. 2023 at 13:05, Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (12 lines)
> @example
> -guix shell -D guix --pure
> +guix shell -D guix -CPW
> @end example
>
> or even, from within a Git worktree for Guix:
>
> @example
> -guix shell --pure
> +guix shell -CPW
> @end example

I would not recommend that or adding also the option -N. Else, the
development experience can be annoying.

For instance, “make check” will probably fail because some substitutes
are missing (see #67532 [1], e.g., tests/derivations.scm).

Moreover, one needs to go out the shell for submitting with “git
send-email” but then git:send-email is not necessary available in PATH.



Cheers,
simon
L
L
Ludovic Courtès wrote on 4 Dec 2023 22:51
Re: [bug#67366] [PATCH] doc: Recommend building in ‘guix shell -CPW’.
(address . 67366-done@debbugs.gnu.org)
87sf4hljpk.fsf@gnu.org
Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (10 lines)
> This was prompted by https://issues.guix.gnu.org/66537, where someone
> tried to build Guix within ‘guix shell --pure’ on a foreign distro and
> found that ./configure would pick software from the host system.
>
> Suggested by Hiep Pham <hiepph9@proton.me>.
>
> * doc/contributing.texi (Building from Git): Recommend ‘guix shell -CPW’.
>
> Change-Id: I7694b482d982917fef6ec404f68ddacea761f482

Pushed as 01361d46b8e0481ad56665d7a06c276b08f59c6d.

Ludo'.
Closed
S
S
Simon Tournier wrote on 8 Dec 2023 16:50
Re: bug#66537: configure: error: The Guile bindings of GnuTLS are missing
(name . Ludovic Courtès)(address . ludo@gnu.org)
87bkb08zim.fsf_-_@gmail.com
Hi Ludo,

On Wed, 29 Nov 2023 at 20:33, Simon Tournier <zimon.toutoune@gmail.com> wrote:
Toggle quote (17 lines)
> On mer., 22 nov. 2023 at 13:05, Ludovic Courtès <ludo@gnu.org> wrote:
>
>> @example
>> -guix shell -D guix --pure
>> +guix shell -D guix -CPW
>> @end example
>>
>> or even, from within a Git worktree for Guix:
>>
>> @example
>> -guix shell --pure
>> +guix shell -CPW
>> @end example
>
> I would not recommend that or adding also the option -N. Else, the
> development experience can be annoying.

As said, I disagree with this change pushed by
01361d46b8e0481ad56665d7a06c276b08f59c6d.

Could you revert? Because as explained by…

Toggle quote (3 lines)
> For instance, “make check” will probably fail because some substitutes
> are missing (see #67532 [1], e.g., tests/derivations.scm).

…the option ’-CPW’ is not a solution. Other said, it would require in
addition ’-N’.

To me, this recommendation of container is like a bazooka for chasing
the real bug: about why --pure does not clean all as expected. Or why
“guile” is found elsewhere?

Cheers,
simon
S
S
Simon Tournier wrote on 19 Dec 2023 10:30
Re: bug#66537: [PATCH] doc: Recommend building in ‘guix shell -CPW’.
(name . Ludovic Courtès)(address . ludo@gnu.org)
87zfy64k07.fsf@gmail.com
Hi,

On Fri, 08 Dec 2023 at 16:50, Simon Tournier <zimon.toutoune@gmail.com> wrote:

Toggle quote (19 lines)
>>> @example
>>> -guix shell --pure
>>> +guix shell -CPW
>>> @end example
>>
>> I would not recommend that or adding also the option -N. Else, the
>> development experience can be annoying.
>
> As said, I disagree with this change pushed by
> 01361d46b8e0481ad56665d7a06c276b08f59c6d.
>
> Could you revert? Because as explained by…
>
>> For instance, “make check” will probably fail because some substitutes
>> are missing (see #67532 [1], e.g., tests/derivations.scm).
>
> …the option ’-CPW’ is not a solution. Other said, it would require in
> addition ’-N’.

Ludo’s answer from bug#67532 [1]:

Toggle snippet (32 lines)
I had come to forget about that because for the ‘guix’ package
(obviously built in a network-less environment), we “pre-seed” the store
with the 4 or 5 files needed to run the test suite.

So I propose:
[ text/x-patch ]
diff --git a/doc/contributing.texi b/doc/contributing.texi
index 0833b5d32c..0072e5d42d 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -76,13 +76,13 @@ Building from Git
hack on Guix:

@example
-guix shell -D guix -CPW
+guix shell -D guix -CPWN
@end example

or even, from within a Git worktree for Guix:

@example
-guix shell -CPW
+guix shell -CPWN
@end example

If @option{-C} (short for @option{--container}) is not supported on your
[ text/plain ]

(And not going back to ‘--pure’ because as we know it depends too much
of the goodwill of the user’s shell.)

Well, IMHO it falls into…

Toggle quote (4 lines)
> To me, this recommendation of container is like a bazooka for chasing
> the real bug: about why --pure does not clean all as expected. Or why
> “guile” is found elsewhere?

…a bazooka for killing a fly. For instance, in the two message of the
initial bug report, I do not see the output of the current
recommendation: run “guix shell --check”.

Yes, “guix shell” depends on the goodwill of the user’s shell but
recommending first --pure is an opportunity for improving --check and/or
--pure itself, IMHO.

Considering this reported instance of issue, it is not clear for me that
--check would not have reported the problem. Or why --pure does not
correctly clean all the environment variables? Or why ./configure set
something system wide?

For me, these questions are the bug. And -CPWN is just a temporary
workaround avoiding the bug and not a fix.

Somehow, if the use of “-CPWN” instead of “--pure“ is not an idea that
user has when hitting a failure with “guix shell --pure”, yeah maybe it
could be helpful to recommend it in addition. And not the contrary. :-)
Something like:
Toggle diff (29 lines)
diff --git a/doc/contributing.texi b/doc/contributing.texi
index 7337f4bd58..8f66b3642b 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -76,18 +76,19 @@ Building from Git
hack on Guix:
@example
-guix shell -D guix -CPW
+guix shell -D guix --pure
@end example
or even, from within a Git worktree for Guix:
@example
-guix shell -CPW
+guix shell --pure
@end example
-If @option{-C} (short for @option{--container}) is not supported on your
-system, try @command{--pure} instead of @option{-CPW}.
-@xref{Invoking guix shell}, for more information on that command.
+If building Guix fails, please check the environment variables using the
+option @command{--check}. In the last resort, try @option{-CPWN}
+instead of @command{--pure}. @xref{Invoking guix shell}, for more
+information on that command.
If you are unable to use Guix when building Guix from a checkout, the
following are the required packages in addition to those mentioned in the
That’s said, going your road, I would suggest to add option, say
-A/no-long-name doing all (-CPWN) at once.

Cheers,
simon


1: bug#67532: “make check” requires network
Ludovic Courtès <ludo@gnu.org>
Mon, 11 Dec 2023 22:42:30 +0100
id:87sf482z7d.fsf@gnu.org
?
Your comment

This issue is archived.

To comment on this conversation send an email to 66537@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 66537
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch