Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Apr 2001 10:48:23 -0500
From:      Mike Meyer <mwm@mired.org>
To:        Jeff Kletsky <Jeff+freebsd@wagsky.com>
Cc:        freebsd-stable@freebsd.org, 
Subject:   Re: pkg/port dependency tool (enclosed)
Message-ID:  <15076.20167.337195.349137@guru.mired.org>
In-Reply-To: <Pine.BSF.4.21.0104230806060.27435-100000@wildside.wagsky.com>
References:  <Pine.BSF.4.21.0104230806060.27435-100000@wildside.wagsky.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Jeff Kletsky <Jeff+freebsd@wagsky.com> types:
> I saw that in the release notes for 4.3 that the pkg_* toolset was being
> enhanced to track where a given pkg/port comes from.  I have been
> wrestling with the upgrade process for a while, especially when it comes
> to dependencies, and am offering back to the project a Perl script that
> provides output that can be run through dot(1) (available in the port
> graphics/graphviz) to produce a dependency graph. 

Very cool idea, but the graphviz port doesn't build on 4.3-STABLE,
failing with

===>  Applying FreeBSD patches for graphviz-1.7c
aclocal: /usr/opt/share/aclocal/sdl11.m4: 11: duplicated macro `AM_PATH_SDL'
*** Error code 1

:-(.

> I'm thinking through the automation of this right now. There are issues
> with loops in the dependency graph which need to be detected and
> resolved. Detection should not be an issue, resolution is
> tougher. The "build twice" approach *may* be sufficient, but that horrid
> possibility of each node exposing functionality that is dependent on a
> predecessor worries me a (tiny) bit. Let's hope that most of the software
> is well designed...

I don't believe it's possible to have loops in the dependency graph.
Computing the transitive closure of the dependency relationship is
trivial using a matrix for the relationship. In the process, any loops
will show up as 1's on the diagonal.

> P.S. This type of dependency checking might also allow the "make
> clean" process a bit smarter and faster (the other option there would be
> to specify a flag that says not to follow dependencies on a recursive
> "clean", especially in /usr/ports)

The flag you're looking for is NOCLEANDEPENDS.

	<mike
--
Mike Meyer <mwm@mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15076.20167.337195.349137>