base packages / essential packages / required packages
There seems to be a bit of confusion about which packages should have
`Essential: yes', which should have the `required' priority, which
should be in the `base' section/directory and which should be on the
base disks.
As far as I can see, the base section/directory should contain
everything that's on the base disks. However, there are some packages
that are useful on the base disks (whatever has /usr/bin/ftp, for
example) which are not really essential and which the user should be
able to deinstall, so not everything on the base disks should have
the `required' priority.
It seems to me that everything that has the `required' priority should
also either have an Essential field to prevent accidental
deinstallation, or be depended on by some other required package, and
possibly both.
Here is my analysis of the packages in myrddin's
unstable/binary-i386/base directory. Packages in section `base' are
installed on a virgin system fresh from the basedisks. Packages with
a priority other than `important' do not have an Essential field.
Package Section Priority? Essential?
adduser base important
ae base important
base base required yes
bash base required yes
bsdutils base required yes
chfn base important
diff base required yes
dpkg base required yes
e2fsprogs base required yes
ed base required yes
fdflush base important
fileutils base required yes
findutils base required yes
gawk base required yes
grep base required yes
gzip base required yes
hostname base required yes
image base required yes [1]
kbd base required yes
last admin important
ldso base required yes
libc5 base required no [2]
libdb1 base required no [2]
libgdbm1 base required no [2]
libreadline2 base required no [2]
lilo admin important
mbr admin standard [3]
miscutils base required yes [4]
modules base important [5]
mount base required yes
ncurses-base base required yes
ncurses-bin base important
ncurses3.0 base required no [2]
procps admin important [6]
sed base required yes
setserial admin important
shellutils base required yes
syslogd base required yes
syslinux admin standard [3]
sysvinit base required yes
tar base required yes
textutils base required yes
timezone base important [7]
Finally, the file `dpkg-1.1.0.nondebbin.tar.gz' appears in this
directory. It should not - hide it away somewhere in case someone
actually tries to use it.
Ian.
Footnotes:
[1] (image): A better thing to do might be to make it `base/important'
and have its prerm check that you weren't going to remove your only
lilo-bootable kernel.
[2] (libc5, libdb1, libgdbm1, libreadline2): These packages are not
essential in and of themselves, so they don't need `Essential: yes' -
dpkg will prevent their removal anyway. (They don't need `Essential:
no' either, since that's what the absence of the field means.)
[3] (mbr, syslinux): I thought that these were only required to create
boot sectors or disks, respectively ? If so then the .deb files do
not need to be installed on the user's system, so we don't need to
make them so heavily required. If lilo requires mbr to work then mbr
needs to be at least important, rather than standard - or perhaps we
can get the MBR package folded into LILO's upstream source, which
would make it available to the wider Linux community.
[4] (miscutils): This is being rearranged, of course.
[5] (modules): The prerm should check to see if you need the modules
utilities, perhaps by examining /proc/modules or /etc/modules. That
way people who don't want modules don't need the modutils.
[6] (procps): If there are preinst scripts that use killall &c rather
than start-stop-daemon then they should probably be fixed. We should
check; if there are any that are unfixable then we may have to make
procps `required'.
[7] (timezone): I assume that the system won't grind to a halt if it
can't find its timezone data.
Reply to: