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).
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_1linux5.15>=5.15.201_1linux6.1>=6.1.127_1linux6.6>=6.6.68_1linux6.12>=6.12.7_1linux6.18,linux6.19, or any later versionrpi-kernel>=6.12.67_1pinephone-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 withENODEV(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 withXBPS_FLAG_INSTALL_AUTOwhere 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--installedalso 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-cacheflag twice. #530 duncaen -
xbps-query(1):--catnow works in either repo or pkgdb mode. duncaen -
xbps-query(1):--list-repos/-Llist 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): addXBPS_SYSLOGenvironment 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--stagingflag,XBPS_STAGINGenvironment variable andstaging=true|falseconfiguration 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.sig2extension. #565 classabbyamp -
xbps-uhelper(1): add verbose output forpkgmatchandcmpversubcommands if the-v/--verboseflag is specified. #549 classabbyamp -
xbps-uhelper(1): support multiple arguments for many subcommands to improve pipelined performance. #536 classabbyamp -
xbps-alternatives(1): Add-R/--repositorymode to-l/--listto 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: thepreservepackage metadata is now also respected for package removals. duncaen -
xbps-pkgdb(1): new--checksallows to choose which checks are run. #352 ericonr, duncaen
Full Changelog: https://github.com/void-linux/xbps/compare/0.59.2...0.60
