On Sat, Jan 23, 2010 at 9:59 PM, Aaron Griffin <aaronmgriffin@gmail.com> wrote:
On Sat, Jan 23, 2010 at 7:29 PM, Allan McRae <allan@archlinux.org> wrote:
On 24/01/10 09:08, Pierre Schmitz wrote:
Hi devs, <snip>
This can be easily done by changing this in makechrootpkg:
mount -t aufs none -o "dirs=$chrootdir/$LAYER=rw:$chrootdir/root=ro" "$uniondir"
to
rsync -a --delete --progress -h -c -W "$chrootdir/root/" "$uniondir"
<snip>
You get a +1 from me for the idea. But looking at the rsync line, I think that this will not work if I use makechrootpkg with "-- -i" to install a package then use it without "-c" to build on top of that? I guess we should not do the rsync if "-c" is not specified.
I'm fine with this approach. aufs was used originally (well, unionfs) because it was a cheap way to say "don't break this chroot". Copying is fine.
BUT (there's always a but), some systems are size restricted. For instance, slicehost slices have very limited disk space, so copying the chroot to do this has potential to cause issues. I don't like special case code for shitty systems, but perhaps we could keep both aufs and rsync code in there, enabled by a command line switch? (-U use a union (aufs) to keep chroot clean [DEPRECATED])
How many people are building clean packages on a size-restricted system? I'm guessing this is an edge case where you might be one of the few exceptions. -Dan