Skip to content

kernelslacker/linux-historic-scripts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is the set of scripts that I originally wrote to create the
historic linux kernel tree at https://archive.org/details/git-history-of-linux

The various tarballs/patches live in dirs relevant to their versions
in the 'binaries' topdir. You will need to download them all from
kernel.org, and put them in a directory structure that looks like..

 0.x/
 1.0/
 1.1/
 1.2/
 1.3/
 1.99/
 2.0/
 2.1/
 2.2/
 2.3/
 2.4/
 2.5/
 2.6/

Changelogs where available, are pulled from the changelogs/ dir (or, for
2.5/2.6, from ChangeLog-* files alongside their binaries).

build.py is the top-level driver: `./build.py` runs the whole thing in
dependency order (use --dry-run first to see the plan). Under the hood each
branch still has its own untar-X.py / make-diffs-X.py / import-X.py trio, run
in that order, and branches must be done in order too since each one builds on
the previous branch's unpacked trees and git history:

untar-0.x.py     make-diffs-0.x.py     import-0.x.py
untar-1.x.py     make-diffs-1.x.py     import-1.x.py
untar-2.0.py     make-diffs-2.0.py     import-2.0.py
untar-2.1.py     make-diffs-2.1.py     import-2.1.py
untar-2.2.py     make-diffs-2.2.py     import-2.2.py
untar-2.3.py     make-diffs-2.3.py     import-2.3.py
untar-2.4.py     make-diffs-2.4.py     import-2.4.py
untar-2.5.py     make-diffs-2.5.py     import-2.5.py
untar-2.6.py     make-diffs-2.6.py     import-2.6.py

i.e. run all three untar-0.x.py/make-diffs-0.x.py/import-0.x.py before
moving on to the 1.x trio, and so on through 2.6 (build.py does exactly this
sequencing for you). 2.6 stops at 2.6.11.12, since the official upstream git
tree picks up from Linux 2.6.12-rc2.

The import stage builds the history directly at ./linux-git -- that's the
deliverable, whether you run import-X.py by hand or let build.py drive the
whole chain.

You will need approximately 37G of disk space for the whole process.

Helper scripts
--------------

build.py           Top-level driver for the untar/make-diffs/import pipeline.
                   Runs everything in dependency order; supports
                   --from-branch/--to-branch, --stage, --force/--strict and
                   --dry-run. Every stage skips work already on disk, so a run
                   is resumable.

check_binaries.py  Verify the downloaded binaries/ against the pinned
                   binaries.sha256 manifest before building (--update
                   regenerates the manifest). Catches a wrong or truncated
                   download up front instead of mid-build.

check_tables.py    Fast structural checks of the per-branch version tables
                   (references resolve, tag names unique, dates parse). Needs
                   no binaries; good as a pre-flight.

verify.py          After a build, extract each tag from the git repo and
                   compare it against the unpacked tarball tree it was built
                   from. Empty files (dropped by `git rm`) and binary files
                   (which textual diffs can't carry) are expected differences;
                   anything else is a real fidelity failure.

About

scripts to recreate a git archive of pre-git era kernel snapshots.

Resources

Stars

31 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages