Wednesday, October 26, 2011

XBPS 0.10.1 released

A new (minor) version has been released with the following changes:

  • libxbps: fixed multiple free(3) calls in error paths (via closedir(3)) when some virtualpkg plist file couldn't be internalized.
  • xbps-bin(8): 'remove' with recursive flag (-R) now removes first the specified packages and puts its automatic dependencies at the tail of the array.
  • libxbps: xbps_pkgpattern_{name,version} now return expected pkgname/version if pattern is a shell wildcard pattern (fnmatch(3)).
  • libxbps: removed csh alternate code from the NetBSD's match code. We weren't using this code anyway and this only slowed down xbps_pkgpattern_match().
Please visit http://code.google.com/p/xbps for more information.

Saturday, October 22, 2011

XBPS 0.10.0 released

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

  • Fixed issue 11 "xbps-bin fails to update properly some pkgs".
  • xbps-bin(8): the 'check' target now is able to detect if a package  was installed  manually and other packages are currently depending  on it and change its mode to "automatic", i.e as dependency of those  packages.
  • xbps-bin(8), xbps-repo(8): the -C flag now expects a path to a directory where the configuration files (conf.plist and repositories.plist) are stored.
  • New configuration scheme for virtual packages as defined in issue 12.XBPS now reads all plist files in PREFIX/etc/xbps/virtualpkg.d.wants directory with settings for the wanted virtual packages.
  • New configuration scheme as defined in issue 12: a directory to store XBPS configuration files is now used, by default set to PREFIX/etc/xbps. Configuration options are now set via conf.plist, and repositories in repositories.plist.
  • It is possible now to reinstall packages that provide virtual packages and put it back the original package, such as jpeg/libjpeg-turbo multiple times, without loosing important objects set when the original package was installed, i.e reverse dependencies and automatic installation. This is a requisite to really make a system that can be fully customizable and restored back to its original   state with the virtual packages feature.
  • Fixed issue 10 "HTTP repositories in non standard HTTP port currently segfault". You can now use any HTTP server in non standard ports, such as:        http://yourhost:8080/your/repo
  • xbps-bin(8): the 'check' target now detects broken symlinks and marks them as critical errors.
  • libxbps: when updating packages, only files that have been modified (compared to current installed file) are now unpacked. This should save some writes to storage and make the process a bit smoother as well.
  • Moved install transaction code to libxbps. The API has been extended with xbps_transaction_commit() which expects the transaction dictionary as its argument. This function will execute transaction tasks, like removing, updating, installing and configuring packages as defined in the transaction dictionary.
  • The 'cachedir' option in configuration file now can be changed to be relative to the rootdir if the first character is not '/'. The -c flag in xbps-bin(8) still expects a full path and if set, overrides the setting in configuration file.
  • xbps-bin(8): the 'show', 'show-deps' and 'show-revdeps' targets now work with virtual packages.
  • libxbps: fixed NetBSD's dewey matching code to properly identify that a version X.Y.Z should be greater than X.Y_Z.
  • libxbps: revamped virtual package handling. The public API find functions (xbps_find_pkg_*) don't know anything about virtual packages. To find virtual packages the xbps_find_virtualpkg_* functions must be used instead of the "classic" ones.
  • libxbps: the xbps_find_foo_in_array functions have been renamed to xbps_match_foo_in_array because its task is only matching against the provided package name, package pattern or string.

Please visit http://code.google.com/p/xbps for more information.