2025-06-14

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