2020-01-30
News about XBPS
XBPS 0.58 was just released, with many new features and a lot of improvements. Since the last post was for 0.54, this post includes all changes and some highlights since the last post.
Highlights
Performance improvements
Some users might have noticed that removing the plasma-desktop
was very time consuming because of dependency cycles.
The dependency resolution algorithm has been completely rewritten and is now able to resolve the dependencies of plasma-desktop
within seconds.
See the pull request void-linux/xbps#78 if you are interested in what changed.
The --fulldeptree
flag of xbps-query(1) in combination with -x
or -X
for dependencies and reverse dependencies respectively has been improved and will now be 50x faster in the worst case scenario.
ignorepkg
configuration option
Many users tried to get rid of the default kernel or some other base-system
requirement.
For this we’ve added a new configuration keyword: ignorepkg
.
With this new keyword you can ignore packages that are pulled in by other packages as runtime dependencies.
As example you can add linux-firmware-amd
as ignored package and then uninstall the package:
# echo "ignorepkg=linux-firmware-amd" > /etc/xbps.d/10-ignore.conf
# xbps-remove linux-firmware-amd
This works for any package, i.e. being able to remove linux4.19
while keeping the linux
meta package.
Or removing the linux
meta package itself and installing only the kernel series you like to use yourself.
noextract
configuration option
Another useful new feature is the new noextract
, it allows to specify patterns of
files that should not be extracted when installing or updating packages.
This allows as example to skip extracting translations the users are not interesting in, allowing to reduce the installation size.
We plan to make use of it in xbps-src
to cut down the time required to install build dependencies.
Download only flag
A new flag was added to xbps-install(1) which allows to download packages and its dependencies without installing them.
Changelog
xbps-0.58 (2020-01-30):
-
libfetch: fix CVE-2020-7450; from FreeBSD. [duncaen]
-
xbps-query(1), xbps-remove(1): improved detection of orphans, needing multiple iterations to collect all of them in a single transaction. [xtraeme]
-
xbps-checkvers(1): added
-e, --removed
. To list removed templates in srcpkgs. [Chocimier] -
xbps-install(1): improved
-D, --download-only
. This now can be used to download all required binary packages of the target pkg without the need to have write permission to therootdir
.$ xbps-install -c $PWD/cachedir -Dy xbps
NOTE:
-c, --cachedir
must be specified as absolute pathname, otherwise it will treat it as relative to rootdir. [xtraeme] -
xbps-fetch(1): added
-s
to print sha256sums of downloaded files. [duncaen] -
configure: re-add
--enable-debug
and enable it by default. [xtraeme] -
xbps-install(1): ignore indirect reverse dependencies while updating xbps. [xtraeme]
-
xbps-install(1): added
--reproducible
long option. If set, enables reproducible mode in pkgdb. [xtraeme] -
xbps-install(1): don’t prompt if all packages in the transaction are on hold. [Mohamad Barbar]
-
xbps-rindex(1): stop adding the “build-date” pkg obj. Contained wrong info and did not provide enough value to be useful; another step towards reproducibility. [xtraeme]
-
xbps-create(1): always sanitize gathered symlinks. [xtraeme]
-
xbps-install(1): do not silently update
xbps
on any install/update transaction. If there’s a new update for thexbps
package, this needs to be explicitely declared as a single transaction, i.e:$ xbps-install -u xbps
Otherwise it will return
EBUSY
(16), making this a proper error code to diagnose what failed. [xtraeme] -
xbps.d(5): new ‘noextract’ configuration option, to skip extracting files matching a pattern. [duncaen]
-
xbps.d(5): autodetected ‘architecture’ (glibc or musl) at compile-time on linux systems. [xtraeme]
-
configure: added
--enable-lto
and don’t enable it by default. [xtraeme] -
Multiple bugs with packages on hold were fixed. [xtraeme]
-
xbps-uchroot(1), xbps-uunshare(1): document end of options argument. [Doan Tran Cong Danh]
-
xbps-alternatives(1): prune obsolete alternatives groups. [q66]
17 new test cases were added in this release, 6 people were involved: Juan RP, Piotr Wójcik, Duncan Overbruck, Doan Tran Cong Danh, Mohamad Barbar, q66.
xbps-0.57.1 (2019-10-27):
-
Multiple changes and improvements to the transaction fetch code. [duncaen]
-
Verify revision in
xbps_pkg_{version,revision,name}
, to handle properly package names that use_
. [Chocimier] -
xbps-checkvers(1): fixed a compile-time warning with glibc. [xtraeme]
-
xbps-alternatives(1): check if alternative is a symlink before removing it. [xtraeme]
-
Try to find a usable shell instead of using
/bin/sh
when executing package scripts. [Gottox] -
xbps-rindex(1): better error handling for writing repodata archives. [Chocimier]
-
xbps-create(1): better error handling for writing archives. [Chocimier]
xbps-0.57 (2019-08-06):
-
xbps now builds with tcc and pcc. [xtraeme]
-
xbps now uses the transactional file checks for package removals, this fixes issues where xbps removes wrong files, if a package replaces another packages with the same files. [duncaen]
-
xbps-remove(1): skip the transaction if no packages are found. This restores the behaviour of xbps prior to 0.54. [xtraeme]
-
xbps-remove(1): fix
-o, --remove-orphans
not removing all orphaned packages. [duncaen] -
xbps-install(1): if specified packages with
-u, --update
are up to date return EEXIST. [jnbr] -
xbps-query(1): restores old behaviour of
--fulldeptree
, to not list the package itself. [duncaen] -
Updated zsh completions. [leah2]
xbps-0.56 (2019-06-24):
-
Fixed
xbps_transaction_prepare()
always returning ENXIO because the transaction dictionary wasn’t initialized before first use. Regression from 0.54. [xtraeme] -
Fixed unlocking the pkgdb via
xbps_end()
. [xtraeme] -
Fixed flushing pkgdb to storage and re-reading it unnecessarily, this affected xbps-alternatives(1), xbps-pkgdb(1) and xbps-reconfigure(1). [xtraeme]
-
xbps now allows to remove an installed package that was added to the ignored packages list with
ignorepkg
from xbps.d(5). [duncaen] -
Fixed an issue with multi threaded for each loops processing the first slicecount*maxthreads entries twice. [duncaen]
-
Fixed an issue with happy eyeballs, where when a socket fails within the connection delay it aborts with the error instead of continuing with the next address. [jnbr]
xbps-0.55 (2019-06-21):
-
xbps-install(1): Added
-D, --download-only
flag to allow downloading packages to the cache without attempting to install them. [Vaelatern] -
xbps-install(1): added
-I, --ignore-file-conflicts
to not abort the transaction even if file conflicts were detected. [xtraeme] -
xbps-install(1): return 0 if package is already installed, or up-to-date if updating, not
EEXIST
.EEXIST
now is only returned if there are file conflicts in transaction. [xtraeme] -
xbps-checkvers(1): fixed a segfault with
--format
. [duncaen] -
Fixed a build failure on ppc64. [q66]
-
Fixed a build failure on x86. [duncaen]
-
Fixed cross compilation with
--enable-static
. [xtraeme]