On Fri, 2006-02-24 at 17:02 -0600, Clark Williams wrote:
Hi all,
I've been looking at how to change mock so that the build chroot's can
be placed at arbitrary locations (as opposed to the current
hardcoded /var/lib/mock). The main reason I want to do this is that I
build target root filesystems for embedded targets in our compile farm
and we use a big NFS filesystem as our main storage. I can access the
build directory and our cross-toolchains from any system in our farm and
nothing that's specific to a build is on any farm system (I can
kickstart it at will and not lose anything). Yes, we've successfully
redirected /var/lib/mock to the NFS storage with a mount --bind but I
just find that kinda scary. I'm just not very confident in remounting an
NFS filesystem to a local filesystem. The bottom line is that I'd like
to remove dependencies on the build system's local filesystem and move
it all to the NFS storage.
I can't speak for Seth, but I'm fairly sure the answer here is "use bind
mounts". Seth is very big on the FHS, and in the FHS, that's where the
buildroots and other stuff for mock are supposed to live. I've asked
about this long ago, when starting to use mock for the build system, and
that was the answer. Seriously, bind mounts are neither complicated,
nor problematic, though I haven't done a ton of testing with NFS.
The other question is why you want the buildroots on NFS in the first
place. Unless you have blazingly fast storage, it's likely that local
SCSI disk will be quite a bit faster than NFS. Since creating buildroot
and doing the actual builds involves _quite_ a lot of IO, the same issue
applies; local storage is likely better unless you've got really a fast
path to the shared storage.
Dan