apt-move for Debian
----------------------

As of version 4.2 we now store packages in pools.

apt-move 4 differs drastically from previous versions.  We no longer store
and use Package files in .apt-move.  In its place, we use files similar to
the override files to keep track of available packages.  These files are
generated from Packages (and Sources) files retrieved by apt.  As a result of
this, deleting obsolete packages has become a lot easier to handle.  This has
also made it possible to remove the need for setting ``DELETE'' to
``duplicate'' as packages won't be removed unless they disappear from the
upstream Packages file, or there is a new version currently in the repository.

In order to cut down the time consumed by ``apt-move packages'', index files
are now created when a package enters the repository.  This means that the
Packages (and Sources for source packages) entry is only computed once, when
the package is first moved into the repository.

Another major change is the removal of all references to rsync.  The reason
for this is that all retrievals should be done through apt in order to minimise
the duplication of code.  As a consequence this, you can now mirror all
(or a subset) of your ``sources.list'' sites.  The result will be merged under
a single dist tree as if they originated from one site.

Architecture all packages are now handled properly.

There are a number of changes in the command-line interface of apt-move.  In
particular, only one command is accepted for each invocation apt-move and
-b and the assorted functionality has been removed since they can be easily
achieved by existing tools such as screen or even tee.

Upgrading to 4.2
----------------------

Since we now use pools to store packages, you can not use apt-move 4.2 directly
on a repository maintained by an older version of apt-move.  In order to
upgrade your existing repository, you need to:

1. Update ``/etc/apt-move.conf''.
2. Execute ``apt-move fsck''.
3. Insert entries for your apt-move mirror at the top of
   ``/etc/apt/sources.list''.

Please note that the default suite names are now chosen according to Debian
Release files.  If your apt-move archive refers to code names such as
``woody'' or ``sid'', you will need to create aliases for them.  Please
refer to the note about code names in the apt-move(8) manual page.

Local Files
----------------------

If you have any local files (files under $dist/local where $dist is a
distribution, e.g., potato) in your repository, you need to move them out of
the way before you do this.  Consult the manual page as to how you can move
them back using $dist.{binary, source}.local files.

non-US/contrib
----------------------
You may notice that apt-move does not create this section automatically.  This
is because the only way for apt-move to enumerate sections it by looking at the
packages.  Since this section is currently empty, apt-move won't know anything
about it.  If you need it to exist, simply create the appropriate .index
directories for it and apt-move will generate empty Packages/Sources files
for it correctly.

Skipping Files
----------------------
Sometimes apt-move will refuse to move a package into an archive.  This is
often caused by certain packages in contrib/non-free/non-US which contain
incorrect Section headers.  Because apt-move needs to deduce the pool
directory of package prior to looking up the Packages files, the Section
header must be set correctly for packages that are outside main.  The
solution in this case is to report this to the maintainers of those packages.

Herbert Xu, <herbert@debian.org>
$Id: README,v 1.8 2003/11/02 07:28:19 herbert Exp $
