xbps-0.4 (2010-02-01): * libxbps, xbps-bin(8), xbps-repo(8): redirect all warning and error messages to stderr. * libxbps: changes xbps_yesno() and xbps_noyes() to only accept "yes" or "no" (case insensitive) answers rather than 'y' or 'n', to avoid mistaken answers. * xbps-repo(8): added support to the 'search' target to find exact matches, i.e 'xbps-repo search bash'. * xbps-bin(8) added support to the 'install', 'remove' and 'update' targets to accept any arbitrary number of package names, i.e "xbps-bin install foo blah baz". See https://blueprints.launchpad.net/xbps/+spec/arbitrary-pkgname-args * xbps-bin(8): added support to the 'install' and 'update' targets to accept package patterns, i.e "xbps-bin install 'foo<=3.0'. See https://blueprints.launchpad.net/xbps/+spec/install-pkg-by-pkgmatch * libxbps: fixed some bugs while upgrading essential packages when new package didn't have an INSTALL or REMOVE script and old package had them. * libxbps: fixed some memleaks found by cppcheck and valgrind. * Makefiles reworked to support parallel builds. * libxbps: many exported functions to the API are now internal and not exported, because they were only used internally. The API is still not finished and may be changed without notice. * libxbps: be more strict finding required metadata plist files in binary packages. Now the code checks for the two required plist files to be at index <= 4 and doesn't write any entry to storage until they aren't found. * Added doxygen documentation for the API, enabled with BUILD_API_DOCS. * libxbps: synced libfetch code with NetBSD's pkgsrc, updated to 2.30. * xbps-bin(8): when downloading binary packages, it now sets default libfetch cache connection limits, thus reusing connections to the same host. * xbps-uhelper: the 'fetch' target now accepts an arbitrary number of arguments, and sets default libfetch cache connection limits. * xbps-bin(8): enable -f option for the 'purge' and 'remove' targets. If set, files will be removed even if its hash doesn't match for the 'remove' target, and configuration files for the 'purge' target. * libxbps: if updating a package, always overwrite files while unpacking; compare old and new files to remove obsoletes if necessary. This makes the "essential" object in package dictionary unnecessary, because all packages are treated as they were essential.