1890 lines
		
	
	
		
			77 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1890 lines
		
	
	
		
			77 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| xbps-0.42 (???):
 | |
| 
 | |
|  * libxbps: replaces the internal redundant dependency sorting step
 | |
|    that was made in xbps_transaction_prepare() with a simple implementation
 | |
|    that fixes 2 bugs and makes xbps 2x faster to resolve dependencies.
 | |
| 
 | |
|    Packages that don't have "provides" obj but were declared as virtual packages,
 | |
|    were not detected correctly and lead me to rewrite this code.
 | |
| 
 | |
|  * Fixed issue #62 (Dup replaced pkgs in transaction); see
 | |
|    https://github.com/voidlinux/xbps/issues/62
 | |
| 
 | |
|  * If removing a package and euid==0 do not check for file owner, being root
 | |
|    means that all files can be removed properly. This fixes package removal
 | |
|    when some files were not owned by root, rather by a system account.
 | |
| 
 | |
|  * Fixed 65 issues found by Coverity scan. Defect density is now below 0.30
 | |
|    per 1000 lines of code.
 | |
| 
 | |
|  * Use atomic builtins if supported by the compiler in our portableproplib copy
 | |
|    to handle object reference counting. This should be cheaper than using a mutex.
 | |
| 
 | |
|  * The manpages are now fully compliant with mdoc; thanks to mandoc -Wall.
 | |
| 
 | |
|  * Added support to run the testsuite in place, without the need to perform
 | |
|    installation; use `make check` to run it.
 | |
| 
 | |
| xbps-0.41 (2014-09-29):
 | |
| 
 | |
|  * libxbps: another bugfix while checking required shlibs in
 | |
|    reverse dependencies. Written another test case to verify its
 | |
|    correctness.
 | |
| 
 | |
|  * libxbps: rather than checking if user has write permission on
 | |
|    package files for removal, check if the files are owned by the
 | |
|    same user ID. This fixes a new issue where files with only the read
 | |
|    bit set cannot be removed. Added a new test case to verify its
 | |
|    correctness.
 | |
| 
 | |
|  * xbps-create(8): xz compressed packages now use default compression
 | |
|    level (-6) rather than max level (-9); max compression level uses
 | |
|    too much memory and it's much slower; by Christian Neukirchen.
 | |
| 
 | |
|  * Improvements for xbps bash completions, by Eivind Uggedal.
 | |
| 
 | |
|  * A performance improvement for xbps_file_hash(), by Enno Boland.
 | |
| 
 | |
|  * Added reverts field to package definitions. If defined, a package will
 | |
|    replace all versions specified in this field even if the installed version is
 | |
|    newer. This is helpful when a broken package is released. The maintainer can
 | |
|    downgrade this package and define a reverts field to the broken version. On
 | |
|    the next update xbps-install will automatically replace the broken release by
 | |
|    the new downgraded release.
 | |
| 
 | |
|  * Replace xbps-packages directory by void-packages in xbps-checkvers(8),
 | |
|    xbps-uchroot(8) and others, by Enno Boland.
 | |
| 
 | |
| xbps-0.40 (2014-09-18):
 | |
| 
 | |
|  * xbps-install(8): handle xbps_transaction_prepare() returning ENOSPC, to
 | |
|    abort a transaction when there's insufficient disk space on rootdir.
 | |
| 
 | |
|  * xbps-query(8): -S/--show mode no longer prints ANSI escape codes if stdout
 | |
|    is not a tty; suggested by @chneukirchen.
 | |
| 
 | |
|  * Reduced considerably memory requirement when checking SHA256 hashes on
 | |
|    files. Previous way of allocating heap memory as big as the file being
 | |
|    processed wasn't a great idea.
 | |
| 
 | |
|  * xbps-{install,remove}: the post-install/pre-remove messages are now
 | |
|    printed with some guards, i.e:
 | |
| 
 | |
| 	"=================================================================="
 | |
| 	" msg "
 | |
| 	"=================================================================="
 | |
| 
 | |
|    Without the need to add them manually to the {INSTALL,REMOVE}.msg files in
 | |
|    binary packages.
 | |
| 
 | |
|  * Fixed a heap overflow when printing post-install/pre-remove messages.
 | |
|    Noticed by Gottox.
 | |
| 
 | |
|  * Updated zsh completion with more properties for xbps-query(8). Contributed
 | |
|    by Christian Neukirchen.
 | |
| 
 | |
|  * Updated bash completion with more properties for xbps-query(8). Contributed
 | |
|    by Eivind Uggedal in #58.
 | |
| 
 | |
| xbps-0.39 (2014-09-15):
 | |
| 
 | |
|  * Updated bash/zsh completions for >= 0.38 with new features (Contributed by
 | |
|    Eivind Uggedal and Christian Neukirchen respectively).
 | |
| 
 | |
|  * xbps-rindex: fix -a/--add mode to create repodata archives with 0664 permissions;
 | |
|    and do not create a new archive if the file cannot be open/locked, error out
 | |
|    instead... otherwise the file lock is ignored.
 | |
| 
 | |
|  * A minor build fix for the musl C library.
 | |
| 
 | |
| xbps-0.38 (2014-09-14):
 | |
| 
 | |
|  * Disabled best pkg matching code for performance reasons. When installing
 | |
|    or updating a package without any version component, the first repo containing
 | |
|    it wins. Previously the repository with the greatest version won. Use a specific
 | |
|    package expression to match packages in multiple repos, or switch the order
 | |
|    of the repos instead.
 | |
| 
 | |
|  * Added bash completion for xbps-*. Contributed by Eivind Uggedal.
 | |
| 
 | |
|  * Added zsh completion for xbps-* and xbps-src. Contributed by Christian Neukirchen.
 | |
| 
 | |
|  * xbps-query(8): added -s/--search local mode; local pkg queries are now possible.
 | |
| 
 | |
|  * pkgdb-0.38 format: the pkgdb plist file now contains all pkg metadata objects
 | |
|    plus the pkgdb specific ones (automatic-install, install-date, metafile-sha256)
 | |
|    with the pkg files list being the exception. The pkgdb code will automatically
 | |
|    convert the pkgdb files to the new format the first time it's accesed.
 | |
| 
 | |
|    This effectively implements a two phase upgrade, the first time to upgrade the
 | |
|    pkgdb format and the second one to execute the real operation.
 | |
| 
 | |
|    The pkg metadata files stored in metadir (/var/db/xbps) now just contains its
 | |
|    pkg files list objects, everything else is stored in pkgdb. This allows libxbps
 | |
|    to speed up the process of checking for unmet shared libraries, among other things.
 | |
| 
 | |
|  * libxbps: added support to check pkg shlib-{provides,requires} objects for
 | |
|    all pkgs in the transaction to be updated. This will make impossible to update a
 | |
|    package to a newer version that contains incompatible shlibs used in its revdeps.
 | |
| 
 | |
|  * xbps-rindex(8): -r/--remove-obsoletes is now ~5x faster.
 | |
| 
 | |
|  * xbps-remove(8): -O/--clean-cache is now ~10% faster.
 | |
| 
 | |
|  * libxbps: xbps_repo_{open,close}() gained an additional argument to acquire/release
 | |
|    a POSIX file lock (see lockf(3)) to serialize write access to the repository
 | |
|    archive. This obsoletes the POSIX named semaphores that were used in xbps-rindex(8),
 | |
|    which only allowed to add/clean a repository per architecture, even if it
 | |
|    wasn't the same local repository!
 | |
| 
 | |
|  * libxbps: the fetch code now is able to connect to HTTPS without the need of
 | |
|    /etc/services being available; We don't expect those ports to change anytime!
 | |
| 
 | |
|  * xbps-uchroot(8) is now only built on linux, because it's not portable to other
 | |
|    Operating Systems.
 | |
| 
 | |
|  * Added support to replace virtual packages when the package to be installed
 | |
|    matches a virtual pkgname, for example:
 | |
| 
 | |
| 	- nvidia is installed and provides the `libGL` virtual pkgname.
 | |
| 	- libGL matches the virtual pkgname and therefore replaces the `nvidia` pkg.
 | |
| 
 | |
|  * xbps-query(8): added --fulldeptree long option to print a full dependency
 | |
|    tree for a package; this supersedes -xx which was broken since 0.37.
 | |
| 
 | |
|  * xbps-query(8): fix a segfault with -Rf when there's no network connectivity.
 | |
|    Reported by Gottox.
 | |
| 
 | |
|  * xbps-uchroot(8): do not remount / unnecessarily; just mount it as private
 | |
|    and nosuid once; this is enough for our use cases.
 | |
| 
 | |
|  * xbps-query(8): --show/-S mode now explicitly prints pkg metadata keys
 | |
|    with the bold ANSI escape code.
 | |
| 
 | |
|  * xbps-query(8): --search --property now works with <integer> objects, i.e:
 | |
| 
 | |
| 	$ xbps-query -s '' -p filename-size
 | |
| 
 | |
|  * xbps-remove(8): -O/--clean-cache no longer triggers an assertion when the
 | |
|    cache directory is empty.
 | |
| 
 | |
|  * Implemented support to preserve existent on-disk files, by always ignoring
 | |
|    the pkg content if the file has been matched. Details here:
 | |
|    https://github.com/voidlinux/xbps/issues/51
 | |
| 
 | |
|    The new "preserve" keyword can be used in the xbps configuration file, as well
 | |
|    as for the system and configuration directories:
 | |
| 
 | |
| 	- <rootdir>/usr/share/xbps/preserve.d
 | |
| 	- <rootdir>/etc/xbps/preserve.d
 | |
| 
 | |
|    Full path to a file or globbing can be used:
 | |
| 
 | |
| 	- preserve=/usr/bin/blah
 | |
