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: alfs-log@…
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 Pierre Labastie, 7 years ago

Worse, we have:

pierre@<host>:~/blfs_root$ ls scripts/{*harfbuzz*,*graphite*}
scripts/039-z-harfbuzz  scripts/213-z-graphite2  scripts/238-z-graphite2-pass1

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:

pierre@<host>:~/blfs_root$ ls scripts/{*harfbuzz*,*freety*}
scripts/038-z-freetype2-pass1  scripts/039-z-harfbuzz  scripts/040-z-freetype2

comment:2 by Pierre Labastie, 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 Pierre Labastie, 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 Pierre Labastie, 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 Pierre Labastie, 7 years ago

Resolution: fixed
Status: newclosed

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.

Note: See TracTickets for help on using tickets.