Added by David Demelier about 1 month ago

With a very strong sad decision, I'm announcing the immediate stop of Vanilla Linux distribution.

While this project has ambitious goals, it is too hard and different taking too much time to achieve a decent stable version. Large amounts of packages require dozens and dozens of patches because upstream developers usually think Linux = GCC/glibc. Also, the lack of individual interest and absence of contributions also have impacts on the development.

This project was very interesting and still proves that LLVM/clang is a interesting alternative but in my opinion we will be unable to deliver a Linux distribution based on it by default in a decent amount of time.

For those who were interested in the distribution and gave lot of feedback, I'd like to thank them a lot!

Note: the redmine project will be deleted starting from March, 01 (as the first announcement, mostly). Mercurial repositories remain indefinitely but will be hidden in the home listing.

LLVM 9.0.0 toolchain available

Added by David Demelier 4 months ago

The toolchain LLVM 9.0.0 has been successfully upgraded for Vanilla Linux. This makes Vanilla Linux one of the first distributions to provide it.

What's most exciting feature is the ability to build the Linux kernel with clang.

The current repository will be updated once the final passes of LLVM 9.0.0 have been fully rebuilt along with musl and busybox. Stay tuned.


Added by David Demelier 5 months ago

Vanilla Linux 0.2.0 is now available for download.

About this release

This version adds many new packages with now a total of ~830 packages.

Notable additions:

  • A large amount of KDE frameworks were incorporated.
  • Most of the programs that are PAM compatible have appropriate working configuration files.
  • The complete aspell package list has been added.
  • A large amount of libretro and RetroArch packages has been added.
  • More audio and video codecs.
  • A web browser is now available based on webkit2gtk: midori.
  • Almost all Qt 5 modules are available.

Notable changes:

  • The new FHS, Vanilla Linux no longer follow the LSB recommandation and has a simpler hierarchy. No /usr/bin, /usr/sbin or /sbin, everything is in /bin.
  • LibreSSL replaced OpenSSL.

Improvements to vpk

Here is a list of changes to the Vanilla Linux vpk package manager.

  • Support of dependencies. This is still considered experimental and some packages may have forgotten dependencies yet. This will be fixed properly in 0.3.0. For now, please verify if there are missing dependencies after installation.
  • A new vpk add command that install local packages without dependencies, mostly used for scripting.
  • After installation of packages, vpk will print:
    • package message if specified (install bluez for example).
    • protected files that need update (install etc package, edit one the files it provides, then reinstall etc for an example).
  • The vpk build now build either only the binary or only the source package if one of -s or -b was specified.
  • An experimental command vpk bulk that download the source package and rebuild their dependencies and the package itself in a clean chroot.
  • Several predefined hooks are installed and ran after installation of packages (fontconfig, gtk-update-icon-cache and update-mime-info).
  • Minor performance improvements
  • The option -r was removed from every command. In contrast to the 0.1.0 release, the recommended way to download and use Vanilla Linux is to extract the minirootfs file instead. See below.


Download the minimal image and extract it under a subdirectory.


$ mkdir vanilla-0.2.1
$ cd vanilla-0.2.1
$ wget
# tar xvJpf Vanilla-Linux-0.2.1-amd64-minirootfs.tar.xz
# cp /etc/resolv.conf etc/
# mount --rbind /dev ./dev
# mount --make-rslave ./dev
# mount --rbind /sys ./sys
# mount --make-rslave ./sys
# mount --rbind /proc ./proc
# mount --make-rslave ./proc
# chroot . env -i sh -l
# export TERM=xterm-256color (recommended)
# export PATH=/bin:/local/bin
# vpk search supertux

Upcoming for 0.2.0

A XFCE desktop bootable QEMU image with will be created and uploaded once ready in the, stay tuned.

What's next for 0.3.0

The main priority for 0.3.0 is to consolidate existing packages and make sure they are the cleanest and well configured. The key idea is to finalize the vpk bulk command and start using it for every new package. Also, this command will verify the built package to make sure no dependencies are missing after installing it.

The most important feature planned is the vpk upgrade command. For now, there is no way to upgrade packages because I spend much more time adding new packages than updating existing. But it's time to incorporate this major command since its one of the last important bits to add to it.


Added by David Demelier 11 months ago

Vanilla Linux 0.1.0 is now available for download.

About this release

This version includes vpk 0.1.0 which supports:

  • Building packages vpk build,
  • Downloading packages, source packages and distfiles vpk download,
  • Installing packages (no dependencies yet) vpk install,
  • Removing packages vpk remove,
  • Querying package list vpk list,
  • Querying package information vpk info,
  • Updating manifest file vpk update.

The vanilla sources contain around 300 packages with several options.

As bootloaders, grub and efibootmgr are provided, lilo is available too but fails to run on my system.

No Linux kernel is provided yet so you will need to build it yourself for the moment.

Even though planned for 0.2.0, most of the X.Org distribution and wayland packages are already available for download!


To install in a chroot or a directory (/tmp/vanilla in this example):

Warning: make sure you don't forget -r option otherwise you'll override your running system!

First, install vpk on the host. Use 0.1.0 version because the package format has changed.

# wget
# tar xJf vpk-0.1.0.tar.xz
# make -C vpk-0.1.0 install

Install filesystem, etc in this explicit order.

# vpk update -r /tmp/vanilla
# vpk install -r /tmp/vanilla filesystem
# vpk install -r /tmp/vanilla etc

Then, install some core packages.

# vpk install -r /tmp/vanilla bash ncurses readline musl gettext zlib coreutils libcap acl attr
# vpk install -r /tmp/vanilla llvm clang lld libc++ libc++abi libunwind compiler-rt

Then you can chroot, first make sure /dev, /sys and /proc are mounted.

# mkdir -p /tmp/vanilla/{dev,sys,proc}
# mount --rbind /dev /tmp/vanilla/dev
# mount --make-rslave /tmp/vanilla/dev
# mount --rbind /sys /tmp/vanilla/sys
# mount --make-rslave /tmp/vanilla/sys
# mount --rbind /proc /tmp/vanilla/proc
# mount --make-rslave /tmp/vanilla/proc
# chroot /tmp/vanilla env -i bash --login
# export PATH=/usr/bin:/usr/sbin

Now, you're also be able to compile and build a program using clang and clang++. In the latter case, it will link against libc++, libc++abi and libunwind.

Notable packages:

  • vim 8.1
  • gcc 8.3.0
  • llvm 8.0.0 (with lld, clang, compiler-rt, libc++, libc++abi, libunwind)
  • bash 5.0
  • coreutils 8.30
  • cmake 3.13
  • mercurial 4.9
  • wayland 1.16
  • weston 5.0.0
  • mesa 18.3.5
  • gtk 3.24
  • musl 1.1.21
  • ncurses 6.1
  • perl 5.28
  • python 3.7 and 2.7
  • xorg-server 1.20

    Also available in: Atom