an experimental distribution based on musl libc and busybox
Pull request Compare This branch is 3477 commits behind sabotage-linux:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
KEEP
installer
pkg
tarballs
utils
.gitignore
COOKBOOK
LICENSE
README
THANKS
build-stage
enter-chroot

README

This is sabotage, an experimental distribution based on musl libc and busybox.
Currently sabotage supports i386 and x86_64, and ARM.

Requirements:
- ~4G free disk space
- root access
- usual GCC 4 toolchain
- git
- a bootloader of your choice (extlinux is favored)
- lots of time and a fair bit of Linux knowledge

This system has been built on up-to-date Debian, Ubuntu, Suse, Gentoo, Exherbo and Arch systems.

You can bootstrap your own build from the scripts at 

               https://github.com/rofl0r/sabotage

or use a ready-to-boot disk image either for netinstall or with sets
included (put it on an USB stick, burning a CD will not work), to be
found at:

           http://mirror.wzff.de/sabotage/

You also can netboot the install kernel directly (use pxelinux from
somewhere).

READ THE COOKBOOK FIRST.

Build instructions:  Caveat emptor, this is all pre-alpha!
DO NOT RUN SCRIPTS YOU HAVE NOT READ.

% cp KEEP/config.stage0 config
% vi config
  $K  directory with patches
  $S  where sources are compiled (stage0: ~700MB, stage1: ~2.1GB)
  $R  root file system

% . ./config       # required!

% ./build-stage 0  # build toolchain (~2min on an AMD FX 8core, 75min on ARM Cortex A8 800Mhz)
% ./enter-chroot   # enter $R chrooted, needs root password
% cd /src
% vi config        # set your MAKE_THREADS, etc
% . config
% butch install stage1
% butch install xorg

etc.. you can look around in /src/pkg to see which additional useful
packages you can find... install them using butch, i.e.
% butch install nano
% butch install gdb

copy $R to a ext4 file-system
# extlinux -i $R/boot

# butch install pkg           # additional stuff
# butch install  xorg          # build X.org

Run "butch" and look at the usage information it outputs for further options.
butch uses build templates, please take a look at KEEP/butch_template_configure_cached.txt
to see how it works.

The default root password is "sabotage".


*** SABOTAGE IN USERSPACE or "Co-Musl" ***
this is another mode that lets you use sabotage packages in a custom prefix.
(for usage parallel to an existing system, without chroot.)
this mode is not heavily optimized or tested, and builds some stuff that is not really
necessary. however its quite handy to use sw on an existing system without having to
use a chroot.

  cp KEEP/config.local .
  nano config.local # edit paths
  . ./config.local
  ./build-stage u

  # after finished, you can 
  cd $R
  export PATH="$R/bin:$PATH"
  butch install ncurses nano etc etc


NOTE TO CONTRIBUTORS
if you want to add packages, start from KEEP/package.template .
please do not use HTTPS or FTP mirrors.
HTTPS is unsupported by busybox wget, and FTP is a broken protocol from the 70ies
which needs a second data connection (i.e. open port on the client).
this prevents FTP from working when behind a NAT router or socks proxy.
Downloads from git or other source repositories is an absolute no-go.

please use unified diff format  (diff -u) for patches, as this usually allows
to use the same patches on newer versions as well.

since sabotage ships all tarballs when an ISO or HD image is distributed (to
fulfill the GPL), space considerations are a top issue.
so if available, ALWAYS USE a TAR.XZ (preferred) or TAR.BZ2 download URL.
in the former case, xz has to be added to the [deps] section.

it is recommend that you create a git branches for your work:
this allows me to checkout your changes and rebase as i see fit,
and you can easily pull back into your master without getting merge conflicts.


CONTACT
There is a mailinglist sabotage@lists.openwall.com, mail
sabotage-subscribe@lists.openwall.com and follow instructions to get
on it.  Archives are at http://openwall.com/lists/sabotage/
You can also /join #musl on irc.freenode.net for realtime help.