Debian GNU/kFreeBSD port naming convention
==========================================

Written by Guillem Jover <guillem@debian.org> and
Robert Millan <rmh@debian.org>

0. What does mean the k in kFreeBSD ? [theory]

  The k means "kernel of", because FreeBSD is a complete
  system we need to distinguish them from its kernel.

  "FreeBSD is a *system*, not a kernel with a bunch of other stuff thrown on
   top to make a "distro." The kernel, userland programs, libraries, booting
   system, etc., are all tested together to make a release that's known
   good." -- Wes Peters (FreeBSD Core Team Member)

1. What is an Operating System ? [theory]

  The usual meaning of "Operating System" is the one that implies the kernel
  and a set of userland components (C library, shell, basic utilities, etc).
  [Wether this definition fits better for "Debian" or "GNU/Linux" is beyond
  the scope of this document]. This is the definition that we use in this
  document although we acknowledge that there are different opinions on this
  matter.

2. Current uname -s output. [practice]

  POSIX does not define explicitly what's an OS but it's defined implicitly
  by the scope of the standard itself, which covers from the system library
  API to basic userland utilities. This is true for almost every Unix-like
  around.

  Some would argue that it may print the kernel used, showing these
  counter-examples:

[  Solaris -> SunOS (this is due to legacy name change)
  GNU/Linux -> Linux (flames) ] -> expand

3. Our port uname -s output. [practice]

  We have chosen to output GNU/kFreeBSD because most build systems assume
  this output to match with the userland. The problem we face is that
  our mix has not been done before so most build systems will break.

  The correct way to act would be to fix the hundreds of systems broken
  but we want a working system now, and we don't have enough man power.
  So we have decided to output the complete userland/kernel.

  Build Systems:

  3.1 FreeBSD || <arch>-freebsd may be missparsed, break builds
  3.2 kFreeBSD is not enough to distinguish userland
  3.3 GNU/* is the best technical compromise we can afford

4. What have we decided ?

	uname -s:		GNU/kFreeBSD
	config.guess triplet:	<arch>-pc-kfreebsd<version>-gnu
	Debian name:		Debian GNU/kFreeBSD
	Debian arch name:	kfreebsd-<arch>

