Can’t change the build system of p11-kit to meson

  • Open
  • quality assurance status badge
Details
2 participants
  • Csepp
  • Vivien Kraus
Owner
unassigned
Submitted by
Vivien Kraus
Severity
normal
V
V
Vivien Kraus wrote on 14 Jan 2023 09:26
(name . bug-guix)(address . bug-guix@gnu.org)
da60911f63658e4f550278cdde4fcacc5103fcbf.camel@planete-kraus.eu
Dear guix,

p11-kit is switching its build system to meson. The README already
advertises it as the way to build p11-kit. When I try to change that,
guix builds fine. Then, if I try to run guix build p11-kit, guix will
crash after exhausting all my memory. I suspect a circular dependency
of some sort, but I don’t know how to debug it.

If I try and run:
$ ./pre-inst-env guix graph --type=bag p11-kit

Then I get as an output,

digraph "Guix bag" {

And then guix starts eating my memory indefinitely until I cancel it.

How can I debug this?

Best regards,

Vivien
C
(name . Vivien Kraus)(address . vivien@planete-kraus.eu)
86h6wszxep.fsf@riseup.net
Vivien Kraus via Bug reports for GNU Guix <bug-guix@gnu.org> writes:

Toggle quote (23 lines)
> Dear guix,
>
> p11-kit is switching its build system to meson. The README already
> advertises it as the way to build p11-kit. When I try to change that,
> guix builds fine. Then, if I try to run guix build p11-kit, guix will
> crash after exhausting all my memory. I suspect a circular dependency
> of some sort, but I don’t know how to debug it.
>
> If I try and run:
> $ ./pre-inst-env guix graph --type=bag p11-kit
>
> Then I get as an output,
>
> digraph "Guix bag" {
>
> And then guix starts eating my memory indefinitely until I cancel it.
>
> How can I debug this?
>
> Best regards,
>
> Vivien

The way I debugged a cycle was:
* use package graph type
* import graph into Python's networkx using pydot
* run networkx's cycle detection

Here is the script so you don't have to figure it out yourself:

```
#!/usr/bin/env python
# coding: utf-8
import networkx
import sys
G = networkx.drawing.nx_pydot.read_dot(sys.stdin)
Va = networkx.function.get_node_attributes(G, "label")
print(*[Va[e[0]] for e in networkx.find_cycle(G)])
```
V
V
Vivien Kraus wrote on 14 Jan 2023 23:03
(name . Csepp)(address . raingloom@riseup.net)
7e14ed490c6f7a4e8f34aa7c7163835a7c433de6.camel@planete-kraus.eu
Hello!

Le samedi 14 janvier 2023 à 21:10 +0100, Csepp a écrit :
Toggle quote (5 lines)
> The way I debugged a cycle was:
> * use package graph type
> * import graph into Python's networkx using pydot
> * run networkx's cycle detection

If I select the "package" graph type, guix graph completes:

$ ./pre-inst-env guix graph --type=package p11-kit
digraph "Guix package" {
"140299993452720" [label = "p11-kit@0.23.22", shape = box, fontname =
sans];
"140299993452720" -> "140299993453072" [color = magenta];
"140299993452720" -> "140300286436736" [color = magenta];
"140299993452720" -> "140299980957936" [color = magenta];
"140299993452720" -> "140299993453072" [color = magenta];
"140299993453072" [label = "libtasn1@4.17.0", shape = box, fontname =
sans];
"140299993453072" -> "140299983720224" [color = blue];
"140299983720224" [label = "perl@5.34.0", shape = box, fontname =
sans];
"140299983720224" -> "140299983567616" [color = red];
"140299983567616" [label = "coreutils-minimal@8.32", shape = box,
fontname = sans];
"140300286436736" [label = "pkg-config@0.29.2", shape = box, fontname
= sans];
"140299980957936" [label = "libffi@3.3", shape = box, fontname =
sans];

}

Thank you for your python script! Unfortunately, it does not detect any
cycles here.

Vivien
?
Your comment

Commenting via the web interface is currently disabled.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 60811
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