20060703:

AFFECTS
users of sysutils/portupgrade
AUTHOR
sem@FreeBSD.org

Because portupgrade had a problem with detecting Berkley DB version 2 or newer, and the default database format is now set to use these versions, you can end up with a portupgrade that dose not work with older databases. A quick fix is to remove the databases, type:
`rm /var/db/pkg/pkgdb.db /usr/ports/INDEX*.db'.
portupgrade will recreate them automatically. It does absolutely no harm.
If you do not want remove the databases, you should detect what database type do you use, and set the port options for portupgrade accordingly. Follow these instructions:

  • run 'pkgdb -fu' *before* upgrading and take a look on the output. You can see database format there as: format:XXX, where XXX is your current database format.
  • Go to portupgrade port directory and configure the port with `make config' command. If you have bdb_* format, then turn on the BDB4 option. If you have bdb1_* format, then turn off BDB4 and turn on the BDB1 option. If you have dbd_hash format, then turn off all options.
  • Upgrade portupgrade.

Note: if you change database format with changing port options, you should remove the ruby-bdb* port that you don't need anymore. Alternatively, you can hard code database format in your pkgtools.conf.
$FreeBSD: ports/UPDATING,v 1.354 2006/07/03 09:09:58 sem Exp $
$FreeBSD: ports/UPDATING,v 1.356 2006/07/04 00:48:39 lioux Exp $
$FreeBSD: ports/UPDATING,v 1.358 2006/07/07 06:12:38 sem Exp $
$FreeBSD: ports/UPDATING,v 1.370 2006/07/25 07:52:13 blackend Exp $