<title>APT Method Interface </title>
<author>Jason Gunthorpe <email>jgg@debian.org</email></author>
-<version>$Id: method.sgml,v 1.4 1998/10/30 07:53:49 jgg Exp $</version>
+<version>$Id: method.sgml,v 1.6 1998/12/14 04:00:34 jgg Exp $</version>
<abstract>
This document describes the interface that APT uses to the archive
<p>
The APT method interface allows APT to acquire archive files (.deb), index
-files (Packages, Revision, Mirrors) and source files (.tar.gz, .diff). It
+files (Packages, Release, Mirrors) and source files (.tar.gz, .diff). It
is a general, extensible system designed to satisfy all of these
requirements:
<tag>Site<item>String indicating the site authorization is required for
<tag>User<item>Username for authorization
<tag>Password<item>Password for authorization
+<tag>Fail<item>Operation failed
+<tag>Drive<item>Drive the media should be placed in
<tag>Config-Item<item>
A string of the form <var>item</>=<var>value</> derived from the APT
configuration space. These may include method specific values and general
the ones it wants.
<tag>Single-Instance<item>Requires that only one instance of the method be run
This is a yes/no value.
-<tag>Pre-Scan<item>Method can detect if archives are already available.
- This is a yes/no value.
<tag>Pipeline<item>The method is capable of pipelining.
+<tag>Local<item>The method only returns Filename: feilds.
<tag>Send-Config<item>Send configuration to the method.
<tag>Version<item>Version string for the method
</taglist>
<tag>403 Media Failure<item>
A method that deals with multiple media requires that a new media be inserted.
The Media field contains the name of the media to be inserted.
-Fields: Media
+Fields: Media, Drive
<tag>600 URI Acquire<item>
APT is requesting that a new URI be added to the acquire list. Last-Modified
<tag>603 Media Changed<item>
This is sent in response to a <em>403 Media Failure</> message. It
indicates that the user has changed media and it is safe to proceed.
-Fields: Media
+Fields: Media, Fail
</taglist>
</sect>
<!-- }}} -->
-<!-- Examples {{{ -->
+<!-- Method Notes {{{ -->
<!-- ===================================================================== -->
-<sect>Examples
+<sect>Notes
+
+<p>
+The methods supplied by the stock apt are:
+<enumlist>
+<item>cdrom - For Multi-Disc CDROMs
+<item>copy - (internal) For copying files around the filesystem
+<item>file - For local files
+<item>gzip - (internal) For decompression
+<item>http - For HTTP servers
+</enumlist>
+
+<p>
+The two internal methods, copy and gzip, are used by the acquire code to
+parallize and simplify the automatic decompression of package files as well
+as copying package files around the file system. Both methods can be seen to
+act the same except that one decompresses on the fly. APT uses them by
+generating a copy URI that is formed identically to a file URI. The destination
+file is send as normal. The method then takes the file specified by the
+URI and writes it to the destination file. A typical set of operations may
+be:
+<example>
+http://foo.com/Packages.gz -> /bar/Packages.gz
+gzip:/bar/Packages.gz -> /bar/Packages.decomp
+rename Packages.decomp to /final/Packages
+</example>
+
+<p>
+The http method implements a fully featured HTTP/1.1 client that supports
+deep pipelining and reget. It works best when coupled with an apache 1.3
+server. The file method simply generates failures or success responses with
+the filename field set to the proper location. The cdrom method acts the same
+except that it checks that the mount point has a valid cdrom in it. It does
+this by (effectively) computing a md5 hash of 'ls -l' on the mountpoint.
</sect>
<!-- }}} -->