A distro based on the xbps packaging system

The Void Linux distribution

Void is a general purpose linux distribution, meant to be used by advanced users. Its package system allows you to quickly install, update and remove software; software is provided in binary packages or can be built directly from sources with the help of the XBPS source packages collection.

The spirit of Void is such that we keep things default, necessary, and minimal as possible (while trying not to leave features out).

Currently there are over 4000 optimized packages for the x86, x86_64, ARMv6 hard float (Raspberry Pi), and ARMv7 architectures; also there's support to build (natively or cross compiling) from sources any package easily that is available in the XBPS source packages collection.



December 31, 2014

XBPS 0.43 is out

A new XBPS stable version has been released: 0.43. This is a minor release that contains some bugfixes.

Release notes:

  • pcc >= 1.1.0 is now a supported compiler.

  • xbps.d(5): the virtualpkg keyword now accepts pkgnames in the first component, to match any virtual package version. Example:


    would match any version of the virtual package foo to be resolved as bar.

  • libxbps: when resolving virtual packages in repositories, make sure to initialize pkgdb to match any virtualpkg declared there. Regression introduced in 0.42.

  • configure: build with -fstack-protector-strong if supported by the compiler, and fallback to -fstack-protector otherwise.

  • xbps-pkgdb(8): the packaged-with string obj is removed from pkgdb. Since 0.42 that object is unnecessary and is being obsoleted.

  • libfetch: fix races in the cache connection code.

Please report issues at https://github.com/voidlinux/xbps/issues.

I also want to give you best wishes for the upcoming year! Happy new year 2015!

-- Juan RP (void/xbps owner and developer)
December 29, 2014

Void Linux 31c3 talk

We are proud to announce that Gottox did a talk about The Void Linux project at the "Chaos Communication Congress" 31c3.

You should definetely watch the presentation if you're interested.

December 22, 2014

XBPS 0.42 is out

A new XBPS stable version has been released: 0.42. This is a major release that contains some new features and multiple bugfixes.

Release notes:

  • xbps-reconfigure(8): new option -i, --ignore to ignore packages while performing configuration of all packages with -a, --all. Fixes #67.

  • xbps-{install,query}: fix alignment in the column output mode when pkgname is shorter than 4 chars. Fixes #71.

  • xbps.d(5): new manual page detailing the configuration settings.

  • xbps-dgraph(8): added support to generate dependency graphs, repository mode, prints results to stdout, supports most of the options available in other utils, etc. This is now a first class utility.

  • xbps-{install,query}: added new option (-M, --memory-sync) to fetch and store remote repository data in memory. That means that synchronizing the repository archives with xbps-install -S is now completely optional. This also means that xbps-query(8) may be used by any user without the need to be the superuser to synchronize the repository archives.

  • xbps-{install,query}: added new option (-i, --ignore-conf-repos) to ignore repositories defined in configuration files (xbps.d). Only repos specified by the command line will be used (--repository).

  • Implemented issue #69 (No way to set globally a custom architecture) A new configuration keyword "architecture" has been added to override the native machine architecture (uname -m).

  • Fixed issue #68 "xbps_binpkg_arch() asserts if arch contains a dash".

  • xbps-query(8): added --cat=FILE mode to print FILE stored in a binary package to stdout. This works exactly as the --files mode: if the matching binary package is not available in the cachedir, xbps will establish a network connection to the target repository to get the contents of FILE on the fly.

  • Get rid of repodata index-files, that contained all pkg files of a repository in the archive. That file was so huge that increased the repository archive size by 8x. That means that xbps-query -Ro will now make N parallel connections to the remote server to inspect the binary packages remotely; if the binary package is in cachedir, no network connection to the remote server will be established. This reduces the size of the main x86_64 repository (4000 packages) to 700KB, compared to 4.5MB previously.

  • xbps-create(8): fixed issue #64 "xbps-create(8) incorrect installed-size with hardlinks".

  • Added a new configuration keyword bestmatching, which expects true or false and disabled by default. If enabled the pkg with the greatest version available in all registered repositories will be choosen, rather than the first package matching the expression. This keyword can be set in a configuration file.

  • xbps-rindex(8): added -d/--debug option.

  • utils: the -C/--config option now expects a path to a directory storing configuration files; if first character is not '/' it will be treated as relative to rootdir.

  • <sysconfdir>/xbps/xbps.conf is not longer installed, in fact there are no files installed anymore to sysconfdir. The xbps.conf file with everything commented out is now installed to <sharedir>/xbps.d/xbps.conf just as example.

  • Replaced config/system {preserve,repo,virtualpkg}.d directories with a single xbps.d directory that may contain configuration files of all kinds: general options, repositories, virtual packages, and preserved files. By default set to <sysconfdir>/xbps.d and <sharedir>/xbps.d:

    • /usr/local/etc/xbps.d <- configuration directory
    • /usr/local/share/xbps.d <- system configuration directory

    Files bearing the same filename in the configuration directory override those available in the system configuration directory.

  • Virtual packages are now collected directly from pkgdb, that means that installed packages do not need to have a virtualpkg configuration file in the system virtualpkg.d directory.

  • xbps-{install,remove}: implemented a column/wide output mode as requested in #63. If the terminal has enough columns it will use this and falling back to the previous mode otherwise.

  • libxbps: replaces the internal redundant dependency sorting step that was made in xbps_transaction_prepare() with a simple implementation that fixes 2 bugs and makes xbps 2x faster to resolve dependencies.

    Packages that don't have provides obj but were declared as virtual packages, were not detected correctly and lead me to rewrite this code.

  • Fixed issue #62 (Dup replaced pkgs in transaction).

  • If removing a package and euid==0 do not check for file owner, being root means that all files can be removed properly. This fixes package removal when some files were not owned by root, rather by a system account.

  • Fixed 65 issues found by Coverity scan. Defect density is now below 0.30 per 1000 lines of code.

  • Use atomic builtins if supported by the compiler in our portableproplib copy to handle object reference counting. This should be cheaper than using a mutex.

  • The manpages are now fully compliant with mdoc; thanks to mandoc -Wall.

  • Added support to run the testsuite in place, without the need to perform installation; use make check to run it.

