> > Implementing this correctly is a little tricky, though. The thing > > which makes it difficult is that files which move between packages > > should be left alone. You would need to support taking a set of > > packages you want to upgrade, and compute the set of files to be > > removed based on the old and new contents of entire set. (Okay, not > > that tricky.) > > This is what pkg dependencies are for -- extend that to add versions and > to tell pkgadd that these have to be upgraded together.
Dependencies usually represent the functional needs of the software delivered in them. Using/relying on a dependency to indicate that file F moved from package A to package B between revs 3.1 and 3.2 also seems semantically wrong (since there might not be an actual functional dependency between the packages in either 3.1 or 3.2), not to mention very difficult to maintain. > > Doing this with the existing tools (and a little help from everyone's > > not-quite-public friend, /var/sadm/install/contents) is certainly > > possible. Unfortunately, I think the ease of doing so has resulted > > in the functionality not being sedimented into the packaging tools > > where it belongs. > > But what tools do this? Solaris upgrade (in its various forms). Dave