pkg_mgr - a Curses package manager for OpenBSD
----------------------------------------------

Homepage: http://rhaalovely.net/pkg_mgr/

Current features: browse categories, browse ports by categories,
show informations about ports, select multiple ports to
install/remove, show installed/orphaned packages, apply or
simulate changes. Search for ports based on fullpkgname or
comment. Ports-tree is not needed at the moment.

Install: make install :) (no need to install it to test it, only
install dependencies, untar src and run ./pkg_mgr)
Btw, you should use the ports sysutils/pkg_mgr if you don't want
to spill things all around your system.
Licence: BSD-ISC, what else ? (tm)

Current runtime-dependencies:
sqlports-compact, p5-Curses-UI, p5-DBD-SQLite, and optionally
p5-Gtk2 if you want to try the work-in-progress Gtk2 GUI.
At the moment, it only uses a plain DBD::SQLite backend, because
it loads faster, and i don't need so many queries.
If you want to give a try to DBIx::Class or Rose::DB backend,
you'll need the corresponding modules installed.
When updating your ports-tree, you should reinstall sqlports.

Debugging:
If you get pkg_tools message printed randomly on the screen, report
them to me, it's a mishandling of say/errsay.
If you get returned to a shell, it's likely that pkg_tools called
exit in case of bad failure. Gather the steps to reproduce within
pkg_mgr AND pkg_add/delete.

Real debugging:
$pkg_add p5-Term-ReadLine-GNU
$perldoc perldebug
in term A : $tty>/tmp/tty && sleep 10000
in term B : $PERLDB_OPTS=TTY=`cat /tmp/tty` perl -d `which pkg_mgr`
and report a proper trace/how to reproduce/etc.

TODO:
- learn to write perl
- handle updates (ports more recent)
- what to do when candidate is not found ?
- handle flavors/multipackages
- use /usr/ports or INDEX as alternative data sources
- write a Gtk2 frontend
- if ports-tree is available, permit to build things and show
PLIST/Makefile
- mirror selection from ftp.html
- if PKG_PATH is set, pkg_info is ok for not installed packages
- fix lib/run_depends when empty (openexr)

Credits: iMil for pkg_select ideas, the magic garden
(http://gcu.info) for help and perl tips, and all OpenBSD devs
for such a wonderful os.

Changelog:
2008-04-15
   * release 0.1
   * curses-ui only version, very simple

2010-12-26
   * release 0.2
   * now relies on sqlports-compact
   * use sql placeholders
   * most code rewritten twice (at least)
   * properly integrates with pkg_tools

2011-01-07
   * release 0.2.1
   * fix bug when simulating updates/installs w/ some pkgs
