README 3.79 KB
Newer Older
Bernhard Link's avatar
Bernhard Link committed
1 2
* What it is:

Bernhard Link's avatar
Bernhard Link committed
3 4
	This project is a leightweight feature complete manager of a debian
	package (i.e. binary .deb and source .dsc+.tar.gz+.diff.gz) repository.
Bernhard Link's avatar
Bernhard Link committed
5
	Emphasis is put on having all packages in the pool/-directory,
Bernhard Link's avatar
Bernhard Link committed
6 7
	maximal checking of all sources.
	generation of signed Release file, Contents, ...
8 9
	Libraries needed are libdb{3,4.?,5.?} and libz.
	Libraries used if available are libgpgme, libbz2 and libarchive.
Bernhard Link's avatar
Bernhard Link committed
10

Bernhard Link's avatar
Bernhard Link committed
11
* Current status:
Bernhard Link's avatar
Bernhard Link committed
12 13 14 15

	The main features work without problems. Some special use cases
	might not be very well tested.

Bernhard Link's avatar
Bernhard Link committed
16
* Some naming conventions:
17
	basename: the name of a file without any directory information.
18
	filekey: the position relative to the mirrordir.
Bernhard Link's avatar
Bernhard Link committed
19
	(as found as "Filename:" in Packages.gz)
20 21 22 23
	full filename: the position relative to /

	architecture: The term like "sparc","i386","mips",...
	component: Things like "main" "non-free" "contrib" ...
24 25 26
		   (somtimes also called sections)
	section: Things like "base" "interpreters" "oldlibs"
		   (sometimes also called subsections)
Bernhard Link's avatar
Bernhard Link committed
27 28 29 30 31 32 33 34 35 36 37 38
	type: The kind of packages, currently supported:
		"deb", "udeb" and "dsc".
	target: The smallest unit packages are in. A target
		is specified by the codename of the distribution
		it is in, the architecture, component and type.
		When architecture is "source" exactly when
		the type is "dsc".
	identifier: an internal string to specify a target,
		it has the form "<codename>|<component>|source"
		for type dsc, "<codename>|<component>|<architecture>"
		for type deb and "u|<codename>|<component>|<architecture>"
		for type udeb.
Bernhard Link's avatar
Bernhard Link committed
39

Bernhard Link's avatar
Bernhard Link committed
40
	md5sum: The checksum of a file, being in the format
41 42
		"<md5sum of file> <length of file>"

Bernhard Link's avatar
Bernhard Link committed
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

* Differences to how other standard tools handle the situation:

 - mirroring:
 	This makes no real mirror of the distribution, but
	only of it contents. Thus the Index-files will
	be different. (And thus no longer can be verified
	by the offical signatures). This means people using
	this mirror have to trust you to not include anything
	ugly, as they can only check your signature directly.
	(Or in other words: not useful for mirroring things
	 to be used by strangers).
 - location:
 	The directory layout under pool/ is only divided
	by the component and the sourcename. Ecspecially
	woody and updates/woody will share the same space,
	thus avoiding multiple instances of the same file.
Bernhard Link's avatar
Bernhard Link committed
60 61
	(Can also cause trouble in the rare cases, when both
	 have a file of the same name with different md5sum.
Bernhard Link's avatar
Bernhard Link committed
62
	 Using -f can help here).
63 64 65 66
 - 'byhand'-section
 	This is currently just implemented as alias for '-',
	to make sure lack of implementation does not cause them
	to land in a byhand-section...
67 68
 - Override files:
 	Only the ExtraOverride style of apt-ftparchive(1) is
Bernhard Link's avatar
Bernhard Link committed
69
	supported.
70 71 72 73 74
	(i.e. "packagename Section section\npackagename Maintainer maintainer\n")
	Note that other than apt-ftparchive case is most likely
	to be significant. (Having the wrong case in might also
	cause havoc in apt-ftparchive, as that changes the case of
	the fieldname, which might confuse other programms...)
Bernhard Link's avatar
Bernhard Link committed
75

76
* Things that might be intresting to know:
77 78 79 80 81

 - guessing the component:
 	If inserting a binary or source package without naming
	an component, this program has to guess of course.
	This will done the following way: It will take the
Bernhard Link's avatar
Bernhard Link committed
82 83
	first component with the name of the section, being
	prefix to the section, being suffix to the section
84 85 86
	or having the section as prefix or any.
	Thus having specifiend the components:
	"main non-free contrib non-US/main non-US/non-free non-US/contrib"
Bernhard Link's avatar
Bernhard Link committed
87
	should map .e.g
88 89 90 91
	"non-US" to "non-US/main" and "contrib/editors" to "contrib",
	while having only "main non-free and contrib" as components should
	map e.g. "non-US/contrib" to "contrib" and "non-US" to "main".

Bernhard Link's avatar
Bernhard Link committed
92
	NOTE: Always specify main as the first component, if you want things
93
	      to end up there.
94
	NOTE: unlike in dak, non-US and non-us are different things...