Project

General

Profile

Actions

Wiki

Welcome to the vanilla wiki!

Introduction

What is vanilla?

It's a new Linux distribution targeting technical and/or experimented users who like simplicity, consistency and elegance.

Goals and non goals

  • No systemd. Systemd isn't a bad thing in itself, but it's too complex to be qualified as KISS.
  • No installer. Installers are too complex, error prone and not enough flexible. The key idea is to use the tool vboostrap to install a set of packages to the target device.
  • Flexibility. The vanilla source tree allow package customization with ease.
  • Stability. Fixed version with ABI/API compatibility honored.
  • Weak dependencies. The vpk tool installs dependencies by default but let user process dependencies manually.
  • Elegance. All vanilla applications, init scripts and package paths are following a strict coding style and UX style.
  • Simplicity. Packages are simple tarballs and inspected via simple text files.
  • Free and opensource. The vanilla source tree does not contain proprietary software. All vanilla sources are written using the permissive ISC license.
  • Pure shared libraries. No static libraries are built nor libtool .la files are installed.
  • Vanilla. Packages are kept as close as possible to upstream with no or few changes for compatibility only.

Technologies

Core components:

  • musl a clean and lightweight C library
  • llvm modular toolchain for several languages including C, C++
  • sysvinit an old fashion traditional init system
  • linux obviously the Linux kernel
  • wayland better focus on wayland for a long-term replacement to X.Org (X.Org is shipped though)

Miscellaneous components:

Features (package options)

Common features in Vanilla packages.

  • Access control lists (ACL): enabled by default
  • Native language support (NLS): enabled by default
  • SELinux (SELINUX): disabled by default
  • PAM (PAM): enabled by default

Repositories

Mailing lists

To subscribe, send a mail at "listname+subscribe@domain".

Roadmap

  • 0.1 (May 1): Highlight: bootable system with core components
    • vpk: install with remote support [done]
    • vpk: remove [done]
    • vpk: update [done]
    • vpk: build [done]
    • vpk: list [done]
    • vpk: info [done]
  • 0.2 (June 1): Highlight: X.Org and wayland support
    • vpk: install with dependencies and checksums
    • vpk: upgrade
    • vpk: tag/untag
    • PAM support [in progress]
    • New filesystem hierarchy (see FHS)
  • 0.3 (September 1): Highlight: XFCE and MATE desktops
    • vinitrd: create and list initramfs
  • 0.4 (December 1): Highlight: vpod
    • vpod: bulk
    • vpod: test
    • vpod: shell
  • 0.5 (January 1, 2020): Highlight: KDE Plasma desktop
  • 0.6 (February 1, 2020): Highlight: Public website available
    • File hierarchy is ready for public downloads
    • Documentation is complete
      • Manpages: vpk, vinitrd
      • Vanilla book
  • 0.7 (March 1, 2020): Highlight: full initramfs support
    • LVM2 support
    • RAID support
    • LUKS support
  • 1.0 (May 1, 2020): Highlight: First stable release

Ideas

Documentation

See READMEs in repositories. Upcoming documentation in the wiki.

About vanilla

Other

Thanks

Many thanks for people who were involved from near and far to vanilla.

  • musl community: help when packages use GNU extensions
  • LLVM community: helped me bootstrapping, building the toolchain
  • LFS community (including French variant): helped me a lot in several aspects
  • Alpine Linux community: trying to fix broken packages with musl

Individuals:

  • Quentin Rameau for giving some feedback and hints
  • Stéphane Pequignot for its interest and contributions
  • Michaël Scherer for various help

Updated by David Demelier 2 months ago · 61 revisions