XBPS 0.48 is out

A new XBPS stable version has been released: 0.48. This is a major release that contains new features and multiple bugfixes:

  • xbps-alternatives(1): new utility to list or set alternatives provided by packages. This effectively implements a functional alternatives framework to switch easily a default provider via symbolic links.

  • xbps-{install,reconfigure,remove}(1): do not log to console when the syslog option (xbps.d(5)) is enabled. Messages are send to stderr/stdout, so that logging to the console duplicates them. Close #123

  • xbps-fbulk(1): now comes with a manual page for the section 1.

  • libxbps: implemented reverse conflicts. That means that just a single pkg needs to set conflicts to be effective, rather than all involved pkgs.

  • libxbps: with -M (--memory-sync opt of xbps-{install,query}) only process remote repositories, not local ones.

  • libfetch: merged some features from FreeBSD:

      - Supports HTTP/1.1 308 redirect.
      - SSLv2 HTTPS connections are forbidden by default.
      - SSL/TLS HTTPS client certificate validation.
      - Fixes for user/password encoding, misc.

    Client certificate validation uses the default CA path (/etc/ssl/certs) and some environment variables override its behaviour:

      - SSL_CA_CERT_FILE: path to the CA file.
      - SSL_CA_CERT_PATH: path to the CA path (defaults to /etc/ssl/certs)
      - SSL_NO_VERIFY_PEER: disable certificate verification.
      - SSL_NO_VERIFY_HOSTNAME: disable certificate hostname verification.
  • lixbps: use a sane umask if the pkgdb file needs to be created for the first time. Thanks to Wolfgang Draxinger #108.

  • xbps-install(1): -n/--dry-run mode now also prints installed_size and filename-size objects as 5th and 6th argument, respectively. This implements #109.

  • libxbps: fixed another issue when replacing an existing pkg with a virtual pkg, and there‚Äôs an update for the original pkg in the transaction. Fixes #116.

  • libxbps: the rpool functions now set errno to ENOENT when the target pkg cannot be found in registered repos.

  • libxbps: fix a bug where broken reverse dependencies would be detected before detecting packages that need to be replaced in transaction.

  • xbps-query(1): fail if unused arguments are supplied.

  • libxbps: relative cachedir set via xbps.d(5) now work correctly. Fixes #117

  • xbps-create(1): --compression now accepts none to not use any compression format.

  • xbps-create(1): it is now able to generate identical packages when their contents do not differ. This is the first part required for the 100% reproducible builds goal.

  • xbps-create(1): do not add a build-date property to packages.

  • xbps-rindex(1): use mtime of file instead of the build-date field in the package to set build-date in the repo index.

  • libxbps: when using verbose mode (-v) also print pkgs that are being added to the transaction, this way we can know what pkg(s) are blocking a transaction when there are unresolved (reverse) dependencies.

  • libxbps: improved messages when reverse dependencies in a transaction are not satistfied. Closes #113.

      $ xbps-install -un
      re2-2015.07.01_1 (update) breaks installed pkg `chromium-44.0.2403.155_1'
      Transaction aborted due to unresolved dependencies.
      $ xbps-install -un
      chromium-44.0.2403.155_1 broken, needs `re2-2015.07.01_1'
      Transaction aborted due to unresolved dependencies.
  • Multiple minor issues found by Coverity scan were fixed.

  • xbps-checkvers(1): fixed an endless loop while processing templates containing extra alphanumeric characters in the reverts object. Added a new testcase to verify its correctness.

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