Wednesday, December 21, 2011

XBPS-0.11 released

After 2 months of active development a new major release of XBPS has been released: say hello to the 0.11 version. Here's the list of changes:


  • xbps-bin(8): it is possible now to reinstall a package even if it's installed with the '-f' option. If reinstalling the same package version, only unexistent files or files not matching its hash will be extracted.
  • While unpacking a binary package, always check that file to be extracted exists on filesystem, if true and its hash is matched, skip extraction.
  • While installing a package always preserve configuration files if they exist, but if hash don't match rename configuration files to filename.old.
  • New shared configuration file via libconfuse that replaces the plist configuration files: xbps.conf. That means that libxbps now requires confuse >=2.7 available at http://www.nongnu.org/confuse/.
  • Support for syslog logging common operations, such as install, update, remove and purge via LOG_NOTICE, and errors with LOG_ERR. By default it's always enabled, can be disabled thru the conf file.
  • xbps-repo(8): new target: pkg-list index?. This target will list all packages from repository with index index?. If optional argument index? (decimal) not set, all repositories will be used.
  • libxbps: when registering new packages, existing entries in requiredby matching the same pkgname/version touple are now simply skipped.
  • Repositories with missing index file are now simply ignored. It's expected that user executes 'xbps-repo sync' to fetch the index for all remote repositories specified in configuration file.
  • Faster binary package unpacking. Only files and symlinks are now extracted from binary packages, thus directories are not extracted anymore. The package builder is responsible to create required directories where appropiate and set correct permissions. While being here, some stuff is skipped now if a package uses the "preserve" keyword or package is being installed, resulting in a faster operation.
  • Implemented "New repository scheme and configuration file" from  issue 16 . The plist index file has been renamed to "index.plist", version bumped to 1.3. The configuration file (repositories.plist) now expect the full path to the directory storing the index.plist file. This will allow us to use other directories (such as non-free, or alike) for such purpose.
  • libxbps: improve xbps_purge_pkg() in case that the process was unexpectedly interrupted, do not error out unless the unregister phase returns an error value.
  • libxbps: when unpacking a package that replaced another package due to virtual packages, preserve its configuration files if they already existed.
  • xbps-bin(8)/xbps-repo(8): new flag '-o' (option). This can be used in the 'show' target to print only a set of objects stored in package's properties dictionary, example:
  •         $ xbps-bin -olicense show xbps
            Simplified BSD
            $ xbps-bin -oversion,build_date show xbps
            0.10.1
            Wednesday 26 October, 2011, 14:37:31 UTC
            $
  • libxbpps: when fetching new pkg-index.plist from a repository, make sure that it's a plist file and can be internalized; otherwise remove downloaded file and return error.
  • xbps-bin(8): new test for the 'check' target to fix missing entries in requiredby array, i.e reverse dependencies in the package database plist.
  • xbps-bin(8): the 'check' target now works virtual packages.
  • libxbps: failed to properly match installed virtualpkgs that were dependencies in a transaction, therefore resulting in real packages being reinstalled and replacing installed virtual packages. 
 Please visit http://code.google.com/p/xbps for more information.