On 03/02/2012 04:48 PM, C Anthony Risinger wrote:
IIRC makechrootpkg used to create an overlay/union before starting, which would keep your original root intact. if you put your builds on a btrfs filesystem i believe makechrootpkg will snapshot the fs before starting (i know im mixing mkarchroot and makechrootpkg a bit here ...)
imo, the most effective way is to use an overlay. this FUSE based one work just fine:
http://podgorny.cz/unionfs-fuse/releases/
... as do many other methods (DM, btrfs, overlayfs, unionfs, etc etc), though i persoanlly like the FUSE impl because it can cope with stuff better without less risk of crashing. you can then use --bind mounts or multiple overlays to do interesting things too.
make sure you've enabled `ccache` in your /etc/makepkg.conf, and adjusted your `-jN` makeflag to an appropriate number. i keep a 10GiB cache around; i can blow away the webkit tree and start completely fresh, apply my in-progress patchsets, and have a working package in ~2 minutes (normally a 3+hr build).
Thanks C Anthony, It's the alphabet soup on top of the union filesystem and separate rw layer concepts that has my eyes rolling back in my head at the moment :) (re-reading the paragraphs for a 2nd time hoping it will all sink in) OK, so what your are saying is that after I make friends with the snapshot concept (whether DM, btrfs, overlayfs, etc...) I can basically keep snapshots of different build 'points' in cache and switch back and forth relatively easily once I learn how -- right? So if I have one set of Trinity packages based on Qt3 and another set based on TQt3, I can pickup building at the last good point of progress in either set by configuring the snapshot I need to create that environment? Like if I have built the dependencies through the snapshots below: Trinity/Qt3 Trinity/TQt3 Arts Arts Dbus Dbus caldav caldav ... ... tdelibs (cache snapshot A) tdelibs tdebase (cache snapshot B) I could then configure the chroot to switch back to 'cache snapshot A' and continue building on Trinity/Qt3 at that point after I had saved snapshot B and reverted to the A cache? Would you happen to have a favorite link to a page that might help me get a bit smarter on this? :) -- David C. Rankin, J.D.,P.E.