This file describes special operations that must be performed for an
upgrade between GNUnet versions.  You can obtain version of GNUnet
that you have installed by running

$ gnunetd --version

If no migration procedure is listed for your version, a
data-preserving migration may not be possible.  For SVN versions,
you're on your own.

0.7.2c to 0.7.3
===============

Run gnunet-update.
Run "gnunet-setup -d", some options have changed and some are
new.  You might want to consider enabling the HTTP transport.
Also, for the dstore you can now select an implementation using
MySQL -- previously we only had an sqLite implementation.  Note
that this is a new option and one of the two choices must be
selected.  "gnunet-setup -d" should pick "dstore_sqlite" by 
default, but if you are using MySQL for the main database, you
may want to change this.


0.7.2b to 0.7.2c
=================

Run gnunet-update.


0.7.2a to 0.7.2b
=================

Run gnunet-update.


0.7.2 to 0.7.2a
===============

Run

$ gnunet-update

This may take a bit longer than usual (depending on your database
size, it may take a few hours -- gnunet-update will iterate once over
all entries in the database).  You will have to upgrade gnunet-gtk
and/or gnunet-qt as well.


0.7.1c to 0.7.2
===============

Stop gnunetd.  Remove "tcp_old" and "http" from the TRANSPORTS line in
/etc/gnunetd.conf (should they exist).  Failure to do so will cause
problems.  Then run

$ gnunet-update

and restart gnunetd.  Note that you must update gnunet-gtk and/or
gnunet-qt as well.


0.7.1b to 0.7.1c
================

Run

$ gnunet-update

This may take a bit longer than usual (depending on your
database size, it may take a few hours!).  You may also
want to manually re-run gnunet-insert (due to bugfixes
related to content expiration and preview-generation
bugs in an older libextractor version).


0.7.1a to 0.7.1b
================

Run

$ gnunet-update

(as the same user that also runs gnunetd).  Check your configuration
file for values with "$"-symbols.  If it contains any, you must add
definitions for those paths into a special new section "PATHS" --
otherwise GNUnet will not expand the "$"-variables.  Alternatively,
reconfigure using gnunet-setup.  The default location for gnunetd's
files changed from "/var/lib/GNUnet" to "/var/lib/gnunet".  If you
create a new configuration file from scratch (or want to switch to
the new default), you should rename the old directory at the time 
of the change.


0.7.1pre0, 0.7.1pre1, 0.7.1pre2 and 0.7.1 to 0.7.1a
===================================================

Run

$ gnunet-update

(as the same user that also runs gnunetd).


0.7.0e to 0.7.1pre0
===================

First of all, read README.debian and study the changes in the
dependencies.  Install all dependencies and check the version
numbers.  Once you have managed to compile GNUnet, read on.

There are now two TCP transports, one using the 0.7.1 protocol and one
using the 0.7.0e protocol to allow the 0.7.1 network to connect with
the 0.7.0 network.  The old TCP transport is hardwired to use port
2089, so you may have to open some new holes in your firewall (you can
only change the port by editing the source).  The new TCP transport
will run at whatever port is specified in the configuration.

Next you should edit your gnunetd.conf file as follows:
* remove http, smtp from TRANSPORTS, add "tcp_old"
* if HTTP-PROXY-PORT is set, add ":PORT-NUMBER" 
  to the HTTP-PROXY line

If your "gnunetd.conf" file is not in /etc,  you may
have to edit scripts to pass "-c THE_PATH/gnunetd.conf"
to gnunetd as an argument.  Alternatively, move the
configuration to "/etc/gnunetd.conf".


Finally, stop your old gnunetd process and run 

# gnunet-update
# gnunet-setup -d
$ gnunet-setup 

to update the configuration and run the setup tool to configure new
options (you maybe able to skip gnunet-setup).  Restart gnunetd.


0.7.0pre6, 0.7.0, 0.7.0{a,b,c,d} to 0.7.0e
==========================================

Run

$ gnunet-update

(as the same user that also runs gnunetd).


0.7.0pre4 and 0.7.0pre5 to 0.7.0pre6
====================================

Run

$ rm -f /var/lib/GNUnet/content/gnunet.dat ~/.gnunet/content/gnunet.dat
$ gnunet-update

(as the same user that also runs gnunetd).


0.7.0pre1 and 0.7.0pre2 to 0.7.0pre3
====================================

Interesting.  You got those to RUN!?


before 0.7.0pre1 to 0.7.0pre1
=============================

Migration is NOT possible, we're breaking compatibility big time.
Note that 0.7.0pre1 is a pre-release for 0.7.0, so hands-off if you do
not want to deal with a few bugs and the lack of documentation and
user interfaces.  Generally, you want to do

$ rm -rf .gnunet

before starting 0.7.0pre1.  Also, while it maybe possible that 
migration from 0.7.0pre1 to 0.7.0 will be painless, there's no
guarantee for that.

Note that many things have changed in this version, so please read
the documentation very carefully, but also keep in mind that not
all of the documentation is up-to-date with the code at this point.

