Glossary: CSCRATCH

# CSCRATCH

## update

2008-April-5
CSCRATCH has gotten a major update. With a current GLIBC it is now fully self-hosting. (Used to have to borrow '`ldconfig`' from another system.) We're leveraging the /usr/opt scheme to bootstrap fresh builds without losing the the in-place capability. Adding /usr/opt gives relocating build capability.

## CSCRATCH

Q: What is "CSCRATCH"?
A: CSCRATCH is just a contraction, "Casita Scratch".
It is one of several "from scratch" Linux build schemes.
Pay attention to such things as "Linux from scratch".

Important note: While CSCRATCH tries to fill the "Linux from scratch" roll, it is not limitted to Linux. (It has been used partially on FreeBSD.)

CSCRATCH is usually available from La Casita at

> http://www.casita.net/pub/cscratch/

Q: If there is "Linux from scratch", why this too?
A: I had to.
Really, there was a need to do it for work, and I had wanted to do it personally for several years.
So I've done this twice: one scheme for work (BSCRATCH) and one independent scheme at home (CSCRATCH). (CSCRATCH actually began first; the alphabetical precedence of BSCRATCH is just a concidence.)

But more than just the exercise, the goal of this project is to stay as close as possible to the original Internet sources for all packages. All distributions, even Debian (as re-doable as it is), have their own substantial modifications to the package sources. CSCRATCH (and BSCRATCH as well) has few or none. Here we stray a little from LFS.

Given a working system, you can replace it with fresh and/or updated packages from source using CSCRATCH.

## BSCRATCH

There were two different builds: CSCRATCH and BSCRATCH.
Then BSCRATCH got a better name. BSCRATCH is the scratch Linux build I did for work. The two are really quite different. But they both get as close to the Internet source as possible. And then I had to leave BSCRATCH with that employer.

This is about freedom, reference, flexibility.

## Details

in-place versus relocating
CSCRATCH replaces components as they are built, ultimately replacing the host system.

native versus cross
CSCRATCH is a native build.
It does not use "cross compilation". You have to start with a working Linux.

infrastructure versus simplicity
While even the most strongly source oriented distributions have some infrastructure, even heavy infrastructure, CSCRATCH does not. You just download it and start building.

monolithic versus modular
Both CSCRATCH and BSCRATCH have modular and monolithic areas.
BSCRATCH is monolithic in that it has a single makefile.
CSCRATCH is modular in the build logic ('`make`').

> | BSCRATCH | CSCRATCH | LFS
> build type | relocating | in-place | relocating
> build logic | one `makefile` | multiple embedded | architected
> | native | native | cross capable

CSCRATCH tries to stick as close as possible to the standard Internet build recipe:

> download |
> convert | (if needed)
> rename | (if needed)
> extract |
> configure | `./configure`
> build | `make`
> install | `make install`

updated 2008-Apr-5 by RMT