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 Mastodon, visit the #voidlinux IRC channel on libera.chat, 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

void-packages pull requests

xbps changes


March 10, 2026

Changes to linux-firmware may require manual intervention

To reduce installation size, firmware provided by linux-firmware is now compressed with zstd. Ensure you are running a supported kernel when updating to linux-firmware-20260309_1 or later:

  • linux5.10>=5.10.251_1
  • linux5.15>=5.15.201_1
  • linux6.1>=6.1.127_1
  • linux6.6>=6.6.68_1
  • linux6.12>=6.12.7_1
  • linux6.18, linux6.19, or any later version
  • rpi-kernel>=6.12.67_1
  • pinephone-kernel>=6.1.7_2

If you cannot run one of these kernels, you can hold the linux-firmware packages at their currently-installed version:

# xbps-pkgdb -m hold linux-firmware linux-firmware-amd linux-firmware-broadcom \
    linux-firmware-intel linux-firmware-network linux-firmware-nvidia linux-firmware-qualcomm

June 14, 2025

XBPS 0.60

What’s Changed

  • libxbps: fix issues with updating packages in unpacked state. duncaen

  • libxbps: run all scripts before and after unpacking all packages, to avoid running things in a half unpacked state. duncaen

  • libxbps: fix configuration parsing with missing trailing newline and remove trailing spaces from values. eater, duncaen

  • libxbps: fix XBPS_ARCH environment variable if architecture is also defined in a configuration file. duncaen

  • libxbps: fix memory leaks. ArsenArsen

  • libxbps: fix file descriptor leaks. gt7-void

  • libxbps: fix temporary redirect in libfetch. ericonr

  • libxbps: fix how the automatic/manual mode is set when replacing a package using replaces. This makes it possible to correctly replace manually installed packages using a transitional packages. duncaen

  • libxbps: fix inconsistent dependency resolution when a dependency is on hold. xbps will now exit with ENODEV (19) if a held dependency breaks the installation or update of a package instead of just ignoring it, resulting in an inconsistent pkgdb. #393 duncaen

  • libxbps: fix issues with XBPS_FLAG_INSTALL_AUTO where already installed packages would get marked automatically installed when they are being updated while installing new packages in automatically installed mode. #557 duncaen

  • libxbps: when reinstalling a package, don’t remove directories that are still part of the new package. This avoids the recreation of directories which trips up runsv, as it keeps an fd to the service directory open that would be deleted and recreated. #561 duncaen

  • xbps-install(1): list reinstalled packages. chocimier

  • xbps-install(1): in dry-run mode, ignore out of space error. chocimier

  • xbps-install(1): fix bug where a repo-locked dependency could be updated from a repository it was not locked to. chocimier

  • xbps-fetch(1): make sure to exit with failure if a failure was encountered. duncaen

  • xbps-fetch(1): fix printing uninitialized memory in error cases. duncaen

  • xbps-pkgdb(1): remove mtime checks, they are unreliable on fat filesystems and xbps does not rely on mtime matching the package anymore. duncaen

  • xbps-checkvers(1): with --installed also list subpackages. chocimier

  • xbps-remove(1): fix dry-run cache cleaning inconsistencies. duncaen

  • xbps-remove(1): allow removing “uninstalled” packages (packages in the cache that are still up to date but no long installed) from the package cache by specifying the -O/--clean-cache flag twice. #530 duncaen

  • xbps-query(1): --cat now works in either repo or pkgdb mode. duncaen

  • xbps-query(1): --list-repos/-L list all repos including ones that fail to open. chocimier

  • xbps.d(5): describe ignorepkg more precisely. chocimier

  • libxbps, xbps-install(1), xbps-remove(1), xbps-reconfigure(1), xbps-alternatives(1): add XBPS_SYSLOG environment variable to overwrite syslog configuration option. duncaen

  • libxbps: Resolve performance issue caused by the growing number of virtual packages in the Void Linux repository. #625 duncaen

  • libxbps: Merge the staging data into the repository index (repodata) file. This allows downloading the staging index from remote repositories without having to keep the two index files in sync. #575 duncaen

  • xbps-install(1), xbps-query(1), xbps-checkvers(1), xbps.d(5): Added --staging flag, XBPS_STAGING environment variable and staging=true|false configuration option. Enabling staging allows xbps to use staged packages from remote repositories. duncaen

  • xbps-install(1), xbps-remove(1): Print package install and removal messages once, below the transaction summary, before applying the transaction. #572 chocimier

  • xbps-query(1): Improved argument parsing allows package arguments anywhere in the arguments. #588 classabbyamp

  • xbps-install(1): Make dry-run output consistent/machine parsable. #611 classabbyamp

  • libxbps: Do not url-escape tilde character in path for better compatibility with some servers. #607 gmbeard

  • libxbps: use the proper ASN1 signature type for packages. Signatures now have a .sig2 extension. #565 classabbyamp

  • xbps-uhelper(1): add verbose output for pkgmatch and cmpver subcommands if the -v/--verbose flag is specified. #549 classabbyamp

  • xbps-uhelper(1): support multiple arguments for many subcommands to improve pipelined performance. #536 classabbyamp

  • xbps-alternatives(1): Add -R/--repository mode to -l/--list to show alternatives of packages in the repository. #340 duncaen

  • libxbps: fix permanent (308) redirects when fetching packages and repositories. duncaen

  • xbps-remove(1): ignores file not found errors for files it deletes. duncaen

  • libxbps: the preserve package metadata is now also respected for package removals. duncaen

  • xbps-pkgdb(1): new --checks allows to choose which checks are run. #352 ericonr, duncaen

Full Changelog: https://github.com/void-linux/xbps/compare/0.59.2...0.60