void logo void logo

The Void (Linux) distribution

Void is a general purpose operating system, based on the monolithic Linux kernel. 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.

It is available for a variety of platforms. Software packages can be built natively or cross compiled through the XBPS source packages collection.

Follow us on Twitter, visit the #voidlinux IRC channel on irc.freenode.net, and join the Void Linux subreddit.

Visit the Void build server console for package build status updates.

Contribute to the Void Linux project by adding and updating packages and extending the documentation. More information can be found in the Handbook.


Not a fork!

Void Linux is an independent distribution, developed entirely by volunteers.

Unlike trillions of other existing distros, Void is not a modification of an existing distribution. Void's package manager and build system have been written from scratch.

Stable rolling release

Void focuses on stability, rather than on being bleeding-edge. Install once, update routinely and safely.

Thanks to our continuous build system, new software is built into binary packages as soon as the changes are pushed to the void-packages repository.

runit

We use runit as the init system and service supervisor.

runit is a simple and effective approach to initialize the system with reliable service supervision. Refer to the Void Handbook for an introduction.

C library diversity

Void Linux supports both the musl and GNU libc implementations, patching incompatible software when necessary and working with upstream developers to improve the correctness and portability of their projects.

XBPS

xbps is the native system package manager, written from scratch with a 2-clause BSD license.

XBPS allows you to quickly install/update/remove software in your system and features detection of incompatible shared libraries and dependencies while updating or removing packages (among others). Refer to the Handbook for an overview.

xbps-src

xbps-src is the xbps package builder, written from scratch with a 2-clause BSD license.

This builds the software in containers through the use of Linux namespaces, providing isolation of processes and bind mounts (among others). No root required!

Additionally, xbps-src can build natively or cross compile for the target machine, and supports multiple C libraries (glibc and musl currently).


void-packages changes

xbps changes


January 18, 2021

Upcoming glibc upgrade requires updates for other packages on 32-bit machines

Note: This only applies to users of Void’s glibc version on 32-bit machines. If the command xbps-uhelper arch prints something other than i686, armv7l or armv6l, like armv6l-musl, you don’t need to do anything.

Void Linux currently packages glibc version 2.30, but is going to update to 2.32 soon, together with the long awaited GCC 10. Since this new version makes use of new system calls, due to the ongoing time64 (support for times after 2038 on 32-bit platforms) work on glibc, applications with restrictive seccomp filters that haven’t been rebuilt for the new glibc version will stop working. Packages with such issues include:

  • openssh
  • firefox
  • chromium
  • qt5-webengine (and consequently dependants, such as qutebrowser)
  • electron* (and consequently dependants, such as element-desktop)

We will be pushing updates to these packages before the glibc update, if possible, but it won’t be possible for all of them. This includes openssh, which means you can be locked out of your system if that’s what you use to access it and you perform a partial upgrade that only includes the glibc package.

Therefore, even though Void enables partial upgrades, you should perform a full system upgrade when glibc appears in the xbps-install -Su list. Be sure to test these packages - for openssh this includes actually opening a session, since sshd itself runs without issue. If for some reason something in your system stops working, you can of course reinstall the old glibc package using xdowngrade(1) from the xtools package:

# xdowngrade /var/cache/xbps/glibc-2.30_2.x86_64.xbps /var/cache/xbps/glibc-locales-2.30_2.x86_64.xbps

If we missed some package with this issue, please let us know! You can open an issue on GitHub or ping us in the #voidlinux channel on https://freenode.net.

December 11, 2020

Upcoming PAM upgrade requires review of custom configurations

Void Linux currently packages PAM version 1.3.0 and, until today, a standard PAM configuration that requires the pam_tally and pam_lastlog authentication modules. The pam_tally module was deprecated in 1.4.0 and removed in 1.5.0, and the pam_lastlog module is no longer built for musl systems. The Void team plans to upgrade to PAM 1.5.1 by the end of the year.

For the upgraded PAM to function properly, any pam_tally (and, for musl users, pam_lastlog) requirements must be removed from the configuration files in /etc/pam.d. An updated pam-base package released today removes the pam_tally and pam_lastlog requirements from the standard configuration. If you have not modified the standard PAM configuration and have not enabled the XBPS keepconf option described in xbps.d(5), upgrading the pam-base package should be sufficient to adjust your configuration.

Whether or not you have modified the PAM configuration, please make sure to upgrade pam-base and confirm that no configuration files in /etc/pam.d contain references to the pam_tally module (and pam_lastlog on musl) before upgrading to PAM 1.5.1 when it becomes available.