Subject: Re: Imake configuration
To: netbsd-help@NetBSD.ORG, Tim Rightnour <root@garbled.futureone.com>
From: William O Ferry <WOFerry+@CMU.EDU>
List: netbsd-help
Date: 02/14/1998 17:41:30
    This is a few weeks old, but I'm finally catching up on this list...  =)

Excerpts from internet.computing.netbsd.netbsd-help: 30-Jan-98 Re: Imake
configuration by Tim Rightnour@garbled.fu 
> how the heck to you keep your /usr/X11R6 tree unpolluted??  ;)

    Actually, a solution I've found that makes me happy is the CMU
"depot" package, which I noticed got incorporated into the package
system fairly recently.  I've been using depot for several months to
maintain the packages I have installed, both those from NetBSD and many
personal ports I've written.

    If you're unfamiliar with depot, it's a package management system,
but different from NetBSD's pkg_* system.  With depot, you create
separate directories for each package (i.e.
/usr/local/depot/tcsh-6.07.02).  This directory is set up to look just
like what the program installer would normally do to /usr/local.  When
you configure / run depot, it will (depending on the configuration)
either symlink or copy to /usr/local based on the contents of the
depot/* directories.  Obviously the symlinking is nice because it only
leaves one copy of everything on your system.  However if anything
decides to write to these files, it's possible that it will mess up the
original files in the depot directory.  As I've been playing with my
packages I've left it set to copy, which takes up more space, but if
anything mucks with /usr/local directly it is fixed the next time depot
runs.

    There are also two CMU programs that allow for automatic setup of
the depot configuration files (to make it pretty mindless), mpp and dpp.

    I use depot to keep every package separate, even though they all
appear in /usr/local.  To get it to work with bsd.port.mk has taken
considerable hacking, problems such as the install path being different
than the run path (i.e. the program will get installed in
/usr/local/depot/${PKGNAME}, yet when it compiles it has to be
configured to look for data files in /usr/local, etc), and many NetBSD
packages tend to have to be tweaked a bit to work with this.  But I've
felt it worth the extra work.  I've gotten things to the point where it
populates the depot directory and automatically runs depot on make
install, so that dependencies work.  Also, conflicts can be resolved by
having one package override another, so several of my packages also have
a -local directory that overrides them, so I can make my modifications
to the packages without actually changing the original package files. 
(Hope that made sense...  =)

    So, it might not be quite what you're looking for (i.e. my
/usr/X11R6/bin still has many binaries that didn't come with NetBSD's
X11 dist, but /usr/local/depot/X11R6-NetBSD contains the untouched X
tree, depot/X11R6-local my changes to xdm files and such, and other
packages in separate directories.

    Hope that helps.

                                                          Will Ferry

-----------------------------------------------------------------------
 William O Ferry  <woferry@CMU.EDU> | finger: woferry@Warp.RES.CMU.EDU
 http://light.res.cmu.edu/~woferry/ | talk:   finger for online status
-----------------------------------------------------------------------