Please report issues at https://github.com/voidlinux/xbps/issues.

December 05, 2014

ARM BeagleBone/BeagleBone Black platform support

The Texas Instruments BeagleBone / BeagleBone Black ARM platforms are now fully supported and a 2GB SD image as well as a rootfs have been created to use Void on them.

Thanks to a donation I've been able to test the hardware and merge the required changes to void-packages and void-mklive to generate the base platform package beaglebone-base.

As any other supported ARM platform, once booted, dhcpcd, ntpd and sshd are started automatically to be able to connect to it via ssh (log in as root, password voidlinux).

Check the downloads section to grab them!

December 03, 2014

New x86 live image flavours: E19, Mate and XFCE

It is my pleasure that from now on we'll start providing new x86 live images with various Desktop Environments for testing. Those images are also known as flavours:

  • Void live with Enlightenment (E19)
  • Void live with MATE
  • Void live with XFCE

Those images are generated automatically with the void-mklive script in 5 minutes and will be created periodically with updated packages thanks to our continuous package building available at http://build.voidlinux.eu.

The attached screenshot is my desktop with three flavours running at the same time via QEMU:

xtraeme desktop

Check the downloads section to grab them!

Don't forget to help us improving Void with your donations and/or contributions to the wiki, void-packages or any available repository.

Read the previous news

Download installable live images

Currently there are installable live images for the x86 and x86_64 architectures and there is support to make a local installation (with the included packages) or a network installation (packages are downloaded from official repository).

Log in as anon/root, password voidlinux.

To start the installer just execute the void-installer utility with enough permissions (i.e sudo).

Additional images with flavours are also available:


Download ready to boot images for ARM

The current list of supported ARM platforms is:

Install Void by using a prepared image or a rootfs tarball that can be written / unpacked onto the SD card. This method allows you to have a system ready to boot / use, once it's written / unpacked onto the target device.


Connect to it via ssh and log in as root, password voidlinux.

Source repositories

Find binary packages

Search for available binary packages in the official repository index matching simple keywords.

Latest package commits

See latest package builds.


Help Void!

Do you want to support Void Linux? Donations can be made via Flattr or Paypal.

Flattr this
Paypal icon
Additionally there are some goodies as well!

tshirts tshirts mug

bshirt1 bshirt2 bshirt3