%%
%%

\chapter{Platform Support}
\label{ThePlatformChapter}
\index{Support!Platform}
\index{Platform Support}
\addcontentsline{toc}{section}{Platform Support}

\section{General}
\index{General }
\addcontentsline{toc}{subsection}{General}

This chapter describes the requirements for having a
supported platform (Operating System).  In general, Bacula is
quite portable. It supports 32 and 64 bit architectures as well
as bigendian and littleendian machines. For full
support, the platform (Operating System) must implement POSIX Unix
system calls.  However, for File daemon support only, a small
compatibility library can be written to support almost any
architecture.

Currently Linux, FreeBSD, and Solaris are fully supported
platforms, which means that the code has been tested on those
machines and passes a full set of regression tests.

In addition, the Windows File daemon is supported on most versions
of Windows, and finally, there are a number of other platforms
where the File daemon (client) is known to run: NetBSD, OpenBSD,
Mac OSX, SGI, ...

\section{Requirements to become a Supported Platform}
\index{Requirements!Platform}
\index{Platform Requirements}
\addcontentsline{toc}{subsection}{Platform Requirements}

As mentioned above, in order to become a fully supported platform, it
must support POSIX Unix system calls.  In addition, the following
requirements must be met:

\begin{itemize}
\item The principal developer (currently Kern) must have
   non-root ssh access to a test machine running the platform.
\item The ideal requirements and minimum requirements
   for this machine are given below.
\item There must be a defined platform champion who is normally
   a system administrator for the machine that is available. This
   person need not be a developer/programmer but must be familiar
   with system administration of the platform.
\item There must be at least one person designated who will
   run regression tests prior to each release.  Releases occur
   approximately once every 6 months, but can be more frequent.
   It takes at most a day's effort to setup the regression scripts
   in the beginning, and after that, they can either be run daily
   or on demand before a release. Running the regression scripts
   involves only one or two command line commands and is fully
   automated.
\item Ideally there are one or more persons who will package
   each Bacula release.
\item Ideally there are one or more developers who can respond to
   and fix platform specific bugs.
\end{itemize}

Ideal requirements for a test machine:
\begin{itemize}
\item The principal developer will have non-root ssh access to
  the test machine at all times.
\item The principal developer will have a root password.
\item The test machine will provide approximately 200 MB of
  disk space for continual use.
\item The test machine will have approximately 500 MB of free
  disk space for temporary use.
\item The test machine will run the most common version of the OS.
\item The test machine will have an autochanger of DDS-4 technology
  or later having two or more tapes.
\item The test machine will have MySQL and/or PostgreSQL database
  access for account "bacula" available.
\item The test machine will have sftp access.
\item The test machine will provide an smtp server.
\end{itemize}

Minimum requirements for a test machine:
\begin{itemize}
\item The principal developer will have non-root ssh access to
  the test machine when requested approximately once a month.
\item The principal developer not have root access.
\item The test machine will provide approximately 80 MB of
  disk space for continual use.
\item The test machine will have approximately 300 MB of free
  disk space for temporary use.
\item The test machine will run the the OS.
\item The test machine will have a tape drive of DDS-4 technology
  or later that can be scheduled for access.
\item The test machine will not have MySQL and/or PostgreSQL database
  access.
\item The test machine will have no sftp access.
\item The test machine will provide no email access.
\end{itemize}

Bare bones test machine requirements:
\begin{itemize}
\item The test machine is available only to a designated
  test person (your own machine).
\item The designated test person runs the regression
  tests on demand.
\item The test machine has a tape drive available.
\end{itemize}
