mrrl

Minimal Reliable Reproducible Linux
git clone https://ccx.te2000.cz/git/mrrl
Log | Files | Refs | Submodules | README

README (1888B)


      1 Minimal Reliable Reproducible Linux
      2 ===================================
      3 
      4 Intent of this project is to build robust, minimal Linux-based system that is
      5 just enough to boot, start some containers (via unshare and pidns patch to s6),
      6 and rebuild itself.
      7 
      8 It should be fully compatible with installation as a software overlay over
      9 existing Linux distributions.
     10 
     11 The robustnes should come from two design decisions:
     12 * packaging simple software that does it's job right
     13 * using filesystem layout that supports fully parallel installation with atomic
     14   switchover
     15 
     16 See:
     17 * https://ccx.te2000.cz/stagit/pthbs/ for package manager code
     18 * https://ccx.te2000.cz/stagit/pthbs_genpkgpy/ for package generator
     19 
     20 Requirements
     21 ------------
     22 
     23 The bootstrap is done by compiling musl-cross-make.
     24 Ideally you should not need anything above requirements of that project but
     25 currently the reproducible build checks are implemented using explicit calls to
     26 busybox binary. (TODO: sandbox.py needs to be rewritten to C and bootstrapped)
     27 
     28 For regenerating the package build scripts from templates you will also need
     29 Python3 and Jinja2.
     30 
     31 Packages
     32 --------
     33 
     34 Packaged software
     35 ~~~~~~~~~~~~~~~~~
     36 
     37 * busybox
     38 * execline
     39 * gnu-make
     40 * mdevd
     41 * musl-cross-make
     42   * including gmp, intl, mpc, mpfr, zlib
     43 * s6
     44 * s6-dns
     45 * s6-linux-init
     46 * s6-linux-utils
     47 * s6-portable-utils
     48 * s6-rc
     49 * skalibs
     50 * popt
     51 * m4
     52 * flex
     53 * bison
     54 * patch
     55 * diffutils
     56 * netbsd-curses
     57 * s6-networking
     58 * libressl
     59 * curl
     60 * zsh
     61 * git
     62 * apk
     63 * xbps
     64 * zstd
     65 
     66 Work in progress
     67 ~~~~~~~~~~~~~~~~
     68 
     69 * versioned system configuration including init
     70   * statically link more modules
     71 * rsync
     72   * add acl and xattr support
     73 * linux
     74   * build fully-featured kernel for real hardware
     75 * libelf
     76 * consider openssl for env-specific certificate lists
     77 
     78 Planned packages
     79 ~~~~~~~~~~~~~~~~
     80 
     81 * TLS certificates
     82 * cgroup-tools (cgconfigparser)
     83 * libcap (execcap tool)
     84 * ... more iff needed
     85