A modern distro based on the xbps packaging system

The Void Linux distribution

Speed, reliability, and flexibility. That's the battle-cry of today's disgruntled computer geeks. This is what people want with a Linux distribution, and this is what Void Linux provides. With lightning-fast and useful tools such as the xbps package manager (among others), this distribution clearly has all your base, and they rightly belong to us.

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 3000 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 packages collection.

Features

News

XBPS 0.37 is out

A new XBPS stable version has been released: 0.37. This is a major release that supports per-root overridable repo and virtualpkg configuration files (among other things).

Release notes:

  • Enabled syslog logging by default, may be still disabled via xbps.conf.

  • Added support for system and configuration virtualpkg directories.

    The system virtualpkg directory set to <rootdir>/usr/share/xbps/virtualpkg.d contains virtualpkg configuration files (.conf/.vpkg) that can be overrided by the admin in <rootdir>/etc/xbps/virtualpkg.d bearing the same file name.

    This obsoletes the "virtualpkgdir" keyword support from the xbps configuration file.

  • Added support for system and configuration repository directories, as explained in GH #39.

    The system repository directory set to <rootdir>/usr/share/xbps/repo.d contains repository configuration files (.conf) that can be overrided by the admin in <rootdir>/etc/xbps/repo.d bearing the same file name.

  • xbps-create(8): new option -t, --tags to specify a list of tags (categories) the package should be part of. This is just for metadata purposes and querying packages by tags in the future.

  • xbps-install(8): it's possible now to update a single package (if it's already installed) without using the -u, --update option. This implements GH #35.

    $ xbps-install [-f] -y foo

    • if foo is installed, update it.
    • if foo not installed, install it.
    • if -f is set, reinstall or downgrade it.
  • xbps-query(8): new option (-S, --show) which shows info of a package installed locally or in a repository with -R. This is the default mode if no other mode is set; to preserve compatibility with previous versions.

  • xbps-query(8): new long option "--regex" that can be used in the "ownedby (-o, --ownedby)" and "search (-s, --search)" modes to match Extended Regular Expressions against package properties.

    This allows you to find packages by matching EREs in package properties, for example to find out what packages were built between 2014-05-23 and 2014-05-25:

    $ xbps-query --regex -s 2014-05-2[35] -p build-date

  • Imported portable proplib 0.6.4 from portableproplib.

  • Fixed a new issue with virtual packages, if a pkg provides a virtual package that is already installed but with lesser version, do not update to it unnecessarily (in some cases results in a crash).

  • A new object is now recorded in the pkgdb to see the origin repository of which a package was installed from, i.e:

    $ xbps-query --property=repository-origin pkg

  • xbps-remove(8): the -n,--dry-run option does not acquire the pkgdb file lock anymore, so that any user can use this mode even without write permission to the target pkgdb.

  • xbps-remove(8): -O, --clean-cache is now multithreaded. Gives a performance boost as the number of threads increases.

  • xbps.conf: the keyword "include" now supports file globbing, so that multiple small configuration files can be included directly, i.e:

    include=/etc/xbps/repo.d/*.conf

Contributed by Enno Boland.

  • xbps-query(8): fixed a segfault with '-Rf' if pkg is in the repository data and its binary package does not exist.

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

New package repositories

Starting from now on three new repositories to store binary packages have been created by default:

  • multilib: this repository contains 32bit packages, only meaningful for 64bit platforms.

  • multilib/nonfree: this repository contains non free 32bit packages, only meaningful for 64bit platforms.

  • debug: this repository contains debug packages with debugging symbols.

The URL for those repositories:

  • http://repo.voidlinux.eu/current/multilib
  • http://repo.voidlinux.eu/current/multilib/nonfree
  • http://repo.voidlinux.eu/current/debug

Also available on any of the mirrors listed in the xbps.conf configuration file.

Do not forget to update /etc/xbps/xbps.conf with the new URLs if you use them.

XBPS 0.36 is out

A new XBPS stable version has been released: 0.36. This is a minor release that contains a new utility xbps-checkvers(8) to be used by the XBPS source packages collection (among other things).

Release notes:

  • libxbps: the dependency solver is now able to detect and ignore invalid dependencies of a package that are depending on itself, either as real or virtual packages.

  • xbps-uchroot(8): a manual page has been created.

  • xbps-install(8): the -n,--dry-run option does not acquire the pkgdb file lock anymore, so that any user can use this mode even without write permission to the target pkgdb.

  • xbps-query(8): fix a segfault with -vL for local unsigned repositories.

  • xbps-create(8): new option --compression to specify a compression format; defaults to xz.

  • xbps-checkvers(8): new utility merged from https://github.com/xdave/xbps-src-utils that is able to check which packages are outdated in the XBPS repositories or a rootdir by comparing them against a xbps-packages repository. Written by xdave and improved by myself.

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

Multilib support becomes a reality

Some of our readers thought we were dead due to the previous April's Fool post... well, we are not dead (yet) and after 5 years since the first xbps-0.1 release I'm still improving the package system and making the Void distribution more stable than ever. Now let's move on to the real post...

The Void distribution now contains a full multilib environment to be able to compile and run 32-bit code on 64-bit systems. The xbps-packages collection automatically builds 32-bit packages for x86_64, if xbps-src runs on 32-bit environments.

While others might say that it has been supported for years in other distributions, I can only say that we are not a fork of any existing distribution and we had to improve the xbps-packages collection to achieve it in the least troublesome way.

Software on x86 is now configured to use /usr/lib32 and by making this a symlink to /usr/lib we were able to make all packages work on x86_64 with the minimal effort. Lots of 32-bit packages are now available for x86_64 named as <pkgname>-32bit.

The following example illustrates how to compile xbps (the native void package manager) for 32-bit by using the gcc-multilib package:

# xbps-install -Sy libarchive-devel-32bit gcc-multilib
...

$ cd xbps
$ CC="cc -m32" PKG_CONFIG_LIBDIR=/usr/lib32/pkgconfig ./configure && make
...
$ file bin/xbps-query/xbps-query
bin/xbps-query/xbps-query: ELF 32-bit LSB shared object, Intel 80386 ...
$

I'd like to thank Gottox for the initial implementation and ideas in allowing us to achieve this feature in a relative short time.

The Void Linux distribution is dead (BSD is dying too)

This just to inform you that I'm declaring this project completely dead, and I have lost all interest in continuing improving XBPS (the native package system) and the Void Linux distribution as well.

I don't have enough motivation to maintain a complete and genuine package system, that is not a fork and has been created exclusively by one human (Juan RP), that is able to cross compile, supports multiple C libraries (glibc and musl), supports build options, debugging packages, subpackages, contains GNOME 3.12 before any other distribution, multiple Linux kernel packages (3.10, 3.12, 3.13, 3.14), and uses buildbot to build them in real time.

Thanks for all your support, and enjoy your life. You can still use other distributions such as Biebian, which contains genuine features: an exclusive wallpaper of yours truly.

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).

After booting, the user anon will be autologged in. This user has full access to execute any command through the sudo utility. To start the installer just execute the void-installer utility with enough permissions (i.e sudo).

Download ready to boot images for ARM

The current list of supported ARM platforms is:

You can 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.

Log in as root, password voidlinux.

Source repositories

Find a source package

Search for source packages, matching a keyword by looking at the xbps-packages github repository. You can verify if the repository includes a specific package.

Latest package commits

See latest package builds.

Buy some goodies!

Do you want to support Void Linux? Get the goodies and become prettier.

tshirts mug

bshirt1 bshirt2 bshirt3