Opened 7 years ago
Closed 7 years ago
#1718 closed defect (fixed)
xxx-pass1 is built after xxx in some cases
Reported by: | Pierre Labastie | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | 3.0 |
Component: | ablfs | Version: | SVN |
Severity: | major | Keywords: | |
Cc: |
Description
Steps to reproduce: with no installed packages, select doxygen and optional deps only for the requested package. Then we get:
pierre@<host>:~/blfs_root$ ls scripts/*graphite* scripts/213-z-graphite2 scripts/238-z-graphite2-pass1
which is clearly wrong.
Change History (5)
comment:1 by , 7 years ago
comment:2 by , 7 years ago
Diagnostic 1: we have harfbuzz depends optionally on graphite2-pass1, which requires cmake. and doxygen requires cmake. So we arrive at harfbuzz through cmake, and a long and windy path. we therefore have the cycle:
cmake -...> harfbuzz -opt> graphite2 -req> cmake
and our algorithm to remove cycles is to break at the first optional dep (graphite2 here). Solution: transform any "first" dep into a required dep on pass1.
But trying to make graphviz a "first" dep of doxygen, I get:
pierre@<host>:~/blfs_root$ ls scripts/*graphv* scripts/237-z-graphviz scripts/238-z-graphviz-pass1
which is wrong again...
comment:3 by , 7 years ago
Looks like we have:
graphviz-pass1 -rec> freeglut -...-opt> graphviz -rec> freeglut
and our algorithm to remove cycles generates:
graphviz-pass1 -rec> freeglut -... broken just before graphviz \ -opt> graphviz -rec> freeglut
so that graphviz-pass1 depends on graphviz. How wrong!
comment:4 by , 7 years ago
Well, the algorithm is not to blame. But a dependency of xxx, leading to xxx should be removed from xxx-pass1. The question is whether it should always be removed, depending on the respective weight (req, rec, opt) of deps.
comment:5 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
r4032, r4033, r4034, and r4035 seem to fix the issue described in the description and comment:1. The issue described in comment:2 and comment:3 is not fixed. Maybe it is just wrong to put a random dep as "first"... And I must say it is wrong to recommend freeglut for graphviz: it cannot be used if other libraries, not in the book, are absent. But this is another story. Closing.
Worse, we have:
while graphite2-pass1 should be built before harfbuzz (as should be expected from graphite2 having role="first" as a dependency of harfbuzz). Note that we correctly get: