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>