tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Cyclic dependency, please fix

> : >  Otherwise, go to ../../devel/p5-Module-Build and install from
> : > there to fulfill this dependency.
> : I'm sorry, but you skipped 'perl>=5.10'. Why?

>   I used the part after the colon, which is what is used when building
> the dependency from source.  What I skipped is everything before the
> colon, since I used that in determining if a suitable package is
> already installed.

I'll try to describe why this recently introduced cyclic
dependency is the problem.

distbb algorithm (in short):

1) Using external pkg_src_summary(1) utility a summary is built for all
   packages in a tree or for requested packages with their dependencies.

   Summary includes PKGNAME, PKGPATH, DEPENDS and BUILD_DEPENDS fields.

2) Using this summary distbb builds a dependency graph.
   In this graph an arc (A,B) means package A should be built before
   package B.

   Dependency graph is built using DEPENDS and BUILD_DEPENDS fields and
   distbb uses only the part after `:' separator.

3) External utility paexec(1) gives this graph on input and distributes
   tasks over cluster or chroots. paexec, run on master node, also
   collects results from all client hosts/chroots and ... etc.
4) <The rest is not significant here.>

I don't know how pbulk and bbf work but algorithm of distbb is very
simple and worked for me for one year
(distbb is developped for one year now).

After "fixing" pkg/xxx pkgsrc becomes broken and I don't see any reason
for this.  As I already said it is possible to build dependency graph
using the part before `:' too searching for PKGBASE=perl in the full
src_summary but this makes the algorithm overcomplecated and adds extra
bloat to the code.

Alternative dependencies themself are not a big problem. The problem is
that only one ../../devel/p5-Module-Build is present in DEPENDS fields
for both "perl" and "p5-Module-Build" and it is unknown to which package
this ../../devel/p5-Module-Build corresponds.

Best regards, Aleksey Cheusov.

Home | Main Index | Thread Index | Old Index