[plug] Bitrot

Adrian Chadd adrian at creative.net.au
Sun Dec 23 19:03:41 WST 2007

On Sun, Dec 23, 2007, Shayne O'Neill wrote:
> Its a bizare argument. If its FOSS, make sure a copy of the sourcecode for 
> the original software is saved.

Its not as easy as that.

Almost all FOSS runs on operating systems and uses libraries, unless you're
an OS.

Almost all FOSS requires some other bit of software to compile, interpret
or pick some other method of running it.

And I'm pretty sure all the FOSS in existance today runs on hardware
which is a hybrid of open and closed.

The trouble is this; what copies of the sourcecode do you need to actually
run your application in the future?

You store a copy of the sourcecode to the application - which at least
documents the file format, but does it? What if you're using a library
to handle your data, and its open source? You need to keep that.

Thats good enough as a platform to understand the file format and thats
a good start. Now, if you want to rebuild the application in the future,
you need to have a copy of the environment it runs in.

Ok, an exercise here - how many modern C/C++ compilers will compile GCC
specific code from pre 2.95.X days? C - maybe. C++, almost no chance.
So if you want to rebuild the whole application you need to have:

* the application;
* the libraries the application uses;
* the compiler suite the application uses;
* the dependencies from -those-;
* the operating system code;
* and the depedencies which that requires;

.. start to see the difficulty? :) Lets not talk about hardware to read
backups or deal with old hardware. I'm sure some people here have a
story or two to talk about old hardware which is still in use but
last shipped with drivers for Linux 1.2.13...

(CS homework; think about how to bootstrap a compiler.)


More information about the plug mailing list