<title>APT Cache File Format</title>
<author>Jason Gunthorpe <email>jgg@debian.org</email></author>
-<version>$Id: cache.sgml,v 1.2 1998/07/05 05:43:09 jgg Exp $</version>
+<version>$Id: cache.sgml,v 1.7 1999/05/23 22:55:55 jgg Exp $</version>
<abstract>
This document describes the complete implementation and format of the APT
unsigned long VersionCount;
unsigned long DependsCount;
unsigned long PackageFileCount;
+ unsigned long MaxVerFileSize;
// Offsets
unsigned long FileList; // PackageFile
PackageCount is especially usefull for generating user state structures.
See Package::Id for more info.
+<tag>MaxVerFileSize<item>
+The maximum size of a raw entry from the original Package file
+(ie VerFile::Size) is stored here.
+
<tag>FileList<item>
This contains the index of the first PackageFile structure. The PackageFile
structures are singely linked lists that represent all package files that
{
// Names
unsigned long FileName; // Stringtable
+ unsigned long Archive; // Stringtable
+ unsigned long Component; // Stringtable
unsigned long Version; // Stringtable
- unsigned long Distribution; // Stringtable
+ unsigned long Origin; // Stringtable
+ unsigned long Label; // Stringtable
+ unsigned long Architecture; // Stringtable
unsigned long Size;
-
+
// Linked list
unsigned long NextFile; // PackageFile
unsigned short ID;
<tag>FileName<item>
Refers the the physical disk file that this PacakgeFile represents.
-<tag>Version<item>
-Version is the given version, ie 1.3.1, 2.4_revision_1 etc.
-
-<tag>Distribution<item>
-Distribution is the symbolic name for this PackageFile, hamm,bo,rexx etc
+<tag>Archive
+<tag>Component
+<tag>Version
+<tag>Origin
+<tag>Label
+<tag>Architecture
+<tag>NotAutomatic<item>
+This is the release information. Please see the files document for a
+description of what the release information means.
<tag>Size<item>
Size is provided as a simple check to ensure that the package file has not
{
unsigned long VerStr; // Stringtable
unsigned long Section; // StringTable (StringItem)
+ unsigned long Arch; // StringTable
// Lists
unsigned long FileList; // VerFile
unsigned long Size;
unsigned long InstalledSize;
+ unsigned long Hash;
unsigned short ID;
unsigned char Priority;
};
This string indicates which section it is part of. The string should be
contained in the StringItem list.
+<tag>Arch<item>
+Architecture the package was compiled for.
+
<tag>NextVer<item>
Next step in the linked list.
The archive size for this version. For debian this is the size of the .deb
file. Installed size is the uncompressed size for this version
+<tag>Hash<item>
+This is a characteristic value representing this package. No two packages
+in existance should have the same VerStr and Hash with different contents.
+
<tag>ID<item>
See Package::ID.
<p>
<example>
#define pkgFLAG_NotSource (1 << 0)
+#define pkgFLAG_NotAutomatic (1 << 1)
</example>
</sect1>