Hello there, Having yet another hard disk crashed today, I started feeling unlucky and decided to commit this thing before my modifications also get lost ;-)
The set of patches commited to the CVS allows one to compile programs against /System/Index using a new parameter to ChrootCompile, '--new-names'. When given that option, the generated tree uses that hierarchy, union-linking chrooted programs' contents inside /System/Index, much faster than using LinkOrExpandAll. A new script named UnionSymlinkProgram has been added to perform this task. Currently, UnionSymlinkProgram depends in UnionFs 1.x, which unfortunately isn't available for newer kernels. Their development branch, 2.x, is slowly merging features such as dynamic manipulation of branches (unionctl --add/--remove) so that these options can be passed directly in the mount command instead. It looks like they've already started working on this, so maybe in one or two weeks we'll have that integrated to the Linux recipe. Ok, on to the problems: being a real file system, UnionFS has some limitations for us. Since it has its own cache mechanism internally to the file system, one is only allowed to perform writes directly in the mount point, or else cache coherency problems can appear and make some damage to the files (currently they let the kernel to oops when such situation is going to happen). In practice, this means that if we have /Programs/Foo/1.0 and /Programs/Bar/2.0 mounted in the top of /System/Index, one cannot modify files directly in /Programs/{Foo/1.0,Bar/2.0}. Since this is a big limitation here, we have two possibilities: 1) Work in the UnionFS code to implement an option to disable its cache in the mount command; 2) Switch to a userspace implementation based on FUSE. Being in the top of a unique real files system, such alternative doesn't suffer from that problem. I don't have any real preference here. I was going to work a little bit with some FUSE variants today, but as my hard disk crashed at work I wasn't able to do that -- and probably won't be until the end of the week, except for the time dedicated in the night. I'm pretty much inclined to take a look at the UnionFS code, so if anyone have the time I would appreciate some tests with FUSE alternatives, such as performing big mounts of everyone at /Programs in a unique place and do some read/write/find there. These two implementations seems to be interesting, and probably deserve some testing: http://funionfs.apiou.org/ http://podgorny.cz/moin/UnionFsFuse Thanks, -- Lucas powered by /dev/dsp _______________________________________________ gobolinux-devel mailing list gobolinux-devel@lists.gobolinux.org http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel