
In my
previous
blog about Debian's growing archive size I pointed as reference to an
hard to read
table on the
ftp-master server, and missed that the table is not self explanatory
and on the first glance hard to read.
The table currently looks like the following:
e s p-u t u t-p-u l-r s-u o o-p-u s-r
---------------------------------------------------------------------------------------------
all 1096 12034 70 14442 15784 20 1 12 8910 230 0
alpha - - - - - - - - 13183 297 -
amd64 1164 16997 242 18581 19605 39 - 21 13964 342 -
arm - - - - - - - - 13251 291 -
armel 988 16401 239 17879 18680 39 - 21 13411 327 -
hppa - - - - - - - - 13227 264 -
hurd-i386 445 - - - 12622 - - - - - -
i386 1178 17188 242 18727 19751 39 - 21 14377 350 -
ia64 951 16036 239 17303 18045 39 - 21 13554 329 -
kfreebsd-amd64 807 14499 231 15905 16480 39 - 21 - - -
kfreebsd-i386 826 14491 231 15881 16498 39 - 21 - - -
mips 974 16269 241 17730 18504 39 - 21 13638 323 -
mipsel 984 16291 239 17807 18558 39 - 21 13600 319 -
powerpc 1078 16677 239 18156 19036 39 - 21 13872 332 -
s390 1030 16252 239 17678 18469 39 - 21 13331 327 -
source 522 14974 51 16376 17405 1 19 6 12519 75 151
sparc 992 16423 239 17895 18673 39 - 21 13542 329 -
The lines represent different hardware architectures Debian supports,
like amd64 (for 64-Bit PCs), i386 (for 32-Bit PCs), etc. Two lines are kind
of special, the one marked
source and the one marked
all.
Let's start with the
source line: That counts the number of
source packages. Those are rarely seen by end users. Source packages
contain the actual source needed to build a package, as well as Debian
specific changes and a blue print on how to create an actual installable
binary package from the source.
As you can see Debian supports quite some architectures, which leads to
a small problem on the mirrors: Quite a lot shipped in Debian is actually
architecture independent. For example documentation, most sound and
graphic files, or level data for a game. To avoid storing the very same
date multiple times, Debian makes haeavy use of so called
arch: all
packages. You might have noticed them already while installing them:
Hole:5 ftp://ftp.rrzn.uni-hannover.de/debian/debian/ squeeze/main extremetuxracer-data all 0.4-4 [28,1 MB]
Hole:6 ftp://ftp.rrzn.uni-hannover.de/debian/debian/ squeeze/main extremetuxracer amd64 0.4-4 [273 kB]
In this example I installed a quite small game on the amd64 architecture,
which depends on a quite big architecture independent package (notice the
all between package name and version) containing it's data.So, to get the actual number of packages a user can install on a
specific architecture, one has to add the number in the
all line
to the number in the specific architecture line.
But what column to pick?
The columns represent so called suites. The
s is for
stable, currently Debian 6.0 aka
Squeeze
and
o for
oldstable, aka Debian 5.0
Lenny
. The
t
is for testing, aka
Wheezy
or the upcoming Debian 7.0. The
u is for unstable aka
sid
. The
e is for
experimental, used for stuff probably not yet ready to be part of a stable
release and therefore not uploaded to unstable. The rest is not that
interesting (as you see it's mostly empty anyway), like
s-u for stable
updates, several
p-u suites for
proposed-updates
(that is
stuff that might end up in the next point release, and should be tested).
And then we have
s-r and
l-r which I forgot what they are
about... Sorry.
But back to topic: As I explained briefly a source package is mostly
used internally, but may create several binary packages, which a user can
install. So the most interesting number for users is the number of binary
packages on an arch. So we usually publish this number. So for example,
using squeeze on i386 you can install: 17'188 (architecture dependent
packages, column
s row
i386) + 12'034 (architecture
independent packages columns
s row
all) = 29'222 packages.
And for completeness: They are build from 14'974 source packages (row
source column
s).
So if look that up for unstable on amd64 you should get to the result
35'389 binary packages build from 17'405 source packages. Slightly less
than I reported yesterday, because we removed some old stuff e.g.
obsolete libraries in the meantime.
Update: J rg just explained me, that the
s-r and
l-r are there to ensure Debian complies with the GPL. They hold
the sources of everything shipped in the original lenny and squeeze
releases.
Update 2: J rg explained it to me again:
s-r and
l-r contains sources used without being referenced by a package,
and so might get lost otherwise. One example is the kernel used by the
debian installation system. You have to boot a kernel somehow, so it can't
be packaged. But we still need to save the sources, so it is referenced in
these suites and won't get lost.