Purity Iteration Analysis - the results are in..

James Smaby jsmaby at virgo.umeche.maine.edu
Sun Mar 23 18:00:18 PST 2003

Sounds good, but I have a few comments:

> To find out whether the idenified binary files are actually different or
> just have different date stamp info, do something like this:-
>   strings iter1/usr/bin/perl > 1
>   strings iter2/usr/bin/perl > 2
>   diff -u 1 2

What if there are several differences in that file, not just the date?
Should probably take a diff of a hexdump instead of a strings dump.
  xxd iter1/usr/bin/perl > 1
  xxd iter2/usr/bin/perl > 2
  diff -u 1 2
I found binary differences in files as well as text timestamps, so
it might be a good idea to check this out.  This is why I treated
binary files as text in my diffing (to make it easier).  The output
could be viewed with vim, or piped to cat -A to avoid screwing up
your terminal.

It's nice that you found that this works from a hacked up redhat-6.0;
I would also like to see if it works from something truely odd, like
a uClibc/icc system---or just something that's not glibc/gcc.  Of
course, it should also be tested with lfs-3.3, lfs-4.0, and lfs-4.1
since that's what hosts most people will be building lfs-5.0 from.

Now showing that a pure-lfs is self-replicating is one step; it's nice
and all to show that this is true for all kinds of different hosts, but
what I'm really interested in is if they converge to the same system.
Take the build from your redhat host, and compare it to something 
built from lfs, slackware, debian, etc.  If they all produce the same
system (I've got my fingers crossed), then I will be very happy.

There's that story from back in the Old Days when a programmer
introduced a backdoor into a computer's operating system.  He figured
that it would be easy to recompile the OS and get rid of the backdoor,
so he wrote the compiler so that when it saw it was building the OS,
it put in the hole.  He then wrote in code so that when the compiler
was compiling itself, it would do similar.  That meant that however
many times someone tried to build the compiler/OS, even modifying the
source code to try to get rid of the hole, it would still show up.

While this isn't something we necessarily have to worry about, it's
an example of how a self-consistant build is not necessarily pure.
Now it should be concievable to strip out all the timestamps, etc.,
and take a recursive md5sum of the system, then post that as what
all the files should be for a given arch (different between i586
and i686 even if no ops specified).  Of course, that kind of takes
all the fun out of building your own OS, since it requires that you
follow the instructions exactly, and not use your own opts, replacement
packages, newer bleeding edge versions, etc.

-James Smaby
Unsubscribe: send email to listar at linuxfromscratch.org
and put 'unsubscribe lfs-dev' in the subject header of the message

More information about the lfs-dev mailing list