On Thu, 15 Dec 2005, Dan Nicholson wrote:


It sounds like Ken's scripts do a great job of doing the comparison.
What I like about Greg's scripts is deciding what's being compared.

1.  The build automatically loops to the beginning, skipping the first
few stages: create symlinks, create devices, mount file systems,
create directories, etc. for all but the first iteration.


That's my prime objection to Greg's method - we always tell people fbbg, but the comparison takes a shortcut.

2.  For all stages he stops short of installing many of the custom
configuration files like /etc/profile, /etc/fstab, etc.  Keeps the
building environment consistent.  This is what I like better than what
Ken's tool does.  I'm not sure how it removes the variables of kernel,
modules, env vars, etc.


Useful, if all you want to do is test it. For me, knowing that a new build boots (and therefore has enough of blfs for me to use it, e.g. dhcp, nfs, ssh) is always a good sign. These files are what I called 'policy' earlier. If you want to use similar buildscripts to only install certain files, or a script to sed the lists of files to compare, farce won't complain.

Kernel modules might match, or they might differ, or not be present. I'm trying not to be prescriptive in how farce is used - if these do differ, I expect the builder will know why, and therefore recognise that they changed the .config, or the kernel version. The compressed bzImage is a different matter - I skip that because compiling the same source at a different time will change the date/time which is in the text, and therefore the size of the compressed file can change.

I'm unclear what changing environment variables is likely to do to an LFS build ? In practice, either the environment is created during the build (e.g. new .bashrc), or a builder probably has a standard pre-existing environment.

For the kernel, apart from not trying to look at differences in bzImage/vmlinuz I just change known kernel version formats into tokens in my infamous regexes. For example, lots of the perl files are actually text telling you the kernel version and date/time when it was compiled. Change these to tokens for known format permutations and you don't lose any information. Yes, if you decide to start building in a different locale, this might alter what goes into the text, and perhaps put it into a different format - if that happens, farce should give you enough information to see which formats changed.

Most of this should be reasonably clear from looking at the code (it's only two scripts), although the perl regexes are probably a hard slog when you first meet them.

3.  Copies only the necessary files to a temporary location
immediately after the build completes.  This is more trivial, but it
safeguards you against accidentally making an unalterable change on
your system later.

That _is_ an advantage - lesstif from blfs overwrites a man page from perl (not checked recently, but it used to), which I only noticed when I compared a full system against the minimal system it had built. With farce you can compare as little, or as much, as you wish (subject to adding to expected differences for new file types such as Python code, and new regexes) - it doesn't need a full build, it should be usable for arbitrary packages, and you can use your own buildscripts.

Ken
--
 das eine Mal als Tragödie, das andere Mal als Farce
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to