| 	- preserve=/etc/blah/*.conf
 | |
| 
 | |
|  * Always preserve files that exist on disk, but are managed by a package.
 | |
|    When such condition ocurrs install the pkg configuration file as `file.new-<version>`.
 | |
|    This fixes GH issue #50 https://github.com/voidlinux/xbps/issues/50.
 | |
| 
 | |
|  * Implemented support for post-install and pre-remove messages, as explained
 | |
|    in issue #44 https://github.com/voidlinux/xbps/issues/44.
 | |
| 
 | |
|    xbps-create(8) will read the {INSTALL,REMOVE}.msg files and will add its contents
 | |
|    into the `{install,remove}-msg` data objects on its metadata plist file.
 | |
| 
 | |
|  * xbps-install(8): added support to list packages that will be downloaded, if those
 | |
|    were available in a remote repository and were not in the cache directory.
 | |
| 
 | |
|  * Before accepting a transaction, xbps now checks if there's enough free space
 | |
|    on the target rootdir (on disk) to proceed with the operation. In code terms,
 | |
|    xbps_transaction_prepare() now returns ENOSPC if the size of the transaction
 | |
|    exceeds the size of the free space. Close issue #7.
 | |
| 
 | |
|  * When installing or updating packages, now proper statistics are generated
 | |
|    when a binary package from a remote repository exists in the cachedir,
 | |
|    and when a package has the "preserve" property.
 | |
| 
 | |
|  * libxbps: return ENXIO and a meaningful error message if a package that is
 | |
|    going to be installed or updated has invalid dependencies, i.e:
 | |
| 
 | |
| 	$ xbps-install --repository=$HOME/repo -n foo
 | |
| 	ERROR: foo-1.0_1: can't guess pkgname for dependency '>=invalid-spec_1'
 | |
| 	Package `foo' contains invalid dependencies, exiting.
 | |
| 	$
 | |
| 
 | |
|    This fixes #43 (xbps-install: unhelpful message for invalid dependency)
 | |
|    submitted by Dominik Honnef.
 | |
| 
 | |
|  * libxbps: fixed a new issue with packages that provide/replace the
 | |
|    same virtual package that is going to be replaced. The issue could be
 | |
|    reproduced easily by installing any awk package (gawk, mawk, or nawk),
 | |
|    which are providing/replacing the "awk" virtual package.
 | |
| 
 | |
|  * libfetch: synchronized with NetBSD pkgsrc/libfetch.
 | |
| 
 | |
|  * libfetch: add support for TLS SNI (Server Name Identification) from NetBSD, with
 | |
|    some minor debug changes. This fixes GH issue #41 (https://github.com/voidlinux/xbps/issues/41).
 | |
| 
 | |
| xbps-0.37 (2014-06-06):
 | |
| 
 | |
|  * Enabled syslog logging by default, may be still disabled via xbps.conf.
 | |
| 
 | |
|  * Added support for system and configuration virtualpkg directories.
 | |
| 
 | |
|    The system virtualpkg directory set to <rootdir>/usr/share/xbps/virtualpkg.d contains
 | |
|    virtualpkg configuration files (.conf/.vpkg) that can be overrided by the admin
 | |
|    in <rootdir>/etc/xbps/virtualpkg.d bearing the same file name.
 | |
| 
 | |
|    This obsoletes the "virtualpkgdir" keyword support from the xbps configuration file.
 | |
| 
 | |
|  * Added support for system and configuration repository directories, as
 | |
|    explained in GH #39 (https://github.com/voidlinux/xbps/issues/39).
 | |
| 
 | |
|    The system repository directory set to <rootdir>/usr/share/xbps/repo.d contains
 | |
|    repository configuration files (.conf) that can be overrided by the admin
 | |
|    in <rootdir>/etc/xbps/repo.d bearing the same file name.
 | |
| 
 | |
|  * xbps-create(8): new option `-t, --tags` to specify a list of tags
 | |
|    (categories) the package should be part of. This is just for metadata
 | |
|    purposes and querying packages by tags in the future.
 | |
| 
 | |
|  * xbps-install(8): it's possible now to update a single package (if it's already
 | |
|    installed) without using the -u, --update option. This implements
 | |
|    GH #35 (https://github.com/voidlinux/xbps/issues/35).
 | |
| 
 | |
| 	$ xbps-install [-f] -y foo
 | |
| 
 | |
| 	- if foo is installed, update it.
 | |
| 	- if foo not installed, install it.
 | |
| 	- if -f is set, reinstall or downgrade it.
 | |
| 
 | |
|  * xbps-query(8): new option (-S, --show) which shows info of a package
 | |
|    installed locally or in a repository with -R. This is the default mode
 | |
|    if no other mode is set; to preserve compatibility with previous versions.
 | |
| 
 | |
|  * xbps-query(8): new long option "--regex" that can be used in the
 | |
|    "ownedby (-o, --ownedby)" and "search (-s, --search)" modes to match
 | |
|    Extended Regular Expressions against package properties.
 | |
| 
 | |
|    This allows you to find packages by matching EREs in package properties,
 | |
|    for example to find out what packages were built between 2014-05-23 and
 | |
|    2014-05-25:
 | |
| 
 | |
| 	$ xbps-query --regex -s 2014-05-2[35] -p build-date
 | |
| 	...
 | |
| 	$
 | |
| 
 | |
|  * Imported portable proplib 0.6.4 from https://github.com/xtraeme/portableproplib.
 | |
| 
 | |
|  * Fixed a new issue with virtual packages, if a pkg provides a virtual package
 | |
|    that is already installed but with lesser version, do not update to it
 | |
|    unnecessarily (in some cases results in a crash).
 | |
| 
 | |
|  * A new object is now recorded in the pkgdb to see the origin repository of
 | |
|    which a package was installed from, i.e:
 | |
| 
 | |
| 	$ xbps-query --property=repository-origin pkg
 | |
| 	...
 | |
| 	$
 | |
| 
 | |
|  * xbps-remove(8): the -n,--dry-run option does not acquire the pkgdb file lock
 | |
|    anymore, so that any user can use this mode even without write permission to
 | |
|    the target pkgdb.
 | |
| 
 | |
|  * xbps-remove(8) -O, --clean-cache is now multithreaded. Gives a performance
 | |
|    boost as the number of threads increases.
 | |
| 
 | |
|  * xbps.conf: the keyword "include" now supports file globbing, so that multiple
 | |
|    small configuration files can be included directly, i.e:
 | |
| 
 | |
| 	include=/etc/xbps/repo.d/*.conf
 | |
| 
 | |
|    Contributed by Enno Boland.
 | |
| 
 | |
|  * xbps-query(8): fixed a segfault with '-Rf' if pkg is in the repository data
 | |
|    and its binary package does not exist.
 | |
| 
 | |
| xbps-0.36 (2014-04-21):
 | |
| 
 | |
|  * libxbps: the dependency solver is now able to detect and ignore invalid
 | |
|    dependencies of a package that are depending on itself, either as real
 | |
|    or virtual packages.
 | |
| 
 | |
|  * xbps-uchroot(8): a manual page has been created.
 | |
| 
 | |
|  * xbps-install(8): the -n,--dry-run option does not acquire the pkgdb file lock
 | |
|    anymore, so that any user can use this mode even without write permission to
 | |
|    the target pkgdb.
 | |
| 
 | |
|  * xbps-query(8): fix a segfault with '-vL' for local unsigned repositories.
 | |
| 
 | |
|  * xbps-create(8): new option --compression to specify a compression format;
 | |
|    defaults to xz.
 | |
| 
 | |
|  * xbps-checkvers(8): new utility merged from https://github.com/xdave/xbps-src-utils
 | |
|    that is able to check which packages are outdated in the XBPS repositories or
 | |
|    a rootdir by comparing them against a xbps-packages repository.
 | |
|    Written by xdave and improved by myself.
 | |
| 
 | |
| xbps-0.35 (2014-04-01):
 | |
| 
 | |
|  * xbps-uchroot: new utility merged from xbps-packages/xbps-src that
 | |
|    bind mounts and chroots to a target directory. This is a setgid binary
 | |
|    that must have correct owner/group to work correctly.
 | |
| 
 | |
|  * xbps-rindex(8): fixed a bug while signing repositories in that sometimes
 | |
|    the PEM RSA public key buffer contained unwanted garbage.
 | |
| 
 | |
|  * Make sure that required root symlinks in void are never removed or detected
 | |
|    as obsoletes; added new test cases to stress the code works as expected.
 | |
| 
 | |
| xbps-0.34 (2014-03-26):
 | |
| 
 | |
|  * xbps-query(8): search mode now accepts -p/--property argument to match patterns
 | |
|    against the stored package object in repositories. Any object stored in the repository
 | |
|    index can be used to be matched against to; the posibilities are countless:
 | |
| 
 | |
| 	- find out what packages are mantained by a person
 | |
| 	- find out what packages are built at a specific date
 | |
| 	- find out what packages are linked to a specific shared library
 | |
| 	- etc etc etc
 | |
| 
 | |
|  * xbps-query(8): in local mode now prints all objects stored on its pkgdb entry
 | |
|    and its metaplist.
 | |
| 
 | |
|  * Fix #34 (xbps-uhelper fetch fails to download files from https://alioth.debian.org).
 | |
|    The issue is that this HTTP server returns 406 (Not Acceptable) when the HTTP
 | |
|    header does not contain the "Accept" field (see
 | |
|    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=712261 for more info).
 | |
|    Our libfetch code now always adds "Accept: */*" in the HTTP headers.
 | |
| 
 | |
|  * Added some debugging in error paths when performing a transaction.
 | |
| 
 | |
|  * Fixed an issue where in a transaction a package with wrong version was being
 | |
|    configured resulting in ENOENT. The configure phase now only uses the package
 | |
|    name to perform the configuration rather than using package name/version tuple.
 | |
| 
 | |
|  * Pass another argument to package scripts with the native machine architecture
 | |
|    (uname -m), which can be overrided via XBPS_ARCH environment variable too.
 | |
| 
 | |
| xbps-0.33 (2014-03-11):
 | |
| 
 | |
|  * xbps-dgraph: fixed a segfault if rootdir wasn't set:
 | |
|    issue #33: https://github.com/voidlinux/xbps/issues/33
 | |
| 
 | |
|  * xbps-uhelper now supports downloading files with a defined destination.
 | |
|    The syntax of fetch is "URI>FILENAME". So if you call
 | |
| 
 | |
| 	$ xbps-uhelper fetch "http://foobar.com/foo.tar.gz>bar.tar.gz"
 | |
| 
 | |
|    the output file will be named "bar.tar.gz". Contributed by
 | |
|    Enno Boland (Gottox).
 | |
| 
 | |
|  * Rather than performing a pkgdb write per package being unpacked, configured,
 | |
|    or removed, issue the write only once after the transaction phase has finished.
 | |
| 
 | |
|  * While checking file permissions for package files removal, make sure
 | |
|    to not dereference symbolic links, because a symlink might point to
 | |
|    a file in the rootfs, which won't have the same uid/gid.
 | |
| 
 | |
|  * Fixed issue #31: https://github.com/voidlinux/xbps/issues/31
 | |
| 
 | |
|  * New configuration file format with a custom C parser, simpler
 | |
|    and does not need any additional external dependency. confuse is
 | |
|    not necessary anymore.
 | |
| 
 | |
|  * Only allow a single writer to the pkgdb to avoid concurrency issues
 | |
|    when performing multiple write transactions (install, update or remove).
 | |
|    Processes that cannot acquire the lock will get an EAGAIN error.
 | |
| 
 | |
|  * Do not continue the transaction if downloading a binpkg/signature file
 | |
|    has failed for some reason, stop and return error immediately.
 | |
| 
 | |
| xbps-0.32 (2014-02-21):
 | |
| 
 | |
|  * Fixed a bug in xbps_pkgpattern_name() where a string with some special
 | |
|    chars would result in a crash (reported by Gottox).
 | |
| 
 | |
|  * Do the package removal in two phases: the first phase checks the
 | |
|    user has write permission to the entries being removed, if this
 | |
|    succeeds then the package removal is performed.
 | |
