/
upgradedb.3.0a8-to-3.0a9.02/
upgradedb.3.0a8-to-3.0a9.02/files/
upgradedb.3.0a8-to-3.0a9.02/scripts/
BEFORE UPGRADING
================

Before you upgrade, first do everything in the file 'dofirst', in your
database.  Make sure to review what it is doing before you blindly paste
it in--if you have changed $sys or other core objects it may overwrite
those changes.  If you use tinyfugue, you can easilly paste this into
the database with the command:

    /quote -0 '"dofirst"

Then shutdown your database.

TO UPGRADE
==========

Most of the upgrade process is automated and handled by the 'upgrade'
program, which is a PERL 5 script.  PERL 5 should exist in:

    /usr/local/bin/perl

If it does not, edit 'upgrade' to point to the appropriate location.  Make
sure to read the notes on what you should do Before Running 'upgrade'.

Upgrade will handle most of the patching of your database.  However, you
may be required to edit and manually apply some patches.  If this occurs
(which it inevitably will, if you have changed your core objects), simply
read the *.rej files and apply the patches by hand.  Some notes on the patch
syntax, to help understand what is in the reject files:

    * Any line beginning with a minus sign (-) signify that the line is
      to be removed
    * Any line beginning with a plus sign (+) signify that the line is
      to be inserted.

All other lines exist to give 'patch' context--and are often what may cause
the patch to fail (because the context is not correct).  When manually
applying the patch you will want to make sure all of the '-' lines are
removed, and all of the '+' lines are added.

When Problems Arise
-------------------

During the upgrade process, if you see any warnings make note of them.
You may see a warning about 'object never defined', such as with
$map_of_taobh_thiar.  What this means is the object was removed from
the db, although there is still a reference to it somewhere.  If it
is an object you want to keep, stop the upgrade (CTRL-C) and edit
work/src/+INDEX and insert the object name (without the dollar-sign)
at the end of the file, then run: upgrade -finish.  If other problems
arise and you are unsure as to what to do, contact the authors.

Before Running 'upgrade'
------------------------

Before you run you should be relatively aware of your binary db's location
(make sure genesis is not currently running on the binary db), the coldcc for
your binary db, and you will need Patch version 2.2 or greater.  To find
out the version of patch you have, run patch -v.  If you are running
the OSF patch, you will need to upgrade.  You can get the latest version of
patch from:

    ftp://prep.ai.mit.edu/pub/gnu/patch-2.4.tar.gz

It does not need to be installed by the system, but it does need to exist
in your PATH for 'upgrade' to find it.  The reason you need to run a new
patch is old versions either do not support the uniform context diff, or
they have hard limits on the length of a line (restricting it to 4096
characters).