Re: packages being essential but having stuff in /usr/?!
On 14.07.2010 17:36, Christoph Anton Mitterer wrote:
I wonder why this never came up before,.. or did it an I'm just blind?
I've just read parts of POSIX, where echo is more or less deprecated in
favour of printf
Whether users will do this or not is a different question but I've seen
that Debian/corutils ships echo in /bin, but printf in /usr/bin.
The same for many other binaries part of coreutils.
Now coreutils is marked as essential, right?!
This means per policy section 3.8
"Essential is defined as the minimal set of functionality that must be
available and usable on the system at all times"
As far as I understand,.. it's fully ok, to have /usr on a separate
(i.e. non-root-) filesystem.
System initialisation and in general system script are outside POSIX
scope, as well many common command executed by such scripts
(administration tools are also outside POSIX).
Additionally system initialisation is very complex and it should handle
to many different setups (from no local disks to very complex local
disks setup, etc.).
So it is impossible to have POSIX compatible scripts (or at least
at early stage) and on the other hand, over-specifying the booting
process will reduce flexibility to build a better system and to
correct existing and future bugs.
Our "boot people" take care about init scripts, their requirements
and thus what it should be moved from /usr to root.
It is a case-by-case analysis.
OTOH essential packages will provide a basic system for all debian
packages, developers and users, thus it is important to have
more than basic tools to boot in "essential" packages.
And the contrary is also valid: a diskless system need some
network packages, some of them surely not "essential"
btw: Personally, I'd support to stop using echo,.. it's not really
not portable? Do you have some real/widely used examples of
Most echo command don't start with "-", thus fully portable, but
nearly all echo support the -n option.
BTW GNU/Linux is not fully POSIX compatible by design. It follow the
LSB (an other standard) and there is a ISO groups to find and try
to correct the differences. "echo" is one of "required" difference.
Anyway the initialisation script are special and well distribution
controlled, thus it would be easier to "posixify", when/if needed.
Anyway this was discussed already several times.