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
?