Mathieu Othacehe wrote 3 years ago
(address . bug-guix@gnu.org)
Hello,
I noticed that some builds were missing dependencies in the Cuirass web
interface. For instance, compare those two builds of python-git-review:
When looking closer to one dependency, python-pysocks for the build
100035, this command reports the corresponding derivation:
Toggle snippet (4 lines)
guix time-machine --commit=79fbbe5e4a7cd79613d49c0dda51872f2492cc76 -C ~/.config/guix/channels-default.scm -- build --no-grafts python-pysocks -d
/gnu/store/49bprfjvzlfm893622fkmi4jb6msyg2j-python-pysocks-1.7.1.drv
On the other hand, in the Cuirass database, we have:
Toggle snippet (4 lines)
cuirass=# select derivation from jobs left join builds on jobs.build = builds.id where jobs.evaluation = 27768 and name = 'python-pysocks.x86_64-linux';
/gnu/store/pm576s0gi7b8n9bpllmj3kdin0r6dj22-python-pysocks-1.7.1.drv
There are two different derivations which explains why python-pysocks is
not listed as dependency of the build 100035.
While those derivations are different, they have the same output:
Toggle snippet (4 lines)
guix time-machine --commit=79fbbe5e4a7cd79613d49c0dda51872f2492cc76 -C ~/.config/guix/channels-default.scm -- build --no-grafts python-pysocks
/gnu/store/x76mk7rx4hyqk6hngflpx1rrrr82rvmb-python-pysocks-1.7.1
and
Toggle snippet (4 lines)
cuirass=# select path from jobs left join builds on jobs.build = builds.id left join outputs on builds.derivation = outputs.derivation where jobs.evaluation = 27768 and jobs.name = 'python-pysocks.x86_64-linux';
/gnu/store/x76mk7rx4hyqk6hngflpx1rrrr82rvmb-python-pysocks-1.7.1
So, when Cuirass tried to register the
/gnu/store/49bprfjvzlfm893622fkmi4jb6msyg2j-python-pysocks-1.7.1.drv, it
skipped it because another build with the same output already
existed.
Cuirass uses the derivation file names to determine the dependencies and
is thus tricked by this mismatch.
There are two things that are a bit unclear to me:
1. What causes those derivation differences while the output is identical?
2. How we could work-around this issue to have Cuirass list all
dependencies?
Thanks,
Mathieu