From owner-freebsd-stable Mon Apr 23 8:48:28 2001 Delivered-To: freebsd-stable@freebsd.org Received: from guru.mired.org (okc-65-26-235-186.mmcable.com [65.26.235.186]) by hub.freebsd.org (Postfix) with SMTP id B425937B423 for ; Mon, 23 Apr 2001 08:48:24 -0700 (PDT) (envelope-from mwm@mired.org) Received: (qmail 48466 invoked by uid 100); 23 Apr 2001 15:48:23 -0000 From: Mike Meyer MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15076.20167.337195.349137@guru.mired.org> Date: Mon, 23 Apr 2001 10:48:23 -0500 To: Jeff Kletsky Cc: freebsd-stable@freebsd.org, Subject: Re: pkg/port dependency tool (enclosed) In-Reply-To: References: X-Mailer: VM 6.90 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid X-face: "5Mnwy%?j>IIV\)A=):rjWL~NB2aH[}Yq8Z=u~vJ`"(,&SiLvbbz2W`;h9L,Yg`+vb1>RG% *h+%X^n0EZd>TM8_IB;a8F?(Fb"lw'IgCoyM.[Lg#r\ Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Jeff Kletsky 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. 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