BUGS
====

See issue list: http://code.google.com/p/opkg/issues/list

 * Resolve 'XXX', 'FIXME' and 'TODO' comments in the code.

 * Remove dead and duplicate code. Refactor duplicated functionality.

 * Remove pkg_info_preinstall_check().

 * Reduce memory used per pkg_t and peak memory use in general.

 * Refactor opkg_install_pkg() into more precise functions.

 * pkg_hash_fetch_best_installation_candidate() is linear search O(P*PN)
   and is slow (frequently called).
      P provider
      PN pkgs in a provider
   It can be O(P) if a hash table is used.

Solver bugs:

 * opkg_list_upgradable_cmd() does not work with an external solver enabled.

 * Fix hacky way libsolv's arch comparisons are bypassed when
   prefer_arch_to_version is not set in libsolv_solver_set_arch_policy().
   See openSUSE/libsolv issue #98 on github.

 * libsolv's upgrade will not automatically remove orphaned packages.
   This causes failures of tests core/18_upgrade_recommends.py
   and misc/update_loses_autoinstalled_flag.py.

 * The different order in which libsolv visits packages can cause
   some file ownership problems causing regress/issue50.py to fail
   because of the same problem as issue 156.

 * libsolv supports dist-upgrade. The functionality to use it is implemented
   in opkg_solver.c and opkg_solver_libsolv.c. Add an option in opkg_cmd to
   use this.

 * for libsolv get correct package during a reinstall when there are two
   packages with the same name and version, and revert hack in pkg_hash.c

FEATURES
========

 * Improve dpkg compatibility, according to the Debian Policy Manual.
   http://www.debian.org/doc/debian-policy/ch-controlfields.html