| 
 | |
|  * xbps-remove(8): -O now also remove obsolete pkg signatures from
 | |
|    cachedir, and ignores pkgs of other architectures.
 | |
| 
 | |
|  * xbps-rindex(8): set correct permissions to the POSIX semaphore
 | |
|    by clearing file permission bits before its creation.
 | |
| 
 | |
| xbps-0.31 (2014-02-01):
 | |
| 
 | |
|  * xbps-rindex(8): use a POSIX named semaphore in modes that can modify
 | |
|    repository data archive, to avoid concurrency issues.
 | |
| 
 | |
|  * libxbps: fixed an issue with errno(3) propagation that lead to
 | |
|    ENOMEM errors when resolving dependencies.
 | |
| 
 | |
|  * Removed 0.27 compat from repodata.
 | |
| 
 | |
|  * If a repository has been signed previously respect its settings
 | |
|    in repodata (unless there were new changes). This allows us to
 | |
|    accomplish the following:
 | |
| 
 | |
| 	$ xbps-rindex repo/*.xbps
 | |
| 	$ xbps-rindex --sign ... repo
 | |
| 	$ xbps-rindex repo/new-pkg.xbps
 | |
| 
 | |
|    ... and repository is still signed after updating repodata.
 | |
| 
 | |
|    API/ABI incompatible changes, you've been warned :-)
 | |
| 
 | |
|  * xbps-rindex(8): -c [clean] mode now is fully multithread safe.
 | |
| 
 | |
|  * Fixed a double free while downloading binpkgs from remote repositories
 | |
|    (reported by Hanspolo).
 | |
| 
 | |
| xbps-0.30 (2014-01-28):
 | |
| 
 | |
|  * Fixed issue #30: https://github.com/voidlinux/xbps/issues/30
 | |
| 
 | |
|  * Fixed issue #29: https://github.com/voidlinux/xbps/issues/29
 | |
| 
 | |
|  * Fixed issue #28: https://github.com/voidlinux/xbps/issues/28
 | |
| 
 | |
|  * When reinstalling a package (or downgrading) also check for obsolete
 | |
|    files and remove them if it's needed.
 | |
| 
 | |
|  * When reinstalling a package (or downgrading) make sure to also respect
 | |
|    its installation mode (automatic or manual).
 | |
| 
 | |
|  * Fixed a bug where in some cases valid symlinks in a package were not removed
 | |
|    (just dangling symlinks were removed).
 | |
| 
 | |
| xbps-0.29 (2014-01-09):
 | |
| 
 | |
|  * Added XBPS_ARCH environment variable to override tha native architecture
 | |
|    (uname(2) machine). This allows us to use "fake" architectures, for example
 | |
|    to use packages built for a different C library.
 | |
| 
 | |
|  * Miscellaneous fixes to make XBPS work with the musl C library.
 | |
| 
 | |
|  * Fixed issue #27: https://github.com/voidlinux/xbps/issues/27
 | |
| 
 | |
| xbps-0.28 (2014-01-03):
 | |
| 
 | |
|  * Implemented Per package RSA signatures, replacing the repository index
 | |
|    signature from 0.27. There's now a `<binpkg>.sig` file with the RSA signature
 | |
|    for any pkg in a repository; the signature files are generated by `xbps-rindex(8)`.
 | |
| 
 | |
|  * Implemented on-demand repository access: repositories are registered into
 | |
|    a private queue only on first access and not unconditionally.
 | |
| 
 | |
|  * Fixed issue #26: https://github.com/voidlinux/xbps/issues/26
 | |
| 
 | |
|  * xbps-query(8): -o (local ownedby mode) does not print directories;
 | |
|    it's unnecessary anyway because xbps never extracts empty directories.
 | |
| 
 | |
|  * The `--repository` option in xbps-install(8) and xbps-query(8) now adds
 | |
|    the repositories at the top of the list, rather than overriding the list
 | |
|    specified in a configuration file.
 | |
| 
 | |
|  * Fixed issue #25: https://github.com/voidlinux/xbps/issues/25
 | |
| 
 | |
|  * Fixed issue #24: https://github.com/voidlinux/xbps/issues/24
 | |
| 
 | |
| xbps-0.27 (2013-11-29):
 | |
| 
 | |
|  * libxbps: make sure that base symlinks in the root directory are never removed,
 | |
|    due to /usr switch in Void. This will also be harmless in other systems.
 | |
| 
 | |
|  * The testsuite now contains more tests than ever and will be extended as new
 | |
|    issues appear.
 | |
| 
 | |
|  * Fixed issue #20: https://github.com/xtraeme/xbps/issues/20
 | |
| 
 | |
|  * Fixed issue #19: https://github.com/xtraeme/xbps/issues/19
 | |
| 
 | |
|  * Fixed issue #18: https://github.com/xtraeme/xbps/issues/18
 | |
| 
 | |
|  * Fixed issue #6: https://github.com/xtraeme/xbps/issues/6
 | |
| 
 | |
|  * xbps-rindex(8): also understands the XBPS_PASSPHRASE environmental variable to
 | |
|    supply the passphrase when signing repositories.
 | |
| 
 | |
|  * xbps-rindex(8): added -v --verbose option.
 | |
| 
 | |
|  * Support for RSA signed repositories. A repository can be signed with your
 | |
|    preferred RSA key (any ssh key works) as follows:
 | |
| 
 | |
| 	$ xbps-rindex --sign --signedby "foobar <foo@bar>" --privkey /priv/key /path/to/repo
 | |
| 
 | |
|    Public keys must be imported before using a remote signed repository thru
 | |
|    the xbps-install(8) utility:
 | |
| 
 | |
| 	$ xbps-install -S
 | |
| 
 | |
|    Starting from now on all remote repositories must be signed and verified.
 | |
|    Local repos do not need to be signed and they will work as before.
 | |
| 
 | |
| xbps-0.26.2 (2013-10-30):
 | |
| 
 | |
|  * unpack: apply correctly permissions and mode to existent files if the those files
 | |
|    in the archive are modified compared to what it's currently on disk.
 | |
| 
 | |
| xbps-0.26.1 (2013-10-25):
 | |
| 
 | |
|  * xbps-uhelper: added new action "real-version" that only prints the version
 | |
|    of an installed real package in a rootdir, not virtual.
 | |
| 
 | |
| xbps-0.26 (2013-09-25):
 | |
| 
 | |
|  * xbps-query(8): the `-D --defrepo' argument has been superseded by
 | |
|    `-R --repository=<url>' argument. (issue #17).
 | |
| 
 | |
|  * xbps-install(8): added support to specify multiple repositories with
 | |
|    `--repository=<url>`. For consistency with `xbps-query(8)' use the same
 | |
|    syntax as it were an optional argument. (issue #17).
 | |
| 
 | |
|    This overrides the repository list in a configuration file.
 | |
| 
 | |
|  * xbps-query(8): added support to specify multiple repositories with
 | |
|    `--repository=<url>`. This also enables repository mode; the argument is
 | |
|    optional and can be used to specify desired repositories. (issue #17).
 | |
| 
 | |
|    This overrides the repository list in a configuration file.
 | |
| 
 | |
|  * Re-added all metadata package objects to the repository index, this avoids
 | |
|    remote connections when querying packages from remote repositories. This also
 | |
|    speeds up 'xbps-src' when using remote repositories as well.
 | |
| 
 | |
|  * A C99 compiler is now required due to the use of for loop initializers.
 | |
| 
 | |
|  * Fixed #14 from github: "Removing recursively does not respect manual installation
 | |
|    mode for dependencies". See https://github.com/xtraeme/xbps/issues/14
 | |
|    for more information.
 | |
| 
 | |
|  * Removed "PackagesOnHold" from xbps.conf. This has been replaced by a new mode
 | |
|    in xbps-pkgdb(8):
 | |
| 
 | |
| 	$ xbps-pkgdb -m <hold|unhold> <pkgname>
 | |
| 
 | |
|    To list packages that are currently on hold mode use xbps-query(8):
 | |
| 
 | |
| 	$ xbps-query -H
 | |
| 
 | |
|  * On terminals with 0 columns, assume 80. Xen's PV guest running Linux and its
 | |
|    hvc console does report 0 columns/rows.
 | |
| 
 | |
|  * libxbps: introduce xbps_{array,pkgdb}_foreach_cb_multi() which are
 | |
|    multithreaded implementations  to process N items of an array spawning
 | |
|    1 thread per core. This makes XBPS use threads when possible on
 | |
|    multi-core CPUs.
 | |
| 
 | |
|  * libxbps: removed the following unused API functions:
 | |
| 
 | |
| 	- xbps_pkgdb_foreach_reverse_cb()
 | |
| 	- xbps_callback_array_iter_reverse()
 | |
| 	- xbps_callback_array_iter_reverse_in_dict()
 | |
| 	- xbps_callback_array_iter()
 | |
| 	- xbps_callback_array_iter_in_dict()
 | |
| 
 | |
|  * xbps-query(8): make -L list all repositories in the configuration file, even
 | |
|    the non working ones and print -1 in them. Closes issue #11 from github.
 | |
| 
 | |
| 	$ xbps-query -L
 | |
|            -1 /mnt/foo
 | |
|            -1 /blah/foo
 | |
|          2619 /mnt/xbps_builder/host/binpkgs
 | |
|            16 /mnt/xbps_builder/host/binpkgs/nonfree
 | |
| 	$
 | |
| 
 | |
|  * xbps-query(8): fixed some memleaks in local and repository owned mode.
 | |
| 
 | |
|  * xbps-query(8): fix regression in -R, also print repository string object.
 | |
| 
 | |
|  * Do not abort transaction if updates for conflicting packages are in
 | |
|    the transaction due to checks of reverse dependencies in virtual packages.
 | |
| 
 | |
| xbps-0.25 (2013-07-05):
 | |
| 
 | |
|  * Added support to validate reverse dependencies when updating packages.
 | |
|    Such example would be updating pkg X to 2.0 when an installed package
 | |
|    depends on pkg X < 2.0; abort transaction when such condition is
 | |
|    detected; this also works with virtual packages.
 | |
| 
 | |
|  * Dropped requirement of confuse when using the libxbps API.
 | |
| 
 | |
|  * Dropped support for external libfetch and proplib; the included copies
 | |
|    are always used unconditionally. libxbps now provides a wrapper for
 | |
|    proplib prefixing all symbols with xbps_ rather than prop_.
 | |
| 
 | |
|  * libxbps: only read virtual pkg config files when looking for a virtual
 | |
|    package, not unconditionally and at xbps_init() time.
 | |
| 
 | |
|  * libxbps: optimize repo/rpool code by reusing existing data returned by previous calls.
 | |
| 
 | |
|  * libxbps: fixed two memleaks.
 | |
| 
 | |
|  * libxbps: reduced memory usage on 64bit platforms by using 32bit types, which
 | |
|    is really enough to be used in loop indexes (deps, revdeps, etc).
 | |
| 
 | |
|  * xbps-dgraph: completely updated to the new pkgdb format/API.
 | |
| 
 | |
|  * xbps-query(8): added support to find reverse dependencies in repository mode
 | |
|    for virtual packages, i.e:
 | |
| 
 | |
| 	$ xbps-query -RX xserver-abi-input
 | |
| 	xf86-input-evdev-2.8.0_1
 | |
| 	...
 | |
| 
 | |
|  * Use a single zlib compressed file to store repository data `<arch>-repodata`.
 | |
|    This will allow us to extend repositories with more metadata if needed, and
 | |
|    simplifies the API. This is just the starting point to add PGP signatures.
 | |
|    The struct xbps_rindex has been replaced by xbps_repo, thus, the major
 | |
|    libxbps SONAME has been bumped to 2.
 | |
|  
 | |
|  * xbps-create(8): correctly calculate target file for relative symlinks.
 | |
| 
 | |
|  * xbps-pkgdb(8): removed old code that isn't needed anymore in the 'check' mode.
 | |
|    This fixes issue #9 (https://github.com/xtraeme/xbps/issues/9).
 | |
| 
 | |
| xbps-0.24 (2013-05-02):
 | |
| 
 | |
|  * xbps-rindex(8): added -f, --force flag to forcefully register a package even
 | |
|    if an entry of the same package already exists on the index.
 | |
| 
 | |
| xbps-0.23 (2013-04-19):
 | |
| 
 | |
|  * xbps-install(8): the default repository (-R) now overrides any repository
 | |
|    set in a configuration file.
 | |
| 
 | |
|  * xbps-rindex(8): in clean mode (-c) also remove obsolete entries from index-files,
 | |
|    which were not matched due to different tests.
 | |
| 
 | |
|  * Fixed a bug in the transaction dictionary that reported wrong sizes
 | |
|    in total-removed-size and total-installed-size objects or even empty values
 | |
|    in some cases.
 | |
| 
 | |
|  * xbps-create(8): initialize setlocale so that utf8 files can be archived.
 | |
|    The locale must be utf8 capable for this to work. Fixes issue #5 from github.
 | |
| 
 | |
|  * libxbps: fix a use-after-free in state cb when a binpkg doesn't match its
 | |
|    hash with the hash stored in repo index.
 | |
| 
 | |
|  * xbps-uhelper: the 'version' target now also matches virtual packages, which
 | |
|    is a requirement for xbps-src.
 | |
| 
 | |
| xbps-0.22 (2013-03-23):
 | |
| 
 | |
|  * xbps-create(8): a new option --build-options has been added to add a string
 | |
|    with the build options that were used in package. It's expected to be filled
 | |
|    by xbps-src automatically.
 | |
| 
 | |
|  * xbps-query(8): make -o (ownedby) follow symlinks. Fix issue #4 from github.
 | |
|    This works in local and repository mode.
 | |
| 
 | |
|  * xbps-create(8): if effective user/group is the same than files being
 | |
|    packaged in a package, set user/group to root:root. This way we don't
 | |
|    have to depend in an external tool to assume proper permissions (fakeroot).
 | |
| 
 | |
|  * xbps-query(8): fix segfault when showing unexistent package files.
 | |
| 
 | |
|  * When checking for obsolete files in upgrades, ignore unexistent files in
 | |
|    current package; this was hitting an assertion due to this.
 | |
| 
 | |
| xbps-0.21 (2013-03-11):
 | |
| 
 | |
|  * libxbps: improved code to find obsolete pkg files in upgrades. Now the code
 | |
|    compares the whole file list between current and new package. A test has been
 | |
|    added to the kyua testsuite to test its correctness.
 | |
| 
 | |
|  * Imported Portable proplib 0.6.3 from http://code.google.com/p/portableproplib.
 | |
| 
 | |
|  * xbps-query(8): a full dependency tree can now be shown in the
 | |
|    show-deps mode, by specifying -x twice (--show-deps), e.g:
 | |
| 
 | |
| 	$ xbps-query -xx perl
 | |
| 	glibc>=2.8_1
 | |
| 	gdbm>=1.10_1_1
 | |
| 	 glibc>=2.8_1
 | |
| 	libdb>=4.8.24_1
 | |
| 	 glibc>=2.8_1
 | |
| 	$
 | |
| 
 | |
|  * New repository index format (1.7): unnecessary and redundant objects
 | |
|    have been removed that are already stored in package metadata files.
 | |
|    This means that xbps-query(8) in repository mode will now fetch package
 | |
|    metadata from the binary package and not from index. Only necessary objects
 | |
|    for the transaction and searching are kept.
 | |
| 
 | |
|  * xbps-pkgdb(8): new option -u --update to update the pkgdb format to
 | |
|    the latest available. Do not forget to run it after updating xbps to 0.21.
 | |
| 
 | |
|  * New pkgdb format: redundant objects have been removed (empty run_depends,
 | |
|    pkgname, version) and it is now a dictionary. The pkgdb file has been
 | |
|    renamed to "pkgdb-0.21.plist" to make future upgrades easier to
 | |
|    handle/update.
 | |
| 
 | |
|  * configure: misc tweaks to allow building with the musl C library.
 | |
| 
 | |
|  * xbps-query(8): packages can be matched by using virtual package
 | |
|    names in repository mode, i.e:
 | |
| 
 | |
| 	$ xbps-query -Rp pkgver ntp-daemon
 | |
| 	ntp-4.2.6p5_7
 | |
| 	$	
 | |
|   
 | |
|  * xbps-pkgdb(8): new option -m --mode to change package installation
 | |
|    mode to auto (might be detected as orphan) or manual
 | |
|    (explicitly installed).
 | |
| 
 | |
|  * xbps-query(8): the search mode (-s, --search) now is able to find
 | |
|    packages by matching virtual package strings, i.e:
 | |
| 
 | |
| 	$ xbps-query -s cron-daemon
 | |
| 	[-] cronie-1.4.9_1 Runs specified programs at scheduled times
 | |
| 	[-] dcron-4.5_18   Dillon's lightweight cron daemon
 | |
| 	$
 | |
| 
 | |
|  * xbps-query(8): changed short option -M (--list-orphans) to -O; which
 | |
|    seems more appropiate to use.
 | |
| 
 | |
|  * libxbps: when resolving deps in transaction, ignore incorrect ones;
 | |
|    for example a package might be depending on itself thru virtual packages.
 | |
| 
 | |
|  * libxbps: workaround a bug (found by pancake) when updating a package
 | |
|    that is being replaced by a virtual package.
 | |
| 
 | |
|  * libxbps: fully remove packages with broken symlinks; previously if a
 | |
|    broken symlink was there (readlink returning ELOOP), package wasn't
 | |
|    removed.
 | |
| 
 | |
|  * libxbps: ignore packages conflicting themselves, which can happen with
 | |
|    virtual packages.
 | |
| 
 | |
|  * xbps-query(8): fix issue #3 from github
 | |
|    "xbps-query -o only works for installed packages".
 | |
| 
 | |
|    The behaviour has been changed for all modes and to explicitly get
 | |
|    info from repositories the -R flag must be used; otherwise it will
 | |
|    use local packages.
 | |
| 
 | |
|  * xbps-install(8): the -f, --force flag will now preserve configuration
 | |
|    files if they were modified, and only unpack files that have been
 | |
|    modified when re-installing packages. If -f is specified twice (-ff)
 | |
|    all package files will be overwritten from new package.
 | |
| 
 | |
|  * Fix regression in xbps_fetch_file() when fetching files from HTTP
 | |
|    servers that don't provide us enough details (file length, mtime, etc).
 | |
| 
 | |
|  * Fix regression introduced in b9136c61c95698a5dafbc69ee9cd873110c68e45,
 | |
|    breaking package conflicts detection.
 | |
| 
 | |
|  * xbps-install(8): removed the -s,--skip-sync option; the new -S,--sync
 | |
|    option makes this redundant and useless.
 | |
| 
 | |
|  * xbps-install(8): added -S,--sync option to synchronize remote repository index
 | |
|    files; can be combined with -u or used exclusively.
 | |
| 
 | |
| xbps-0.20 (2013-01-24):
 | |
| 
 | |
|  * xbps-rindex(8): fix crash in -r (remove-obsoletes mode) if pkg cannot
 | |
|    be removed (permissions or file disappeared).
 | |
| 
 | |
|  * xbps-install(8): don't treat EEXIST as an error when installing
 | |
|    new packages; technically it's not an error.
 | |
| 
 | |
|  * libfetch: added a patch to fix select(2) timing out when fetching
 | |
|    from some https servers.
 | |
| 
 | |
|  * libfetch: merged version 2.34 from NetBSD/pkgsrc.
 | |
| 
 | |
|  * configure: changed some options to '--enable-foo':
 | |
| 
 | |
| 	--enable-static
 | |
| 	--enable-api-docs
 | |
| 	--enable-debug
 | |
| 	--enable-tests
 | |
| 
 | |
|  * libxbps: fixed a stupid typo that made it to skip executing the
 | |
|    "pre-remove" action in installed packages.
 | |
| 
 | |
|  * xbps-create(8): new long options: --shlib-provides and --shlib-requires,
 | |
|    to add list of required and provided shared libraries in a package.
 | |
| 
 | |
| xbps-0.19.1 (2012-12-22):
 | |
| 
 | |
|  * libxbps: when a package has not been configured and there's an update
 | |
|    in transaction, libxbps incorrectly tried to ignore the update and
 | |
|    configure this package. Fix this by not ignoring the update even if
 | |
|    package has any state.
 | |
| 
 | |
|  * xbps-query(8): -l, --list-packages option now prints pkg state as follows:
 | |
| 
 | |
| 	STATE	PKGVER	DESCRIPTION
 | |
| 
 | |
|    Where STATE can be any of the following package states:
 | |
| 
 | |
| 	ii = installed
 | |
| 	uu = unpacked
 | |
| 	hr = half-removed
 | |
| 	?? = unknown
 | |
| 
 | |
|  * xbps-reconfigure(8): fixed regression introduced in 0.19 when processing
 | |
|    all packages with '-a, --all'. Found by pancake.
 | |
| 
 | |
| xbps-0.19 (2012-12-15):
 | |
| 
 | |
|  * xbps-rindex(8): add mode (-a) does not remove old binary packages
 | |
|    in repository anymore, only its entry in index is replaced. To remove
 | |
|    outdated packages use -r/--remove-obsoletes.
 | |
| 
 | |
|  * xbps-rindex(8): clean (-c) and remove obsoletes mode (-r) are
 | |
|    now multithreaded and will spawn a thread per core to speed up
 | |
|    the process considerably.
 | |
| 
 | |
|  * xbps-pkgdb(8): -a, --all mode is now multithreaded and will
 | |
|    spawn a thread per core to process a fraction of pkgdb.
 | |
| 
 | |
|  * xbps-create(8): hardlinks can be added and archived correctly.
 | |
| 
 | |
|  * xbps-rindex(8): in clean mode (-c), entries with unmatched hashes
 | |
|    are now removed from index.
 | |
| 
 | |
|  * Added support for dynamic generation of reverse dependencies for
 | |
|    installed packages. pkgdb no longer keeps track of them statically.
 | |
|    A new object must be present in pkgdb for this to work in fast mode,
 | |
|    which is available if 'xbps-pkgdb(8) -a' is run; otherwise the
 | |
|    fallback mode will be used which is a bit slower.
 | |
| 
 | |
|  * xbps-query(8): added support to specify any of the three supported
 | |
|    methods to match package expressions:
 | |
| 
 | |
| 	- by package name (foo)
 | |
| 	- by exact package version (foo-2.0_1)
 | |
| 	- by package version comparators (foo>2.1<2.5)
 | |
| 
 | |
|  * Multiple API/ABI changes to improve performance; The libxbps SONAME
 | |
|    major has been bumped to 1. This helped to fix some regressions
 | |
|    introduced in 0.18 and really simplifies the API.
 | |
| 
 | |
|  * New repository index format (1.6). The index files are now dictionaries
 | |
|    that won't allow to add duplicate entries; also the files are now
 | |
|    "architecture" dependent and only packages for target arch and
 | |
|    noarch will be registered on it.
 | |
| 
 | |
| xbps-0.18.1 (2012-11-26):
 | |
| 
 | |
|  * Fixed execution of pre/post install/remove scripts due to using old
 | |
|    package version after unpacking a package being updated.
 | |
| 
 | |
|  * xbps-query(8): fixed catching reverse dependencies in some packages
 | |
|    that used version comparators such as "foo<X" or "foo>X<Y".
 | |
| 
 | |
| xbps-0.18 (2012-11-23):
 | |
| 
 | |
|  * xbps-query(8): implemented support to know reverse dependencies
 | |
|    in repository mode; that means you can now exactly what packages
 | |
|    require the target package from all registered repositories.
 | |
| 
 | |
|  * The virtual package configuration files are now read dynamically
 | |
|    by libxbps at initialization time from default configuration directory:
 | |
|    <rootdir>/etc/xbps/virtualpkg.d. Only files that end in ".conf" will
 | |
|    be processed by libxbps.
 | |
| 
 | |
|  * The rootdir (with -r, --rootdir) can now be specified as relative path.
 | |
| 
 | |
|  * Structured pkg metadata stored on disk, and added new functionality:
 | |
| 
 | |
| 	- A single plist containing pkg properties, files and
 | |
| 	  INSTALL/REMOVE scripts added as prop_data(3) objects.
 | |
| 
 | |
| 	- pkgdb's pkg dictionary now contains a sha256 hash to know if the
 | |
| 	  plist from metadir has been modified.
 | |
| 
 | |
| 	- prop_data(3) objects can be seen with xbps-query(8) --property.
 | |
| 
 | |
| 	- pkg plists are now kept in <metadir>/.<pkgname>.plist.
 | |
| 
 | |
| 	- In a future revision libxbps could make a backup of pkgdb and
 | |
| 	  plist files in metadir before a transaction is committed.
 | |
|   
 | |
|    Users must run 'xbps-pkgdb [-r <rootdir>] -a' to upgrade pkg metadata
 | |
|    to the 0.18 format.
 | |
| 
 | |
|  * Shell wildcard patterns (fnmatch(3)) can now be used in the
 | |
|    PackagesOnHold configuration option.
 | |
| 
 | |
|  * New utilities replacing xbps-bin(8) and xbps-repo(8):
 | |
| 
 | |
| 	- xbps-install(8): to install and update packages.
 | |
| 	- xbps-pkgdb(8): to report and fix errors in pkgdb.
 | |
| 	- xbps-query(8): to query packages and/or repositories.
 | |
| 	- xbps-reconfigure(8): to (re)configure packages.
 | |
| 	- xbps-remove(8): to remove packages.
 | |
| 	- xbps-rindex(8): to handle local repositories.
 | |
| 
 | |
|  * While reconfiguring packages do not flush pkgdb unless it's necessary.
 | |
| 
 | |
|  * While unpacking files from binpkg also check if any symlink has been
 | |
|    modified, if true unpack it. If an entry has no changes and file mode
 | |
|    or uid/gid differs apply new perms and mode from new pkg.
 | |
| 
 | |
|  * When registering a pkg to pkgdb make sure to remove unneeded meta objs
 | |
|    from its pkg dictionary. Also add a check to xbps-bin(8) to remove those
 | |
|    objects if found.
 | |
| 
 | |
|  * Improved finding and removing obsolete files after upgrading a package
 | |
|    in a transaction. Any obsolete link (not just dangling links) and
 | |
|    configuration files are now removed if they are obsoletes.
 | |
| 
 | |
|  * Add support to resolve exact dependencies such as "foo-1.0_1".
 | |
| 
 | |
|  * Fixed a bug in the dependency sort code that in some cases and due to
 | |
|    virtual packages added duplicate matches and broke the dependency order.
 | |
| 
 | |
|  * xbps-bin(8): the 'check' target now checks the target file in relative
 | |
|    symlinks, or multiple levels of symlinks.
 | |
| 
 | |
|  * xbps-create(8): fixed an assertion that happened when resolving the
 | |
|    target file of a symlink, which was unexistent because the real file was
 | |
|    provided by another pkg. In this case just keep the target file as is.
 | |
| 
 | |
| xbps-0.17 (2012-10-02):
 | |
| 
 | |
|  * Package metadata files and pkgdb plist are now stored uncompressed.
 | |
|    This improves performance when those files store large chunks of data.
 | |
| 
 | |
|  * Fixed "packages on hold". Regression added in 0.16.2.
 | |
| 
 | |
|  * xbps-repo(8): fixed crash in the 'search' target when the terminal has
 | |
|    been resized, reported by pancake.
 | |
| 
 | |
|  * xbps-bin(8), xbps-repo(8): added a new flag -B to set default repository
 | |
|    to install packages, in case xbps.conf couldn't be found.
 | |
| 
 | |
|  * xbps-create(8): a new utility to create XBPS binary packages; package
 | |
|    files must be installed to a directory prior to executing this utility.
 | |
| 
 | |
|  * configure: if compiler supports PIE and RELRO, enable them by default.
 | |
| 
 | |
|  * xbps-repo(8): the 'show-deps' target does not show the repository from
 | |
|    the matching target package, just the list of dependencies.
 | |
| 
 | |
|  * xbps-repo(8): the 'search' target now shows which packages are currently
 | |
|    installed "[*]" or not installed "[-]".
 | |
| 
 | |
|  * xbps-repo(8): a new target has been added: 'remove-obsoletes'. This removes
 | |
|    obsolete packages found in a local repository; obsoletes are packages not
 | |
|    registered in repository's index.
 | |
| 
 | |
|  * configure: fixes for Ubuntu, which uses ld(1) --as-needed by default and
 | |
|    some function tests were failiing due to this.
 | |
| 
 | |
|  * configure: added "--with-static" and if enabled, the static executables
 | |
|    will also be built and installed. By default it's disabled.
 | |
| 
 | |
|  * xbps-repo(8): the 'genindex' target has been replaced by the 'index-add' and
 | |
|    'index-clean' targets. The 'index-add' expects a list of binary packages to
 | |
|    be added to repository's index:
 | |
| 
 | |
| 	$ xbps-repo index-add /path/to/repo/*.xbps
 | |
| 
 | |
|    The 'index-clean' removes obsolete entries in repository's index:
 | |
| 
 | |
| 	$ xbps-repo index-clean /path/to/repo
 | |
| 
 | |
| xbps-0.16.5 (2012-07-14):
 | |
| 
 | |
|  * xbps.conf: remove obsolete remote repositories.
 | |
| 
 | |
|  * libxbps: extend the list of ignored symlinks in rootfs if they were found
 | |
|    as obsoletes at package upgrade time.
 | |
| 
 | |
|  * libxbps: at package register time a new string object in pkgdb is added
 | |
|    "install-date" that records the package installation date with the following
 | |
|    strftime(3) format: "%F %R %Z".
 | |
| 
 | |
|  * xbps-bin(8): the 'show' target now prints some objects from pkgdb if found:
 | |
|    "install-date" and "automatic-install".
 | |
| 
 | |
| xbps-0.16.4 (2012-07-10):
 | |
| 
 | |
|  * Imported proplib 0.6.1 from http://code.google.com/p/portableproplib.
 | |
| 
 | |
|  * libxbps: when finding obsolete files also match against sha256, not
 | |
|    just the filename. Also ignore symlinks found in rootfs to make
 | |
|    the system transition to /usr fully work.
 | |
| 
 | |
| xbps-0.16.3 (2012-07-04):
 | |
| 
 | |
|  * libxbps: fixed a regression in 0.16.2.
 | |
| 
 | |
| xbps-0.16.2 (2012-07-04):
 | |
| 
 | |
|  * libxbps: fixed 2 bugs while updating packages.
 | |
| 
 | |
|  * libxbps: after removing a pkg the state cb was passing dangling pointers in
 | |
|    its pkgname and version members.
 | |
| 
 | |
| xbps-0.16.1 (2012-06-30):
 | |
| 
 | |
|  * xbps-repo(8): fixed a regression in the 'genindex' target. It was looking
 | |
|    at wrong repository subdirectory when removing obsolete files.
 | |
|    This also fixes issue 24 from googlecode.
 | |
| 
 | |
| xbps-0.16 (2012-06-20):
 | |
| 
 | |
|  * Added support for package conflicts. If any conflicting pkg has been found
 | |
|    in a transaction, xbps_transaction_prepare() will return EAGAIN and
 | |
|    the array object "conflicts" in transaction dictionary must be inspected
 | |
|    to know what conflicts have been found.
 | |
| 
 | |
|  * Always require an underscore at package versions, if any provided
 | |
|    pkgver (i.e 'foo-1.0_1') does not contain an underscore the name/version
 | |
|    won't be detected for a string. That means that now any package can contain
 | |
|    any character in pkgname and all characters in version except hyphens ('-'),
 | |
|    and as bonus there's no need to make some tricks to perform installation
 | |
|    of exact package versions.
 | |
| 
 | |
|  * xbps-bin(8): the 'install' target now can (re)install an exact package
 | |
|    version as specified on its arguments, i.e:
 | |
| 
 | |
| 	$ xbps-bin install foo-1.0_1
 | |
| 
 | |
|    If that version is not available no other version will be installed.
 | |
| 
 | |
|  * xbps-repo(8): 'genindex' target is now able to remove binary packages
 | |
|    when a greater version exists on the index.
 | |
| 
 | |
|  * xbps-repo(8): 'sync' target now is able to sync just a single repository
 | |
|    by passing the repository URI as argument, i.e:
 | |
| 
 | |
| 	$ xbps-repo sync http://xbps.mirror.org/repo
 | |
| 
 | |
|  * xbps-repo(8): 'pkg-list' target now expects the repository URI than
 | |
|    the index number, i.e:
 | |
| 
 | |
| 	$ xbps-repo pkg-list http://xbps.mirror.org/repo
 | |
| 
 | |
|  * xbps-bin(8): -n flag (dry-run mode) now also prints the pkg architecture
 | |
|    as last component and if the transaction reason supports it.
 | |
| 
 | |
|  * Repository index format 1.5. The files are now named properly:
 | |
|    index.plist for XBPS_PKGINDEX and index-files.plist for XBPS_PKGINDEX_FILES.
 | |
|    The difference in XBPS_PKGINDEX is that now a single plist file can store
 | |
|    all metadata from any package with any architecture. XBPS_PKGINDEX_FILES
 | |
|    has been modified to speed up 'xbps-repo find-files'. That means
 | |
|    that in xbps.conf now you'd only have to use the directory where the
 | |
|    index.plist is stored, i.e:
 | |
| 
 | |
| 	/path/to/my/repo <- 1st repository
 | |
| 	|-- i686
 | |
| 	|-- index-files.plist
 | |
| 	|-- index.plist
 | |
| 	|-- noarch
 | |
| 	|-- nonfree      <- 2nd repository
 | |
| 	|   |-- i686
 | |
| 	|   |-- index-files.plist
 | |
| 	|   |-- index.plist
 | |
| 	|   |-- noarch
 | |
| 	|   `-- x86_64
 | |
| 	`-- x86_64
 | |
| 
 | |
|    Any other directory not named "noarch" or "$(uname -m)" must be specified
 | |
|    as another different repository, such case is "nonfree" or any other with
 | |
|    unmatched names.
 | |
| 
 | |
|  * xbps-bin(8): new flag: -S which syncs rpool indexes before executing
 | |
|    the "dist-upgrade", "install" or "update" targets.
 | |
| 
 | |
|  * libxbps: renamed xbps_repository_pool_xxx to xbps_rpool_xxx
 | |
|    (API/ABI incompat changes).
 | |
| 
 | |
|  * libxbps: extended rpool with a new function:
 | |
|    xbps_repository_pool_find_virtualpkg_conf. This function will match
 | |
|    a virtual package as was specified in configuration file. That means
 | |
|    that the find_xxx functions now do exactly what the API documents.
 | |
|    While resolving packages, the order to look for them is the following:
 | |
| 
 | |
| 	find_virtualpkg_conf -> find_pkg -> find_virtualpkg
 | |
| 
 | |
|    If no virtual pkg from conf matched, look for a real pkg, otherwise
 | |
|    use the first virtual package from rpool that matches our pattern.
 | |
| 
 | |
|  * libxbps: introduce the concept of "soft replace". When a package
 | |
|    contains that boolean object set in pkg's metadata props.plist,
 | |
|    some steps will be skipped at remove time for the package being
 | |
|    replaced: its files won't be removed and the post action in REMOVE
 | |
|    file won't be executed.
 | |
| 
 | |
|  * libxbps: change the order in which package files are removed:
 | |
| 
 | |
| 	current: files, conf_files, links, directories.
 | |
| 	previous: links, files, conf_files, directories.
 | |
| 
 | |
|    This is required to avoid removing working symlinks, which could be
 | |
|    owned by another installed package. Now only dangling symlinks are now
 | |
|    removed.
 | |
| 
 | |
|  * libxbps: when removing package files and if metadata files.plist wasn't
 | |
|    found, do not error out and rather just continue until the package is
 | |
|    fully removed.
 | |
| 
 | |
|  * xbps-bin(8): renamed "autoupdate" target to "dist-upgrade" and
 | |
|    "autoremove" to "remove-orphans". For compatibility with previous
 | |
|    versions the old targets are still kept, but will be removed in future
 | |
|    releases.
 | |
| 
 | |
|  * Added support to put packages "on hold". Packages on hold
 | |
|    won't be updated by system upgrades even if there is a newer version.
 | |
|    The configuration string list "PackagesOnHold" in xbps.conf expects
 | |
|    a list of package names.
 | |
| 
 | |
|  * xbps-bin(8): miscellaneous cosmetic improvements while unpacking
 | |
|    package files and add a counter for the 'check all' target.
 | |
| 
 | |
|  * xbps-repo(8): new target: 'clean'. This removes obsolete binpkgs
 | |
|    from cachedir, either because the binpkg is not available in repository
 | |
|    pool anymore or because its sha256 hash doesn't match with the
 | |
|    one matched in repository index file.
 | |
| 
 | |
|  * Miscellanous API cleanups (API/ABI incompat changes).
 | |
| 
 | |
| xbps-0.15 (2012-04-06):
 | |
| 
 | |
|  * xbps-bin(8): a new test for the 'check' target to find stale entries
 | |
|    in 'requiredby' package metadata object from pkgdb.
 | |
| 
 | |
|  * When reinstalling existing packages (xbps-bin -f install), make sure
 | |
|    to remove previous entry in the "requiredby" pkgdb's array object.
 | |
| 
 | |
|  * When sorting required dependencies make sure that a pkg with
 | |
|    required version is taken into account, not just the first
 | |
|    one matching its pkgname.
 | |
| 
 | |
|  * When resolving required dependencies also find the best pkg
 | |
|    available in repository pool. Thanks to dave for testing!
 | |
| 
 | |
|  * Started a test suite for libxbps. Tests are written for Kyua
 | |
|    (http://code.google.com/p/kyua) and can be built and installed
 | |
|    with the --with-tests configure option, by default will be installed
 | |
|    to EPREFIX/tests but can be overriden with --testsdir. ATF 0.15
 | |
|    (part of Kyua) is required to build the test suite.
 | |
| 
 | |
|  * Enabled assertions by default even if --debug not enabled. We want
 | |
|    to enforce correct behaviour even in release builds.
 | |
| 
 | |
|  * Fixed issue 22: "Updating a package doesn't set correct perms when
 | |
|    file not modified". When extracting package files, always set
 | |
|    permissions from binary package, even if file has not been modified.
 | |
| 
 | |
| xbps-0.14 (2012-02-28):
 | |
| 
 | |
|  * Fixed 'xbps-bin reconfigure all' (regression added in 0.13).
 | |
| 
 | |
|  * While resolving dependencies check if required dependency is matched
 | |
|    with any virtual package already added in transaction, on match use it.
 | |
| 
 | |
|  * Only accept binary packages compressed in gzip, bzip2 and xz formats.
 | |
|    Profiling tests showed that libarchive wasted a considerable amount of
 | |
|    time checking if archive was compressed in zip format.
 | |
| 
 | |
|  * xbps-bin(8)/xbps-repo(8): redirect some more warnings/errors to stderr.
 | |
| 
 | |
| xbps-0.13.0 (2012-02-20):
 | |
| 
 | |
|  * libxbps: skip checking for obsolete files if a package in a transaction
 | |
|    replaces another one that is going to be updated. In such cases that means
 | |
|    new package now owns some files previously owned by the package to be
 | |
|    updated, therefore the updated package must not check for obsolete files.
 | |
| 
 | |
|  * xbps-repo(8): the `show', `show-deps' and `show-files' targets now accept
 | |
|    package patterns, i.e "xbps-repo show 'foo>=2.0'". If only a `pkgname`
 | |
|    has been specified, the newest package available in repositories will be
 | |
|    shown.
 | |
| 
 | |
|  * xbps-repo(8): print meaningful help usage, added -h option.
 | |
| 
 | |
|  * xbps-bin(8): print a meaningful help usage, added -h option.
 | |
| 
 | |
|  * libxbps: fixed xbps_transaction_install_pkg return value if package
 | |
|    is already installed: this must be EEXIST not ENODEV.
 | |
| 
 | |
| xbps-0.12.0 (2012-02-06):
 | |
| 
 | |
|  * xbps-bin: new dry-run mode (-n) to show the actions that would
 | |
|    be executed in a transaction. This mode takes effect in the
 | |
|    autoremove, autoupdate, install, remove and update targets. Example:
 | |
| 
 | |
| 	$ xbps-bin -n install kernel-snapshot
 | |
| 	<pkgname> <install|remove|update|configure> <version> <repository> <filename>
 | |
| 	$
 | |
| 
 | |
|    The format is "%s %s %s[ %s %s]\n" for `pkgname', `action', `version',
 | |
|    `repository' and `filename' (optional).
 | |
| 
 | |
|  * xbps-bin: the install target will now install the best package
 | |
|    version available in repository pool if just package name has
 | |
|    been specified, otherwise the first repository matching the
 | |
|    specified pattern wins, i.e:
 | |
| 
 | |
| 	$ xbps-bin install foo 'blah>=1.2<2.0'
 | |
| 
 | |
|  * Massive pkgdb API rototill. The xbps-uhelper command gained support
 | |
|    for the 'updatepkgdb' target which will migrate old pkgdb
 | |
|    format to the new 0.12 format. ALERT: make sure to execute
 | |
|    "xbps-uhelper -r <rootdir> updatepkgdb" to update to the new 0.12
 | |
|    pkgdb format before installing/removing/updating any package.
 | |
| 
 | |
|  * Repository index 1.4: the file is now externalized to a proplib array
 | |
|    and has been renamed to "rindex.plist" to not break compatibility
 | |
|    with previous XBPS versions. This helps in simplifying the API
 | |
|    implementation substantially.
 | |
| 
 | |
|  * Added a pkg-config file to simplify writing code with libxbps.
 | |
| 
 | |
|  * libxbps: improved support for finding newest package versions available
 | |
|    in repository pool.
 | |
| 
 | |
|  * libxbps: added support for finding exact package name/version matches
 | |
|    in repository pool.
 | |
| 
 | |
|  * Fixed registering repositories with trailing '/' chars in
 | |
|    configuration file: xbps.conf.
 | |
| 
 | |
|  * xbps-repo(8): the 'genindex' target now creates a plist file to cache
 | |
|    all files provided by binary packages in a repository. This makes
 | |
|    the 'find-files' target marginally faster, because this avoids having
 | |
|    to fetch data from network in remote repositories. The new file
 | |
|    'index-files.plist' will be downloaded every time the 'sync' target
 | |
|    is issued but only iff the file has been modified.
 | |
|    This fixes Issue 21 "`xbps-repo find-files` is awfully slow".
 | |
| 
 | |
|  * It's now possible to fetch files thru xbps_fetch_file() from HTTP
 | |
|    servers that don't set the Content-Length header. This fixes issue 19:
 | |
|    "xbps-src cannot fetch source with unknown Content-Length" reported
 | |
|    by ojab.
 | |
| 
 | |
|  * Renamed some options in xbps.conf to not have dashes, such as:
 | |
| 	fetch-timeout-connection -> FetchTimeoutConnection
 | |
| 	fetch-cache-connections-host -> FetchCacheConnections
 | |
| 	fetch-cache-connections-per-host -> FetchCacheConnectionsPerHost
 | |
| 
 | |
|  * Implemented memory caching for regpkgdb and configurable transaction
 | |
|    flushing. Can be changed in xbps.conf with "TransactionFrequencyFlusing".
 | |
|    By default set to 5. That means that every 5 packages processed in
 | |
|    a transaction there will be a regpkgdb plist flush to disk.
 | |
| 
 | |
|    Setting it to 0 enables automatic mode which will only flush in
 | |
|    two required points. Setting it to 1 makes the behaviour used in XBPS<=0.11,
 | |
|    which flushed it on every package.
 | |
| 
 | |
|    That feature provides a 25% (and in some cases even more!) of performance
 | |
|    when executing a transaction.
 | |
| 
 | |
|  * Merged purge code into remove. It wasn't necessary to have this splitted,
 | |
|    so it now has been merged into xbps_remove_pkg(). That also means that
 | |
|    '-p' flag in xbps-bin(8) and xbps-repo(8) doesn't exist anymore.
 | |
| 
 | |
|  * xbps-repo(8): the 'find-files' target accepts multiple patterns, such as:
 | |
| 	$ xbps-repo find-files /bin/cat '/bin/f*' ...
 | |
| 
 | |
|  * xbps-bin(8): the 'find-files' target accepts multiple patterns, such as:
 | |
| 	$ xbps-bin find-files /bin/cat '/bin/f*' ...
 | |
| 
 | |
|  * xbps-repo(8): the 'search' target accepts multiple patterns, such as:
 | |
| 	$ xbps-repo search 'foo-[0-9]*' '*blah*' ...
 | |
| 
 | |
|  * libxbps: more paranoid type checking and allocation results, to make
 | |
|    sure that out of memory conditions are handled gracefully.
 | |
| 
 | |
| xbps-0.11.0 (2011-12-20):
 | |
| 
 | |
|  * 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.
 | |
| 
 | |
| xbps-0.10.1 (2011-10-26):
 | |
| 
 | |
|  * 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().
 | |
| 
 | |
| xbps-0.10.0 (2011-10-21):
 | |
| 
 | |
|  * Fixed issue 11 "xbps-bin fails to update properly some pkgs".
 | |
| 	http://code.google.com/p/xbps/issues/detail?id=11
 | |
| 
 | |
|  * 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
 | |
| 	http://code.google.com/p/xbps/issues/detail?id=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
 | |
| 	http://code.google.com/p/xbps/issues/detail?id=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.
 | |
| 
 | |
| xbps-0.9.1 (2011-07-15):
 | |
| 
 | |
|  * libxbps: xbps_repository_pool no longer loops forever if a package
 | |
|    index plist file cannot be fetched due to network problems, or
 | |
|    if the file is not available anymore; the repository will be
 | |
|    ignored.
 | |
| 
 | |
|  * xbps-repo(8): the 'genindex' failed to register in pkg-index
 | |
|    packages less than on equal than any other package providing the
 | |
|    same package name. Ignore packages providing virtual packages.
 | |
| 
 | |
|  * xbps-repo(8): the 'genindex' target now removes entries in existent
 | |
|    package index files for unexistent packages that were previously
 | |
|    registered (removed, not enough permissions, etc).
 | |
| 
 | |
|  * xbps-repo(8): the 'genindex' target creates required directories
 | |
|    in local repositories if it's necessary.
 | |
| 
 | |
|  * xbps-repo(8): the 'search' target now matches patterns in
 | |
|    case insensitive mode.
 | |
| 
 | |
|  * A bug has been fixed while updating a package and another package
 | |
|    providing a virtual package with a greater version was available
 | |
|    in repositories. Only accept this if the virtual package is explicitly
 | |
|    enabled in the "virtual-packages" section in the configuration file.
 | |
| 
 | |
| xbps-0.9.0 (2011-07-08):
 | |
| 
 | |
|  * configure doesn't require a zlib package with a pkg-config file, to
 | |
|    workaround some distribution that don't provide it (hi Ubuntu!). Rather
 | |
|    it now checks for a required function. Fixes issue 6 in googlecode.
 | |
| 
 | |
|  * The configuration file now accepts a new option "fetch-timeout-connection",
 | |
|    to specify the limit to wait (in seconds) of timed out connections when
 | |
|    fetching files. It's set to 30 in configuration file, and if not set it
 | |
|    also defaults to 30 seconds.
 | |
| 
 | |
|  * The configuration file now accepts new options to change rootdir
 | |
|    (same than -r in xbps-bin(8)), cachedir (same than -c in xbps-bin(8))
 | |
|    and fetching cache connection limits. If settings are specified via
 | |
|    the flags -r and -c in xbps-bin(8)/xbps-repo(8), they are prefered
 | |
|    over the ones in the configuration file.
 | |
| 
 | |
|  * Fixed some bugs with virtual packages, to not adding duplicate package
 | |
|    dictionaries in the transaction dictionary.
 | |
| 
 | |
|  * xbps-bin(8)/xbps-repo(8): the 'show-files' target now prints the target
 | |
|    file on symlinks, i.e: "/sbin/foo -> /sbin/blah".
 | |
| 
 | |
|  * Changed the package pattern match code to the one available on NetBSD.
 | |
|    It's much better and provides more alternative pattern matching options.
 | |
| 
 | |
|  * A new configuration file in plist format to specify repositories and
 | |
|    virtual packages has been created, defaults to "/etc/xbps-conf.plist".
 | |
|    That means that you no longer need to register/unregister repositories;
 | |
|    just add your favourite local or remote repository and the first time
 | |
|    XBPS needs to access the pkg-index file it will be downloaded.
 | |
| 
 | |
|    More options and properties will be added to the configuration file in
 | |
|    the future. By default we use the official public remote repository,
 | |
|    and "dcron" package for a cron daemon package.
 | |
| 
 | |
|    The ABI/API is not compatible anymore with previous versions, you've
 | |
|    been advised :-)
 | |
| 
 | |
|  * xbps-bin(8): the 'check' target now also checks for modified symlinks,
 | |
|    and warns if any of them has been modified. For this to work, the package
 | |
|    metadata files.plist should contain the 'target' object in the 'links'
 | |
|    array (created automatically by xbps-src since 20110531).
 | |
| 
 | |
|  * Improved repository package index format (v1.2). The index now contains all
 | |
|    package objects, so that it's not necessary to fetch info from binpkgs.
 | |
|    The file will also be a bit bigger, but not to worry about.
 | |
| 
 | |
| xbps-0.8.1 (2011-05-27):
 | |
| 
 | |
|  * xbps-bin(8)/xbps-repo(8): more meaningful messages when a package couldn't
 | |
|    be found in the show, show-deps and show-files targets, rather than exiting
 | |
|    silently with only the error return value.
 | |
| 
 | |
|  * Added three new objects for the package props.plist metadata file to
 | |
|    specify homepage, license and build date.
 | |
| 
 | |
|  * Minor improvements to the generation of API documentation.
 | |
| 
 | |
| xbps-0.8.0 (2011-05-24):
 | |
| 
 | |
|  * xbps-bin(8): added -A and -M options, for setting package install reason
 | |
|    to automatic or manual. Obviously both cannot be used togeter.
 | |
| 
 | |
|  * xbps-{bin,repo}(8): -c (cachedir) argument now is an absolute path and
 | |
|    not relative to the root directory.
 | |
| 
 | |
|  * Fixed finally when a package should replace an installed package, but
 | |
|    at the same time the package to be replaced also needs to be updated
 | |
|    in the transaction. A real example:
 | |
| 
 | |
| 	- sg3_utils-1.28 is currently installed.
 | |
| 	- Installed package udisks-1.0.2_1 depends on sg3_utils-1.28.
 | |
| 	- sg3_utils-1.28 has been splitted into libsgutils for 1.31,
 | |
| 	  and libsgutils-1.31 has "replaces=sg3_utils<1.31".
 | |
| 	- udisks-1.0.2_2 depends on libsgutils-1.31.
 | |
| 
 | |
|    So now the old sg3_utils-1.28 package will be marked in its transaction
 | |
|    object as "remove" and the new sg3_utils-1.31 package as "update".
 | |
|    Therefore both packages (sg3_utils old/new) will be in the transaction
 | |
|    but one will be removed and the other one updated.
 | |
| 
 | |
|  * Fixed a bug that made all registered repositories to fail when the first
 | |
|    one couldn't be internalized in xbps_repository_pool_init().
 | |
| 
 | |
|  * Added the concept of package properties in the API. At this moment
 | |
|    only one property is fully working, "virtual". When xbps-bin(8)
 | |
|    sets this property for a package, its virtual package list will be
 | |
|    set in the XBPS_REGPKGDB plist in a package dictionary and the matching
 | |
|    logic will always prefer its virtual packages over the real ones.
 | |
|    You can do wonderful things with this, like always using development
 | |
|    package versions, or simply customize what packages you want to
 | |
|    install rather than the default ones. As a real example, you can now
 | |
|    use the 'xbps-devel' package rather than the stable package version
 | |
|    'xbps' before installing the system and package dependencies will
 | |
|    still be resolved:
 | |
| 
 | |
|    "$ xbps-bin set-prop virtual xbps-devel"
 | |
|    "$ xbps-bin install xbps-base-system"
 | |
| 
 | |
|    Only packages that have the "provides" object are valid for the
 | |
|    "virtual" property.
 | |
| 
 | |
|  * Moved the "replaces" handling logic into the API. But instead of
 | |
|    removing any package, the packages that should be replaced are
 | |
|    added into the transaction dictionary and marked as "remove".
 | |
|    The frontend is responsible to install, update, configure and remove
 | |
|    all packages by using the properties set in the transaction dictionary.
 | |
| 
 | |
|  * xbps-dgraph: now parses the "provides" object in the package properties
 | |
|    metadata plist file for packages providing virtual packages.
 | |
| 
 | |
|  * xbps-bin(8): added -R option for the "remove" target, to recursively
 | |
|    remove packages that were installed automatically by the package(s)
 | |
|    that we want to remove, and no other package currently depends on.
 | |
|    This is much like the remove and autoremove targets together, i.e
 | |
|    "xbps-bin -yp remove foo && xbps-bin -yp autoremove".
 | |
| 
 | |
|  * xbps-bin(8): added -D option to only show the URLs to download the binary
 | |
|    packages required by the "install", "update" and "autoupdate" targets.
 | |
| 
 | |
|  * xbps-bin(8): make the list target (without arguments) only show
 | |
|    packages that are fully installed. Previously packages in unpacked
 | |
|    state were also shown.
 | |
| 
 | |
|  * Added support for virtual packages. A virtual package is one that doesn't
 | |
|    exist in the repository, but other packages can provide it. A new array
 | |
|    in the package properties dictionary has been added to specify which
 | |
|    virtual packages the package supports. As an example, the `rsyslog'
 | |
|    package provides the virtual package `syslog-daemon-0'. Other packages
 | |
|    can depend in `syslog-daemon>=0' and `rsyslog' will satisfy the dependency.
 | |
| 
 | |
|  * Merged the `progress_callback' branch that makes possible to specify a
 | |
|    function callback to update progress while unpacking binary packages
 | |
|    and while fetching files. xbps-bin(8) now lists current extract files
 | |
|    with its size in bytes if -v flag is set.
 | |
| 
 | |
|  * Improved package dependency resolution in repositories by using a new
 | |
|    function, xbps_repository_pool_find_pkg() that returns a package dictionary
 | |
|    found in the first repository registered in the pool. It can also be used
 | |
|    to find the newest version found in all registered repositories.
 | |
| 
 | |
|  * Improved package dependency sorting algorithm that uses less memory,
 | |
|    it is 60% faster approximately and as bonus sorts all packages in the way
 | |
|    they should be (previously the sorting was a bit different for packages
 | |
|    with no run-time dependencies).
 | |
| 
 | |
|  * Many structural changes in the API. Made some stuff private and changed
 | |
|    some function arguments in the API, the ABI is not compatible anymore with
 | |
|    previous versions... anyway you shouldn't be using libxbps just yet.
 | |
|    The API documentation has been modified to stay in sync with reality.
 | |
| 
 | |
| xbps-0.7.3 (2011-01-16):
 | |
| 
 | |
|  * Fixed a bug that made libxbps fail to detect properly configuration files.
 | |
|    This made all updates in configuration files to be lost.
 | |
| 
 | |
|  * It is now possible to properly build against an external portable proplib
 | |
|    (with pkg-config support) and libfetch.
 | |
| 
 | |
|  * Enabled a bunch of compiler warnings in the configure script (if supported
 | |
|    by the compiler), and made symbol visibility dependent of configure tests.
 | |
| 
 | |
|  * Added --silent argument to the configure script, hiding compilation
 | |
|    details in the build process (disabled by default).
 | |
| 
 | |
| xbps-0.7.2 (2010-12-28):
 | |
| 
 | |
|  * Fixed some memleaks in libxbps and its clients, found by valgrind.
 | |
| 
 | |
| xbps-0.7.1 (2010-12-23):
 | |
| 
 | |
|  * xbps-dgraph: fixed small build error on x86 shown in buildbot tests.
 | |
| 
 | |
|  * libxbps: xbps_repository_pool_init(): don't loop forever if repository
 | |
|    pkg-index.plist files cannot be internalized.
 | |
| 
 | |
|  * libxbps: xbps_fetch_file(): set a 30 seconds timeout for transfers.
 | |
| 
 | |
|  * xbps-repo(8): fixed the 'genindex' target for the API changes in 0.7.0.
 | |
| 
 | |
|  * xbps-uhelper: fixed the 'unregister' target for the API changes in 0.7.0.
 | |
| 
 | |
| xbps-0.7.0 (2010-12-15):
 | |
|  
 | |
|  * xbps-repo(8): implemented the 'find-files' target to print which packages
 | |
|    own a file, link, directory, etc. Analogue to the one implemented in
 | |
|    xbps-bin(8). Works for local and remote repository, fetching info on-the-fly.
 | |
| 
 | |
|  * Fixed a typo in the configure script that broke detection of strlcat(),
 | |
|    reported and patch provided by Min Sik Kim in issue 2.
 | |
| 
 | |
|  * xbps-bin(8): added -F flag for the remove target. Unless it's set,
 | |
|    packages that are dependencies of other installed packages won't be removed.
 | |
|    This flag overrides this behaviour and forces the package removal.
 | |
| 
 | |
|  * xbps-{bin,repo}(8): indent uniformly all lines while listing packages
 | |
|    in xbps-bin or while searching for packages in xbps-repo.
 | |
| 
 | |
|  * xbps-repo(8): while searching for packages also try to find strings
 | |
|    in the short description object.
 | |
|  
 | |
|  * xbps-{bin,repo}(8): added -d arg to enable debugging output to stderr.
 | |
| 
 | |
|  * While updating packages, obsolete directories are also removed when
 | |
|    necessary. This helped to remove some empty dirs for python 2.6 > 2.7
 | |
|    update, just to mention a real example.
 | |
| 
 | |
|  * Cleaned up the API. Still not finished and there's a long way to have this
 | |
|    finished and ready for public consumption.
 | |
|  
 | |
|  * xbps-dgraph: new utility to generate graphviz' dot(1) graphs for package
 | |
|    metadata properties, such as dependencies, reverse dependencies, etc.
 | |
|    Extracts the info from installed package metadata plist files.
 | |
| 
 | |
|  * Performance improvements in libxbps and all utilities, by avoiding
 | |
|    unnecessary access(2) and chdir(2) calls while executing the
 | |
|    INSTALL/REMOVE scripts at pre/post (de)install time.
 | |
| 
 | |
|  * Fixed some memleaks on libxbps found while working on the xbps-dgraph
 | |
|    utility.
 | |
| 
 | |
| xbps-0.6.2 (2010-10-31):
 | |
| 
 | |
|  * libxbps: xbps_repository_unregister(): in remote repositories, also
 | |
|    remove the pkg index file and its directory.
 | |
| 
 | |
|  * libxbps: xbps_get_pkg_index_plist(): fixed a memleak.
 | |
| 
 | |
|  * xbps-bin(8): modify the 'list' target to accept an optional argument to
 | |
|    list packages in the specified state, so that you can list packages that
 | |
|    need to be purged, configured and broken (will be used in the future).
 | |
| 
 | |
|  * xbps-bin(8): added a new target 'find-files' to find which installed
 | |
|    package(s) own a file. Exact matches "/bin/mount" or patterns
 | |
|    "/usr/lib/libb[ao]b\*" can be specified.
 | |
| 
 | |
|  * When updating a package and removing obsolete files, don't forget to
 | |
|    remove those directories if they were empty.
 | |
| 
 | |
| xbps-0.6.1 (2010-10-23):
 | |
| 
 | |
|  * When replacing a package that is going to be updated in the transaction
 | |
|    do not remove it, just overwrite its files and continue. The updated
 | |
|    package will find that old files didn't match the SHA256 hash and will
 | |
|    skip them. This solves the issue of new package updates requiring new
 | |
|    dependencies with files that were previously stored in the old version.
 | |
|    For example gtk+-2.20 containing gdk-pixbuf, and gtk+-2.22 requiring
 | |
|    gdk-pixbuf externally.
 | |
| 
 | |
| xbps-0.6.0 (2010-06-03):
 | |
| 
 | |
|  * Synced libfetch code with NetBSD pkgsrc, updated to 2.31.
 | |
| 
 | |
|  * libxbps: improved xbps_get_file_hash() to mmap(2) rather than read(2)
 | |
|    the file we have to process. With mmap'ed files the hash can be
 | |
|    processed 5x faster than before, or even more in some cases.
 | |
| 
 | |
|  * libxbps: switch to OpenSSL SHA256 implementation and remove the one
 | |
|    previously used. It's faster and OpenSSL is required for libfetch so
 | |
|    there is not point in using it.
 | |
| 
 | |
|  * Added strlcpy() and strlcat() from OpenBSD. Use them if they weren't
 | |
|    found by the configure script on the system.
 | |
| 
 | |
|  * Added a configure script that emulates GNU autoconf but simplified, to
 | |
|    simplify customization for build options, flags, etc.
 | |
| 
 | |
| xbps-0.5.2.2 (2010-05-18):
 | |
| 
 | |
|  * libxbps: do not forget to reset a variable to 0 when removing obsolete files
 | |
|    that are unexistent or its hash didn't match.
 | |
| 
 | |
| xbps-0.5.2.1 (2010-05-18):
 | |
| 
 | |
|  * Due to human error, last fix in 0.5.2 was completely wrong and the
 | |
|    INSTALL/REMOVE scripts were simply empty so ENOENT was returned, clearly
 | |
|    this is expected and shouldn't be ignored.
 | |
| 
 | |
| xbps-0.5.2 (2010-05-18):
 | |
| 
 | |
|  * libxbps: while running INSTALL/REMOVE scripts, do not fail if a script
 | |
|    returns ENOENT but the script exists; that means the script did not match
 | |
|    the expected action on its switch statement and the fact can be simply
 | |
|    ignored.
 | |
| 
 | |
|  * libxbps: while upgrading packages and searching for obsolete files,
 | |
|    do not remove the files that did not match previous SHA256 hash. Also,
 | |
|    only remove obsolete dangling symlinks.
 | |
| 
 | |
|  * xbps-repo(8): fixed the 'genindex' target to not return error if any
 | |
|    package is already registered in the index.
 | |
| 
 | |
|  * xbps-repo(8): improved the 'search' target to also match substrings in
 | |
|    package/version tuples.
 | |
| 
 | |
| xbps-0.5.1 (2010-05-12):
 | |
| 
 | |
|  * Fixed build issues in RHEL5, Ubuntu and others distributions.
 | |
| 
 | |
|  * libxbps: changed the epoch component in version strings to the ':'
 | |
|    character to be differentiated from '-' in pkgname, and '_' in revision.
 | |
| 
 | |
|  * xbps-bin(8): added a new target 'show-orphans' that list all package
 | |
|    orphans currently installed.
 | |
| 
 | |
|  * Removed asciidoc build dependency, simply use the troff manpages.
 | |
| 
 | |
| xbps-0.5.0 (2010-05-01):
 | |
| 
 | |
|  * xbps-repo(8): fixed the 'search' target to also match patterns against
 | |
|    its description, and not only from the package/version tuple.
 | |
| 
 | |
|  * Cleaned up the code by using the LLVM's clang static analyzer, found
 | |
|    two possible NULL pointer dereferences in error branches and dead code.
 | |
| 
 | |
|  * xbps-bin(8): added new flag '-p' for the 'remove' and 'autoremove'
 | |
|    targets, to also purge the package(s) after successful removal.
 | |
| 
 | |
|  * xbps-repo(8): print a warning when registering a repository that has
 | |
|    been already added previously.
 | |
| 
 | |
|  * Add proplib-0.4.1 source and use it in XBPS. This is to avoid
 | |
|    an external dependency, so that we depend on the features of the
 | |
|    internal library. This also means that proplib is not required anymore.
 | |
| 
 | |
|  * Added support to read/write gzip compressed plists by default, thanks
 | |
|    to proplib-0.4 that gained new functionality.
 | |
| 
 | |
| xbps-0.4.1 (2010-02-28):
 | |
| 
 | |
|  * xbps-bin(8): fixed the install target to work with package names containing
 | |
|    multiple '-', thus resulting in incorrect package name.
 | |
|    [ https://bugs.launchpad.net/bugs/528212 ]
 | |
| 
 | |
|  * xbps-bin(8): fixed printing of incorrect message for packages containing
 | |
|    the 'preserve' object in its props dictionary.
 | |
|    [ https://bugs.launchpad.net/xbps/bugs/528216 ]
 | |
| 
 | |
| 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.
 |