]> git.sur5r.net Git - bacula/docs/commitdiff
Setup fr/misc fr/problems for translation
authorKern Sibbald <kern@sibbald.com>
Wed, 3 Mar 2010 18:30:17 +0000 (19:30 +0100)
committerKern Sibbald <kern@sibbald.com>
Wed, 3 Mar 2010 18:30:17 +0000 (19:30 +0100)
66 files changed:
docs/manuals/fr/main/old/installation.tex [new file with mode: 0644]
docs/manuals/fr/main/old/messagesres.tex [new file with mode: 0644]
docs/manuals/fr/main/old/postgresql.tex [new file with mode: 0644]
docs/manuals/fr/main/old/quickstart.tex [new file with mode: 0644]
docs/manuals/fr/main/old/security.tex [new file with mode: 0644]
docs/manuals/fr/main/old/storedconf.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/coverpage.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/dvd.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/fdl.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/gpl.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/internaldb.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/lesser.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/license.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/misc.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/projects.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/python.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/stunnel.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/vars.tex [new file with mode: 0644]
docs/manuals/fr/misc/base/version.tex [new file with mode: 0644]
docs/manuals/fr/misc/coverpage-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/coverpage.tex [deleted file]
docs/manuals/fr/misc/dvd-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/dvd.tex [deleted file]
docs/manuals/fr/misc/fdl-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/fdl.tex [deleted file]
docs/manuals/fr/misc/gpl-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/gpl.tex [deleted file]
docs/manuals/fr/misc/internaldb-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/internaldb.tex [deleted file]
docs/manuals/fr/misc/lesser-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/lesser.tex [deleted file]
docs/manuals/fr/misc/license-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/license.tex [deleted file]
docs/manuals/fr/misc/misc.tex
docs/manuals/fr/misc/projects-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/projects.tex [deleted file]
docs/manuals/fr/misc/python-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/python.tex [deleted file]
docs/manuals/fr/misc/stunnel-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/stunnel.tex [deleted file]
docs/manuals/fr/misc/vars-en.tex [new file with mode: 0644]
docs/manuals/fr/misc/vars.tex [deleted file]
docs/manuals/fr/problems/base/faq.tex [new file with mode: 0644]
docs/manuals/fr/problems/base/fdl.tex [new file with mode: 0644]
docs/manuals/fr/problems/base/firewalls.tex [new file with mode: 0644]
docs/manuals/fr/problems/base/kaboom.tex [new file with mode: 0644]
docs/manuals/fr/problems/base/problems.tex [new file with mode: 0644]
docs/manuals/fr/problems/base/rpm-faq.tex [new file with mode: 0644]
docs/manuals/fr/problems/base/tapetesting.tex [new file with mode: 0644]
docs/manuals/fr/problems/base/tips.tex [new file with mode: 0644]
docs/manuals/fr/problems/base/version.tex [new file with mode: 0644]
docs/manuals/fr/problems/faq-en.tex [new file with mode: 0644]
docs/manuals/fr/problems/faq.tex [deleted file]
docs/manuals/fr/problems/fdl-en.tex [new file with mode: 0644]
docs/manuals/fr/problems/fdl.tex [deleted file]
docs/manuals/fr/problems/firewalls-en.tex [new file with mode: 0644]
docs/manuals/fr/problems/firewalls.tex [deleted file]
docs/manuals/fr/problems/kaboom-en.tex [new file with mode: 0644]
docs/manuals/fr/problems/kaboom.tex [deleted file]
docs/manuals/fr/problems/problems.tex
docs/manuals/fr/problems/rpm-faq-en.tex [new file with mode: 0644]
docs/manuals/fr/problems/rpm-faq.tex [deleted file]
docs/manuals/fr/problems/tapetesting-en.tex [new file with mode: 0644]
docs/manuals/fr/problems/tapetesting.tex [deleted file]
docs/manuals/fr/problems/tips-en.tex [new file with mode: 0644]
docs/manuals/fr/problems/tips.tex [deleted file]

diff --git a/docs/manuals/fr/main/old/installation.tex b/docs/manuals/fr/main/old/installation.tex
new file mode 100644 (file)
index 0000000..12989c2
--- /dev/null
@@ -0,0 +1,1518 @@
+%%
+%%
+
+\chapter{Installer Bacula}
+\label{_ChapterStart17}
+\index[general]{Installer Bacula }
+\index[general]{Bacula!Installer }
+\addcontentsline{toc}{section}{Installer Bacula}
+
+\section{Pr\'erequis}
+\index[general]{Pr\'erequis }
+\addcontentsline{toc}{section}{Pr\'erequis}
+
+En g\'en\'eral, il vous faudra les sources de la version courante de Bacula,
+et si vous souhaitez ex\'ecuter un client Windows, vous aurez besoin de la
+version binaire du client Bacula pour Windows. Par ailleurs, Bacula a besoin
+de certains paquetages externes (tels {\bf SQLite}, {\bf MySQL} ou {\bf
+PostgreSQL}) pour compiler correctement en accord avec les options que vous
+aurez choisies. Pour vous simplifier la t\^ache, nous avons combin\'e
+plusieurs de ces programmes dans deux paquetages {\bf depkgs} (paquetages de
+d\'ependances). Ceci peut vous simplifier la vie en vous fournissant tous les
+paquets n\'ecessaires plut\^ot que de vous contraindre \`a les trouver sur la
+Toile, les charger et installer. 
+
+\section{Distribution des fichiers source}
+\index[general]{fichiers source}
+\index[general]{distrribution fichiers}
+\addcontentsline{toc}{section}{Distribution des fichiers source}
+A partir de la version 1.38.0, le code source est \'eclat\'e en quatre 
+fichiers tar correspondant \`a quatre modules diff\'erents dans le CVS 
+Bacula. Ces fichiers sont :
+
+\begin{description}
+\item [bacula-1.38.0.tar.gz]
+  Il s'agit de la distribution primaire de Bacula. Pour chaque nouvelle 
+  version, le num\'ero de version (ici, 1.38.0) sera mise \`a jour. 
+
+\item [bacula-docs-1.38.0.tar.gz]
+  Ce fichier contient une copie du r\'epertoire docs, avec les documents 
+  pr\'e-construits : R\'epertoire html anglais, fichier html unique et 
+  fichier pdf. Les traductions allemande et fran\c {c}aise sont en cours mais 
+  ne sont pas pr\'e-construites.
+
+\item [bacula-gui-1.38.0.tar.gz]
+  Ce fichier contient les programmes graphique en dehors du coeur 
+  de l'application. Actuellement, il contient bacula-web, un programme 
+  PHP pour produire une vue d'ensemble des statuts de vos jobs 
+  Bacula consultable dans un navigateur ; et bimagemgr, un programme 
+  qui permet de graver des images de CDROMS depuis un navigateur avec 
+  les volumes Bacula.
+    
+\item [bacula-rescue-1.8.1.tar.gz]
+  Ce fichier contient le code du CDROM de secours Bacula. Notez 
+  que le num\'ero de version de ce paquetage n'est pas li\'e \`a celui 
+  de Bacula. En utilisant ce code, vous pouvez graver un CDROM contenant  
+  la configuration de votre syst\`eme et une version statiquement li\'ee du 
+  File Daemon. Ceci peut vous permettre de repartitionner et reformater 
+  ais\'ement vos disques durs et de recharger votre syst\`eme avec Bacula 
+  en cas de d\'efaillance du disque dur.
+
+\item [winbacula-1.38.0.exe]
+  Ce fichier est l'installeur 32 bits Windows pour l'installation du 
+  client Windows (File Daemon) sur une machine Windows.
+  A partir de la version 1.39.20, cet exécutable contiendra aussi 
+  le Director Win32 et le Storage Daemon Win32.
+\end{description}
+
+\label{upgrading1}
+
+\section{Mettre Bacula \`a jour}
+\index[general]{Mettre Bacula \`a jour }
+\index[general]{Jour!Mettre Bacula \`a }
+\addcontentsline{toc}{section}{Mettre Bacula \`a jour}
+
+Si vous faites une mise \`a jour de Bacula, vous devriez d'abord lire
+attentivement les ReleaseNotes de toutes les versions entre votre version
+install\'ee et celle vers laquelle vous souhaitez mettre \`a jour. Si la base
+de donn\'ees du catalogue a \'et\'e mise \`a jour (c'est presque toujours le cas 
+à chaque nouvelle version majeure), vous devrez soit
+r\'einitialiser votre base de donn\'ees et repartir de z\'ero, soit en
+sauvegarder une copie au format ASCII avant de proc\'eder \`a sa mise \`a
+jour. Ceci est normalement fait lorsque Bacula est compil\'e et install\'e par :
+
+\begin{verbatim}
+cd <installed-scripts-dir> (default /etc/bacula)
+./update_bacula_tables
+\end{verbatim}
+
+Ce script de mise \`a jour peut aussi \^etre trouv\'e dans le r\'epertoire 
+src/cats des sources de Bacula.
+
+S'il y a eu plusieurs mises \`a jour de la base de donn\'ees entre votre
+version et celle vers laquelle vous souhaitez \'evoluer, il faudra appliquer
+chaque script de mise \`a jour de base de donn\'ees. Vous pouvez trouver tous
+les anciens scripts de mise \`a jour dans le r\'epertoire {\bf upgradedb} des
+sources de Bacula. Il vous faudra \'editer ces scripts pour qu'ils
+correspondent \`a votre configuration. Le script final, s'il y en a un, sera
+dans le r\'epertoire {\bf src/cats} comme indiqu\'e dans la ReleaseNote. 
+
+Si vous migrez d'une version majeure vers une autre, vous devrez remplacer
+tous vos composants ({\it daemons}) en m\^eme temps car, g\'en\'eralement, le
+protocole inter-{\it daemons} aura chang\'e. Par contre, entre deux versions
+mineures d'une m\^eme majeure (par exemple les versions 1.32.x), \`a moins
+d'un bug, le protocole inter-{\it daemons} ne changera pas. Si cela vous
+semble confus, lisez simplement les ReleaseNotes tr\`es attentivement, elles
+signaleront si les {\it daemons} doivent \^etre mis \`a jour simultan\'ement. 
+
+Enfin, notez qu'il n'est g\'en\'eralement pas n\'ecessaire d'utiliser 
+{\bf make uninstall} avant de proc\'eder \`a une mise \`a jour. En fait, si vous le 
+faites vous effacerez probablement vos fichiers de configuration, ce qui 
+pourrait \^etre d\'esastreux. La proc\'edure normale de mise \`a jour est simplement : 
+\begin{verbatim}
+./configure (your options)
+make
+make install
+\end{verbatim}
+
+ En principe, aucun de vos fichiers .conf ou .sql ne devrait \^etre \'ecras\'e, 
+ et vous devez exécuter les deux commandes  {\bf make} et {\bf make install}. 
+ {\bf make install} sans un {\bf make} préalable ne fonctionnera pas.
+Pour plus d'informations sur les mises \`a jour, veuillez consulter la partie 
+\ilink{Upgrading Bacula Versions}{upgrading} du chapitre Astuces de ce manuel
+
+\section{Paquetage de D\'ependences}
+\label{Dependency}
+\index[general]{Paquetage de D\'ependences}
+\index[general]{Paquetage!D\'ependences}
+\addcontentsline{toc}{section}{Paquetage de D\'ependences}
+
+Comme nous l'\'evoquions plus haut, nous avons combin\'e une s\'erie de
+programmes dont Bacula peut avoir besoin dans les paquets {\bf depkgs} et {\bf
+depkgs1}. Vous pouvez, bien sur, obtenir les paquets les plus r\'ecents
+directement des auteurs. Le fichier README dans chaque paquet indique o\`u les
+trouver. Pourtant, il faut noter que nous avons test\'e la compatibilit\'e des
+paquets contenus dans les fichiers depkgs avec Bacula. 
+
+Vous pouvez, bien sur, obtenir les dernieres versions de ces paquetages de
+leurs auteurs. Les r\'ef\'erences n\'ecessaires figurent dans le README de
+chaque paquet. Quoi qu'il en soit, soyez conscient du fait que nous avons
+test\'e la compatibilit\'e des paquetages des fichiers depkgs. 
+
+Typiquement, un paquetage de d\'ependances sera nomm\'e {\bf
+depkgs-ddMMMyy.tar.gz} et {\bf depkgs1-ddMMMyy.tar.gz} o\`u {\bf dd} est le
+jour o\`u n'ous l'avons publi\'e, {\bf MMM} l'abbr\'eviation du mois et {\bf
+yy} l'ann\'ee. Par exemple: {\bf depkgs-07Apr02.tar.gz}. Pour installer et
+construire ce paquetage (s'il est requis), vous devez: 
+
+\begin{enumerate}
+\item Cr\'eer un r\'epertoire {\bf bacula}, dans lequel vous placerez les
+   sources de Bacula et le paquetage de d\'ependances. 
+\item D\'esarchiver le {\bf depkg} dans le r\'epertoire {\bf bacula}. 
+\item vous d\'eplacer dans le r\'epertoire obtenu: cd bacula/depkgs 
+\item ex\'ecuter make 
+   \end{enumerate}
+
+La composition exacte des paquetages de d\'ependance est susceptible de
+changer de temps en temps, voici sa composition actuelle : 
+
+\begin{longtable}{|l|l|l|}
+ \hline 
+\multicolumn{1}{|c| }{\bf Paquets externes } & \multicolumn{1}{c| }{\bf depkgs
+} & \multicolumn{1}{c| }{\bf depkgs1 } \\
+ \hline 
+{SQLite } & \multicolumn{1}{c| }{X } & \multicolumn{1}{c| }{- } \\
+ \hline 
+{SQLite3 } & \multicolumn{1}{c| }{X } & \multicolumn{1}{c| }{- } \\
+ \hline
+{mtx } & \multicolumn{1}{c| }{X } & \multicolumn{1}{c| }{- } \\
+ \hline 
+{readline } & \multicolumn{1}{c| }{- } & \multicolumn{1}{c| }{X } \\
+ \hline 
+{pthreads } & \multicolumn{1}{c| }{- } & \multicolumn{1}{c| }{- } \\
+ \hline 
+{zlib } & \multicolumn{1}{c| }{- } & \multicolumn{1}{c| }{- } \\
+ \hline 
+{wxWidgets } & \multicolumn{1}{c| }{- } & \multicolumn{1}{c| }{- } \\ 
+\hline 
+
+\end{longtable}
+
+Notez que certains de ces paquets sont de taille respectable, si bien que
+l'\'etape de compilation peut prendre un certain temps. Les instructions
+ci-dessous construiront tous les paquets contenus dans le r\'epertoire.
+Cependant, la compilation de Bacula, ne prendra que les morceaux dont Bacula a
+effectivement besoin. 
+
+Une alternative consiste \`a ne construire que les paquets n\'ecessaires. Par
+exemple, 
+
+\footnotesize
+\begin{verbatim}
+cd bacula/depkgs
+make sqlite
+\end{verbatim}
+\normalsize
+
+configurera et construira SQLite et seulement SQLite. 
+
+Vous devriez construire les paquets requis parmi {\bf depkgs} et/ou {\bf
+depkgs1} avant de configurer et compiler Bacula car Bacula en aura besoin
+d\`es la compilation. 
+
+M\^eme si vous n'utilisez pas SQLite, vous pourriez trouver le paquet {\bf
+depkgs} pratique pour construire {\bf mtx} car le programme {\bf tapeinfo} qui
+vient avec peut souvent vous fournir de pr\'ecieuses informations sur vos
+lecteurs de bandes SCSI (e.g. compression, taille min/max des blocks,...). 
+
+Le paquet {\bf depkgs-win32} est obsolète à partir de la version 1.39 de Bacula. 
+Il était autrefois utilisé pour compiler le client natif Win32 qui est 
+désormais construit sur Linux grâce à un mécanisme de compilation croisée. 
+Tous les outils et librairies tierces sont automatiquement téléchargées 
+par l'exécution de scripts apropriés. Lisez le fichier src/win32/README.mingw32 
+pour plus de détails.
+
+\section{Syst\`emes Support\'es}
+\label{Systems}
+\index[general]{Syst\`emes Support\'es }
+\addcontentsline{toc}{section}{Syst\`emes Support\'es}
+
+Veuillez consulter la section 
+\ilink{ Syst\`emes support\'es}{SupportedOSes} du chapitre
+D\'emarrer avec Bacula de ce manuel. 
+
+\section{Construire Bacula \`a partir des sources}
+\label{Building}
+\index[general]{Construire Bacula \`a partir des sources }
+\index[general]{Sources!Construire Bacula \`a partir des }
+\addcontentsline{toc}{section}{Construire Bacula \`a partir des sources}
+
+L'installation basique est plut\^ot simple. 
+
+\begin{enumerate}
+\item Installez et construisez chaque {\bf depkgs} comme indiqu\'e plus haut. 
+
+
+\item Configurez et installez MySQL ou PostgreSQL (si vous le souhaitez): 
+   \ilink{Installer et configurer MySQL Phase I}{_ChapterStart} ou  
+   \ilink{Installer et configurer PostgreSQL Phase
+I}{_ChapterStart10}.  Si vous installez depuis des rpms, et
+utilisez MySQL, veillez \`a  installer {\bf mysql-devel}, afin que les
+fichiers d'en-t\^etes de MySQL  soient disponibles pour la compilation de
+Bacula. De plus, la  librairie client MySQL requi\`ert la librairie de
+compression gzip {\bf libz.a}  ou {\bf libz.so}. Ces librairies sont dans le
+paquet {\bf libz-devel}.  Sur Debian, vous devrez charger le paquet {\bf
+zlib1g-dev}. Si vous  n'utilisez ni rpms, ni debs, il vous faudra trouver le
+paquetage  adapt\'e \`a votre syst\`eme. 
+
+Notez que si vous avez dej\`a MySQL
+ou PostgreSQL sur  votre syst\`eme vous pouvez sauter cette phase pourvu que
+vous ayez construit  "the thread safe libraries'' et que vous ayez d\'ej\`a
+install\'e les rpms  additionnels sus-mentionn\'es. 
+
+\item En alternative \`a MySQL et PostgreSQL, configurez et installez SQLite, 
+   qui fait partie du paquetage {\bf depkgs}.  
+   \ilink{Installer et configurer SQLite}{_ChapterStart33}. 
+   SQLite n'est probablement pas adapt\'e \`a un environnement de production 
+   de taille respectable, en raison de sa lenteur par rapport \`a MySQL, et de la 
+   pauvret\'e de ses outils de reconstruction de base de donn\'ees endommag\'ee.
+
+\item D\'esarchivez les sources de Bacula, de pr\'ef\'erence dans le
+   r\'epertoire {\bf bacula}  \'evoqu\'e ci-dessus. 
+
+\item D\'eplacez-vous dans ce r\'epertoire. 
+
+\item Ex\'ecutez ./configure (avec les options appropri\'ees comme d\'ecrit
+   ci-dessus) 
+
+\item Examinez tr\`es attentivement la sortie de ./configure, 
+   particuli\`erement les r\'epertoires d'installation des binaires et des 
+   fichiers de configuration. La sortie de ./configure est stock\'ee dans  le
+fichier {\bf config.out} et peut \^etre affich\'ee \`a volont\'e sans 
+relancer ./configure par la commande {\bf cat config.out}. 
+
+\item Vous pouvez relancer ./configure avec des options diff\'erentes apr\`es
+   une  premi\`ere ex\'ecution, cela ne pose aucun probl\`eme, mais vous devriez
+   d'abord  ex\'ecuter:  
+
+\footnotesize
+\begin{verbatim}
+     make distclean  
+\end{verbatim}
+\normalsize
+
+afin d'\^etre certain de repartir de z\'ero et d'\'eviter d'avoir un m\'elange
+avec vos premi\`eres options. C'est n\'ecessaire parce que ./configure  met
+en cache une bonne partie des informations. {\bf make distclean}  est aussi
+recommand\'e si vous d\'eplacez vos fichiers source d'une machine \`a  une
+autre. Si {\bf make distclean} \'echoue, ignorez-le et continuez.  
+
+\item make  
+
+   Si vous obtenez des erreurs durant le {\it linking} dans le  r\'epertoire du
+Storage Daemon (/etc/stored), c'est probablement  parce que vous avez charg\'e
+la librairie statique sur votre  syst\`eme. J'ai remarqu\'e ce probl\`eme sur
+un Solaris. Pour le  corriger, assurez-vous de ne pas avoir ajout\'e l'option 
+{\bf \verb{--{enable-static-tools} \`a la commande {\bf ./configure}.  
+
+Si vous ignorez cette \'etape ({\bf make}) et poursuivez imm\'ediatement avec 
+{\bf make install}, vous commettez deux erreurs s\'erieuses : d'abord, votre 
+installation va \'echouer car Bacula a besoin d'un {\bf make} avant un 
+{\bf make install} ; ensuite, vous vous privez de la possibilit\'e de vous 
+assurer qu'il n'y a aucune erreur avant de commencer \`a \'ecrire les fichiers dans 
+vos r\'epertoires syst\`eme.
+
+\item make install  
+Avant de lancer cette commande, v\'erifiez consciencieusement que vous avez bien 
+ex\'ecut\'e la commande {\bf make} et que tout a \'et\'e compil\'e proprement et li\'e 
+sans erreur.
+
+\item Si vous \^etes un nouvel utilisateur de Bacula, nous vous recommandons 
+   {\bf fortement} de sauter l'\'etape suivante et d'utiliser le fichier de 
+   configuration par d\'efaut, puis d'ex\'ecuter le jeu d'exemples du prochain
+chapitre avant de revenir modifier vos  fichier de configuration pour qu'ils
+satisfassent vos besoins.  
+
+\item Modifiez les fichiers de configuration de chacun des trois {\it daemons}
+   (Directory, File, Storage) et celui de la Console. Pour plus de d\'etails, 
+   consultez le chapitre 
+\ilink{Fichiers de Configuration de Bacula}{_ChapterStart16} Nous
+vous recommandons de commencer  par modifier les fichiers de configuration
+fournis par d\'efaut, en  faisant les changements minima indispensables. Vous
+pourrez  proc\'eder \`a une adaptation compl\`ete une fois que Bacula 
+fonctionnera correctement. Veuillez prendre garde \`a modifier les  mots de
+passe qui sont g\'en\'er\'es al\'eatoirement, ainsi que les noms  car ils
+doivent s'accorder entre les fichiers de configuration  pour des raisons de
+s\'ecurit\'e.  
+
+\item Cr\'eez la base de donn\'ees Bacula MySQL et ses tables (si vous
+   utilisez MySQL)  
+   \ilink{Installer et configurer MySQL Phase II}{mysql_phase2} ou 
+cr\'eez la base de donn\'ees Bacula PostgreSQL et ses tables  
+\ilink{Installer et configurer PostgreSQL Phase
+II}{PostgreSQL_phase2}  (si vous utilisez PostgreSQL)  ou
+encore 
+\ilink{Installer et configurer SQLite Phase II}{phase2}  (si vous
+utilisez SQLite)  
+
+\item D\'emarrez Bacula ({\bf ./bacula start}) Notez: Le prochain chapitre
+   expose ces  \'etapes en d\'etail.  
+
+\item Lancez la Console pour communiquer avec Bacula.  
+
+\item Pour les deux \'el\'ements pr\'ec\'edents, veuillez suivre les
+   instructions du chapitre  
+   \ilink{Ex\'ecuter Bacula}{_ChapterStart1} o\`u vous ferez une
+simple sauvegarde  et une restauration. Faites ceci avant de faire de lourdes
+modifications aux  fichiers de configuration, ainsi vous serez certain que
+Bacula fonctionne, et  il vous sera plus familier. Apr\`es quoi il vous sera
+plus facile de changer les  fichiers de configuration. 
+\item Si apr\`es l'installation de Bacula, vous d\'ecidez de le d\'eplacer,
+   c'est \`a dire  de l'installer dans un jeu de r\'epertoires diff\'erents,
+   proc\'edez comme suit :  
+
+\footnotesize
+\begin{verbatim}
+      make uninstall
+      make distclean
+      ./configure (vos-nouvelles-options)
+      make
+      make install
+      
+\end{verbatim}
+\normalsize
+
+\end{enumerate}
+
+Si tout se passe bien, {\bf ./configure} d\'eterminera correctement votre
+syst\`eme et configurera correctement le code source. Actuellement, FreeBSD,
+Linux (RedHat), et Solaris sont support\'es. Des utilisateurs rapportent que
+le client Bacula fonctionne sur MacOS X 10.3 tant que le support readline est
+d\'esactiv\'e. 
+
+Si vous installez Bacula sur plusieurs syst\`emes identiques, vous pouvez
+simplement transf\'erer le r\'epertoire des sources vers ces autres syst\`emes
+et faire un "make install''. Cependant s'il y a des diff\'erences dans les
+librairies, ou les versions de syst\`emes, ou si vous voulez installer sur un
+syst\`eme diff\'erent, vous devriez recommencer \`a partir de l'archive tar
+compress\'ee originale. Si vous transf\'erez un r\'epertoire de sources o\`u
+vous avez d\'ej\`a ex\'ecut\'e la commande ./configure, vous DEVEZ faire: 
+
+\footnotesize
+\begin{verbatim}
+make distclean
+\end{verbatim}
+\normalsize
+
+avant d'ex\'ecuter \`a nouveau ./configure. Ceci est rendu n\'ecessaire par
+l'outil GNU autoconf qui met la configuration en cache, de sorte que si vous
+r\'eutilisez la configuration d'une machine Linux sur un Solaris, vous pouvez
+\^etre certain que votre compilation \'echouera. Pour l'\'eviter, comme
+mentionn\'e plus haut, recommencez depuis l'archive tar, ou faites un "make
+distclean''. 
+
+En g\'en\'eral, vous voudrez probablement sophistiquer votre {\bf configure}
+pour vous assurer que tous les modules que vous souhaitez soient construits et
+que tout soit plac\'e dans les bons r\'epertoires. 
+
+Par exemple, sur Fedora, RedHat ou SuSE, on pourrait utiliser ceci: 
+
+\footnotesize
+\begin{verbatim}
+CFLAGS="-g -Wall" \
+  ./configure \
+    --sbindir=$HOME/bacula/bin \
+    --sysconfdir=$HOME/bacula/bin \
+    --with-pid-dir=$HOME/bacula/bin/working \
+    --with-subsys-dir=$HOME/bacula/bin/working \
+    --with-mysql \
+    --with-working-dir=$HOME/bacula/bin/working \
+    --with-dump-email=$USER
+\end{verbatim}
+\normalsize
+
+Notez: l'avantage de cette configuration pour commencer, est que tout sera mis
+dans un seul r\'epertoire, que vous pourrez ensuite supprimer une fois que
+vous aurez ex\'ecut\'e les exemples du prochain chapitre, et appris comment
+fonctionne Bacula. De plus, ceci peut \^etre install\'e et ex\'ecut\'e sans
+\^etre root. 
+
+Pour le confort des d\'eveloppeurs, j'ai ajout\'e un script {\bf
+defaultconfig} au r\'epertoire {\bf examples}. Il contient les r\'eglages que
+vous devriez normalement utiliser, et chaque d\'eveloppeur/utilisateur devrait
+le modifier pour l'accorder \`a ses besoins. Vous trouverez d'autres exemples
+dans ce r\'epertoire. 
+
+Les options {\bf \verb{--{enable-conio} ou {\bf \verb{--{enable-readline} sont utiles car
+elles conf\`erent un historique de lignes de commandes et des capacit\'es
+d'\'edition \`a la Console. Si vous avez inclus l'une ou l'autre option, l'un
+des deux paquets {\bf termcap} ou {\bf ncurses} sera n\'ecessaire pour
+compiler. Sur la plupart des syst\`emes, y compris RedHat et SuSE, vous 
+devriez inclure le paquet ncurses. Si Le processus de configuration de 
+Bacula le d\'etecte, il l'utilisera plut\^ot que la librairie termcap.
+Sur certains syst\`emes, tels que SUSE, la librairie termcap n'est
+pas dans le r\'epertoire standard des librairies par cons\'equent, l'option
+devrait \^etre d\'esactiv\'ee ou vous aurez un message tel que: 
+
+\footnotesize
+\begin{verbatim}
+/usr/lib/gcc-lib/i586-suse-linux/3.3.1/.../ld:
+cannot find -ltermcap
+collect2: ld returned 1 exit status
+\end{verbatim}
+\normalsize
+
+lors de la compilation de la Console Bacula. Dans ce cas, il vous faudra
+placer la variable d'environnement {\bf LDFLAGS} avant de compiler. 
+
+\footnotesize
+\begin{verbatim}
+export LDFLAGS="-L/usr/lib/termcap"
+\end{verbatim}
+\normalsize
+
+Les m\^emes contraintes de librairies s'appliquent si vous souhaitez utiliser
+les sous-programmes readlines pour l'\'edition des lignes de commande et
+l'historique, ou si vous utilisez une librairie MySQL qui requiert le 
+chiffrement. Dans ce dernier cas, vous pouvez exporter les librairies 
+additionnelles comme indiqu\'e ci-dessus ou, alternativement, les inclure 
+directement en param\`etres de la commande ./configure comme ci-dessous :
+
+ \footnotesize
+ \begin{verbatim}
+ LDFLAGS="-lssl -lcyrpto" \
+    ./configure <vos-options>
+ \end{verbatim}
+\normalsize
+          
+
+Veuillez noter que sur certains syst\`emes tels que Mandriva, readline tend
+\`a "avaler'' l'invite de commandes, ce qui le rend totalement inutile. Si
+cela vous arrive, utilisez l'option "disable'', ou si vous utilisez une
+version post\'erieure \`a 1.33 essayez {\bf \verb{--{enable-conio} pour utiliser une
+alternative \`a readline int\'egr\'ee. Il vous faudra tout de m\^eme termcap
+ou ncurses, mais il est peu probable que le paquetage {\bf conio} gobe vos
+invites de commandes. 
+
+Readline n'est plus support\'e depuis la version 1.34. Le code reste
+disponible, et si des utilisateurs soumettent des patches, je serai heureux de
+les appliquer. Cependant, \'etant donn\'e que chaque version de readline
+semble incompatible avec les pr\'ec\'edentes, et qu'il y a des diff\'erences
+significatives entre les syst\`emes, je ne puis plus me permettre de le
+supporter. 
+
+\section{Quelle base de donn\'ees utiliser ?}
+\label{DB}
+\index[general]{Utiliser!Quelle base de donn\'ees }
+\index[general]{Quelle base de donn\'ees utiliser ? }
+\addcontentsline{toc}{section}{Quelle base de donn\'ees utiliser ?}
+
+Avant de construire Bacula, vous devez d\'ecider si vous voulez utiliser
+SQLite, MySQL ou PostgreSQL. Si vous n'avez pas d\'ej\`a MySQL ou PostgreSQL
+sur votre machine, nous vous recommandons de d\'emarrer avec SQLite. Ceci vous
+facilitera beaucoup l'installation car SQLite est compil\'e dans Bacula et ne
+requiert aucune administration. SQLite fonctionne bien et sied bien aux
+petites et moyennes configurations (maximum 10-20 machines). Cependant, il nous 
+faut signaler que plusieurs utilisateurs ont subi des corruptions inexpliqu\'ees 
+de leur catalogue SQLite. C'est pourquoi nous recommandons de choisir MySQL 
+ou PostgreSQL pour une utilisation en production.
+
+Si vous souhaitez utiliser MySQL pour votre catalogue Bacula, consultez le
+chapitre 
+\ilink{Installer et Configurer MySQL}{_ChapterStart} de ce manuel.
+Vous devrez installer MySQL avant de poursuivre avec la configuration de
+Bacula. MySQL est une base de donn\'ees de haute qualit\'e tr\`es efficace et
+qui convient pour des configurations de toutes tailles. MySQL est
+l\'eg\`erement plus complexe \`a installer et administrer que SQLite en raison
+de ses nombreuses fonctions sophistiqu\'ees telles que userids et mots de
+passe. MySQL fonctionne en tant que processus distinct, est r\'eellement une
+solution professionnelle et peut prendre en charge des bases de donn\'ees de
+dimension quelconque. 
+
+Si vous souhaitez utiliser PostgreSQL pour votre catalogue Bacula, consultez
+le chapitre 
+\ilink{Installer et Configurer PostgreSQL}{_ChapterStart10} de ce
+manuel. Vous devrez installer PostgreSQL avant de poursuivre avec la
+configuration de Bacula. PostgreSQL est tr\`es similaire \`a MySQL bien que
+tendant \`a \^etre un peu plus conforme \`a SQL92. PostgreSQL poss\`ede
+beaucoup plus de fonctions avanc\'ees telles que les transactions, les
+proc\'edures stock\'ees, etc. PostgreSQL requiert une certaine connaissance
+pour son installation et sa maintenance.
+
+Si vous souhaitez utiliser SQLite pour votre catalogue Bacula, consultez le
+chapitre 
+\ilink{Installer et Configurer SQLite}{_ChapterStart33} de ce manuel.
+
+\section{D\'emarrage rapide}
+\index[general]{D\'emarrage rapide }
+\index[general]{Rapide!D\'emarrage }
+\addcontentsline{toc}{section}{D\'emarrage rapide}
+
+Il y a de nombreuses options et d'importantes consid\'erations donn\'ees
+ci-dessous que vous pouvez passer pour le moment si vous n'avez eu aucun
+probl\`eme lors de la compilation de Bacula avec une configuration
+simplifi\'ee comme celles montr\'ees plus haut. 
+
+Si le processus ./configure ne parvient pas \`a trouver les librairies 
+sp\'ecifiques (par exemple libintl), assurez vous que le paquetage appropri\'e 
+est install\'e sur votre syst\`eme. S'il est install\'e dans un r\'epertoire non 
+standard (au moins pour Bacula), il existe dans la plupart des cas une 
+option parmi celles \'enum\'er\'ees ci-dessous (ou avec "./configure {-}{-}help") 
+qui vous permettra de sp\'ecifier un r\'epertoire de recherche. D'autres options 
+vous permettent de d\'esactiver certaines fonctionnalit\'es (par exemple 
+{-}{-}disable-nls).
+
+Si vous souhaitez vous jeter \`a l'eau, nous vous conseillons de passer
+directement au chapitre suivant, et d'ex\'ecuter le jeu d'exemples. Il vous
+apprendra beaucoup sur Bacula, et un Bacula de test peut \^etre install\'e
+dans un unique r\'epertoire (pour une destruction ais\'ee) et ex\'ecut\'e sans
+\^etre root. Revenez lire les d\'etails de ce chapitre si vous avez un
+quelconque probl\`eme avec les exemples, ou lorsque vous voudrez effectuer une
+installation r\'eelle. 
+
+TAQUET MISE A JOUR
+
+\section{Options de la commande {\bf configure}}
+\label{Options}
+\index[general]{Options de la commande configure }
+\index[general]{Configure!Options de la commande }
+\addcontentsline{toc}{section}{Options de la commande configure}
+
+Les options en ligne de commande suivantes sont disponibles pour {\bf
+configure} afin d'adapter votre installation \`a vos besoins. 
+
+\begin{description}
+
+\item [{-}{-}sysbindir=\lt{}binary-path\gt{}]
+   \index[dir]{{-}{-}sysbindir }
+   D\'efinit l'emplacement des binaires Bacula.  
+
+\item [{-}{-}sysconfdir=\lt{}config-path\gt{}]
+   \index[dir]{{-}{-}sysconfdir }
+   D\'efinit l'emplacement des fichiers de  configuration de Bacula.  
+
+\item [ {-}{-}mandir=\lt{}path\gt{}]
+   \index[general]{{-}{-}mandir}
+   Notez qu'\`a partir de la version 1.39.14, tout chemin sp\'ecifi\'e 
+   est d\'esormais compris comme le niveau le plus \'elev\'e du 
+   r\'epertoire man. Pr\'ec\'edemment, le {\bf mandir} sp\'ecifiait le 
+   chemin absolu o\`u vous souhaitiez instaler les pages de manuel.
+   Les fichiers man sont install\'es au format gzipp\'e sous 
+   mandir/man1 et mandir/man8 comme il convient.
+   Pour que l'installation se d\'eroule normalement, vous devez 
+   disposer de {\bf gzip} sur votre syst\`eme
+
+   Par d\'efaut, Bacula installe une simple page de manuel dans 
+   /usr/share/man. Si vous voulez qu'elle soit install\'ee ailleurs, 
+   utilisez cette options pour sp\'ecifier le chemin voulu. Notez 
+   que les principaux documents Bacula en HTML et PDF sont dans une 
+   archive tar distincte des sources de distribution de Bacula.
+
+\item [ {-}{-}datadir=\lt{}path\gt{}]
+   \index[general]{{-}{-}datadir}
+   Si vous traduisez Bacula ou des parties de Bacula dans une autre 
+   langue, vous pouvez sp\'ecifier l'emplacement des fichiers .po avec 
+   l'option {\bf {-}{-}datadir}. Vous devez installer manuellement tout 
+   fichier .po qui n'est pas (encore) install\'e automatiquement.
+
+\item [{-}{-}enable-smartalloc ]
+   \index[dir]{{-}{-}enable-smartalloc }
+   Permet l'inclusion du code Smartalloc de d\'etection de tampons  orphelins
+(NDT : orphaned buffer). Cette option est vivement recommand\'ee. Nous n'avons
+jamais  compil\'e sans elle, aussi vous pourriez subir des d\'esagr\'ements si
+vous ne l'activez pas.  Dans ce cas, r\'eactivez simplement cette option. Nous
+la recommandons car elle aide \`a d\'etecter les fuites de m\'emoire.  Ce
+param\`etre est utilis\'e lors de la compilation de Bacula.  
+
+\item [{-}{-}enable-gnome ]
+   \index[dir]{{-}{-}enable-gnome }
+   Si vous avez install\'e GNOME sur votre ordinateur, vous devez  sp\'ecifier
+cette option pour utiliser la Console graphique GNOME. Vous trouverez les
+binaires  dans le r\'epertoire {\bf src/gnome-console}.  
+
+\item [{-}{-}enable-bwx-console ]
+   \index[general]{{-}{-}enable-bwx-console }
+   Si vous avez install\'e wxWidgets sur votre ordinateur, vous devez 
+sp\'ecifier cette option pour utiliser la Console graphique bwx-console. Vous
+trouverez les binaires  dans le r\'epertoire {\bf src/wx-console}. Ceci peut
+\^etre utile aux utilisateurs qui veulent  une Console graphique, mais ne
+souhaitent pas installer Gnome, car wxWidgets peut fonctionner avec  les
+librairies GTK+, Motif ou m\^eme X11.  
+
+\item [{-}{-}enable-tray-monitor ]
+   \index[general]{{-}{-}enable-tray-monitor }
+   Si vous avez install\'e GTK sur votre ordinateur et utilisez  un gestionnaire
+de fen\^etre compatible avec le syst\`eme de notification standard FreeDesktop
+(tels KDE et GNOME), vous pouvez utiliser une interface graphique pour
+surveiller les  {\it daemons} Bacula en activant cette option. Les binaires
+seront plac\'es dans le r\'epertoire  {\bf src/tray-monitor}.  
+
+\item [{-}{-}enable-static-tools]
+   \index[general]{{-}{-}enable-static-tools }
+   Avec cette option, les utilitaires relatifs au Storage Daemon  ({\bf bls},
+{\bf bextract}, et {\bf bscan}) seront li\'es statiquement, ce qui vous permet
+de les utiliser m\^eme si les librairies partag\'ees ne sont pas charg\'ees.
+Si vous avez des  difficult\'es de type "linking'' \`a la compilation du
+r\'epertoire {\bf src/stored}, assurez-vous  d'avoir d\'esactiv\'e cette
+option, en ajoutant \'eventuellement {\bf \verb{--{disable-static-tools}.  
+
+\item [{-}{-}enable-static-fd]
+   \index[fd]{{-}{-}enable-static-fd }
+   Avec cette option, la compilation produira un {\bf static-bacula-fd}  en plus
+du File Daemon standard. Cette version qui inclut les librairies statiquement
+li\'ees  est requise pour la reconstruction compl\`ete d'une machine apr\`es
+un d\'esastre. Cette option est largement  surpass\'ee par l'usage de {\bf
+make static-bacula-fd} du r\'epertoire {\bf src/filed}. L'option {\bf
+\verb:--:enable-client-only} d\'ecrite plus loin est aussi int\'eressante 
+pour compiler un simple client sans les autres parties du programme. 
+
+Pour lier un binaire statique, l'\'editeur de liens a besoin des versions 
+statiques de toutes les librairies utilis\'ees, aussi les utilisateurs 
+rencontrent fr\'equemment des erreurs d'\'edition de liens \`a l'utilisation 
+de cette option. La premi\`ere chose \`a faire est de s'assurer d'avoir la 
+librairie glibc statiquement li\'ee sur votre syst\`eme. Ensuite, il faut 
+s'assurer de ne pas utiliser les options {\bf {-}{-}openssl} ou 
+{\bf {-}{-}with-python} de la commande configure, car elle requierent des 
+librairies suppl\'ementaires. Vous devriez pouvoir activer ces options, mais 
+il vous faudra charger les librairies statiques additionnelles correspondantes.
+
+\item [{-}{-}enable-static-sd]
+   \index[sd]{{-}{-}enable-static-sd }
+   Avec cette option, la compilation produira un {\bf static-bacula-sd}  en plus
+du Storage Daemon standard. Cette version qui inclut les librairies
+statiquement  li\'ees peut se r\'ev\'eler utile pour la reconstruction
+compl\`ete d'une machine apr\`es un d\'esastre.  
+
+Pour lier un binaire statique, l'\'editeur de liens a besoin des versions
+statiques de toutes les librairies utilis\'ees, aussi les utilisateurs
+rencontrent fr\'equemment des erreurs d'\'edition de liens \`a l'utilisation
+de cette option. La premi\`ere chose \`a faire est de s'assurer d'avoir la
+librairie glibc statiquement li\'ee sur votre syst\`eme. Ensuite, il faut
+s'assurer de ne pas utiliser les options {\bf {-}{-}openssl} ou
+{\bf {-}{-}with-python} de la commande configure, car elle requierent des
+librairies suppl\'ementaires. Vous devriez pouvoir activer ces options, mais
+il vous faudra charger les librairies statiques additionnelles correspondantes.
+
+\item [{-}{-}enable-static-dir]
+   \index[dir]{{-}{-}enable-static-dir }
+   Avec cette option, la compilation produira un {\bf static-bacula-dir}  en plus
+du Director Daemon standard. Cette version qui inclut les librairies
+statiquement  li\'ees peut se r\'ev\'eler utile pour la reconstruction
+compl\`ete d'une machine apr\`es un d\'esastre.  
+
+Pour lier un binaire statique, l'\'editeur de liens a besoin des versions
+statiques de toutes les librairies utilis\'ees, aussi les utilisateurs
+rencontrent fr\'equemment des erreurs d'\'edition de liens \`a l'utilisation
+de cette option. La premi\`ere chose \`a faire est de s'assurer d'avoir la
+librairie glibc statiquement li\'ee sur votre syst\`eme. Ensuite, il faut
+s'assurer de ne pas utiliser les options {\bf {-}{-}openssl} ou
+{\bf {-}{-}with-python} de la commande configure, car elle requierent des
+librairies suppl\'ementaires. Vous devriez pouvoir activer ces options, mais
+il vous faudra charger les librairies statiques additionnelles correspondantes.
+
+\item [{-}{-}enable-static-cons]
+   \index[dir]{{-}{-}enable-static-cons }
+   Avec cette option, la compilation produira une {\bf static-console}  et une
+{\bf static-gnome-console} en plus de la Console standard standard. Cette
+version qui  inclut les librairies statiquement li\'ees peut se r\'ev\'eler
+utile pour la reconstruction compl\`ete  d'une machine apr\`es un d\'esastre. 
+
+Pour lier un binaire statique, l'\'editeur de liens a besoin des versions
+statiques de toutes les librairies utilis\'ees, aussi les utilisateurs
+rencontrent fr\'equemment des erreurs d'\'edition de liens \`a l'utilisation
+de cette option. La premi\`ere chose \`a faire est de s'assurer d'avoir la
+librairie glibc statiquement li\'ee sur votre syst\`eme. Ensuite, il faut
+s'assurer de ne pas utiliser les options {\bf {-}{-}openssl} ou
+{\bf {-}{-}with-python} de la commande configure, car elle requierent des
+librairies suppl\'ementaires. Vous devriez pouvoir activer ces options, mais
+il vous faudra charger les librairies statiques additionnelles correspondantes.
+
+\item [{-}{-}enable-client-only]
+   \index[general]{{-}{-}enable-client-only }
+   Avec cette option, la compilation produira seulement le File Daemon  et les
+librairies qui lui sont n\'ecessaires. Aucun des autres {\it daemons}, outils
+de stockage, ni  la console ne sera compil\'e. De m\^eme, un {\bf make
+install} installera seulement le File Daemon.  Pour obtenir tous les {\it
+daemons}, vous devez la d\'esactiver. Cette option facilite grandement  la
+compilation sur les simples clients.  
+
+Pour lier un binaire statique, l'\'editeur de liens a besoin des versions
+statiques de toutes les librairies utilis\'ees, aussi les utilisateurs
+rencontrent fr\'equemment des erreurs d'\'edition de liens \`a l'utilisation
+de cette option. La premi\`ere chose \`a faire est de s'assurer d'avoir la
+librairie glibc statiquement li\'ee sur votre syst\`eme. Ensuite, il faut
+s'assurer de ne pas utiliser les options {\bf {-}{-}openssl} ou
+{\bf {-}{-}with-python} de la commande configure, car elle requierent des
+librairies suppl\'ementaires. Vous devriez pouvoir activer ces options, mais
+il vous faudra charger les librairies statiques additionnelles correspondantes.
+
+\item [ {-}{-}enable-build-dird]
+   \index[general]{{-}{-}enable-build-dird}
+Avec cette option activ\'ee (ce  qui est le cas par d\'efaut), le processus make 
+compile le Director ainsi que les outils du Director. Vous pouvez d\'esactiver 
+la compilation du Director en utilisant {\bf {-}{-}disable-build-dird}.
+
+\item [ {-}{-}enable-build-stored]
+   \index[general]{{-}{-}enable-build-stored}
+Avec cette option activ\'ee (ce  qui est le cas par d\'efaut), le processus make
+compile le Storage Daemon. Vous pouvez d\'esactiver
+la compilation du Storage Daemon en utilisant {\bf {-}{-}disable-build-stored}.
+
+\item [{-}{-}enable-largefile]
+   \index[general]{{-}{-}enable-largefile }
+   Cette option (activ\'ee par d\'efaut) provoque la compilation de  Bacula avec
+le support d'adressage de fichiers 64 bits s'il est disponible sur votre 
+syst\`eme. Ainsi Bacula peut lire et \'ecrire des fichiers de plus de 2
+GBytes. Vous pouvez  d\'esactiver cette option et revenir \`a un adressage de
+fichiers 32 bits en utilisant  {\bf \verb{--{disable-largefile}.  
+
+\item [ {-}{-}disable-nls]
+   \index[general]{{-}{-}disable-nls}
+   Bacula utilise par d\'efaut les librairies {\it GNU Native Language Support} (NLS). 
+   Sur certaines machines, ces librairies peuvent \^etre inexistante, ou ne pas 
+   fonctionner correctement (particuli\`erement sur les impl\'ementations non Linux). 
+   dans ce genre de situations, vous pouvez neutraliser l'utilisation de ces librairies 
+   avec l'option {\bf {-}{-}disable-nls}. Dans ce cas, Bacula reviendra \`a l'usage de l'anglais.
+
+\item [{-}{-}with-sqlite=\lt{}sqlite-path\gt{}]
+   \index[general]{{-}{-}with-sqlite }
+   Cette option permet l'utilisation de la base de  donn\'ees SQLite versions 2.8.x. Il n'est,
+en principe, pas n\'ecessaire de sp\'ecifier le chemin {\bf sqlite-path}  car
+Bacula recherche les composants requis dans les r\'epertoires standards ({\bf
+depkgs/sqlite}).  voyez 
+\ilink{Installer et Configurer SQLite}{_ChapterStart33} pour plus de
+d\'etails.  
+
+Voyez aussi la note ci-dessous, apr\`es le paragraphe --with-postgreSQL
+
+\item [{-}{-}with-sqlite3=\lt{}sqlite3-path\gt{}]
+   \index[general]{{-}{-}with-sqlite3 }
+   Cette option permet l'utilisation de la base de  donn\'ees SQLite versions 3.x. Il n'est,
+en principe, pas n\'ecessaire de sp\'ecifier le chemin {\bf sqlite3-path}  car
+Bacula recherche les composants requis dans les r\'epertoires standards ({\bf
+depkgs/sqlite3}).  voyez
+\ilink{Installer et Configurer SQLite}{_ChapterStart33} pour plus de
+d\'etails.
+
+Voyez aussi la note ci-dessous, apr\`es le paragraphe --with-postgreSQL
+
+\item [{-}{-}with-mysql=\lt{}mysql-path\gt{}]
+   \index[general]{{-}{-}with-mysql }
+   Cette option permet la compilation des services de Catalogue de Bacula. Elle
+implique que MySQL tourne d\'ej\`a  sur votre syst\`eme, et qu'il soit
+install\'e dans le chemin {\bf mysql-path} que vous avez sp\'ecifi\'e.  Si
+cette option est absente, Bacula sera compil\'e automatiquement avec le code
+de la base Bacula interne.  Nous recommandons d'utiliser cette option si
+possible. Si vous souhaitez utilisez cette option,  veuillez proc\'eder \`a
+l'installation de MySQL (
+\ilink{Installer and Configurer MySQL}{_ChapterStart})  avant de
+proc\'eder \`a la configuration.  
+
+Voyez aussi la note ci-dessous, apr\`es le paragraphe --with-postgreSQL
+
+\item [{-}{-}with-postgresql=\lt{}postgresql-path\gt{}]
+   \index[general]{{-}{-}with-postgresql }
+   Cette option d\'eclare un chemin explicite pour les  librairies PostgreSQL si
+Bacula ne les trouve pas dans le r\'epertoire par d\'efaut.  
+
+Notez que pour que Bacula soit configur\'e correctement, vous devez sp\'ecifier l'une des 
+quatre options de bases de donn\'ees support\'ees : {-}{-}with-sqlite, {-}{-}with-sqlite3, 
+{-}{-}with-mysql, ou {-}{-}with-postgresql, faute de quoi ./configure \'echouera.
+
+\item [ {-}{-}with-openssl=\lt{}path\gt{}]
+   Cette option est requise si vous souhaitez activer TLS (ssl) qui chiffre les 
+   communications entre les daemons Bacula ou si vous voulez utiliser le chiffrement 
+   PKI des données du File Daemon.Normalement, la sp\'ecification du chemin {\bf path} 
+   n'est pas n\'ecessaire car le processus de 
+   configuration recherche les librairies OpenSSL dans les emplacements standard du 
+   syst\`eme. L'activation d'OpenSSL dans Bacula permet des communications s\'ecuris\'ees 
+   entre les {\it daemons}. Pour plus d'informations sur l'usage de TLS, consultez le 
+   chapitre  \ilink{Bacula TLS}{_ChapterStart61} de ce manuel. Pour plus d'informations 
+   sur l'usage du chiffrement des données PKI, veuillez consulter le chapitre 
+   \ilink{Bacula PKI -- Data Encryption}{Chiffrement des données} de ce manuel.
+
+\item [ {-}{-}with-python=\lt{}path\gt{}]
+   \index[general]{{-}{-}with-python }
+   Cette option active le support Python dans Bacula. Si le chemin n'est pas 
+   sp\'ecifi\'e, le processus de configuration recherchera les librairies Python 
+   dans leurs emplacements standard. S'il ne peut trouver les librairies , il vous faudra 
+   fournir le chemin vers votre r\'epertoire de librairies Python. Voyez le 
+   \ilink{chapitre Python}{_ChapterStart60} pour plus de d\'etails sur l'utilisation de 
+   scripts Python.
+   
+\item [ {-}{-}with-libintl-prefix=\lt{}DIR\gt{}]
+   \index[general]{{-}{-}with-libintl-prefix}
+    Cette option peut \^etre utilis\'ee pour indiquer \`a Bacula de rechercher dans DIR/include 
+    et DIR/lib les fichiers d'en t\^ete libintl et les librairies requises pour 
+    Native  Language Support (NLS).
+
+\item [{-}{-}enable-conio]
+   \index[general]{{-}{-}enable-conio }
+   Cette option permet la compilation d'une petite et l\'eg\`ere routine en 
+alternative \`a readline, beaucoup plus facile \`a configurer, m\^eme si elle
+n\'ecessite aussi  les librairies termcap ou ncurses.  
+
+\item [{-}{-}with-readline=\lt{}readline-path\gt{}]
+   \index[general]{{-}{-}with-readline }
+   Sp\'ecifie l'emplacement de {\bf readline}.  En principe, Bacula devrait le
+trouver s'il est dans une librairie standard. Sinon, et  si l'option
+\verb{--{with-readline n'est pas renseign\'ee, readline sera d\'esactiv\'e. Cette
+option  affecte la compilation de Bacula. Readline fournit le programme
+Console avec un historique  des lignes de commandes et des capacit\'es
+d'\'edition. Readline n'est d\'esormais plus support\'e, ce qui  signifie que
+vous l'utilisez \`a vos risques et p\'erils  
+
+\item [{-}{-}enable-readline]
+   \index[general]{{-}{-}enable-readline }
+   Active le support readline. D\'esactiv\'e par d\'efaut en raison de nombreux
+probl\`emes de  configuration, et parce que le paquetage semble devenir
+incompatible.  
+
+\item [{-}{-}with-tcp-wrappers=\lt{}path\gt{}]
+   \index[general]{{-}{-}with-tcp-wrappers}
+   \index[general]{TCP Wrappers}
+   \index[general]{Wrappers!TCP}
+   \index[general]{libwrappers}
+   Cette option pr\'ecise que vous voulez TCP wrappers  (man hosts\_access(5))
+compil\'e dans Bacula. Le chemin est facultatif puisque Bacula devrait,  en
+principe, trouver les librairies dans les r\'epertoires standards. Cette
+option affecte la  compilation. Lorsque vous sp\'ecifierez vos restrictions
+dans les fichiers {\bf /etc/hosts.allow}  ou {\bf /etc/hosts.deny}, n'utilisez
+pas l'option {\bf twist} (man hosts\_options(5)) ou le  processus Bacula sera
+stopp\'e.  
+
+Pour plus d'informations sur la configuration et les tests de TCP wrappers,
+consultez la  section 
+\ilink{Configurer et Tester TCP Wrappers}{wrappers} du chapitre 
+sur la s\'ecurit\'e.  
+
+Sur SuSE, les librairies libwrappers requises pour lier Bacula appartiennent 
+au paquet tcpd-devel. Sur RedHat, le paquet se nomme tcp\_wrappers.
+
+\item [{-}{-}with-working-dir=\lt{}working-directory-path\gt{}]
+   \index[dir]{{-}{-}with-working-dir }
+   Cette option est obligatoire et  sp\'ecifie un r\'epertoire dans lequel Bacula
+peut placer en toute s\'ecurit\'e les fichiers  qui resteront d'une
+ex\'ecution \`a l'autre. Par exemple, si la base de donn\'ees interne est
+utilis\'ee,  Bacula stockera ces fichiers dans ce r\'epertoire. Cette option
+n'est utilis\'ee que pour  modifier les fichiers de configuration de Bacula.
+Vous pourrez \'eventuellement effectuer cette  modification directement en les
+\'editant plus tard. Le r\'epertoire sp\'ecifi\'e  ici n'est pas
+automatiquement cr\'e\'e par le processus d'installation, aussi vous devez
+veiller \`a ce qu'il existe avant  votre premi\`ere utilisation de Bacula.  
+
+\item [{-}{-}with-base-port=\lt{}port=number\gt{}]
+   \index[dir]{{-}{-}with-base-port }
+   Bacula a besoin de trois ports TCP/IP pour fonctionner  (un pour la Console,
+un pour le Storage Daemon et un pour le File Daemon). L'option {\bf
+\verb{--{with-baseport}  permet d'assigner automatiquement trois ports cons\'ecutifs
+\`a partir du port de base sp\'ecifi\'e. Vous pouvez  aussi changer les
+num\'eros de ports dans les fichiers de configuration. Cependant, vous devez
+prendre  garde \`a ce que les num\'eros de ports se correspondent fid\`element
+dans chacun des trois fichiers de configuration.  Le port de base par d\'efaut
+est 9101, ce qui assigne les ports 9101 \`a 9103. Ces ports (9101, 9102 et
+9103) ont  \'et\'e officiellement assign\'e \`a Bacula par l'IANA. Cette
+option n'est utilis\'ee que pour modifier les fichiers de  configuration de
+Bacula. Vous pouvez \`a tout moment faire cette modification en \'editant
+directement ces fichiers.  
+
+\item [{-}{-}with-dump-email=\lt{}email-address\gt{}]
+   \index[dir]{{-}{-}with-dump-email }
+   Cette option sp\'ecifie l'adresse e-mail qui recevra tous les {\it core dump}.
+ Cette option n'est en principe utilis\'ee que par les d\'eveloppeurs.  
+
+\item [{-}{-}with-pid-dir=\lt{}PATH\gt{}  ]
+   \index[dir]{{-}{-}with-pid-dir }
+   Ceci pr\'ecise le r\'epertoire de stockage du fichier d'id de processus lors
+de l'ex\'ecution. La valeur par d\'efaut est :  {\bf /var/run}. Le r\'epertoire
+sp\'ecifi\'e ici n'est pas automatiquement cr\'e\'e par le processus
+d'installation, aussi vous devez veiller \`a ce qu'il existe avant votre
+premi\`ere utilisation de Bacula.  
+
+\item [{-}{-}with-subsys-dir=\lt{}PATH\gt{}  ]
+   \index[dir]{{-}{-}with-subsys-dir }
+   Cette option pr\'ecise le r\'epertoire de stockage des fichiers verrous du
+sous-syst\`eme lors de l'ex\'ecution. Le r\'epertoire  par d\'efaut est {\bf
+/var/run/subsys}. Veillez \`a ne pas sp\'ecifier le m\^eme r\'epertoire que
+pour l'option {\bf sbindir}.  Ce r\'epertoire n'est utilis\'e que par les
+scripts de d\'emarrage automatique.  Le r\'epertoire sp\'ecifi\'e ici n'est
+pas automatiquement cr\'e\'e par le processus d'installation, aussi vous devez
+veiller \`a ce qu'il existe avant votre  premi\`ere utilisation de Bacula.  
+
+\item [{-}{-}with-dir-password=\lt{}Password\gt{}  ]
+   \index[dir]{{-}{-}with-dir-password }
+   Cette option vous permet de pr\'eciser le mot de passe d'acc\`es au Director
+(contact\'e, en principe, depuis la console).  S'il n'est pas pr\'ecis\'e,
+configure en cr\'e\'e un al\'eatoirement.  
+
+\item [{-}{-}with-fd-password=\lt{}Password\gt{}  ]
+   \index[fd]{{-}{-}with-fd-password }
+   Cette option vous permet de pr\'eciser le mot de passe d'acc\`es au File
+Daemon (contact\'e, en principe, depuis le Director).  S'il n'est pas
+pr\'ecis\'e, configure en cr\'e\'e un al\'eatoirement.  
+
+\item [{-}{-}with-sd-password=\lt{}Password\gt{}  ]
+   \index[sd]{{-}{-}with-sd-password }
+   Cette option vous permet de pr\'eciser le mot de passe d'acc\`es au Storage
+Daemon (contact\'e, en principe, depuis le File Daemon).  S'il n'est pas
+pr\'ecis\'e, configure en cr\'e\'e un al\'eatoirement.  
+
+\item [{-}{-}with-dir-user=\lt{}User\gt{}  ]
+   \index[dir]{{-}{-}with-dir-user }
+   Cette option vous permet de sp\'ecifier l'UserId utilis\'e pour l'ex\'ecution
+du Director. Le Director doit \^etre d\'emarr\'e  en tant que root, mais n'a
+pas besoin d'\^etre ex\'ecut\'e en tant que root. Apr\`es avoir effectu\'e les
+op\'erations  d'initialisation pr\'eliminaires, il peut redescendre au niveau
+de l'UserId sp\'ecifi\'e dans cette option. Si vous utilisez cette option, vous 
+devez cr\'eer l'utilisateur User avant d'ex\'ecuter {\bf make install}, car le 
+r\'epertoire de travail de Bacula appartiendra \`a cet utilisateur.
+
+\item [{-}{-}with-dir-group=\lt{}Group\gt{}  ]
+   \index[dir]{{-}{-}with-dir-group }
+   Cette option vous permet de sp\'ecifier le GroupId utilis\'e pour
+l'ex\'ecution du Director. Le Director doit \^etre d\'emarr\'e  en tant que
+root, mais n'a pas besoin d'\^etre ex\'ecut\'e en tant que root. Apr\`es avoir
+effectu\'e les op\'erations  d'initialisation pr\'eliminaires, il peut
+redescendre au niveau du GroupId sp\'ecifi\'e dans cette option.
+Si vous utilisez cette option, vous
+devez cr\'eer le groupe Group avant d'ex\'ecuter {\bf make install}, car le
+r\'epertoire de travail de Bacula appartiendra \`a ce groupe.
+
+\item [{-}{-}with-sd-user=\lt{}User\gt{}  ]
+   \index[sd]{{-}{-}with-sd-user }
+   Cette option vous permet de sp\'ecifier l'UserId utilis\'e pour ex\'ecuter le
+Storage Daemon. Le Storage Daemon doit \^etre d\'emarr\'e  en tant que root,
+mais n'a pas besoin d'\^etre ex\'ecut\'e en tant que root. Apr\`es avoir
+effectu\'e les op\'erations  d'initialisation pr\'eliminaires, il peut
+redescendre au niveau de l'UserId sp\'ecifi\'e dans cette option.  Si vous
+utilisez cette option, veillez \`a ce que le Storage Daemon ait acc\`es \`a
+tous les p\'eriph\'eriques de stockage  dont il a besoin.  
+
+\item [{-}{-}with-sd-group=\lt{}Group\gt{}  ]
+   \index[sd]{{-}{-}with-sd-group }
+   Cette option vous permet de sp\'ecifier le GroupId utilis\'e pour ex\'ecuter
+le Storage Daemon. Le Storage Daemon doit \^etre d\'emarr\'e  en tant que
+root, mais n'a pas besoin d'\^etre ex\'ecut\'e en tant que root. Apr\`es avoir
+effectu\'e les op\'erations  d'initialisation pr\'eliminaires, il peut
+redescendre au niveau du GroupId sp\'ecifi\'e dans cette option.  
+
+\item [{-}{-}with-fd-user=\lt{}User\gt{}  ]
+   \index[fd]{{-}{-}with-fd-user }
+   Cette option vous permet de sp\'ecifier l'UserId utilis\'e pour ex\'ecuter le
+File Daemon. Le File Daemon doit \^etre d\'emarr\'e  et, dans la plupart des
+cas, ex\'ecut\'e en tant que root, de sorte que cette option n'est utilis\'ee
+que dans des cas  bien particuliers. Malgr\'e tout, apr\`es avoir effectu\'e
+les op\'erations  d'initialisation pr\'eliminaires, il peut redescendre au
+niveau de l'UserId sp\'ecifi\'e dans cette option.  
+
+\item [{-}{-}with-fd-group=\lt{}Group\gt{}  ]
+   \index[fd]{{-}{-}with-fd-group }
+   Cette option vous permet de sp\'ecifier le GroupId utilis\'e pour ex\'ecuter
+le File Daemon. Le File Daemon doit \^etre d\'emarr\'e  et, dans la plupart
+des cas, ex\'ecut\'e en tant que root, de sorte que cette option n'est
+utilis\'ee que dans des cas  bien particuliers. Malgr\'e tout, apr\`es avoir
+effectu\'e les op\'erations  d'initialisation pr\'eliminaires, il peut
+redescendre au niveau du GroupId sp\'ecifi\'e dans cette option. 
+\end{description}
+
+Notez: de nombreuses options suppl\'ementaires vous sont pr\'esent\'ees
+lorsque vous entrez {\bf ./configure \verb{--{help}, mais elles ne sont pas
+impl\'ement\'ees. 
+
+\section{Options recommand\'ees pour la plupart des syst\`emes}
+\index[general]{Options recommand\'ees pour la plupart des syst\`emes }
+\addcontentsline{toc}{section}{Options recommand\'ees pour la plupart des
+syst\`emes}
+
+Pour la plupart des syst\`emes, nous recommandons de commencer avec les
+options suivantes : 
+
+\footnotesize
+\begin{verbatim}
+./configure \
+  --enable-smartalloc \
+  --sbindir=$HOME/bacula/bin \
+  --sysconfdir=$HOME/bacula/bin \
+  --with-pid-dir=$HOME/bacula/bin/working \
+  --with-subsys-dir=$HOME/bacula/bin/working \
+  --with-mysql=$HOME/mysql \
+  --with-working-dir=$HOME/bacula/working
+\end{verbatim}
+\normalsize
+
+Si vous souhaitez installer Bacula dans un r\'epertoire d'installation
+plut\^ot que de l'ex\'ecuter depuis le r\'epertoire de compilation, (comme le
+feront les d\'eveloppeurs la plupart du temps), vous devriez aussi inclure les
+options \verb{--{sbindir et \verb{--{sysconfdir avec les chemins appropri\'es. Aucune n'est
+n\'ecessaire si vous ne vous servez pas de "make install'', comme c'est le
+cas pour la plupart des travaux de d\'eveloppement. Le processus
+d'installation va cr\'eer les r\'epertoires sbindir et sysconfdir s'ils
+n'existent pas, mais il ne cr\'eera pas les r\'epertoires pid-dir, subsys-dir
+ni working-dir, aussi assurez vous qu'ils existent avant de lancer Bacula.
+L'exemple ci-dessous montre la fa\c{c}on de proc\'eder de Kern. 
+
+\section{RedHat}
+\index[general]{RedHat }
+\addcontentsline{toc}{section}{RedHat}
+
+Avec SQLite: 
+
+\footnotesize
+\begin{verbatim}
+CFLAGS="-g -Wall" ./configure \
+  --sbindir=$HOME/bacula/bin \
+  --sysconfdir=$HOME/bacula/bin \
+  --enable-smartalloc \
+  --with-sqlite=$HOME/bacula/depkgs/sqlite \
+  --with-working-dir=$HOME/bacula/working \
+  --with-pid-dir=$HOME/bacula/bin/working \
+  --with-subsys-dir=$HOME/bacula/bin/working \
+  --enable-gnome \
+  --enable-conio
+\end{verbatim}
+\normalsize
+
+ou 
+
+\footnotesize
+\begin{verbatim}
+CFLAGS="-g -Wall" ./configure \
+  --sbindir=$HOME/bacula/bin \
+  --sysconfdir=$HOME/bacula/bin \
+  --enable-smartalloc \
+  --with-mysql=$HOME/mysql \
+  --with-working-dir=$HOME/bacula/working
+  --with-pid-dir=$HOME/bacula/bin/working \
+  --with-subsys-dir=$HOME/bacula/bin/working
+  --enable-gnome \
+  --enable-conio
+\end{verbatim}
+\normalsize
+
+ou une installation RedHat compl\`etement traditionnelle : 
+
+\footnotesize
+\begin{verbatim}
+CFLAGS="-g -Wall" ./configure \
+  --prefix=/usr \
+  --sbindir=/usr/sbin \
+  --sysconfdir=/etc/bacula \
+  --with-scriptdir=/etc/bacula \
+  --enable-smartalloc \
+  --enable-gnome \
+  --with-mysql \
+  --with-working-dir=/var/bacula \
+  --with-pid-dir=$HOME/var/run \
+  --enable-conio
+\end{verbatim}
+\normalsize
+
+Notez que Bacula suppose que les r\'epertoires /var/bacula, /var/run et
+/var/lock/subsys existent, ils ne seront pas cr\'ees par le processus
+d'installation. 
+
+D'autre part, avec gcc 4.0.1 20050727 (Red Hat 4.0.1-5) sur processeur AMD64 
+et sous CentOS4 64 bits, un bug du compilateur g\'en\`ere du code erron\'e qui 
+conduit Bacula \`a des erreurs de segmentation. Typiquement, vous le rencontrerez 
+d'abord avec le Storage Daemon. La solution consiste \`a s'assurer que Bacula est 
+compil\'e sans optimisation (normalement -O2)
+
+\section{Solaris}
+\index[general]{Solaris }
+\addcontentsline{toc}{section}{Solaris}
+
+Pour installer Bacula depuis les sources, il vous faudra les paquetages suivants 
+sur votre syst\`eme (ils ne sont pas install\'es par d\'efaut) : libiconv, gcc 3.3.2, stdc++, libgcc 
+( pour les librairies stdc++ and gcc\_s ), make 3.8 ou plus r\'ecent.
+
+Il vous faudra probablement aussi ajouter /usr/local/bin et /usr/css/bin \`a PATH pour ar.
+
+\footnotesize
+\begin{verbatim}
+#!/bin/sh
+CFLAGS="-g" ./configure \
+  --sbindir=$HOME/bacula/bin \
+  --sysconfdir=$HOME/bacula/bin \
+  --with-mysql=$HOME/mysql \
+  --enable-smartalloc \
+  --with-pid-dir=$HOME/bacula/bin/working \
+  --with-subsys-dir=$HOME/bacula/bin/working \
+  --with-working-dir=$HOME/bacula/working
+\end{verbatim}
+\normalsize
+
+Comme mentionn\'e ci-dessus, le processus d'installation va cr\'eer les
+r\'epertoires sbindir et sysconfdir s'ils n'existent pas, mais il ne cr\'eera
+pas les r\'epertoires pid-dir, subsys-dir ni working-dir, aussi assurez vous
+qu'ils existent avant de lancer Bacula. 
+
+Notez que vous pouvez aussi avoir besoin des paquetages suivants pour installer Bacula 
+depuis les sources :
+\footnotesize
+\begin{verbatim}
+SUNWbinutils,
+SUNWarc,
+SUNWhea,
+SUNWGcc,
+SUNWGnutls
+SUNWGnutls-devel
+SUNWGmake
+SUNWgccruntime
+SUNWlibgcrypt
+SUNWzlib
+SUNWzlibs
+SUNWbinutilsS
+SUNWGmakeS
+SUNWlibm
+
+export
+PATH=/usr/bin::/usr/ccs/bin:/etc:/usr/openwin/bin:/usr/local/bin:/usr/sfw/bin:/opt/sfw/bin:/usr/ucb:/usr/sbin
+\end{verbatim}
+\normalsize
+
+
+\section{FreeBSD}
+\index[general]{FreeBSD }
+\addcontentsline{toc}{section}{FreeBSD}
+
+Veuillez consulter: 
+\elink{The FreeBSD Diary}{http://www.freebsddiary.org/bacula.php} pour une
+description d\'etaill\'ee de la m\'ethode pour faire fonctionner Bacula sur
+votre syst\`eme. De plus, les utilisateurs de versions de FreeBSD
+ant\'erieures \`a la 4.9-STABLE du lundi 29 d\'ecembre 2003 15:18:01 qui
+envisagent d'utiliser des lecteurs de bandes doivent consulter le chapitre 
+\ilink{Tester son lecteur de bandes}{FreeBSDTapes} de ce
+manuel pour d'{\bf importantes} informations sur la configuration des lecteurs
+pour qu'ils soient compatibles avec Bacula. 
+
+Si vous utilisez Bacula avec MySQL, vous devriez prendre garde \`a compiler
+MySQL avec les threads natifs de FreeBSD plut\^ot qu'avec ceux de Linux, car
+c'est avec ceux l\`a qu'est compil\'e Bacula et le m\'elange des deux ne
+fonctionnera probablement pas. 
+
+\section{Win32}
+\index[general]{Win32 }
+\addcontentsline{toc}{section}{Win32}
+
+Pour installer la version binaire Win32 du File Daemon, consultez le chapitre 
+\ilink{ Installation sur syst\`emes Win32}{_ChapterStart7} de ce
+document. 
+
+\section{Syst\`emes Windows avec CYGWIN install\'e}
+\label{Win32}
+\index[general]{Syst\`emes Windows avec CYGWIN install\'e }
+\addcontentsline{toc}{section}{Syst\`emes Windows avec CYGWIN install\'e}
+
+A partir de la version 1.34, Bacula n'utilise plus CYGWIN pour le client
+Win32. Il est cependant encore compil\'e sous un environnement CYGWIN -- Bien
+que vous puissiez probablement le faire avec seulement VC Studio. Si vous
+souhaitez compiler le client Win32 depuis les sources, il vous faudra
+Microsoft C++ version 6.0 ou sup\'erieur. Dans les versions de Bacula
+ant\'erieures \`a la 1.33, CYGWIN \'etait utilis\'e. 
+
+Notez qu'en d\'epit du fait que la plupart des \'el\'ements de Bacula puissent
+compiler sur les syst\`emes Windows, la seule partie que nous avons test\'ee
+et utilis\'ee est le File Daemon. 
+
+Finalement, vous devriez suivre les instructions d'installation de la section 
+\ilink{Win32 Installation sur syst\`emes Win32}{_ChapterStart7} de ce
+document en occultant la partie qui d\'ecrit la d\'ecompression de la version
+binaire. 
+
+\section{Le script Configure de Kern}
+\index[general]{Le script Configure de Kern }
+\index[general]{Kern!Le script Configure de }
+\addcontentsline{toc}{section}{Le script Configure de Kern}
+
+Voici le script que j'utilise pour compiler sur mes machines Linux de
+"production'': 
+
+\footnotesize
+\begin{verbatim}
+#!/bin/sh
+# This is Kern's configure script for Bacula
+CFLAGS="-g -Wall" \
+  ./configure \
+    --sbindir=$HOME/bacula/bin \
+    --sysconfdir=$HOME/bacula/bin \
+    --enable-smartalloc \
+    --enable-gnome \
+    --with-pid-dir=$HOME/bacula/bin/working \
+    --with-subsys-dir=$HOME/bacula/bin/working \
+    --with-mysql=$HOME/mysql \
+    --with-working-dir=$HOME/bacula/bin/working \
+    --with-dump-email=$USER \
+    --with-smtp-host=mail.your-site.com \
+    --with-baseport=9101
+exit 0
+\end{verbatim}
+\normalsize
+
+Notez que je fixe le port de base \`a 9101, ce qui signifie que Bacula
+utilisera le port 9101 pour la console Director, le port 9102 pour le File
+Daemon, et le 9103 pour le Storage Daemon. Ces ports devraient \^etre
+disponibles sur tous les syst\`emes \'etant donn\'e qu'ils ont \'et\'e
+officiellement attribu\'es \`a Bacula par l'IANA (Internet Assigned Numbers
+Authority). Nous recommandons fortement de n'utiliser que ces ports pour
+\'eviter tout conflit avec d'autres programmes. Ceci est en fait la
+configuration par d\'efaut si vous n'utilisez pas l'option {\bf
+\verb{--{with-baseport}. 
+
+Vous pouvez aussi ins\'erer les entr\'ees suivantes dans votre fichier {\bf
+/etc/services} de fa\c{c}on \`a rendre les connections de Bacula plus
+ais\'ees \`a rep\'erer (i.e. netstat -a): 
+
+\footnotesize
+\begin{verbatim}
+bacula-dir      9101/tcp
+bacula-fd       9102/tcp
+bacula-sd       9103/tcp
+\end{verbatim}
+\normalsize
+
+\section{Installer Bacula}
+\index[general]{Installer Bacula }
+\index[general]{Bacula!Installer }
+\addcontentsline{toc}{section}{Installer Bacula}
+
+Avant de personnaliser vos fichiers de configuration, vous voudrez installer
+Bacula dans son r\'epertoire d\'efinitif. tapez simplement: 
+
+\footnotesize
+\begin{verbatim}
+make install
+\end{verbatim}
+\normalsize
+
+Si vous avez pr\'ec\'edemment install\'e Bacula, les anciens binaires seront
+\'ecras\'es, mais les anciens fichiers de configuration resteront inchang\'es,
+et les "nouveaux'' recevront l'extension {\bf .new}. G\'en\'eralement, si
+vous avez d\'ej\`a install\'e et ex\'ecut\'e Bacula, vous pr\'ef\`ererez
+supprimer ou ignorer les fichiers de configuration avec l'extension {\bf .new}
+
+
+\section{Compiler un File Daemon (ou Client)}
+\index[general]{Compiler un File Daemon (ou Client) }
+\index[general]{Client!Compiler un File Daemon ou }
+\addcontentsline{toc}{section}{Compiler un File Daemon (ou Client)}
+
+Si vous ex\'ecutez le Director et le Storage Daemon sur une machine et si vous
+voulez sauvegarder une autre machine, vous devez avoir un File Daemon sur
+cette machine. Si la machine et le syst\`eme sont identiques, vous pouvez
+simplement copier le binaire du File Daemon {\bf bacula-fd} ainsi que son
+fichier de configuration {\bf bacula-fd.conf}, puis modifier le nom et le mot
+de passe dans {\bf bacula-fd.conf} de fa\c{c}on \`a rendre ce fichier unique.
+Veillez \`a faire les modifications correspondantes dans le fichier de
+configuration du Director ({\bf bacula-dir.conf}). 
+
+Si les architectures, les syst\`emes, ou les versions de syst\`emes
+diff\`erent, il vous faudra compiler un File Daemon sur la machine cliente.
+Pour ce faire, vous pouvez utiliser la m\^eme commande {\bf ./configure} que
+celle utilis\'ee pour construire le programme principal, soit en partant d'une
+copie fraiche du r\'epertoire des sources, soit en utilisant {\bf make\
+distclean} avant de lancer {\bf ./configure}. 
+
+Le File Daemon n'ayant pas d'acc\`es au catalogue, vous pouvez supprimer les
+option {\bf \verb{--{with-mysql} ou {\bf \verb{--{with-sqlite}. Ajoutez l'option {\bf
+\verb{--{enable-client-only}. Ceci va compiler seulement les librairies et programmes
+clients, et donc \'eviter d'avoir \`a installer telle ou telle base de
+donn\'ees. Lancez make avec cette configuration, et seul le client sera
+compil\'e. 
+\label{autostart}
+
+\section{D\'emarrage automatique des Daemons}
+\index[general]{Daemons!D\'emarrage automatique des }
+\index[general]{D\'emarrage automatique des Daemons }
+\addcontentsline{toc}{section}{D\'emarrage automatique des Daemons}
+
+Si vous souhaitez que vos {\it daemons} soient lanc\'es automatiquement au
+d\'emarrage de votre syst\`eme (une bonne id\'ee !), une \'etape
+suppl\'ementaire est requise. D'abord, le processus ./configure doit
+reconna{\^\i}tre votre syst\`eme -- ce qui signifie que ce doit \^etre une
+plate-forme support\'ee et non {\bf inconnue}, puis vous devez installer les
+fichiers d\'ependants de la plate-forme comme suit : 
+
+\footnotesize
+\begin{verbatim}
+(devenez root)
+make install-autostart
+\end{verbatim}
+\normalsize
+
+Notez que la fonction d'autod\'emarrage n'est impl\'ement\'ee que pour les
+syst\`emes que nous supportons officiellement (actuellement FreeBSD, RedHat
+Linux, et Solaris), et n'a \'et\'e pleinement test\'ee que sur RedHat Linux. 
+
+{\bf make install-autostart} installe les scripts de d\'emarrage apropri\'es
+ainsi que les liens symboliques n\'ecessaires. Sur RedHat Linux, Ces scripts
+r\'esident dans {\bf /etc/rc.d/init.d/bacula-dir} {\bf
+/etc/rc.d/init.d/bacula-fd}, et {\bf /etc/rc.d/init.d/bacula-sd}. Toutefois,
+leur localisation exacte d\'epend de votre syst\`eme d'exploitation. 
+
+Si vous n'installez que le File Daemon, tapez: 
+
+\footnotesize
+\begin{verbatim}
+make install-autostart-fd
+\end{verbatim}
+\normalsize
+
+\section{Autres notes concernant la compilation}
+\index[general]{Autres notes concernant la compilation }
+\index[general]{Compilation!Autres notes concernant la }
+\addcontentsline{toc}{section}{Autres notes concernant la compilation}
+
+Pour recompiler tout ex\'ecutable, tapez 
+
+\footnotesize
+\begin{verbatim}
+make
+\end{verbatim}
+\normalsize
+
+dans le r\'epertoire correspondant.. Afin d'\'eliminer tous les objets et
+binaires (y compris les fichiers temporaires nomm\'es 1,2 ou 3 qu'utilise
+Kern), tapez 
+
+\footnotesize
+\begin{verbatim}
+make clean
+\end{verbatim}
+\normalsize
+
+Pour un nettoyage exhaustif en vue de distribution, entrez: 
+
+\footnotesize
+\begin{verbatim}
+make distclean
+\end{verbatim}
+\normalsize
+
+Notez que cette commande supprime les Makefiles. Elle est en principe
+lanc\'ee depuis la racine du r\'epertoire des sources pour les pr\'eparer \`a
+la distribution. Pour revenir de cet \'etat, vous devez r\'eex\'ecuter la
+commande {\bf ./configure} \`a la racine des sources puisque tous les
+Makefiles ont \'et\'e d\'etruits. 
+
+Pour ajouter un nouveau fichier dans un sous-r\'epertoire, \'editez
+Makefile.in dans ce sous-r\'epertoire, puis faites un simple {\bf make}. Dans
+la plupart des cas, le make reconstruira le Makefile \`a partir du nouveau
+Makefile.in. Dans certains cas, il peut \^etre n\'ecessaire d'ex\'ecuter {\bf
+make} une deuxi\`eme fois. Dans les cas extr\`emes, remontez \`a la racine des
+sources et entrez {\bf make Makefiles}. 
+
+Pour ajouter des d\'ependances: 
+
+\footnotesize
+\begin{verbatim}
+make depend
+\end{verbatim}
+\normalsize
+
+La commande {\bf make depend} ins\`ere les fichiers d'en-t\^etes de
+d\'ependances aux Makefile et Makefile.in pour chaque fichier objet. Cette
+commande devrait \^etre lanc\'ee dans chaque r\'epertoire o\`u vous modifiez
+les d\'ependances. En principe, il suffit de l'ex\'ecuter lorsque vous ajoutez
+ou supprimez des sources ou fichiers d'en-t\^etes. {\bf make depend} est
+invoqu\'e automatiquement durant le processus de configuration. 
+
+Pour installer: 
+
+\footnotesize
+\begin{verbatim}
+make install
+\end{verbatim}
+\normalsize
+
+En principe, vous n'utilisez pas cette commande si vous \^etes en train de
+d\'evelopper Bacula, mais si vous vous appr\'etez \`a l'ex\'ecuter pour
+sauvegarder vos syst\`emes. 
+
+Apr\`es avoir lanc\'e {\bf make install}, les fichiers suivants seront
+install\'es sur votre syst\`eme (\`a peu de choses pr\`es). La liste exacte
+des fichiers install\'es et leur localisation d\'epend de votre commande {\bf
+c./configure} (e.g. gnome-console et gnome-console.conf ne sont pas
+install\'es si vous ne configurez pas GNOME. De m\^eme, si vous utilisez
+SQLite plut\^ot que MySQL, certains fichiers seront diff\'erents. 
+
+\footnotesize
+\begin{verbatim}
+bacula
+bacula-dir
+bacula-dir.conf
+bacula-fd
+bacula-fd.conf
+bacula-sd
+bacula-sd.conf
+bacula-tray-monitor
+tray-monitor.conf
+bextract
+bls
+bscan
+btape
+btraceback
+btraceback.gdb
+bconsole
+bconsole.conf
+create_mysql_database
+dbcheck
+delete_catalog_backup
+drop_bacula_tables
+drop_mysql_tables
+fd
+gnome-console
+gnome-console.conf
+make_bacula_tables
+make_catalog_backup
+make_mysql_tables
+mtx-changer
+query.sql
+bsmtp
+startmysql
+stopmysql
+bwx-console
+bwx-console.conf
+\end{verbatim}
+\normalsize
+
+\label{monitor}
+
+\section{Installer Tray Monitor}
+\index[general]{Monitor!Installer Tray }
+\index[general]{Installer Tray Monitor }
+\addcontentsline{toc}{section}{Installer Tray Monitor}
+
+Le Tray Monitor est d\'ej\`a install\'e si vous avez utilis\'e l'option {\bf
+\verb{--{enable-tray-monitor} de la commande configure et ex\'ecut\'e {\bf make
+install}.
+
+Comme vous n'ex\'ecutez pas votre environnement graphique en tant que root (si
+vous le faites, vous devriez changer cette mauvaise habitude), n'oubliez pas
+d'autoriser votre utilisateur \`a lire {\bf tray-monitor.conf}, et ex\'ecuter
+{\bf bacula-tray-monitor} (ceci ne constitue pas une faille de s\'ecurit\'e).
+
+Puis, connectez vous \`a votre environnement graphique (KDE, Gnome, ou autre),
+lancez {\bf bacula-tray-monitor} avec votre utilisateur et observez si l'icone
+d'une cartouche appara{\^\i}t quelque part sur l'\'ecran, usuellement dans la
+barre des t\^aches.
+Sinon, suivez les instructions suivantes relatives \`a votre gestionnaire de
+fen\^etres. 
+
+\subsection{GNOME}
+\index[general]{GNOME }
+\addcontentsline{toc}{subsection}{GNOME}
+
+System tray, ou zone de notification si vous utilisez la terminologie GNOME,
+est support\'e par GNOME depuis la version 2.2. Pour l'activer, faites un
+click droit sur un de vos espaces de travail, ouvrez le menu {\bf Ajouter \`a
+ce bureau}, puis {\bf Utilitaire} et enfin, cliquez sur {\bf Zone de
+notification}. (NDT: A valider) 
+
+\subsection{KDE}
+\index[general]{KDE }
+\addcontentsline{toc}{subsection}{KDE}
+
+System tray est support\'e par KDE depuis la version 3.1. Pour l'activer,
+faites un click droit sur la barre de t\^aches, ouvrez le menu {\bf Ajouter},
+puis {\bf Applet}, enfin cliquez sur {\bf System Tray}. 
+
+\subsection{Autres gestionnaires de fen\^etres}
+\index[general]{Autres gestionnaires de fen\^etres }
+\addcontentsline{toc}{subsection}{Autres gestionnaires de fen\^etres}
+
+Lisez la documentation pour savoir si votre gestionnaire de fen\^etres
+supporte le standard {\it systemtray} de FreeDesktop, et comment l'activer le
+cas \'ech\'eant. 
+
+\section{Modifier les fichiers de configuration de Bacula}
+\index[general]{Modifier les fichiers de configuration de Bacula }
+\index[general]{Bacula!Modifier les fichiers de configuration de }
+\addcontentsline{toc}{section}{Modifier les fichiers de configuration de
+Bacula}
+
+Consultez le chapitre 
+\ilink{Configurer Bacula}{_ChapterStart16} de ce manuel pour les
+instructions de configuration de Bacula. 
diff --git a/docs/manuals/fr/main/old/messagesres.tex b/docs/manuals/fr/main/old/messagesres.tex
new file mode 100644 (file)
index 0000000..49d313e
--- /dev/null
@@ -0,0 +1,347 @@
+%%
+%%
+
+\chapter{La ressource Messages}
+\label{_ChapterStart15}
+\index[general]{Ressource!Messages}
+\index[general]{Messages Ressource}
+\addcontentsline{toc}{section}{Ressource Messages}
+
+\section{La ressource  Messages}
+\label{MessageResource}
+\index[general]{Ressource!Messages}
+\index[general]{Messages Ressource}
+\addcontentsline{toc}{section}{La ressource Messages}
+
+La ressource Messages d\'efinit la fa\c{c}on dont les messages doivent \^etre construits 
+et vers quelles destinations ils doivent \^etre transmis.
+
+Bien que chaque {\it daemon} int\`egre un gestionnaire de messages pleinement 
+fonctionnel, vous choisirez certainement de centraliser les messages appropri\'es 
+des File Daemons et du Storage Daemon vers le Director. Ainsi, tous les messages 
+associ\'es \`a un job donn\'e peuvent \^etre combin\'es et envoy\'es en un simple courrier 
+\'electronique vers l'utilisateur, ou enregistr\'e dans quelque fichier de logs.
+
+Chaque message g\'en\'er\'e par un {\it daemon} Bacula poss\`ede un type associ\'e tel 
+que INFO, WARNING, ERROR, FATAL, etc. La ressource Messages vous permet de 
+stipuler les types de messages que vous voulez voir, et o\`u les envoyer. De plus, 
+un message peut \^etre exp\'edi\'e vers plusieurs destinations. Par exemple, vous 
+pouvez faire en sorte quque tous les messages d'erreur soient consign\'es dans un 
+fichier de logs tout en vous \'etant envoy\'es par courrier \'elecronique. En 
+d\'efinissant plusieurs ressources Messages, vous pouvez profiter de diff\'erents 
+modes de prise en charge pour chaque type de job (par exemple, selon qu'il 
+s'agit d'une full ou d'un incr\'ementale). 
+
+En g\'en\'eral, les messages sont attach\'es \`a un job et sont inclus dans le rapport de job. 
+Il existe de rares situations o\`u ce n'est pas possible, par exemple lorsqu'aucun 
+job n'est en cours d'ex\'ecution, ou si une erreur de communication se produit 
+entre un daemon et le Director. Dans ce genre de situations, le message demeure 
+dans le syst\`eme et devrait \^etre purg\'e \`a la fin job suivant. Cependant, comme de tels 
+messages ne sont pas attach\'es \`a un job, tous ceux qui sont envoy\'es par courrier 
+\'electronique sont envoy\'es \`a {\bf /usr/lib/sendmail}. Si sur votre syst\`eme, comme c'est 
+le cas de FreeBSD, sendmail r\'eside en un autre emplacement, veillez \`a le lier 
+depuis l'emplacement ci-dessus. 
+
+Les enregistrements contenus dans une ressource Messages consistent en une 
+sp\'ecification de  {\bf destination} suivie d'une liste de types de messages 
+{\bf message-types} au format :
+
+\begin{description}
+
+\item [destination = message-type1, message-type2, message-type3, ...  ]
+   \index[dir]{destination}
+   \end{description}
+
+ou, pour ces destinations qui n\'ecessitent de sp\'ecifier une adresse (e-mail, par exemple) :
+
+\begin{description}
+
+\item [destination = address = message-type1, message-type2,
+   message-type3, ...  ]
+   \index[dir]{destination}
+
+o\`u {\bf destination} est l'un des mots-clef pr\'ed\'efinis qui pr\'ecise o\`u le message 
+doit \^etre exp\'edi\'e ({\bf stdout}, {\bf file}, ...), {\bf  message-type} est l'un des 
+mots-clef pr\'ed\'efinis qui pr\'ecise le type de messages g\'en\'er\'e par Bacula ({\bf ERROR}, 
+{\bf WARNING}, {\bf FATAL}, ...) et {\bf address} varie selon le mot clef  {\bf destination} 
+mais peut typiquement \^etre une adresse de courrier \'electronique ou un nom de fichier.
+
+\end{description}
+
+Voici la liste des directives disponibles pour d\'efinir des ressources Messages :
+
+
+\begin{description}
+
+\item [Messages]
+   \index[dir]{Messages}
+   D\'ebut des enregistrements de Messages
+
+\item [Name = \lt{}name\gt{}]
+   \index[dir]{Name}
+   Le nom de la ressource Message. Ce nom sera utilis\'e pour lier cette ressource 
+Message \`a un job et/ou au un daemon.
+
+\label{mailcommand}
+
+\item [MailCommand = \lt{}command\gt{}]
+   \index[dir]{MailCommand}
+En l'absence de cette directive, Bacula enverra tous ses messages avec la 
+commande suivante :
+
+{\bf mail -s "Bacula Message" \lt{}recipients\gt{}}  
+Dans de nombreusx cas, selon votre machine, cette commande peut ne pas fonctionner. 
+La directive  {\bf MailCommand} vous permet de stipuler pr\'ecis\'ement la fa\c{c}on 
+d'envoyer vos courrier \'electroniques. Lors de l'ex\'ecution de la commande 
+{\bf command}, sp\'ecifi\'ee entre guillemets, les substitutions suivantes sont 
+effectu\'ees :
+
+\begin{itemize}
+  \item \%\% = \%  
+  \item \%c = Le nom du client
+  \item \%d = Le nom du Director  
+  \item \%e = Le code de sortie du job (OK, Error, ...)  
+  \item \%i = L'Id du Job  
+  \item \%j = Le nom unique du job  
+  \item \%l = Le niveau (Full, differential, ...) du job  
+  \item \%n = Le om du job  
+  \item \%r = Les destinataires  
+  \item \%t = Le type du job (Backup, verify, ...)  
+\end{itemize}
+
+Voici la commande que j'utilise (Kern) :
+
+{\bf mailcommand = "/home/kern/bacula/bin/bsmtp -h mail.example.com -f
+\textbackslash{}"\textbackslash{}(Bacula\textbackslash{})
+\%r\textbackslash{}" -s \textbackslash{}"Bacula: \%t \%e of \%c
+\%l\textbackslash{}" \%r"}
+
+Notez que la commande enti\`ere devrait appara\^itre sur une seulle ligne plut\^ot 
+que d\'ecoup\'ee comme ici pour des raisons de pr\'esentation.
+
+Le programme {\bf bsmtp} est fourni en tant que partie de Bacula. Pour plus 
+de d\'etails, consultez la section \ilink{ bsmtp -- Personnaliser l'envoi 
+de vos message par courrier \'electronique}{bsmtp}. Testez soigneusement 
+toute commande {\bf mailcommand} pour vous assurer que votre passerelle 
+bsmtp accepte le format d'adressage que vous utilisez. Certains programmes 
+tels Exim peut se montrer tr\`es s\'electif en ce qui concerne les format 
+autoris\'es, particuli\`erement en ce qui concerne le champ "from".
+
+\item [OperatorCommand = \lt{}command\gt{}]
+   \index[fd]{OperatorCommand}
+   Cette directive est analogue \`a {\bf MailCommand}, mais elle est utilis\'ee pour 
+   les messages destin\'es \`a l'op\'erateur. Les substitutions effectu\'ees pour la 
+   directive {\bf MailCommand} sont aussi effectu\'ees pour celle-ci. Normalement, 
+   vous mettrez ici la m\^eme valeur que pour {\bf MailCommand}.
+
+\item [Debug = \lt{}debug-level\gt{}]
+   \index[fd]{Debug}
+   Cette directive r\`egle le niveau de d\'ebogage des messages. C'est un entier. 
+   Plus sa valeur est grande, plus grande est la quantit\'e d'informations de 
+   d\'ebogages produites. Nous vous conseillons de ne pas utiliser cette directive 
+   car elle sera bient\^ot obsol\`ete.
+
+\item [\lt{}destination\gt{} = \lt{}message-type1\gt{},
+   \lt{}message-type2\gt{}, ...]
+   \index[fd]{\lt{}destination\gt{}}
+
+O\`u la {\bf destination} peut \^etre l'une des suivantes :
+
+\begin{description}
+
+\item [stdout]
+   \index[fd]{stdout}
+   Envoie le message vers la sortie standard.
+
+\item [stderr]
+   \index[fd]{stderr}
+   Envoie le message vers l'erreur standard
+
+\item [console]
+   \index[console]{console}
+   Envoie le message vers la console Bacula. Ces messages sont gard\'es en attente 
+   jusqu'\`a ce que la console contacte le Director.
+\end{description}
+
+\item {\bf \lt{}destination\gt{} = \lt{}address\gt{} =
+   \lt{}message-type1\gt{}, \lt{}message-type2\gt{}, ...}
+   \index[console]{\lt{}destination\gt{}}
+
+O\`u {\bf address} d\'epend de la {\bf destination}, qui peut \^etre l'une des suivantes :
+
+\begin{description}
+
+\item [director]
+   \index[dir]{director}
+   Envoie le message vers le Director dont le nom est sp\'ecifi\'e dans le champ 
+   {\bf address}. Notez que dans l'impl\'ementation actuelle, le nom du Director 
+   est ignor\'e, le message \'etant envoy\'e au Directr qui a lanc\'e le job.
+
+\item [file]
+   \index[dir]{file}
+   Envoie le message vers le fichier d\'esign\'e dans le champ {\bf address}. Si le 
+   fichier existe, il est \'ecras\'e.
+
+\item [append]
+   \index[dir]{append}
+   Ajoute le message \`a la suite du fichier d\'esign\'e dans le champ {\bf address}. 
+   Si le fichier n'existe pas encore, il est cr\'e\'e.
+   
+\item [syslog]
+   \index[fd]{syslog}
+   Envoie le message vers le syst\`eme de journalisation (syslog) en utilisant le 
+   service d\'esign\'e par le champ {\bf address} Notez que, pour le moment, le champ 
+   {\bf address} est ignor\'e, et que le message est toujours envoy\'e au service 
+   LOG\_DAEMON avec le niveau LOG\_ERR. Consultez la page {\bf man 3 syslog} 
+   pour plus de d\'etails. Exemple :
+   
+\begin{verbatim}
+   syslog = all, !skipped, !saved
+\end{verbatim}
+
+\item [mail]
+   \index[fd]{mail}
+   Exp\'edie le message vers les adresses \'electroniques 
+   sp\'ecifi\'ees dans le champ {\bf address} (s\'epar\'ees par des points-virgule). 
+   Les messages sont rassembl\'es au cours du job, puis exp\'edi\'es lorsqu'il prend 
+   fin en un seul courrier \'electronique. L'avantage de cette Destination est 
+   que vous recevez une notification de chaque job ex\'ecut\'e. Toutefois, si vous 
+   sauvegardez cinq ou dix machines chaque nuit, la quantit\'e de courrier 
+   \'electronique peut devenir importante. Certains utilisateurs mettent en oeuvre 
+   des filtres de courrier tels {\bf procmail} pour classer automatiquement ces 
+   courriers en fonction des codes de fin de job (voyez la commande {\bf mailcommand}
+
+\item [mail on error]
+   \index[fd]{mail on error}
+   Exp\'edie le message vers les adresses \'electroniques
+   sp\'ecifi\'ees dans le champ {\bf address} (s\'epar\'ees par des points-virgule) 
+   si le job se termine avec un code d'erreur. Les messages MailOnError sont 
+   rassembl\'es au cours du job, puis exp\'edi\'es lorsqu'il prend fin en un seul 
+   courrier \'electronique. Cette Destination diff\`ere de la Destination  {\bf mail} 
+   en ce que si le job s'ach\`eve normalement, le message est compl\`etement 
+   abandonn\'e (pour cette Destination). En utilisant d'autres Destinations, telles 
+   que {\bf append}, vous pouvez vous assurer que les informations de sorties 
+   ne seront pas perdues m\^eme si le job se termine normalement.
+
+\item [operator]
+   \index[fd]{operator}
+   Exp\'edie le message vers les adresses \'electroniques
+   sp\'ecifi\'ees dans le champ {\bf address} (s\'epar\'ees par des points virgule). 
+   Cette directive est similaire \`a {\bf mail} d\'ecrite plus haut, sauf que 
+   chaque message est envoy\'e aussit\^ot re\c{c}u, de sorte qu'il y a un courrier 
+   \'electronique par message . Ceci est surtout utile pour les messages de 
+   type {\bf mount} (voir ci-dessous).
+
+\end{description}
+  Pour toutes les Destinations, le champ "type de message" {\bf message-type}  est 
+  une liste des types (ou classes) de messages  suivants s\'epar\'es par des 
+  points-virgule :
+
+\begin{description}
+
+\item [info]
+   \index[fd]{info}
+   Messages d'information g\'en\'erale.
+
+\item [warning]
+   \index[fd]{warning}
+   Messages d'avertissement. En g\'en\'eral, il s'agit de quelque situation inhabituelle 
+   sans toutefois \^etre tr\`es s\'erieuse.
+
+\item [error]
+   \index[fd]{error}
+   Messages d'erreur non-fatale. Le job se poursuit. Tout message d'erreur devrait 
+   \^etre suivi d'investigations, car il signifie que quelque chose est all\'e de travers.
+
+\item [fatal]
+   \index[fd]{fatal}
+   Messages d'erreur fatale. Ces erreurs pr\'ecipitent la fin du job.
+
+\item [terminate]
+   \index[fd]{terminate}
+   Messages g\'en\'er\'es lorsque le daemon s'arr\`ete.
+
+\item [saved]
+   \index[fd]{saved}
+   Fichiers sauvegard\'es normalement.
+
+\item [notsaved]
+   \index[fd]{notsaved}
+   Fichiers non sauvegard\'es en raison d'une erreur, en g\'en\'eral, parce que le 
+   fichier n'a pu \^etre acc\'ed\'e (il n'existait pas ou n'\'etait pas mont\'e).
+
+\item [skipped]
+   \index[fd]{skipped}
+   Fichiers qui ont \'et\'e laiss\'es de cot\'e en raison d'une option pos\'ee par un 
+   utilisateur (par exemple le niveau d'une sauvegarde ou une option 
+   d'exclusion. Ceci n'est pas consid\'er\'e comme une condition d'erreur au m\^eme 
+   titre que pour le type {\bf notsaved} puisque le fichier de configuration 
+   stipule explicitement que ces fichiers ne doivent pas \^etre sauvegard\'es. 
+   Des cas typiques de fichiers de type {\bf skipped} : fichiers inchang\'es 
+   lors d'une incr\'ementale, sous-r\'epertoires si l'option {\bf no recursion} 
+   est activ\'ee...
+
+\item [mount]
+   \index[dir]{mount}
+   Montage d'un volume ou intervention d'un op\'erateur requis par le Storage Daemon. 
+   Ces requ\^etes n\'ecessitent une intervention sp\'ecifique de l'op\'erateur pour que le 
+   job puisse se poursuivre. 
+
+\item [restored]
+   \index[dir]{restored}
+   La liste, fa\c{c}on {\bf ls}, de tous les fichiers restaur\'es est envoy\'ee vers 
+   cette classe de messages.
+   
+\item [all]
+   \index[fd]{all}
+   Tous les types de messages.
+
+\item [*security]
+   \index[fd]{*security}
+   Messages d'information ou d'avertissement relatifs \`a la s\'ecurit\'e, 
+   essentiellement les tentatives de connection non-autoris\'ees.
+\end{description}
+
+\end{description}
+
+Voici un exemple d'une d\'efinition de ressource Messages valide, o\`u tous les 
+messages sont envoy\'es par courrier \'electronique \`a  enforcement@sec.com \`a 
+l'exception de ceux concernant les fichiers explicitement exclus (skipped), 
+et des messages d'arr\^et de daemon (terminate). De plus, tous les messages 
+de type mount sont envoy\'es \`a l'op\'erateur (courrier \`a enforcement@sec.com). 
+Enfin, tous les messages autres que ceux relatifs aux fichiers explicitement 
+exclus et aux fichiers sauvegard\'es sont envoy\'es vers la console :
+
+\footnotesize
+\begin{verbatim}
+Messages {
+  Name = Standard
+  mail = enforcement@sec.com = all, !skipped, !terminate
+  operator = enforcement@sec.com = mount
+  console = all, !skipped, !saved
+}
+\end{verbatim}
+\normalsize
+
+A l'exception de l'adresse \'electronique (modifi\'ee pour \'eviter le spam), 
+voici la ressource Message du Director de Kern. Notez que les commandes 
+{\bf mailcommand} et {\bf operatorcommand} sont sur une seule ligne et 
+non coup\'ees comme ici pour des besoins de mise en page.
+
+\footnotesize
+\begin{verbatim}
+Messages {
+  Name = Standard
+  mailcommand = "bacula/bin/bsmtp -h mail.example.com \
+    -f \"\(Bacula\) %r\" -s \"Bacula: %t %e of %c %l\" %r"
+  operatorcommand = "bacula/bin/bsmtp -h mail.example.com \
+    -f \"\(Bacula\) %r\" -s \"Bacula: Intervention needed \
+        for %j\" %r"
+  MailOnError = security@example.com = all, !skipped, \
+                !terminate
+  append = "bacula/bin/log" = all, !skipped, !terminate
+  operator = security@example.com = mount
+  console = all, !skipped, !saved
+}
+\end{verbatim}
+\normalsize
diff --git a/docs/manuals/fr/main/old/postgresql.tex b/docs/manuals/fr/main/old/postgresql.tex
new file mode 100644 (file)
index 0000000..9bbf820
--- /dev/null
@@ -0,0 +1,457 @@
+%%
+%%
+
+\chapter{Installer et configurer PostgreSQL}
+\label{_ChapterStart10}
+\index[general]{PostgreSQL!Installer et configurer }
+\index[general]{Installer et configurer PostgreSQL }
+\addcontentsline{toc}{section}{Installer et configurer PostgreSQL}
+
+\section{Installer et configurer PostgreSQL -- Phase I}
+\index[general]{Installer et configurer PostgreSQL -- Phase I }
+\index[general]{Phase I!Installer et configurer PostgreSQL -- }
+\addcontentsline{toc}{section}{Installer et configurer PostgreSQL -- Phase
+I}
+
+Attention !!! Si vous envisagez d'utiliser PostgreSQL, vous devriez 
+\^etre conscient de la philosophie des mises \`a jour de PostgreSQL qui 
+peut \^etre d\'estabilisant dans un environnement de 
+production. En gros, pour chaque mise \`a jour vers une version majeure, 
+vous devez exporter vos bases de donn\'ees au format ASCII, faire la 
+mise \`a jour, et recharger vos bases de donn\'ees. Ceci est d\^u au \`a des 
+mises \`a jour fr\'equentes du "format de donn\'ees" d'une version \`a l'autre, 
+et aucun outil n'est fourni pour effectuer la conversion automatiquement. 
+Si vous omettez d'exporter vos bases au format ASCII, elles peuvent 
+devenir compl\`etement inutiles si aucun des nouveaux outils ne peut y 
+acc\'eder en raison d'un changement de format, auquel cas le serveur 
+PostgreSQL sera dans l'incapacit\'e de d\'emarrer. 
+
+Si vous avez utilis\'e l'option {\bf ./configure
+\verb{--{with-postgresql=PostgreSQL-Directory} pour configurer {\bf Bacula}, vous
+avez besoin d'installer la version 7.3 ou sup\'erieure de PostgreSQL.
+ATTENTION! Les versions pr\'ealables \`a la 7.3 ne fonctionnent pas avec
+Bacula. Si PostgreSQL est install\'e dans ses r\'epertoires sandards, seule
+l'option {\bf \verb{--{with-postgresql} est n\'ecessaire, le programme de
+configuration scrutant tous les r\'epertoires standards. Si PostgreSQL est
+install\'e dans votre r\'epertoire de travail ou dans un r\'epertoire
+atypique, il faut pr\'eciser l'option {\bf \verb{--{with-postgresql} suivie du
+r\'epertoire {\it ad hoc}. 
+
+Installer et configurer PostgreSQL n'est pas compliqu\'e mais peut \^etre
+d\'eroutant la premi\`ere fois. Si vous pr\'ef\'erez, vous pouvez utiliser le
+paquet de votre distribution. Les paquets binaires sont disponibles sur la
+plupart des mirroirs de PostgreSQL. 
+
+Si vous pr\'ef\'erez installer PostgreSQL \`a partir des sources, nous vous
+recommandons de suivre les instructions de la 
+\elink{documentation PostgreSQL}{http://www.postgresql.org/docs/}. 
+
+Si vous utilisez PostgreSQL pour FreeBSD, 
+\elink{cet article}{http://www.freebsddiary.org/postgresql.php} vous sera peut
+\^etre utile. M\^eme si vous n'utilisez pas FreeBSD, l'article contient des
+informations utiles \`a la configuration et au param\'etrage de PostgreSQL. 
+
+Apr\`es l'installation de PostgreSQL, terminez l'installation de {\bf Bacula}.
+Ensuite, quand Bacula sera install\'e, reprenez ce chapitre pour terminer
+l'installation. Notez que les fichiers d'installation utilis\'es dans cette
+seconde phase de l'installation de PostgreSQL sont cr\'e\'es durant
+l'installation de Bacula. 
+\label{PostgreSQL_phase2}
+
+\section{Installer et configurer PostgreSQL -- Phase II}
+\index[general]{Phase II!Installer et configurer PostgreSQL -- }
+\index[general]{Installer et configurer PostgreSQL -- Phase II }
+\addcontentsline{toc}{section}{Installer et configurer PostgreSQL -- Phase
+II}
+
+Si vous en \^etes l\`a, vous avez construit et install\'e PostgreSQL, ou vous
+aviez d\'ej\`a un serveur PostgreSQL existant et vous avez configur\'e et
+install\'e {\bf Bacula}. Dans le cas contraire, nous vous invitons \`a le
+faire avant de poursuivre. 
+
+Notez bien que la commande {\bf ./configure} utilis\'ee pour
+construire {\bf Bacula} n\'ecessite d'ajouter l'option {\bf
+\verb{--{with-postgresql=repertoire\_de\_PostgreSQL}, o\`u {\bf
+repertoire\_de\_PostgreSQL} sp\'ecifie le chemin de PostgreSQL indiqu\'e \`a
+la commande ./configure. (si vous n'avez pas sp\'ecifi\'e de r\'epertoire ou
+si PostgreSQL est install\'e dans son r\'epertoire par d\'efaut, cette option
+n'est pas n\'ecessaire). Cette option est n\'ecessaire pour que Bacula puisse
+trouver les fichiers d'en-t\^ete et les librairies d'interface \`a PostgreSQL.
+
+
+{\bf Bacula} installe les scripts pour la gestion de la base de donn\'ees
+(cr\'eer, d\'etruire, cr\'eer les tables, etc.) dans le r\'epertoire principal
+de l'installation. Ces fichiers sont de la forme *\_bacula\_* (par exemple
+create\_bacula\_database). Ces fichiers sont \'egalement disponibles dans le
+r\'epertoire \lt{}bacula-src\gt{}/src/cats apr\`es que la commande ./configure
+ait \'et\'e lanc\'ee. Si vous consultez le fichier create\_bacula\_database,
+vous verrez qu'il fait appel \`a create\_postgresql\_database. Les fichiers
+*\_bacula\_* sont fournis pour faciliter les choses. Peu importe la base de
+donn\'ees choisie, create\_bacula\_database cr\'eera la base de donn\'ees. 
+
+Maintenant vous allez cr\'eer la base de donn\'ees PostgreSQL et les tables
+utilis\'ees par Bacula. On pr\'esume dans la suite que votre serveur
+PostgreSQL fonctionne. Vous devez ex\'ecuter les diff\'erentes \'etapes
+ci-dessous en tant qu'utilisateur autoris\'e \`a cr\'eer des bases. Ceci peut
+\^etre fait avec l'utilisateur PostgreSQL (sur la plupart des syst\`emes il
+s'agit de pgsql. NDT: sur debian il s'agit de postgres) 
+
+\begin{enumerate}
+\item cd \lt{}r\'epertoire\_d\_installation\gt{}
+
+   Ce r\'epertoire contient le catalogue des routines d'interfaces.  
+
+\item ./create\_bacula\_database
+
+   Ce script cr\'e\'e le catalogue {\bf bacula} PostgreSQL. S'il \'echoue, 
+   c'est probablement que vous n'avez pas les droits requis sur la 
+   base de donn\'ees. Sur la plupart des syst\`emes, le propri\'etaire de 
+   la base de donn\'ees est {\bf pgsql}, et sur d'autres tels que RedHat ou 
+   Fedora, c'est {\bf postgres}. Vous pouvez d\'eterminer lequel en examinant 
+   le fichier /etc/passwd. Pour cr\'eer un nouvel utilisateur avec votre nom 
+   ou le nom {\bf bacula}, vous pouvez faire ce qui suit :
+      
+\begin{verbatim}
+   su
+   (entrez le mot de passe root)
+   su pgsql (ou postgres)
+   createuser kern (ou peut-\^etre bacula)
+   Shall the new user be allowed to create databases? (y/n) y
+   Shall the new user be allowed to create more new users? (y/n) (choisissez ce que vous voulez)
+   exit
+\end{verbatim}
+
+
+    A ce stade, vous devriez pouvoir ex\'ecuter la commande ./create\_bacula\_database
+
+\item ./make\_bacula\_tables
+
+   Cr\'e\'ee les tables utilis\'ees par {\bf Bacula}.  
+\item ./grant\_bacula\_privileges
+
+   Cr\'e\'ee l'utilisateur de la base de donn\'ees {\bf bacula} avec des droits
+d'acc\`es restreints. Vous pouvez modifier ce script pour cadrer avec votre
+propre configuration. Attention, cette base n'est pas prot\'eg\'ee par un mot
+de passe.  
+
+\end{enumerate}
+
+Chacun de ces scripts (create\_bacula\_database, make\_bacula\_tables et
+grant\_bacula\_privileges) permet l'ajout d'arguments en ligne de commande.
+Ceci peut \^etre utile pour sp\'ecifier le nom de l'utilisateur. Par exemple,
+vous pouvez avoir besoin d'ajouter {\bf -h nom\_d\_hote} \`a la ligne de
+commande pour sp\'ecifier le serveur de base de donn\'ees distant. 
+
+Pour avoir un bon aper\c{c}u des droits d'acc\`es que vous avez sp\'ecifi\'e
+vous pouvez utiliser la commande 
+
+\footnotesize
+\begin{verbatim}
+
+repertoire_de_PostgreSQL/bin/psql --command \\dp bacula
+\end{verbatim}
+\normalsize
+
+J'ai rencontr\'e un probl\`eme de permissions avec le mot de passe. J'ai finalement 
+du modifier mon fichier  {\bf pg\_hba.conf} (situ\'e dans /var/lib/pgsql/data sur ma 
+machine) :
+
+\footnotesize
+\begin{verbatim}
+de
+  local   all    all        ident  sameuser
+vers
+  local   all    all        trust  sameuser
+\end{verbatim}
+\normalsize
+
+Ceci a r\'esolu le probl\`eme pour moi, mais ce n'est pas pas forc\'ement une bonne 
+chose du point de vue de la s\'ecurit\'e, mais j'ai ainsi pu ex\'ecuter mes scripts de 
+r\'egression sans mot de passe.
+
+Un moyen plus s\'ecuris\'e pour l'authentification aupr\`es de la base de donn\'ees 
+consiste \`a utiliser le hachage MD5 des mots de passe. Pour cela, \'editez les 
+fichier {\bf pg\_hba.conf}, et ajoutez ajoutez ce qui suit juste avant les lignes 
+"local" et "host" existantes :
+
+\footnotesize
+\begin{verbatim}
+  local bacula bacula md5
+\end{verbatim}
+\normalsize
+
+Puis red\'emarrez le {\it daemon} Postgres (la plupart du temps, avec 
+ "/etc/init.d/postgresql restart") pour activer cette nouvelle r\`egle 
+d'authentification.
+
+Ensuite, en tant qu'administrateur Postgres (connectez-vous en tant 
+qu'utilisateur postgres ou en utilisant {\bf su} pour devenir root, puis 
+ {\bf su postgres}), ajoutez un mot de passe \`a la base de donn\'ees bacula 
+pour l'utilisateur bacula avec les commandes suivantes :
+
+\footnotesize
+\begin{verbatim}
+  \$ psql bacula
+  bacula=# alter user bacula with password 'secret';
+  ALTER USER
+  bacula=# \\q
+\end{verbatim}
+\normalsize
+
+Enfin, il vous faudra ajouter ce mot de passe en deux endroits du fichier 
+bacula-dir.conf : au niveau de la ressource Catalog et au niveau de la 
+directive RunBeforeJob de la ressource Job BackupCatalog. Avec les mots de 
+passe en place, ces deux lignes devraient ressembler \`a ceci :
+
+\footnotesize
+\begin{verbatim}
+  dbname = bacula; user = bacula; password = "secret"
+    ... and ...
+  RunBeforeJob = "/etc/make_catalog_backup bacula bacula secret"
+\end{verbatim}
+\normalsize
+
+Naturellement, vous devriez choisir un meilleur mot de passe, et vous assurer 
+que le fichier bacula-dir.conf qui contient ce mot de passe n'est lisible 
+que par root.
+
+M\^eme avec ces restrictions, il reste un probl\`eme de s\'ecurit\'e avec cette approche : 
+sur certaines plateformes, la variable d'environnement utilis\'ee pour soumettre le 
+mot de passe \`a Postgres est disponible pour tout utilisateur 
+local du syst\`eme. Pour supprimer ce probl\`eme, l'\'equipe Postgres a d\'ecr\'et\'e 
+obsol\`ete ce m\'ecanisme de passage de mot de passe par variable d'environnement et 
+recommande d'utiliser un fichier .pgpass. Pour utiliser ce m\'ecanisme, cr\'eez un fichier 
+nomm\'e .pgpass vcontenant une simple ligne :
+
+\footnotesize
+\begin{verbatim}
+  localhost:5432:bacula:bacula:secret
+\end{verbatim}
+\normalsize
+
+Ce fichier devrait \^etre copi\'e dans les r\'epertoires personnels (NDT : home directories) 
+de tous les comptes susceptibles d'avoir besoin d'acc\'eder \`a la base de donn\'ees : 
+typiquement, il s'agit de root, bacula et tout utilisateur de la console Bacula. Les fichiers 
+doivent appartenir aux utilisateur et groupe correspondant : root:root pour la copie 
+dans ~root, etc. Les permissions doivent \^etre positionn\'ees \`a 600 pour limiter 
+l'acc\`es au propri\'etaire du fichier.
+
+\section{R\'einitialiser la base des catalogues (de sauvegardes)}
+\index[general]{R\'einitialiser la base des catalogues (de sauvegardes) }
+\index[general]{Sauvegardes!R\'einitialiser la base des catalogues de }
+\addcontentsline{toc}{section}{R\'einitialiser la base des catalogues (de
+sauvegardes)}
+
+Apr\`es avoir fait un certain nombre de tests avec {\bf Bacula}, vous aurez
+tr\`es certainement envie de nettoyer le catalogue des sauvegardes et faire
+dispara{\^\i}tre tous les travaux de tests que vous avez lanc\'es. Pour ce
+faire, vous pouvez ex\'ecuter les commandes suivantes: 
+
+\footnotesize
+\begin{verbatim}
+
+  cd <r\'epertoire_d_installation>
+  ./drop_bacula_tables
+  ./make_bacula_tables
+  ./grant_bacula_privileges
+\end{verbatim}
+\normalsize
+
+Attention! Toutes les informations contenues dans cette base seront perdues et
+vous repartirez de z\'ero. Si vous avez \'ecrit sur certains volumes (m\'edia
+de sauvegarde), vous devrez \'ecrire une marque de fin de fichier (EOF) sur
+chacun d'eux afin que {\bf Bacula} puisse les r\'eutiliser. Pour ce faire: 
+
+\footnotesize
+\begin{verbatim}
+
+   (arr\^eter Baula ou demonter les volumes)
+   mt -f /dev/nst0 rewind
+   mt -f /dev/nst0 weof
+\end{verbatim}
+\normalsize
+
+o\`u vous devrez remplacer {\bf /dev/nst0} par le chemin appropri\'e de votre
+lecteur de sauvegarde. 
+
+\section{Installer PostgreSQL avec les RPMs}
+\index[general]{PostgreSQL!Installer avec les RPMs}
+\index[general]{Installer PostgreSQL avec les RPMs}
+\addcontentsline{toc}{section}{Installer PostgreSQL avec les RPMs}
+Si vous installez PostgreSQL avec les RPMs, il vous faut installer les 
+binaires PostgreSQL ainsi que les librairies clientes. Ces derni\`eres font 
+g\'en\'eralement partie de paquetages de d\'eveloppement, aussi vous devez installer :
+
+\footnotesize
+\begin{verbatim}
+  postgresql
+  postgresql-devel
+\end{verbatim}
+\normalsize
+
+Il en va de m\^eme avec la plupart des gestionnaires de paquetages.
+
+\section{Migrer de MySQL \`a PostgreSQL}
+\index[general]{Migrer de MySQL \`a PostgreSQL }
+\index[general]{PostgreSQL!Migrer de MySQL \`a }
+\addcontentsline{toc}{section}{Migrer de MySQL \`a PostgreSQL}
+
+La proc\'edure de migration pr\'esent\'ee ici \`a fonctionn\'e pour Norm
+Dressler \lt{}ndressler at dinmar dot com\gt{} 
+
+Ce process a \'et\'e test\'e en utilisant les versions suivantes des
+diff\'erents logiciels: 
+
+\begin{itemize}
+\item Linux Mandrake 10/Kernel 2.4.22-10 SMP 
+\item MySQL Ver 12.21 Distrib 4.0.15, pour mandrake-linux-gnu (i586) 
+\item PostgreSQL 7.3.4 
+\item Bacula 1.34.5 
+   \end{itemize}
+
+ATTENTION! Par pr\'ecaution, r\'ealisez une sauvegarde compl\`ete de vos
+syst\`emes avant de proc\'eder \`a cette migration. 
+
+\begin{enumerate}
+\item Arr\^etez bacula (cd /etc/bacula;./bacula stop)  
+\item Lancez la commande pour extraire les donn\'ees de votre base MySQL:  
+
+   \footnotesize
+\begin{verbatim}
+
+       mysqldump -f -t -n >bacula-backup.dmp
+    
+\end{verbatim}
+\normalsize
+
+\item Faites une sauvegarde de votre r\'epertoire /etc/bacula (mais laisser
+   l'original en place  ).  
+\item Allez dans le r\'epertoire source de {\bf Bacula} et reconstruisez le en
+   incluant le support  PostgreSQL au lieu de celui de MySQL . V\'erifiez que  le
+   fichier config.log de votre configuration originale et remplacez enable-mysql
+par enable-postgresql.  
+\item Recompilez Bacula avec la commande make et si tout se passe correctement
+ lancez un "make install".  
+\item Arr\^etez MySQL. 
+\item Lancez PostgreSQL sur votre syst\`eme.  
+\item Cr\'eez un utilisateur {\bf Bacula} dans Postgres avec la commande
+   "createuser".  En fonction de votre installation, vous serez peut \^etre
+   amen\'e \`a faire un "su" vers l'utilisateur ad\'equat (NDT: su postgres).  
+\item Verifiez que le fichier pg\_hba.conf (NdT sur Debian:
+   /etc/postgres/pg\_hba.conf) contient les permissions ad\'equates pour
+   permettre \`a {\bf Bacula} d'acc\'eder au serveur. Le mien contient les
+informations suivantes, et il est situ\'e sur un r\'eseau s\'ecuris\'e,  
+
+\footnotesize
+\begin{verbatim}
+
+local all all trust
+                
+host all all 127.0.0.1 255.255.255.255 trust
+                
+ATTENTION: vous devez red\'emmarer PostgreSQL si vous faites des changements dans ce fichier.
+      
+\end{verbatim}
+\normalsize
+
+\item Allez dans le r\'epertoire /etc/bacula et pr\'eparez la base de
+   donn\'ees avec les commandes suivantes:  
+
+\footnotesize
+\begin{verbatim}
+
+./create_postgresql_database
+                                
+./make_postgresql_tables
+                                
+./grant_postgresql_privileges
+       
+\end{verbatim}
+\normalsize
+
+\item Verifiez que vous avez acc\`es \`a la base de donn\'ees:  
+
+   \footnotesize
+\begin{verbatim}
+  
+psql -Ubacula bacula
+      
+\end{verbatim}
+\normalsize
+
+Vous ne devriez avoir aucune erreur.  
+\item Chargez la base PostgreSQL avec l'extraction MySQL gr\^ace \`a la
+   commande:  
+
+\footnotesize
+\begin{verbatim}
+
+psql -Ubacula bacula <bacula-backup.dmp>
+      
+\end{verbatim}
+\normalsize
+
+\item R\'eindexez vos tables avec les commandes suivantes:  
+
+   \footnotesize
+\begin{verbatim}
+
+psql -Ubacula bacula
+                
+SELECT SETVAL('basefiles_baseid_seq', (SELECT
+MAX(baseid) FROM basefiles));
+
+SELECT SETVAL('client_clientid_seq', (SELECT
+MAX(clientid) FROM client));
+
+SELECT SETVAL('file_fileid_seq', (SELECT MAX(fileid)
+FROM file));
+
+SELECT SETVAL('filename_filenameid_seq', (SELECT
+MAX(filenameid) FROM filename));
+                
+SELECT SETVAL('fileset_filesetid_seq', (SELECT
+MAX(filesetid) FROM fileset));
+                
+SELECT SETVAL('job_jobid_seq', (SELECT MAX(jobid) FROM job));
+
+SELECT SETVAL('jobmedia_jobmediaid_seq', (SELECT
+MAX(jobmediaid) FROM jobmedia));
+
+SELECT SETVAL('media_mediaid_seq', (SELECT MAX(mediaid) FROM media));
+
+SELECT SETVAL('path_pathid_seq', (SELECT MAX(pathid) FROM path));
+                
+SELECT SETVAL('pool_poolid_seq', (SELECT MAX(poolid) FROM pool));
+       
+\end{verbatim}
+\normalsize
+
+\item Parvenu ici, lancez {\bf Bacula}, v\'erifiez votre librairie et
+   faites un test pour valider que tout s'est bien d\'eroul\'e. 
+\end{enumerate}
+
+\section{Mettre \`a jour PostgreSQL}
+\index[general]{Mettre \`a jour PostgreSQL }
+\index[general]{Mettre \`a jour!PostgreSQL }
+\addcontentsline{toc}{section}{Mettre \`a jour PostgreSQL}
+Si vous mettez PosgreSQL \`a jour, vous devez reconfigurer, recompiler et 
+r\'einstaller Bacula, faute de quoi vous constaterez probalement des 
+erreurs \'etranges. 
+Pour cela, il vous faut installer le RPM source, modifier le fichier bacula.spec 
+pour l'accorder \`a votre version de PostgreSQL, reconstruire le RPM et l'installer.
+
+If you upgrade PostgreSQL, you must reconfigure, rebuild, and re-install
+Bacula otherwise you are likely to get bizarre failures.  If you
+to modify the bacula.spec file to account for the new PostgreSQL version.
+You can do so by rebuilding from the source rpm. To do so, you may need
+install from rpms and you upgrade PostgreSQL, you must also rebuild Bacula.
+
+
+\section{Credits}
+\index[general]{Credits }
+\addcontentsline{toc}{section}{Credits}
+
+Tous mes remerciements \`a Dan Languille pour l'\'ecriture du driver
+PostgreSQL qui deviendra tr\`es certainement la base de donn\'ees la plus
+r\'eput\'ee utilisable avec {\bf Bacula} 
diff --git a/docs/manuals/fr/main/old/quickstart.tex b/docs/manuals/fr/main/old/quickstart.tex
new file mode 100644 (file)
index 0000000..07c045d
--- /dev/null
@@ -0,0 +1,415 @@
+%%
+%%
+
+\chapter{D\'emarrer avec Bacula}
+\label{_ChapterStart37}
+\index[general]{Bacula!D\'emarrer avec }
+\index[general]{D\'emarrer avec Bacula }
+
+Si vous \^etes comme moi, vous voulez faire fonctionner Bacula imm\'ediatement
+pour en avoir un aper\c{c}u, puis, plus tard, vous reviendrez en arri\`ere
+pour lire et conna{\^\i}tre tous les d\'etails. C'est exactement ce que ce
+chapitre se propose d'accomplir : vous faire avancer rapidement sans tous les
+d\'etails. Si vous voulez sauter la section sur les Pools, Volumes et Labels,
+vous pourrez toujours y revenir, mais s'il vous pla\^it, veuillez lire ce
+chapitre jusqu'\`a la fin, et en particulier suivre les instructions pour
+tester votre lecteur de bandes. 
+
+Nous supposons que vous \^etes parvenus \`a construire et installer Bacula,
+sinon, vous devriez d'abord jeter un oeil aux 
+\ilink{Pr\'erequis (syst\`eme)}{SysReqs} puis au chapitre 
+\ilink{Compiler et installer Bacula}{_ChapterStart17} de ce manuel. 
+
+\label{JobsandSchedules}
+\section{Comprendre les Jobs et Schedules}
+\index[general]{Jobs!Comprendre}
+\index[general]{Schedules!Comprendre}
+\addcontentsline{toc}{section}{Comprendre les Jobs et Schedules}
+
+Afin de rendre Bacula aussi flexible que possible, les directives lui sont 
+donn\'ees en plusieurs endroits. L'instruction principale est la ressource Job, 
+qui d\'efinit un job. Un job de type sauvegarde consiste en g\'en\'eral en un 
+FileSet, un client, un Schedule pour un ou plusieurs niveaux ou horaires de sauvegardes, 
+un Pool, ainsi que des instructions additionnelles. Un autre point de vue 
+est de consid\'erer le FileSet comme "Que sauvegarder ?", le Client comme 
+"Qui sauvegarder ?", le Schedule comme "Quand sauvegarder ?" et le Pool 
+comme "O\`u sauvegarder ?" (c'est \`a dire, "Sur quel volume ?)
+
+Typiquement, une combinaison FileSet/Client aura un job correspondant. La plupart 
+des directives, telles que les FileSets, Pools, Schedules, peuvent \^etre 
+m\'elang\'ees et partag\'ees entre les jobs. Ainsi, vous pouvez avoir deux d\'efinitions 
+(ressources) de jobs sauvegardant diff\'erents serveurs et utilisant les m\^emes 
+Schedule, FileSet (sauvegardant donc les m\^emes r\'epertoires sur les deux 
+machines) et peut-\^etre m\^eme les m\^emes Pools. Le Schedule d\'efinira quel 
+type de sauvegarde sera ex\'ecut\'e et \`a quel moment (par exemple les Full le 
+mercredi, les incr\'ementales le reste de la semaine), et lorsque plus d'un job 
+utilise le m\^eme Schedule la priorit\'e du job d\'etermine lequel d\'emarre en premier. 
+Si vous avez de nombreux jobs, vous devriez utiliser la directive JobDefs, 
+qui vous permet de d\'efinir des param\`etres par d\'efaut pour vos jobs, qui peuvent \^etre 
+chang\'es au sein de la ressource Job, mais qui vous \'evitent de r\'e\'ecrire les m\^emes 
+param\`etres pour chaque job. En plus des FileSets que vous voulez sauvegarder, 
+vous devriez aussi avoir un job qui sauvegarde votre catalogue.
+
+Enfin, sachez qu'en plus des jobs de type Backup, vous pouvez aussi utiliser 
+des jobs de type restore, verify, admin, qui ont chacun des exigences 
+diff\'erentes.
+
+\label{PoolsVolsLabels}
+
+\section{Comprendre les Pools, Volumes et Labels}
+\index[general]{Comprendre les Pools, Volumes et Labels }
+\index[general]{Labels!Comprendre les Pools Volumes et }
+\addcontentsline{toc}{section}{Comprendre les Pools, Volumes et Labels}
+
+Si vous avez utilis\'e un programme tel que {\bf tar} pour sauvegarder votre
+syst\`eme, les notions de Pools, Volumes et labels peuvent vous sembler un peu
+confuses au premier abord. Un Volume est un simple support physique
+(cartouche, ou simple fichier) sur lequel Bacula \'ecrit vos donn\'ees de
+sauvegarde. Les Pools regroupent les Volumes de sorte qu'une sauvegarde n'est
+pas restreinte \`a la capacit\'e d'un unique Volume. Par cons\'equent,
+plut\^ot que de nommer explicitement les Volumes dans votre Job, vous
+sp\'ecifiez un Pool, et Bacula se chargera de s\'electionner le prochain
+Volume utilisable du Pool et vous demandera de le monter. 
+
+Bien que les options de base soient sp\'ecifi\'ees dans la ressource Pool du
+fichier de configuration du Director, le Pool {\bf r\'eel} est g\'er\'e par le
+Catalogue Bacula. Il contient les informations de la ressource Pool
+(bacula-dir.conf) ainsi que les informations concernant tous les Volumes qui
+ont \'et\'e ajout\'es au Pool. L'ajout de Volumes se fait en principe
+manuellement depuis la Console gr\^ace \`a la commande {\bf label}. 
+
+Pour chaque Volume, Bacula g\`ere une quantit\'e d'informations consid\'erable
+telles que les premi\`ere et derni\`ere date et heure d'\'ecriture, le nombre
+de fichiers sur le Volume, le nombre de bytes sur le Volume, le nombre de
+montages, etc. 
+
+Pour que Bacula puisse lire ou \'ecrire sur un Volume physique, celui-ci doit
+avoir re\c{c}u un \'etiquettage logiciel afin que Bacula soit assur\'e que le
+bon Volume est mont\'e. Ceci s'effectue en principe manuellement depuis la
+Console gr\^ace \`a la commande {\bf label}. 
+
+Les \'etapes de cr\'eation de Pool, ajout de Volumes \`a ce Pool, et
+\'ecriture d'\'etiquettes logicielles sur les Volumes, peuvent sembler
+p\'enibles au premier abord, mais en fait, elles sont tout \`a fait simples
+\`a franchir, et elles vous permettent d'utiliser plusieurs Volumes (plut\^ot
+que d'\^etre limit\'e \`a la capacit\'e d'un seul). Les Pools vous procurent
+aussi une flexibilit\'e importante pour votre politique de sauvegarde. Par
+exemple, vous pouvez avoir un Pool de Volumes "Daily" pour vos sauvegardes
+Incr\'ementales et un Pool de Volumes "Weekly" pour vos sauvegardes
+compl\`etes (Full). En sp\'ecifiant le Pool appropri\'e dans les Jobs de
+sauvegarde quotidiens et hebdomadaires, vous garantissez qu'aucun Job
+quotidien n'\'ecrira jamais sur un Volume du Pool r\'eserv\'e aux sauvegardes
+hebdomadaire et vice versa, et Bacula vous dira quelle cartouche est requise,
+et quand. 
+
+Pour plus de d\'etails concernant les Pools, consultez la section 
+\ilink{Ressource Pool}{PoolResource} du chapitre sur la
+configuration du Director, ou poursuivez votre lecture, nous reviendrons plus
+tard sur ce sujet. 
+
+\section{Param\'etrage des fichiers de configuration de Bacula}
+\label{config}
+\index[general]{Param\'etrage des fichiers de configuration de Bacula }
+\index[general]{Bacula!Param\'etrage des fichiers de configuration de }
+\addcontentsline{toc}{section}{Param\'etrage des fichiers de configuration
+de Bacula}
+
+Apr\`es avoir ex\'ecut\'e la commande {\bf ./configure} {\it ad hoc}, {\bf
+make} et {\bf make install}, si c'est la premi\`ere fois que vous ex\'ecutez
+Bacula, vous devez cr\'eer des fichiers de configuration valides pour le
+Director, le File Daemon, le Storage Daemon et le programme Console. Si vous
+avez suivi nos recommandations, des fichiers de configuration par d\'efaut
+ainsi que les binaires des {\it daemons} seront situ\'es dans votre
+r\'epertoire d'installation. Dans tous les cas les binaires se trouvent dans
+le r\'epertoire que vous avez sp\'ecifi\'e au niveau de l'option {\bf
+\verb{--{sbindir} de la commande {\bf ./configure}, et les fichiers de configuration
+se trouvent dans le r\'epertoire que vous avez sp\'ecifi\'e au niveau de
+l'option {\bf \verb{--{sysconfdir}. 
+
+Lors des param\'etrages initiaux de Bacula, il vous faudra investir un peu de
+temps pour modifier les fichiers de configuration par d\'efaut afin de
+les adapter \`a votre environnement. Ceci peut n\'ecessiter de red\'emarrer
+Bacula plusieurs fois jusqu'\`a ce que tout fonctionne correctement. Ne
+c\'edez pas au d\'esespoir. Une fois que vous aurez cr\'e\'e vos fichiers de
+configuration, vous n'aurez que rarement besoin de les changer et de
+red\'emarrer Bacula. Le gros du travail consistera \`a changer la cartouche
+quand elle est pleine. 
+
+\subsection{
+\ilink{Configurer le programme Console}{_ChapterStart36}}
+\index[general]{Console!Configurer le programme }
+\index[general]{Configurer le programme Console }
+\addcontentsline{toc}{subsection}{Configurer le programme Console}
+
+Le programme console est utilis\'e par l'administrateur pour interagir avec le
+Director et pour arr\^eter et d\'emarrer manuellement des jobs, ou encore pour
+obtenir des informations sur les jobs en cours d'ex\'ecution ou programm\'es.
+
+Le fichier de configuration de la Console se trouve dans le r\'epertoire que
+vous avez sp\'ecifi\'e au niveau de l'option {\bf \verb{--{sysconfdir} de la commande
+{\bf ./configure} et par d\'efaut se nomme {\bf console.conf}.
+
+Si vous avez choisi de construire la Console GNOME avec l'option {\bf
+\verb{--{enable-gnome}, vous y trouverez \'egalement son fichier de configuration par
+d\'efaut, nomm\'e {\bf gnome-console.conf}. 
+
+Il en va de m\^eme pour la console wxWidgets, qui est construite par l'option
+{\bf \verb{--{enable-bwx-console}, et le nom du fichier de configuration par d\'efaut
+est, dans ce cas, {\bf bwx-console.conf}. 
+
+Normalement, pour les nouveaux
+utilisateurs, aucune modification n'est requise pour ces fichiers. Les
+r\'eglages par d\'efaut sont raisonnables. 
+
+\subsection{
+\ilink{Configurer le programme Monitor}{_ChapterStart35}}
+\index[general]{Monitor!Configurer le programme }
+\index[general]{Configurer le programme Monitor }
+\addcontentsline{toc}{subsection}{Configurer le programme Monitor}
+
+Le programme Monitor est typiquement une ic\^one dans la barre des t\^aches.
+Cependant, lorsque l'ic\^one est \'etendue en une fen\`etre, l'administrateur ou
+l'utilisateur peut obtenir des informations concernant le Director ou l'\'etat
+des sauvegardes sur la machine locale ou n'importe quelle autre {\it daemon}
+Bacula configur\'e. 
+
+\includegraphics{./Bacula-tray-monitor.eps} 
+
+L'image montre le tray-monitor configur\'e pour trois {\it daemons}. En
+cliquant sur les boutons radio dans le coin en haut \`a gauche de l'image,
+vous pouvez voir l'\'etat de chacun des {\it daemons}. L'image montre l'\'etat
+du Storage Daemon (MainSD) s\'electionn\'e. 
+
+Le fichier de configuration du Monitor se trouve dans le r\'epertoire
+sp\'ecifi\'e au niveau de l'option {\bf \verb{--{sysconfdir} de la commande {\bf
+./configure} et se nomme par d\'efaut {\bf tray-monitor.conf}. En principe,
+pour les nouveaux utilisateurs, il suffit de changer les permissions de ce
+fichier pour permettre aux utilisateurs non-root d'ex\'ecuter le Monitor, en
+effet cette application doit \^etre ex\'ecut\'e par le m\^eme utilisateur que
+l'environnement graphique (n'oubliez pas de donner aux non-root le droit
+d'ex\'ecuter {\bf bacula-tray-monitor}). Ceci ne constitue pas une faille de
+s\'ecurit\'e tant que vous utilisez les r\'eglages par d\'efaut. 
+
+\subsection{
+\ilink{Configurer le File Daemon}{_ChapterStart25}}
+\index[general]{Configurer le File Daemon }
+\index[general]{Daemon!Configurer le File }
+\addcontentsline{toc}{subsection}{Configurer le File Daemon}
+
+Le File Daemon, est le programme qui s'ex\'ecute sur chaque machine cliente. A
+la demande du Director, il d\'etermine les fichiers \`a sauvegarder et les
+exp\'edie au Storage Daemon. 
+
+Le fichier de configuration du File Daemon se trouve dans le r\'epertoire
+sp\'ecifi\'e au niveau de l'option {\bf \verb{--{sysconfdir} de la commande {\bf
+./configure} et se nomme par d\'efaut {\bf bacula-fd.conf}. Normalement, pour
+les nouveaux utilisateurs, aucune modification n'est requise pour ce fichier.
+Les r\'eglages par d\'efaut sont raisonnables. Cependant, si vous envisagez de
+sauvegarder plus d'une machine, il vous faudra installer le File Daemon avec
+un fichier de configuration sp\'ecifique sur chaque machine \`a sauvegarder.
+Les informations concernant chaque File Daemon doivent appara{\^\i}tre dans le
+fichier de configuration du Director. 
+
+\subsection{
+\ilink{Configurer le Director}{_ChapterStart40}}
+\index[general]{Director!Configurer le }
+\index[general]{Configurer le Director }
+\addcontentsline{toc}{subsection}{Configurer le Director}
+
+Le director est le programme central qui contr\^ole tous les autres {\it
+daemons}. Il planifie et surveille les jobs \`a ex\'ecuter. 
+
+Le fichier de configuration du Director se trouve dans le r\'epertoire
+sp\'ecifi\'e au niveau de l'option {\bf \verb{--{sysconfdir} de la commande {\bf
+./configure} et se nomme par d\'efaut {\bf bacula-dir.conf}. 
+
+En g\'en\'eral, la seule modification n\'ecessaire consiste \`a faire en sorte
+que la directive {\bf Include} de la Ressource FileSet contienne au moins une
+ligne avec un nom de fichier ou de r\'epertoire valide \`a sauvegarder. 
+
+Si vous ne poss\'edez pas de lecteur DLT, vous voudrez probablement modifier
+la ressource Storage pour donner un nom plus repr\'esentatif de votre
+p\'eriph\'erique de stockage. Vous pouvez toujours utiliser les noms existants
+puisque vous \^etes libre de les assigner arbitrairement, mais ils doivent
+s'accorder avec les noms correspondants dans le fichier de configuration du
+Storage Daemon. 
+
+Vous pouvez aussi changer l'adresse \'electronique pour les notifications vers
+votre propre adresse e-mail plut\^ot que vers celle de {\bf root}
+(configuration par d\'efaut). 
+
+Enfin, si vous avez plusieurs syst\`emes \`a sauvegarder, il vous faudra
+sp\'ecifier un File Daemon (ou client) pour chaque syst\`eme sauvegard\'e,
+pr\'ecisant ses nom, adresse et mot de passe. Nous estimons que baptiser vos
+{\it daemons} du nom de vos syst\`emes suffix\'es avec {\bf -fd} aide beaucoup
+\`a corriger les erreurs. Ainsi, si votre syst\`eme est {\bf foobaz}, vous
+nommerez le {\it daemon} {\bf foobaz-fd}. Pour le Director, vous pourriez
+utiliser {\bf foobaz-dir}, et {\bf foobaz-sd} pour le Storage Daemon. 
+Chacun de vos composants de Bacula {\bf doit} avoir un nom unique 
+Si vous les nommez tous \`a l'identique, en plus de ne jamais savoir 
+quel {\it daemon} envoie quel message, s'ils partagent le m\^eme r\'epertoire 
+de travail (working directory), les noms de fichiers temporaires des {\it daemons} 
+ne seront pas uniques et vous aurez d'\'etranges erreurs.
+
+\subsection{
+\ilink{Configurer le Storage Daemon}{_ChapterStart31}}
+\index[general]{Daemon!Configurer le Storage }
+\index[general]{Configurer le Storage Daemon }
+\addcontentsline{toc}{subsection}{Configurer le Storage Daemon}
+
+Le Storage Daemon est responsable, sur demande du Director, de la r\'eception
+des donn\'ees en provenance des File Daemons, et de leur \'ecriture sur le
+medium de stockage, ou, dans le cas d'une restauration, de trouver les
+donn\'ees pour les envoyer vers le File Daemon. 
+
+Le fichier de configuration du Storage Daemon se trouve dans le r\'epertoire
+sp\'ecifi\'e au niveau de l'option {\bf \verb{--{sysconfdir} de la commande {\bf
+./configure} et se nomme par d\'efaut {\bf bacula-sd.conf}. Modifiez ce
+fichier pour accorder les noms de p\'eriph\'eriques de stockage \`a ceux que
+vous poss\'edez. Si le processus d'installation a convenablement d\'etect\'e
+votre syst\`eme, elles seront d\'ej\`a correctement r\'egl\'ees. Ces
+ressources de stockage "Name" et "Media Type" doivent \^etre les m\^emes
+que leurs correspondantes du fichier de configuration du Director {\bf
+bacula-dir.conf}. Si vous souhaitez sauvegarder vers un fichier plut\^ot que
+sur des bandes, la ressource Device doit pointer vers un r\'epertoire o\`u des
+fichiers seront cr\'e\'es en guise de Volumes lorque vous \'etiquetterez
+(label) vos Volumes. 
+\label{ConfigTesting}
+
+\section{Tester vos Fichiers de Configuration}
+\index[general]{Configuration!Tester vos Fichiers de }
+\index[general]{Tester vos Fichiers de Configuration }
+\addcontentsline{toc}{section}{Tester vos Fichiers de Configuration}
+
+Vous pouvez tester la validit\'e syntaxique de vos fichiers de configuration,
+afficher tout message d'erreur et terminer. Par exemple, en supposant que vous
+avez install\'e vos binaires et fichiers de configuration dans le m\^eme
+r\'epertoire, 
+
+\footnotesize
+\begin{verbatim}
+cd <installation-directory>
+./bacula-dir -t -c bacula-dir.conf
+./bacula-fd -t -c bacula-fd.conf
+./bacula-sd -t -c bacula-sd.conf
+./bconsole -t -c bconsole.conf
+./gnome-console -t -c gnome-console.conf
+./bwx-console -t -c wx-console.conf
+su <normal user> -c "./bacula-tray-monitor -t -c tray-monitor.conf"
+\end{verbatim}
+\normalsize
+
+testera le fichier de configuration de chacun des principaux programmes. Si le
+fichier de configuration est correct, le programme se termine
+sans rien afficher. Veuillez noter que selon les options de configuration que
+vous avez choisies, il se peut qu'aucune des commandes ci-dessus ne soit
+valable sur votre syst\`eme. Si vous avez install\'e les binaires dans les
+r\'epertoires traditionnels d'Unix plut\^ot que dans un simple r\'epertoire,
+il vous faudra modifier les commandes ci-dessus en cons\'equence (pas de
+"./" devant les commandes, et un chemin devant les fichiers de
+configuration). 
+\label{TapeTesting}
+
+\section{Tester la compatibilit\'e de Bacula avec votre lecteur de bandes}
+\index[general]{Tester la compatibilit\'e de Bacula avec votre lecteur de
+bandes }
+\index[general]{Bandes!Tester la compatibilit\'e de Bacula avec votre lecteur
+de }
+\addcontentsline{toc}{section}{Tester la compatibilit\'e de Bacula avec
+votre lecteur de bandes}
+
+Avant de gaspiller votre temps avec Bacula pour finalement constater qu'il ne
+fonctionne pas avec votre lecteur de bandes, veuillez s'il vous pla\^it lire le
+chapitre 
+\ilink{btape -- Tester votre lecteur de bandes}{_ChapterStart27}
+de ce manuel. Si vous poss\'edez un lecteur standard SCSI moderne sur un Linux
+ou un Solaris, fort probablement, il fonctionnera, mais mieux vaut tester que
+d'\^etre d\'e\c{c}u. Pour FreeBSD (et probablement les autres xBSD), la
+lecture du chapitre mentionn\'e ci-dessus est un devoir. Pour FreeBSD,
+consultez aussi 
+\elink{The FreeBSD Diary}{http://www.freebsddiary.org/bacula.php} pour une
+description d\'etaill\'ee de la m\'ethode pour faire fonctionner Bacula sur
+votre syst\`eme. De plus, les utilisateurs de versions de FreeBSD
+ant\'erieures \`a 4.9-STABLE dat\'ee du lundi 29 d\'ecembre 2003 15:18:01 UTC
+qui pr\'evoient d'utiliser des lecteurs de bandes sont invit\'es \`a lire le
+fichier {\bf platforms/freebsd/pthreads-fix.txt} du r\'epertoire principal de
+Bacula, qui contient d'importantes informations sur la compatibilit\'e de
+Bacula avec leur syst\`eme. 
+\label{notls}
+
+\section{D\'ebarrassez-vous du r\'epertoire /lib/tls}
+\index[general]{D\'ebarrassez-vous du r\'epertoire /lib/tls }
+\addcontentsline{toc}{section}{D\'ebarrassez-vous du r\'epertoire /lib/tls}
+
+La nouvelle librairie pthreads {\bf /lib/tls} install\'ee par d\'efaut sur les
+syst\`emes Red Hat r\'ecents (kernels 2.4.x) est d\'efectueuse. Vous devez la
+supprimer ou la renommer, puis rebooter votre syst\`eme avant d'ex\'ecuter
+Bacula, faute de quoi, apr\`es environ une semaine de fonctionnement, Bacula
+se bloquera pour de longues p\'eriodes, voire d\'efinitivement. Veuillez consulter 
+le chapitre \ilink{Syst\`emes support\'es}{SupportedOSes} pour plus
+d'informations sur ce probl\`eme. 
+
+Ce probl\`eme n'existe plus avec les noyaux 2.6.
+
+\label{Running1}
+
+\section{Ex\'ecuter Bacula}
+\index[general]{Bacula!Ex\'ecuter }
+\index[general]{Ex\'ecuter Bacula }
+\addcontentsline{toc}{section}{Ex\'ecuter Bacula}
+
+La partie la plus importante de l'ex\'ecution de Bacula est probablement la
+capacit\'e de restaurer les fichiers. Si vous n'avez pas essay\'e de
+r\'ecup\'erer des fichiers au moins une fois, vous subirez une bien plus forte
+pression le jour o\`u vous devrez r\'eellement le faire, et serez enclin \`a
+commettre des erreurs que vous n'auriez pas commises si vous aviez d\'ej\`a
+essay\'e. 
+
+Pour avoir rapidement une bonne id\'ee de la fa\c{c}on d'utiliser Bacula,
+nous vous recommandons {\bf fortement} de suivre les exemples du 
+\ilink{chapitre ex\'ecuter Bacula}{_ChapterStart1} de ce manuel,
+o\`u vous trouverez des informations d\'etaill\'ees sur l'ex\'ecution de
+Bacula. 
+
+\section{Rotation des logs}
+\index[general]{Logs!Rotation des }
+\index[general]{Rotation des logs }
+\addcontentsline{toc}{section}{Rotation des logs}
+
+Si vous utilisez le {\bf bacula-dir.conf} par d\'efaut ou une variante, vous
+constaterez qu'il r\'ecup\`ere toutes les sorties de Bacula dans un fichier.
+Pour \'eviter que ce fichier ne croisse sans limites, nous vous recommandons
+de copier le fichier {\bf logrotate} depuis {\bf scripts/logrotate} vers {\bf
+/etc/logrotate.d/bacula}. Ainsi les fichiers de logs subiront une rotation
+mensuelle et seront conserv\'es pour une dur\'ee maximum de cinq mois. Vous
+pouvez \'editer ce fichier pour adapter la rotation \`a votre convenance. 
+
+\section{Log Watch}
+\index[general]{Watch!Log}
+\index[general]{Log Watch}
+\addcontentsline{toc}{section}{Log Watch}
+Certains syst\`emes tels que RedHat et Fedora ex\'ecutent le programme 
+logwatch chaque nuit pour analyser vos fichiers de log et vous 
+envoyer un rapport par mail. Si vous souhaitez inclure la sortie 
+de vos jobs Bacula dans ce rapport, veuillez regarder dans le r\'epertoire  
+{\bf scripts/logwatch}. Le fichier {\bf README} fournit une br\`eve 
+explication sur la fa\c {c}on d'installer le script, et quelle genre 
+de r\'esultats en attendre.
+
+\section{Reprise d'activit\'e apr\`es un d\'esastre (disaster recovery)}
+\index[general]{Recovery!Reprise d'activit\'e apr\`es un d\'esastre disaster }
+\index[general]{Reprise d'activit\'e apr\`es un d\'esastre (disaster recovery)
+}
+\addcontentsline{toc}{section}{Reprise d'activit\'e apr\`es un d\'esastre
+(disaster recovery)}
+
+Si vous avez l'intention d'utiliser Bacula en tant qu'outil de disaster
+recovery plut\^ot que comme un simple programme pour restaurer les fichiers
+perdus, vous serez int\'eress\'e par le 
+\ilink{chapitre Plan de reprise d'activit\'e avec
+Bacula}{_ChapterStart38} de ce manuel. 
+
+De toute fa\c{c}on, vous \^etes fortement invit\'e \`a tester soigneusement
+la restauration de quelques fichiers que vous aurez pr\'ealablement
+sauvegard\'es, plut\^ot que d'attendre qu'un d\'esastre ne frappe. Ainsi, vous
+serez pr\'epar\'e. 
diff --git a/docs/manuals/fr/main/old/security.tex b/docs/manuals/fr/main/old/security.tex
new file mode 100644 (file)
index 0000000..c800ffc
--- /dev/null
@@ -0,0 +1,336 @@
+%%
+%%
+
+\chapter{Consid\'erations sur la s\'ecurit\'e de Bacula}
+\label{_ChapterStart14}
+\index[general]{Bacula!Consid\'erations sur la s\'ecurit\'e de}
+\index[general]{Consid\'erations sur la s\'ecurit\'e de Bacula}
+\index[general]{S\'ecurit\'e}
+
+\begin{itemize}
+\item La s\'ecurit\'e, c'est de pouvoir restaurer vos fichiers, aussi, lisez 
+   attentivement le chapitre \ilink{Critical Items Chapter}{Critical} de 
+   ce manuel.
+\item Le client ({\bf bacula-fd}) doit \^etre ex\'ecut\'e en tant que root
+   afin d'avoir  l'acc\`es \`a tous les fichiers du syst\`eme. 
+\item Il n'est pas n\'ecessaire d'ex\'ecuter le Director en tant que root. 
+\item Il n'est pas n\'ecessaire d'ex\'ecuter le Storage Daemon en tant que
+   root, mais  vous devez vous assurer qu'l peut utiliser le lecteur de bandes,
+   dont l'acc\`es  est presque toujours r\'eserv\'e \`a root par d\'efaut.
+   De plus, si vous n'ex\'ecutez pas le Storage Daemon en tant que root, il sera 
+   dans l'incapacit\'e de r\'egler automatiquement les param\`etres de votre lecteur 
+   de bandes. En effet, ces fonctions requi\`erent les droits root sur la plupart 
+   des syst\`emes d'exploitation.
+\item Vous devriez restreindre l'acc\`es au fichiers de configuration de
+   Bacula, de  sorte que les mots de passe ne soient pas lisibles par tous.  Les
+   {\it daemons} {\bf Bacula} sont prot\'eg\'es par des mots de passe et CRAM-MD5
+(i.e. les mots de passe ne sont pas envoy\'es sur le r\'eseau). Ceci assure
+que tout le  monde ne peut acc\'eder aux {\it daemons}. C'est une protection
+raisonnablement bonne,  mais qui peut \^etre craqu\'ee par un expert. 
+\item Si vous utilisez les ports recommand\'es 9101,9102 et 9103, vous voudrez
+   probablement  prot\'eger ces ports des acc\`es externes \`a l'aide d'un
+   firewall et/ou en utilisant  tcp wrappers ({\bf etc/hosts.allow}).  
+\item Actuellement, toutes les donn\'ees sont envoy\'ees sur le r\'eseau sans
+   chiffrement. Par  cons\'equent, \`a moins que vous n'utilisiez {\bf ssh} ou {\bf
+   stunnel} pour la  transmission de port (NDT: port forwarding), il n'est pas
+recommand\'e de faire des  sauvegardes \`a travers un r\'eseau non
+s\'ecuris\'e (par exemple, Internet). Nous  pr\'evoyons d'int\'egrer le
+chiffrage {\bf ssl} dans une version future.  
+\item Vous devriez vous assurer que seuls les {\it daemons} de Bacula ont
+   acc\`es  en lecture et \'ecriture aux r\'epertoires de travail de Bacula.  
+\item Si vous utilisez {\bf MySQL}, il n'est pas n\'ecessaire de l'ex\'ecuter
+   en tant que root  
+\item Le script par d\'efaut de Bacula {\bf grant-mysql-permissions} accorde
+   toutes les  permissions d'utilisation de la base de donn\'ees MySQL sans mot
+   de passe. Si vous  voulez la s\'ecurit\'e, affinez ceci !  
+\item N'oubliez pas que Bacula est un programme r\'eseau, ainsi quiconque sur
+   le r\'eseau  dispose du programme console et du mot de passe du Director peut
+   acc\'eder \`a  Bacula et aux donn\'ees sauvegard\'ees.  
+\item Vous pouvez restreindre les adresses IP avec auxquelles Bacula se
+   connectera en  utilisant les enregistrements appropri\'es {\bf DirAddress},
+   {\bf FDAddress},  ou {\bf SDAddress} dans les fichiers de configurations
+respectifs des {\it daemons}  
+\item Soyez conscient que si vous sauvegardez votre catalogue avec le script 
+   par d\'efaut, et si l'acc\`es \`a votre catalogue est prot\'eg\'e par un mot de passe, 
+   ce dernier est transmis en tant qu'option de ligne de commande \`a ce script, 
+   ce qui le rend visible \`a tout utilisateur du syst\`eme. Si vous voulez 
+   s\'ecuriser ce point, vous devez le passer via une variable d'environnement 
+   ou un fichier s\'ecuris\'e.
+\end{itemize}
+
+\section{Compatibilit\'e ascendante}
+\index[general]{Compatibilit\'e ascendante}
+\addcontentsline{toc}{section}{Compatibilit\'e ascendante}
+L'un des principaux objectifs de Bacula est de garantir que vous pouvez 
+restaurer depuis des cartouches (ou depuis des volumes disque) \'ecrites des ann\'ees 
+auparavant. Ceci implique que chaque nouvelle version de Bacula devrait \^etre 
+capable de relire les anciens formats de cartouches. Le premier probl\`eme est de 
+s'assurer que le mat\'eriel fonctionne encore malgr\'e les ann\'ees, et que les supports 
+sont encore valides. Ensuite, votre syst\`eme d'exploitation doit \^etre capable 
+de s'interfacer avec le p\'eriph\'erique et finalement, Bacula doit \^etre capable 
+de reconna\^itre les anciens formats. De tous ces probl\`emes, nous ne pouvons 
+prendre en charge que le dernier, pour les autres, vous devez vous pr\'eparer 
+consciencieusement.
+
+Depuis les tous premiers stades de Bacula (janvier 2000) jusqu'\`a aujourd'hui 
+(D\'ecembre 2005), Bacula a connu deux formats majeurs d'\'ecriture sur les 
+cartouches. Le second format a \'et\'e introduit dans la version 1.27 en 
+novembre 2002, et n'a pas chang\'e depuis. En principe, Bacula devrait encore pouvoir 
+lire le format d'origine, mais j'avoue ne pas avoir essay\'e depuis longtemps...
+
+Bien que le format des cartouches soit fix\'e, les types de donn\'ees qui peuvent \^etre 
+\'ecrites sur les cartouches sont extensibles, ce qui nous a permis d'ajouter de 
+nouvelles fonctionnalit\'es telles que les ACLs, les donn\'ees Win32, les donn\'ees 
+chiffr\'ees... Naturellement, une ancienne version de Bacula ne saurait lire des 
+nouveaux flux de donn\'ees, mais chaque nouvelle version de Bacula est en principe 
+capable de lire les anciens flux.
+
+Si vous voulez \^etre absolument certain de pouvoir lire vos vieilles cartouches, 
+vous devriez :
+
+1. Essayer de lire les vieilles cartouches de temps en temps, une fois par an 
+par exemple.
+
+2. Conserver une copie statiquement li\'ee de chaque version de Bacula que vous 
+avez utilis\'ee en production. Ainsi, si pour quelque raison nous venions \`a 
+abandonner la compatibilit\'e avec les anciens formats de cartouches, vous pourriez 
+toujours remettre en service une vieille copie de Bacula...
+
+Le second point est probablement excessif, en toute rigueur, il pourrait vous 
+sauver un jour.
+
+\label{wrappers}
+
+\section{Configurer et tester TCP Wrappers}
+\index[general]{Configurer et tester TCP Wrappers}
+\index[general]{Bacula!Configurer et tester TCP Wrappers}
+\index[general]{TCP Wrappers}
+\index[general]{Wrappers!TCP}
+\index[general]{libwrappers}
+\addcontentsline{toc}{section}{Configurer et tester TCP Wrappers}
+
+Les TCP Wrappers sont impl\'ement\'es si vous les activez lors de la
+configuration ({\bf ./configure \verb{:--:{with-tcp-wrappers}). Avec ce code activ\'e, vous
+pourrez contr\^oler qui peut acc\'eder \`a vos {\it daemons}. Ce contr\^ole
+est obtenu par la modification du fichier {\bf /etc/hosts.allow}. Le nom de
+programme qu'utilise {\bf Bacula} pour appliquer ces restrictions est celui
+que vous avez sp\'ecifi\'e dans le fichier de configuration du {\it daemon}.
+Vous ne devez pas utiliser l'option {\bf twist} dans votre {\bf
+/etc/hosts.allow} car elle stopperait les {\it daemons} Bacula lorsqu'une
+connection est refus\'ee. 
+
+Le nom exact du paquet requis pour compiler avec le support TCP wrappers 
+d\'epend du syst\`eme. Il s'agit, par exemple, de tcpd-devel sur SuSE, et de 
+tcp\_wrappers sur RedHat.
+
+Dan Langille a fourni les informations suivantes concernant la configuration
+et les tests de TCP Wrappers avec Bacula. 
+
+Si vous lisez hosts\_options(5), vous verrez une option nomm\'ee twist. Cette
+option remplace le processus courant par une instance de la commande shell
+sp\'ecifi\'ee. Voici un exemple typique de son utilisation : 
+
+\footnotesize
+\begin{verbatim}
+ALL : ALL \
+ : severity auth.info \
+ : twist /bin/echo "Vous n'\^etes pas autoris\'e \`a utiliser %d depuis %h."
+\end{verbatim}
+\normalsize
+
+\label{question-1}
+Le code libwrap tente d'\'eviter {\bf twist} s'il est
+ex\'ecut\'e dans un processus r\'esident. Il en r\'esulte que le processus (e.g.
+bacula-fd, bacula-sd, bacula-dir) sera stopp\'e si la premi\`ere connection
+\`a son port provoque l'invocation de l'option twist. Le risque est qu'une
+attaque provoque l'arr\^et des {\it daemons}.  Cette situation est \'evit\'ee si votre
+fichier /etc/hosts.allow contient un jeu de r\`egles appropri\'e. L'exemple
+suivant est suffisant : 
+
+\footnotesize
+\begin{verbatim}
+undef-fd : localhost : allow
+undef-sd : localhost : allow
+undef-dir : localhost : allow
+undef-fd : ALL : deny
+undef-sd : ALL : deny
+undef-dir : ALL : deny
+\end{verbatim}
+\normalsize
+
+Vous devez accorder les noms des {\it daemons} \`a ceux sp\'ecifi\'es dans leurs 
+fichiers de configuration respectifs. Ce ne sont, en g\'en\'eral, pas les noms 
+des fichiers binaires des {\it daemons}. Il n'est pas possible d'utiliser 
+les noms des binaires car plusieurs {\it daemons} peuvent \^etre ex\'ecut\'es 
+sur une machine avec des fichiers de configuration distincts. 
+
+Dans ces exemples, le Director est undef-dir, le
+Storage Daemon est undef-sd, et le File Daemon est undef-fd. Ajustez ces noms pour
+qu'ils conviennent \`a votre configuration. L'exemple de r\`egles ci-dessus suppose que
+SD, FD et DIR sont tous sur la m\^eme machine. Si vous avez un client FD
+distant, il vous suffira de placer le jeu de r\`egles suivant sur ce client : 
+
+\footnotesize
+\begin{verbatim}
+undef-fd : director.example.org : allow
+undef-fd : ALL : deny
+\end{verbatim}
+\normalsize
+
+O\`u director.example.org est l'h\^ote qui contactera le client (i.e. la
+machine sur laquelle le Bacula Director tourne). L'usage de "ALL : deny"
+assure que l'option twist (si pr\'esente) n'est pas invoqu\'ee. Pour tester
+correctement votre configuration, d\'emarrez le(s) {\it daemon(s)}, puis
+essayez de vous y connecter depuis une adresse IP qui devrait \^etre capable
+de le faire. Vous devriez voir quelque chose comme : 
+
+\footnotesize
+\begin{verbatim}
+$ telnet undef 9103
+Trying 192.168.0.56...
+Connected to undef.example.org.
+Escape character is '^]'.
+Connection closed by foreign host.
+$
+\end{verbatim}
+\normalsize
+
+C'est la r\'eponse correcte. Si vous voyez ceci : 
+
+\footnotesize
+\begin{verbatim}
+$ telnet undef 9103
+Trying 192.168.0.56...
+Connected to undef.example.org.
+Escape character is '^]'.
+You are not welcome to use undef-sd from xeon.example.org.
+Connection closed by foreign host.
+$
+\end{verbatim}
+\normalsize
+
+Alors, twist a \'et\'e invoqu\'ee, et votre configuration est incorrecte. vous
+devez ajouter la directive "deny". Il est important de noter que vos tests
+doivent inclure le red\'emarrage des {\it daemons} apr\`es chaque tentative de
+connexion. Vous pouvez aussi tcpdchk(8) et tcpdmatch(8) pour valider jeu de
+r\`egles /etc/hosts.allow. Voici un test simple avec tcpdmatch : 
+
+\footnotesize
+\begin{verbatim}
+$ tcpdmatch undef-dir xeon.example.org
+warning: undef-dir: no such process name in /etc/inetd.conf
+client: hostname xeon.example.org
+client: address 192.168.0.18
+server: process undef-dir
+matched: /etc/hosts.allow line 40
+option: allow
+access: granted
+\end{verbatim}
+\normalsize
+
+Si vous ex\'ecutez Bacula en tant que {\it standalone daemon}, les
+avertissements ci-dessus peuvent \^etre ignor\'es sans scrupules. Voici un
+exemple qui r\'ev\`ele que "deny" fait defaut \`a vos r\`egles, et que
+l'option twist a \'et\'e invoqu\'ee. 
+
+\footnotesize
+\begin{verbatim}
+$ tcpdmatch undef-dir 10.0.0.1
+warning: undef-dir: no such process name in /etc/inetd.conf
+client: address 10.0.0.1
+server: process undef-dir
+matched: /etc/hosts.allow line 91
+option: severity auth.info
+option: twist /bin/echo "You are not welcome to use
+  undef-dir from 10.0.0.1."
+access: delegated
+\end{verbatim}
+\normalsize
+
+\section{Ex\'ecuter Bacula sans \^etre root}
+\index[general]{Root!Ex\'ecuter Bacula sans \^etre }
+\index[general]{Ex\'ecuter Bacula sans \^etre root }
+\addcontentsline{toc}{section}{Ex\'ecuter Bacula sans \^etre root}
+
+Voici quelques recommandations de Dan Languille :  
+
+C'est une bonne id\'ee d'ex\'ecuter vos {\it daemons} avec des  privil\`eges
+aussi faibles que possible. En d'autres termes,  si vous pouvez, n'ex\'ecutez
+pas d'applications en tant que root  si elle n'ont pas besoin d'\^etre
+ex\'ecut\'ees en tant que root.  Le Storage Daemon et le Director Daemon n'ont
+pas besoin  d'\^etre ex\'ecut\'es en tant que root. Le File Daemon en a besoin
+pour acc\'eder  \`a l'ensemble des fichiers du syst\`eme. Pour vous passer des
+privil\`eges  root, il vous faut cr\'eer un utilisateur et un groupe. Choisir
+{\tt bacula}  pour l'un et l'autre me semble une bonne id\'ee.  
+
+Le port FreeBSD cr\'ee cet utilisateur et ce groupe pour vous. (En fait, au
+moment  ou j'\'ecris ces lignes, ce n'est pas encore le cas, mais \c{c}a le
+sera bient\^ot).  Voici \`a quoi ressemblent ces entr\'ees sur mon portable
+FreeBSD : 
+
+\footnotesize
+\begin{verbatim}
+bacula:*:1002:1002::0:0:Bacul Daemon:/var/db/bacula:/sbin/nologin
+\end{verbatim}
+\normalsize
+
+J'ai utilis\'e vipw pour cr\'eer ces entr\'ees. J'ai utilis\'e un User ID et
+un Group ID  disponibles sur mon syst\`eme : 1002.  
+
+J'ai aussi cr\'e\'e un groupe dans /etc/group:  
+
+\footnotesize
+\begin{verbatim}
+bacula:*:1002:
+\end{verbatim}
+\normalsize
+
+L'utilisateur bacula, contrairement au {\it daemon} Bacula, aura un 
+r\'epertoire d\'edi\'e (home directory) : {\tt /var/db/bacula}  qui est le
+r\'epertoire standard pour le catalogue de Bacula.  
+
+A pr\'esent, vous avez un utilisateur et un groupe bacula, et vous pouvez 
+s\'ecuriser le r\'epertoire d\'edi\'e de bacula en utilisant cette commande : 
+
+\footnotesize
+\begin{verbatim}
+chown -R bacula:bacula /var/db/bacula/
+\end{verbatim}
+\normalsize
+
+Celle-ci assure que seul l'utilisateur bacula peut acc\'eder \`a ce
+r\'epertoire.  Elle signifie aussi que si nous ex\'ecutons le Director et le
+Storage Daemon  en tant que bacula, ces {\it daemons} auront aussi des acc\`es
+restreints.  Ce ne serait pas le cas s'ils \'etaient ex\'ecut\'es en tant que
+root.  
+
+Il est important de noter que le Storage Daemon a vraiment besoin 
+d'appartenir au groupe operator pour un acc\`es normal aux lecteurs de bandes.
+(au moins sur FreeBSD, c'est ainsi que les choses sont configur\'ees par
+d\'efaut).  De tels p\'eriph\'eriques sont en principe attribu\'es \`a
+root:operator. Il est plus  facile et moins dangereux de faire de bacula un
+membre de ce groupe que de jouer  avec les permissions du syst\`eme. 
+
+D\'emarrer les {\it daemons} bacula 
+
+Pour d\'emarrer les {\it daemons} bacula sur FreeBSD, utilisez la commande : 
+
+\footnotesize
+\begin{verbatim}
+/usr/local/etc/rc.d/bacula.sh start
+\end{verbatim}
+\normalsize
+
+Pour vous assurer que tous fonctionnent : 
+
+\footnotesize
+\begin{verbatim}
+$ ps auwx | grep bacula
+root\ 63416\ 0.0\ 0.3\ 2040 1172\ ??\ Ss\ 4:09PM 0:00.01
+    /usr/local/sbin/bacula-sd -v -c /usr/local/etc/bacula-sd.conf
+root\ 63418\ 0.0\ 0.3\ 1856 1036\ ??\ Ss\ 4:09PM 0:00.00
+    /usr/local/sbin/bacula-fd -v -c /usr/local/etc/bacula-fd.conf
+root\ 63422\ 0.0\ 0.4\ 2360 1440\ ??\ Ss\ 4:09PM 0:00.00
+    /usr/local/sbin/bacula-dir -v -c /usr/local/etc/bacula-dir.conf
+\end{verbatim}
+\normalsize
diff --git a/docs/manuals/fr/main/old/storedconf.tex b/docs/manuals/fr/main/old/storedconf.tex
new file mode 100644 (file)
index 0000000..3bd4648
--- /dev/null
@@ -0,0 +1,1269 @@
+%%
+%%
+
+\chapter{Configuration du Storage Daemon}
+\label{_ChapterStart31}
+\index[general]{Configuration du Storage Daemon}
+\index[general]{Configuration!Storage Daemon}
+
+\section{General}
+\index[general]{General}
+\addcontentsline{toc}{section}{General}
+Le fichier de configuration du Storage Daemon a relativement peu de d\'efinitions 
+de resources. Cependant, en raison du nombre pl\'ethorique de media et de syst\`emes, 
+il doit \^etre hautement param\'etrable. Par cons\'equent, il existe un nombre assez important 
+de directives dans la d\'efinition de ressource Devices qui vous permettent de d\'efinir 
+toutes les caract\'eristiques de votre p\'eriph\'erique de stockage. Heureusement, avec les 
+mat\'eriels modernes, les valeurs par d\'efaut sont g\'en\'eralement suffisantes, et tr\`es 
+peu de directives sont r\'eellement indispensables.
+
+Des exemples de directives de ressources device connues pour fonctionner pour 
+beaucoup de lecteurs de bandes communs peuvent \^etre trouv\'es dans le r\'epertoire : 
+\lt{}bacula-src\gt{}/examples/devices. La plupart seront \'enum\'er\'es ici.
+
+Pour une discussion g\'en\'erale concernant les fichiers de configuration de Bacula, 
+les ressources et les types de donn\'ees reconnus, veuillez consulter le 
+chapitre \ilink{Configuration}{_ChapterStart16} de ce manuel. Les d\'efinitions de 
+ressources Storage suivantes doivent \^etre d\'efinies :
+
+\begin{itemize}
+\item 
+   \ilink{Storage}{StorageResource} -- Pour d\'efinir le nom du Storage Daemon.
+\item 
+   \ilink{Director}{DirectorResource1} -- Pour d\'efinir le nom du Director et le mot 
+   de passe permettant d'y acc\'eder.
+\item 
+   \ilink{Device}{DeviceResource} -- Pour d\'efinir les caract\'eristiques de votre 
+   p\'eriph\'erique de stockage.
+\item 
+   \ilink{Messages}{_ChapterStart15} -- Pour d\'efinir o\`u les messages d'erreurs 
+   et d'information doivent \^etre exp\'edi\'es.
+\end{itemize}
+
+\section{Ressource Storage}
+\label{StorageResource}
+\index[general]{Ressource!Storage}
+\index[general]{Ressource Sorage}
+\addcontentsline{toc}{section}{Ressource Storage}
+
+En g\'en\'eral, les propri\'et\'es sp\'ecifi\'ees au niveau de la ressource Storage d\'efinissent 
+des propri\'et\'es globales du Storage Daemon. Chaque fichier de configuration de 
+Storage Daemon doit avoir sa propre d\'efinition de ressource Storage.
+
+\begin{description}
+
+\item [Name = \lt{}Storage-Daemon-Name\gt{}]
+   \index[sd]{Name}
+   \index[sd]{Directive!Name}
+   Sp\'ecifie le nom du Storage Daemon. Cette directive est requise.
+\item [Working Directory = \lt{}R\'epertoire\gt{}]
+   \index[sd]{Working Directory}
+   \index[sd]{Directive!Working Directory}
+   Cette directive sp\'ecifie un r\'epertoire o\`u le Storage Daemon peut placer ses fichiers 
+   d'\'etat. Ce r\'epertoire ne devrait \^etre utilis\'e que par Bacula, mais peut \^etre 
+   partag\'e par d'autres daemons Bacula, pourvu que les noms donn\'es \`a chaque daemon 
+   soient uniques. Cette directive est requise.
+
+\item [Pid Directory = \lt{}R\'epertoire\gt{}]
+   \index[sd]{Pid Directory}
+   \index[sd]{Directive!Pid Directory}
+      Cette directive sp\'ecifie un r\'epertoire o\`u le Storage Daemon peut d\'eposer son fichier
+d'Id de processus. Ce fichier est utilis\'e pour stopper Bacula et pr\'evenir l'ex\'ecution
+simultan\'ee de plusieurs copies de Bacula. Les substitutions shell standard sont
+effectu\'ees \`a la lecture du fichier de configuration, de sorte que des valeurs
+telles que {\bf \$HOME} seront correctement substitu\'ees. 
+   
+Typiquement, sur les syst\`emes Linux, vous utiliserez ici {\bf /var/run}. Si vous
+n'installez pas Bacula dans les r\'epertoires syst\`eme, vous pouvez utiliser le
+r\'epertoire de travail {\bf Working Directory} d\'efini plus haut.
+Cette directive est requise.
+
+\item [Heartbeat Interval = \lt{}P\'eriode\gt{}]
+   \index[sd]{Heartbeat Interval}
+   \index[sd]{Directive!Heartbeat Interval}
+   \index[general]{Heartbeat Interval}
+   \index[general]{Broken pipe}
+   Cette directive d\'efinit la p\'eriode des pulsations \'emises par le Storage Daemon 
+   vers le File Daemon lorqu'il (le SD) se trouve en situation d'attente du montage 
+   d'une cartouche par l'op\'erateur. La valeur par d\'efaut est z\'ero, ce qui d\'esactive 
+   les pulsations. Cette fonctionnalit\'e est particuli\`erement utile si vous avez un 
+   routeur (tel que les 3Com) qui ne suit pas les standards Internet et expire une 
+   connection valide apr\`es une courte dur\'ee, bien que {\it keepalive} soit activ\'e. 
+   Ceci produit habituellement un message d'erreur du type {\it broken pipe}.
+
+\item [Maximum Concurrent Jobs = \lt{}nombre\gt{}]
+   \index[sd]{Maximum Concurrent Jobs}
+   \index[sd]{Directive!Maximum Concurrent Jobs}
+   O\`u \lt{}nombre\gt{} est nombre maximal de jobs qui peuvent \^etre ex\'ecut\'es 
+   simultan\'ement. La valeur par d\'efaut est fix\'ee \`a 10, mais vous pouvez d\'efinir 
+   une valeur plus grande. Chaque connexion depuis le Director (par exemple 
+   une requ\^ete de statut, le lancement d'un job...) est consid\'er\'ee comme un job, 
+   aussi, si vous voulez conserver la possibilit\'e d'utiliser la commande 
+   {\bf status} dans la console alors qu'un job est en cours d'ex\'ecution, vous 
+   devez utiliser une valeur strictement sup\'erieure \`a 1. Pour ex\'ecuter plusieurs 
+   jobs simultan\'ement, vous devez param\'etrer plusieurs autres directives dans le 
+   fichier de configuration du Director. Selon ce que vous voulez faire, il faudra 
+   intervenir sur l'un ou l'autre param\`etre, mais vous devrez presque surement 
+   r\'egler le param\`etre {\bf Maximum Concurrent Jobs} de la ressource Storage du 
+   fichier de configuration du Director, et peut-\^etre aussi ceux des ressources 
+   Job et Client.
+   
+\item [SDAddresses = \lt{}Adresse IP\gt{}]
+   \index[sd]{SDAddresses}
+   \index[sd]{Directive!SDAddresses}
+   Pr\'ecise les ports et adresses sur lesquels le Storage Daemon est \`a 
+   l'\'ecoute de connections du Director. En principe, les valeurs par d\'efaut sont 
+   suffisantes, et vous n'avez pas besoin d'utiliser cette directive. La meilleure 
+   explication du fonctionnement de cette directive est certainement un exemple :
+   
+\footnotesize
+\begin{verbatim}
+ SDAddresses  = { ip = {
+        addr = 1.2.3.4; port = 1205; }
+    ipv4 = {
+        addr = 1.2.3.4; port = http; }
+    ipv6 = {
+        addr = 1.2.3.4;
+        port = 1205;
+    }
+    ip = {
+        addr = 1.2.3.4
+        port = 1205
+    }
+    ip = {
+        addr = 1.2.3.4
+    }
+    ip = {
+        addr = 201:220:222::2
+    }
+    ip = {
+        addr = bluedot.thun.net
+    }
+}
+\end{verbatim}
+\normalsize
+
+o\`u "ip", "ip4", "ip6", "addr", et "port" sont des mots-clef. Notez que les adresses 
+peuvent \^etre sp\'ecifi\'ees sous forme de quadruplets point\'es, de nom symboliques 
+(uniquement dans la sp\'ecification "ip") ou en notation IPv6 \`a double points. Le port 
+peut quand \`a lui \^etre sp\'ecifi\'e par son num\'ero, ou par sa valeur mn\'emonique du 
+fichier /etc/services. Si un port n'est pas sp\'ecifi\'e, la valeur par d\'efaut est 
+utilis\'ee. Si une section ip est sp\'ecifi\'ee, la r\'esolution peut \^etre r\'ealis\'ee 
+par ipv4 ou ipv6. En revanche, si ip4 ou ip6 est sp\'ecifi\'ee, seule la r\'esolution 
+correspondante fonctionne.
+
+Vous pouvez, avec ces directives, remplacer les valeurs des directives  SDPort et 
+SDAddress montr\'ees ci-dessous.
+
+\item [SDPort = \lt{}Num\'ero de port\gt{}]
+   \index[sd]{SDPort}
+   \index[sd]{Directive!SDPort}
+   Sp\'ecifie le num\'ero de port sur lequel le Storage Daemon \'ecoute les connexions 
+   en provenance du Director. La valeur par d\'efaut est 9103.
+   
+\item [SDAddress = \lt{}Adresse IP\gt{}]
+   \index[sd]{SDAddress}
+   \index[sd]{Directive!SDAddress}
+    Cette directive est optionnelle. Lorsqu'elle est sp\'ecifi\'ee, le Storage Daemon n'accepte
+    de connections (de Director(s) ou de File(s) Daemon(s)) que de l'adresse sp\'ecifi\'ee 
+    {\bf Adresse-IP}, qui peut \^etre
+    soit un nom de domaine, soit une adresse IP au format quadruplet point\'e.
+    Si cette directive n'est pas sp\'ecifi\'ee, le Storage Daemon acceptera des connections de 
+    de toute adresse valide. 
+
+\end{description}
+
+Voici une d\'efinition typique d'une ressource Storage du Storage Daemon :
+
+
+\footnotesize
+\begin{verbatim}
+#
+# "Global" Storage daemon configuration specifications appear
+# under the Storage resource.
+#
+Storage {
+  Name = "Storage daemon"
+  Address = localhost
+  WorkingDirectory = "~/bacula/working"
+  Pid    Directory = "~/bacula/working"
+}
+\end{verbatim}
+\normalsize
+
+\section{La ressource Director}
+\label{DirectorResource1}
+\index[general]{Ressource Director}
+\index[general]{Resource!Director}
+\addcontentsline{toc}{section}{La ressource Director}
+
+La ressource Director sp\'ecifie le nom du Director qui est autoris\'e 
+\`a utiliser les services du Storage Daemon. Il peut exister plusieurs 
+ressources Director. Le nom et le mot de passe du Director doivent 
+s'accorder avec leurs homologues dans le fichier de configuration 
+du Storage Daemon.
+
+\begin{description}
+
+\item [Name = \lt{}Nom-du-Director\gt{}]
+   \index[sd]{Name}
+   \index[sd]{Directive!Name}
+   Sp\'ecifie le nom du Director autoris\'e \`a se connecter au Storage Daemon.
+   Cette directive est requise.
+
+\item [Password = \lt{}Mot-de-passe-du-Director\gt{}]
+   \index[sd]{Password}
+   \index[sd]{Directive!Password}
+   Sp\'ecifie le mot de passe qui doit \^etre soumis par le Director susnomm\'e.
+   Cette directive est requise.
+
+\item [Monitor = \lt{}yes|no\gt{}]
+   \index[sd]{Monitor}
+   \index[sd]{Directive!Monitor}
+   Si cette directive est d\'esactiv\'ee ({\bf no}), ce qui est le cas par d\'efaut, 
+   ce Director dispose d'un acc\`es illimit\'e \`a ce Storage Daemon. Dans le cas 
+   contraire, ce Director est brid\'e de fa\c {c}on \`a pouvoir seulement r\'ecup\'erer le 
+   statut courant de ce Storage Daemon.
+
+   Si ce Director est utilis\'e par un superviseur, nous vous recommandons 
+   fortement d'activer cette directive pour \'eviter de s\'erieux probl\`emes de 
+   s\'ecurit\'e.
+
+\end{description}
+
+Voici un exemple d'une d\'efinition de ressource Director valide :
+
+\footnotesize
+\begin{verbatim}
+Director {
+  Name = MainDirector
+  Password = my_secret_password
+}
+\end{verbatim}
+\normalsize
+
+\label{DeviceResource}
+\section{La Ressource Device}
+\index[general]{Resource!Device}
+\index[general]{Ressource Device}
+\addcontentsline{toc}{section}{Ressource Device}
+
+La ressource Device sp\'ecifie les d\'etails de chaque p\'eriph\'erique (en g\'en\'eral, 
+un lecteur de bandes) qui peut \^etre utilis\'e par le Storage Daemon. Un 
+Storage Daemon peut disposer de plusieurs ressources Device. En g\'en\'eral, 
+les propri\'et\'es sp\'ecifi\'ees dans la ressource Device sont sp\'ecifiques 
+au p\'eriph\'erique.
+
+\begin{description}
+
+\item [Name = {\it Nom-de-p\'eriph\'erique}]
+   \index[sd]{Name}
+   \index[sd]{Directive!Name}
+   Sp\'ecifie le nom que le Director devra utiliser pour d\'esigner ce p\'eriph\'erique. 
+   Il s'agit d'un nom logique, c'est une cha\^ine qui peut comporter jusqu'\`a 127 
+   caract\`eres. C'est en g\'en\'eral une bonne id\'ee d'utiliser un nom qui corresponde 
+   au nom "humain" du p\'eriph\'erique (NDT: la vo dit "the english name"). Le nom 
+   physique du p\'eriph\'erique est sp\'ecifi\'e au niveau de la directive {\bf Archive Device} 
+   d\'ecrite ci-dessous. Le nom que vous sp\'ecifiez ici est aussi utilis\'e dans le 
+   fichier de configuration de votre Director au niveau de la 
+   \ilink{directive Device}{StorageResource2} de sa ressource Storage.   
+
+\item [Archive Device = {\it cha\^ine-nom}]
+   \index[sd]{Archive Device}
+   \index[sd]{Directive!Archive Device}
+   La {\bf cha\^ine-nom} (NDT : name-string dans la vo) sp\'ecifie le nom de fichier syst\`eme 
+   du p\'eriph\'erique de stockage g\'er\'e par ce daemon. Il s'agit en g\'en\'eral d'un nom 
+   de p\'eriph\'erique amovible, par exemple un lecteur de bande d\'esign\'e par "{\bf /dev/nst0}" 
+   ou "{\bf /dev/rmt/0mbn}". Dans le cas d'un graveur de DVD, ce sera par exemple 
+   {\bf /dev/hdc}. Ce peut \^etre aussi un un nom de r\'epertoire si vous sauvegardez 
+   sur disque. Dans ce cas, vous devez soumettre le chemin absolu vers ce 
+   r\'epertoire. Lorsque vous utilisez un lecteur de bandes, il est pr\'ef\'erable 
+   d'utiliser la variante "non-rewind" du fichier de p\'eriph\'erique. De plus, sur les 
+   syst\`emes tels que Sun, qui disposent de plusieurs m\'ethodes d'acc\`es aux cartouches, 
+   prenez soin de sp\'ecifier l'usage de la convention I/O Berkeley avec les p\'eriph\'eriques. 
+   le {\bf b} de la sp\'ecification {\bf /dev/rmt/0mbn} Solaris (Sun) est ce qui est 
+   requis dans ce cas. Bacula ne supporte pas le comportement SysV des lecteurs de bandes. 
+
+   Comme mentionn\'e plus haut,Archive Device est, en principe, le nom d'un lecteur de bandes, 
+   mais vous pouvez tout aussi bien sp\'ecifier le chemin absolu vers un r\'epertoire 
+   existant. Dans ce cas, Bacula utilisera un fichier pour stocker les donn\'ees dans 
+   le r\'epertoire sp\'ecifi\'e, le nom de fichier utilis\'e sera celui du volume tel que 
+   sp\'ecifi\'e dans le catalogue. Si vous souhaitez \'ecrire dans plusieurs r\'epertoires 
+   (dans le but de r\'epartir la charge sur plusieurs disques), vous devez d\'efinir deux ressources 
+   Device, chacune comportant une Archive Device avec un r\'epertoire diff\'erent.
+   
+   Une troisi\`eme possibilit\'e consiste \`a sp\'ecifier le nom d'un FIFO. Un FIFO est un 
+   fichier sp\'ecial qui connecte deux programmes via la m\'emoire du noyau. Si vous 
+   sp\'ecifiez un FIFO en guise d'Archive Device, vous devez avoir un programme qui 
+   lit ce que Bacula \'ecrit dans le FIFO. Lorsque le Storage Daemon d\'emarre le job, 
+   il attend que le programme lecteur commence \`a lire pendant un d\'elai maximal de
+   de {\bf MaximumOpenWait} secondes, au del\`a duquel le job est termin\'e. Par cons\'equent, 
+   il est pr\'ef\'erable de lancer le programme lecteur au d\'ebut du job, par exemple 
+   gr\^ace \`a la directive {\bf RunBeforeJob}. Pour ce type de p\'eriph\'erique, vous ne devez 
+   jamais sp\'ecifier {\bf AlwaysOpen}, puisque vous voulez que le Storage Daemon 
+   ne l'ouvre que lorsqu'un job d\'emarre, aussi veuillez attribuer  explicitement 
+   la valeur {\bf No} \`a cette directive. Puisqu'un FIFO est un p\'eriph\'erique \`a sens 
+   unique, Bacula ne tente pas d'en lire le label, il se contente d'y \'ecrire. Pour 
+   cr\'eer un volume FIFO dans le catalogue, utilisez la commande {\bf add}  plut\^ot 
+   que la commande {\bf label} afin d'\'eviter de tenter d'\'ecrire un label.
+   
+   Lors d'une op\'eration de restauration, si l'Archive Device est un FIFO, Bacula 
+   tente de lire le FIFO, aussi vous devez avoir un programme externe qui \'ecrit dans 
+   le FIFO. Bacula attend que ce programme commence \`a \'ecrire pendant un d\'elai 
+   maximal de {\bf MaximumOpenWait} secondes apr\`es quoi il termine le job. Comme 
+   mentionn\'e ci-dessus, vous pouvez utiliser la directive {\bf RunBeforeJob} pour 
+   lancer ce programme auteur d\`es le d\'ebut du job.
+  
+   La directive Archive Device est requise. 
+
+\item [Device Type = {\it Sp\'ecification-de-type}]
+   \index[sd]{Device Type}
+   \index[sd]{Directive!Device Type}
+   La sp\'ecification Device Type de d\'eclarer explicitement \`a Bacula quel type  
+   de p\'eriph\'erique vous d\'efinissez. La valeur de {\it Sp\'ecification-de-type} peut 
+   \^etre l'une des suivantes :
+   \begin{description}
+   \item [File]
+     Indique \`a Bacula que le p\'eriph\'erique est un fichier. Ce peut \^etre 
+     un fichier d\'efini sur un m\'edium fixe ou au contraire amovible (par exemple, un 
+     p\'eriph\'erique USB). Tous les fichiers doivent \^etre des p\'eriph\'eriques en acc\`es 
+     s\'electif (NDT : traduction Google sans doute \`a revoir de "random access")
+   \item[tape]
+     Indique \`a Bacula que le p\'eriph\'erique est un lecteur de bandes, donc \`a 
+     acc\`es s\'equentiel. Ces p\'eriph\'eriques sont control\'e par les appels 
+     ioctl().
+   \item[Fifo]
+      Indique \`a Bacula que le p\'eriph\'erique est un p\'eriph\'erique \`a acc\`es 
+      s\'equentiel "first-in-first-out" (premier entr\'e, premier sorti) en 
+      lecture seule ou en \'ecriture seule.
+   \item[DVD]
+      Indique \`a Bacula que le p\'eriph\'erique est un DVD. Les DVDs sont \`a acc\`es 
+      s\'equentiel en \'ecriture et \`a acc\`es s\'electif  (NDT : traduction Google sans 
+      doute \`a revoir de "random access") en lecture.
+   \end{description}
+   
+  La directive Device Type n'est pas requise, et si elle n'est pas sp\'ecifi\'ee, 
+  Bacula tentera de deviner cette information selon la sp\'ecification Archive 
+  Device fournie. Il existe plusieurs avantages \`a sp\'ecifier explicitement 
+  le type de p\'eriph\'erique. D'abord, sur certains syst\`emes, les p\'eriph\'eriques 
+  bloc et caract\`ere ont le m\^eme type, ce qui signifie que sur ces syst\`emes, 
+  Bacula est probablement incapable de deviner qu'un p\'eriph\'erique est un DVD. 
+  Ensuite, si vous sp\'ecifiez explicitement le type de p\'eriph\'erique, le point de 
+  montage n'a pas besoin d'\^etre d\'efini jusqu'\`a ce que le p\'eriph\'erique soit ouvert. 
+  C'est le cas de la plupart des p\'eriph\'eriques amovibles tels que les USB mont\'es 
+  par le daemon HAL. Au contraire, si le type de p\'eriph\'erique n'est pas 
+  sp\'ecifi\'e explicitement, le point de montage doit exister d\`es le 
+  d\'emarrage du Storage Daemon.
+
+  Cette directive est apparue avec la version 1.38.6 de Bacula.
+  
+\item [Media Type = {\it name-string}]
+   \index[sd]{Media Type}
+   \index[sd]{Directive!Media Type}
+   La cha\^ine {\bf name-string} sp\'ecifi\'ee baptise le type de m\'edia support\'e par 
+   ce p\'eriph\'erique, par exemple, "DLT7000". Les noms de type de m\'edia sont 
+   arbitraires, vous pouvez utiliser le nom de votre choix, mais ils doivent 
+   \^etre connus du catalogue pour qu'il puisse garder trace de quel daemon 
+   peut lire quel type de m\'edia. En g\'en\'eral, chaque type de stockage devrait 
+   avoir un type de m\'edia unique associ\'e. Le m\^eme nom {\bf name-string} doit 
+   appara\^itre dans la d\'efinition de ressource Storage appropri\'ee du fichier 
+   de configuration du Director.
+   
+   M\^eme si les noms que vous assignez sont arbitraires, vous devriez les choisir 
+   avec circonspection, car le Media Type est utilis\'e pour d\'eterminer le 
+   p\'eriph\'erique de stockage \`a s\'electionner lors d'une restauration. Ainsi, vous 
+   devriez certainement utiliser le m\^eme Media Type pour tous les lecteurs 
+   dont les cartouches sont interchangeables. Ce n'est g\'en\'eralement pas un 
+   probl\`eme si vous n'avez qu'un Storage Daemon, mais c'en est un avec plusieurs 
+   Storage Daemon, surtout s'ils utilisent des m\'edia incompatibles.
+  
+   Si, par exemple, vous sp\'ecifiez le Media Type "DDS-4", Bacula pourra lors de 
+   restaurations s\'electionner tout Storage Daemon qui supporte les "DDS-4". 
+   Si vous avez une librairie, vous voudrez peut-\^etre baptiser son Media Type 
+   d'un nom qui lui soit unique, \`a moins que vous souhaitiez pouvoir utiliser 
+   ses volumes dans d'autres lecteurs. Vous devriez aussi vous assurer d'avoir 
+   des noms de Media Type uniques si les media ne sont pas compatibles d'un 
+   lecteur \`a l'autre. Cette sp\'ecification est requise pour tous les 
+   p\'eriph\'eriques.
+
+   Enfin, si vous utilisez le stockage sur disque, sachez que chaque ressource 
+   Device a g\'en\'eralement un point de montage (ou r\'epertoire) diff\'erent. Afin 
+   que Bacula puisse s\'electionner correctement la ressource Device \`a utiliser, 
+   chacun doit avoir un Media Type distinct.
+   
+\label{Autochanger}
+\item [Autochanger = {\it Yes|No}]
+   \index[sd]{Autochanger}
+   \index[sd]{Directive!Autochanger}
+   Si cette directive est \`a {\bf yes}, alors Bacula consid\`ere que le p\'eriph\'erique 
+   concern\'e est dans une librairie, et il vous faut sp\'ecifier une ressource 
+   {\bf Autochanger} qui pointe vers les ressources {\bf Device}. Vous devez 
+   aussi renseigner la directive {\bf Changer Device}. Si la directive est \`a {\bf No} 
+   (valeur par d\'efaut), les volumes doivent \^etre chang\'es manuellement. Vous devriez 
+   aussi avoir une directive identique \`a la \ilink{Storage resource}{Autochanger1} dans 
+   le fichier de configuration du Director, de sorte que Bacula vous demande le slot
+   lors de l'\'etiquetage des cartouches.
+   
+\item [Changer Device = {\it cha\^ine-nom}]
+   \index[sd]{Changer Device}
+   \index[sd]{Directive!Changer Device}
+   La {\bf cha\^ine-nom} sp\'ecifi\'ee doit \^etre le nom de p\'eriph\'erique {\bf SCSI g\'en\'erique} 
+   associ\'e \`a l'{\bf Archive Device} sp\'ecifi\'ee dans la ressource Device. Ce nom de 
+   p\'eriph\'erique SCSI g\'en\'erique devrait \^etre sp\'ecifi\'e si vous avez une librairie 
+   ou si vous n'avez qu'un lecteur standard mais souhaitez utiliser la {\bf commande 
+   Alert} (voir ci-dessous). Par exemple, sur les syst\`emes Linux, vous sp\'ecifierez 
+   certainement {\bf /dev/nst0} pour le nom d'Archive Device, et {\bf /den/sg0} pour 
+   le nom de Changer Device. Selon votre configuration, le nombre de librairies dont 
+   vous disposez et leurs types, le nom que vous serez amen\'e \`a sp\'ecifier ici peut varier. 
+   Cette directive est optionnelle. Consultez le chapitre 
+   \ilink{Utiliser une librairie}{_ChapterStart18} de ce manuel pour plus de d\'etails 
+   concernant les directives relatives aux librairies.
+
+\item [Changer Command = {\it cha\^ine nom}]
+   \index[sd]{Changer Command}
+   \index[sd]{Directive!Changer Command}
+   La {\bf cha\^ine-nom} d\'esigne un programme externe qui aura pour t\^ache le 
+   changement des volumes \`a la demande de Bacula. En principe, cette directive 
+   n'est sp\'ecifi\'ee qu'au niveau de la ressource {\bf AutoChanger}, qui est alors 
+   utilis\'ee pour tous les p\'eriph\'eriques. Cependant, vous pouvez parfaitement 
+   utiliser une commande {\bf Changer Command} diff\'erente pour chaque ressource Device. 
+   La plupart du temps, vous sp\'ecifierez le script {\bf mtx-changer} fourni avec 
+   Bacula de la fa\c {c}on suivante :
+
+\footnotesize
+\begin{verbatim}
+Changer Command = "/path/mtx-changer %c %o %S %a %d"
+\end{verbatim}
+\normalsize
+
+   Et vous installerez le programme {\bf mtx} sur votre syst\`eme (paquetage tiers). 
+   Un exemple de cette commande figure dans le fichier de configuration par d\'efaut 
+   du Storage Daemon, bacula-sd.conf. Pour plus de d\'etails concernant les 
+   substitutions de caract\`eres qui peuvent \^etre utilis\'ees pour configurer 
+   votre librairie, veuillez consulter le chapitre sur 
+   l'\ilink{utilisation des Librairies}{_ChapterStart18}. Les utilisateurs 
+   de FreeBSD voudront probablement jeter un oeil aux quelques scripts 
+   fournis dans le r\'epertoire {\bf examples/autochangers}.   
+
+\item [Alert Command = {\it name-string}]
+   \index[sd]{Alert Command}
+   La {\bf cha\^ine-nom} d\'esigne un programme externe \`a appeler au terme 
+   de chaque job apr\`es que le p\'eriph\'erique ait \'et\'e lib\'er\'e. Le but de cette 
+   commande est de r\'ecup\'erer d'\'eventuels messages d'alerte du lecteur pour 
+   vous pr\'evenir si quelque chose ne fonctionne pas correctement (ces messages 
+   existent au moins sur la plupart des lecteurs modernes). Les m\^emes 
+   substitutions que celles d\'ecrites au niveau de la {\bf Changer command} 
+   peuvent \^etre utilis\'ees ici. Pour plus d'informations, veuillez consulter 
+   le chapitre sur les \ilink{Librairies}{_ChapterStart18} de ce manuel.
+
+   Notez que vous pouvez trouver un usage \`a cette commande sans n\'ecessairement 
+   poss\'eder une librairie. L'exemple ci-dessous utilise le programme {\bf tapeinfo} 
+   qui vient avec le paquet {\bf mtx} mais peut \^etre utilis\'e avec n'importe quel 
+   lecteur. Vous devrez tout de m\^eme sp\'ecifier une directive {\bf Changer Device} 
+   dans votre ressource Device (voir ci-dessus) afin que le p\'eriph\'erique SCSI 
+   g\'en\'erique puisse \^etre \'edit\'e dans la commande (avec \%c).
+
+   Voici un exemple qui affiche les alertes en provenance du lecteur dans les 
+   rapports de jobs :
+   
+\footnotesize
+\begin{verbatim}
+Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
+      
+\end{verbatim}
+\normalsize
+
+Et un exemple de ce qui peut en sortir lorqu'il y a un probl\`eme :
+
+\footnotesize
+\begin{verbatim}
+bacula-sd  Alert: TapeAlert[32]: Interface: Problem with SCSI interface
+                  between tape drive and initiator.
+      
+\end{verbatim}
+\normalsize
+
+\item [Drive Index = {\it number}]
+   \index[sd]{Drive Index}
+   \index[sd]{Directive!Drive Index}
+   Le num\'ero de lecteur, ou {\bf Drive Index}, que vous sp\'ecifiez ici est 
+   pass\'e au script {\bf mtx-changer} et donc au programe {\bf mtx}. 
+   Par d\'efaut, le Drive Index vaut z\'ero, aussi, si vous n'avez qu'un 
+   lecteur dans votre librairie, tout fonctionnera correctement. 
+   Si en revanche vous avez plusieurs lecteurs, vous devez sp\'ecifier 
+   plusieurs ressources Device (une par lecteur).
+   Il n'est pas n\'ecessaire de sp\'ecifier la valeur z\'ero pour la directive 
+   Drive Index dans la premi\`ere de ces ressources (valeur par d\'efaut). Par 
+   contre, la seconde devrait contenir une directive Drive Index \'egale \`a 1, 
+   la troisi\`eme une directive Drive Index \'egale \`a 2, et ainsi de suite. 
+   A partir de la version 1.38.0, en utilisant la ressource {\bf Autochanger}, 
+   Bacula s'assure qu'un seul lecteur \`a la fois utilise le script d'autochargement 
+   (script mtx-changer), aussi vous n'avez plus besoin de scripts de verrouillage 
+   comme ce fut le cas dans le pass\'e -- Le script mtx-change fourni avec Bacula 
+   fonctionne avec un nombre quelconque de lecteurs.
+   
+\item [Autoselect = {\it Yes|No}]
+   \index[sd]{Autoselect}
+   \index[sd]{Directive!Autoselect}
+   Si cette directive vaut {\bf yes} (valeur par d\'efaut), et si le p\'eriph\'erique 
+   appartient \`a une librairie, alors lorsque la librairie est r\'ef\'erenc\'ee par 
+   le Director, ce p\'eriph\'erique peut \^etre automatiquement s\'electionn\'e. 
+   Si cette directive vaut {\bf no}, alors le p\'eriph\'erique peut seulement 
+   \^etre d\'esign\'e par son nom de p\'eriph\'erique (Device Name) dans le 
+   Director. Ceci permet de r\'eserver un lecteur pour une t\^ache particuli\`ere, 
+   comme une sauvegarde hautement prioritaire, ou des op\'erations de restaurations.
+
+\item [Maximum Changer Wait = {\it time}]
+   \index[sd]{Maximum Changer Wait}
+   \index[sd]{Directive!Maximum Changer Wait}
+   Cette directive sp\'ecifie le d\'elai maximum, en secondes, pendant lequel Bacula 
+   peut attendre d'une librairie qu'elle change de volume. Au del\`a de ce d\'elai, 
+   Bacula invalide le num\'ero de slot r\'ef\'erenc\'e dans le catalogue et essaye \`a 
+   nouveau. Si aucun autre volume n'est disponible dans la librairie, Bacula 
+   r\'eclame l'intervention d'un op\'erateur. La valeur par d\'efaut est 5 minutes.
+   
+\item [Maximum Rewind Wait = {\it time}]
+   \index[sd]{Maximum Rewind Wait}
+   \index[sd]{Directive!Maximum Rewind Wait}
+   Cette directive sp\'ecifie le d\'elai maximum, en secondes, pendant lequel Bacula 
+   peut attendre d'un lecteur qu'il rembobine une cartouche. Au del\`a de ce d\'elai, 
+   le job est effac\'e. La valeur par d\'efaut est 5 minutes.
+
+\item [Maximum Open Wait = {\it time}]
+   \index[sd]{Maximum Open Wait}
+   \index[sd]{Directive!Maximum Open Wait}
+    Cette directive sp\'ecifie le d\'elai maximum, en secondes, pendant lequel Bacula
+    peut attendre apr\`es une commande Open.Au del\`a de ce d\'elai,
+       le job est effac\'e. La valeur par d\'efaut est 5 minutes.
+
+\item [Always Open = {\it Yes|No}]
+   \index[sd]{Always Open}
+   \index[sd]{Directive!Always Open}
+   Si la valeur sp\'ecifi\'ee ici est {\bf Yes} (valeur par d\'efaut), Bacula garde le 
+   p\'eriph\'erique ouvert, \`a moins qu'il ne soit explicitement d\'emont\'e ({\bf unmounted}) 
+   depuis la console Bacula. Ceci permet \`a Bacula de s'assurer que le lecteur est 
+   toujours disponible. Si vous r\'eglez  {\bf AlwaysOpen} \`a {\bf no} {\bf Bacula}, 
+   Bacula ouvre le lecteur seulement lorsque n\'ecessaire, et le lib\`ere \`a la fin du 
+   job, si aucun autre job ne l'utilise. Lors de l'utilisation suivante, Bacula 
+   doit rembobiner la cartouche et se repositionner au bon endroit. Pour \'eviter 
+   ces rembnobinages inutiles et les interventions de l'op\'erateur, il est 
+   hautement recommand\'e de garder la valeur {\bf Always Open = yes}. Ceci assure 
+   aussi que le lecteur est disponible lorsque Bacula en a besoin.
+
+  Si vous avez sp\'ecifi\'e {\bf Always Open = yes} (comme recommand\'e) et si vous 
+  voulez utiliser le lecteur pour autre chose, lib\'erez-le simplement avec la 
+  commande  {\bf unmount} dans la console Bacula. N'oubliez-pas ensuite de 
+  remonter le lecteur avec la commande  {\bf mount} afin que Bacula soit pr\`et 
+  \`a prendre en charge le prochain job planifi\'e.
+
+  Pour le stockage sur disque (File Storage), cette directive est ignor\'ee. Dans le 
+  cas d'un stockage FIFO, vous devez mettre cette directive \`a {\bf No}.
+   
+  Notez bien que si vous mettez cette directive \`a {\bf No}, Bacula lib\`ere le 
+  lecteur entre chaque job, obligeant le lecteur \`a rembobiner la cartouche, et 
+  \`a replacer la bande \`a la fin de la zone de donn\'ees, ce qui peut prendre 
+  beaucoup de temps.
+  
+\item [Volume Poll Interval = {\it p\'eriode}]
+   \index[sd]{Volume Poll Interval}
+   \index[sd]{Directive!Volume Poll Interval}
+   Si la p\'eriode sp\'ecifi\'ee pour cette directive est non nulle alors, apr\`es avoir 
+   demand\'e \`a l'op\'erateur de monter un nouveau volume, Bacula retentera 
+   p\'eriodiquement de lire le lecteur selon la p\'eriode sp\'ecifi\'ee au cas o\`u un 
+   nouveau volume aurait \'et\'e mont\'e. Si la valeur sp\'ecifi\'ee est z\'ero, ces 
+   tentatives de lecture n'ont pas lieu. Cette directive est utile lorsque 
+   vous souhaitez \'eviter l'intervention d'un op\'erateur \`a la console. Au lieu de 
+   quoi l'op\'erateur se contente de sortir la cartouche pr\'ec\'edente et de monter la 
+   nouvelle qui sera reconnue \`a la prochaine tentative. Soyez conscient que si vous 
+   sp\'ecifiez une p\'eriode trop courte, vous risquez de solliciter excessivement 
+   votre lecteur si la cartouche pr\'ec\'edente demeure dans le lecteur, puisque Bacula 
+   la lira \`a chaque tentative. Vous pouvez \'eviter ceci en \'ejectant la cartouche avec 
+   les directives {\bf Offline On Unmount} et  {\bf Close on Poll}.
+   Cependant, si vous utilisez un noyau Linux 2.6 ou un autre syst\`eme d'exploitation tel 
+   FreeBSD ou Solaris, les commandes Offline ou Unmount laisseront le lecteur sans cartouche, 
+   et Bacula, incapable de d'ouvrir correctement le lecteur, pourrait \'echouer ses jobs. 
+   Pour plus d'informations sur ce probl\`eme, veuillez consulter la section 
+   \ilink{description of Offline On Unmount}{NoTapeInDrive}  du chapitre relatif 
+   aux tests des lecteurs de bandes.
+
+\item [Close on Poll= {\it Yes|No}]
+   \index[sd]{Close on Poll}
+   \index[sd]{Directive!Close on Poll}
+   Si cette directive est \`a {\bf Yes}, Bacula ferme le p\'eriph\'erique et le r\'eouvre 
+   \`a chaque tentative (ce qui est \'equivalent \`a unmount, sauf qu'il n'est pas 
+   n\'ecessaire d'utiliser mount ensuite). En principe, cette directive n'est 
+   pas tr\`es utile \`a moins que vous ayez activ\'e la directive  {\bf Offline on Unmount}, 
+   auquel cas le lecteur sera consid\'er\'e hors-ligne (NDT : offline) pr\'evenant ainsi 
+   de nombreux mouvements inutiles de la bande lors de chaque tentative de lecture. 
+   Une fois que l'op\'erateur aura charg\'e une nouvelle cartouche, Bacula 
+   sera en mesure de s'en rendre compte \`a la prochaine tentative  et poursuivra 
+   automatiquement la sauvegarde. Voyez ci-dessus pour plus de d\'etails. 
+   
+\item [Maximum Open Wait = {\it time}]
+   \index[sd]{Maximum Open Wait}
+   \index[sd]{Directive!Maximum Open Wait}
+   Cette directive sp\'ecifie le d\'elai maximum, en secondes que Bacula 
+   accorde \`a un p\'eriph\'erique occup\'e. La valeur par d\'efaut est 5 minutes. 
+   Si le p\'eriph\'erique ne peut \^etre obtenu, le job en cours est termin\'e en erreur. 
+   Bacula tentera \`a nouveau d'ouvrir le lecteur lorsqu'un nouveau job le 
+   r\'eclamera.
+
+\item [Removable media = {\it Yes|No}]
+   \index[sd]{Removable media}
+   \index[sd]{Directive!Removable media}
+   R\'eglez cette directive \`a {\bf Yes} si le p\'eriph\'erique concern\'e supporte des 
+   m\'edia amovibles (par exemple des cartouches ou des CDROMs). Dans le cas de 
+   m\'edia inamovibles (par exemple, une zone de sauvegardes interm\'ediaires sur un 
+   disque dur), mettez {\bf Removable media = No}
+
+\item [Random access = {\it Yes|No}]
+   \index[sd]{Random access}
+   \index[sd]{Directive!Random access}
+   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique de stockage est consid\'er\'e 
+   comme \'etant un m\'edium \`a acc\`es al\'eatoire (NDT : random access medium) qui 
+   supporte les commodit\'es {\bf lseek} (ou {\bf lseek64} si l'option Largefile 
+   a \'et\'e activ\'ee lors de la compilation).
+   
+\item [Minimum block size = {\it size-in-bytes}]
+   \index[sd]{Minimum block size}
+   \index[sd]{Directive!Minimum block size}
+  Sur la plupart des lecteurs modernes, vous n'aurez pas besoin de cette 
+  directive, dont le but est d'utiliser des blocs de taille fixe. Cette 
+  directive ne s'applique qu'aux p\'eriph\'eriques \`a acc\`es s\'equentiel (NDT : 
+  non-random access devices) comme, par exemple, les lecteurs de bandes. 
+  Les blocs \'ecrits par le Storage Daemon sur un p\'eriph\'erique \`a acc\`es 
+  s\'equentiel ne seront jamais de taille inf\'erieure \`a la taille sp\'ecifi\'ee 
+  {\bf size-in-bytes}. Le Storage Daemon tente de remplir au mieux les blocs 
+  avec les donn\'ees re\c {c}ues, mais il compl\`ete si n\'ecessaire pour atteindre 
+  la taille minimum requise {\bf Minimum block size} .
+
+  Pour contraindre la taille des blocs \`a \^etre fixe, comme c'est le cas de 
+  certains p\'eriph\'eriques \`a acc\`es s\'equentiel, stipulez des tailles de blocs 
+  minimum {\bf Minimum block size} et maximum {\bf Maximum block size} 
+  identiques. Le param\'etrage par d\'efaut est 0 pour les deux directives 
+  et la taille de bloc par d\'efaut est de 64 512 octets. 
+  Par exemple, si vous souhaitez fixer la taille des blocs \`a 100K octets, sp\'ecifiez :
+   
+\footnotesize
+\begin{verbatim}
+    Minimum block size = 100K
+    Maximum block size = 100K
+    
+\end{verbatim}
+\normalsize
+   Notez que si vous sp\'ecifiez une taille de blocs fixe comme ci-dessus, le 
+   lecteur doit \^etre r\'egl\'e soit en mode "taille de blocs variable", soit en 
+   mode "taille de blocs fixe" avec imp\'erativement la m\^eme taille de blocs 
+   fixe que celle sp\'ecifi\'ee dans Bacula (ce param\`etre se r\`egle g\'en\'eralement 
+   au niveau du lecteur avec {\bf mt}), faute de quoi vous aurez des erreurs \`a 
+   la relecture de vos cartouches.
+  
+   Si vous voulez que votre taille de blocs soit variable mais comprise entre 
+   64 Ko et 200 Ko, sp\'ecifiez :
+   
+\footnotesize
+\begin{verbatim}
+    Minimum block size = 64K
+    Maximum blocksize = 200K
+   
+\end{verbatim}
+\normalsize
+
+\item [Maximum block size = {\it size-in-bytes}]
+   \index[sd]{Maximum block size}
+   \index[sd]{Directive!Maximum block size}
+  Sur la plupart des lecteurs modernes, vous n'aurez pas besoin de cette
+  directive. Dans le cas contraire, ce sera probablement pour utiliser 
+  des blocs de taille fixe (voir la directive  Minimum block size ci dessus). 
+  Le Storage Daemon tente d'\'ecrire des blocs de la taille sp\'ecifi\'ee 
+  {\bf size-in-bytes} sur le p\'eriph\'erique. Par cons\'equent cette 
+  directive fixe \`a la fois la taille maximale et la taille par d\'efaut 
+  des blocs. La taille \'ecrite n'exc\`ede jamais la taille sp\'ecifi\'ee ici. 
+  Lorsque l'ajout de donn\'ees provoquerait un d\'epassement, le bloc est 
+  \'ecrit sur le p\'eriph\'erique, et un nouveau bloc est entam\'e.
+  avec les donn\'ees re\c {c}ues, mais il compl\`ete si n\'ecessaire pour atteindre
+
+  Si aucune valeur n'est sp\'ecifi\'ee (ou si la valeur sp\'ecifi\'ee est 0), le 
+  Storage Daemon utilise la valeur par d\'efaut de 64 512 octets.
+   
+\item [Hardware End of Medium = {\it Yes|No}]
+   \index[sd]{Hardware End of Medium}
+   \index[sd]{Directive!Hardware End of Medium}
+   Si la valeur attribu\'ee \`a cette directive est {\bf No}, le p\'eriph\'erique de 
+   stockage n'a pas besoin de supporter les requ\^etes ioctl "fin de m\'edium",  
+   le Storage Daemon utilisant la fonction d'avance jusqu'au prochain espace 
+   pour trouver la fin du m\'edium. Si la valeur est {\bf Yes}, le p\'eriph\'erique 
+   doit supporter l'appel {\tt ioctl}  {\tt MTEOM}  qui positionne la cartouche 
+   \`a la fin des donn\'ees enregistr\'ees. De plus, votre driver SCSI doit garder trace 
+   du nombre de fichiers enregistr\'es sur la cartouche, et le retourner correctement 
+   \`a l'appel {\bf MTIOCGET} ioctl. Notez que certains pilotes SCSI savent se 
+   positionner correctement \`a la fin de la zone de donn\'ees enregistr\'ees sur la cartouche, 
+   mais ne gardent pas trace du nombre de fichiers. Sur les machines Linux, le 
+   driver SCSI a une option {\bf fast-eod} qui, si elle est utilis\'ee 
+   provoque la perte du nombre de fichiers. assurez-vous toujours que cette 
+   option est bien d\'esactiv\'ee (\`a l'aide du programme {\bf mt}). 
+   
+   Le r\'eglage par d\'efaut de cette directive est {\bf Yes}. Cette option est utilis\'ee 
+   lors de l'\'ecriture \`a la suite d'une cartouche, pour s'assurer que les donn\'ees 
+   pr\'ec\'edemment \'ecrites ne seront pas corrompues. Nous vous recommandons, si vous 
+   avez un lecteur non-standard ou inhabituel, de le tester avec le programme 
+   {\bf btape} pour v\'erifier s'il supporte ou non cette fonction. Tous les lecteurs 
+   modernes (au del\`a de 1998) la supportent.
+   
+\item [Fast Forward Space File = {\it Yes|No}]
+   \index[sd]{Fast Forward Space File}
+   \index[sd]{Directive!Fast Forward Space File}
+   Si la valeur attribu\'ee \`a cette directive est {\bf No}, le p\'eriph\'erique de
+   stockage n'a pas besoin de supporter les requ\^etes ioctl {\bf MTIOCGET} 
+   "nombre de fichiers" lors du d\'eplacement sur la bande jusqu'au prochain espace. Si au contraire 
+   vous sp\'ecifiez {\bf yes}, le lecteur doit supporter l'appel {\tt ioctl} {\tt MTFSF}, 
+   que presque tous les pilotes supportent, mais de plus votre pilote SCSI doit 
+   garder trace et retourner correctement le nombre de fichiers \`a l'appel 
+   ioctl  {\bf MTIOCGET} . Notez que certains pilotes SCSI ex\'ecutent correctement 
+   les d\'eplacements sur bande "jusqu'au prochain espace" sans toutefois garder trace 
+   du nombre de fichiers enregistr\'es, et m\^eme plus grave pour certains : sans 
+   signaler la fin du support.
+
+   La valeur par d\'efaut de cette directive est  {\bf Yes}.
+
+\item [Use MTIOCGET = {\it Yes|No}]
+   \index[sd]{Use MTIOCGET}
+   \index[sd]{Directive!Use MTIOCGET}
+   Si la valeur attribu\'ee \`a cette directive est {\bf No}, le syst\`eme d'exploitation 
+   n'a pas besoin de garder trace du nombre de fichiers sur la cartouche, ni de 
+   le retourner \`a l'appel ioctl {\bf MTIOCGET}. La valeur par d\'efaut est {\bf Yes}. 
+   Si vous devez mettre No ici, Bacula prendra en charge la d\'etermination des 
+   positions de fichiers, mais cela implique des mouvements tr\`es inefficaces de la 
+   bande. Heureusement, cette d\'eficience du syst\`eme d'exploitation semble n'\^etre 
+   l'apanage que de quelques *BSD. Solaris, Linux et FreeBSD sont connus pour 
+   fonctionner correctement.
+   
+\item [BSF at EOM = {\it Yes|No}]
+   \index[sd]{BSF at EOM}
+   \index[sd]{Directive!BSF at EOM}
+    Si cette directive est \`a {\bf No} (valeur par d\'efaut), Bacula n'entreprend 
+    aucune action particuli\`ere lorsque la fin du m\'edium est atteinte car 
+    la cartouche est positionn\'ee apr\`es la derni\`ere marque de fin de fichier EOF, 
+    et Bacula peut \'ecrire \`a la suite. Cependant, sur certains syst\`emes tels que 
+    FreeBSD, lorsque Bacula lit la marque de fin de cartouche, la cartouche est 
+    positionn\'ee apr\`es la seconde marque de fin de fichier EOF (deux marques EOF 
+    successives indiquent la fin du support). Si Bacula \'ecrit au del\`a de cette 
+    marque, toutes les donn\'ees ajout\'ees seront perdues. La solutions pour ces syst\`emes 
+    consiste \`a sp\'ecifier {\bf BSF at EOM}, ainsi Bacula recule en \'ecrasant la 
+    seconde marque de fin de fichier. Pour savoir si vous avez besoin de cette 
+    directive, utilisez la commande {\bf test} du programme {\bf btape}.
+(NDT : Paragraphe \`a revoir VO ci dessous) 
+   If {\bf No}, the default, no special action is taken by  Bacula with the End
+   of Medium (end of tape) is reached because  the tape will be positioned after
+   the last EOF tape mark, and  Bacula can append to the tape as desired.
+   However, on some  systems, such as FreeBSD, when Bacula reads the End of
+   Medium  (end of tape), the tape will be positioned after the second  EOF tape
+   mark (two successive EOF marks indicated End of  Medium). If Bacula appends
+   from that point, all the appended  data will be lost. The solution for such
+   systems is to  specify {\bf BSF at EOM} which causes Bacula to backspace  over
+   the second EOF mark. Determination of whether or not  you need this directive
+   is done using the {\bf test} command  in the {\bf btape} program.
+
+\item [TWO EOF = {\it Yes|No}]
+   \index[sd]{TWO EOF}
+   \index[sd]{Directive!TWO EOF}
+   Si cette directive est \`a {\bf Yes}, Bacula \'ecrit deux marques de fin de fichier EOF 
+   lorsqu'il a fini d'utiliser une cartouche -- c'est \`a dire apr\`es le dernier 
+   job, ou \`a la fin de la cartouche. Dans le cas contraire (la valeur par d\'efaut), 
+   Bacula n'\'ecrit qu'une marque de fin de fichier pour terminer une cartouche.
+
+\item [Backward Space Record = {\it Yes|No}]
+   \index[sd]{Backward Space Record}
+   \index[sd]{Directive!Backward Space Record}
+   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique supporte {\tt MTBSR  ioctl} 
+   pour reculer dans les enregistrements. Sinon, cet appel n'est pas utilis\'e 
+   et la bande doit \^etre rembobin\'ee puis avanc\'ee de fichier en fichier jusqu'\`a 
+   la position d\'esir\'ee. La valeur par d\'efaut est {\bf Yes} pour un p\'eriph\'erique 
+   \`a acc\`es s\'equentiel. Cette fonction, si activ\'ee, est utilis\'ee \`a la fin des 
+   volumes apr\`es \'ecriture d'une marque fin de fichier et de toute \'etiquette 
+   ANSI/IBM pour d\'eterminer si oui ou non le dernier bloc a \'et\'e \'ecrit 
+   correctement. Si vous d\'esactivez cette fonction, le test ne sera pas fait. 
+   Ce n'est pas un probl\`eme car le processus de relecture est une 
+   pr\'ecaution plut\^ot qu'une n\'ecessit\'e.
+   
+\item [Backward Space File = {\it Yes|No}]
+   \index[sd]{Backward Space File}
+   \index[sd]{Directive!Backward Space File}
+   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique supporte les appels  
+   {\bf MTBSF} et {\bf ioctl MTBSF} pour reculer en-de\c{c}a d'un marque de fin de fichier 
+   et se replacer au d\'ebut du fichier. Si cette directive est \`a  {\bf No}, ces appels 
+   ne sont pas utilis\'es et le lecteur doit rembobiner la cartouche, puis avancer 
+   de fichier en fichier jusqu'\`a la position d\'esir\'ee. La valeur par d\'efaut est 
+   {\bf Yes} pour les p\'eriph\'eriques \`a acc\`es s\'equentiel.
+
+\item [Forward Space Record = {\it Yes|No}]
+   \index[sd]{Forward Space Record}
+   \index[sd]{Directive!Forward Space Record}
+   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique doit supporter les appels
+   {\bf MTFSR  ioctl} pour avancer \`a travers les 
+   enregistrements. Si la valeur est {\bf No}, les donn\'ees doivent \^etre lues dans l'ordre 
+   pour positionner la cartouche. La valeur par d\'efaut est 
+   {\bf Yes} pour les p\'eriph\'eriques \`a acc\`es s\'equentiel.
+   
+\item [Forward Space File = {\it Yes|No}]
+   \index[sd]{Forward Space File}
+   \index[sd]{Directive!Forward Space File}
+   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique doit supporter les appels
+   {\tt MTFSF  ioctl} pour d\'eplacer la bande en se rep\'erant aux marques de fichiers. 
+   Si la valeur est {\bf No}, les donn\'ees doivent \^etre lues pour positionner la 
+   bande.  La valeur par d\'efaut est 
+   {\bf Yes} pour les p\'eriph\'eriques \`a acc\`es s\'equentiel.
+
+\item [Offline On Unmount = {\it Yes|No}]
+   \index[sd]{Offline On Unmount}
+   \index[sd]{Directive!Offline On Unmount}
+   Si cette directive est \`a {\bf Yes}, le p\'eriph\'erique doit supporter les appels 
+   {\tt MTOFFL ioctl} pour rembobiner et placer le volume \`a l'\'etat {\it offline}. 
+   Dans ce cas, Bacula lance requ\^ete {\it eject} avant de fermer le lecteur lors 
+   de la commande {\bf unmount}. Si la valeur est {\bf No} (valeur par d\'efaut), 
+   Bacula ne tente pas de mettre la cartouche \`a l'\'etat {\it offline} avant de 
+   la d\'emonter. Apr\`es que la cartouche ait \'et\'e mise hors ligne, elle est \'eject\'ee 
+   requ\'erant ainsi {\bf l'intervention d'un op\'erateur} pour poursuivre. Certains 
+   syst\`emes exigent que la commande de chargement {\bf mt -f /dev/xxx load} 
+   soit lanc\'ee avant de pouvoir reconna\^itre la cartouche. Si vous utilisez une 
+   librairie, sachez que certaines requi\`erent de passer le lecteur \`a l'\'etat 
+   {\it offline} pour pouvoir changer de cartouche. Cependant, la plupart n'en 
+   on pas besoin et pourraient \^etre d\'erout\'es si cette directive est \`a {\bf Yes}.
+   
+   Si vous utilisez un noyau Linux 2.6, ou un syst\`eme tel que FreeBSD ou Solaris, 
+   la directive Offline On Unmount abandonnera votre lecteur sans cartouche, et Bacula 
+   incapable de l'utiliser. Pour plus d'informations sur ce probl\`eme, 
+   consultez la section \ilink{description de Offline On Unmount}{NoTapeInDrive} dans le 
+   chapitre sur les tests de lecteurs.
+   
+\item [Maximum Volume Size = {\it size}]
+   \index[sd]{Maximum Volume Size}
+   \index[sd]{Directive!Maximum Volume Size}
+   Avec cette directive, vous pouvez imposer une limite au poids de donn\'ees 
+   \`a \'ecrire sur chaque volume. La valeur {\bf size} repr\'esente le nombre d'octets 
+   autoris\'es. Cette directive est surtout utilis\'ee \`a des fins de tests pour 
+   simuler des petits volumes, mais elle peut aussi se r\'ev\'eler utile si voulez 
+   limiter la taille de vos volumes, par exemple \`a 2 Go. Certains rares lecteurs 
+   vraiment anciens ne signalent pas correctement lorsque la fin de la 
+   cartouche est atteinte lors d'une op\'eration d'\'ecriture (Bien que j'aie lu des 
+   choses au sujet de tels lecteurs, je n'en n'ai jamais rencontr\'e moi-m\^eme). Notez 
+   que cette directive est obsol\`ete, rendue inutile par la 
+   directive {\bf Maximum Volume Bytes} d\'efinie dans le fichier de configuration 
+   du Director.
+
+\item [Maximum File Size = {\it size}]
+   \index[sd]{Maximum File Size}
+   \index[sd]{Directive!Maximum File Size}
+   Cette directive vous permet d'imposer une limite au poids des fichiers logiques 
+   sur le volume. La valeur {\bf size} repr\'esente le nombre d'octets autoris\'es 
+   par fichier. Une fois cette valeur atteinte, une marque de fin de fichier est 
+   plac\'ee sur le volume et les donn\'ees suivantes sont plac\'ees dans un nouveau 
+   fichier. Ce d\'ecoupage des longues s\'equences de donn\'ees en blocs plus petits 
+   permet un positionnement plus rapide du lecteur au d\'ebut d'un flux de donn\'ees 
+   et peut contribuer \`a pr\'evenir les erreurs de lecture sur la cartouche lors des 
+   restaurations. La valeur par d\'efaut est 1 Go.
+   
+\item [Block Positioning = {\it yes|no}]
+   \index[sd]{Block Positioning}
+   \index[sd]{Directive!Block Positioning}
+   Cette directive n'est pas utilis\'ee en fonctionnement normal (et n'a pas encore 
+   \'et\'e test\'ee). Son r\^ole est d'enjoindre Bacula \`a ne plus utiliser le 
+   positionnement par blocs lors de la lecture des cartouches. Ceci peut rendre 
+   les op\'erations de restauration {\bf extr\`emement} lentes. Vous utiliserez cette 
+   directive si vous avez \'ecrit vos cartouches avec Bacula en mode "taille de blocs 
+   variable" tandis que votre lecteur \'etait en taille de blocs fixe. Si tout 
+   fonctionne comme je l'esp\`ere, Bacula sera capable de relire vos cartouches.
+
+\item [Maximum Network Buffer Size = {\it bytes}]
+   \index[sd]{Maximum Network Buffer Size}
+   \index[sd]{Directive!Maximum Network Buffer Size}
+   Cette directive permet de sp\'ecifier la taille initiale du tampon r\'eseau \`a 
+   utiliser avec le File Daemon. La valeur {\bf bytes} est la taille exprim\'ee 
+   en octets. Cette valeur es appel\'ee \`a \^etre ajust\'ee \`a la baisse si elle est 
+   trop importante, jusqu'\`a ce qu'elle soit accep\'ee par le syst\`eme d'exploitation. 
+   Soyez circonspect dans l'usage de cette directive, car si vous utilisez une 
+   valeur trop grande, elle sera diminu\'ee par incr\'ements de 521 octets jusqu'\`a 
+   satisfaction du syst\`eme d'exploitation, ce qui peut n\'ecessiter un grand nombre 
+   d'appels syst\`eme. La valeur par d\'efaut est 32 768 octets.
+
+   La valeur par d\'efaut a \'et\'e choisie relativement importante, mais pas trop, 
+   au cas ou vous transmettriez vos donn\'ees via Internet. Il est clair que sur 
+   un r\'eseau local rapide, vous pouvez augmenter cette valeur et am\'eliorer les 
+   performances. Par exemple, certains utilisateurs ont obtenu des facteurs 
+   d'acc\'el\'eration de l'ordre de 5 \`a 10 en utilisant un tampon r\'eseau initial de 
+   65 536 octets. La plupart des utilisateurs indiquent que des valeurs plus 
+   grandes ne semblent pas am\'eliorer les performances. Si vous voulez am\'eliorer 
+   la viteese de vos sauvegardes, cette directive est probablement le meilleur 
+   endroit pour exp\'erimenter. Vous voudrez probablement effectuer les 
+   modifications correspondantes dans les fichiers de configuration de chacun  
+   des File Daemons.
+   
+\item [Maximum Spool Size = {\it bytes}]
+   \index[sd]{Maximum Spool Size}
+   \index[sd]{Directive!Maximum Spool Size}
+   Cette directive limite \`a la valeur sp\'ecifi\'ee (en octets) le volume occup\'e par 
+   le tampon (NDT : spool) disque pour tous les jobs en ex\'ecution. Par d\'efaut, il n'y a 
+   pas de limite.
+   
+\item [Maximum Job Spool Size = {\it bytes}]
+   \index[sd]{Maximum Job Spool Size}
+   \index[sd]{Directive!Maximum Job Spool Size}
+   Cette directive limite \`a la valeur sp\'ecifi\'ee (en octets) le volume occup\'e par 
+   le tampon disque pour chaque job. Par d\'efaut, il n'y a pas de limite. Cette 
+   directive est apparue avel la version 1.37.
+   
+\item [Spool Directory = {\it directory}]
+   \index[sd]{Spool Directory}
+   \index[sd]{Directive!Spool Directory}
+   Cette directive sp\'ecifie le nom du r\'epertoire \`a utiliser en tant que tampon 
+   disque pour ce p\'eriph\'erique. Ce r\'epertoire est aussi utilis\'e pour stocker 
+   les fichiers partiels lors de l'\'ecriture sur des supports qui requi\`erent 
+   un montage (DVD). Le comportement par d\'efaut est d'utiliser le r\'epertoire 
+   de travail de Bacula (working directory).
+
+\item [Maximum Part Size = {\it bytes}]
+   \index[sd]{Maximum Part Size}
+   \index[sd]{Directive!Maximum Part Size}
+   Cette directive pr\'ecise la taille maximale (en octets) d'un fichier partiel. Par d\'efaut, 
+   il n'y a pas de limite. Cette directive est apparue avec la version 1.37.
+
+   Si le p\'eriph\'erique requiert un montage, l'ordre de montage est transmis lorsque 
+   cette valeur est atteinte. Dans ce cas, vous devez vous assurer d'avor suffisament 
+   d'espace dans votre r\'epertoire tampon, faute de quoi vos donn\'ees resteront dans le 
+   r\'epertoire tampon.
+
+   Cette directive est ignor\'ee pour les lecteurs de bandes et les FIFO.
+
+\end{description}
+
+\section{P\'eriph\'eriques qui requi\`erent un montage (DVD)}
+\index[general]{P\'eriph\'eriques qui requi\`erent un montage (DVD)}
+\index[general]{DVD!P\'eriph\'eriques qui requi\`erent un montage}
+\addcontentsline{toc}{section}{P\'eriph\'eriques qui requi\`erent un montage (DVD)}
+
+Toutes les directives d\'ecrites dans cette section sont impl\'ement\'ees dans Bacula 
+\`a partir de la version 1.37.
+
+A partir de la version 1.39.5, les directives "Requires Mount", "Mount Point", 
+"Mount Command", et "Unmount Command" s'appliquent aux syst\`emes de fichiers 
+amovibles tels que les p\'erih\'eriques USB, et plus seulement aux DVDs.
+
+\begin{description}
+
+\item [Requires Mount = {\it Yes|No}]
+   \index[sd]{Requires Mount}
+   \index[sd]{Directive!Requires Mount}
+   Cette directive doit \^etre \`a {\bf yes} pour les graveurs de DVDs, et \`a {\bf no} 
+   pour tous les autres p\'eriph\'eriques (cartouches/fichiers). Elle indique si 
+   le p\'eriph\'erique n\'ecessite d'\^etre mont\'e pour \^etre lu, et si un moyen particulier 
+   doit \^etre employ\'e pour y \'ecrire. Si vous activez cette directive, vous devez aussi 
+   d\'efinir les directives {\bf Mount Point},  {\bf Mount Command}, {\bf Unmount Command} 
+   et {\bf Write Part Command}.
+
+\item [Mount Point = {\it directory}]
+   \index[sd]{Mount Point}
+   \index[sd]{Directive!Mount Point}
+   Cette directive sp\'ecifie le r\'epertoire o\`u le p\'eriph\'erique peut \^etre mont\'e. 
+   (le point de montage)
+   
+\item [Mount Command = {\it name-string}]
+   \index[sd]{Mount Command}
+   \index[sd]{Directive!Mount Command}
+   Cette directive sp\'ecifie la commande \`a ex\'ecuter pour monter le p\'eriph\'erique. 
+   Avant l'ex\'ecution de la commande, \%a est remplac\'e par le p\'eriph\'erique de 
+   stockage, et \%m par le point de montage (Mount Point).
+
+   La plupart du temps, vous le d\'efinirez ainsi :
+
+\footnotesize
+\begin{verbatim}
+  Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
+\end{verbatim}
+\normalsize
+
+\item [Unmount Command = {\it name-string}]
+   \index[sd]{Unmount Command}
+   \index[sd]{Directive!Unmount Command}
+   Cette directive sp\'ecifie la commande \`a ex\'ecuter pour d\'emonter le p\'eriph\'erique. 
+   Avant l'ex\'ecution de la commande, \%a est remplac\'e par le p\'eriph\'erique de
+   stockage, et \%m par le point de montage (Mount Point).
+      
+   La plupart du temps, vous le d\'efinirez ainsi :
+
+\footnotesize
+\begin{verbatim}
+  Unmount Command = "/bin/umount %m"
+\end{verbatim}
+\normalsize
+
+\item [Write Part Command = {\it name-string}]
+   \index[sd]{Write Part Command}
+   \index[sd]{Directive!Write Part Command}
+   Cette directive sp\'ecifie la commande \`a ex\'ecuter pour  \'ecrire une partition (NDT : Revoir cette partie, VO ci-dessous) 
+   sur le p\'eriph\'erique. Avant l'ex\'ecution de la commande, \%a est remplac\'e par le p\'eriph\'erique de
+   stockage, \%m par le point de montage, \%e par 1 s'il s'agit de la premi\`ere 
+   partition, 0 sinon, et \%v avec le nom de fichier de la partition courante.
+
+   Pour un DVD, vous utiliserez la plupart du temps le script fourni {\bf dvd-handler} 
+   comme suit :
+
+Command that must be executed to write a part to the device. Before the 
+   command is executed, \%a is replaced with the Archive Device, \%m with the 
+   Mount Point, \%e is replaced with 1 if we are writing the first part,
+   and with 0 otherwise, and \%v with the current part filename.
+
+   For a DVD, you will most frequently specify the Bacula supplied  {\bf
+   dvd-handler} script as follows:  
+
+\footnotesize
+\begin{verbatim}
+  Write Part Command = "/path/dvd-handler %a write %e %v"
+\end{verbatim}
+\normalsize
+
+  O\`u {\bf /path} est le chemin vers votre r\'epertoire de scripts, et 
+  dvd-handler est le script fourni avec Bacula. Cette commande est d\'ej\`a pr\'esente 
+  quoique comment\'ee dans le fichier de configuration du Storage Daemon. Pour l'utiliser, 
+  il vous suffit de supprimer le caract\`ere \#.
+
+\item [Free Space Command = {\it name-string}]
+   \index[sd]{Free Space Command}
+   \index[sd]{Directive!Free Space Command}
+   Cette directive sp\'ecifie la commande \`a ex\'ecuter pour contr\^oler l'espace disponible 
+   sur le p\'eriph\'erique. Avant l'ex\'ecution de la commande, \%a est remplac\'e par le p\'eriph\'erique de 
+   stockage, \%m par le point de montage, \%e par 1 s'il s'agit de la premi\`ere
+   partition, 0 sinon, et \%v avec le nom de fichier de la partition courante.
+
+   Pour un DVD, vous utiliserez la plupart du temps le script fourni {\bf dvd-handler}
+   comme suit :
+
+\footnotesize
+\begin{verbatim}
+  Free Space Command = "/path/dvd-handler %a free"
+\end{verbatim}
+\normalsize
+
+   O\`u {\bf /path} est le chemin vers votre r\'epertoire de scripts, et
+   dvd-handler est le script fourni avec Bacula. Si vous voulez 
+   sp\'ecifier votre propre commande, examinez le code de dvd-handler afin de 
+   voir le type de retour attendu par Bacula. Cette commande est d\'ej\`a pr\'esente
+   quoique comment\'ee dans le fichier de configuration du Storage Daemon. Pour l'utiliser,
+   il vous suffit de supprimer le caract\`ere \#.
+
+   Si vous n'utilisez pas cette directive, Bacula s'attendra \`a ce qu'il y ait 
+   toujours de la place dur le p\'eriph\'erique.
+
+\end{description}
+
+%% This pulls in the Autochanger resource from another file.
+\label{AutochangerRes}
+\label{AutochangerResource1}
+\input{autochangerres}
+
+
+\section{Possibilit\'es}
+\index[general]{Possibilit\'es}
+\addcontentsline{toc}{section}{Possibilit\'es}
+
+\begin{description}
+
+\item [Label media = {\it Yes|No}]
+   \index[sd]{Label media}
+   \index[sd]{Directive!Label media}
+   Si cette directive est activ\'ee ({\bf Yes}), alors ce p\'eriph\'erique est 
+   habilit\'e \`a \'etiqueter les media libres sans ordre explicite de l'op\'erateur. 
+   Ceci est r\'ealis\'e selon un algorithme interne et suivant le format 
+   d\'efini par l'enregistrement \ilink{Label Format}{Label} de chaque 
+   ressource Pool. Si cette directive est \`a {\bf No} (valeur par d\'efaut), 
+   Bacula n'\'etiquette les cartouches que sur instruction expresse de 
+   l'op\'erateur (commande {\bf label} de la Console) ou lorsqu'une cartouche 
+   a \'et\'e recycl\'ee. Cette fonctionnalit\'e est plus utile dans le cas de sauvegardes 
+   sur disque qu'avec des cartouches.
+
+\item [Automatic mount = {\it Yes|No}]
+   \index[sd]{Automatic mount}
+   \index[sd]{Directive!Automatic mount}
+   Si cette directive est activ\'ee (c'est le cas par d\'efaut), le Storage Daemon 
+   est autoris\'e \`a examiner le p\'eriph\'erique afin de d\'eterminer s'il contient 
+   un volume \'etiquet\'e Bacula. Ceci est alors fait au d\'emarrage du {\it daemon}, 
+   et au d\'ebut de chaque job. Cette directive est particuli\`erement importante 
+   si vous avez sp\'ecifi\'e  {\bf Always Open = no}  car elle permet \`a 
+   Bacula de tenter de lire le p\'eriph\'erique avant de demander \`a l'op\'erateur 
+   de monter une cartouche. Notez cependant que la cartouche doit \^etre 
+   mont\'ee avant le lancement du job.
+
+\end{description}
+
+\section{La ressource Messages}
+\label{MessagesResource1}
+\index[general]{Ressource!Messages}
+\index[general]{Ressource Messages}
+\addcontentsline{toc}{section}{Resource Messages}
+
+Pour une description de la ressource Messages, veuillez consulter 
+le chapitre \ilink{La ressource Messages}{_ChapterStart15} de ce 
+manuel.
+
+\section{Un exemple de fichier de configuration du Storage Daemon}
+\label{SampleConfiguration}
+\index[general]{Fichier!Exemple configuration Storage Daemon}
+\index[general]{Exemple fichier configuration Storage Daemon}
+\addcontentsline{toc}{section}{Exemple fichier configuration Storage Daemon}
+
+Voici un exemple de fichier de configuration du Storage Daemon :
+
+\footnotesize
+\begin{verbatim}
+#
+# Default Bacula Storage Daemon Configuration file
+#
+#  For Bacula release 1.37.2 (07 July 2005) -- gentoo 1.4.16
+#
+# You may need to change the name of your tape drive
+#   on the "Archive Device" directive in the Device
+#   resource.  If you change the Name and/or the
+#   "Media Type" in the Device resource, please ensure
+#   that bacula-dir.conf has corresponding changes.
+#
+Storage {                               # definition of myself
+  Name = rufus-sd
+  Address = rufus
+  WorkingDirectory = "$HOME/bacula/bin/working"
+  Pid Directory = "$HOME/bacula/bin/working"
+  Maximum Concurrent Jobs = 20
+}
+#
+# List Directors who are permitted to contact Storage daemon
+#
+Director {
+  Name = rufus-dir
+  Password = "ZF9Ctf5PQoWCPkmR3s4atCB0usUPg+vWWyIo2VS5ti6k"
+}
+#
+# Restricted Director, used by tray-monitor to get the
+#   status of the storage daemon
+#
+Director {
+  Name = rufus-mon
+  Password = "9usxgc307dMbe7jbD16v0PXlhD64UVasIDD0DH2WAujcDsc6"
+  Monitor = yes
+}
+#
+# Devices supported by this Storage daemon
+# To connect, the Director's bacula-dir.conf must have the
+#  same Name and MediaType.
+#
+Autochanger {
+  Name = Autochanger
+  Device = Drive-1
+  Device = Drive-2
+  Changer Command = "/home/kern/bacula/bin/mtx-changer %c %o %S %a %d"
+  Changer Device = /dev/sg0
+}
+
+Device {
+  Name = Drive-1                      #
+  Drive Index = 0 
+  Media Type = DLT-8000
+  Archive Device = /dev/nst0
+  AutomaticMount = yes;               # when device opened, read it
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+  RandomAccess = no;
+  AutoChanger = yes
+  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
+}
+
+Device {
+  Name = Drive-2                      #
+  Drive Index = 1
+  Media Type = DLT-8000
+  Archive Device = /dev/nst1
+  AutomaticMount = yes;               # when device opened, read it
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+  RandomAccess = no;
+  AutoChanger = yes
+  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
+}
+
+Device {
+  Name = "HP DLT 80"
+  Media Type = DLT8000
+  Archive Device = /dev/nst0
+  AutomaticMount = yes;                 # when device opened, read it
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+}
+#Device {
+#  Name = SDT-7000                     #
+#  Media Type = DDS-2
+#  Archive Device = /dev/nst0
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = yes;
+#  RemovableMedia = yes;
+#}
+#Device {
+#  Name = Floppy
+#  Media Type = Floppy
+#  Archive Device = /mnt/floppy
+#  RemovableMedia = yes;
+#  Random Access = Yes;
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = no;
+#}
+#Device {
+#  Name = FileStorage
+#  Media Type = File
+#  Archive Device = /tmp
+#  LabelMedia = yes;                   # lets Bacula label unlabeled media
+#  Random Access = Yes;
+#  AutomaticMount = yes;               # when device opened, read it
+#  RemovableMedia = no;
+#  AlwaysOpen = no;
+#}
+#Device {
+#  Name = "NEC ND-1300A"
+#  Media Type = DVD
+#  Archive Device = /dev/hda
+#  LabelMedia = yes;                   # lets Bacula label unlabeled media
+#  Random Access = Yes;
+#  AutomaticMount = yes;               # when device opened, read it
+#  RemovableMedia = yes;
+#  AlwaysOpen = no;
+#  MaximumPartSize = 800M;
+#  RequiresMount = yes;
+#  MountPoint = /mnt/cdrom;
+#  MountCommand = "/bin/mount -t iso9660 -o ro %a %m";
+#  UnmountCommand = "/bin/umount %m";
+#  SpoolDirectory = /tmp/backup;
+#  WritePartCommand = "/etc/bacula/dvd-handler %a write %e %v"
+#  FreeSpaceCommand = "/etc/bacula/dvd-handler %a free"
+#}
+#
+# A very old Exabyte with no end of media detection
+#
+#Device {
+#  Name = "Exabyte 8mm"
+#  Media Type = "8mm"
+#  Archive Device = /dev/nst0
+#  Hardware end of medium = No;
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = Yes;
+#  RemovableMedia = yes;
+#}
+#
+# Send all messages to the Director,
+# mount messages also are sent to the email address
+#
+Messages {
+  Name = Standard
+  director = rufus-dir = all
+  operator = root = mount
+}
+\end{verbatim}
+\normalsize
diff --git a/docs/manuals/fr/misc/base/coverpage.tex b/docs/manuals/fr/misc/base/coverpage.tex
new file mode 100644 (file)
index 0000000..e32d399
--- /dev/null
@@ -0,0 +1,28 @@
+\newfont{\bighead}{cmr17 at 36pt}
+\parskip 10pt
+\parindent 0pt
+
+\title{\includegraphics{\idir bacula-logo.eps} \\ \bigskip
+  \Huge{Bacula}$^{\normalsize \textregistered}$ \Huge{Bacula Miscellaneous Guide}
+  \begin{center}
+   \large{It comes in the night and sucks 
+          the essence from your computers. }
+  \end{center}
+}
+
+
+\author{Kern Sibbald}
+\date{\vspace{1.0in}\today \\
+      This manual documents Bacula version \input{version} \\
+      \vspace{0.2in}
+      Copyright {\copyright} 1999-2010, Free Software Foundation Europe
+      e.V. \\
+      Bacula {\textregistered}  is a registered trademark of Kern Sibbald.\\
+      \vspace{0.2in}
+  Permission is granted to copy, distribute and/or modify this document under the terms of the
+  GNU Free Documentation License, Version 1.2 published by the Free Software Foundation; 
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+  A copy of the license is included in the section entitled "GNU Free Documentation License".
+}
+
+\maketitle
diff --git a/docs/manuals/fr/misc/base/dvd.tex b/docs/manuals/fr/misc/base/dvd.tex
new file mode 100644 (file)
index 0000000..8881136
--- /dev/null
@@ -0,0 +1,329 @@
+%%
+%%
+
+\chapter{DVD Volumes}
+\label{_DVDChapterStart}
+\index[general]{DVD Volumes}
+\index[general]{Writing DVDs}
+\index[general]{DVD Writing}
+\index[general]{Volumes!DVD}
+
+Bacula allows you to specify that you want to write to DVD. However,
+this feature is implemented only in version 1.37 or later.
+You may in fact write to DVD+RW, DVD+R, DVD-R, or DVD-RW 
+media. The actual process used by Bacula is to first write
+the image to a spool directory, then when the Volume reaches
+a certain size or,  at your option, at the end of a Job, Bacula
+will transfer the image from the spool directory to the
+DVD.  The actual work of transferring the image is done
+by a script {\bf dvd-handler}, and the heart of that
+script is a program called {\bf growisofs} which allows
+creating or adding to a DVD ISO filesystem.
+
+You must have {\bf dvd+rw-tools} loaded on your system for DVD writing to
+work.  Please note that the original {\bf dvd+rw-tools} package does {\bf
+NOT} work with Bacula.  You must apply a patch which can be found in the
+{\bf patches} directory of Bacula sources with the name
+{\bf dvd+rw-tools-5.21.4.10.8.bacula.patch} for version 5.21 of the tools,
+or patch {bf dvd+rw-tools-6.1.bacula.patch} if you have version 6.1       
+on your system. Unfortunately, this requires you to build the dvd\_rw-tools
+from source.
+
+Note, some Linux distros such as Debian dvd+rw-tools-7.0-4 package already
+have the patch applied, so please check.
+
+The fact that Bacula cannot use the OS to write directly
+to the DVD makes the whole process a bit more error prone than
+writing to a disk or a tape, but nevertheless, it does work if you
+use some care to set it up properly. However, at the current time
+(version 1.39.30 -- 12 December 2006) we still consider this code to be
+BETA quality.  As a consequence, please do careful testing before relying
+on DVD backups in production.
+
+The remainder of this chapter explains the various directives that you can
+use to control the DVD writing.
+
+\label{DVDdirectives}
+\section{DVD Specific SD Directives} 
+\index[general]{Directives!DVD}
+\index[general]{DVD Specific SD Directives }
+
+The following directives are added to the Storage daemon's
+Device resource.
+
+\begin{description}
+
+\item [Requires Mount = {\it Yes|No}]
+   \index[general]{Requires Mount  }
+   You must set this directive to {\bf yes} for DVD-writers,  and to {\bf no} for
+   all other devices (tapes/files).  This directive indicates if the device
+   requires to be mounted using the {\bf Mount Command}.
+   To be able to write a DVD, the following directives must also be
+   defined: {\bf Mount Point},  {\bf Mount Command}, {\bf Unmount Command} and
+   {\bf Write Part Command}.
+
+\item [Mount Point = {\it directory}]
+   \index[general]{Mount Point}
+   Directory where the device can be mounted. 
+
+\item [Mount Command = {\it name-string}]
+   \index[general]{Mount Command}
+   Command that must be executed to mount the device. Although the
+   device is written directly, the mount command is necessary in
+   order to determine the free space left on the DVD. Before the command is 
+   executed, \%a is replaced with the Archive Device, and \%m with the Mount 
+   Point.
+
+   Most frequently, you will define it as follows:  
+
+\footnotesize
+\begin{verbatim}
+  Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
+\end{verbatim}
+\normalsize
+
+However, if you have defined a mount point in /etc/fstab, you might be
+able to use a mount command such as:
+
+\footnotesize
+\begin{verbatim}
+  Mount Command = "/bin/mount /media/dvd"
+\end{verbatim}
+\normalsize
+
+
+\item [Unmount Command = {\it name-string}]
+   \index[general]{Unmount Command}
+   Command that must be executed to unmount the device. Before the command  is
+   executed, \%a is replaced with the Archive Device, and \%m with the  Mount
+   Point.
+
+   Most frequently, you will define it as follows:  
+
+\footnotesize
+\begin{verbatim}
+  Unmount Command = "/bin/umount %m"
+\end{verbatim}
+\normalsize
+
+\item [Write Part Command = {\it name-string}]
+   \index[general]{Write Part Command  }
+   Command that must be executed to write a part to the device. Before the 
+   command is executed, \%a is replaced with the Archive Device, \%m with the 
+   Mount Point, \%e is replaced with 1 if we are writing the first part,
+   and with 0 otherwise, and \%v with the current part filename.
+
+   For a DVD, you will most frequently specify the Bacula supplied  {\bf
+   dvd-handler} script as follows:  
+
+\footnotesize
+\begin{verbatim}
+  Write Part Command = "/path/dvd-handler %a write %e %v"
+\end{verbatim}
+\normalsize
+
+  Where {\bf /path} is the path to your scripts install directory, and
+  dvd-handler is the Bacula supplied script file.  
+  This command will already be present, but commented out,
+  in the default bacula-sd.conf file. To use it, simply remove
+  the comment (\#) symbol.
+
+
+\item [Free Space Command = {\it name-string}]
+   \index[general]{Free Space Command  }
+   Command that must be executed to check how much free space is left on the 
+   device. Before the command is executed,\%a is replaced with the Archive
+   Device.
+
+   For a DVD, you will most frequently specify the Bacula supplied  {\bf
+   dvd-handler} script as follows:  
+
+\footnotesize
+\begin{verbatim}
+  Free Space Command = "/path/dvd-handler %a free"
+\end{verbatim}
+\normalsize
+
+  Where {\bf /path} is the path to your scripts install directory, and
+  dvd-handler is the Bacula supplied script file.
+  If you want to specify your own command, please look at the code in
+  dvd-handler to see what output Bacula expects from this command.
+  This command will already be present, but commented out,
+  in the default bacula-sd.conf file. To use it, simply remove
+  the comment (\#) symbol.
+
+  If you do not set it, Bacula will expect there is always free space on the
+  device. 
+
+\end{description}
+
+In addition to the directives specified above, you must also
+specify the other standard Device resource directives. Please see the
+sample DVD Device resource in the default bacula-sd.conf file. Be sure
+to specify the raw device name for {\bf Archive Device}. It should 
+be a name such as {\bf /dev/cdrom} or {\bf /media/cdrecorder} or
+{\bf /dev/dvd} depending on your system.  It will not be a name such
+as {\bf /mnt/cdrom}.
+
+Finally, for {\bf growisofs} to work, it must be able to lock
+a certain amount of memory in RAM.  If you have restrictions on
+this function, you may have failures.  Under {\bf bash}, you can
+set this with the following command:
+
+\footnotesize  
+\begin{verbatim}
+ulimit -l unlimited
+\end{verbatim}
+\normalsize
+
+\section{Edit Codes for DVD Directives} 
+\index[general]{Directives!DVD Edit Codes}
+\index[general]{Edit Codes for DVD Directives }
+
+Before submitting the {\bf Mount Command}, {\bf Unmount Command}, 
+{\bf Write Part Command}, or {\bf Free Space Command} directives 
+to the operating system, Bacula performs character substitution of the
+following characters:
+
+\footnotesize
+\begin{verbatim}
+    %% = %
+    %a = Archive device name
+    %e = erase (set if cannot mount and first part)
+    %n = part number
+    %m = mount point
+    %v = last part name (i.e. filename)
+\end{verbatim}
+\normalsize
+
+
+
+\section{DVD Specific Director Directives} 
+\index[general]{Directives!DVD}
+\index[general]{DVD Specific Director Directives }
+
+The following directives are added to the Director's Job resource.
+    
+\label{WritePartAfterJob}
+\begin{description}
+\item [Write Part After Job = \lt{}yes|no\gt{}]
+   \index[general]{Write Part After Job }
+   If this directive is set to {\bf yes} (default {\bf no}), the
+   Volume written to a temporary spool file for the current Job will
+   be written to the DVD as a new part file
+   will be created after the job is finished.  
+
+   It should be set to {\bf yes} when writing to devices that require a mount
+   (for example DVD), so you are sure that the current part, containing
+   this job's data, is written to the device, and that no data is left in
+   the temporary file on the hard disk.  However, on some media, like DVD+R
+   and DVD-R, a lot of space (about 10Mb) is lost everytime a part is
+   written.  So, if you run several jobs each after another, you could set
+   this directive to {\bf no} for all jobs, except the last one, to avoid
+   wasting too much space, but to ensure that the data is written to the
+   medium when all jobs are finished.
+
+   This directive is ignored for devices other than DVDs.
+\end{description}
+
+
+
+\label{DVDpoints}
+\section{Other Points}
+\index[general]{Points!Other }
+\index[general]{Other Points }
+
+\begin{itemize}
+\item Please be sure that you have any automatic DVD mounting
+   disabled before running Bacula -- this includes auto mounting
+   in /etc/fstab, hotplug, ...  If the DVD is automatically
+   mounted by the OS, it will cause problems when Bacula tries
+   to mount/unmount the DVD.
+\item Please be sure that you the directive {\bf Write Part After Job}
+   set to {\bf yes}, otherwise the last part of the data to be
+   written will be left in the DVD spool file and not written to
+   the DVD. The DVD will then be unreadable until this last part
+   is written.  If you have a series of jobs that are run one at
+   a time, you can turn this off until the last job is run.
+\item The current code is not designed to have multiple simultaneous
+   jobs writing to the DVD.  As a consequence, please ensure that
+   only one DVD backup job runs at any time.
+\item Writing and reading of DVD+RW seems to work quite reliably
+   provided you are using the patched dvd+rw-mediainfo programs.
+   On the other hand, we do not have enough information to ensure
+   that DVD-RW or other forms of DVDs work correctly.
+\item DVD+RW supports only about 1000 overwrites. Every time you
+   mount the filesystem read/write will count as one write. This can
+   add up quickly, so it is best to mount your DVD+RW filesystem read-only.
+   Bacula does not need the DVD to be mounted read-write, since it uses
+   the raw device for writing.
+\item Reformatting DVD+RW 10-20 times can apparently make the medium 
+   unusable. Normally you should not have to format or reformat
+   DVD+RW media. If it is necessary, current versions of growisofs will
+   do so automatically.
+\item We have had several problems writing to DVD-RWs (this does NOT
+  concern DVD+RW), because these media have two writing-modes: {\bf
+  Incremental Sequential} and {\bf Restricted Overwrite}.  Depending on
+  your device and the media you use, one of these modes may not work
+  correctly (e.g.  {\bf Incremental Sequential} does not work with my NEC
+  DVD-writer and Verbatim DVD-RW).
+
+  To retrieve the current mode of a DVD-RW, run:
+\begin{verbatim}
+  dvd+rw-mediainfo /dev/xxx
+\end{verbatim}
+  where you replace xxx with your DVD device name.
+
+  {\bf Mounted Media} line should give you the information.
+
+  To set the device to {\bf Restricted Overwrite} mode, run:
+\begin{verbatim}
+  dvd+rw-format /dev/xxx
+\end{verbatim}
+  If you want to set it back to the default {\bf Incremental Sequential} mode, run:
+\begin{verbatim}
+  dvd+rw-format -blank /dev/xxx
+\end{verbatim}
+
+\item Bacula only accepts to write to blank DVDs. To quickly blank a DVD+/-RW, run
+  this command:
+\begin{verbatim}
+  dd if=/dev/zero bs=1024 count=512 | growisofs -Z /dev/xxx=/dev/fd/0
+\end{verbatim}
+  Then, try to mount the device, if it cannot be mounted, it will be considered
+  as blank by Bacula, if it can be mounted, try a full blank (see below).
+
+\item If you wish to blank completely a DVD+/-RW, use the following:
+\begin{verbatim}
+  growisofs -Z /dev/xxx=/dev/zero
+\end{verbatim}
+  where you replace xxx with your DVD device name. However, note that this
+  blanks the whole DVD, which takes quite a long time (16 minutes on mine).
+\item DVD+RW and DVD-RW support only about 1000 overwrites (i.e. don't use the
+same medium for years if you don't want to have problems...).
+
+To write to the DVD the first time use:
+\begin{verbatim}
+  growisofs -Z /dev/xxx filename
+\end{verbatim}
+
+To add additional files (more parts use):
+
+\begin{verbatim}
+  growisofs -M /dev/xxx filename
+\end{verbatim}
+
+The option {\bf -use-the-force-luke=4gms} was added in growisofs 5.20 to
+override growisofs' behavior of always checking for the 4GB limit.
+Normally, this option is recommended for all Linux 2.6.8 kernels or
+greater, since these newer kernels can handle writing more than 4GB.
+See below for more details on this subject.
+
+\item For more information about DVD writing, please look at the
+\elink{dvd+rw-tools homepage}{http://fy.chalmers.se/~appro/linux/DVD+RW/}.
+
+\item According to bug \#912, bscan cannot read multi-volume DVDs.  This is
+on our TODO list, but unless someone submits a patch it is not likely to be
+done any time in the near future. (9 Sept 2007).
+
+\end{itemize}
diff --git a/docs/manuals/fr/misc/base/fdl.tex b/docs/manuals/fr/misc/base/fdl.tex
new file mode 100644 (file)
index 0000000..b46cd99
--- /dev/null
@@ -0,0 +1,485 @@
+% TODO: maybe get rid of centering
+
+\chapter{GNU Free Documentation License}
+\index[general]{GNU Free Documentation License}
+\index[general]{License!GNU Free Documentation}        
+
+\label{label_fdl}
+
+ \begin{center}
+
+       Version 1.2, November 2002
+
+
+ Copyright \copyright 2000,2001,2002  Free Software Foundation, Inc.
+ \bigskip
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  
+ \bigskip
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+\end{center}
+
+
+\begin{center}
+{\bf\large Preamble}
+\end{center}
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+\begin{center}
+{\Large\bf 1. APPLICABILITY AND DEFINITIONS}
+\end{center}
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The \textbf{"Document"}, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as \textbf{"you"}.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A \textbf{"Modified Version"} of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A \textbf{"Secondary Section"} is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject.  (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The \textbf{"Invariant Sections"} are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The \textbf{"Cover Texts"} are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A \textbf{"Transparent"} copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not "Transparent" is called \textbf{"Opaque"}.
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification.  Examples of
+transparent image formats include PNG, XCF and JPG.  Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The \textbf{"Title Page"} means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section \textbf{"Entitled XYZ"} means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as \textbf{"Acknowledgements"},
+\textbf{"Dedications"}, \textbf{"Endorsements"}, or \textbf{"History"}.)  
+To \textbf{"Preserve the Title"}
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+\begin{center}
+{\Large\bf 2. VERBATIM COPYING}
+\end{center}
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+\begin{center}
+{\Large\bf 3. COPYING IN QUANTITY}
+\end{center}
+
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+\begin{center}
+{\Large\bf 4. MODIFICATIONS}
+\end{center}
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+\begin{itemize}
+\item[A.] 
+   Use in the Title Page (and on the covers, if any) a title distinct
+   from that of the Document, and from those of previous versions
+   (which should, if there were any, be listed in the History section
+   of the Document).  You may use the same title as a previous version
+   if the original publisher of that version gives permission.
+   
+\item[B.]
+   List on the Title Page, as authors, one or more persons or entities
+   responsible for authorship of the modifications in the Modified
+   Version, together with at least five of the principal authors of the
+   Document (all of its principal authors, if it has fewer than five),
+   unless they release you from this requirement.
+   
+\item[C.]
+   State on the Title page the name of the publisher of the
+   Modified Version, as the publisher.
+   
+\item[D.]
+   Preserve all the copyright notices of the Document.
+   
+\item[E.]
+   Add an appropriate copyright notice for your modifications
+   adjacent to the other copyright notices.
+   
+\item[F.]
+   Include, immediately after the copyright notices, a license notice
+   giving the public permission to use the Modified Version under the
+   terms of this License, in the form shown in the Addendum below.
+   
+\item[G.]
+   Preserve in that license notice the full lists of Invariant Sections
+   and required Cover Texts given in the Document's license notice.
+   
+\item[H.]
+   Include an unaltered copy of this License.
+   
+\item[I.]
+   Preserve the section Entitled "History", Preserve its Title, and add
+   to it an item stating at least the title, year, new authors, and
+   publisher of the Modified Version as given on the Title Page.  If
+   there is no section Entitled "History" in the Document, create one
+   stating the title, year, authors, and publisher of the Document as
+   given on its Title Page, then add an item describing the Modified
+   Version as stated in the previous sentence.
+   
+\item[J.]
+   Preserve the network location, if any, given in the Document for
+   public access to a Transparent copy of the Document, and likewise
+   the network locations given in the Document for previous versions
+   it was based on.  These may be placed in the "History" section.
+   You may omit a network location for a work that was published at
+   least four years before the Document itself, or if the original
+   publisher of the version it refers to gives permission.
+   
+\item[K.]
+   For any section Entitled "Acknowledgements" or "Dedications",
+   Preserve the Title of the section, and preserve in the section all
+   the substance and tone of each of the contributor acknowledgements
+   and/or dedications given therein.
+   
+\item[L.]
+   Preserve all the Invariant Sections of the Document,
+   unaltered in their text and in their titles.  Section numbers
+   or the equivalent are not considered part of the section titles.
+   
+\item[M.]
+   Delete any section Entitled "Endorsements".  Such a section
+   may not be included in the Modified Version.
+   
+\item[N.]
+   Do not retitle any existing section to be Entitled "Endorsements"
+   or to conflict in title with any Invariant Section.
+   
+\item[O.]
+   Preserve any Warranty Disclaimers.
+\end{itemize}
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+\begin{center}
+{\Large\bf 5. COMBINING DOCUMENTS}
+\end{center}
+
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications".  You must delete all sections
+Entitled "Endorsements".
+
+\begin{center}
+{\Large\bf 6. COLLECTIONS OF DOCUMENTS}
+\end{center}
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+\begin{center}
+{\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS}
+\end{center}
+
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+\begin{center}
+{\Large\bf 8. TRANSLATION}
+\end{center}
+
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+\begin{center}
+{\Large\bf 9. TERMINATION}
+\end{center}
+
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+\begin{center}
+{\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE}
+\end{center}
+
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+\begin{center}
+{\Large\bf ADDENDUM: How to use this License for your documents}
+% TODO: this is too long for table of contents
+\end{center}
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+\bigskip
+\begin{quote}
+    Copyright \copyright  YEAR  YOUR NAME.
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the GNU Free Documentation License, Version 1.2
+    or any later version published by the Free Software Foundation;
+    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+    A copy of the license is included in the section entitled "GNU
+    Free Documentation License".
+\end{quote}
+\bigskip
+    
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+\bigskip
+\begin{quote}
+    with the Invariant Sections being LIST THEIR TITLES, with the
+    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+\end{quote}
+\bigskip
+    
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+%---------------------------------------------------------------------
diff --git a/docs/manuals/fr/misc/base/gpl.tex b/docs/manuals/fr/misc/base/gpl.tex
new file mode 100644 (file)
index 0000000..a368afc
--- /dev/null
@@ -0,0 +1,420 @@
+%%
+%%
+
+\section*{GNU General Public License}
+\label{GplChapter}
+\index[general]{GNU General Public License }
+\index[general]{License!GNU General Public }
+
+\elink{image of a Philosophical
+GNU}{http://www.gnu.org/graphics/philosophicalgnu.html} 
+
+\begin{itemize}
+\item 
+   \elink{What to do if you see a possible GPL
+   violation}{http://www.gnu.org/copyleft/gpl-violation.html}  
+\item 
+   \elink{Translations of the
+   GPL}{http://www.gnu.org/copyleft/copyleft.html\#translations} 
+\end{itemize}
+
+
+\section{Table of Contents}
+\index[general]{Table of Contents }
+\index[general]{Contents!Table of }
+
+\begin{itemize}
+\item 
+   \label{TOC1}
+   \ilink{GNU GENERAL PUBLIC LICENSE}{SEC1}  
+
+\begin{itemize}
+\item 
+   \label{TOC2}
+   \ilink{Preamble}{SEC2}  
+\item 
+   \label{TOC3}
+   \ilink{TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+MODIFICATION}{SEC3}  
+\item 
+   \label{TOC4}
+   \ilink{How to Apply These Terms to Your New Programs}{SEC4} 
+\end{itemize}
+
+\end{itemize}
+
+
+\section{GNU GENERAL PUBLIC LICENSE}       
+\label{SEC1}
+\index[general]{GNU GENERAL PUBLIC LICENSE }
+\index[general]{LICENSE!GNU GENERAL PUBLIC }
+
+Version 2, June 1991 
+
+\footnotesize
+\begin{verbatim}
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+\end{verbatim}
+\normalsize
+
+\section{Preamble}
+\label{SEC2}
+\index[general]{Preamble }
+
+The licenses for most software are designed to take away your freedom to share
+and change it. By contrast, the GNU General Public License is intended to
+guarantee your freedom to share and change free software\verb:--:to make sure the
+software is free for all its users. This General Public License applies to
+most of the Free Software Foundation's software and to any other program whose
+authors commit to using it. (Some other Free Software Foundation software is
+covered by the GNU Library General Public License instead.) You can apply it
+to your programs, too. 
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom to
+distribute copies of free software (and charge for this service if you wish),
+that you receive source code or can get it if you want it, that you can change
+the software or use pieces of it in new free programs; and that you know you
+can do these things. 
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These
+restrictions translate to certain responsibilities for you if you distribute
+copies of the software, or if you modify it. 
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must
+make sure that they, too, receive or can get the source code. And you must
+show them these terms so they know their rights. 
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software. 
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients to
+know that what they have is not the original, so that any problems introduced
+by others will not reflect on the original authors' reputations. 
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program proprietary.
+To prevent this, we have made it clear that any patent must be licensed for
+everyone's free use or not licensed at all. 
+
+The precise terms and conditions for copying, distribution and modification
+follow. 
+
+\section{TERMS AND CONDITIONS}
+\label{SEC3}
+\index[general]{CONDITIONS!TERMS AND }
+\index[general]{TERMS AND CONDITIONS }
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+{\bf 0.} This License applies to any program or other work which contains a
+notice placed by the copyright holder saying it may be distributed under the
+terms of this General Public License. The "Program", below, refers to any
+such program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter,
+translation is included without limitation in the term "modification".) Each
+licensee is addressed as "you". 
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its
+contents constitute a work based on the Program (independent of having been
+made by running the Program). Whether that is true depends on what the Program
+does. 
+
+{\bf 1.} You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program. 
+
+You may charge a fee for the physical act of transferring a copy, and you may
+at your option offer warranty protection in exchange for a fee. 
+
+{\bf 2.} You may modify your copy or copies of the Program or any portion of
+it, thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions: 
+
+\begin{itemize}
+\item {\bf a)} You must cause the modified files to carry prominent  notices
+   stating that you changed the files and the date of any change.  
+
+\item {\bf b)} You must cause any work that you distribute or  publish, that
+   in whole or in part contains or is derived from the Program or  any part
+   thereof, to be licensed as a whole at no charge to all third parties  under
+   the terms of this License.  
+
+\item {\bf c)} If the modified program normally reads commands  interactively
+   when run, you must cause it, when started running for such  interactive use in
+   the most ordinary way, to print or display an announcement  including an
+   appropriate copyright notice and a notice that there is no  warranty (or else,
+   saying that you provide a warranty) and that users may  redistribute the
+   program under these conditions, and telling the user how to  view a copy of
+   this License. (Exception: if the Program itself is interactive  but does not
+   normally print such an announcement, your work based on the  Program is not
+   required to print an announcement.) 
+\end{itemize}
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be reasonably
+considered independent and separate works in themselves, then this License,
+and its terms, do not apply to those sections when you distribute them as
+separate works. But when you distribute the same sections as part of a whole
+which is a work based on the Program, the distribution of the whole must be on
+the terms of this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it. 
+
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise the
+right to control the distribution of derivative or collective works based on
+the Program. 
+
+In addition, mere aggregation of another work not based on the Program with
+the Program (or with a work based on the Program) on a volume of a storage or
+distribution medium does not bring the other work under the scope of this
+License. 
+
+{\bf 3.} You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1 and
+2 above provided that you also do one of the following: 
+
+\begin{itemize}
+\item {\bf a)} Accompany it with the complete corresponding  machine-readable
+   source code, which must be distributed under the terms of  Sections 1 and 2
+   above on a medium customarily used for software interchange;  or,  
+
+\item {\bf b)} Accompany it with a written offer, valid for at least  three
+   years, to give any third party, for a charge no more than your cost of 
+   physically performing source distribution, a complete machine-readable copy of
+   the corresponding source code, to be distributed under the terms of Sections
+   1  and 2 above on a medium customarily used for software interchange; or,  
+
+\item {\bf c)} Accompany it with the information you received as to  the offer
+   to distribute corresponding source code. (This alternative is  allowed only
+   for noncommercial distribution and only if you received the  program in object
+   code or executable form with such an offer, in accord with  Subsection b
+   above.) 
+\end{itemize}
+
+The source code for a work means the preferred form of the work for making
+modifications to it. For an executable work, complete source code means all
+the source code for all modules it contains, plus any associated interface
+definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel, and
+so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable. 
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code. 
+
+{\bf 4.} You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt otherwise to
+copy, modify, sublicense or distribute the Program is void, and will
+automatically terminate your rights under this License. However, parties who
+have received copies, or rights, from you under this License will not have
+their licenses terminated so long as such parties remain in full compliance. 
+
+{\bf 5.} You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or distribute
+the Program or its derivative works. These actions are prohibited by law if
+you do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance of
+this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it. 
+
+{\bf 6.} Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License. 
+
+{\bf 7.} If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or otherwise)
+that contradict the conditions of this License, they do not excuse you from
+the conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program. 
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances. 
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that
+choice. 
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License. 
+
+{\bf 8.} If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the original
+copyright holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In
+such case, this License incorporates the limitation as if written in the body
+of this License. 
+
+{\bf 9.} The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address
+new problems or concerns. 
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any later
+version", you have the option of following the terms and conditions either of
+that version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of this License,
+you may choose any version ever published by the Free Software Foundation. 
+
+{\bf 10.} If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author to
+ask for permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally. 
+
+{\bf NO WARRANTY} 
+
+{\bf 11.} BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE
+THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
+IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
+THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
+PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
+CORRECTION. 
+
+{\bf 12.} IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
+LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
+THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES. 
+
+END OF TERMS AND CONDITIONS 
+
+\section{How to Apply These Terms to Your New Programs}
+\label{SEC4}
+\index[general]{Programs!How to Apply These Terms to Your New }
+\index[general]{How to Apply These Terms to Your New Programs }
+
+If you develop a new program, and you want it to be of the greatest possible
+use to the public, the best way to achieve this is to make it free software
+which everyone can redistribute and change under these terms. 
+
+To do so, attach the following notices to the program. It is safest to attach
+them to the start of each source file to most effectively convey the exclusion
+of warranty; and each file should have at least the "copyright" line and a
+pointer to where the full notice is found. 
+
+\footnotesize
+\begin{verbatim}
+{\em one line to give the program's name and an idea of what it does.}
+Copyright (C) {\em yyyy}  {\em name of author}
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+02110-1301  USA
+\end{verbatim}
+\normalsize
+
+Also add information on how to contact you by electronic and paper mail. 
+
+If the program is interactive, make it output a short notice like this when it
+starts in an interactive mode: 
+
+\footnotesize
+\begin{verbatim}
+Gnomovision version 69, Copyright (C) {\em year} {\em name of author}
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
+type `show w'.  This is free software, and you are welcome
+to redistribute it under certain conditions; type `show c'
+for details.
+\end{verbatim}
+\normalsize
+
+The hypothetical commands {\tt `show w'} and {\tt `show c'} should show the
+appropriate parts of the General Public License. Of course, the commands you
+use may be called something other than {\tt `show w'} and {\tt `show c'}; they
+could even be mouse-clicks or menu items\verb:--:whatever suits your program. 
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names: 
+
+\footnotesize
+\begin{verbatim}
+Yoyodyne, Inc., hereby disclaims all copyright
+interest in the program `Gnomovision'
+(which makes passes at compilers) written
+by James Hacker.
+{\em signature of Ty Coon}, 1 April 1989
+Ty Coon, President of Vice
+\end{verbatim}
+\normalsize
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General Public
+License instead of this License. 
+Return to 
+\elink{GNU's home page}{http://www.gnu.org/home.html}. 
+
+FSF \& GNU inquiries \& questions to 
+\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. Other 
+\elink{ways to contact}{http://www.gnu.org/home.html\#ContactInfo} the FSF. 
+
+Comments on these web pages to 
+\elink{webmasters@www.gnu.org}{mailto:webmasters@www.gnu.org}, send other
+questions to 
+\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. 
+
+Copyright notice above.
+Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+Boston, MA  02110-1301  USA
+
+Updated: 3 Jan 2000 rms 
diff --git a/docs/manuals/fr/misc/base/internaldb.tex b/docs/manuals/fr/misc/base/internaldb.tex
new file mode 100644 (file)
index 0000000..65cd0ea
--- /dev/null
@@ -0,0 +1,76 @@
+%%
+%%
+
+\chapter{The internal database is not supported, please do not
+use it.}
+\label{InternalDbChapter}
+\index[general]{Use it!The internal database is not supported please
+do not }
+\index[general]{The internal database is not supported, please do not
+use it. }
+
+\section{Internal Bacula Database}
+\index[general]{Internal Bacula Database }
+\index[general]{Database!Internal Bacula }
+
+Previously it was intended to be used primarily by Bacula developers for
+testing; although SQLite is also a good choice for this. We do not recommend
+its use in general. 
+
+This database is simplistic in that it consists entirely of Bacula's internal
+structures appended sequentially to a file. Consequently, it is in most cases
+inappropriate for sites with many clients or systems with large numbers of
+files, or long-term production environments. 
+
+Below, you will find a table comparing the features available with SQLite and
+MySQL and with the internal Bacula database. At the current time, you cannot
+dynamically switch from one to the other, but must rebuild the Bacula source
+code. If you wish to experiment with both, it is possible to build both
+versions of Bacula and install them into separate directories. 
+
+\addcontentsline{lot}{table}{SQLite vs MySQL Database Comparison}
+\begin{longtable}{|l|l|l|}
+ \hline 
+\multicolumn{1}{|c| }{\bf Feature } & \multicolumn{1}{c| }{\bf SQLite or MySQL
+ } & \multicolumn{1}{c| }{\bf Bacula  } \\
+ \hline 
+{Job Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Media Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{FileName Record  } & {Yes  } & {No  } \\
+ \hline 
+{File Record  } & {Yes  } & {No  } \\
+ \hline 
+{FileSet Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Pool Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Client Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{JobMedia Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{List Job Records  } & {Yes  } & {Yes  } \\
+ \hline 
+{List Media Records  } & {Yes  } & {Yes  } \\
+ \hline 
+{List Pool Records  } & {Yes  } & {Yes  } \\
+ \hline 
+{List JobMedia Records } & {Yes  } & {Yes  } \\
+ \hline 
+{Delete Pool Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Delete Media Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Update Pool Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Implement Verify  } & {Yes  } & {No  } \\
+ \hline 
+{MD5 Signatures  } & {Yes  } & {No }
+\\ \hline 
+
+\end{longtable}
+
+In addition, since there is no SQL available, the Console commands: {\bf
+sqlquery}, {\bf query}, {\bf retention}, and any other command that directly
+uses SQL are not available with the Internal database. 
diff --git a/docs/manuals/fr/misc/base/lesser.tex b/docs/manuals/fr/misc/base/lesser.tex
new file mode 100644 (file)
index 0000000..bc3c312
--- /dev/null
@@ -0,0 +1,573 @@
+%%
+%%
+
+\section*{GNU Lesser General Public License}
+\label{LesserChapter}
+\index[general]{GNU Lesser General Public License }
+\index[general]{License!GNU Lesser General Public }
+
+\elink{image of a Philosophical GNU}
+{http://www.gnu.org/graphics/philosophicalgnu.html} [  
+\elink{English}{http://www.gnu.org/copyleft/lesser.html} | 
+\elink{Japanese}{http://www.gnu.org/copyleft/lesser.ja.html} ] 
+
+\begin{itemize}
+\item 
+   \elink{Why you shouldn't use the Lesser GPL for your next
+   library}{http://www.gnu.org/philosophy/why-not-lgpl.html}  
+\item 
+   \elink{What to do if you see a possible LGPL
+   violation}{http://www.gnu.org/copyleft/gpl-violation.html}
+\item 
+   \elink{Translations of the LGPL}
+{http://www.gnu.org/copyleft/copyleft.html\#translationsLGPL}  
+\item The GNU Lesser General Public License as a  
+   \elink{text file}{http://www.gnu.org/copyleft/lesser.txt}  
+\item The GNU Lesser General Public License as a  
+   \elink{Texinfo}{http://www.gnu.org/copyleft/lesser.texi} file 
+   \end{itemize}
+
+
+This GNU Lesser General Public License counts as the successor of the GNU
+Library General Public License. For an explanation of why this change was
+necessary, read the 
+\elink{Why you shouldn't use the Lesser GPL for your next
+library}{http://www.gnu.org/philosophy/why-not-lgpl.html} article. 
+
+\section{Table of Contents}
+\index[general]{Table of Contents }
+\index[general]{Contents!Table of }
+
+\begin{itemize}
+\item 
+   \label{TOC12}
+   \ilink{GNU LESSER GENERAL PUBLIC LICENSE}{SEC12} 
+
+\begin{itemize}
+\item 
+   \label{TOC23}
+   \ilink{Preamble}{SEC23} 
+\item 
+   \label{TOC34}
+   \ilink{TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+MODIFICATION}{SEC34} 
+\item 
+   \label{TOC45}
+   \ilink{How to Apply These Terms to Your New Libraries}{SEC45} 
+\end{itemize}
+
+\end{itemize}
+
+
+\section{GNU LESSER GENERAL PUBLIC LICENSE}
+\label{SEC12}
+\index[general]{LICENSE!GNU LESSER GENERAL PUBLIC }
+\index[general]{GNU LESSER GENERAL PUBLIC LICENSE }
+
+Version 2.1, February 1999 
+
+\footnotesize
+\begin{verbatim}
+Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+\end{verbatim}
+\normalsize
+
+\section{Preamble}
+\label{SEC23}
+\index[general]{Preamble }
+
+The licenses for most software are designed to take away your freedom to share
+and change it. By contrast, the GNU General Public Licenses are intended to
+guarantee your freedom to share and change free software\verb:--:to make sure the
+software is free for all its users. 
+
+This license, the Lesser General Public License, applies to some specially
+designated software packages\verb:--:typically libraries\verb:--:of the Free Software
+Foundation and other authors who decide to use it. You can use it too, but we
+suggest you first think carefully about whether this license or the ordinary
+General Public License is the better strategy to use in any particular case,
+based on the explanations below. 
+
+When we speak of free software, we are referring to freedom of use, not price.
+Our General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish); that you receive source code or can get it if you want it; that you
+can change the software and use pieces of it in new free programs; and that
+you are informed that you can do these things. 
+
+To protect your rights, we need to make restrictions that forbid distributors
+to deny you these rights or to ask you to surrender these rights. These
+restrictions translate to certain responsibilities for you if you distribute
+copies of the library or if you modify it. 
+
+For example, if you distribute copies of the library, whether gratis or for a
+fee, you must give the recipients all the rights that we gave you. You must
+make sure that they, too, receive or can get the source code. If you link
+other code with the library, you must provide complete object files to the
+recipients, so that they can relink them with the library after making changes
+to the library and recompiling it. And you must show them these terms so they
+know their rights. 
+
+We protect your rights with a two-step method: (1) we copyright the library,
+and (2) we offer you this license, which gives you legal permission to copy,
+distribute and/or modify the library. 
+
+To protect each distributor, we want to make it very clear that there is no
+warranty for the free library. Also, if the library is modified by someone
+else and passed on, the recipients should know that what they have is not the
+original version, so that the original author's reputation will not be
+affected by problems that might be introduced by others. 
+
+Finally, software patents pose a constant threat to the existence of any free
+program. We wish to make sure that a company cannot effectively restrict the
+users of a free program by obtaining a restrictive license from a patent
+holder. Therefore, we insist that any patent license obtained for a version of
+the library must be consistent with the full freedom of use specified in this
+license. 
+
+Most GNU software, including some libraries, is covered by the ordinary GNU
+General Public License. This license, the GNU Lesser General Public License,
+applies to certain designated libraries, and is quite different from the
+ordinary General Public License. We use this license for certain libraries in
+order to permit linking those libraries into non-free programs. 
+
+When a program is linked with a library, whether statically or using a shared
+library, the combination of the two is legally speaking a combined work, a
+derivative of the original library. The ordinary General Public License
+therefore permits such linking only if the entire combination fits its
+criteria of freedom. The Lesser General Public License permits more lax
+criteria for linking other code with the library. 
+
+We call this license the "Lesser" General Public License because it does
+Less to protect the user's freedom than the ordinary General Public License.
+It also provides other free software developers Less of an advantage over
+competing non-free programs. These disadvantages are the reason we use the
+ordinary General Public License for many libraries. However, the Lesser
+license provides advantages in certain special circumstances. 
+
+For example, on rare occasions, there may be a special need to encourage the
+widest possible use of a certain library, so that it becomes a de-facto
+standard. To achieve this, non-free programs must be allowed to use the
+library. A more frequent case is that a free library does the same job as
+widely used non-free libraries. In this case, there is little to gain by
+limiting the free library to free software only, so we use the Lesser General
+Public License. 
+
+In other cases, permission to use a particular library in non-free programs
+enables a greater number of people to use a large body of free software. For
+example, permission to use the GNU C Library in non-free programs enables many
+more people to use the whole GNU operating system, as well as its variant, the
+GNU/Linux operating system. 
+
+Although the Lesser General Public License is Less protective of the users'
+freedom, it does ensure that the user of a program that is linked with the
+Library has the freedom and the wherewithal to run that program using a
+modified version of the Library. 
+
+The precise terms and conditions for copying, distribution and modification
+follow. Pay close attention to the difference between a "work based on the
+library" and a "work that uses the library". The former contains code
+derived from the library, whereas the latter must be combined with the library
+in order to run. 
+
+\section{TERMS AND CONDITIONS}
+\label{SEC34}
+\index[general]{CONDITIONS!TERMS AND }
+\index[general]{TERMS AND CONDITIONS }
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+{\bf 0.} This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or other
+authorized party saying it may be distributed under the terms of this Lesser
+General Public License (also called "this License"). Each licensee is
+addressed as "you". 
+
+A "library" means a collection of software functions and/or data prepared so
+as to be conveniently linked with application programs (which use some of
+those functions and data) to form executables. 
+
+The "Library", below, refers to any such software library or work which has
+been distributed under these terms. A "work based on the Library" means
+either the Library or any derivative work under copyright law: that is to say,
+a work containing the Library or a portion of it, either verbatim or with
+modifications and/or translated straightforwardly into another language.
+(Hereinafter, translation is included without limitation in the term
+"modification".) 
+
+"Source code" for a work means the preferred form of the work for making
+modifications to it. For a library, complete source code means all the source
+code for all modules it contains, plus any associated interface definition
+files, plus the scripts used to control compilation and installation of the
+library. 
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running a program
+using the Library is not restricted, and output from such a program is covered
+only if its contents constitute a work based on the Library (independent of
+the use of the Library in a tool for writing it). Whether that is true depends
+on what the Library does and what the program that uses the Library does. 
+
+{\bf 1.} You may copy and distribute verbatim copies of the Library's complete
+source code as you receive it, in any medium, provided that you conspicuously
+and appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and distribute a copy of this License
+along with the Library. 
+
+You may charge a fee for the physical act of transferring a copy, and you may
+at your option offer warranty protection in exchange for a fee. 
+
+{\bf 2.} You may modify your copy or copies of the Library or any portion of
+it, thus forming a work based on the Library, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions: 
+
+\begin{itemize}
+\item {\bf a)}  The modified work must itself be a software library.  
+\item {\bf b)}  You must cause the files modified to carry prominent notices 
+   stating that you changed the files and the date of any change.  
+\item {\bf c)}  You must cause the whole of the work to be licensed at no 
+   charge to all third parties under the terms of this License.  
+\item {\bf d)}  If a facility in the modified Library refers to a function or
+   a  table of data to be supplied by an application program that uses  the
+   facility, other than as an argument passed when the facility  is invoked, then
+you must make a good faith effort to ensure that,  in the event an application
+does not supply such function or  table, the facility still operates, and
+performs whatever part of  its purpose remains meaningful.  
+
+(For example, a function in a library to compute square roots has  a purpose
+that is entirely well-defined independent of the  application. Therefore,
+Subsection 2d requires that any  application-supplied function or table used
+by this function must  be optional: if the application does not supply it, the
+square  root function must still compute square roots.)  
+
+These requirements apply to the modified work as a whole. If  identifiable
+sections of that work are not derived from the Library,  and can be reasonably
+considered independent and separate works in  themselves, then this License,
+and its terms, do not apply to those  sections when you distribute them as
+separate works. But when you  distribute the same sections as part of a whole
+which is a work based  on the Library, the distribution of the whole must be
+on the terms of  this License, whose permissions for other licensees extend to
+the  entire whole, and thus to each and every part regardless of who wrote 
+it.  
+
+Thus, it is not the intent of this section to claim rights or contest  your
+rights to work written entirely by you; rather, the intent is to  exercise the
+right to control the distribution of derivative or  collective works based on
+the Library.  
+
+In addition, mere aggregation of another work not based on the Library  with
+the Library (or with a work based on the Library) on a volume of  a storage or
+distribution medium does not bring the other work under  the scope of this
+License. 
+\end{itemize}
+
+{\bf 3.} You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do this,
+you must alter all the notices that refer to this License, so that they refer
+to the ordinary GNU General Public License, version 2, instead of to this
+License. (If a newer version than version 2 of the ordinary GNU General Public
+License has appeared, then you can specify that version instead if you wish.)
+Do not make any other change in these notices. 
+
+Once this change is made in a given copy, it is irreversible for that copy, so
+the ordinary GNU General Public License applies to all subsequent copies and
+derivative works made from that copy. 
+
+This option is useful when you wish to copy part of the code of the Library
+into a program that is not a library. 
+
+{\bf 4.} You may copy and distribute the Library (or a portion or derivative
+of it, under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you accompany it with the complete
+corresponding machine-readable source code, which must be distributed under
+the terms of Sections 1 and 2 above on a medium customarily used for software
+interchange. 
+
+If distribution of object code is made by offering access to copy from a
+designated place, then offering equivalent access to copy the source code from
+the same place satisfies the requirement to distribute the source code, even
+though third parties are not compelled to copy the source along with the
+object code. 
+
+{\bf 5.} A program that contains no derivative of any portion of the Library,
+but is designed to work with the Library by being compiled or linked with it,
+is called a "work that uses the Library". Such a work, in isolation, is not
+a derivative work of the Library, and therefore falls outside the scope of
+this License. 
+
+However, linking a "work that uses the Library" with the Library creates an
+executable that is a derivative of the Library (because it contains portions
+of the Library), rather than a "work that uses the library". The executable
+is therefore covered by this License. Section 6 states terms for distribution
+of such executables. 
+
+When a "work that uses the Library" uses material from a header file that is
+part of the Library, the object code for the work may be a derivative work of
+the Library even though the source code is not. Whether this is true is
+especially significant if the work can be linked without the Library, or if
+the work is itself a library. The threshold for this to be true is not
+precisely defined by law. 
+
+If such an object file uses only numerical parameters, data structure layouts
+and accessors, and small macros and small inline functions (ten lines or less
+in length), then the use of the object file is unrestricted, regardless of
+whether it is legally a derivative work. (Executables containing this object
+code plus portions of the Library will still fall under Section 6.) 
+
+Otherwise, if the work is a derivative of the Library, you may distribute the
+object code for the work under the terms of Section 6. Any executables
+containing that work also fall under Section 6, whether or not they are linked
+directly with the Library itself. 
+
+{\bf 6.} As an exception to the Sections above, you may also combine or link a
+"work that uses the Library" with the Library to produce a work containing
+portions of the Library, and distribute that work under terms of your choice,
+provided that the terms permit modification of the work for the customer's own
+use and reverse engineering for debugging such modifications. 
+
+You must give prominent notice with each copy of the work that the Library is
+used in it and that the Library and its use are covered by this License. You
+must supply a copy of this License. If the work during execution displays
+copyright notices, you must include the copyright notice for the Library among
+them, as well as a reference directing the user to the copy of this License.
+Also, you must do one of these things: 
+
+\begin{itemize}
+\item {\bf a)} Accompany the work with the complete corresponding 
+   machine-readable source code for the Library including whatever  changes were
+   used in the work (which must be distributed under  Sections 1 and 2 above);
+and, if the work is an executable linked  with the Library, with the complete
+machine-readable "work that  uses the Library", as object code and/or source
+code, so that the  user can modify the Library and then relink to produce a
+modified  executable containing the modified Library. (It is understood  that
+the user who changes the contents of definitions files in the  Library will
+not necessarily be able to recompile the application  to use the modified
+definitions.)  
+\item {\bf b)} Use a suitable shared library mechanism for linking with the 
+   Library. A suitable mechanism is one that (1) uses at run time a  copy of the
+   library already present on the user's computer system,  rather than copying
+library functions into the executable, and (2)  will operate properly with a
+modified version of the library, if  the user installs one, as long as the
+modified version is  interface-compatible with the version that the work was
+made with.  
+\item {\bf c)} Accompany the work with a written offer, valid for at  least
+   three years, to give the same user the materials  specified in Subsection 6a,
+   above, for a charge no more  than the cost of performing this distribution.  
+\item {\bf d)} If distribution of the work is made by offering access to copy 
+   from a designated place, offer equivalent access to copy the above  specified
+   materials from the same place.  
+\item {\bf e)} Verify that the user has already received a copy of these 
+   materials or that you have already sent this user a copy. 
+   \end{itemize}
+
+For an executable, the required form of the "work that uses the Library"
+must include any data and utility programs needed for reproducing the
+executable from it. However, as a special exception, the materials to be
+distributed need not include anything that is normally distributed (in either
+source or binary form) with the major components (compiler, kernel, and so on)
+of the operating system on which the executable runs, unless that component
+itself accompanies the executable. 
+
+It may happen that this requirement contradicts the license restrictions of
+other proprietary libraries that do not normally accompany the operating
+system. Such a contradiction means you cannot use both them and the Library
+together in an executable that you distribute. 
+
+{\bf 7.} You may place library facilities that are a work based on the Library
+side-by-side in a single library together with other library facilities not
+covered by this License, and distribute such a combined library, provided that
+the separate distribution of the work based on the Library and of the other
+library facilities is otherwise permitted, and provided that you do these two
+things: 
+
+\begin{itemize}
+\item {\bf a)} Accompany the combined library with a copy of the same work 
+   based on the Library, uncombined with any other library  facilities. This must
+   be distributed under the terms of the  Sections above.  
+\item {\bf b)} Give prominent notice with the combined library of the fact 
+   that part of it is a work based on the Library, and explaining  where to find
+   the accompanying uncombined form of the same work. 
+\end{itemize}
+
+{\bf 8.} You may not copy, modify, sublicense, link with, or distribute the
+Library except as expressly provided under this License. Any attempt otherwise
+to copy, modify, sublicense, link with, or distribute the Library is void, and
+will automatically terminate your rights under this License. However, parties
+who have received copies, or rights, from you under this License will not have
+their licenses terminated so long as such parties remain in full compliance. 
+
+{\bf 9.} You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or distribute
+the Library or its derivative works. These actions are prohibited by law if
+you do not accept this License. Therefore, by modifying or distributing the
+Library (or any work based on the Library), you indicate your acceptance of
+this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Library or works based on it. 
+
+{\bf 10.} Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the original
+licensor to copy, distribute, link with or modify the Library subject to these
+terms and conditions. You may not impose any further restrictions on the
+recipients' exercise of the rights granted herein. You are not responsible for
+enforcing compliance by third parties with this License. 
+
+{\bf 11.} If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or otherwise)
+that contradict the conditions of this License, they do not excuse you from
+the conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Library at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Library by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library. 
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply, and
+the section as a whole is intended to apply in other circumstances. 
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that
+choice. 
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License. 
+
+{\bf 12.} If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the original
+copyright holder who places the Library under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In
+such case, this License incorporates the limitation as if written in the body
+of this License. 
+
+{\bf 13.} The Free Software Foundation may publish revised and/or new versions
+of the Lesser General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns. 
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and "any later
+version", you have the option of following the terms and conditions either of
+that version or of any later version published by the Free Software
+Foundation. If the Library does not specify a license version number, you may
+choose any version ever published by the Free Software Foundation. 
+
+{\bf 14.} If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these, write to
+the author to ask for permission. For software which is copyrighted by the
+Free Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally. 
+
+{\bf NO WARRANTY} 
+
+{\bf 15.} BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE
+THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
+IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
+THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY
+PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
+CORRECTION. 
+
+{\bf 16.} IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO
+LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
+THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES. 
+
+END OF TERMS AND CONDITIONS 
+
+\section{How to Apply These Terms to Your New Libraries}
+\label{SEC45}
+\index[general]{Libraries!How to Apply These Terms to Your New }
+\index[general]{How to Apply These Terms to Your New Libraries }
+
+
+If you develop a new library, and you want it to be of the greatest possible
+use to the public, we recommend making it free software that everyone can
+redistribute and change. You can do so by permitting redistribution under
+these terms (or, alternatively, under the terms of the ordinary General Public
+License). 
+
+To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found. 
+
+\footnotesize
+\begin{verbatim}
+{\it one line to give the library's name and an idea of what it does.}
+Copyright (C) {\it year}  {\it name of author}
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
+USA
+\end{verbatim}
+\normalsize
+
+Also add information on how to contact you by electronic and paper mail. 
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names: 
+
+\footnotesize
+\begin{verbatim}
+Yoyodyne, Inc., hereby disclaims all copyright interest in
+the library "Frob" (a library for tweaking knobs) written
+by James Random Hacker.
+{\it signature of Ty Coon}, 1 April 1990
+Ty Coon, President of Vice
+\end{verbatim}
+\normalsize
+
+That's all there is to it! 
+Return to 
+\elink{GNU's home page}{http://www.gnu.org/home.html}. 
+
+FSF \& GNU inquiries \& questions to 
+\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. Other 
+\elink{ways to contact}{http://www.gnu.org/home.html\#ContactInfo} the FSF. 
+
+Comments on these web pages to 
+\elink{webmasters@www.gnu.org}{mailto:webmasters@www.gnu.org}, send other
+questions to 
+\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. 
+
+Copyright notice above.
+Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+Boston, MA  02110-1301  USA
+USA 
+
+Updated: 27 Nov 2000 paulv 
diff --git a/docs/manuals/fr/misc/base/license.tex b/docs/manuals/fr/misc/base/license.tex
new file mode 100644 (file)
index 0000000..744cea2
--- /dev/null
@@ -0,0 +1,113 @@
+%%
+%%
+
+\chapter{Bacula Copyright, Trademark, and Licenses}
+\label{LicenseChapter}
+\index[general]{Licenses!Bacula Copyright Trademark}
+\index[general]{Bacula Copyright, Trademark, and Licenses}
+
+There are a number of different licenses that are used in Bacula. 
+If you have a printed copy of this manual, the details of each of
+the licenses referred to in this chapter can be found in the
+online version of the manual at
+\elink{http://www.bacula.org}{http://www.bacula.org}.
+
+\section{FDL}
+\index[general]{FDL }
+
+The GNU Free Documentation License (FDL) is used for this manual,
+which is a free and open license. This means that you may freely   
+reproduce it and even make changes to it. However, rather than
+distribute your own version of this manual, we would much prefer
+if you would send any corrections or changes to the Bacula project.
+The most recent version of the manual can always be found online
+at \elink{http://www.bacula.org}{http://www.bacula.org}.
+
+\section{GPL}
+\index[general]{GPL }
+
+The vast bulk of the source code is released under the 
+\ilink{GNU General Public License version 2.}{GplChapter}.
+
+Most of this code is copyrighted: Copyright \copyright 2000-2009
+Free Software Foundation Europe e.V.
+
+Portions may be copyrighted by other people.  These files are released
+under different licenses which are compatible with the Bacula GPLv2 license.
+
+\section{LGPL}
+\index[general]{LGPL }
+
+Some of the Bacula library source code is released under the 
+\ilink{GNU Lesser General Public License.}{LesserChapter} This
+permits third parties to use these parts of our code in their proprietary
+programs to interface to Bacula. 
+
+\section{Public Domain}
+\index[general]{Domain!Public }
+\index[general]{Public Domain }
+
+Some of the Bacula code, or code that Bacula references, has been released
+to the public domain.  E.g.  md5.c, SQLite.
+
+\section{Trademark}
+\index[general]{Trademark }
+
+Bacula\raisebox{.6ex}{\textsuperscript{\textregistered}} is a registered
+trademark of Kern Sibbald.
+
+We have trademarked the Bacula name to ensure that any program using the
+name Bacula will be exactly compatible with the program that we have
+released.  The use of the name Bacula is restricted to software systems
+that agree exactly with the program presented here. If you have made
+modifications to the Bacula source code that alter in any significant
+way the way the program functions, you may not distribute it using the
+Bacula name.
+
+\section{Fiduciary License Agreement}
+\index[general]{Fiduciary License Agreement }
+Developers who have contributed significant changes to the Bacula code
+should have signed a Fiduciary License Agreement (FLA), which 
+guarantees them the right to use the code they have developed, and also
+ensures that the Free Software Foundation Europe (and thus the Bacula
+project) has the rights to the code.  This Fiduciary License Agreement
+is found on the Bacula web site at:
+
+\elink{http://www.bacula.org/en/FLA-bacula.en.pdf}{http://www.bacula.org/en/FLA-bacula.en.pdf}
+
+and if you are submitting code, you should fill it out then sent to:
+
+\begin{quote}
+     Kern Sibbald \\
+     Cotes-de-Montmoiret 9 \\
+     1012 Lausanne \\
+     Switzerland \\
+\end{quote}
+
+When you send in such a
+complete document, please notify me: kern at sibbald dot com.
+
+
+\section{Disclaimer}
+\index[general]{Disclaimer }
+
+NO WARRANTY 
+
+BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
+PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
+PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
+COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
+PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
+OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
+DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR
+A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
+HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 
diff --git a/docs/manuals/fr/misc/base/misc.tex b/docs/manuals/fr/misc/base/misc.tex
new file mode 100644 (file)
index 0000000..59351e5
--- /dev/null
@@ -0,0 +1,64 @@
+%%
+%%
+%%  The following characters must be preceded by a backslash
+%%    to be entered as printable characters:
+%%
+%%   # $ % & ~ _ ^ \ { }
+%%
+
+\documentclass[10pt,a4paper]{book}
+
+\topmargin -0.5in
+\oddsidemargin 0.0in
+\evensidemargin 0.0in
+\textheight 10in
+\textwidth 6.5in
+
+
+\usepackage{html}
+\usepackage{float}
+\usepackage{graphicx}
+\usepackage{bacula}
+\usepackage{longtable}
+\usepackage{makeidx}
+\usepackage{index}
+\usepackage{setspace}
+\usepackage{hyperref}
+% \usepackage[linkcolor=black,colorlinks=true]{hyperref}
+\usepackage{url}
+
+\makeindex
+\newindex{general}{idx}{ind}{General Index}
+
+\sloppy
+
+\begin{document}
+\sloppy
+
+\include{coverpage}
+
+\clearpage
+\pagenumbering{roman}
+\tableofcontents
+\clearpage
+
+\pagestyle{myheadings}
+\markboth{Bacula Version \version}{Bacula Version \version}
+\pagenumbering{arabic}
+\include{python}
+\include{vars}
+\include{stunnel}
+\include{dvd}
+\include{projects}
+\include{internaldb}
+\include{license}
+\include{fdl}
+\include{gpl}
+\include{lesser}
+
+
+% pull in the index
+\clearpage
+\printindex[general]
+
+\end{document}
diff --git a/docs/manuals/fr/misc/base/projects.tex b/docs/manuals/fr/misc/base/projects.tex
new file mode 100644 (file)
index 0000000..f118e79
--- /dev/null
@@ -0,0 +1,28 @@
+%%
+%%
+
+\chapter{Bacula Projects}
+\label{ProjectsChapter}
+\index[general]{Projects!Bacula }
+\index[general]{Bacula Projects }
+
+Once a new major version of Bacula is released, the Bacula
+users will vote on a list of new features. This vote is used
+as the main element determining what new features will be  
+implemented for the next version. Generally, the development time
+for a new release is between four to nine months.  Sometimes it may be 
+a bit longer, but in that case, there will be a number of bug fix
+updates to the currently released version.
+
+For the current list of project, please see the projects page in the CVS
+at: \elink{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/projects}
+{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/projects}
+see the {\bf projects} file in the main source directory. The projects
+file is updated approximately once every six months.    
+
+Separately from the project list, Kern maintains a current list of
+tasks as well as ideas, feature requests, and occasionally design
+notes. This list is updated roughly weekly (sometimes more often).
+For a current list of tasks you can see {\bf kernstodo} in the Source Forge
+CVS at \elink{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/kernstodo}
+{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/kernstodo}.   
diff --git a/docs/manuals/fr/misc/base/python.tex b/docs/manuals/fr/misc/base/python.tex
new file mode 100644 (file)
index 0000000..5d3c953
--- /dev/null
@@ -0,0 +1,479 @@
+%%
+%%
+
+\chapter{Python Scripting}
+\label{PythonChapter}
+\index[general]{Python Scripting}
+\index[general]{Scripting!Python}
+
+You may be asking what Python is and why a scripting language is
+needed in Bacula. The answer to the first question is that Python
+is an Object Oriented scripting language with features similar
+to those found in Perl, but the syntax of the language is much
+cleaner and simpler.  The answer to why have scripting in Bacula is to
+give the user more control over the whole backup process. Probably 
+the simplest example is when Bacula needs a new Volume name, with
+a scripting language such as Python, you can generate any name 
+you want, based on the current state of Bacula.
+
+\section{Python Configuration}
+\index[general]{Python Configuration}
+\index[general]{Configuration!Python}
+
+Python must be enabled during the configuration process by adding
+a \verb:--:with-python, and possibly specifying an alternate
+directory if your Python is not installed in a standard system
+location. If you are using RPMs you will need the python-devel package
+installed.
+
+When Python is configured, it becomes an integral part of Bacula and
+runs in Bacula's address space, so even though it is an interpreted 
+language, it is very efficient.
+
+When the Director starts, it looks to see if you have a {\bf
+Scripts Directory} Directive defined (normal default {\bf
+/etc/bacula/scripts}, if so, it looks in that directory for a file named
+{\bf DirStartUp.py}.  If it is found, Bacula will pass this file to Python
+for execution.  The {\bf Scripts Directory} is a new directive that you add
+to the Director resource of your bacula-dir.conf file.
+
+Note: Bacula does not install Python scripts by default because these
+scripts are for you to program.  This means that with a default
+installation with Python enabled, Bacula will print the following error
+message:
+
+\begin{verbatim}
+09-Jun 15:14 bacula-dir: ERROR in pythonlib.c:131 Could not import
+Python script /etc/bacula/scripts/DirStartUp. Python disabled.
+\end{verbatim}
+
+The source code directory {\bf examples/python} contains sample scripts
+for DirStartUp.py, SDStartUp.py, and FDStartUp.py that you might want
+to use as a starting point. Normally, your scripts directory (at least
+where you store the Python scripts) should be writable by Bacula, because
+Python will attempt to write a compiled version of the scripts (e.g.
+DirStartUp.pyc) back to that directory.
+
+When starting with the sample scripts, you can delete any part that
+you will not need, but you should keep all the Bacula Event and Job Event
+definitions.  If you do not want a particular event, simply replace the
+existing code with a {\bf noop = 1}.
+
+\section{Bacula Events}
+\index[general]{Bacula Events}
+\index[general]{Events}
+A Bacula event is a point in the Bacula code where Bacula
+will call a subroutine (actually a method) that you have 
+defined in the Python StartUp script. Events correspond 
+to some significant event such as a Job Start, a Job End,
+Bacula needs a new Volume Name, ... When your script is
+called, it will have access to all the Bacula variables
+specific to the Job (attributes of the Job Object), and
+it can even call some of the Job methods (subroutines)
+or set new values in the Job attributes, such as the 
+Priority. You will see below how the events are used.
+
+\section{Python Objects}
+\index[general]{Python Objects}
+\index[general]{Objects!Python}
+
+There are four Python objects that you will need to work with:
+\begin{description}
+\item [The Bacula Object]
+   The Bacula object is created by the Bacula daemon (the Director
+   in the present case) when the daemon starts. It is available to
+   the Python startup script, {\bf DirStartup.py}, by importing the
+   Bacula definitions with {\bf import bacula}. The methods
+   available with this object are described below. 
+
+\item [The Bacula Events Class]
+   You create this class in the startup script, and you pass
+   it to the Bacula Object's {\bf set\_events} method. The 
+   purpose of the Bacula Events Class is to define what global
+   or daemon events you want to monitor. When one of those events
+   occurs, your Bacula Events Class will be called at the method
+   corresponding to the event. There are currently three events,
+   JobStart, JobEnd, and Exit, which are described in detail below.
+   
+\item [The Job Object]
+   When a Job starts, and assuming you have defined a JobStart method
+   in your Bacula Events Class, Bacula will create a Job Object. This
+   object will be passed to the JobStart event. The Job Object has a
+   has good number of read-only members or attributes providing many
+   details of the Job, and it also has a number of writable attributes
+   that allow you to pass information into the Job.  These attributes
+   are described below.
+   
+\item [The Job Events Class]
+   You create this class in the JobStart method of your Bacula Events
+   class, and it allows you to define which of the possible Job Object
+   events you want to see. You must pass an instance of your Job Events
+   class to the Job Object set\_events() method.
+   Normally, you will probably only have one
+   Job Events Class, which will be instantiated for each Job. However,
+   if you wish to see different events in different Jobs, you may have
+   as many Job Events classes as you wish.
+\end{description}
+
+
+The first thing the startup script must do is to define what global Bacula
+events (daemon events), it wants to see. This is done by creating a 
+Bacula Events class, instantiating it, then passing it to the 
+{\bf set\_events} method. There are three possible
+events.
+
+\begin{description}
+\item [JobStart]
+   \index[general]{JobStart}
+   This Python method, if defined, will be called each time a Job is started.
+   The method is passed the class instantiation object as the first argument,
+   and the Bacula Job object as the second argument.  The Bacula Job object
+   has several built-in methods, and you can define which ones you
+   want called. If you do not define this method, you will not be able
+   to interact with Bacula jobs.
+
+\item [JobEnd]
+   This Python method, if defined, will be called each time a Job terminates.
+   The method is passed the class instantiation object as the first argument,
+   and the Bacula Job object as the second argument.  
+
+\item [Exit]
+   This Python method, if defined, will be called when the Director terminates.
+   The method is passed the class instantiation object as the first argument.
+\end{description}
+
+Access to the Bacula variables and methods is done with:
+
+     import bacula
+
+The following are the read-only attributes provided by the bacula object.
+\begin{description}
+\item [Name]
+\item [ConfigFile]
+\item [WorkingDir]
+\item [Version] string consisting of "Version  Build-date"
+\end{description}
+
+
+A simple definition of the Bacula Events Class might be the following:
+
+\footnotesize
+\begin{verbatim}
+import sys, bacula
+class BaculaEvents:
+  def JobStart(self, job):
+     ...
+\end{verbatim}
+\normalsize
+
+Then to instantiate the class and pass it to Bacula, you
+would do:
+
+\footnotesize
+\begin{verbatim}
+bacula.set_events(BaculaEvents()) # register Bacula Events wanted
+\end{verbatim}
+\normalsize
+
+And at that point, each time a Job is started, your BaculaEvents JobStart
+method will be called.
+
+Now to actually do anything with a Job, you must define which Job events
+you want to see, and this is done by defining a JobEvents class containing
+the methods you want called.  Each method name corresponds to one of the
+Job Events that Bacula will generate.
+
+A simple Job Events class might look like the following:
+
+\footnotesize
+\begin{verbatim}
+class JobEvents:
+  def NewVolume(self, job):
+     ...
+\end{verbatim}
+\normalsize
+
+Here, your JobEvents class method NewVolume will be called each time
+the Job needs a new Volume name.  To actually register the events defined
+in your class with the Job, you must instantiate the JobEvents class and
+set it in the Job {\bf set\_events} variable. Note, this is a bit different 
+from how you registered the Bacula events. The registration process must
+be done in the Bacula JobStart event (your method).  So, you would modify 
+Bacula Events (not the Job events) as follows:
+
+\footnotesize
+\begin{verbatim}
+import sys, bacula
+class BaculaEvents:
+  def JobStart(self, job):
+     events = JobEvents()         # create instance of Job class
+     job.set_events(events)       # register Job events desired
+     ...
+\end{verbatim}
+\normalsize
+
+When a job event is triggered, the appropriate event definition is
+called in the JobEvents class. This is the means by which your Python
+script or code gets control. Once it has control, it may read job
+attributes, or set them. See below for a list of read-only attributes,
+and those that are writable.  
+
+In addition, the Bacula {\bf job} object in the Director has
+a number of methods (subroutines) that can be called. They
+are:
+\begin{description}
+\item [set\_events] The set\_events method takes a single
+   argument, which is the instantiation of the Job Events class
+   that contains the methods that you want called. The method
+   names that will be called must correspond to the Bacula
+   defined events. You may define additional methods but Bacula
+   will not use them.
+\item [run] The run method takes a single string
+   argument, which is the run command (same as in the Console)
+   that you want to submit to start a new Job. The value
+   returned by the run method is the JobId of the job that
+   started, or -1 if there was an error.
+\item [write] The write method is used to be able to send
+   print output to the Job Report. This will be described later.
+\item[cancel] The cancel method takes a single integer argument,
+   which is a JobId. If JobId is found, it will be canceled.
+\item [DoesVolumeExist] The DoesVolumeExist method takes a single
+   string argument, which is the Volume name, and returns 
+   1 if the volume exists in the Catalog and 0 if the volume
+   does not exist.
+\end{description}
+
+The following attributes are read/write within the Director 
+for the {\bf job} object.
+
+\begin{description}
+\item [Priority] Read or set the Job priority.
+   Note, that setting a Job Priority is effective only before
+   the Job actually starts.
+\item [Level] This attribute contains a string representing the Job 
+        level, e.g. Full, Differential, Incremental, ... if read.
+        The level can also be set.
+\end{description}
+
+The following read-only attributes are available within the Director
+for the {\bf job} object.
+
+\begin{description}
+\item [Type]  This attribute contains a string representing the Job
+       type, e.g. Backup, Restore, Verify, ...
+\item [JobId] This attribute contains an integer representing the
+       JobId.
+\item [Client] This attribute contains a string with the name of the
+       Client for this job.
+\item [NumVols]  This attribute contains an integer with the number of
+       Volumes in the Pool being used by the Job.
+\item [Pool] This attribute contains a string with the name of the Pool
+       being used by the Job.
+\item [Storage] This attribute contains a string with the name of the
+       Storage resource being used by the Job.
+\item [Catalog]  This attribute contains a string with the name of the
+       Catalog resource being used by the Job.
+\item [MediaType] This attribute contains a string with the name of the
+       Media Type associated with the Storage resource being used by the Job.
+\item [Job] This attribute contains a string containing the name of the
+       Job resource used by this job (not unique).
+\item [JobName] This attribute contains a string representing the full
+       unique Job name.
+\item [JobStatus] This attribute contains a single character string
+       representing the current Job status. The status may change
+       during execution of the job. It may take on the following
+       values:
+       \begin{description}
+       \item [C] Created, not yet running
+       \item [R] Running
+       \item [B] Blocked
+       \item [T] Completed successfully
+       \item [E] Terminated with errors
+       \item [e] Non-fatal error
+       \item [f] Fatal error
+       \item [D] Verify found differences
+       \item [A] Canceled by user
+       \item [F] Waiting for Client
+       \item [S] Waiting for Storage daemon
+       \item [m] Waiting for new media
+       \item [M] Waiting for media mount
+       \item [s] Waiting for storage resource
+       \item [j] Waiting for job resource
+       \item [c] Waiting for client resource
+       \item [d] Waiting on maximum jobs
+       \item [t] Waiting on start time
+       \item [p] Waiting on higher priority jobs
+       \end{description}
+
+\item [Priority]  This attribute contains an integer with the priority
+       assigned to the job.
+\item [CatalogRes] tuple consisting of (DBName, Address, User,
+       Password, Socket, Port, Database Vendor) taken from the Catalog resource 
+       for the Job with the exception of Database Vendor, which is
+       one of the following: MySQL, PostgreSQL, SQLite, Internal,
+       depending on what database you configured.
+\item [VolumeName]
+       After a Volume has been purged, this attribute will contain the
+       name of that Volume. At other times, this value may have no meaning.
+\end{description}
+
+The following write-only attributes are available within the
+Director:
+
+\begin{description}
+\item [JobReport] Send line to the Job Report.
+\item [VolumeName] Set a new Volume name. Valid only during the
+   NewVolume event.
+\end{description}
+
+\section{Python Console Command}
+\index[general]{Python Console Command}
+\index[general]{Console Command!Python}
+
+There is a new Console command named {\bf python}. It takes
+a single argument {\bf restart}. Example:
+\begin{verbatim}
+  python restart
+\end{verbatim}
+
+This command restarts the Python interpreter in the Director.
+This can be useful when you are modifying the DirStartUp script,
+because normally Python will cache it, and thus the
+script will be read one time.
+
+\section{Debugging Python Scripts}
+\index[general]{Debugging Python Scripts}
+In general, you debug your Python scripts by using print statements.
+You can also develop your script or important parts of it as a 
+separate file using the Python interpreter to run it.  Once you
+have it working correctly, you can then call the script from 
+within the Bacula Python script (DirStartUp.py).
+
+If you are having problems loading DirStartUp.py, you will probably
+not get any error messages because Bacula can only print Python 
+error messages after the Python interpreter is started.  However, you
+may be able to see the error messages by starting Bacula in
+a shell window with the {\bf -d1} option on the command line. That
+should cause the Python error messages to be printed in the shell
+window.
+
+If you are getting error messages such as the following when 
+loading DirStartUp.py:
+
+\begin{verbatim}
+ Traceback (most recent call last):
+   File "/etc/bacula/scripts/DirStartUp.py", line 6, in ?
+     import time, sys, bacula
+ ImportError: /usr/lib/python2.3/lib-dynload/timemodule.so: undefined
+ symbol: PyInt_FromLong
+ bacula-dir: pythonlib.c:134 Python Import error.
+\end{verbatim}
+     
+It is because the DirStartUp script is calling a dynamically loaded
+module (timemodule.so in the above case) that then tries to use
+Python functions exported from the Python interpreter (in this case
+PyInt\_FromLong). The way Bacula is currently linked with Python does
+not permit this.  The solution to the problem is to put such functions  
+(in this case the import of time into a separate Python script, which
+will do your calculations and return the values you want. Then call
+(not import) this script from the Bacula DirStartUp.py script, and
+it all should work as you expect.
+   
+                                    
+           
+
+
+\section{Python Example}
+\index[general]{Python Example}
+\index[general]{Example!Python}
+
+An example script for the Director startup file is provided in
+{\bf examples/python/DirStartup.py} as follows:
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula Python interface script for the Director
+#
+
+# You must import both sys and bacula
+import sys, bacula
+
+# This is the list of Bacula daemon events that you
+#  can receive.
+class BaculaEvents(object):
+  def __init__(self):
+     # Called here when a new Bacula Events class is
+     #  is created. Normally not used 
+     noop = 1
+
+  def JobStart(self, job):
+     """
+       Called here when a new job is started. If you want
+       to do anything with the Job, you must register
+       events you want to receive.
+     """
+     events = JobEvents()         # create instance of Job class
+     events.job = job             # save Bacula's job pointer
+     job.set_events(events)       # register events desired
+     sys.stderr = events          # send error output to Bacula
+     sys.stdout = events          # send stdout to Bacula
+     jobid = job.JobId; client = job.Client
+     numvols = job.NumVols 
+     job.JobReport="Python Dir JobStart: JobId=%d Client=%s NumVols=%d\n" % (jobid,client,numvols) 
+
+  # Bacula Job is going to terminate
+  def JobEnd(self, job):    
+     jobid = job.JobId
+     client = job.Client 
+     job.JobReport="Python Dir JobEnd output: JobId=%d Client=%s.\n" % (jobid, client) 
+
+  # Called here when the Bacula daemon is going to exit
+  def Exit(self, job):
+      print "Daemon exiting."
+     
+bacula.set_events(BaculaEvents()) # register daemon events desired
+
+"""
+  These are the Job events that you can receive.
+"""
+class JobEvents(object):
+  def __init__(self):
+     # Called here when you instantiate the Job. Not
+     # normally used
+     noop = 1
+     
+  def JobInit(self, job):
+     # Called when the job is first scheduled
+     noop = 1
+     
+  def JobRun(self, job):
+     # Called just before running the job after initializing
+     #  This is the point to change most Job parameters.
+     #  It is equivalent to the JobRunBefore point.
+     noop = 1
+
+  def NewVolume(self, job):
+     # Called when Bacula wants a new Volume name. The Volume
+     #  name returned, if any, must be stored in job.VolumeName
+     jobid = job.JobId
+     client = job.Client
+     numvol = job.NumVols;
+     print job.CatalogRes
+     job.JobReport = "JobId=%d Client=%s NumVols=%d" % (jobid, client, numvol)
+     job.JobReport="Python before New Volume set for Job.\n"
+     Vol = "TestA-%d" % numvol
+     job.JobReport = "Exists=%d TestA-%d" % (job.DoesVolumeExist(Vol), numvol)
+     job.VolumeName="TestA-%d" % numvol
+     job.JobReport="Python after New Volume set for Job.\n"
+     return 1
+
+  def VolumePurged(self, job):
+     # Called when a Volume is purged. The Volume name can be referenced
+     #  with job.VolumeName
+     noop = 1
+
+
+
+\end{verbatim}
+\normalsize
diff --git a/docs/manuals/fr/misc/base/stunnel.tex b/docs/manuals/fr/misc/base/stunnel.tex
new file mode 100644 (file)
index 0000000..4907865
--- /dev/null
@@ -0,0 +1,553 @@
+%%
+%%
+
+\chapter{Using Stunnel to Encrypt Communications}
+\label{StunnelChapter}
+\index[general]{Using Stunnel to Encrypt Communications to Clients }
+
+Prior to version 1.37, Bacula did not have built-in communications encryption.
+Please see the \ilink {TLS chapter}{CommEncryption} if you are using Bacula
+1.37 or greater.
+
+Without too much effort, it is possible to encrypt the communications
+between any of the daemons. This chapter will show you how to use {\bf
+stunnel} to encrypt communications to your client programs. We assume the
+Director and the Storage daemon are running on one machine that will be called
+{\bf server} and the Client or File daemon is running on a different machine
+called {\bf client}. Although the details may be slightly different, the same
+principles apply whether you are encrypting between Unix, Linux, or Win32
+machines. This example was developed between two Linux machines running
+stunnel version 4.04-4 on a Red Hat Enterprise 3.0 system. 
+
+\section{Communications Ports Used}
+\index[general]{Used!Communications Ports }
+\index[general]{Communications Ports Used }
+
+First, you must know that with the standard Bacula configuration, the Director
+will contact the File daemon on port 9102. The File daemon then contacts the
+Storage daemon using the address and port parameters supplied by the Director.
+The standard port used will be 9103. This is the typical server/client view of
+the world, the File daemon is a server to the Director (i.e. listens for the
+Director to contact it), and the Storage daemon is a server to the File
+daemon.
+
+\section{Encryption}
+\index[general]{Encryption }
+
+The encryption is accomplished between the Director and the File daemon by
+using an stunnel on the Director's machine (server) to encrypt the data and to
+contact an stunnel on the File daemon's machine (client), which decrypts the
+data and passes it to the client. 
+
+Between the File daemon and the Storage daemon, we use an stunnel on the File
+daemon's machine to encrypt the data and another stunnel on the Storage
+daemon's machine to decrypt the data. 
+
+As a consequence, there are actually four copies of stunnel running, two on the
+server and two on the client. This may sound a bit complicated, but it really
+isn't. To accomplish this, we will need to construct four separate conf files
+for stunnel, and we will need to make some minor modifications to the
+Director's conf file. None of the other conf files need to be changed. 
+
+\section{A Picture}
+\index[general]{Picture }
+
+Since pictures usually help a lot, here is an overview of what we will be
+doing. Don't worry about all the details of the port numbers and such for the
+moment. 
+
+\footnotesize
+\begin{verbatim}
+  File daemon (client):
+                 stunnel-fd1.conf
+                   |===========|
+  Port 29102  >----| Stunnel 1 |-----> Port 9102
+                   |===========|
+                 stunnel-fd2.conf
+                   |===========|
+  Port 9103   >----| Stunnel 2 |-----> server:29103
+                   |===========|
+  Director (server):
+                 stunnel-dir.conf
+                   |===========|
+  Port 29102  >----| Stunnel 3 |-----> client:29102
+                   |===========|
+                 stunnel-sd.conf
+                   |===========|
+  Port 29103  >----| Stunnel 4 |-----> 9103
+                   |===========|
+\end{verbatim}
+\normalsize
+
+\section{Certificates}
+\index[general]{Certificates }
+
+In order for stunnel to function as a server, which it does in our diagram for
+Stunnel 1 and Stunnel 4, you must have a certificate and the key. It is
+possible to keep the two in separate files, but normally, you keep them in one
+single .pem file. You may create this certificate yourself in which case, it
+will be self-signed, or you may have it signed by a CA. 
+
+If you want your clients to verify that the server is in fact valid (Stunnel 2
+and Stunnel 3), you will need to have the server certificates signed by a CA
+(Certificate Authority), and you will need to have the CA's public certificate
+(contains the CA's public key). 
+
+Having a CA signed certificate is {\bf highly} recommended if you are using
+your client across the Internet, otherwise you are exposed to the man in the
+middle attack and hence loss of your data. 
+
+See below for how to create a self-signed certificate. 
+
+\section{Securing the Data Channel}
+\index[general]{Channel!Securing the Data }
+\index[general]{Securing the Data Channel }
+
+To simplify things a bit, let's for the moment consider only the data channel.
+That is the connection between the File daemon and the Storage daemon, which
+takes place on port 9103. In fact, in a minimalist solution, this is the only
+connection that needs to be encrypted, because it is the one that transports your
+data. The connection between the Director and the File daemon is simply a
+control channel used to start the job and get the job status. 
+
+Normally the File daemon will contact the Storage daemon on port 9103
+(supplied by the Director), so we need an stunnel that listens on port 9103 on
+the File daemon's machine, encrypts the data and sends it to the Storage
+daemon. This is depicted by Stunnel 2 above. Note that this stunnel is
+listening on port 9103 and sending to server:29103. We use port 29103 on the
+server because if we would send the data to port 9103, it would go directly to the
+Storage daemon, which doesn't understand encrypted data. On the server
+machine, we run Stunnel 4, which listens on port 29103, decrypts the data and
+sends it to the Storage daemon, which is listening on port 9103. 
+
+\section{Data Channel Configuration}
+\index[general]{Modification of bacula-dir.conf for the Data Channel }
+\index[general]{baculoa-dir.conf!Modification for the Data Channel }
+
+The Storage resource of the bacula-dir.conf normally looks something like the
+following: 
+
+\footnotesize
+\begin{verbatim}
+Storage {
+  Name = File
+  Address = server
+  SDPort = 9103
+  Password = storage_password
+  Device = File
+  Media Type = File
+}
+\end{verbatim}
+\normalsize
+
+Notice that this is running on the server machine, and it points the File
+daemon back to server:9103, which is where our Storage daemon is listening. We
+modify this to be: 
+
+\footnotesize
+\begin{verbatim}
+Storage {
+  Name = File
+  Address = localhost
+  SDPort = 9103
+  Password = storage_password
+  Device = File
+  Media Type = File
+}
+\end{verbatim}
+\normalsize
+
+This causes the File daemon to send the data to the stunnel running on
+localhost (the client machine). We could have used client as the address as
+well. 
+
+\section{Stunnel Configuration for the Data Channel}
+\index[general]{Stunnel Configuration for the Data Channel }
+
+In the diagram above, we see above Stunnel 2 that we use stunnel-fd2.conf on the
+client. A pretty much minimal config file would look like the following: 
+
+\footnotesize
+\begin{verbatim}
+client = yes
+[29103]
+accept = localhost:9103
+connect = server:29103
+\end{verbatim}
+\normalsize
+
+The above config file does encrypt the data but it does not require a
+certificate, so it is subject to the man in the middle attack. The file I
+actually used, stunnel-fd2.conf, looked like this: 
+
+\footnotesize
+\begin{verbatim}
+#
+# Stunnel conf for Bacula client -> SD
+#
+pid = /home/kern/bacula/bin/working/stunnel.pid
+#
+# A cert is not mandatory here. If verify=2, a
+#  cert signed by a CA must be specified, and
+#  either CAfile or CApath must point to the CA's
+#  cert
+#
+cert = /home/kern/stunnel/stunnel.pem
+CAfile = /home/kern/ssl/cacert.pem
+verify = 2
+client = yes
+# debug = 7
+# foreground = yes
+[29103]
+accept = localhost:9103
+connect = server:29103
+\end{verbatim}
+\normalsize
+
+You will notice that I specified a pid file location because I ran stunnel
+under my own userid so I could not use the default, which requires root
+permission. I also specified a certificate that I have as well as verify level
+2 so that the certificate is required and verified, and I must supply the
+location of the CA (Certificate Authority) certificate so that the stunnel
+certificate can be verified. Finally, you will see that there are two lines
+commented out, which when enabled, produce a lot of nice debug info in the
+command window. 
+
+If you do not have a signed certificate (stunnel.pem), you need to delete the
+cert, CAfile, and verify lines. 
+
+Note that the stunnel.pem, is actually a private key and a certificate in a
+single file. These two can be kept and specified individually, but keeping
+them in one file is more convenient. 
+
+The config file, stunnel-sd.conf, needed for Stunnel 4 on the server machine
+is: 
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula stunnel conf for Storage daemon
+#
+pid = /home/kern/bacula/bin/working/stunnel.pid
+#
+# A cert is mandatory here, it may be self signed
+#  If it is self signed, the client may not use
+#  verify
+#
+cert   = /home/kern/stunnel/stunnel.pem
+client = no
+# debug = 7
+# foreground = yes
+[29103]
+accept = 29103
+connect = 9103
+\end{verbatim}
+\normalsize
+
+\section{Starting and Testing the Data Encryption}
+\index[general]{Starting and Testing the Data Encryption }
+\index[general]{Encryption!Starting and Testing the Data }
+
+It will most likely be the simplest to implement the Data Channel encryption
+in the following order: 
+
+\begin{itemize}
+\item Setup and run Bacula backing up some data on your  client machine
+   without encryption.  
+\item Stop Bacula.  
+\item Modify the Storage resource in the Director's conf  file.  
+\item Start Bacula  
+\item Start stunnel on the server with:  
+
+   \footnotesize
+\begin{verbatim}
+     stunnel stunnel-sd.conf
+  
+\end{verbatim}
+\normalsize
+
+\item Start stunnel on the client with:  
+
+   \footnotesize
+\begin{verbatim}
+    stunnel stunnel-fd2.conf
+  
+\end{verbatim}
+\normalsize
+
+\item Run a job.  
+\item If it doesn't work, turn debug on in both stunnel conf files,  restart
+   the stunnels, rerun the job, repeat until it works. 
+   \end{itemize}
+
+\section{Encrypting the Control Channel}
+\index[general]{Channel!Encrypting the Control }
+\index[general]{Encrypting the Control Channel }
+
+The Job control channel is between the Director and the File daemon, and as
+mentioned above, it is not really necessary to encrypt, but it is good
+practice to encrypt it as well. The two stunnels that are used in this case
+will be Stunnel 1 and Stunnel 3 in the diagram above. Stunnel 3 on the server
+might normally listen on port 9102, but if you have a local File daemon, this
+will not work, so we make it listen on port 29102. It then sends the data to
+client:29102. Again we use port 29102 so that the stunnel on the client
+machine can decrypt the data before passing it on to port 9102 where the File
+daemon is listening. 
+
+\section{Control Channel Configuration}
+\index[general]{Control Channel Configuration }
+
+We need to modify the standard Client resource, which would normally look
+something like: 
+
+\footnotesize
+\begin{verbatim}
+Client {
+  Name = client-fd
+  Address = client
+  FDPort = 9102
+  Catalog = BackupDB
+  Password = "xxx"
+}
+\end{verbatim}
+\normalsize
+
+to be: 
+
+\footnotesize
+\begin{verbatim}
+Client {
+  Name = client-fd
+  Address = localhost
+  FDPort = 29102
+  Catalog = BackupDB
+  Password = "xxx"
+}
+\end{verbatim}
+\normalsize
+
+This will cause the Director to send the control information to
+localhost:29102 instead of directly to the client. 
+
+\section{Stunnel Configuration for the Control Channel}
+\index[general]{Config Files for stunnel to Encrypt the Control Channel }
+
+The stunnel config file, stunnel-dir.conf, for the Director's machine would
+look like the following: 
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula stunnel conf for the Directory to contact a client
+#
+pid = /home/kern/bacula/bin/working/stunnel.pid
+#
+# A cert is not mandatory here. If verify=2, a
+#  cert signed by a CA must be specified, and
+#  either CAfile or CApath must point to the CA's
+#  cert
+#
+cert   = /home/kern/stunnel/stunnel.pem
+CAfile = /home/kern/ssl/cacert.pem
+verify = 2
+client = yes
+# debug = 7
+# foreground = yes
+[29102]
+accept = localhost:29102
+connect = client:29102
+\end{verbatim}
+\normalsize
+
+and the config file, stunnel-fd1.conf, needed to run stunnel on the Client
+would be: 
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula stunnel conf for the Directory to contact a client
+#
+pid = /home/kern/bacula/bin/working/stunnel.pid
+#
+# A cert is not mandatory here. If verify=2, a
+#  cert signed by a CA must be specified, and
+#  either CAfile or CApath must point to the CA's
+#  cert
+#
+cert   = /home/kern/stunnel/stunnel.pem
+CAfile = /home/kern/ssl/cacert.pem
+verify = 2
+client = yes
+# debug = 7
+# foreground = yes
+[29102]
+accept = localhost:29102
+connect = client:29102
+\end{verbatim}
+\normalsize
+
+\section{Starting and Testing the Control Channel}
+\index[general]{Starting and Testing the Control Channel }
+\index[general]{Channel!Starting and Testing the Control }
+
+It will most likely be the simplest to implement the Control Channel
+encryption in the following order: 
+
+\begin{itemize}
+\item Stop Bacula.  
+\item Modify the Client resource in the Director's conf  file.  
+\item Start Bacula  
+\item Start stunnel on the server with:  
+
+   \footnotesize
+\begin{verbatim}
+     stunnel stunnel-dir.conf
+  
+\end{verbatim}
+\normalsize
+
+\item Start stunnel on the client with:  
+
+   \footnotesize
+\begin{verbatim}
+    stunnel stunnel-fd1.conf
+  
+\end{verbatim}
+\normalsize
+
+\item Run a job.  
+\item If it doesn't work, turn debug on in both stunnel conf files,  restart
+   the stunnels, rerun the job, repeat until it works. 
+   \end{itemize}
+
+\section{Using stunnel to Encrypt to a Second Client}
+\index[general]{Using stunnel to Encrypt to a Second Client }
+\index[general]{Client!Using stunnel to Encrypt to a Second }
+
+On the client machine, you can just duplicate the setup that you have on the
+first client file for file and it should work fine. 
+
+In the bacula-dir.conf file, you will want to create a second client pretty
+much identical to how you did for the first one, but the port number must be
+unique. We previously used: 
+
+\footnotesize
+\begin{verbatim}
+Client {
+  Name = client-fd
+  Address = localhost
+  FDPort = 29102
+  Catalog = BackupDB
+  Password = "xxx"
+}
+\end{verbatim}
+\normalsize
+
+so for the second client, we will, of course, have a different name, and we
+will also need a different port. Remember that we used port 29103 for the
+Storage daemon, so for the second client, we can use port 29104, and the
+Client resource would look like: 
+
+\footnotesize
+\begin{verbatim}
+Client {
+  Name = client2-fd
+  Address = localhost
+  FDPort = 29104
+  Catalog = BackupDB
+  Password = "yyy"
+}
+\end{verbatim}
+\normalsize
+
+Now, fortunately, we do not need a third stunnel to on the Director's machine,
+we can just add the new port to the config file, stunnel-dir.conf, to make: 
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula stunnel conf for the Directory to contact a client
+#
+pid = /home/kern/bacula/bin/working/stunnel.pid
+#
+# A cert is not mandatory here. If verify=2, a
+#  cert signed by a CA must be specified, and
+#  either CAfile or CApath must point to the CA's
+#  cert
+#
+cert   = /home/kern/stunnel/stunnel.pem
+CAfile = /home/kern/ssl/cacert.pem
+verify = 2
+client = yes
+# debug = 7
+# foreground = yes
+[29102]
+accept = localhost:29102
+connect = client:29102
+[29104]
+accept = localhost:29102
+connect = client2:29102
+\end{verbatim}
+\normalsize
+
+There are no changes necessary to the Storage daemon or the other stunnel so
+that this new client can talk to our Storage daemon. 
+
+\section{Creating a Self-signed Certificate}
+\index[general]{Creating a Self-signed Certificate }
+\index[general]{Certificate!Creating a Self-signed }
+
+You may create a self-signed certificate for use with stunnel that will permit
+you to make it function, but will not allow certificate validation. The .pem
+file containing both the certificate and the key can be made with the
+following, which I put in a file named {\bf makepem}: 
+
+\footnotesize
+\begin{verbatim}
+#!/bin/sh
+#
+# Simple shell script to make a .pem file that can be used
+# with stunnel and Bacula
+#
+OPENSSL=openssl
+   umask 77
+   PEM1="/bin/mktemp openssl.XXXXXX"
+   PEM2="/bin/mktemp openssl.XXXXXX"
+   ${OPENSSL} req -newkey rsa:1024 -keyout $PEM1 -nodes \
+       -x509 -days 365 -out $PEM2
+   cat $PEM1 > stunnel.pem
+   echo ""   >>stunnel.pem
+   cat $PEM2 >>stunnel.pem
+   rm $PEM1 $PEM2
+\end{verbatim}
+\normalsize
+
+The above script will ask you a number of questions. You may simply answer
+each of them by entering a return, or if you wish you may enter your own data.
+
+
+\section{Getting a CA Signed Certificate}
+\index[general]{Certificate!Getting a CA Signed }
+\index[general]{Getting a CA Signed Certificate }
+
+The process of getting a certificate that is signed by a CA is quite a bit
+more complicated. You can purchase one from quite a number of PKI vendors, but
+that is not at all necessary for use with Bacula. 
+
+To get a CA signed
+certificate, you will either need to find a friend that has setup his own CA
+or to become a CA yourself, and thus you can sign all your own certificates.
+The book OpenSSL by John Viega, Matt Mesier \& Pravir Chandra from O'Reilly
+explains how to do it, or you can read the documentation provided in the
+Open-source PKI Book project at Source Forge: 
+\elink{
+http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}
+{http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}.
+Note, this link may change. 
+
+\section{Using ssh to Secure the Communications}
+\index[general]{Communications!Using ssh to Secure the }
+\index[general]{Using ssh to Secure the Communications }
+
+Please see the script {\bf ssh-tunnel.sh} in the {\bf examples} directory. It
+was contributed by Stephan Holl. 
diff --git a/docs/manuals/fr/misc/base/vars.tex b/docs/manuals/fr/misc/base/vars.tex
new file mode 100644 (file)
index 0000000..b03c3ac
--- /dev/null
@@ -0,0 +1,229 @@
+%%
+%%
+
+\chapter{Variable Expansion}
+\label{VarsChapter}
+\index[general]{Variable Expansion }
+\index[general]{Expansion!Variable }
+
+% TODO: does the following mean that this should not be in book?
+
+Please note that as of version 1.37, the Variable Expansion 
+is deprecated and replaced by Python scripting (not yet
+documented).
+
+Variable expansion is somewhat similar to Unix shell variable expansion.
+Currently (version 1.31), it is used only in format labels, but in the future,
+it will most likely be used in more places. 
+
+\section{General Functionality}
+\index[general]{Functionality!General }
+\index[general]{General Functionality }
+
+This is basically a string expansion capability that permits referencing
+variables, indexing arrays, conditional replacement of variables, case
+conversion, substring selection, regular expression matching and replacement,
+character class replacement, padding strings, repeated expansion in a user
+controlled loop, support of arithmetic expressions in the loop start, step and
+end conditions, and recursive expansion. 
+
+When using variable expansion characters in a Volume Label Format record, the
+format should always be enclosed in double quotes ({\bf "}). 
+
+For example, {\bf \$\{HOME\}} will be replaced by your home directory as
+defined in the environment. If you have defined the variable {\bf xxx} to be
+{\bf Test}, then the reference {\bf \$\{xxx:p/7/Y/r\}} will right pad the
+contents of {\bf xxx} to a length of seven characters filling with the
+character {\bf Y} giving {\bf YYYTest}. 
+
+\section{Bacula Variables}
+\index[general]{Bacula Variables }
+\index[general]{Variables!Bacula }
+
+Within Bacula, there are three main classes of variables with some minor
+variations within the classes. The classes are: 
+
+\begin{description}
+
+\item [Counters]
+   \index[general]{Counters }
+   Counters are defined by the {\bf Counter}  resources in the Director's conf
+file. The counter can either  be a temporary counter that lasts for the
+duration of Bacula's  execution, or it can be a variable that is stored in 
+the catalog, and thus retains its value from one Bacula execution  to another.
+Counter variables may be incremented by postfixing  a plus sign ({\bf +} after
+the variable name). 
+
+\item [Internal Variables]
+   \index[general]{Internal Variables }
+   Internal variables are read-only,  and may be related to the current job (i.e.
+Job name), or  maybe special variables such as the date and time.  The
+following variables are available:  
+
+\begin{itemize}
+\item [Year]  -- the full year  
+\item [Month]  -- the current month 1-12  
+\item [Day]  -- the day of the month 1-31  
+\item [Hour]  -- the hour 0-24  
+\item [Minute]  -- the current minute 0-59  
+\item [Second]  -- the current second 0-59  
+\item [WeekDay]  -- the current day of the week 0-6 with 0 being Sunday  
+\item [Job]  -- the job name  
+\item [general]  -- the Director's name  
+\item [Level]  -- the Job Level 
+\item [Type]  -- the Job type 
+\item [JobId]  -- the JobId 
+\item [JobName]  -- the unique job name composed of Job and date  
+\item [Storage]  -- the Storage daemon's name  
+\item [Client]  -- the Client's name  
+\item [NumVols]  -- the current number of Volumes in the Pool  
+\item [Pool]  -- the Pool name  
+\item [Catalog]  -- the Catalog name  
+\item [MediaType] -- the Media Type  
+   \end{itemize}
+
+\item [Environment Variables]
+   \index[general]{Environment Variables }
+   Environment variables are read-only,  and must be defined in the environment
+prior to executing Bacula.  Environment variables may be either scalar or an
+array, where the  elements of the array are referenced by subscripting the
+variable  name (e.g. {\bf \$\{Months[3]\}}). Environment variable arrays are 
+defined by separating the elements with a vertical bar ({\bf |}),  thus {\bf
+set Months="Jan|Feb|Mar|Apr|..."} defines  an environment variable named
+{\bf Month} that will be  treated as an array, and the reference {\bf
+\$\{Months[3]\}} will  yield {\bf Mar}. The elements of the array can have 
+differing lengths. 
+\end{description}
+
+\section{Full Syntax}
+\index[general]{Syntax!Full }
+\index[general]{Full Syntax }
+
+Since the syntax is quite extensive, below, you will find the pseudo BNF. The
+special characters have the following meaning: 
+
+\footnotesize
+\begin{verbatim}
+ ::=     definition
+ ( )     grouping if the parens are not quoted
+ |       separates alternatives
+ '/'     literal / (or any other character)
+ CAPS    a character or character sequence
+ *       preceding item can be repeated zero or more times
+ ?       preceding item can appear zero or one time
+ +       preceding item must appear one or more times
+\end{verbatim}
+\normalsize
+
+And the pseudo BNF describing the syntax is: 
+
+\footnotesize
+\begin{verbatim}
+ input       ::= ( TEXT
+                 | variable
+                 | INDEX_OPEN input INDEX_CLOSE (loop_limits)?
+                 )*
+ variable    ::= DELIM_INIT (name|expression)
+ name        ::= (NAME_CHARS)+
+ expression  ::= DELIM_OPEN
+                 (name|variable)+
+                 (INDEX_OPEN num_exp INDEX_CLOSE)?
+                 (':' command)*
+                 DELIM_CLOSE
+ command     ::= '-' (TEXT_EXP|variable)+
+               | '+' (TEXT_EXP|variable)+
+               | 'o' NUMBER ('-'|',') (NUMBER)?
+               | '#'
+               | '*' (TEXT_EXP|variable)+
+               | 's' '/' (TEXT_PATTERN)+
+                     '/' (variable|TEXT_SUBST)*
+                     '/' ('m'|'g'|'i'|'t')*
+               | 'y' '/' (variable|TEXT_SUBST)+
+                     '/' (variable|TEXT_SUBST)*
+                     '/'
+               | 'p' '/' NUMBER
+                     '/' (variable|TEXT_SUBST)*
+                     '/' ('r'|'l'|'c')
+               | '%' (name|variable)+
+                     ('(' (TEXT_ARGS)? ')')?
+               | 'l'
+               | 'u'
+ num_exp     ::= operand
+               | operand ('+'|'-'|'*'|'/'|'%') num_exp
+ operand     ::= ('+'|'-')? NUMBER
+               | INDEX_MARK
+               | '(' num_exp ')'
+               | variable
+ loop_limits ::= DELIM_OPEN
+                 (num_exp)? ',' (num_exp)? (',' (num_exp)?)?
+                 DELIM_CLOSE
+ NUMBER      ::= ('0'|...|'9')+
+ TEXT_PATTERN::= (^('/'))+
+ TEXT_SUBST  ::= (^(DELIM_INIT|'/'))+
+ TEXT_ARGS   ::= (^(DELIM_INIT|')'))+
+ TEXT_EXP    ::= (^(DELIM_INIT|DELIM_CLOSE|':'|'+'))+
+ TEXT        ::= (^(DELIM_INIT|INDEX_OPEN|INDEX_CLOSE))+
+ DELIM_INIT  ::= '$'
+ DELIM_OPEN  ::= '{'
+ DELIM_CLOSE ::= '}'
+ INDEX_OPEN  ::= '['
+ INDEX_CLOSE ::= ']'
+ INDEX_MARK  ::= '#'
+ NAME_CHARS  ::= 'a'|...|'z'|'A'|...|'Z'|'0'|...|'9'
+\end{verbatim}
+\normalsize
+
+\section{Semantics}
+\index[general]{Semantics }
+
+The items listed in {\bf command} above, which always follow a colon ({\bf :})
+have the following meanings: 
+
+\footnotesize
+\begin{verbatim}
+ -    perform substitution if variable is empty
+ +    perform substitution if variable is not empty
+ o    cut out substring of the variable value
+ #    length of the variable value
+ *    substitute empty string if the variable value is not empty,
+      otherwise substitute the trailing parameter
+ s    regular expression search and replace. The trailing
+      options are: m = multiline, i = case insensitive,
+                   g = global,    t = plain text (no regexp)
+ y    transpose characters from class A to class B
+ p    pad variable to l = left, r = right or c = center,
+      with second value.
+ %    special function call (none implemented)
+ l    lower case the variable value
+ u    upper case the variable value
+\end{verbatim}
+\normalsize
+
+The {\bf loop\_limits} are start, step, and end values. 
+
+A counter variable name followed immediately by a plus ({\bf +}) will cause
+the counter to be incremented by one. 
+
+\section{Examples}
+\index[general]{Examples }
+
+To create an ISO date: 
+
+\footnotesize
+\begin{verbatim}
+  DLT-${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}
+\end{verbatim}
+\normalsize
+
+on 20 June 2003 would give {\bf DLT-2003-06-20} 
+
+If you set the environment variable {\bf mon} to 
+
+\footnotesize
+\begin{verbatim}
+   January|February|March|April|May|...
+   File-${mon[${Month}]}/${Day}/${Year}
+\end{verbatim}
+\normalsize
+
+on the first of March would give {\bf File-March/1/2003 } 
diff --git a/docs/manuals/fr/misc/base/version.tex b/docs/manuals/fr/misc/base/version.tex
new file mode 100644 (file)
index 0000000..36878dd
--- /dev/null
@@ -0,0 +1 @@
+5.1.2 (26 February 2010)
diff --git a/docs/manuals/fr/misc/coverpage-en.tex b/docs/manuals/fr/misc/coverpage-en.tex
new file mode 100644 (file)
index 0000000..e32d399
--- /dev/null
@@ -0,0 +1,28 @@
+\newfont{\bighead}{cmr17 at 36pt}
+\parskip 10pt
+\parindent 0pt
+
+\title{\includegraphics{\idir bacula-logo.eps} \\ \bigskip
+  \Huge{Bacula}$^{\normalsize \textregistered}$ \Huge{Bacula Miscellaneous Guide}
+  \begin{center}
+   \large{It comes in the night and sucks 
+          the essence from your computers. }
+  \end{center}
+}
+
+
+\author{Kern Sibbald}
+\date{\vspace{1.0in}\today \\
+      This manual documents Bacula version \input{version} \\
+      \vspace{0.2in}
+      Copyright {\copyright} 1999-2010, Free Software Foundation Europe
+      e.V. \\
+      Bacula {\textregistered}  is a registered trademark of Kern Sibbald.\\
+      \vspace{0.2in}
+  Permission is granted to copy, distribute and/or modify this document under the terms of the
+  GNU Free Documentation License, Version 1.2 published by the Free Software Foundation; 
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+  A copy of the license is included in the section entitled "GNU Free Documentation License".
+}
+
+\maketitle
diff --git a/docs/manuals/fr/misc/coverpage.tex b/docs/manuals/fr/misc/coverpage.tex
deleted file mode 100644 (file)
index e32d399..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-\newfont{\bighead}{cmr17 at 36pt}
-\parskip 10pt
-\parindent 0pt
-
-\title{\includegraphics{\idir bacula-logo.eps} \\ \bigskip
-  \Huge{Bacula}$^{\normalsize \textregistered}$ \Huge{Bacula Miscellaneous Guide}
-  \begin{center}
-   \large{It comes in the night and sucks 
-          the essence from your computers. }
-  \end{center}
-}
-
-
-\author{Kern Sibbald}
-\date{\vspace{1.0in}\today \\
-      This manual documents Bacula version \input{version} \\
-      \vspace{0.2in}
-      Copyright {\copyright} 1999-2010, Free Software Foundation Europe
-      e.V. \\
-      Bacula {\textregistered}  is a registered trademark of Kern Sibbald.\\
-      \vspace{0.2in}
-  Permission is granted to copy, distribute and/or modify this document under the terms of the
-  GNU Free Documentation License, Version 1.2 published by the Free Software Foundation; 
-  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
-  A copy of the license is included in the section entitled "GNU Free Documentation License".
-}
-
-\maketitle
diff --git a/docs/manuals/fr/misc/dvd-en.tex b/docs/manuals/fr/misc/dvd-en.tex
new file mode 100644 (file)
index 0000000..8881136
--- /dev/null
@@ -0,0 +1,329 @@
+%%
+%%
+
+\chapter{DVD Volumes}
+\label{_DVDChapterStart}
+\index[general]{DVD Volumes}
+\index[general]{Writing DVDs}
+\index[general]{DVD Writing}
+\index[general]{Volumes!DVD}
+
+Bacula allows you to specify that you want to write to DVD. However,
+this feature is implemented only in version 1.37 or later.
+You may in fact write to DVD+RW, DVD+R, DVD-R, or DVD-RW 
+media. The actual process used by Bacula is to first write
+the image to a spool directory, then when the Volume reaches
+a certain size or,  at your option, at the end of a Job, Bacula
+will transfer the image from the spool directory to the
+DVD.  The actual work of transferring the image is done
+by a script {\bf dvd-handler}, and the heart of that
+script is a program called {\bf growisofs} which allows
+creating or adding to a DVD ISO filesystem.
+
+You must have {\bf dvd+rw-tools} loaded on your system for DVD writing to
+work.  Please note that the original {\bf dvd+rw-tools} package does {\bf
+NOT} work with Bacula.  You must apply a patch which can be found in the
+{\bf patches} directory of Bacula sources with the name
+{\bf dvd+rw-tools-5.21.4.10.8.bacula.patch} for version 5.21 of the tools,
+or patch {bf dvd+rw-tools-6.1.bacula.patch} if you have version 6.1       
+on your system. Unfortunately, this requires you to build the dvd\_rw-tools
+from source.
+
+Note, some Linux distros such as Debian dvd+rw-tools-7.0-4 package already
+have the patch applied, so please check.
+
+The fact that Bacula cannot use the OS to write directly
+to the DVD makes the whole process a bit more error prone than
+writing to a disk or a tape, but nevertheless, it does work if you
+use some care to set it up properly. However, at the current time
+(version 1.39.30 -- 12 December 2006) we still consider this code to be
+BETA quality.  As a consequence, please do careful testing before relying
+on DVD backups in production.
+
+The remainder of this chapter explains the various directives that you can
+use to control the DVD writing.
+
+\label{DVDdirectives}
+\section{DVD Specific SD Directives} 
+\index[general]{Directives!DVD}
+\index[general]{DVD Specific SD Directives }
+
+The following directives are added to the Storage daemon's
+Device resource.
+
+\begin{description}
+
+\item [Requires Mount = {\it Yes|No}]
+   \index[general]{Requires Mount  }
+   You must set this directive to {\bf yes} for DVD-writers,  and to {\bf no} for
+   all other devices (tapes/files).  This directive indicates if the device
+   requires to be mounted using the {\bf Mount Command}.
+   To be able to write a DVD, the following directives must also be
+   defined: {\bf Mount Point},  {\bf Mount Command}, {\bf Unmount Command} and
+   {\bf Write Part Command}.
+
+\item [Mount Point = {\it directory}]
+   \index[general]{Mount Point}
+   Directory where the device can be mounted. 
+
+\item [Mount Command = {\it name-string}]
+   \index[general]{Mount Command}
+   Command that must be executed to mount the device. Although the
+   device is written directly, the mount command is necessary in
+   order to determine the free space left on the DVD. Before the command is 
+   executed, \%a is replaced with the Archive Device, and \%m with the Mount 
+   Point.
+
+   Most frequently, you will define it as follows:  
+
+\footnotesize
+\begin{verbatim}
+  Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
+\end{verbatim}
+\normalsize
+
+However, if you have defined a mount point in /etc/fstab, you might be
+able to use a mount command such as:
+
+\footnotesize
+\begin{verbatim}
+  Mount Command = "/bin/mount /media/dvd"
+\end{verbatim}
+\normalsize
+
+
+\item [Unmount Command = {\it name-string}]
+   \index[general]{Unmount Command}
+   Command that must be executed to unmount the device. Before the command  is
+   executed, \%a is replaced with the Archive Device, and \%m with the  Mount
+   Point.
+
+   Most frequently, you will define it as follows:  
+
+\footnotesize
+\begin{verbatim}
+  Unmount Command = "/bin/umount %m"
+\end{verbatim}
+\normalsize
+
+\item [Write Part Command = {\it name-string}]
+   \index[general]{Write Part Command  }
+   Command that must be executed to write a part to the device. Before the 
+   command is executed, \%a is replaced with the Archive Device, \%m with the 
+   Mount Point, \%e is replaced with 1 if we are writing the first part,
+   and with 0 otherwise, and \%v with the current part filename.
+
+   For a DVD, you will most frequently specify the Bacula supplied  {\bf
+   dvd-handler} script as follows:  
+
+\footnotesize
+\begin{verbatim}
+  Write Part Command = "/path/dvd-handler %a write %e %v"
+\end{verbatim}
+\normalsize
+
+  Where {\bf /path} is the path to your scripts install directory, and
+  dvd-handler is the Bacula supplied script file.  
+  This command will already be present, but commented out,
+  in the default bacula-sd.conf file. To use it, simply remove
+  the comment (\#) symbol.
+
+
+\item [Free Space Command = {\it name-string}]
+   \index[general]{Free Space Command  }
+   Command that must be executed to check how much free space is left on the 
+   device. Before the command is executed,\%a is replaced with the Archive
+   Device.
+
+   For a DVD, you will most frequently specify the Bacula supplied  {\bf
+   dvd-handler} script as follows:  
+
+\footnotesize
+\begin{verbatim}
+  Free Space Command = "/path/dvd-handler %a free"
+\end{verbatim}
+\normalsize
+
+  Where {\bf /path} is the path to your scripts install directory, and
+  dvd-handler is the Bacula supplied script file.
+  If you want to specify your own command, please look at the code in
+  dvd-handler to see what output Bacula expects from this command.
+  This command will already be present, but commented out,
+  in the default bacula-sd.conf file. To use it, simply remove
+  the comment (\#) symbol.
+
+  If you do not set it, Bacula will expect there is always free space on the
+  device. 
+
+\end{description}
+
+In addition to the directives specified above, you must also
+specify the other standard Device resource directives. Please see the
+sample DVD Device resource in the default bacula-sd.conf file. Be sure
+to specify the raw device name for {\bf Archive Device}. It should 
+be a name such as {\bf /dev/cdrom} or {\bf /media/cdrecorder} or
+{\bf /dev/dvd} depending on your system.  It will not be a name such
+as {\bf /mnt/cdrom}.
+
+Finally, for {\bf growisofs} to work, it must be able to lock
+a certain amount of memory in RAM.  If you have restrictions on
+this function, you may have failures.  Under {\bf bash}, you can
+set this with the following command:
+
+\footnotesize  
+\begin{verbatim}
+ulimit -l unlimited
+\end{verbatim}
+\normalsize
+
+\section{Edit Codes for DVD Directives} 
+\index[general]{Directives!DVD Edit Codes}
+\index[general]{Edit Codes for DVD Directives }
+
+Before submitting the {\bf Mount Command}, {\bf Unmount Command}, 
+{\bf Write Part Command}, or {\bf Free Space Command} directives 
+to the operating system, Bacula performs character substitution of the
+following characters:
+
+\footnotesize
+\begin{verbatim}
+    %% = %
+    %a = Archive device name
+    %e = erase (set if cannot mount and first part)
+    %n = part number
+    %m = mount point
+    %v = last part name (i.e. filename)
+\end{verbatim}
+\normalsize
+
+
+
+\section{DVD Specific Director Directives} 
+\index[general]{Directives!DVD}
+\index[general]{DVD Specific Director Directives }
+
+The following directives are added to the Director's Job resource.
+    
+\label{WritePartAfterJob}
+\begin{description}
+\item [Write Part After Job = \lt{}yes|no\gt{}]
+   \index[general]{Write Part After Job }
+   If this directive is set to {\bf yes} (default {\bf no}), the
+   Volume written to a temporary spool file for the current Job will
+   be written to the DVD as a new part file
+   will be created after the job is finished.  
+
+   It should be set to {\bf yes} when writing to devices that require a mount
+   (for example DVD), so you are sure that the current part, containing
+   this job's data, is written to the device, and that no data is left in
+   the temporary file on the hard disk.  However, on some media, like DVD+R
+   and DVD-R, a lot of space (about 10Mb) is lost everytime a part is
+   written.  So, if you run several jobs each after another, you could set
+   this directive to {\bf no} for all jobs, except the last one, to avoid
+   wasting too much space, but to ensure that the data is written to the
+   medium when all jobs are finished.
+
+   This directive is ignored for devices other than DVDs.
+\end{description}
+
+
+
+\label{DVDpoints}
+\section{Other Points}
+\index[general]{Points!Other }
+\index[general]{Other Points }
+
+\begin{itemize}
+\item Please be sure that you have any automatic DVD mounting
+   disabled before running Bacula -- this includes auto mounting
+   in /etc/fstab, hotplug, ...  If the DVD is automatically
+   mounted by the OS, it will cause problems when Bacula tries
+   to mount/unmount the DVD.
+\item Please be sure that you the directive {\bf Write Part After Job}
+   set to {\bf yes}, otherwise the last part of the data to be
+   written will be left in the DVD spool file and not written to
+   the DVD. The DVD will then be unreadable until this last part
+   is written.  If you have a series of jobs that are run one at
+   a time, you can turn this off until the last job is run.
+\item The current code is not designed to have multiple simultaneous
+   jobs writing to the DVD.  As a consequence, please ensure that
+   only one DVD backup job runs at any time.
+\item Writing and reading of DVD+RW seems to work quite reliably
+   provided you are using the patched dvd+rw-mediainfo programs.
+   On the other hand, we do not have enough information to ensure
+   that DVD-RW or other forms of DVDs work correctly.
+\item DVD+RW supports only about 1000 overwrites. Every time you
+   mount the filesystem read/write will count as one write. This can
+   add up quickly, so it is best to mount your DVD+RW filesystem read-only.
+   Bacula does not need the DVD to be mounted read-write, since it uses
+   the raw device for writing.
+\item Reformatting DVD+RW 10-20 times can apparently make the medium 
+   unusable. Normally you should not have to format or reformat
+   DVD+RW media. If it is necessary, current versions of growisofs will
+   do so automatically.
+\item We have had several problems writing to DVD-RWs (this does NOT
+  concern DVD+RW), because these media have two writing-modes: {\bf
+  Incremental Sequential} and {\bf Restricted Overwrite}.  Depending on
+  your device and the media you use, one of these modes may not work
+  correctly (e.g.  {\bf Incremental Sequential} does not work with my NEC
+  DVD-writer and Verbatim DVD-RW).
+
+  To retrieve the current mode of a DVD-RW, run:
+\begin{verbatim}
+  dvd+rw-mediainfo /dev/xxx
+\end{verbatim}
+  where you replace xxx with your DVD device name.
+
+  {\bf Mounted Media} line should give you the information.
+
+  To set the device to {\bf Restricted Overwrite} mode, run:
+\begin{verbatim}
+  dvd+rw-format /dev/xxx
+\end{verbatim}
+  If you want to set it back to the default {\bf Incremental Sequential} mode, run:
+\begin{verbatim}
+  dvd+rw-format -blank /dev/xxx
+\end{verbatim}
+
+\item Bacula only accepts to write to blank DVDs. To quickly blank a DVD+/-RW, run
+  this command:
+\begin{verbatim}
+  dd if=/dev/zero bs=1024 count=512 | growisofs -Z /dev/xxx=/dev/fd/0
+\end{verbatim}
+  Then, try to mount the device, if it cannot be mounted, it will be considered
+  as blank by Bacula, if it can be mounted, try a full blank (see below).
+
+\item If you wish to blank completely a DVD+/-RW, use the following:
+\begin{verbatim}
+  growisofs -Z /dev/xxx=/dev/zero
+\end{verbatim}
+  where you replace xxx with your DVD device name. However, note that this
+  blanks the whole DVD, which takes quite a long time (16 minutes on mine).
+\item DVD+RW and DVD-RW support only about 1000 overwrites (i.e. don't use the
+same medium for years if you don't want to have problems...).
+
+To write to the DVD the first time use:
+\begin{verbatim}
+  growisofs -Z /dev/xxx filename
+\end{verbatim}
+
+To add additional files (more parts use):
+
+\begin{verbatim}
+  growisofs -M /dev/xxx filename
+\end{verbatim}
+
+The option {\bf -use-the-force-luke=4gms} was added in growisofs 5.20 to
+override growisofs' behavior of always checking for the 4GB limit.
+Normally, this option is recommended for all Linux 2.6.8 kernels or
+greater, since these newer kernels can handle writing more than 4GB.
+See below for more details on this subject.
+
+\item For more information about DVD writing, please look at the
+\elink{dvd+rw-tools homepage}{http://fy.chalmers.se/~appro/linux/DVD+RW/}.
+
+\item According to bug \#912, bscan cannot read multi-volume DVDs.  This is
+on our TODO list, but unless someone submits a patch it is not likely to be
+done any time in the near future. (9 Sept 2007).
+
+\end{itemize}
diff --git a/docs/manuals/fr/misc/dvd.tex b/docs/manuals/fr/misc/dvd.tex
deleted file mode 100644 (file)
index 8881136..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-%%
-%%
-
-\chapter{DVD Volumes}
-\label{_DVDChapterStart}
-\index[general]{DVD Volumes}
-\index[general]{Writing DVDs}
-\index[general]{DVD Writing}
-\index[general]{Volumes!DVD}
-
-Bacula allows you to specify that you want to write to DVD. However,
-this feature is implemented only in version 1.37 or later.
-You may in fact write to DVD+RW, DVD+R, DVD-R, or DVD-RW 
-media. The actual process used by Bacula is to first write
-the image to a spool directory, then when the Volume reaches
-a certain size or,  at your option, at the end of a Job, Bacula
-will transfer the image from the spool directory to the
-DVD.  The actual work of transferring the image is done
-by a script {\bf dvd-handler}, and the heart of that
-script is a program called {\bf growisofs} which allows
-creating or adding to a DVD ISO filesystem.
-
-You must have {\bf dvd+rw-tools} loaded on your system for DVD writing to
-work.  Please note that the original {\bf dvd+rw-tools} package does {\bf
-NOT} work with Bacula.  You must apply a patch which can be found in the
-{\bf patches} directory of Bacula sources with the name
-{\bf dvd+rw-tools-5.21.4.10.8.bacula.patch} for version 5.21 of the tools,
-or patch {bf dvd+rw-tools-6.1.bacula.patch} if you have version 6.1       
-on your system. Unfortunately, this requires you to build the dvd\_rw-tools
-from source.
-
-Note, some Linux distros such as Debian dvd+rw-tools-7.0-4 package already
-have the patch applied, so please check.
-
-The fact that Bacula cannot use the OS to write directly
-to the DVD makes the whole process a bit more error prone than
-writing to a disk or a tape, but nevertheless, it does work if you
-use some care to set it up properly. However, at the current time
-(version 1.39.30 -- 12 December 2006) we still consider this code to be
-BETA quality.  As a consequence, please do careful testing before relying
-on DVD backups in production.
-
-The remainder of this chapter explains the various directives that you can
-use to control the DVD writing.
-
-\label{DVDdirectives}
-\section{DVD Specific SD Directives} 
-\index[general]{Directives!DVD}
-\index[general]{DVD Specific SD Directives }
-
-The following directives are added to the Storage daemon's
-Device resource.
-
-\begin{description}
-
-\item [Requires Mount = {\it Yes|No}]
-   \index[general]{Requires Mount  }
-   You must set this directive to {\bf yes} for DVD-writers,  and to {\bf no} for
-   all other devices (tapes/files).  This directive indicates if the device
-   requires to be mounted using the {\bf Mount Command}.
-   To be able to write a DVD, the following directives must also be
-   defined: {\bf Mount Point},  {\bf Mount Command}, {\bf Unmount Command} and
-   {\bf Write Part Command}.
-
-\item [Mount Point = {\it directory}]
-   \index[general]{Mount Point}
-   Directory where the device can be mounted. 
-
-\item [Mount Command = {\it name-string}]
-   \index[general]{Mount Command}
-   Command that must be executed to mount the device. Although the
-   device is written directly, the mount command is necessary in
-   order to determine the free space left on the DVD. Before the command is 
-   executed, \%a is replaced with the Archive Device, and \%m with the Mount 
-   Point.
-
-   Most frequently, you will define it as follows:  
-
-\footnotesize
-\begin{verbatim}
-  Mount Command = "/bin/mount -t iso9660 -o ro %a %m"
-\end{verbatim}
-\normalsize
-
-However, if you have defined a mount point in /etc/fstab, you might be
-able to use a mount command such as:
-
-\footnotesize
-\begin{verbatim}
-  Mount Command = "/bin/mount /media/dvd"
-\end{verbatim}
-\normalsize
-
-
-\item [Unmount Command = {\it name-string}]
-   \index[general]{Unmount Command}
-   Command that must be executed to unmount the device. Before the command  is
-   executed, \%a is replaced with the Archive Device, and \%m with the  Mount
-   Point.
-
-   Most frequently, you will define it as follows:  
-
-\footnotesize
-\begin{verbatim}
-  Unmount Command = "/bin/umount %m"
-\end{verbatim}
-\normalsize
-
-\item [Write Part Command = {\it name-string}]
-   \index[general]{Write Part Command  }
-   Command that must be executed to write a part to the device. Before the 
-   command is executed, \%a is replaced with the Archive Device, \%m with the 
-   Mount Point, \%e is replaced with 1 if we are writing the first part,
-   and with 0 otherwise, and \%v with the current part filename.
-
-   For a DVD, you will most frequently specify the Bacula supplied  {\bf
-   dvd-handler} script as follows:  
-
-\footnotesize
-\begin{verbatim}
-  Write Part Command = "/path/dvd-handler %a write %e %v"
-\end{verbatim}
-\normalsize
-
-  Where {\bf /path} is the path to your scripts install directory, and
-  dvd-handler is the Bacula supplied script file.  
-  This command will already be present, but commented out,
-  in the default bacula-sd.conf file. To use it, simply remove
-  the comment (\#) symbol.
-
-
-\item [Free Space Command = {\it name-string}]
-   \index[general]{Free Space Command  }
-   Command that must be executed to check how much free space is left on the 
-   device. Before the command is executed,\%a is replaced with the Archive
-   Device.
-
-   For a DVD, you will most frequently specify the Bacula supplied  {\bf
-   dvd-handler} script as follows:  
-
-\footnotesize
-\begin{verbatim}
-  Free Space Command = "/path/dvd-handler %a free"
-\end{verbatim}
-\normalsize
-
-  Where {\bf /path} is the path to your scripts install directory, and
-  dvd-handler is the Bacula supplied script file.
-  If you want to specify your own command, please look at the code in
-  dvd-handler to see what output Bacula expects from this command.
-  This command will already be present, but commented out,
-  in the default bacula-sd.conf file. To use it, simply remove
-  the comment (\#) symbol.
-
-  If you do not set it, Bacula will expect there is always free space on the
-  device. 
-
-\end{description}
-
-In addition to the directives specified above, you must also
-specify the other standard Device resource directives. Please see the
-sample DVD Device resource in the default bacula-sd.conf file. Be sure
-to specify the raw device name for {\bf Archive Device}. It should 
-be a name such as {\bf /dev/cdrom} or {\bf /media/cdrecorder} or
-{\bf /dev/dvd} depending on your system.  It will not be a name such
-as {\bf /mnt/cdrom}.
-
-Finally, for {\bf growisofs} to work, it must be able to lock
-a certain amount of memory in RAM.  If you have restrictions on
-this function, you may have failures.  Under {\bf bash}, you can
-set this with the following command:
-
-\footnotesize  
-\begin{verbatim}
-ulimit -l unlimited
-\end{verbatim}
-\normalsize
-
-\section{Edit Codes for DVD Directives} 
-\index[general]{Directives!DVD Edit Codes}
-\index[general]{Edit Codes for DVD Directives }
-
-Before submitting the {\bf Mount Command}, {\bf Unmount Command}, 
-{\bf Write Part Command}, or {\bf Free Space Command} directives 
-to the operating system, Bacula performs character substitution of the
-following characters:
-
-\footnotesize
-\begin{verbatim}
-    %% = %
-    %a = Archive device name
-    %e = erase (set if cannot mount and first part)
-    %n = part number
-    %m = mount point
-    %v = last part name (i.e. filename)
-\end{verbatim}
-\normalsize
-
-
-
-\section{DVD Specific Director Directives} 
-\index[general]{Directives!DVD}
-\index[general]{DVD Specific Director Directives }
-
-The following directives are added to the Director's Job resource.
-    
-\label{WritePartAfterJob}
-\begin{description}
-\item [Write Part After Job = \lt{}yes|no\gt{}]
-   \index[general]{Write Part After Job }
-   If this directive is set to {\bf yes} (default {\bf no}), the
-   Volume written to a temporary spool file for the current Job will
-   be written to the DVD as a new part file
-   will be created after the job is finished.  
-
-   It should be set to {\bf yes} when writing to devices that require a mount
-   (for example DVD), so you are sure that the current part, containing
-   this job's data, is written to the device, and that no data is left in
-   the temporary file on the hard disk.  However, on some media, like DVD+R
-   and DVD-R, a lot of space (about 10Mb) is lost everytime a part is
-   written.  So, if you run several jobs each after another, you could set
-   this directive to {\bf no} for all jobs, except the last one, to avoid
-   wasting too much space, but to ensure that the data is written to the
-   medium when all jobs are finished.
-
-   This directive is ignored for devices other than DVDs.
-\end{description}
-
-
-
-\label{DVDpoints}
-\section{Other Points}
-\index[general]{Points!Other }
-\index[general]{Other Points }
-
-\begin{itemize}
-\item Please be sure that you have any automatic DVD mounting
-   disabled before running Bacula -- this includes auto mounting
-   in /etc/fstab, hotplug, ...  If the DVD is automatically
-   mounted by the OS, it will cause problems when Bacula tries
-   to mount/unmount the DVD.
-\item Please be sure that you the directive {\bf Write Part After Job}
-   set to {\bf yes}, otherwise the last part of the data to be
-   written will be left in the DVD spool file and not written to
-   the DVD. The DVD will then be unreadable until this last part
-   is written.  If you have a series of jobs that are run one at
-   a time, you can turn this off until the last job is run.
-\item The current code is not designed to have multiple simultaneous
-   jobs writing to the DVD.  As a consequence, please ensure that
-   only one DVD backup job runs at any time.
-\item Writing and reading of DVD+RW seems to work quite reliably
-   provided you are using the patched dvd+rw-mediainfo programs.
-   On the other hand, we do not have enough information to ensure
-   that DVD-RW or other forms of DVDs work correctly.
-\item DVD+RW supports only about 1000 overwrites. Every time you
-   mount the filesystem read/write will count as one write. This can
-   add up quickly, so it is best to mount your DVD+RW filesystem read-only.
-   Bacula does not need the DVD to be mounted read-write, since it uses
-   the raw device for writing.
-\item Reformatting DVD+RW 10-20 times can apparently make the medium 
-   unusable. Normally you should not have to format or reformat
-   DVD+RW media. If it is necessary, current versions of growisofs will
-   do so automatically.
-\item We have had several problems writing to DVD-RWs (this does NOT
-  concern DVD+RW), because these media have two writing-modes: {\bf
-  Incremental Sequential} and {\bf Restricted Overwrite}.  Depending on
-  your device and the media you use, one of these modes may not work
-  correctly (e.g.  {\bf Incremental Sequential} does not work with my NEC
-  DVD-writer and Verbatim DVD-RW).
-
-  To retrieve the current mode of a DVD-RW, run:
-\begin{verbatim}
-  dvd+rw-mediainfo /dev/xxx
-\end{verbatim}
-  where you replace xxx with your DVD device name.
-
-  {\bf Mounted Media} line should give you the information.
-
-  To set the device to {\bf Restricted Overwrite} mode, run:
-\begin{verbatim}
-  dvd+rw-format /dev/xxx
-\end{verbatim}
-  If you want to set it back to the default {\bf Incremental Sequential} mode, run:
-\begin{verbatim}
-  dvd+rw-format -blank /dev/xxx
-\end{verbatim}
-
-\item Bacula only accepts to write to blank DVDs. To quickly blank a DVD+/-RW, run
-  this command:
-\begin{verbatim}
-  dd if=/dev/zero bs=1024 count=512 | growisofs -Z /dev/xxx=/dev/fd/0
-\end{verbatim}
-  Then, try to mount the device, if it cannot be mounted, it will be considered
-  as blank by Bacula, if it can be mounted, try a full blank (see below).
-
-\item If you wish to blank completely a DVD+/-RW, use the following:
-\begin{verbatim}
-  growisofs -Z /dev/xxx=/dev/zero
-\end{verbatim}
-  where you replace xxx with your DVD device name. However, note that this
-  blanks the whole DVD, which takes quite a long time (16 minutes on mine).
-\item DVD+RW and DVD-RW support only about 1000 overwrites (i.e. don't use the
-same medium for years if you don't want to have problems...).
-
-To write to the DVD the first time use:
-\begin{verbatim}
-  growisofs -Z /dev/xxx filename
-\end{verbatim}
-
-To add additional files (more parts use):
-
-\begin{verbatim}
-  growisofs -M /dev/xxx filename
-\end{verbatim}
-
-The option {\bf -use-the-force-luke=4gms} was added in growisofs 5.20 to
-override growisofs' behavior of always checking for the 4GB limit.
-Normally, this option is recommended for all Linux 2.6.8 kernels or
-greater, since these newer kernels can handle writing more than 4GB.
-See below for more details on this subject.
-
-\item For more information about DVD writing, please look at the
-\elink{dvd+rw-tools homepage}{http://fy.chalmers.se/~appro/linux/DVD+RW/}.
-
-\item According to bug \#912, bscan cannot read multi-volume DVDs.  This is
-on our TODO list, but unless someone submits a patch it is not likely to be
-done any time in the near future. (9 Sept 2007).
-
-\end{itemize}
diff --git a/docs/manuals/fr/misc/fdl-en.tex b/docs/manuals/fr/misc/fdl-en.tex
new file mode 100644 (file)
index 0000000..b46cd99
--- /dev/null
@@ -0,0 +1,485 @@
+% TODO: maybe get rid of centering
+
+\chapter{GNU Free Documentation License}
+\index[general]{GNU Free Documentation License}
+\index[general]{License!GNU Free Documentation}        
+
+\label{label_fdl}
+
+ \begin{center}
+
+       Version 1.2, November 2002
+
+
+ Copyright \copyright 2000,2001,2002  Free Software Foundation, Inc.
+ \bigskip
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  
+ \bigskip
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+\end{center}
+
+
+\begin{center}
+{\bf\large Preamble}
+\end{center}
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+\begin{center}
+{\Large\bf 1. APPLICABILITY AND DEFINITIONS}
+\end{center}
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The \textbf{"Document"}, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as \textbf{"you"}.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A \textbf{"Modified Version"} of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A \textbf{"Secondary Section"} is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject.  (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The \textbf{"Invariant Sections"} are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The \textbf{"Cover Texts"} are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A \textbf{"Transparent"} copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not "Transparent" is called \textbf{"Opaque"}.
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification.  Examples of
+transparent image formats include PNG, XCF and JPG.  Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The \textbf{"Title Page"} means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section \textbf{"Entitled XYZ"} means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as \textbf{"Acknowledgements"},
+\textbf{"Dedications"}, \textbf{"Endorsements"}, or \textbf{"History"}.)  
+To \textbf{"Preserve the Title"}
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+\begin{center}
+{\Large\bf 2. VERBATIM COPYING}
+\end{center}
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+\begin{center}
+{\Large\bf 3. COPYING IN QUANTITY}
+\end{center}
+
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+\begin{center}
+{\Large\bf 4. MODIFICATIONS}
+\end{center}
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+\begin{itemize}
+\item[A.] 
+   Use in the Title Page (and on the covers, if any) a title distinct
+   from that of the Document, and from those of previous versions
+   (which should, if there were any, be listed in the History section
+   of the Document).  You may use the same title as a previous version
+   if the original publisher of that version gives permission.
+   
+\item[B.]
+   List on the Title Page, as authors, one or more persons or entities
+   responsible for authorship of the modifications in the Modified
+   Version, together with at least five of the principal authors of the
+   Document (all of its principal authors, if it has fewer than five),
+   unless they release you from this requirement.
+   
+\item[C.]
+   State on the Title page the name of the publisher of the
+   Modified Version, as the publisher.
+   
+\item[D.]
+   Preserve all the copyright notices of the Document.
+   
+\item[E.]
+   Add an appropriate copyright notice for your modifications
+   adjacent to the other copyright notices.
+   
+\item[F.]
+   Include, immediately after the copyright notices, a license notice
+   giving the public permission to use the Modified Version under the
+   terms of this License, in the form shown in the Addendum below.
+   
+\item[G.]
+   Preserve in that license notice the full lists of Invariant Sections
+   and required Cover Texts given in the Document's license notice.
+   
+\item[H.]
+   Include an unaltered copy of this License.
+   
+\item[I.]
+   Preserve the section Entitled "History", Preserve its Title, and add
+   to it an item stating at least the title, year, new authors, and
+   publisher of the Modified Version as given on the Title Page.  If
+   there is no section Entitled "History" in the Document, create one
+   stating the title, year, authors, and publisher of the Document as
+   given on its Title Page, then add an item describing the Modified
+   Version as stated in the previous sentence.
+   
+\item[J.]
+   Preserve the network location, if any, given in the Document for
+   public access to a Transparent copy of the Document, and likewise
+   the network locations given in the Document for previous versions
+   it was based on.  These may be placed in the "History" section.
+   You may omit a network location for a work that was published at
+   least four years before the Document itself, or if the original
+   publisher of the version it refers to gives permission.
+   
+\item[K.]
+   For any section Entitled "Acknowledgements" or "Dedications",
+   Preserve the Title of the section, and preserve in the section all
+   the substance and tone of each of the contributor acknowledgements
+   and/or dedications given therein.
+   
+\item[L.]
+   Preserve all the Invariant Sections of the Document,
+   unaltered in their text and in their titles.  Section numbers
+   or the equivalent are not considered part of the section titles.
+   
+\item[M.]
+   Delete any section Entitled "Endorsements".  Such a section
+   may not be included in the Modified Version.
+   
+\item[N.]
+   Do not retitle any existing section to be Entitled "Endorsements"
+   or to conflict in title with any Invariant Section.
+   
+\item[O.]
+   Preserve any Warranty Disclaimers.
+\end{itemize}
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+\begin{center}
+{\Large\bf 5. COMBINING DOCUMENTS}
+\end{center}
+
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications".  You must delete all sections
+Entitled "Endorsements".
+
+\begin{center}
+{\Large\bf 6. COLLECTIONS OF DOCUMENTS}
+\end{center}
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+\begin{center}
+{\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS}
+\end{center}
+
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+\begin{center}
+{\Large\bf 8. TRANSLATION}
+\end{center}
+
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+\begin{center}
+{\Large\bf 9. TERMINATION}
+\end{center}
+
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+\begin{center}
+{\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE}
+\end{center}
+
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+\begin{center}
+{\Large\bf ADDENDUM: How to use this License for your documents}
+% TODO: this is too long for table of contents
+\end{center}
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+\bigskip
+\begin{quote}
+    Copyright \copyright  YEAR  YOUR NAME.
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the GNU Free Documentation License, Version 1.2
+    or any later version published by the Free Software Foundation;
+    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+    A copy of the license is included in the section entitled "GNU
+    Free Documentation License".
+\end{quote}
+\bigskip
+    
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+\bigskip
+\begin{quote}
+    with the Invariant Sections being LIST THEIR TITLES, with the
+    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+\end{quote}
+\bigskip
+    
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+%---------------------------------------------------------------------
diff --git a/docs/manuals/fr/misc/fdl.tex b/docs/manuals/fr/misc/fdl.tex
deleted file mode 100644 (file)
index b46cd99..0000000
+++ /dev/null
@@ -1,485 +0,0 @@
-% TODO: maybe get rid of centering
-
-\chapter{GNU Free Documentation License}
-\index[general]{GNU Free Documentation License}
-\index[general]{License!GNU Free Documentation}        
-
-\label{label_fdl}
-
- \begin{center}
-
-       Version 1.2, November 2002
-
-
- Copyright \copyright 2000,2001,2002  Free Software Foundation, Inc.
- \bigskip
-     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-  
- \bigskip
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-\end{center}
-
-
-\begin{center}
-{\bf\large Preamble}
-\end{center}
-
-The purpose of this License is to make a manual, textbook, or other
-functional and useful document "free" in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.
-
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense.  It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does.  But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book.  We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-\begin{center}
-{\Large\bf 1. APPLICABILITY AND DEFINITIONS}
-\end{center}
-
-This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License.  Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein.  The \textbf{"Document"}, below,
-refers to any such manual or work.  Any member of the public is a
-licensee, and is addressed as \textbf{"you"}.  You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.
-
-A \textbf{"Modified Version"} of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A \textbf{"Secondary Section"} is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject.  (Thus, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.)  The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The \textbf{"Invariant Sections"} are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.  If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant.  The Document may contain zero
-Invariant Sections.  If the Document does not identify any Invariant
-Sections then there are none.
-
-The \textbf{"Cover Texts"} are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.  A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.
-
-A \textbf{"Transparent"} copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters.  A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text.  A copy that is not "Transparent" is called \textbf{"Opaque"}.
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML, PostScript or PDF designed for human modification.  Examples of
-transparent image formats include PNG, XCF and JPG.  Opaque formats
-include proprietary formats that can be read and edited only by
-proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML, PostScript or PDF produced by some word
-processors for output purposes only.
-
-The \textbf{"Title Page"} means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page.  For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-A section \textbf{"Entitled XYZ"} means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language.  (Here XYZ stands for a
-specific section name mentioned below, such as \textbf{"Acknowledgements"},
-\textbf{"Dedications"}, \textbf{"Endorsements"}, or \textbf{"History"}.)  
-To \textbf{"Preserve the Title"}
-of such a section when you modify the Document means that it remains a
-section "Entitled XYZ" according to this definition.
-
-The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document.  These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.
-
-
-\begin{center}
-{\Large\bf 2. VERBATIM COPYING}
-\end{center}
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License.  You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute.  However, you may accept
-compensation in exchange for copies.  If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-\begin{center}
-{\Large\bf 3. COPYING IN QUANTITY}
-\end{center}
-
-
-If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover.  Both covers must also clearly and legibly identify
-you as the publisher of these copies.  The front cover must present
-the full title with all words of the title equally prominent and
-visible.  You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-
-\begin{center}
-{\Large\bf 4. MODIFICATIONS}
-\end{center}
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it.  In addition, you must do these things in the Modified Version:
-
-\begin{itemize}
-\item[A.] 
-   Use in the Title Page (and on the covers, if any) a title distinct
-   from that of the Document, and from those of previous versions
-   (which should, if there were any, be listed in the History section
-   of the Document).  You may use the same title as a previous version
-   if the original publisher of that version gives permission.
-   
-\item[B.]
-   List on the Title Page, as authors, one or more persons or entities
-   responsible for authorship of the modifications in the Modified
-   Version, together with at least five of the principal authors of the
-   Document (all of its principal authors, if it has fewer than five),
-   unless they release you from this requirement.
-   
-\item[C.]
-   State on the Title page the name of the publisher of the
-   Modified Version, as the publisher.
-   
-\item[D.]
-   Preserve all the copyright notices of the Document.
-   
-\item[E.]
-   Add an appropriate copyright notice for your modifications
-   adjacent to the other copyright notices.
-   
-\item[F.]
-   Include, immediately after the copyright notices, a license notice
-   giving the public permission to use the Modified Version under the
-   terms of this License, in the form shown in the Addendum below.
-   
-\item[G.]
-   Preserve in that license notice the full lists of Invariant Sections
-   and required Cover Texts given in the Document's license notice.
-   
-\item[H.]
-   Include an unaltered copy of this License.
-   
-\item[I.]
-   Preserve the section Entitled "History", Preserve its Title, and add
-   to it an item stating at least the title, year, new authors, and
-   publisher of the Modified Version as given on the Title Page.  If
-   there is no section Entitled "History" in the Document, create one
-   stating the title, year, authors, and publisher of the Document as
-   given on its Title Page, then add an item describing the Modified
-   Version as stated in the previous sentence.
-   
-\item[J.]
-   Preserve the network location, if any, given in the Document for
-   public access to a Transparent copy of the Document, and likewise
-   the network locations given in the Document for previous versions
-   it was based on.  These may be placed in the "History" section.
-   You may omit a network location for a work that was published at
-   least four years before the Document itself, or if the original
-   publisher of the version it refers to gives permission.
-   
-\item[K.]
-   For any section Entitled "Acknowledgements" or "Dedications",
-   Preserve the Title of the section, and preserve in the section all
-   the substance and tone of each of the contributor acknowledgements
-   and/or dedications given therein.
-   
-\item[L.]
-   Preserve all the Invariant Sections of the Document,
-   unaltered in their text and in their titles.  Section numbers
-   or the equivalent are not considered part of the section titles.
-   
-\item[M.]
-   Delete any section Entitled "Endorsements".  Such a section
-   may not be included in the Modified Version.
-   
-\item[N.]
-   Do not retitle any existing section to be Entitled "Endorsements"
-   or to conflict in title with any Invariant Section.
-   
-\item[O.]
-   Preserve any Warranty Disclaimers.
-\end{itemize}
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant.  To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section Entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version.  Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity.  If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-\begin{center}
-{\Large\bf 5. COMBINING DOCUMENTS}
-\end{center}
-
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy.  If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections Entitled "History"
-in the various original documents, forming one section Entitled
-"History"; likewise combine any sections Entitled "Acknowledgements",
-and any sections Entitled "Dedications".  You must delete all sections
-Entitled "Endorsements".
-
-\begin{center}
-{\Large\bf 6. COLLECTIONS OF DOCUMENTS}
-\end{center}
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-
-\begin{center}
-{\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS}
-\end{center}
-
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an "aggregate" if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one half of
-the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.
-
-
-\begin{center}
-{\Large\bf 8. TRANSLATION}
-\end{center}
-
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections.  You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers.  In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.
-
-If a section in the Document is Entitled "Acknowledgements",
-"Dedications", or "History", the requirement (section 4) to Preserve
-its Title (section 1) will typically require changing the actual
-title.
-
-
-\begin{center}
-{\Large\bf 9. TERMINATION}
-\end{center}
-
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License.  Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License.  However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-
-\begin{center}
-{\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE}
-\end{center}
-
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time.  Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.  See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation.  If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-
-\begin{center}
-{\Large\bf ADDENDUM: How to use this License for your documents}
-% TODO: this is too long for table of contents
-\end{center}
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
-\bigskip
-\begin{quote}
-    Copyright \copyright  YEAR  YOUR NAME.
-    Permission is granted to copy, distribute and/or modify this document
-    under the terms of the GNU Free Documentation License, Version 1.2
-    or any later version published by the Free Software Foundation;
-    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
-    A copy of the license is included in the section entitled "GNU
-    Free Documentation License".
-\end{quote}
-\bigskip
-    
-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the "with...Texts." line with this:
-
-\bigskip
-\begin{quote}
-    with the Invariant Sections being LIST THEIR TITLES, with the
-    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-\end{quote}
-\bigskip
-    
-If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
-
-%---------------------------------------------------------------------
diff --git a/docs/manuals/fr/misc/gpl-en.tex b/docs/manuals/fr/misc/gpl-en.tex
new file mode 100644 (file)
index 0000000..a368afc
--- /dev/null
@@ -0,0 +1,420 @@
+%%
+%%
+
+\section*{GNU General Public License}
+\label{GplChapter}
+\index[general]{GNU General Public License }
+\index[general]{License!GNU General Public }
+
+\elink{image of a Philosophical
+GNU}{http://www.gnu.org/graphics/philosophicalgnu.html} 
+
+\begin{itemize}
+\item 
+   \elink{What to do if you see a possible GPL
+   violation}{http://www.gnu.org/copyleft/gpl-violation.html}  
+\item 
+   \elink{Translations of the
+   GPL}{http://www.gnu.org/copyleft/copyleft.html\#translations} 
+\end{itemize}
+
+
+\section{Table of Contents}
+\index[general]{Table of Contents }
+\index[general]{Contents!Table of }
+
+\begin{itemize}
+\item 
+   \label{TOC1}
+   \ilink{GNU GENERAL PUBLIC LICENSE}{SEC1}  
+
+\begin{itemize}
+\item 
+   \label{TOC2}
+   \ilink{Preamble}{SEC2}  
+\item 
+   \label{TOC3}
+   \ilink{TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+MODIFICATION}{SEC3}  
+\item 
+   \label{TOC4}
+   \ilink{How to Apply These Terms to Your New Programs}{SEC4} 
+\end{itemize}
+
+\end{itemize}
+
+
+\section{GNU GENERAL PUBLIC LICENSE}       
+\label{SEC1}
+\index[general]{GNU GENERAL PUBLIC LICENSE }
+\index[general]{LICENSE!GNU GENERAL PUBLIC }
+
+Version 2, June 1991 
+
+\footnotesize
+\begin{verbatim}
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+\end{verbatim}
+\normalsize
+
+\section{Preamble}
+\label{SEC2}
+\index[general]{Preamble }
+
+The licenses for most software are designed to take away your freedom to share
+and change it. By contrast, the GNU General Public License is intended to
+guarantee your freedom to share and change free software\verb:--:to make sure the
+software is free for all its users. This General Public License applies to
+most of the Free Software Foundation's software and to any other program whose
+authors commit to using it. (Some other Free Software Foundation software is
+covered by the GNU Library General Public License instead.) You can apply it
+to your programs, too. 
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom to
+distribute copies of free software (and charge for this service if you wish),
+that you receive source code or can get it if you want it, that you can change
+the software or use pieces of it in new free programs; and that you know you
+can do these things. 
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These
+restrictions translate to certain responsibilities for you if you distribute
+copies of the software, or if you modify it. 
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must
+make sure that they, too, receive or can get the source code. And you must
+show them these terms so they know their rights. 
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software. 
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients to
+know that what they have is not the original, so that any problems introduced
+by others will not reflect on the original authors' reputations. 
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program proprietary.
+To prevent this, we have made it clear that any patent must be licensed for
+everyone's free use or not licensed at all. 
+
+The precise terms and conditions for copying, distribution and modification
+follow. 
+
+\section{TERMS AND CONDITIONS}
+\label{SEC3}
+\index[general]{CONDITIONS!TERMS AND }
+\index[general]{TERMS AND CONDITIONS }
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+{\bf 0.} This License applies to any program or other work which contains a
+notice placed by the copyright holder saying it may be distributed under the
+terms of this General Public License. The "Program", below, refers to any
+such program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter,
+translation is included without limitation in the term "modification".) Each
+licensee is addressed as "you". 
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its
+contents constitute a work based on the Program (independent of having been
+made by running the Program). Whether that is true depends on what the Program
+does. 
+
+{\bf 1.} You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program. 
+
+You may charge a fee for the physical act of transferring a copy, and you may
+at your option offer warranty protection in exchange for a fee. 
+
+{\bf 2.} You may modify your copy or copies of the Program or any portion of
+it, thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions: 
+
+\begin{itemize}
+\item {\bf a)} You must cause the modified files to carry prominent  notices
+   stating that you changed the files and the date of any change.  
+
+\item {\bf b)} You must cause any work that you distribute or  publish, that
+   in whole or in part contains or is derived from the Program or  any part
+   thereof, to be licensed as a whole at no charge to all third parties  under
+   the terms of this License.  
+
+\item {\bf c)} If the modified program normally reads commands  interactively
+   when run, you must cause it, when started running for such  interactive use in
+   the most ordinary way, to print or display an announcement  including an
+   appropriate copyright notice and a notice that there is no  warranty (or else,
+   saying that you provide a warranty) and that users may  redistribute the
+   program under these conditions, and telling the user how to  view a copy of
+   this License. (Exception: if the Program itself is interactive  but does not
+   normally print such an announcement, your work based on the  Program is not
+   required to print an announcement.) 
+\end{itemize}
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be reasonably
+considered independent and separate works in themselves, then this License,
+and its terms, do not apply to those sections when you distribute them as
+separate works. But when you distribute the same sections as part of a whole
+which is a work based on the Program, the distribution of the whole must be on
+the terms of this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it. 
+
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise the
+right to control the distribution of derivative or collective works based on
+the Program. 
+
+In addition, mere aggregation of another work not based on the Program with
+the Program (or with a work based on the Program) on a volume of a storage or
+distribution medium does not bring the other work under the scope of this
+License. 
+
+{\bf 3.} You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1 and
+2 above provided that you also do one of the following: 
+
+\begin{itemize}
+\item {\bf a)} Accompany it with the complete corresponding  machine-readable
+   source code, which must be distributed under the terms of  Sections 1 and 2
+   above on a medium customarily used for software interchange;  or,  
+
+\item {\bf b)} Accompany it with a written offer, valid for at least  three
+   years, to give any third party, for a charge no more than your cost of 
+   physically performing source distribution, a complete machine-readable copy of
+   the corresponding source code, to be distributed under the terms of Sections
+   1  and 2 above on a medium customarily used for software interchange; or,  
+
+\item {\bf c)} Accompany it with the information you received as to  the offer
+   to distribute corresponding source code. (This alternative is  allowed only
+   for noncommercial distribution and only if you received the  program in object
+   code or executable form with such an offer, in accord with  Subsection b
+   above.) 
+\end{itemize}
+
+The source code for a work means the preferred form of the work for making
+modifications to it. For an executable work, complete source code means all
+the source code for all modules it contains, plus any associated interface
+definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel, and
+so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable. 
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code. 
+
+{\bf 4.} You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt otherwise to
+copy, modify, sublicense or distribute the Program is void, and will
+automatically terminate your rights under this License. However, parties who
+have received copies, or rights, from you under this License will not have
+their licenses terminated so long as such parties remain in full compliance. 
+
+{\bf 5.} You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or distribute
+the Program or its derivative works. These actions are prohibited by law if
+you do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance of
+this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it. 
+
+{\bf 6.} Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License. 
+
+{\bf 7.} If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or otherwise)
+that contradict the conditions of this License, they do not excuse you from
+the conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program. 
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances. 
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that
+choice. 
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License. 
+
+{\bf 8.} If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the original
+copyright holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In
+such case, this License incorporates the limitation as if written in the body
+of this License. 
+
+{\bf 9.} The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address
+new problems or concerns. 
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any later
+version", you have the option of following the terms and conditions either of
+that version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of this License,
+you may choose any version ever published by the Free Software Foundation. 
+
+{\bf 10.} If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author to
+ask for permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally. 
+
+{\bf NO WARRANTY} 
+
+{\bf 11.} BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE
+THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
+IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
+THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
+PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
+CORRECTION. 
+
+{\bf 12.} IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
+LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
+THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES. 
+
+END OF TERMS AND CONDITIONS 
+
+\section{How to Apply These Terms to Your New Programs}
+\label{SEC4}
+\index[general]{Programs!How to Apply These Terms to Your New }
+\index[general]{How to Apply These Terms to Your New Programs }
+
+If you develop a new program, and you want it to be of the greatest possible
+use to the public, the best way to achieve this is to make it free software
+which everyone can redistribute and change under these terms. 
+
+To do so, attach the following notices to the program. It is safest to attach
+them to the start of each source file to most effectively convey the exclusion
+of warranty; and each file should have at least the "copyright" line and a
+pointer to where the full notice is found. 
+
+\footnotesize
+\begin{verbatim}
+{\em one line to give the program's name and an idea of what it does.}
+Copyright (C) {\em yyyy}  {\em name of author}
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+02110-1301  USA
+\end{verbatim}
+\normalsize
+
+Also add information on how to contact you by electronic and paper mail. 
+
+If the program is interactive, make it output a short notice like this when it
+starts in an interactive mode: 
+
+\footnotesize
+\begin{verbatim}
+Gnomovision version 69, Copyright (C) {\em year} {\em name of author}
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
+type `show w'.  This is free software, and you are welcome
+to redistribute it under certain conditions; type `show c'
+for details.
+\end{verbatim}
+\normalsize
+
+The hypothetical commands {\tt `show w'} and {\tt `show c'} should show the
+appropriate parts of the General Public License. Of course, the commands you
+use may be called something other than {\tt `show w'} and {\tt `show c'}; they
+could even be mouse-clicks or menu items\verb:--:whatever suits your program. 
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names: 
+
+\footnotesize
+\begin{verbatim}
+Yoyodyne, Inc., hereby disclaims all copyright
+interest in the program `Gnomovision'
+(which makes passes at compilers) written
+by James Hacker.
+{\em signature of Ty Coon}, 1 April 1989
+Ty Coon, President of Vice
+\end{verbatim}
+\normalsize
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General Public
+License instead of this License. 
+Return to 
+\elink{GNU's home page}{http://www.gnu.org/home.html}. 
+
+FSF \& GNU inquiries \& questions to 
+\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. Other 
+\elink{ways to contact}{http://www.gnu.org/home.html\#ContactInfo} the FSF. 
+
+Comments on these web pages to 
+\elink{webmasters@www.gnu.org}{mailto:webmasters@www.gnu.org}, send other
+questions to 
+\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. 
+
+Copyright notice above.
+Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+Boston, MA  02110-1301  USA
+
+Updated: 3 Jan 2000 rms 
diff --git a/docs/manuals/fr/misc/gpl.tex b/docs/manuals/fr/misc/gpl.tex
deleted file mode 100644 (file)
index a368afc..0000000
+++ /dev/null
@@ -1,420 +0,0 @@
-%%
-%%
-
-\section*{GNU General Public License}
-\label{GplChapter}
-\index[general]{GNU General Public License }
-\index[general]{License!GNU General Public }
-
-\elink{image of a Philosophical
-GNU}{http://www.gnu.org/graphics/philosophicalgnu.html} 
-
-\begin{itemize}
-\item 
-   \elink{What to do if you see a possible GPL
-   violation}{http://www.gnu.org/copyleft/gpl-violation.html}  
-\item 
-   \elink{Translations of the
-   GPL}{http://www.gnu.org/copyleft/copyleft.html\#translations} 
-\end{itemize}
-
-
-\section{Table of Contents}
-\index[general]{Table of Contents }
-\index[general]{Contents!Table of }
-
-\begin{itemize}
-\item 
-   \label{TOC1}
-   \ilink{GNU GENERAL PUBLIC LICENSE}{SEC1}  
-
-\begin{itemize}
-\item 
-   \label{TOC2}
-   \ilink{Preamble}{SEC2}  
-\item 
-   \label{TOC3}
-   \ilink{TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
-MODIFICATION}{SEC3}  
-\item 
-   \label{TOC4}
-   \ilink{How to Apply These Terms to Your New Programs}{SEC4} 
-\end{itemize}
-
-\end{itemize}
-
-
-\section{GNU GENERAL PUBLIC LICENSE}       
-\label{SEC1}
-\index[general]{GNU GENERAL PUBLIC LICENSE }
-\index[general]{LICENSE!GNU GENERAL PUBLIC }
-
-Version 2, June 1991 
-
-\footnotesize
-\begin{verbatim}
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-\end{verbatim}
-\normalsize
-
-\section{Preamble}
-\label{SEC2}
-\index[general]{Preamble }
-
-The licenses for most software are designed to take away your freedom to share
-and change it. By contrast, the GNU General Public License is intended to
-guarantee your freedom to share and change free software\verb:--:to make sure the
-software is free for all its users. This General Public License applies to
-most of the Free Software Foundation's software and to any other program whose
-authors commit to using it. (Some other Free Software Foundation software is
-covered by the GNU Library General Public License instead.) You can apply it
-to your programs, too. 
-
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the freedom to
-distribute copies of free software (and charge for this service if you wish),
-that you receive source code or can get it if you want it, that you can change
-the software or use pieces of it in new free programs; and that you know you
-can do these things. 
-
-To protect your rights, we need to make restrictions that forbid anyone to
-deny you these rights or to ask you to surrender the rights. These
-restrictions translate to certain responsibilities for you if you distribute
-copies of the software, or if you modify it. 
-
-For example, if you distribute copies of such a program, whether gratis or for
-a fee, you must give the recipients all the rights that you have. You must
-make sure that they, too, receive or can get the source code. And you must
-show them these terms so they know their rights. 
-
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy, distribute
-and/or modify the software. 
-
-Also, for each author's protection and ours, we want to make certain that
-everyone understands that there is no warranty for this free software. If the
-software is modified by someone else and passed on, we want its recipients to
-know that what they have is not the original, so that any problems introduced
-by others will not reflect on the original authors' reputations. 
-
-Finally, any free program is threatened constantly by software patents. We
-wish to avoid the danger that redistributors of a free program will
-individually obtain patent licenses, in effect making the program proprietary.
-To prevent this, we have made it clear that any patent must be licensed for
-everyone's free use or not licensed at all. 
-
-The precise terms and conditions for copying, distribution and modification
-follow. 
-
-\section{TERMS AND CONDITIONS}
-\label{SEC3}
-\index[general]{CONDITIONS!TERMS AND }
-\index[general]{TERMS AND CONDITIONS }
-
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
-
-{\bf 0.} This License applies to any program or other work which contains a
-notice placed by the copyright holder saying it may be distributed under the
-terms of this General Public License. The "Program", below, refers to any
-such program or work, and a "work based on the Program" means either the
-Program or any derivative work under copyright law: that is to say, a work
-containing the Program or a portion of it, either verbatim or with
-modifications and/or translated into another language. (Hereinafter,
-translation is included without limitation in the term "modification".) Each
-licensee is addressed as "you". 
-
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running the Program is
-not restricted, and the output from the Program is covered only if its
-contents constitute a work based on the Program (independent of having been
-made by running the Program). Whether that is true depends on what the Program
-does. 
-
-{\bf 1.} You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this License
-and to the absence of any warranty; and give any other recipients of the
-Program a copy of this License along with the Program. 
-
-You may charge a fee for the physical act of transferring a copy, and you may
-at your option offer warranty protection in exchange for a fee. 
-
-{\bf 2.} You may modify your copy or copies of the Program or any portion of
-it, thus forming a work based on the Program, and copy and distribute such
-modifications or work under the terms of Section 1 above, provided that you
-also meet all of these conditions: 
-
-\begin{itemize}
-\item {\bf a)} You must cause the modified files to carry prominent  notices
-   stating that you changed the files and the date of any change.  
-
-\item {\bf b)} You must cause any work that you distribute or  publish, that
-   in whole or in part contains or is derived from the Program or  any part
-   thereof, to be licensed as a whole at no charge to all third parties  under
-   the terms of this License.  
-
-\item {\bf c)} If the modified program normally reads commands  interactively
-   when run, you must cause it, when started running for such  interactive use in
-   the most ordinary way, to print or display an announcement  including an
-   appropriate copyright notice and a notice that there is no  warranty (or else,
-   saying that you provide a warranty) and that users may  redistribute the
-   program under these conditions, and telling the user how to  view a copy of
-   this License. (Exception: if the Program itself is interactive  but does not
-   normally print such an announcement, your work based on the  Program is not
-   required to print an announcement.) 
-\end{itemize}
-
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be reasonably
-considered independent and separate works in themselves, then this License,
-and its terms, do not apply to those sections when you distribute them as
-separate works. But when you distribute the same sections as part of a whole
-which is a work based on the Program, the distribution of the whole must be on
-the terms of this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it. 
-
-Thus, it is not the intent of this section to claim rights or contest your
-rights to work written entirely by you; rather, the intent is to exercise the
-right to control the distribution of derivative or collective works based on
-the Program. 
-
-In addition, mere aggregation of another work not based on the Program with
-the Program (or with a work based on the Program) on a volume of a storage or
-distribution medium does not bring the other work under the scope of this
-License. 
-
-{\bf 3.} You may copy and distribute the Program (or a work based on it, under
-Section 2) in object code or executable form under the terms of Sections 1 and
-2 above provided that you also do one of the following: 
-
-\begin{itemize}
-\item {\bf a)} Accompany it with the complete corresponding  machine-readable
-   source code, which must be distributed under the terms of  Sections 1 and 2
-   above on a medium customarily used for software interchange;  or,  
-
-\item {\bf b)} Accompany it with a written offer, valid for at least  three
-   years, to give any third party, for a charge no more than your cost of 
-   physically performing source distribution, a complete machine-readable copy of
-   the corresponding source code, to be distributed under the terms of Sections
-   1  and 2 above on a medium customarily used for software interchange; or,  
-
-\item {\bf c)} Accompany it with the information you received as to  the offer
-   to distribute corresponding source code. (This alternative is  allowed only
-   for noncommercial distribution and only if you received the  program in object
-   code or executable form with such an offer, in accord with  Subsection b
-   above.) 
-\end{itemize}
-
-The source code for a work means the preferred form of the work for making
-modifications to it. For an executable work, complete source code means all
-the source code for all modules it contains, plus any associated interface
-definition files, plus the scripts used to control compilation and
-installation of the executable. However, as a special exception, the source
-code distributed need not include anything that is normally distributed (in
-either source or binary form) with the major components (compiler, kernel, and
-so on) of the operating system on which the executable runs, unless that
-component itself accompanies the executable. 
-
-If distribution of executable or object code is made by offering access to
-copy from a designated place, then offering equivalent access to copy the
-source code from the same place counts as distribution of the source code,
-even though third parties are not compelled to copy the source along with the
-object code. 
-
-{\bf 4.} You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt otherwise to
-copy, modify, sublicense or distribute the Program is void, and will
-automatically terminate your rights under this License. However, parties who
-have received copies, or rights, from you under this License will not have
-their licenses terminated so long as such parties remain in full compliance. 
-
-{\bf 5.} You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or distribute
-the Program or its derivative works. These actions are prohibited by law if
-you do not accept this License. Therefore, by modifying or distributing the
-Program (or any work based on the Program), you indicate your acceptance of
-this License to do so, and all its terms and conditions for copying,
-distributing or modifying the Program or works based on it. 
-
-{\bf 6.} Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these terms and
-conditions. You may not impose any further restrictions on the recipients'
-exercise of the rights granted herein. You are not responsible for enforcing
-compliance by third parties to this License. 
-
-{\bf 7.} If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or otherwise)
-that contradict the conditions of this License, they do not excuse you from
-the conditions of this License. If you cannot distribute so as to satisfy
-simultaneously your obligations under this License and any other pertinent
-obligations, then as a consequence you may not distribute the Program at all.
-For example, if a patent license would not permit royalty-free redistribution
-of the Program by all those who receive copies directly or indirectly through
-you, then the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program. 
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and
-the section as a whole is intended to apply in other circumstances. 
-
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system, which is implemented by public license practices. Many
-people have made generous contributions to the wide range of software
-distributed through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing to
-distribute software through any other system and a licensee cannot impose that
-choice. 
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License. 
-
-{\bf 8.} If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the original
-copyright holder who places the Program under this License may add an explicit
-geographical distribution limitation excluding those countries, so that
-distribution is permitted only in or among countries not thus excluded. In
-such case, this License incorporates the limitation as if written in the body
-of this License. 
-
-{\bf 9.} The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will be
-similar in spirit to the present version, but may differ in detail to address
-new problems or concerns. 
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any later
-version", you have the option of following the terms and conditions either of
-that version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of this License,
-you may choose any version ever published by the Free Software Foundation. 
-
-{\bf 10.} If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author to
-ask for permission. For software which is copyrighted by the Free Software
-Foundation, write to the Free Software Foundation; we sometimes make
-exceptions for this. Our decision will be guided by the two goals of
-preserving the free status of all derivatives of our free software and of
-promoting the sharing and reuse of software generally. 
-
-{\bf NO WARRANTY} 
-
-{\bf 11.} BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE
-THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
-IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
-THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
-PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
-CORRECTION. 
-
-{\bf 12.} IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
-LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
-THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES. 
-
-END OF TERMS AND CONDITIONS 
-
-\section{How to Apply These Terms to Your New Programs}
-\label{SEC4}
-\index[general]{Programs!How to Apply These Terms to Your New }
-\index[general]{How to Apply These Terms to Your New Programs }
-
-If you develop a new program, and you want it to be of the greatest possible
-use to the public, the best way to achieve this is to make it free software
-which everyone can redistribute and change under these terms. 
-
-To do so, attach the following notices to the program. It is safest to attach
-them to the start of each source file to most effectively convey the exclusion
-of warranty; and each file should have at least the "copyright" line and a
-pointer to where the full notice is found. 
-
-\footnotesize
-\begin{verbatim}
-{\em one line to give the program's name and an idea of what it does.}
-Copyright (C) {\em yyyy}  {\em name of author}
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-02110-1301  USA
-\end{verbatim}
-\normalsize
-
-Also add information on how to contact you by electronic and paper mail. 
-
-If the program is interactive, make it output a short notice like this when it
-starts in an interactive mode: 
-
-\footnotesize
-\begin{verbatim}
-Gnomovision version 69, Copyright (C) {\em year} {\em name of author}
-Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
-type `show w'.  This is free software, and you are welcome
-to redistribute it under certain conditions; type `show c'
-for details.
-\end{verbatim}
-\normalsize
-
-The hypothetical commands {\tt `show w'} and {\tt `show c'} should show the
-appropriate parts of the General Public License. Of course, the commands you
-use may be called something other than {\tt `show w'} and {\tt `show c'}; they
-could even be mouse-clicks or menu items\verb:--:whatever suits your program. 
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names: 
-
-\footnotesize
-\begin{verbatim}
-Yoyodyne, Inc., hereby disclaims all copyright
-interest in the program `Gnomovision'
-(which makes passes at compilers) written
-by James Hacker.
-{\em signature of Ty Coon}, 1 April 1989
-Ty Coon, President of Vice
-\end{verbatim}
-\normalsize
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General Public
-License instead of this License. 
-Return to 
-\elink{GNU's home page}{http://www.gnu.org/home.html}. 
-
-FSF \& GNU inquiries \& questions to 
-\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. Other 
-\elink{ways to contact}{http://www.gnu.org/home.html\#ContactInfo} the FSF. 
-
-Comments on these web pages to 
-\elink{webmasters@www.gnu.org}{mailto:webmasters@www.gnu.org}, send other
-questions to 
-\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. 
-
-Copyright notice above.
-Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-Boston, MA  02110-1301  USA
-
-Updated: 3 Jan 2000 rms 
diff --git a/docs/manuals/fr/misc/internaldb-en.tex b/docs/manuals/fr/misc/internaldb-en.tex
new file mode 100644 (file)
index 0000000..65cd0ea
--- /dev/null
@@ -0,0 +1,76 @@
+%%
+%%
+
+\chapter{The internal database is not supported, please do not
+use it.}
+\label{InternalDbChapter}
+\index[general]{Use it!The internal database is not supported please
+do not }
+\index[general]{The internal database is not supported, please do not
+use it. }
+
+\section{Internal Bacula Database}
+\index[general]{Internal Bacula Database }
+\index[general]{Database!Internal Bacula }
+
+Previously it was intended to be used primarily by Bacula developers for
+testing; although SQLite is also a good choice for this. We do not recommend
+its use in general. 
+
+This database is simplistic in that it consists entirely of Bacula's internal
+structures appended sequentially to a file. Consequently, it is in most cases
+inappropriate for sites with many clients or systems with large numbers of
+files, or long-term production environments. 
+
+Below, you will find a table comparing the features available with SQLite and
+MySQL and with the internal Bacula database. At the current time, you cannot
+dynamically switch from one to the other, but must rebuild the Bacula source
+code. If you wish to experiment with both, it is possible to build both
+versions of Bacula and install them into separate directories. 
+
+\addcontentsline{lot}{table}{SQLite vs MySQL Database Comparison}
+\begin{longtable}{|l|l|l|}
+ \hline 
+\multicolumn{1}{|c| }{\bf Feature } & \multicolumn{1}{c| }{\bf SQLite or MySQL
+ } & \multicolumn{1}{c| }{\bf Bacula  } \\
+ \hline 
+{Job Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Media Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{FileName Record  } & {Yes  } & {No  } \\
+ \hline 
+{File Record  } & {Yes  } & {No  } \\
+ \hline 
+{FileSet Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Pool Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Client Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{JobMedia Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{List Job Records  } & {Yes  } & {Yes  } \\
+ \hline 
+{List Media Records  } & {Yes  } & {Yes  } \\
+ \hline 
+{List Pool Records  } & {Yes  } & {Yes  } \\
+ \hline 
+{List JobMedia Records } & {Yes  } & {Yes  } \\
+ \hline 
+{Delete Pool Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Delete Media Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Update Pool Record  } & {Yes  } & {Yes  } \\
+ \hline 
+{Implement Verify  } & {Yes  } & {No  } \\
+ \hline 
+{MD5 Signatures  } & {Yes  } & {No }
+\\ \hline 
+
+\end{longtable}
+
+In addition, since there is no SQL available, the Console commands: {\bf
+sqlquery}, {\bf query}, {\bf retention}, and any other command that directly
+uses SQL are not available with the Internal database. 
diff --git a/docs/manuals/fr/misc/internaldb.tex b/docs/manuals/fr/misc/internaldb.tex
deleted file mode 100644 (file)
index 65cd0ea..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-%%
-%%
-
-\chapter{The internal database is not supported, please do not
-use it.}
-\label{InternalDbChapter}
-\index[general]{Use it!The internal database is not supported please
-do not }
-\index[general]{The internal database is not supported, please do not
-use it. }
-
-\section{Internal Bacula Database}
-\index[general]{Internal Bacula Database }
-\index[general]{Database!Internal Bacula }
-
-Previously it was intended to be used primarily by Bacula developers for
-testing; although SQLite is also a good choice for this. We do not recommend
-its use in general. 
-
-This database is simplistic in that it consists entirely of Bacula's internal
-structures appended sequentially to a file. Consequently, it is in most cases
-inappropriate for sites with many clients or systems with large numbers of
-files, or long-term production environments. 
-
-Below, you will find a table comparing the features available with SQLite and
-MySQL and with the internal Bacula database. At the current time, you cannot
-dynamically switch from one to the other, but must rebuild the Bacula source
-code. If you wish to experiment with both, it is possible to build both
-versions of Bacula and install them into separate directories. 
-
-\addcontentsline{lot}{table}{SQLite vs MySQL Database Comparison}
-\begin{longtable}{|l|l|l|}
- \hline 
-\multicolumn{1}{|c| }{\bf Feature } & \multicolumn{1}{c| }{\bf SQLite or MySQL
- } & \multicolumn{1}{c| }{\bf Bacula  } \\
- \hline 
-{Job Record  } & {Yes  } & {Yes  } \\
- \hline 
-{Media Record  } & {Yes  } & {Yes  } \\
- \hline 
-{FileName Record  } & {Yes  } & {No  } \\
- \hline 
-{File Record  } & {Yes  } & {No  } \\
- \hline 
-{FileSet Record  } & {Yes  } & {Yes  } \\
- \hline 
-{Pool Record  } & {Yes  } & {Yes  } \\
- \hline 
-{Client Record  } & {Yes  } & {Yes  } \\
- \hline 
-{JobMedia Record  } & {Yes  } & {Yes  } \\
- \hline 
-{List Job Records  } & {Yes  } & {Yes  } \\
- \hline 
-{List Media Records  } & {Yes  } & {Yes  } \\
- \hline 
-{List Pool Records  } & {Yes  } & {Yes  } \\
- \hline 
-{List JobMedia Records } & {Yes  } & {Yes  } \\
- \hline 
-{Delete Pool Record  } & {Yes  } & {Yes  } \\
- \hline 
-{Delete Media Record  } & {Yes  } & {Yes  } \\
- \hline 
-{Update Pool Record  } & {Yes  } & {Yes  } \\
- \hline 
-{Implement Verify  } & {Yes  } & {No  } \\
- \hline 
-{MD5 Signatures  } & {Yes  } & {No }
-\\ \hline 
-
-\end{longtable}
-
-In addition, since there is no SQL available, the Console commands: {\bf
-sqlquery}, {\bf query}, {\bf retention}, and any other command that directly
-uses SQL are not available with the Internal database. 
diff --git a/docs/manuals/fr/misc/lesser-en.tex b/docs/manuals/fr/misc/lesser-en.tex
new file mode 100644 (file)
index 0000000..bc3c312
--- /dev/null
@@ -0,0 +1,573 @@
+%%
+%%
+
+\section*{GNU Lesser General Public License}
+\label{LesserChapter}
+\index[general]{GNU Lesser General Public License }
+\index[general]{License!GNU Lesser General Public }
+
+\elink{image of a Philosophical GNU}
+{http://www.gnu.org/graphics/philosophicalgnu.html} [  
+\elink{English}{http://www.gnu.org/copyleft/lesser.html} | 
+\elink{Japanese}{http://www.gnu.org/copyleft/lesser.ja.html} ] 
+
+\begin{itemize}
+\item 
+   \elink{Why you shouldn't use the Lesser GPL for your next
+   library}{http://www.gnu.org/philosophy/why-not-lgpl.html}  
+\item 
+   \elink{What to do if you see a possible LGPL
+   violation}{http://www.gnu.org/copyleft/gpl-violation.html}
+\item 
+   \elink{Translations of the LGPL}
+{http://www.gnu.org/copyleft/copyleft.html\#translationsLGPL}  
+\item The GNU Lesser General Public License as a  
+   \elink{text file}{http://www.gnu.org/copyleft/lesser.txt}  
+\item The GNU Lesser General Public License as a  
+   \elink{Texinfo}{http://www.gnu.org/copyleft/lesser.texi} file 
+   \end{itemize}
+
+
+This GNU Lesser General Public License counts as the successor of the GNU
+Library General Public License. For an explanation of why this change was
+necessary, read the 
+\elink{Why you shouldn't use the Lesser GPL for your next
+library}{http://www.gnu.org/philosophy/why-not-lgpl.html} article. 
+
+\section{Table of Contents}
+\index[general]{Table of Contents }
+\index[general]{Contents!Table of }
+
+\begin{itemize}
+\item 
+   \label{TOC12}
+   \ilink{GNU LESSER GENERAL PUBLIC LICENSE}{SEC12} 
+
+\begin{itemize}
+\item 
+   \label{TOC23}
+   \ilink{Preamble}{SEC23} 
+\item 
+   \label{TOC34}
+   \ilink{TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+MODIFICATION}{SEC34} 
+\item 
+   \label{TOC45}
+   \ilink{How to Apply These Terms to Your New Libraries}{SEC45} 
+\end{itemize}
+
+\end{itemize}
+
+
+\section{GNU LESSER GENERAL PUBLIC LICENSE}
+\label{SEC12}
+\index[general]{LICENSE!GNU LESSER GENERAL PUBLIC }
+\index[general]{GNU LESSER GENERAL PUBLIC LICENSE }
+
+Version 2.1, February 1999 
+
+\footnotesize
+\begin{verbatim}
+Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+\end{verbatim}
+\normalsize
+
+\section{Preamble}
+\label{SEC23}
+\index[general]{Preamble }
+
+The licenses for most software are designed to take away your freedom to share
+and change it. By contrast, the GNU General Public Licenses are intended to
+guarantee your freedom to share and change free software\verb:--:to make sure the
+software is free for all its users. 
+
+This license, the Lesser General Public License, applies to some specially
+designated software packages\verb:--:typically libraries\verb:--:of the Free Software
+Foundation and other authors who decide to use it. You can use it too, but we
+suggest you first think carefully about whether this license or the ordinary
+General Public License is the better strategy to use in any particular case,
+based on the explanations below. 
+
+When we speak of free software, we are referring to freedom of use, not price.
+Our General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish); that you receive source code or can get it if you want it; that you
+can change the software and use pieces of it in new free programs; and that
+you are informed that you can do these things. 
+
+To protect your rights, we need to make restrictions that forbid distributors
+to deny you these rights or to ask you to surrender these rights. These
+restrictions translate to certain responsibilities for you if you distribute
+copies of the library or if you modify it. 
+
+For example, if you distribute copies of the library, whether gratis or for a
+fee, you must give the recipients all the rights that we gave you. You must
+make sure that they, too, receive or can get the source code. If you link
+other code with the library, you must provide complete object files to the
+recipients, so that they can relink them with the library after making changes
+to the library and recompiling it. And you must show them these terms so they
+know their rights. 
+
+We protect your rights with a two-step method: (1) we copyright the library,
+and (2) we offer you this license, which gives you legal permission to copy,
+distribute and/or modify the library. 
+
+To protect each distributor, we want to make it very clear that there is no
+warranty for the free library. Also, if the library is modified by someone
+else and passed on, the recipients should know that what they have is not the
+original version, so that the original author's reputation will not be
+affected by problems that might be introduced by others. 
+
+Finally, software patents pose a constant threat to the existence of any free
+program. We wish to make sure that a company cannot effectively restrict the
+users of a free program by obtaining a restrictive license from a patent
+holder. Therefore, we insist that any patent license obtained for a version of
+the library must be consistent with the full freedom of use specified in this
+license. 
+
+Most GNU software, including some libraries, is covered by the ordinary GNU
+General Public License. This license, the GNU Lesser General Public License,
+applies to certain designated libraries, and is quite different from the
+ordinary General Public License. We use this license for certain libraries in
+order to permit linking those libraries into non-free programs. 
+
+When a program is linked with a library, whether statically or using a shared
+library, the combination of the two is legally speaking a combined work, a
+derivative of the original library. The ordinary General Public License
+therefore permits such linking only if the entire combination fits its
+criteria of freedom. The Lesser General Public License permits more lax
+criteria for linking other code with the library. 
+
+We call this license the "Lesser" General Public License because it does
+Less to protect the user's freedom than the ordinary General Public License.
+It also provides other free software developers Less of an advantage over
+competing non-free programs. These disadvantages are the reason we use the
+ordinary General Public License for many libraries. However, the Lesser
+license provides advantages in certain special circumstances. 
+
+For example, on rare occasions, there may be a special need to encourage the
+widest possible use of a certain library, so that it becomes a de-facto
+standard. To achieve this, non-free programs must be allowed to use the
+library. A more frequent case is that a free library does the same job as
+widely used non-free libraries. In this case, there is little to gain by
+limiting the free library to free software only, so we use the Lesser General
+Public License. 
+
+In other cases, permission to use a particular library in non-free programs
+enables a greater number of people to use a large body of free software. For
+example, permission to use the GNU C Library in non-free programs enables many
+more people to use the whole GNU operating system, as well as its variant, the
+GNU/Linux operating system. 
+
+Although the Lesser General Public License is Less protective of the users'
+freedom, it does ensure that the user of a program that is linked with the
+Library has the freedom and the wherewithal to run that program using a
+modified version of the Library. 
+
+The precise terms and conditions for copying, distribution and modification
+follow. Pay close attention to the difference between a "work based on the
+library" and a "work that uses the library". The former contains code
+derived from the library, whereas the latter must be combined with the library
+in order to run. 
+
+\section{TERMS AND CONDITIONS}
+\label{SEC34}
+\index[general]{CONDITIONS!TERMS AND }
+\index[general]{TERMS AND CONDITIONS }
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+{\bf 0.} This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or other
+authorized party saying it may be distributed under the terms of this Lesser
+General Public License (also called "this License"). Each licensee is
+addressed as "you". 
+
+A "library" means a collection of software functions and/or data prepared so
+as to be conveniently linked with application programs (which use some of
+those functions and data) to form executables. 
+
+The "Library", below, refers to any such software library or work which has
+been distributed under these terms. A "work based on the Library" means
+either the Library or any derivative work under copyright law: that is to say,
+a work containing the Library or a portion of it, either verbatim or with
+modifications and/or translated straightforwardly into another language.
+(Hereinafter, translation is included without limitation in the term
+"modification".) 
+
+"Source code" for a work means the preferred form of the work for making
+modifications to it. For a library, complete source code means all the source
+code for all modules it contains, plus any associated interface definition
+files, plus the scripts used to control compilation and installation of the
+library. 
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running a program
+using the Library is not restricted, and output from such a program is covered
+only if its contents constitute a work based on the Library (independent of
+the use of the Library in a tool for writing it). Whether that is true depends
+on what the Library does and what the program that uses the Library does. 
+
+{\bf 1.} You may copy and distribute verbatim copies of the Library's complete
+source code as you receive it, in any medium, provided that you conspicuously
+and appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and distribute a copy of this License
+along with the Library. 
+
+You may charge a fee for the physical act of transferring a copy, and you may
+at your option offer warranty protection in exchange for a fee. 
+
+{\bf 2.} You may modify your copy or copies of the Library or any portion of
+it, thus forming a work based on the Library, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions: 
+
+\begin{itemize}
+\item {\bf a)}  The modified work must itself be a software library.  
+\item {\bf b)}  You must cause the files modified to carry prominent notices 
+   stating that you changed the files and the date of any change.  
+\item {\bf c)}  You must cause the whole of the work to be licensed at no 
+   charge to all third parties under the terms of this License.  
+\item {\bf d)}  If a facility in the modified Library refers to a function or
+   a  table of data to be supplied by an application program that uses  the
+   facility, other than as an argument passed when the facility  is invoked, then
+you must make a good faith effort to ensure that,  in the event an application
+does not supply such function or  table, the facility still operates, and
+performs whatever part of  its purpose remains meaningful.  
+
+(For example, a function in a library to compute square roots has  a purpose
+that is entirely well-defined independent of the  application. Therefore,
+Subsection 2d requires that any  application-supplied function or table used
+by this function must  be optional: if the application does not supply it, the
+square  root function must still compute square roots.)  
+
+These requirements apply to the modified work as a whole. If  identifiable
+sections of that work are not derived from the Library,  and can be reasonably
+considered independent and separate works in  themselves, then this License,
+and its terms, do not apply to those  sections when you distribute them as
+separate works. But when you  distribute the same sections as part of a whole
+which is a work based  on the Library, the distribution of the whole must be
+on the terms of  this License, whose permissions for other licensees extend to
+the  entire whole, and thus to each and every part regardless of who wrote 
+it.  
+
+Thus, it is not the intent of this section to claim rights or contest  your
+rights to work written entirely by you; rather, the intent is to  exercise the
+right to control the distribution of derivative or  collective works based on
+the Library.  
+
+In addition, mere aggregation of another work not based on the Library  with
+the Library (or with a work based on the Library) on a volume of  a storage or
+distribution medium does not bring the other work under  the scope of this
+License. 
+\end{itemize}
+
+{\bf 3.} You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do this,
+you must alter all the notices that refer to this License, so that they refer
+to the ordinary GNU General Public License, version 2, instead of to this
+License. (If a newer version than version 2 of the ordinary GNU General Public
+License has appeared, then you can specify that version instead if you wish.)
+Do not make any other change in these notices. 
+
+Once this change is made in a given copy, it is irreversible for that copy, so
+the ordinary GNU General Public License applies to all subsequent copies and
+derivative works made from that copy. 
+
+This option is useful when you wish to copy part of the code of the Library
+into a program that is not a library. 
+
+{\bf 4.} You may copy and distribute the Library (or a portion or derivative
+of it, under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you accompany it with the complete
+corresponding machine-readable source code, which must be distributed under
+the terms of Sections 1 and 2 above on a medium customarily used for software
+interchange. 
+
+If distribution of object code is made by offering access to copy from a
+designated place, then offering equivalent access to copy the source code from
+the same place satisfies the requirement to distribute the source code, even
+though third parties are not compelled to copy the source along with the
+object code. 
+
+{\bf 5.} A program that contains no derivative of any portion of the Library,
+but is designed to work with the Library by being compiled or linked with it,
+is called a "work that uses the Library". Such a work, in isolation, is not
+a derivative work of the Library, and therefore falls outside the scope of
+this License. 
+
+However, linking a "work that uses the Library" with the Library creates an
+executable that is a derivative of the Library (because it contains portions
+of the Library), rather than a "work that uses the library". The executable
+is therefore covered by this License. Section 6 states terms for distribution
+of such executables. 
+
+When a "work that uses the Library" uses material from a header file that is
+part of the Library, the object code for the work may be a derivative work of
+the Library even though the source code is not. Whether this is true is
+especially significant if the work can be linked without the Library, or if
+the work is itself a library. The threshold for this to be true is not
+precisely defined by law. 
+
+If such an object file uses only numerical parameters, data structure layouts
+and accessors, and small macros and small inline functions (ten lines or less
+in length), then the use of the object file is unrestricted, regardless of
+whether it is legally a derivative work. (Executables containing this object
+code plus portions of the Library will still fall under Section 6.) 
+
+Otherwise, if the work is a derivative of the Library, you may distribute the
+object code for the work under the terms of Section 6. Any executables
+containing that work also fall under Section 6, whether or not they are linked
+directly with the Library itself. 
+
+{\bf 6.} As an exception to the Sections above, you may also combine or link a
+"work that uses the Library" with the Library to produce a work containing
+portions of the Library, and distribute that work under terms of your choice,
+provided that the terms permit modification of the work for the customer's own
+use and reverse engineering for debugging such modifications. 
+
+You must give prominent notice with each copy of the work that the Library is
+used in it and that the Library and its use are covered by this License. You
+must supply a copy of this License. If the work during execution displays
+copyright notices, you must include the copyright notice for the Library among
+them, as well as a reference directing the user to the copy of this License.
+Also, you must do one of these things: 
+
+\begin{itemize}
+\item {\bf a)} Accompany the work with the complete corresponding 
+   machine-readable source code for the Library including whatever  changes were
+   used in the work (which must be distributed under  Sections 1 and 2 above);
+and, if the work is an executable linked  with the Library, with the complete
+machine-readable "work that  uses the Library", as object code and/or source
+code, so that the  user can modify the Library and then relink to produce a
+modified  executable containing the modified Library. (It is understood  that
+the user who changes the contents of definitions files in the  Library will
+not necessarily be able to recompile the application  to use the modified
+definitions.)  
+\item {\bf b)} Use a suitable shared library mechanism for linking with the 
+   Library. A suitable mechanism is one that (1) uses at run time a  copy of the
+   library already present on the user's computer system,  rather than copying
+library functions into the executable, and (2)  will operate properly with a
+modified version of the library, if  the user installs one, as long as the
+modified version is  interface-compatible with the version that the work was
+made with.  
+\item {\bf c)} Accompany the work with a written offer, valid for at  least
+   three years, to give the same user the materials  specified in Subsection 6a,
+   above, for a charge no more  than the cost of performing this distribution.  
+\item {\bf d)} If distribution of the work is made by offering access to copy 
+   from a designated place, offer equivalent access to copy the above  specified
+   materials from the same place.  
+\item {\bf e)} Verify that the user has already received a copy of these 
+   materials or that you have already sent this user a copy. 
+   \end{itemize}
+
+For an executable, the required form of the "work that uses the Library"
+must include any data and utility programs needed for reproducing the
+executable from it. However, as a special exception, the materials to be
+distributed need not include anything that is normally distributed (in either
+source or binary form) with the major components (compiler, kernel, and so on)
+of the operating system on which the executable runs, unless that component
+itself accompanies the executable. 
+
+It may happen that this requirement contradicts the license restrictions of
+other proprietary libraries that do not normally accompany the operating
+system. Such a contradiction means you cannot use both them and the Library
+together in an executable that you distribute. 
+
+{\bf 7.} You may place library facilities that are a work based on the Library
+side-by-side in a single library together with other library facilities not
+covered by this License, and distribute such a combined library, provided that
+the separate distribution of the work based on the Library and of the other
+library facilities is otherwise permitted, and provided that you do these two
+things: 
+
+\begin{itemize}
+\item {\bf a)} Accompany the combined library with a copy of the same work 
+   based on the Library, uncombined with any other library  facilities. This must
+   be distributed under the terms of the  Sections above.  
+\item {\bf b)} Give prominent notice with the combined library of the fact 
+   that part of it is a work based on the Library, and explaining  where to find
+   the accompanying uncombined form of the same work. 
+\end{itemize}
+
+{\bf 8.} You may not copy, modify, sublicense, link with, or distribute the
+Library except as expressly provided under this License. Any attempt otherwise
+to copy, modify, sublicense, link with, or distribute the Library is void, and
+will automatically terminate your rights under this License. However, parties
+who have received copies, or rights, from you under this License will not have
+their licenses terminated so long as such parties remain in full compliance. 
+
+{\bf 9.} You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or distribute
+the Library or its derivative works. These actions are prohibited by law if
+you do not accept this License. Therefore, by modifying or distributing the
+Library (or any work based on the Library), you indicate your acceptance of
+this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Library or works based on it. 
+
+{\bf 10.} Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the original
+licensor to copy, distribute, link with or modify the Library subject to these
+terms and conditions. You may not impose any further restrictions on the
+recipients' exercise of the rights granted herein. You are not responsible for
+enforcing compliance by third parties with this License. 
+
+{\bf 11.} If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or otherwise)
+that contradict the conditions of this License, they do not excuse you from
+the conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Library at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Library by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library. 
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply, and
+the section as a whole is intended to apply in other circumstances. 
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that
+choice. 
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License. 
+
+{\bf 12.} If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the original
+copyright holder who places the Library under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In
+such case, this License incorporates the limitation as if written in the body
+of this License. 
+
+{\bf 13.} The Free Software Foundation may publish revised and/or new versions
+of the Lesser General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns. 
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and "any later
+version", you have the option of following the terms and conditions either of
+that version or of any later version published by the Free Software
+Foundation. If the Library does not specify a license version number, you may
+choose any version ever published by the Free Software Foundation. 
+
+{\bf 14.} If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these, write to
+the author to ask for permission. For software which is copyrighted by the
+Free Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally. 
+
+{\bf NO WARRANTY} 
+
+{\bf 15.} BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE
+THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
+IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
+THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY
+PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
+CORRECTION. 
+
+{\bf 16.} IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO
+LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
+THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES. 
+
+END OF TERMS AND CONDITIONS 
+
+\section{How to Apply These Terms to Your New Libraries}
+\label{SEC45}
+\index[general]{Libraries!How to Apply These Terms to Your New }
+\index[general]{How to Apply These Terms to Your New Libraries }
+
+
+If you develop a new library, and you want it to be of the greatest possible
+use to the public, we recommend making it free software that everyone can
+redistribute and change. You can do so by permitting redistribution under
+these terms (or, alternatively, under the terms of the ordinary General Public
+License). 
+
+To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found. 
+
+\footnotesize
+\begin{verbatim}
+{\it one line to give the library's name and an idea of what it does.}
+Copyright (C) {\it year}  {\it name of author}
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
+USA
+\end{verbatim}
+\normalsize
+
+Also add information on how to contact you by electronic and paper mail. 
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names: 
+
+\footnotesize
+\begin{verbatim}
+Yoyodyne, Inc., hereby disclaims all copyright interest in
+the library "Frob" (a library for tweaking knobs) written
+by James Random Hacker.
+{\it signature of Ty Coon}, 1 April 1990
+Ty Coon, President of Vice
+\end{verbatim}
+\normalsize
+
+That's all there is to it! 
+Return to 
+\elink{GNU's home page}{http://www.gnu.org/home.html}. 
+
+FSF \& GNU inquiries \& questions to 
+\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. Other 
+\elink{ways to contact}{http://www.gnu.org/home.html\#ContactInfo} the FSF. 
+
+Comments on these web pages to 
+\elink{webmasters@www.gnu.org}{mailto:webmasters@www.gnu.org}, send other
+questions to 
+\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. 
+
+Copyright notice above.
+Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+Boston, MA  02110-1301  USA
+USA 
+
+Updated: 27 Nov 2000 paulv 
diff --git a/docs/manuals/fr/misc/lesser.tex b/docs/manuals/fr/misc/lesser.tex
deleted file mode 100644 (file)
index bc3c312..0000000
+++ /dev/null
@@ -1,573 +0,0 @@
-%%
-%%
-
-\section*{GNU Lesser General Public License}
-\label{LesserChapter}
-\index[general]{GNU Lesser General Public License }
-\index[general]{License!GNU Lesser General Public }
-
-\elink{image of a Philosophical GNU}
-{http://www.gnu.org/graphics/philosophicalgnu.html} [  
-\elink{English}{http://www.gnu.org/copyleft/lesser.html} | 
-\elink{Japanese}{http://www.gnu.org/copyleft/lesser.ja.html} ] 
-
-\begin{itemize}
-\item 
-   \elink{Why you shouldn't use the Lesser GPL for your next
-   library}{http://www.gnu.org/philosophy/why-not-lgpl.html}  
-\item 
-   \elink{What to do if you see a possible LGPL
-   violation}{http://www.gnu.org/copyleft/gpl-violation.html}
-\item 
-   \elink{Translations of the LGPL}
-{http://www.gnu.org/copyleft/copyleft.html\#translationsLGPL}  
-\item The GNU Lesser General Public License as a  
-   \elink{text file}{http://www.gnu.org/copyleft/lesser.txt}  
-\item The GNU Lesser General Public License as a  
-   \elink{Texinfo}{http://www.gnu.org/copyleft/lesser.texi} file 
-   \end{itemize}
-
-
-This GNU Lesser General Public License counts as the successor of the GNU
-Library General Public License. For an explanation of why this change was
-necessary, read the 
-\elink{Why you shouldn't use the Lesser GPL for your next
-library}{http://www.gnu.org/philosophy/why-not-lgpl.html} article. 
-
-\section{Table of Contents}
-\index[general]{Table of Contents }
-\index[general]{Contents!Table of }
-
-\begin{itemize}
-\item 
-   \label{TOC12}
-   \ilink{GNU LESSER GENERAL PUBLIC LICENSE}{SEC12} 
-
-\begin{itemize}
-\item 
-   \label{TOC23}
-   \ilink{Preamble}{SEC23} 
-\item 
-   \label{TOC34}
-   \ilink{TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
-MODIFICATION}{SEC34} 
-\item 
-   \label{TOC45}
-   \ilink{How to Apply These Terms to Your New Libraries}{SEC45} 
-\end{itemize}
-
-\end{itemize}
-
-
-\section{GNU LESSER GENERAL PUBLIC LICENSE}
-\label{SEC12}
-\index[general]{LICENSE!GNU LESSER GENERAL PUBLIC }
-\index[general]{GNU LESSER GENERAL PUBLIC LICENSE }
-
-Version 2.1, February 1999 
-
-\footnotesize
-\begin{verbatim}
-Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-\end{verbatim}
-\normalsize
-
-\section{Preamble}
-\label{SEC23}
-\index[general]{Preamble }
-
-The licenses for most software are designed to take away your freedom to share
-and change it. By contrast, the GNU General Public Licenses are intended to
-guarantee your freedom to share and change free software\verb:--:to make sure the
-software is free for all its users. 
-
-This license, the Lesser General Public License, applies to some specially
-designated software packages\verb:--:typically libraries\verb:--:of the Free Software
-Foundation and other authors who decide to use it. You can use it too, but we
-suggest you first think carefully about whether this license or the ordinary
-General Public License is the better strategy to use in any particular case,
-based on the explanations below. 
-
-When we speak of free software, we are referring to freedom of use, not price.
-Our General Public Licenses are designed to make sure that you have the
-freedom to distribute copies of free software (and charge for this service if
-you wish); that you receive source code or can get it if you want it; that you
-can change the software and use pieces of it in new free programs; and that
-you are informed that you can do these things. 
-
-To protect your rights, we need to make restrictions that forbid distributors
-to deny you these rights or to ask you to surrender these rights. These
-restrictions translate to certain responsibilities for you if you distribute
-copies of the library or if you modify it. 
-
-For example, if you distribute copies of the library, whether gratis or for a
-fee, you must give the recipients all the rights that we gave you. You must
-make sure that they, too, receive or can get the source code. If you link
-other code with the library, you must provide complete object files to the
-recipients, so that they can relink them with the library after making changes
-to the library and recompiling it. And you must show them these terms so they
-know their rights. 
-
-We protect your rights with a two-step method: (1) we copyright the library,
-and (2) we offer you this license, which gives you legal permission to copy,
-distribute and/or modify the library. 
-
-To protect each distributor, we want to make it very clear that there is no
-warranty for the free library. Also, if the library is modified by someone
-else and passed on, the recipients should know that what they have is not the
-original version, so that the original author's reputation will not be
-affected by problems that might be introduced by others. 
-
-Finally, software patents pose a constant threat to the existence of any free
-program. We wish to make sure that a company cannot effectively restrict the
-users of a free program by obtaining a restrictive license from a patent
-holder. Therefore, we insist that any patent license obtained for a version of
-the library must be consistent with the full freedom of use specified in this
-license. 
-
-Most GNU software, including some libraries, is covered by the ordinary GNU
-General Public License. This license, the GNU Lesser General Public License,
-applies to certain designated libraries, and is quite different from the
-ordinary General Public License. We use this license for certain libraries in
-order to permit linking those libraries into non-free programs. 
-
-When a program is linked with a library, whether statically or using a shared
-library, the combination of the two is legally speaking a combined work, a
-derivative of the original library. The ordinary General Public License
-therefore permits such linking only if the entire combination fits its
-criteria of freedom. The Lesser General Public License permits more lax
-criteria for linking other code with the library. 
-
-We call this license the "Lesser" General Public License because it does
-Less to protect the user's freedom than the ordinary General Public License.
-It also provides other free software developers Less of an advantage over
-competing non-free programs. These disadvantages are the reason we use the
-ordinary General Public License for many libraries. However, the Lesser
-license provides advantages in certain special circumstances. 
-
-For example, on rare occasions, there may be a special need to encourage the
-widest possible use of a certain library, so that it becomes a de-facto
-standard. To achieve this, non-free programs must be allowed to use the
-library. A more frequent case is that a free library does the same job as
-widely used non-free libraries. In this case, there is little to gain by
-limiting the free library to free software only, so we use the Lesser General
-Public License. 
-
-In other cases, permission to use a particular library in non-free programs
-enables a greater number of people to use a large body of free software. For
-example, permission to use the GNU C Library in non-free programs enables many
-more people to use the whole GNU operating system, as well as its variant, the
-GNU/Linux operating system. 
-
-Although the Lesser General Public License is Less protective of the users'
-freedom, it does ensure that the user of a program that is linked with the
-Library has the freedom and the wherewithal to run that program using a
-modified version of the Library. 
-
-The precise terms and conditions for copying, distribution and modification
-follow. Pay close attention to the difference between a "work based on the
-library" and a "work that uses the library". The former contains code
-derived from the library, whereas the latter must be combined with the library
-in order to run. 
-
-\section{TERMS AND CONDITIONS}
-\label{SEC34}
-\index[general]{CONDITIONS!TERMS AND }
-\index[general]{TERMS AND CONDITIONS }
-
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
-
-{\bf 0.} This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or other
-authorized party saying it may be distributed under the terms of this Lesser
-General Public License (also called "this License"). Each licensee is
-addressed as "you". 
-
-A "library" means a collection of software functions and/or data prepared so
-as to be conveniently linked with application programs (which use some of
-those functions and data) to form executables. 
-
-The "Library", below, refers to any such software library or work which has
-been distributed under these terms. A "work based on the Library" means
-either the Library or any derivative work under copyright law: that is to say,
-a work containing the Library or a portion of it, either verbatim or with
-modifications and/or translated straightforwardly into another language.
-(Hereinafter, translation is included without limitation in the term
-"modification".) 
-
-"Source code" for a work means the preferred form of the work for making
-modifications to it. For a library, complete source code means all the source
-code for all modules it contains, plus any associated interface definition
-files, plus the scripts used to control compilation and installation of the
-library. 
-
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running a program
-using the Library is not restricted, and output from such a program is covered
-only if its contents constitute a work based on the Library (independent of
-the use of the Library in a tool for writing it). Whether that is true depends
-on what the Library does and what the program that uses the Library does. 
-
-{\bf 1.} You may copy and distribute verbatim copies of the Library's complete
-source code as you receive it, in any medium, provided that you conspicuously
-and appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this License
-and to the absence of any warranty; and distribute a copy of this License
-along with the Library. 
-
-You may charge a fee for the physical act of transferring a copy, and you may
-at your option offer warranty protection in exchange for a fee. 
-
-{\bf 2.} You may modify your copy or copies of the Library or any portion of
-it, thus forming a work based on the Library, and copy and distribute such
-modifications or work under the terms of Section 1 above, provided that you
-also meet all of these conditions: 
-
-\begin{itemize}
-\item {\bf a)}  The modified work must itself be a software library.  
-\item {\bf b)}  You must cause the files modified to carry prominent notices 
-   stating that you changed the files and the date of any change.  
-\item {\bf c)}  You must cause the whole of the work to be licensed at no 
-   charge to all third parties under the terms of this License.  
-\item {\bf d)}  If a facility in the modified Library refers to a function or
-   a  table of data to be supplied by an application program that uses  the
-   facility, other than as an argument passed when the facility  is invoked, then
-you must make a good faith effort to ensure that,  in the event an application
-does not supply such function or  table, the facility still operates, and
-performs whatever part of  its purpose remains meaningful.  
-
-(For example, a function in a library to compute square roots has  a purpose
-that is entirely well-defined independent of the  application. Therefore,
-Subsection 2d requires that any  application-supplied function or table used
-by this function must  be optional: if the application does not supply it, the
-square  root function must still compute square roots.)  
-
-These requirements apply to the modified work as a whole. If  identifiable
-sections of that work are not derived from the Library,  and can be reasonably
-considered independent and separate works in  themselves, then this License,
-and its terms, do not apply to those  sections when you distribute them as
-separate works. But when you  distribute the same sections as part of a whole
-which is a work based  on the Library, the distribution of the whole must be
-on the terms of  this License, whose permissions for other licensees extend to
-the  entire whole, and thus to each and every part regardless of who wrote 
-it.  
-
-Thus, it is not the intent of this section to claim rights or contest  your
-rights to work written entirely by you; rather, the intent is to  exercise the
-right to control the distribution of derivative or  collective works based on
-the Library.  
-
-In addition, mere aggregation of another work not based on the Library  with
-the Library (or with a work based on the Library) on a volume of  a storage or
-distribution medium does not bring the other work under  the scope of this
-License. 
-\end{itemize}
-
-{\bf 3.} You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do this,
-you must alter all the notices that refer to this License, so that they refer
-to the ordinary GNU General Public License, version 2, instead of to this
-License. (If a newer version than version 2 of the ordinary GNU General Public
-License has appeared, then you can specify that version instead if you wish.)
-Do not make any other change in these notices. 
-
-Once this change is made in a given copy, it is irreversible for that copy, so
-the ordinary GNU General Public License applies to all subsequent copies and
-derivative works made from that copy. 
-
-This option is useful when you wish to copy part of the code of the Library
-into a program that is not a library. 
-
-{\bf 4.} You may copy and distribute the Library (or a portion or derivative
-of it, under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you accompany it with the complete
-corresponding machine-readable source code, which must be distributed under
-the terms of Sections 1 and 2 above on a medium customarily used for software
-interchange. 
-
-If distribution of object code is made by offering access to copy from a
-designated place, then offering equivalent access to copy the source code from
-the same place satisfies the requirement to distribute the source code, even
-though third parties are not compelled to copy the source along with the
-object code. 
-
-{\bf 5.} A program that contains no derivative of any portion of the Library,
-but is designed to work with the Library by being compiled or linked with it,
-is called a "work that uses the Library". Such a work, in isolation, is not
-a derivative work of the Library, and therefore falls outside the scope of
-this License. 
-
-However, linking a "work that uses the Library" with the Library creates an
-executable that is a derivative of the Library (because it contains portions
-of the Library), rather than a "work that uses the library". The executable
-is therefore covered by this License. Section 6 states terms for distribution
-of such executables. 
-
-When a "work that uses the Library" uses material from a header file that is
-part of the Library, the object code for the work may be a derivative work of
-the Library even though the source code is not. Whether this is true is
-especially significant if the work can be linked without the Library, or if
-the work is itself a library. The threshold for this to be true is not
-precisely defined by law. 
-
-If such an object file uses only numerical parameters, data structure layouts
-and accessors, and small macros and small inline functions (ten lines or less
-in length), then the use of the object file is unrestricted, regardless of
-whether it is legally a derivative work. (Executables containing this object
-code plus portions of the Library will still fall under Section 6.) 
-
-Otherwise, if the work is a derivative of the Library, you may distribute the
-object code for the work under the terms of Section 6. Any executables
-containing that work also fall under Section 6, whether or not they are linked
-directly with the Library itself. 
-
-{\bf 6.} As an exception to the Sections above, you may also combine or link a
-"work that uses the Library" with the Library to produce a work containing
-portions of the Library, and distribute that work under terms of your choice,
-provided that the terms permit modification of the work for the customer's own
-use and reverse engineering for debugging such modifications. 
-
-You must give prominent notice with each copy of the work that the Library is
-used in it and that the Library and its use are covered by this License. You
-must supply a copy of this License. If the work during execution displays
-copyright notices, you must include the copyright notice for the Library among
-them, as well as a reference directing the user to the copy of this License.
-Also, you must do one of these things: 
-
-\begin{itemize}
-\item {\bf a)} Accompany the work with the complete corresponding 
-   machine-readable source code for the Library including whatever  changes were
-   used in the work (which must be distributed under  Sections 1 and 2 above);
-and, if the work is an executable linked  with the Library, with the complete
-machine-readable "work that  uses the Library", as object code and/or source
-code, so that the  user can modify the Library and then relink to produce a
-modified  executable containing the modified Library. (It is understood  that
-the user who changes the contents of definitions files in the  Library will
-not necessarily be able to recompile the application  to use the modified
-definitions.)  
-\item {\bf b)} Use a suitable shared library mechanism for linking with the 
-   Library. A suitable mechanism is one that (1) uses at run time a  copy of the
-   library already present on the user's computer system,  rather than copying
-library functions into the executable, and (2)  will operate properly with a
-modified version of the library, if  the user installs one, as long as the
-modified version is  interface-compatible with the version that the work was
-made with.  
-\item {\bf c)} Accompany the work with a written offer, valid for at  least
-   three years, to give the same user the materials  specified in Subsection 6a,
-   above, for a charge no more  than the cost of performing this distribution.  
-\item {\bf d)} If distribution of the work is made by offering access to copy 
-   from a designated place, offer equivalent access to copy the above  specified
-   materials from the same place.  
-\item {\bf e)} Verify that the user has already received a copy of these 
-   materials or that you have already sent this user a copy. 
-   \end{itemize}
-
-For an executable, the required form of the "work that uses the Library"
-must include any data and utility programs needed for reproducing the
-executable from it. However, as a special exception, the materials to be
-distributed need not include anything that is normally distributed (in either
-source or binary form) with the major components (compiler, kernel, and so on)
-of the operating system on which the executable runs, unless that component
-itself accompanies the executable. 
-
-It may happen that this requirement contradicts the license restrictions of
-other proprietary libraries that do not normally accompany the operating
-system. Such a contradiction means you cannot use both them and the Library
-together in an executable that you distribute. 
-
-{\bf 7.} You may place library facilities that are a work based on the Library
-side-by-side in a single library together with other library facilities not
-covered by this License, and distribute such a combined library, provided that
-the separate distribution of the work based on the Library and of the other
-library facilities is otherwise permitted, and provided that you do these two
-things: 
-
-\begin{itemize}
-\item {\bf a)} Accompany the combined library with a copy of the same work 
-   based on the Library, uncombined with any other library  facilities. This must
-   be distributed under the terms of the  Sections above.  
-\item {\bf b)} Give prominent notice with the combined library of the fact 
-   that part of it is a work based on the Library, and explaining  where to find
-   the accompanying uncombined form of the same work. 
-\end{itemize}
-
-{\bf 8.} You may not copy, modify, sublicense, link with, or distribute the
-Library except as expressly provided under this License. Any attempt otherwise
-to copy, modify, sublicense, link with, or distribute the Library is void, and
-will automatically terminate your rights under this License. However, parties
-who have received copies, or rights, from you under this License will not have
-their licenses terminated so long as such parties remain in full compliance. 
-
-{\bf 9.} You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or distribute
-the Library or its derivative works. These actions are prohibited by law if
-you do not accept this License. Therefore, by modifying or distributing the
-Library (or any work based on the Library), you indicate your acceptance of
-this License to do so, and all its terms and conditions for copying,
-distributing or modifying the Library or works based on it. 
-
-{\bf 10.} Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the original
-licensor to copy, distribute, link with or modify the Library subject to these
-terms and conditions. You may not impose any further restrictions on the
-recipients' exercise of the rights granted herein. You are not responsible for
-enforcing compliance by third parties with this License. 
-
-{\bf 11.} If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or otherwise)
-that contradict the conditions of this License, they do not excuse you from
-the conditions of this License. If you cannot distribute so as to satisfy
-simultaneously your obligations under this License and any other pertinent
-obligations, then as a consequence you may not distribute the Library at all.
-For example, if a patent license would not permit royalty-free redistribution
-of the Library by all those who receive copies directly or indirectly through
-you, then the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library. 
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply, and
-the section as a whole is intended to apply in other circumstances. 
-
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system which is implemented by public license practices. Many
-people have made generous contributions to the wide range of software
-distributed through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing to
-distribute software through any other system and a licensee cannot impose that
-choice. 
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License. 
-
-{\bf 12.} If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the original
-copyright holder who places the Library under this License may add an explicit
-geographical distribution limitation excluding those countries, so that
-distribution is permitted only in or among countries not thus excluded. In
-such case, this License incorporates the limitation as if written in the body
-of this License. 
-
-{\bf 13.} The Free Software Foundation may publish revised and/or new versions
-of the Lesser General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns. 
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and "any later
-version", you have the option of following the terms and conditions either of
-that version or of any later version published by the Free Software
-Foundation. If the Library does not specify a license version number, you may
-choose any version ever published by the Free Software Foundation. 
-
-{\bf 14.} If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these, write to
-the author to ask for permission. For software which is copyrighted by the
-Free Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals of
-preserving the free status of all derivatives of our free software and of
-promoting the sharing and reuse of software generally. 
-
-{\bf NO WARRANTY} 
-
-{\bf 15.} BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE
-THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
-IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
-THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY
-PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
-CORRECTION. 
-
-{\bf 16.} IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO
-LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
-THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES. 
-
-END OF TERMS AND CONDITIONS 
-
-\section{How to Apply These Terms to Your New Libraries}
-\label{SEC45}
-\index[general]{Libraries!How to Apply These Terms to Your New }
-\index[general]{How to Apply These Terms to Your New Libraries }
-
-
-If you develop a new library, and you want it to be of the greatest possible
-use to the public, we recommend making it free software that everyone can
-redistribute and change. You can do so by permitting redistribution under
-these terms (or, alternatively, under the terms of the ordinary General Public
-License). 
-
-To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found. 
-
-\footnotesize
-\begin{verbatim}
-{\it one line to give the library's name and an idea of what it does.}
-Copyright (C) {\it year}  {\it name of author}
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
-USA
-\end{verbatim}
-\normalsize
-
-Also add information on how to contact you by electronic and paper mail. 
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names: 
-
-\footnotesize
-\begin{verbatim}
-Yoyodyne, Inc., hereby disclaims all copyright interest in
-the library "Frob" (a library for tweaking knobs) written
-by James Random Hacker.
-{\it signature of Ty Coon}, 1 April 1990
-Ty Coon, President of Vice
-\end{verbatim}
-\normalsize
-
-That's all there is to it! 
-Return to 
-\elink{GNU's home page}{http://www.gnu.org/home.html}. 
-
-FSF \& GNU inquiries \& questions to 
-\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. Other 
-\elink{ways to contact}{http://www.gnu.org/home.html\#ContactInfo} the FSF. 
-
-Comments on these web pages to 
-\elink{webmasters@www.gnu.org}{mailto:webmasters@www.gnu.org}, send other
-questions to 
-\elink{gnu@gnu.org}{mailto:gnu@gnu.org}. 
-
-Copyright notice above.
-Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-Boston, MA  02110-1301  USA
-USA 
-
-Updated: 27 Nov 2000 paulv 
diff --git a/docs/manuals/fr/misc/license-en.tex b/docs/manuals/fr/misc/license-en.tex
new file mode 100644 (file)
index 0000000..744cea2
--- /dev/null
@@ -0,0 +1,113 @@
+%%
+%%
+
+\chapter{Bacula Copyright, Trademark, and Licenses}
+\label{LicenseChapter}
+\index[general]{Licenses!Bacula Copyright Trademark}
+\index[general]{Bacula Copyright, Trademark, and Licenses}
+
+There are a number of different licenses that are used in Bacula. 
+If you have a printed copy of this manual, the details of each of
+the licenses referred to in this chapter can be found in the
+online version of the manual at
+\elink{http://www.bacula.org}{http://www.bacula.org}.
+
+\section{FDL}
+\index[general]{FDL }
+
+The GNU Free Documentation License (FDL) is used for this manual,
+which is a free and open license. This means that you may freely   
+reproduce it and even make changes to it. However, rather than
+distribute your own version of this manual, we would much prefer
+if you would send any corrections or changes to the Bacula project.
+The most recent version of the manual can always be found online
+at \elink{http://www.bacula.org}{http://www.bacula.org}.
+
+\section{GPL}
+\index[general]{GPL }
+
+The vast bulk of the source code is released under the 
+\ilink{GNU General Public License version 2.}{GplChapter}.
+
+Most of this code is copyrighted: Copyright \copyright 2000-2009
+Free Software Foundation Europe e.V.
+
+Portions may be copyrighted by other people.  These files are released
+under different licenses which are compatible with the Bacula GPLv2 license.
+
+\section{LGPL}
+\index[general]{LGPL }
+
+Some of the Bacula library source code is released under the 
+\ilink{GNU Lesser General Public License.}{LesserChapter} This
+permits third parties to use these parts of our code in their proprietary
+programs to interface to Bacula. 
+
+\section{Public Domain}
+\index[general]{Domain!Public }
+\index[general]{Public Domain }
+
+Some of the Bacula code, or code that Bacula references, has been released
+to the public domain.  E.g.  md5.c, SQLite.
+
+\section{Trademark}
+\index[general]{Trademark }
+
+Bacula\raisebox{.6ex}{\textsuperscript{\textregistered}} is a registered
+trademark of Kern Sibbald.
+
+We have trademarked the Bacula name to ensure that any program using the
+name Bacula will be exactly compatible with the program that we have
+released.  The use of the name Bacula is restricted to software systems
+that agree exactly with the program presented here. If you have made
+modifications to the Bacula source code that alter in any significant
+way the way the program functions, you may not distribute it using the
+Bacula name.
+
+\section{Fiduciary License Agreement}
+\index[general]{Fiduciary License Agreement }
+Developers who have contributed significant changes to the Bacula code
+should have signed a Fiduciary License Agreement (FLA), which 
+guarantees them the right to use the code they have developed, and also
+ensures that the Free Software Foundation Europe (and thus the Bacula
+project) has the rights to the code.  This Fiduciary License Agreement
+is found on the Bacula web site at:
+
+\elink{http://www.bacula.org/en/FLA-bacula.en.pdf}{http://www.bacula.org/en/FLA-bacula.en.pdf}
+
+and if you are submitting code, you should fill it out then sent to:
+
+\begin{quote}
+     Kern Sibbald \\
+     Cotes-de-Montmoiret 9 \\
+     1012 Lausanne \\
+     Switzerland \\
+\end{quote}
+
+When you send in such a
+complete document, please notify me: kern at sibbald dot com.
+
+
+\section{Disclaimer}
+\index[general]{Disclaimer }
+
+NO WARRANTY 
+
+BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
+PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
+PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
+COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
+PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
+OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
+DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR
+A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
+HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 
diff --git a/docs/manuals/fr/misc/license.tex b/docs/manuals/fr/misc/license.tex
deleted file mode 100644 (file)
index 744cea2..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-%%
-%%
-
-\chapter{Bacula Copyright, Trademark, and Licenses}
-\label{LicenseChapter}
-\index[general]{Licenses!Bacula Copyright Trademark}
-\index[general]{Bacula Copyright, Trademark, and Licenses}
-
-There are a number of different licenses that are used in Bacula. 
-If you have a printed copy of this manual, the details of each of
-the licenses referred to in this chapter can be found in the
-online version of the manual at
-\elink{http://www.bacula.org}{http://www.bacula.org}.
-
-\section{FDL}
-\index[general]{FDL }
-
-The GNU Free Documentation License (FDL) is used for this manual,
-which is a free and open license. This means that you may freely   
-reproduce it and even make changes to it. However, rather than
-distribute your own version of this manual, we would much prefer
-if you would send any corrections or changes to the Bacula project.
-The most recent version of the manual can always be found online
-at \elink{http://www.bacula.org}{http://www.bacula.org}.
-
-\section{GPL}
-\index[general]{GPL }
-
-The vast bulk of the source code is released under the 
-\ilink{GNU General Public License version 2.}{GplChapter}.
-
-Most of this code is copyrighted: Copyright \copyright 2000-2009
-Free Software Foundation Europe e.V.
-
-Portions may be copyrighted by other people.  These files are released
-under different licenses which are compatible with the Bacula GPLv2 license.
-
-\section{LGPL}
-\index[general]{LGPL }
-
-Some of the Bacula library source code is released under the 
-\ilink{GNU Lesser General Public License.}{LesserChapter} This
-permits third parties to use these parts of our code in their proprietary
-programs to interface to Bacula. 
-
-\section{Public Domain}
-\index[general]{Domain!Public }
-\index[general]{Public Domain }
-
-Some of the Bacula code, or code that Bacula references, has been released
-to the public domain.  E.g.  md5.c, SQLite.
-
-\section{Trademark}
-\index[general]{Trademark }
-
-Bacula\raisebox{.6ex}{\textsuperscript{\textregistered}} is a registered
-trademark of Kern Sibbald.
-
-We have trademarked the Bacula name to ensure that any program using the
-name Bacula will be exactly compatible with the program that we have
-released.  The use of the name Bacula is restricted to software systems
-that agree exactly with the program presented here. If you have made
-modifications to the Bacula source code that alter in any significant
-way the way the program functions, you may not distribute it using the
-Bacula name.
-
-\section{Fiduciary License Agreement}
-\index[general]{Fiduciary License Agreement }
-Developers who have contributed significant changes to the Bacula code
-should have signed a Fiduciary License Agreement (FLA), which 
-guarantees them the right to use the code they have developed, and also
-ensures that the Free Software Foundation Europe (and thus the Bacula
-project) has the rights to the code.  This Fiduciary License Agreement
-is found on the Bacula web site at:
-
-\elink{http://www.bacula.org/en/FLA-bacula.en.pdf}{http://www.bacula.org/en/FLA-bacula.en.pdf}
-
-and if you are submitting code, you should fill it out then sent to:
-
-\begin{quote}
-     Kern Sibbald \\
-     Cotes-de-Montmoiret 9 \\
-     1012 Lausanne \\
-     Switzerland \\
-\end{quote}
-
-When you send in such a
-complete document, please notify me: kern at sibbald dot com.
-
-
-\section{Disclaimer}
-\index[general]{Disclaimer }
-
-NO WARRANTY 
-
-BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
-PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
-STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
-PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
-YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 
-
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
-COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
-PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
-OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
-DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR
-A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
-HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 
index 59351e525fc4a26ae226f2a19a3fe2783df29a34..35057de70170dd6b7d905e0ef1d7c24b121eb8b7 100644 (file)
@@ -35,7 +35,7 @@
 \begin{document}
 \sloppy
 
-\include{coverpage}
+\include{coverpage-en}
 
 \clearpage
 \pagenumbering{roman}
 \pagestyle{myheadings}
 \markboth{Bacula Version \version}{Bacula Version \version}
 \pagenumbering{arabic}
-\include{python}
-\include{vars}
-\include{stunnel}
-\include{dvd}
-\include{projects}
-\include{internaldb}
-\include{license}
-\include{fdl}
-\include{gpl}
-\include{lesser}
+\include{python-en}
+\include{vars-en}
+\include{stunnel-en}
+\include{dvd-en}
+\include{projects-en}
+\include{internaldb-en}
+\include{license-en}
+\include{fdl-en}
+\include{gpl-en}
+\include{lesser-en}
 
 
 % pull in the index
diff --git a/docs/manuals/fr/misc/projects-en.tex b/docs/manuals/fr/misc/projects-en.tex
new file mode 100644 (file)
index 0000000..f118e79
--- /dev/null
@@ -0,0 +1,28 @@
+%%
+%%
+
+\chapter{Bacula Projects}
+\label{ProjectsChapter}
+\index[general]{Projects!Bacula }
+\index[general]{Bacula Projects }
+
+Once a new major version of Bacula is released, the Bacula
+users will vote on a list of new features. This vote is used
+as the main element determining what new features will be  
+implemented for the next version. Generally, the development time
+for a new release is between four to nine months.  Sometimes it may be 
+a bit longer, but in that case, there will be a number of bug fix
+updates to the currently released version.
+
+For the current list of project, please see the projects page in the CVS
+at: \elink{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/projects}
+{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/projects}
+see the {\bf projects} file in the main source directory. The projects
+file is updated approximately once every six months.    
+
+Separately from the project list, Kern maintains a current list of
+tasks as well as ideas, feature requests, and occasionally design
+notes. This list is updated roughly weekly (sometimes more often).
+For a current list of tasks you can see {\bf kernstodo} in the Source Forge
+CVS at \elink{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/kernstodo}
+{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/kernstodo}.   
diff --git a/docs/manuals/fr/misc/projects.tex b/docs/manuals/fr/misc/projects.tex
deleted file mode 100644 (file)
index f118e79..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-%%
-%%
-
-\chapter{Bacula Projects}
-\label{ProjectsChapter}
-\index[general]{Projects!Bacula }
-\index[general]{Bacula Projects }
-
-Once a new major version of Bacula is released, the Bacula
-users will vote on a list of new features. This vote is used
-as the main element determining what new features will be  
-implemented for the next version. Generally, the development time
-for a new release is between four to nine months.  Sometimes it may be 
-a bit longer, but in that case, there will be a number of bug fix
-updates to the currently released version.
-
-For the current list of project, please see the projects page in the CVS
-at: \elink{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/projects}
-{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/projects}
-see the {\bf projects} file in the main source directory. The projects
-file is updated approximately once every six months.    
-
-Separately from the project list, Kern maintains a current list of
-tasks as well as ideas, feature requests, and occasionally design
-notes. This list is updated roughly weekly (sometimes more often).
-For a current list of tasks you can see {\bf kernstodo} in the Source Forge
-CVS at \elink{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/kernstodo}
-{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/kernstodo}.   
diff --git a/docs/manuals/fr/misc/python-en.tex b/docs/manuals/fr/misc/python-en.tex
new file mode 100644 (file)
index 0000000..5d3c953
--- /dev/null
@@ -0,0 +1,479 @@
+%%
+%%
+
+\chapter{Python Scripting}
+\label{PythonChapter}
+\index[general]{Python Scripting}
+\index[general]{Scripting!Python}
+
+You may be asking what Python is and why a scripting language is
+needed in Bacula. The answer to the first question is that Python
+is an Object Oriented scripting language with features similar
+to those found in Perl, but the syntax of the language is much
+cleaner and simpler.  The answer to why have scripting in Bacula is to
+give the user more control over the whole backup process. Probably 
+the simplest example is when Bacula needs a new Volume name, with
+a scripting language such as Python, you can generate any name 
+you want, based on the current state of Bacula.
+
+\section{Python Configuration}
+\index[general]{Python Configuration}
+\index[general]{Configuration!Python}
+
+Python must be enabled during the configuration process by adding
+a \verb:--:with-python, and possibly specifying an alternate
+directory if your Python is not installed in a standard system
+location. If you are using RPMs you will need the python-devel package
+installed.
+
+When Python is configured, it becomes an integral part of Bacula and
+runs in Bacula's address space, so even though it is an interpreted 
+language, it is very efficient.
+
+When the Director starts, it looks to see if you have a {\bf
+Scripts Directory} Directive defined (normal default {\bf
+/etc/bacula/scripts}, if so, it looks in that directory for a file named
+{\bf DirStartUp.py}.  If it is found, Bacula will pass this file to Python
+for execution.  The {\bf Scripts Directory} is a new directive that you add
+to the Director resource of your bacula-dir.conf file.
+
+Note: Bacula does not install Python scripts by default because these
+scripts are for you to program.  This means that with a default
+installation with Python enabled, Bacula will print the following error
+message:
+
+\begin{verbatim}
+09-Jun 15:14 bacula-dir: ERROR in pythonlib.c:131 Could not import
+Python script /etc/bacula/scripts/DirStartUp. Python disabled.
+\end{verbatim}
+
+The source code directory {\bf examples/python} contains sample scripts
+for DirStartUp.py, SDStartUp.py, and FDStartUp.py that you might want
+to use as a starting point. Normally, your scripts directory (at least
+where you store the Python scripts) should be writable by Bacula, because
+Python will attempt to write a compiled version of the scripts (e.g.
+DirStartUp.pyc) back to that directory.
+
+When starting with the sample scripts, you can delete any part that
+you will not need, but you should keep all the Bacula Event and Job Event
+definitions.  If you do not want a particular event, simply replace the
+existing code with a {\bf noop = 1}.
+
+\section{Bacula Events}
+\index[general]{Bacula Events}
+\index[general]{Events}
+A Bacula event is a point in the Bacula code where Bacula
+will call a subroutine (actually a method) that you have 
+defined in the Python StartUp script. Events correspond 
+to some significant event such as a Job Start, a Job End,
+Bacula needs a new Volume Name, ... When your script is
+called, it will have access to all the Bacula variables
+specific to the Job (attributes of the Job Object), and
+it can even call some of the Job methods (subroutines)
+or set new values in the Job attributes, such as the 
+Priority. You will see below how the events are used.
+
+\section{Python Objects}
+\index[general]{Python Objects}
+\index[general]{Objects!Python}
+
+There are four Python objects that you will need to work with:
+\begin{description}
+\item [The Bacula Object]
+   The Bacula object is created by the Bacula daemon (the Director
+   in the present case) when the daemon starts. It is available to
+   the Python startup script, {\bf DirStartup.py}, by importing the
+   Bacula definitions with {\bf import bacula}. The methods
+   available with this object are described below. 
+
+\item [The Bacula Events Class]
+   You create this class in the startup script, and you pass
+   it to the Bacula Object's {\bf set\_events} method. The 
+   purpose of the Bacula Events Class is to define what global
+   or daemon events you want to monitor. When one of those events
+   occurs, your Bacula Events Class will be called at the method
+   corresponding to the event. There are currently three events,
+   JobStart, JobEnd, and Exit, which are described in detail below.
+   
+\item [The Job Object]
+   When a Job starts, and assuming you have defined a JobStart method
+   in your Bacula Events Class, Bacula will create a Job Object. This
+   object will be passed to the JobStart event. The Job Object has a
+   has good number of read-only members or attributes providing many
+   details of the Job, and it also has a number of writable attributes
+   that allow you to pass information into the Job.  These attributes
+   are described below.
+   
+\item [The Job Events Class]
+   You create this class in the JobStart method of your Bacula Events
+   class, and it allows you to define which of the possible Job Object
+   events you want to see. You must pass an instance of your Job Events
+   class to the Job Object set\_events() method.
+   Normally, you will probably only have one
+   Job Events Class, which will be instantiated for each Job. However,
+   if you wish to see different events in different Jobs, you may have
+   as many Job Events classes as you wish.
+\end{description}
+
+
+The first thing the startup script must do is to define what global Bacula
+events (daemon events), it wants to see. This is done by creating a 
+Bacula Events class, instantiating it, then passing it to the 
+{\bf set\_events} method. There are three possible
+events.
+
+\begin{description}
+\item [JobStart]
+   \index[general]{JobStart}
+   This Python method, if defined, will be called each time a Job is started.
+   The method is passed the class instantiation object as the first argument,
+   and the Bacula Job object as the second argument.  The Bacula Job object
+   has several built-in methods, and you can define which ones you
+   want called. If you do not define this method, you will not be able
+   to interact with Bacula jobs.
+
+\item [JobEnd]
+   This Python method, if defined, will be called each time a Job terminates.
+   The method is passed the class instantiation object as the first argument,
+   and the Bacula Job object as the second argument.  
+
+\item [Exit]
+   This Python method, if defined, will be called when the Director terminates.
+   The method is passed the class instantiation object as the first argument.
+\end{description}
+
+Access to the Bacula variables and methods is done with:
+
+     import bacula
+
+The following are the read-only attributes provided by the bacula object.
+\begin{description}
+\item [Name]
+\item [ConfigFile]
+\item [WorkingDir]
+\item [Version] string consisting of "Version  Build-date"
+\end{description}
+
+
+A simple definition of the Bacula Events Class might be the following:
+
+\footnotesize
+\begin{verbatim}
+import sys, bacula
+class BaculaEvents:
+  def JobStart(self, job):
+     ...
+\end{verbatim}
+\normalsize
+
+Then to instantiate the class and pass it to Bacula, you
+would do:
+
+\footnotesize
+\begin{verbatim}
+bacula.set_events(BaculaEvents()) # register Bacula Events wanted
+\end{verbatim}
+\normalsize
+
+And at that point, each time a Job is started, your BaculaEvents JobStart
+method will be called.
+
+Now to actually do anything with a Job, you must define which Job events
+you want to see, and this is done by defining a JobEvents class containing
+the methods you want called.  Each method name corresponds to one of the
+Job Events that Bacula will generate.
+
+A simple Job Events class might look like the following:
+
+\footnotesize
+\begin{verbatim}
+class JobEvents:
+  def NewVolume(self, job):
+     ...
+\end{verbatim}
+\normalsize
+
+Here, your JobEvents class method NewVolume will be called each time
+the Job needs a new Volume name.  To actually register the events defined
+in your class with the Job, you must instantiate the JobEvents class and
+set it in the Job {\bf set\_events} variable. Note, this is a bit different 
+from how you registered the Bacula events. The registration process must
+be done in the Bacula JobStart event (your method).  So, you would modify 
+Bacula Events (not the Job events) as follows:
+
+\footnotesize
+\begin{verbatim}
+import sys, bacula
+class BaculaEvents:
+  def JobStart(self, job):
+     events = JobEvents()         # create instance of Job class
+     job.set_events(events)       # register Job events desired
+     ...
+\end{verbatim}
+\normalsize
+
+When a job event is triggered, the appropriate event definition is
+called in the JobEvents class. This is the means by which your Python
+script or code gets control. Once it has control, it may read job
+attributes, or set them. See below for a list of read-only attributes,
+and those that are writable.  
+
+In addition, the Bacula {\bf job} object in the Director has
+a number of methods (subroutines) that can be called. They
+are:
+\begin{description}
+\item [set\_events] The set\_events method takes a single
+   argument, which is the instantiation of the Job Events class
+   that contains the methods that you want called. The method
+   names that will be called must correspond to the Bacula
+   defined events. You may define additional methods but Bacula
+   will not use them.
+\item [run] The run method takes a single string
+   argument, which is the run command (same as in the Console)
+   that you want to submit to start a new Job. The value
+   returned by the run method is the JobId of the job that
+   started, or -1 if there was an error.
+\item [write] The write method is used to be able to send
+   print output to the Job Report. This will be described later.
+\item[cancel] The cancel method takes a single integer argument,
+   which is a JobId. If JobId is found, it will be canceled.
+\item [DoesVolumeExist] The DoesVolumeExist method takes a single
+   string argument, which is the Volume name, and returns 
+   1 if the volume exists in the Catalog and 0 if the volume
+   does not exist.
+\end{description}
+
+The following attributes are read/write within the Director 
+for the {\bf job} object.
+
+\begin{description}
+\item [Priority] Read or set the Job priority.
+   Note, that setting a Job Priority is effective only before
+   the Job actually starts.
+\item [Level] This attribute contains a string representing the Job 
+        level, e.g. Full, Differential, Incremental, ... if read.
+        The level can also be set.
+\end{description}
+
+The following read-only attributes are available within the Director
+for the {\bf job} object.
+
+\begin{description}
+\item [Type]  This attribute contains a string representing the Job
+       type, e.g. Backup, Restore, Verify, ...
+\item [JobId] This attribute contains an integer representing the
+       JobId.
+\item [Client] This attribute contains a string with the name of the
+       Client for this job.
+\item [NumVols]  This attribute contains an integer with the number of
+       Volumes in the Pool being used by the Job.
+\item [Pool] This attribute contains a string with the name of the Pool
+       being used by the Job.
+\item [Storage] This attribute contains a string with the name of the
+       Storage resource being used by the Job.
+\item [Catalog]  This attribute contains a string with the name of the
+       Catalog resource being used by the Job.
+\item [MediaType] This attribute contains a string with the name of the
+       Media Type associated with the Storage resource being used by the Job.
+\item [Job] This attribute contains a string containing the name of the
+       Job resource used by this job (not unique).
+\item [JobName] This attribute contains a string representing the full
+       unique Job name.
+\item [JobStatus] This attribute contains a single character string
+       representing the current Job status. The status may change
+       during execution of the job. It may take on the following
+       values:
+       \begin{description}
+       \item [C] Created, not yet running
+       \item [R] Running
+       \item [B] Blocked
+       \item [T] Completed successfully
+       \item [E] Terminated with errors
+       \item [e] Non-fatal error
+       \item [f] Fatal error
+       \item [D] Verify found differences
+       \item [A] Canceled by user
+       \item [F] Waiting for Client
+       \item [S] Waiting for Storage daemon
+       \item [m] Waiting for new media
+       \item [M] Waiting for media mount
+       \item [s] Waiting for storage resource
+       \item [j] Waiting for job resource
+       \item [c] Waiting for client resource
+       \item [d] Waiting on maximum jobs
+       \item [t] Waiting on start time
+       \item [p] Waiting on higher priority jobs
+       \end{description}
+
+\item [Priority]  This attribute contains an integer with the priority
+       assigned to the job.
+\item [CatalogRes] tuple consisting of (DBName, Address, User,
+       Password, Socket, Port, Database Vendor) taken from the Catalog resource 
+       for the Job with the exception of Database Vendor, which is
+       one of the following: MySQL, PostgreSQL, SQLite, Internal,
+       depending on what database you configured.
+\item [VolumeName]
+       After a Volume has been purged, this attribute will contain the
+       name of that Volume. At other times, this value may have no meaning.
+\end{description}
+
+The following write-only attributes are available within the
+Director:
+
+\begin{description}
+\item [JobReport] Send line to the Job Report.
+\item [VolumeName] Set a new Volume name. Valid only during the
+   NewVolume event.
+\end{description}
+
+\section{Python Console Command}
+\index[general]{Python Console Command}
+\index[general]{Console Command!Python}
+
+There is a new Console command named {\bf python}. It takes
+a single argument {\bf restart}. Example:
+\begin{verbatim}
+  python restart
+\end{verbatim}
+
+This command restarts the Python interpreter in the Director.
+This can be useful when you are modifying the DirStartUp script,
+because normally Python will cache it, and thus the
+script will be read one time.
+
+\section{Debugging Python Scripts}
+\index[general]{Debugging Python Scripts}
+In general, you debug your Python scripts by using print statements.
+You can also develop your script or important parts of it as a 
+separate file using the Python interpreter to run it.  Once you
+have it working correctly, you can then call the script from 
+within the Bacula Python script (DirStartUp.py).
+
+If you are having problems loading DirStartUp.py, you will probably
+not get any error messages because Bacula can only print Python 
+error messages after the Python interpreter is started.  However, you
+may be able to see the error messages by starting Bacula in
+a shell window with the {\bf -d1} option on the command line. That
+should cause the Python error messages to be printed in the shell
+window.
+
+If you are getting error messages such as the following when 
+loading DirStartUp.py:
+
+\begin{verbatim}
+ Traceback (most recent call last):
+   File "/etc/bacula/scripts/DirStartUp.py", line 6, in ?
+     import time, sys, bacula
+ ImportError: /usr/lib/python2.3/lib-dynload/timemodule.so: undefined
+ symbol: PyInt_FromLong
+ bacula-dir: pythonlib.c:134 Python Import error.
+\end{verbatim}
+     
+It is because the DirStartUp script is calling a dynamically loaded
+module (timemodule.so in the above case) that then tries to use
+Python functions exported from the Python interpreter (in this case
+PyInt\_FromLong). The way Bacula is currently linked with Python does
+not permit this.  The solution to the problem is to put such functions  
+(in this case the import of time into a separate Python script, which
+will do your calculations and return the values you want. Then call
+(not import) this script from the Bacula DirStartUp.py script, and
+it all should work as you expect.
+   
+                                    
+           
+
+
+\section{Python Example}
+\index[general]{Python Example}
+\index[general]{Example!Python}
+
+An example script for the Director startup file is provided in
+{\bf examples/python/DirStartup.py} as follows:
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula Python interface script for the Director
+#
+
+# You must import both sys and bacula
+import sys, bacula
+
+# This is the list of Bacula daemon events that you
+#  can receive.
+class BaculaEvents(object):
+  def __init__(self):
+     # Called here when a new Bacula Events class is
+     #  is created. Normally not used 
+     noop = 1
+
+  def JobStart(self, job):
+     """
+       Called here when a new job is started. If you want
+       to do anything with the Job, you must register
+       events you want to receive.
+     """
+     events = JobEvents()         # create instance of Job class
+     events.job = job             # save Bacula's job pointer
+     job.set_events(events)       # register events desired
+     sys.stderr = events          # send error output to Bacula
+     sys.stdout = events          # send stdout to Bacula
+     jobid = job.JobId; client = job.Client
+     numvols = job.NumVols 
+     job.JobReport="Python Dir JobStart: JobId=%d Client=%s NumVols=%d\n" % (jobid,client,numvols) 
+
+  # Bacula Job is going to terminate
+  def JobEnd(self, job):    
+     jobid = job.JobId
+     client = job.Client 
+     job.JobReport="Python Dir JobEnd output: JobId=%d Client=%s.\n" % (jobid, client) 
+
+  # Called here when the Bacula daemon is going to exit
+  def Exit(self, job):
+      print "Daemon exiting."
+     
+bacula.set_events(BaculaEvents()) # register daemon events desired
+
+"""
+  These are the Job events that you can receive.
+"""
+class JobEvents(object):
+  def __init__(self):
+     # Called here when you instantiate the Job. Not
+     # normally used
+     noop = 1
+     
+  def JobInit(self, job):
+     # Called when the job is first scheduled
+     noop = 1
+     
+  def JobRun(self, job):
+     # Called just before running the job after initializing
+     #  This is the point to change most Job parameters.
+     #  It is equivalent to the JobRunBefore point.
+     noop = 1
+
+  def NewVolume(self, job):
+     # Called when Bacula wants a new Volume name. The Volume
+     #  name returned, if any, must be stored in job.VolumeName
+     jobid = job.JobId
+     client = job.Client
+     numvol = job.NumVols;
+     print job.CatalogRes
+     job.JobReport = "JobId=%d Client=%s NumVols=%d" % (jobid, client, numvol)
+     job.JobReport="Python before New Volume set for Job.\n"
+     Vol = "TestA-%d" % numvol
+     job.JobReport = "Exists=%d TestA-%d" % (job.DoesVolumeExist(Vol), numvol)
+     job.VolumeName="TestA-%d" % numvol
+     job.JobReport="Python after New Volume set for Job.\n"
+     return 1
+
+  def VolumePurged(self, job):
+     # Called when a Volume is purged. The Volume name can be referenced
+     #  with job.VolumeName
+     noop = 1
+
+
+
+\end{verbatim}
+\normalsize
diff --git a/docs/manuals/fr/misc/python.tex b/docs/manuals/fr/misc/python.tex
deleted file mode 100644 (file)
index 5d3c953..0000000
+++ /dev/null
@@ -1,479 +0,0 @@
-%%
-%%
-
-\chapter{Python Scripting}
-\label{PythonChapter}
-\index[general]{Python Scripting}
-\index[general]{Scripting!Python}
-
-You may be asking what Python is and why a scripting language is
-needed in Bacula. The answer to the first question is that Python
-is an Object Oriented scripting language with features similar
-to those found in Perl, but the syntax of the language is much
-cleaner and simpler.  The answer to why have scripting in Bacula is to
-give the user more control over the whole backup process. Probably 
-the simplest example is when Bacula needs a new Volume name, with
-a scripting language such as Python, you can generate any name 
-you want, based on the current state of Bacula.
-
-\section{Python Configuration}
-\index[general]{Python Configuration}
-\index[general]{Configuration!Python}
-
-Python must be enabled during the configuration process by adding
-a \verb:--:with-python, and possibly specifying an alternate
-directory if your Python is not installed in a standard system
-location. If you are using RPMs you will need the python-devel package
-installed.
-
-When Python is configured, it becomes an integral part of Bacula and
-runs in Bacula's address space, so even though it is an interpreted 
-language, it is very efficient.
-
-When the Director starts, it looks to see if you have a {\bf
-Scripts Directory} Directive defined (normal default {\bf
-/etc/bacula/scripts}, if so, it looks in that directory for a file named
-{\bf DirStartUp.py}.  If it is found, Bacula will pass this file to Python
-for execution.  The {\bf Scripts Directory} is a new directive that you add
-to the Director resource of your bacula-dir.conf file.
-
-Note: Bacula does not install Python scripts by default because these
-scripts are for you to program.  This means that with a default
-installation with Python enabled, Bacula will print the following error
-message:
-
-\begin{verbatim}
-09-Jun 15:14 bacula-dir: ERROR in pythonlib.c:131 Could not import
-Python script /etc/bacula/scripts/DirStartUp. Python disabled.
-\end{verbatim}
-
-The source code directory {\bf examples/python} contains sample scripts
-for DirStartUp.py, SDStartUp.py, and FDStartUp.py that you might want
-to use as a starting point. Normally, your scripts directory (at least
-where you store the Python scripts) should be writable by Bacula, because
-Python will attempt to write a compiled version of the scripts (e.g.
-DirStartUp.pyc) back to that directory.
-
-When starting with the sample scripts, you can delete any part that
-you will not need, but you should keep all the Bacula Event and Job Event
-definitions.  If you do not want a particular event, simply replace the
-existing code with a {\bf noop = 1}.
-
-\section{Bacula Events}
-\index[general]{Bacula Events}
-\index[general]{Events}
-A Bacula event is a point in the Bacula code where Bacula
-will call a subroutine (actually a method) that you have 
-defined in the Python StartUp script. Events correspond 
-to some significant event such as a Job Start, a Job End,
-Bacula needs a new Volume Name, ... When your script is
-called, it will have access to all the Bacula variables
-specific to the Job (attributes of the Job Object), and
-it can even call some of the Job methods (subroutines)
-or set new values in the Job attributes, such as the 
-Priority. You will see below how the events are used.
-
-\section{Python Objects}
-\index[general]{Python Objects}
-\index[general]{Objects!Python}
-
-There are four Python objects that you will need to work with:
-\begin{description}
-\item [The Bacula Object]
-   The Bacula object is created by the Bacula daemon (the Director
-   in the present case) when the daemon starts. It is available to
-   the Python startup script, {\bf DirStartup.py}, by importing the
-   Bacula definitions with {\bf import bacula}. The methods
-   available with this object are described below. 
-
-\item [The Bacula Events Class]
-   You create this class in the startup script, and you pass
-   it to the Bacula Object's {\bf set\_events} method. The 
-   purpose of the Bacula Events Class is to define what global
-   or daemon events you want to monitor. When one of those events
-   occurs, your Bacula Events Class will be called at the method
-   corresponding to the event. There are currently three events,
-   JobStart, JobEnd, and Exit, which are described in detail below.
-   
-\item [The Job Object]
-   When a Job starts, and assuming you have defined a JobStart method
-   in your Bacula Events Class, Bacula will create a Job Object. This
-   object will be passed to the JobStart event. The Job Object has a
-   has good number of read-only members or attributes providing many
-   details of the Job, and it also has a number of writable attributes
-   that allow you to pass information into the Job.  These attributes
-   are described below.
-   
-\item [The Job Events Class]
-   You create this class in the JobStart method of your Bacula Events
-   class, and it allows you to define which of the possible Job Object
-   events you want to see. You must pass an instance of your Job Events
-   class to the Job Object set\_events() method.
-   Normally, you will probably only have one
-   Job Events Class, which will be instantiated for each Job. However,
-   if you wish to see different events in different Jobs, you may have
-   as many Job Events classes as you wish.
-\end{description}
-
-
-The first thing the startup script must do is to define what global Bacula
-events (daemon events), it wants to see. This is done by creating a 
-Bacula Events class, instantiating it, then passing it to the 
-{\bf set\_events} method. There are three possible
-events.
-
-\begin{description}
-\item [JobStart]
-   \index[general]{JobStart}
-   This Python method, if defined, will be called each time a Job is started.
-   The method is passed the class instantiation object as the first argument,
-   and the Bacula Job object as the second argument.  The Bacula Job object
-   has several built-in methods, and you can define which ones you
-   want called. If you do not define this method, you will not be able
-   to interact with Bacula jobs.
-
-\item [JobEnd]
-   This Python method, if defined, will be called each time a Job terminates.
-   The method is passed the class instantiation object as the first argument,
-   and the Bacula Job object as the second argument.  
-
-\item [Exit]
-   This Python method, if defined, will be called when the Director terminates.
-   The method is passed the class instantiation object as the first argument.
-\end{description}
-
-Access to the Bacula variables and methods is done with:
-
-     import bacula
-
-The following are the read-only attributes provided by the bacula object.
-\begin{description}
-\item [Name]
-\item [ConfigFile]
-\item [WorkingDir]
-\item [Version] string consisting of "Version  Build-date"
-\end{description}
-
-
-A simple definition of the Bacula Events Class might be the following:
-
-\footnotesize
-\begin{verbatim}
-import sys, bacula
-class BaculaEvents:
-  def JobStart(self, job):
-     ...
-\end{verbatim}
-\normalsize
-
-Then to instantiate the class and pass it to Bacula, you
-would do:
-
-\footnotesize
-\begin{verbatim}
-bacula.set_events(BaculaEvents()) # register Bacula Events wanted
-\end{verbatim}
-\normalsize
-
-And at that point, each time a Job is started, your BaculaEvents JobStart
-method will be called.
-
-Now to actually do anything with a Job, you must define which Job events
-you want to see, and this is done by defining a JobEvents class containing
-the methods you want called.  Each method name corresponds to one of the
-Job Events that Bacula will generate.
-
-A simple Job Events class might look like the following:
-
-\footnotesize
-\begin{verbatim}
-class JobEvents:
-  def NewVolume(self, job):
-     ...
-\end{verbatim}
-\normalsize
-
-Here, your JobEvents class method NewVolume will be called each time
-the Job needs a new Volume name.  To actually register the events defined
-in your class with the Job, you must instantiate the JobEvents class and
-set it in the Job {\bf set\_events} variable. Note, this is a bit different 
-from how you registered the Bacula events. The registration process must
-be done in the Bacula JobStart event (your method).  So, you would modify 
-Bacula Events (not the Job events) as follows:
-
-\footnotesize
-\begin{verbatim}
-import sys, bacula
-class BaculaEvents:
-  def JobStart(self, job):
-     events = JobEvents()         # create instance of Job class
-     job.set_events(events)       # register Job events desired
-     ...
-\end{verbatim}
-\normalsize
-
-When a job event is triggered, the appropriate event definition is
-called in the JobEvents class. This is the means by which your Python
-script or code gets control. Once it has control, it may read job
-attributes, or set them. See below for a list of read-only attributes,
-and those that are writable.  
-
-In addition, the Bacula {\bf job} object in the Director has
-a number of methods (subroutines) that can be called. They
-are:
-\begin{description}
-\item [set\_events] The set\_events method takes a single
-   argument, which is the instantiation of the Job Events class
-   that contains the methods that you want called. The method
-   names that will be called must correspond to the Bacula
-   defined events. You may define additional methods but Bacula
-   will not use them.
-\item [run] The run method takes a single string
-   argument, which is the run command (same as in the Console)
-   that you want to submit to start a new Job. The value
-   returned by the run method is the JobId of the job that
-   started, or -1 if there was an error.
-\item [write] The write method is used to be able to send
-   print output to the Job Report. This will be described later.
-\item[cancel] The cancel method takes a single integer argument,
-   which is a JobId. If JobId is found, it will be canceled.
-\item [DoesVolumeExist] The DoesVolumeExist method takes a single
-   string argument, which is the Volume name, and returns 
-   1 if the volume exists in the Catalog and 0 if the volume
-   does not exist.
-\end{description}
-
-The following attributes are read/write within the Director 
-for the {\bf job} object.
-
-\begin{description}
-\item [Priority] Read or set the Job priority.
-   Note, that setting a Job Priority is effective only before
-   the Job actually starts.
-\item [Level] This attribute contains a string representing the Job 
-        level, e.g. Full, Differential, Incremental, ... if read.
-        The level can also be set.
-\end{description}
-
-The following read-only attributes are available within the Director
-for the {\bf job} object.
-
-\begin{description}
-\item [Type]  This attribute contains a string representing the Job
-       type, e.g. Backup, Restore, Verify, ...
-\item [JobId] This attribute contains an integer representing the
-       JobId.
-\item [Client] This attribute contains a string with the name of the
-       Client for this job.
-\item [NumVols]  This attribute contains an integer with the number of
-       Volumes in the Pool being used by the Job.
-\item [Pool] This attribute contains a string with the name of the Pool
-       being used by the Job.
-\item [Storage] This attribute contains a string with the name of the
-       Storage resource being used by the Job.
-\item [Catalog]  This attribute contains a string with the name of the
-       Catalog resource being used by the Job.
-\item [MediaType] This attribute contains a string with the name of the
-       Media Type associated with the Storage resource being used by the Job.
-\item [Job] This attribute contains a string containing the name of the
-       Job resource used by this job (not unique).
-\item [JobName] This attribute contains a string representing the full
-       unique Job name.
-\item [JobStatus] This attribute contains a single character string
-       representing the current Job status. The status may change
-       during execution of the job. It may take on the following
-       values:
-       \begin{description}
-       \item [C] Created, not yet running
-       \item [R] Running
-       \item [B] Blocked
-       \item [T] Completed successfully
-       \item [E] Terminated with errors
-       \item [e] Non-fatal error
-       \item [f] Fatal error
-       \item [D] Verify found differences
-       \item [A] Canceled by user
-       \item [F] Waiting for Client
-       \item [S] Waiting for Storage daemon
-       \item [m] Waiting for new media
-       \item [M] Waiting for media mount
-       \item [s] Waiting for storage resource
-       \item [j] Waiting for job resource
-       \item [c] Waiting for client resource
-       \item [d] Waiting on maximum jobs
-       \item [t] Waiting on start time
-       \item [p] Waiting on higher priority jobs
-       \end{description}
-
-\item [Priority]  This attribute contains an integer with the priority
-       assigned to the job.
-\item [CatalogRes] tuple consisting of (DBName, Address, User,
-       Password, Socket, Port, Database Vendor) taken from the Catalog resource 
-       for the Job with the exception of Database Vendor, which is
-       one of the following: MySQL, PostgreSQL, SQLite, Internal,
-       depending on what database you configured.
-\item [VolumeName]
-       After a Volume has been purged, this attribute will contain the
-       name of that Volume. At other times, this value may have no meaning.
-\end{description}
-
-The following write-only attributes are available within the
-Director:
-
-\begin{description}
-\item [JobReport] Send line to the Job Report.
-\item [VolumeName] Set a new Volume name. Valid only during the
-   NewVolume event.
-\end{description}
-
-\section{Python Console Command}
-\index[general]{Python Console Command}
-\index[general]{Console Command!Python}
-
-There is a new Console command named {\bf python}. It takes
-a single argument {\bf restart}. Example:
-\begin{verbatim}
-  python restart
-\end{verbatim}
-
-This command restarts the Python interpreter in the Director.
-This can be useful when you are modifying the DirStartUp script,
-because normally Python will cache it, and thus the
-script will be read one time.
-
-\section{Debugging Python Scripts}
-\index[general]{Debugging Python Scripts}
-In general, you debug your Python scripts by using print statements.
-You can also develop your script or important parts of it as a 
-separate file using the Python interpreter to run it.  Once you
-have it working correctly, you can then call the script from 
-within the Bacula Python script (DirStartUp.py).
-
-If you are having problems loading DirStartUp.py, you will probably
-not get any error messages because Bacula can only print Python 
-error messages after the Python interpreter is started.  However, you
-may be able to see the error messages by starting Bacula in
-a shell window with the {\bf -d1} option on the command line. That
-should cause the Python error messages to be printed in the shell
-window.
-
-If you are getting error messages such as the following when 
-loading DirStartUp.py:
-
-\begin{verbatim}
- Traceback (most recent call last):
-   File "/etc/bacula/scripts/DirStartUp.py", line 6, in ?
-     import time, sys, bacula
- ImportError: /usr/lib/python2.3/lib-dynload/timemodule.so: undefined
- symbol: PyInt_FromLong
- bacula-dir: pythonlib.c:134 Python Import error.
-\end{verbatim}
-     
-It is because the DirStartUp script is calling a dynamically loaded
-module (timemodule.so in the above case) that then tries to use
-Python functions exported from the Python interpreter (in this case
-PyInt\_FromLong). The way Bacula is currently linked with Python does
-not permit this.  The solution to the problem is to put such functions  
-(in this case the import of time into a separate Python script, which
-will do your calculations and return the values you want. Then call
-(not import) this script from the Bacula DirStartUp.py script, and
-it all should work as you expect.
-   
-                                    
-           
-
-
-\section{Python Example}
-\index[general]{Python Example}
-\index[general]{Example!Python}
-
-An example script for the Director startup file is provided in
-{\bf examples/python/DirStartup.py} as follows:
-
-\footnotesize
-\begin{verbatim}
-#
-# Bacula Python interface script for the Director
-#
-
-# You must import both sys and bacula
-import sys, bacula
-
-# This is the list of Bacula daemon events that you
-#  can receive.
-class BaculaEvents(object):
-  def __init__(self):
-     # Called here when a new Bacula Events class is
-     #  is created. Normally not used 
-     noop = 1
-
-  def JobStart(self, job):
-     """
-       Called here when a new job is started. If you want
-       to do anything with the Job, you must register
-       events you want to receive.
-     """
-     events = JobEvents()         # create instance of Job class
-     events.job = job             # save Bacula's job pointer
-     job.set_events(events)       # register events desired
-     sys.stderr = events          # send error output to Bacula
-     sys.stdout = events          # send stdout to Bacula
-     jobid = job.JobId; client = job.Client
-     numvols = job.NumVols 
-     job.JobReport="Python Dir JobStart: JobId=%d Client=%s NumVols=%d\n" % (jobid,client,numvols) 
-
-  # Bacula Job is going to terminate
-  def JobEnd(self, job):    
-     jobid = job.JobId
-     client = job.Client 
-     job.JobReport="Python Dir JobEnd output: JobId=%d Client=%s.\n" % (jobid, client) 
-
-  # Called here when the Bacula daemon is going to exit
-  def Exit(self, job):
-      print "Daemon exiting."
-     
-bacula.set_events(BaculaEvents()) # register daemon events desired
-
-"""
-  These are the Job events that you can receive.
-"""
-class JobEvents(object):
-  def __init__(self):
-     # Called here when you instantiate the Job. Not
-     # normally used
-     noop = 1
-     
-  def JobInit(self, job):
-     # Called when the job is first scheduled
-     noop = 1
-     
-  def JobRun(self, job):
-     # Called just before running the job after initializing
-     #  This is the point to change most Job parameters.
-     #  It is equivalent to the JobRunBefore point.
-     noop = 1
-
-  def NewVolume(self, job):
-     # Called when Bacula wants a new Volume name. The Volume
-     #  name returned, if any, must be stored in job.VolumeName
-     jobid = job.JobId
-     client = job.Client
-     numvol = job.NumVols;
-     print job.CatalogRes
-     job.JobReport = "JobId=%d Client=%s NumVols=%d" % (jobid, client, numvol)
-     job.JobReport="Python before New Volume set for Job.\n"
-     Vol = "TestA-%d" % numvol
-     job.JobReport = "Exists=%d TestA-%d" % (job.DoesVolumeExist(Vol), numvol)
-     job.VolumeName="TestA-%d" % numvol
-     job.JobReport="Python after New Volume set for Job.\n"
-     return 1
-
-  def VolumePurged(self, job):
-     # Called when a Volume is purged. The Volume name can be referenced
-     #  with job.VolumeName
-     noop = 1
-
-
-
-\end{verbatim}
-\normalsize
diff --git a/docs/manuals/fr/misc/stunnel-en.tex b/docs/manuals/fr/misc/stunnel-en.tex
new file mode 100644 (file)
index 0000000..4907865
--- /dev/null
@@ -0,0 +1,553 @@
+%%
+%%
+
+\chapter{Using Stunnel to Encrypt Communications}
+\label{StunnelChapter}
+\index[general]{Using Stunnel to Encrypt Communications to Clients }
+
+Prior to version 1.37, Bacula did not have built-in communications encryption.
+Please see the \ilink {TLS chapter}{CommEncryption} if you are using Bacula
+1.37 or greater.
+
+Without too much effort, it is possible to encrypt the communications
+between any of the daemons. This chapter will show you how to use {\bf
+stunnel} to encrypt communications to your client programs. We assume the
+Director and the Storage daemon are running on one machine that will be called
+{\bf server} and the Client or File daemon is running on a different machine
+called {\bf client}. Although the details may be slightly different, the same
+principles apply whether you are encrypting between Unix, Linux, or Win32
+machines. This example was developed between two Linux machines running
+stunnel version 4.04-4 on a Red Hat Enterprise 3.0 system. 
+
+\section{Communications Ports Used}
+\index[general]{Used!Communications Ports }
+\index[general]{Communications Ports Used }
+
+First, you must know that with the standard Bacula configuration, the Director
+will contact the File daemon on port 9102. The File daemon then contacts the
+Storage daemon using the address and port parameters supplied by the Director.
+The standard port used will be 9103. This is the typical server/client view of
+the world, the File daemon is a server to the Director (i.e. listens for the
+Director to contact it), and the Storage daemon is a server to the File
+daemon.
+
+\section{Encryption}
+\index[general]{Encryption }
+
+The encryption is accomplished between the Director and the File daemon by
+using an stunnel on the Director's machine (server) to encrypt the data and to
+contact an stunnel on the File daemon's machine (client), which decrypts the
+data and passes it to the client. 
+
+Between the File daemon and the Storage daemon, we use an stunnel on the File
+daemon's machine to encrypt the data and another stunnel on the Storage
+daemon's machine to decrypt the data. 
+
+As a consequence, there are actually four copies of stunnel running, two on the
+server and two on the client. This may sound a bit complicated, but it really
+isn't. To accomplish this, we will need to construct four separate conf files
+for stunnel, and we will need to make some minor modifications to the
+Director's conf file. None of the other conf files need to be changed. 
+
+\section{A Picture}
+\index[general]{Picture }
+
+Since pictures usually help a lot, here is an overview of what we will be
+doing. Don't worry about all the details of the port numbers and such for the
+moment. 
+
+\footnotesize
+\begin{verbatim}
+  File daemon (client):
+                 stunnel-fd1.conf
+                   |===========|
+  Port 29102  >----| Stunnel 1 |-----> Port 9102
+                   |===========|
+                 stunnel-fd2.conf
+                   |===========|
+  Port 9103   >----| Stunnel 2 |-----> server:29103
+                   |===========|
+  Director (server):
+                 stunnel-dir.conf
+                   |===========|
+  Port 29102  >----| Stunnel 3 |-----> client:29102
+                   |===========|
+                 stunnel-sd.conf
+                   |===========|
+  Port 29103  >----| Stunnel 4 |-----> 9103
+                   |===========|
+\end{verbatim}
+\normalsize
+
+\section{Certificates}
+\index[general]{Certificates }
+
+In order for stunnel to function as a server, which it does in our diagram for
+Stunnel 1 and Stunnel 4, you must have a certificate and the key. It is
+possible to keep the two in separate files, but normally, you keep them in one
+single .pem file. You may create this certificate yourself in which case, it
+will be self-signed, or you may have it signed by a CA. 
+
+If you want your clients to verify that the server is in fact valid (Stunnel 2
+and Stunnel 3), you will need to have the server certificates signed by a CA
+(Certificate Authority), and you will need to have the CA's public certificate
+(contains the CA's public key). 
+
+Having a CA signed certificate is {\bf highly} recommended if you are using
+your client across the Internet, otherwise you are exposed to the man in the
+middle attack and hence loss of your data. 
+
+See below for how to create a self-signed certificate. 
+
+\section{Securing the Data Channel}
+\index[general]{Channel!Securing the Data }
+\index[general]{Securing the Data Channel }
+
+To simplify things a bit, let's for the moment consider only the data channel.
+That is the connection between the File daemon and the Storage daemon, which
+takes place on port 9103. In fact, in a minimalist solution, this is the only
+connection that needs to be encrypted, because it is the one that transports your
+data. The connection between the Director and the File daemon is simply a
+control channel used to start the job and get the job status. 
+
+Normally the File daemon will contact the Storage daemon on port 9103
+(supplied by the Director), so we need an stunnel that listens on port 9103 on
+the File daemon's machine, encrypts the data and sends it to the Storage
+daemon. This is depicted by Stunnel 2 above. Note that this stunnel is
+listening on port 9103 and sending to server:29103. We use port 29103 on the
+server because if we would send the data to port 9103, it would go directly to the
+Storage daemon, which doesn't understand encrypted data. On the server
+machine, we run Stunnel 4, which listens on port 29103, decrypts the data and
+sends it to the Storage daemon, which is listening on port 9103. 
+
+\section{Data Channel Configuration}
+\index[general]{Modification of bacula-dir.conf for the Data Channel }
+\index[general]{baculoa-dir.conf!Modification for the Data Channel }
+
+The Storage resource of the bacula-dir.conf normally looks something like the
+following: 
+
+\footnotesize
+\begin{verbatim}
+Storage {
+  Name = File
+  Address = server
+  SDPort = 9103
+  Password = storage_password
+  Device = File
+  Media Type = File
+}
+\end{verbatim}
+\normalsize
+
+Notice that this is running on the server machine, and it points the File
+daemon back to server:9103, which is where our Storage daemon is listening. We
+modify this to be: 
+
+\footnotesize
+\begin{verbatim}
+Storage {
+  Name = File
+  Address = localhost
+  SDPort = 9103
+  Password = storage_password
+  Device = File
+  Media Type = File
+}
+\end{verbatim}
+\normalsize
+
+This causes the File daemon to send the data to the stunnel running on
+localhost (the client machine). We could have used client as the address as
+well. 
+
+\section{Stunnel Configuration for the Data Channel}
+\index[general]{Stunnel Configuration for the Data Channel }
+
+In the diagram above, we see above Stunnel 2 that we use stunnel-fd2.conf on the
+client. A pretty much minimal config file would look like the following: 
+
+\footnotesize
+\begin{verbatim}
+client = yes
+[29103]
+accept = localhost:9103
+connect = server:29103
+\end{verbatim}
+\normalsize
+
+The above config file does encrypt the data but it does not require a
+certificate, so it is subject to the man in the middle attack. The file I
+actually used, stunnel-fd2.conf, looked like this: 
+
+\footnotesize
+\begin{verbatim}
+#
+# Stunnel conf for Bacula client -> SD
+#
+pid = /home/kern/bacula/bin/working/stunnel.pid
+#
+# A cert is not mandatory here. If verify=2, a
+#  cert signed by a CA must be specified, and
+#  either CAfile or CApath must point to the CA's
+#  cert
+#
+cert = /home/kern/stunnel/stunnel.pem
+CAfile = /home/kern/ssl/cacert.pem
+verify = 2
+client = yes
+# debug = 7
+# foreground = yes
+[29103]
+accept = localhost:9103
+connect = server:29103
+\end{verbatim}
+\normalsize
+
+You will notice that I specified a pid file location because I ran stunnel
+under my own userid so I could not use the default, which requires root
+permission. I also specified a certificate that I have as well as verify level
+2 so that the certificate is required and verified, and I must supply the
+location of the CA (Certificate Authority) certificate so that the stunnel
+certificate can be verified. Finally, you will see that there are two lines
+commented out, which when enabled, produce a lot of nice debug info in the
+command window. 
+
+If you do not have a signed certificate (stunnel.pem), you need to delete the
+cert, CAfile, and verify lines. 
+
+Note that the stunnel.pem, is actually a private key and a certificate in a
+single file. These two can be kept and specified individually, but keeping
+them in one file is more convenient. 
+
+The config file, stunnel-sd.conf, needed for Stunnel 4 on the server machine
+is: 
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula stunnel conf for Storage daemon
+#
+pid = /home/kern/bacula/bin/working/stunnel.pid
+#
+# A cert is mandatory here, it may be self signed
+#  If it is self signed, the client may not use
+#  verify
+#
+cert   = /home/kern/stunnel/stunnel.pem
+client = no
+# debug = 7
+# foreground = yes
+[29103]
+accept = 29103
+connect = 9103
+\end{verbatim}
+\normalsize
+
+\section{Starting and Testing the Data Encryption}
+\index[general]{Starting and Testing the Data Encryption }
+\index[general]{Encryption!Starting and Testing the Data }
+
+It will most likely be the simplest to implement the Data Channel encryption
+in the following order: 
+
+\begin{itemize}
+\item Setup and run Bacula backing up some data on your  client machine
+   without encryption.  
+\item Stop Bacula.  
+\item Modify the Storage resource in the Director's conf  file.  
+\item Start Bacula  
+\item Start stunnel on the server with:  
+
+   \footnotesize
+\begin{verbatim}
+     stunnel stunnel-sd.conf
+  
+\end{verbatim}
+\normalsize
+
+\item Start stunnel on the client with:  
+
+   \footnotesize
+\begin{verbatim}
+    stunnel stunnel-fd2.conf
+  
+\end{verbatim}
+\normalsize
+
+\item Run a job.  
+\item If it doesn't work, turn debug on in both stunnel conf files,  restart
+   the stunnels, rerun the job, repeat until it works. 
+   \end{itemize}
+
+\section{Encrypting the Control Channel}
+\index[general]{Channel!Encrypting the Control }
+\index[general]{Encrypting the Control Channel }
+
+The Job control channel is between the Director and the File daemon, and as
+mentioned above, it is not really necessary to encrypt, but it is good
+practice to encrypt it as well. The two stunnels that are used in this case
+will be Stunnel 1 and Stunnel 3 in the diagram above. Stunnel 3 on the server
+might normally listen on port 9102, but if you have a local File daemon, this
+will not work, so we make it listen on port 29102. It then sends the data to
+client:29102. Again we use port 29102 so that the stunnel on the client
+machine can decrypt the data before passing it on to port 9102 where the File
+daemon is listening. 
+
+\section{Control Channel Configuration}
+\index[general]{Control Channel Configuration }
+
+We need to modify the standard Client resource, which would normally look
+something like: 
+
+\footnotesize
+\begin{verbatim}
+Client {
+  Name = client-fd
+  Address = client
+  FDPort = 9102
+  Catalog = BackupDB
+  Password = "xxx"
+}
+\end{verbatim}
+\normalsize
+
+to be: 
+
+\footnotesize
+\begin{verbatim}
+Client {
+  Name = client-fd
+  Address = localhost
+  FDPort = 29102
+  Catalog = BackupDB
+  Password = "xxx"
+}
+\end{verbatim}
+\normalsize
+
+This will cause the Director to send the control information to
+localhost:29102 instead of directly to the client. 
+
+\section{Stunnel Configuration for the Control Channel}
+\index[general]{Config Files for stunnel to Encrypt the Control Channel }
+
+The stunnel config file, stunnel-dir.conf, for the Director's machine would
+look like the following: 
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula stunnel conf for the Directory to contact a client
+#
+pid = /home/kern/bacula/bin/working/stunnel.pid
+#
+# A cert is not mandatory here. If verify=2, a
+#  cert signed by a CA must be specified, and
+#  either CAfile or CApath must point to the CA's
+#  cert
+#
+cert   = /home/kern/stunnel/stunnel.pem
+CAfile = /home/kern/ssl/cacert.pem
+verify = 2
+client = yes
+# debug = 7
+# foreground = yes
+[29102]
+accept = localhost:29102
+connect = client:29102
+\end{verbatim}
+\normalsize
+
+and the config file, stunnel-fd1.conf, needed to run stunnel on the Client
+would be: 
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula stunnel conf for the Directory to contact a client
+#
+pid = /home/kern/bacula/bin/working/stunnel.pid
+#
+# A cert is not mandatory here. If verify=2, a
+#  cert signed by a CA must be specified, and
+#  either CAfile or CApath must point to the CA's
+#  cert
+#
+cert   = /home/kern/stunnel/stunnel.pem
+CAfile = /home/kern/ssl/cacert.pem
+verify = 2
+client = yes
+# debug = 7
+# foreground = yes
+[29102]
+accept = localhost:29102
+connect = client:29102
+\end{verbatim}
+\normalsize
+
+\section{Starting and Testing the Control Channel}
+\index[general]{Starting and Testing the Control Channel }
+\index[general]{Channel!Starting and Testing the Control }
+
+It will most likely be the simplest to implement the Control Channel
+encryption in the following order: 
+
+\begin{itemize}
+\item Stop Bacula.  
+\item Modify the Client resource in the Director's conf  file.  
+\item Start Bacula  
+\item Start stunnel on the server with:  
+
+   \footnotesize
+\begin{verbatim}
+     stunnel stunnel-dir.conf
+  
+\end{verbatim}
+\normalsize
+
+\item Start stunnel on the client with:  
+
+   \footnotesize
+\begin{verbatim}
+    stunnel stunnel-fd1.conf
+  
+\end{verbatim}
+\normalsize
+
+\item Run a job.  
+\item If it doesn't work, turn debug on in both stunnel conf files,  restart
+   the stunnels, rerun the job, repeat until it works. 
+   \end{itemize}
+
+\section{Using stunnel to Encrypt to a Second Client}
+\index[general]{Using stunnel to Encrypt to a Second Client }
+\index[general]{Client!Using stunnel to Encrypt to a Second }
+
+On the client machine, you can just duplicate the setup that you have on the
+first client file for file and it should work fine. 
+
+In the bacula-dir.conf file, you will want to create a second client pretty
+much identical to how you did for the first one, but the port number must be
+unique. We previously used: 
+
+\footnotesize
+\begin{verbatim}
+Client {
+  Name = client-fd
+  Address = localhost
+  FDPort = 29102
+  Catalog = BackupDB
+  Password = "xxx"
+}
+\end{verbatim}
+\normalsize
+
+so for the second client, we will, of course, have a different name, and we
+will also need a different port. Remember that we used port 29103 for the
+Storage daemon, so for the second client, we can use port 29104, and the
+Client resource would look like: 
+
+\footnotesize
+\begin{verbatim}
+Client {
+  Name = client2-fd
+  Address = localhost
+  FDPort = 29104
+  Catalog = BackupDB
+  Password = "yyy"
+}
+\end{verbatim}
+\normalsize
+
+Now, fortunately, we do not need a third stunnel to on the Director's machine,
+we can just add the new port to the config file, stunnel-dir.conf, to make: 
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula stunnel conf for the Directory to contact a client
+#
+pid = /home/kern/bacula/bin/working/stunnel.pid
+#
+# A cert is not mandatory here. If verify=2, a
+#  cert signed by a CA must be specified, and
+#  either CAfile or CApath must point to the CA's
+#  cert
+#
+cert   = /home/kern/stunnel/stunnel.pem
+CAfile = /home/kern/ssl/cacert.pem
+verify = 2
+client = yes
+# debug = 7
+# foreground = yes
+[29102]
+accept = localhost:29102
+connect = client:29102
+[29104]
+accept = localhost:29102
+connect = client2:29102
+\end{verbatim}
+\normalsize
+
+There are no changes necessary to the Storage daemon or the other stunnel so
+that this new client can talk to our Storage daemon. 
+
+\section{Creating a Self-signed Certificate}
+\index[general]{Creating a Self-signed Certificate }
+\index[general]{Certificate!Creating a Self-signed }
+
+You may create a self-signed certificate for use with stunnel that will permit
+you to make it function, but will not allow certificate validation. The .pem
+file containing both the certificate and the key can be made with the
+following, which I put in a file named {\bf makepem}: 
+
+\footnotesize
+\begin{verbatim}
+#!/bin/sh
+#
+# Simple shell script to make a .pem file that can be used
+# with stunnel and Bacula
+#
+OPENSSL=openssl
+   umask 77
+   PEM1="/bin/mktemp openssl.XXXXXX"
+   PEM2="/bin/mktemp openssl.XXXXXX"
+   ${OPENSSL} req -newkey rsa:1024 -keyout $PEM1 -nodes \
+       -x509 -days 365 -out $PEM2
+   cat $PEM1 > stunnel.pem
+   echo ""   >>stunnel.pem
+   cat $PEM2 >>stunnel.pem
+   rm $PEM1 $PEM2
+\end{verbatim}
+\normalsize
+
+The above script will ask you a number of questions. You may simply answer
+each of them by entering a return, or if you wish you may enter your own data.
+
+
+\section{Getting a CA Signed Certificate}
+\index[general]{Certificate!Getting a CA Signed }
+\index[general]{Getting a CA Signed Certificate }
+
+The process of getting a certificate that is signed by a CA is quite a bit
+more complicated. You can purchase one from quite a number of PKI vendors, but
+that is not at all necessary for use with Bacula. 
+
+To get a CA signed
+certificate, you will either need to find a friend that has setup his own CA
+or to become a CA yourself, and thus you can sign all your own certificates.
+The book OpenSSL by John Viega, Matt Mesier \& Pravir Chandra from O'Reilly
+explains how to do it, or you can read the documentation provided in the
+Open-source PKI Book project at Source Forge: 
+\elink{
+http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}
+{http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}.
+Note, this link may change. 
+
+\section{Using ssh to Secure the Communications}
+\index[general]{Communications!Using ssh to Secure the }
+\index[general]{Using ssh to Secure the Communications }
+
+Please see the script {\bf ssh-tunnel.sh} in the {\bf examples} directory. It
+was contributed by Stephan Holl. 
diff --git a/docs/manuals/fr/misc/stunnel.tex b/docs/manuals/fr/misc/stunnel.tex
deleted file mode 100644 (file)
index 4907865..0000000
+++ /dev/null
@@ -1,553 +0,0 @@
-%%
-%%
-
-\chapter{Using Stunnel to Encrypt Communications}
-\label{StunnelChapter}
-\index[general]{Using Stunnel to Encrypt Communications to Clients }
-
-Prior to version 1.37, Bacula did not have built-in communications encryption.
-Please see the \ilink {TLS chapter}{CommEncryption} if you are using Bacula
-1.37 or greater.
-
-Without too much effort, it is possible to encrypt the communications
-between any of the daemons. This chapter will show you how to use {\bf
-stunnel} to encrypt communications to your client programs. We assume the
-Director and the Storage daemon are running on one machine that will be called
-{\bf server} and the Client or File daemon is running on a different machine
-called {\bf client}. Although the details may be slightly different, the same
-principles apply whether you are encrypting between Unix, Linux, or Win32
-machines. This example was developed between two Linux machines running
-stunnel version 4.04-4 on a Red Hat Enterprise 3.0 system. 
-
-\section{Communications Ports Used}
-\index[general]{Used!Communications Ports }
-\index[general]{Communications Ports Used }
-
-First, you must know that with the standard Bacula configuration, the Director
-will contact the File daemon on port 9102. The File daemon then contacts the
-Storage daemon using the address and port parameters supplied by the Director.
-The standard port used will be 9103. This is the typical server/client view of
-the world, the File daemon is a server to the Director (i.e. listens for the
-Director to contact it), and the Storage daemon is a server to the File
-daemon.
-
-\section{Encryption}
-\index[general]{Encryption }
-
-The encryption is accomplished between the Director and the File daemon by
-using an stunnel on the Director's machine (server) to encrypt the data and to
-contact an stunnel on the File daemon's machine (client), which decrypts the
-data and passes it to the client. 
-
-Between the File daemon and the Storage daemon, we use an stunnel on the File
-daemon's machine to encrypt the data and another stunnel on the Storage
-daemon's machine to decrypt the data. 
-
-As a consequence, there are actually four copies of stunnel running, two on the
-server and two on the client. This may sound a bit complicated, but it really
-isn't. To accomplish this, we will need to construct four separate conf files
-for stunnel, and we will need to make some minor modifications to the
-Director's conf file. None of the other conf files need to be changed. 
-
-\section{A Picture}
-\index[general]{Picture }
-
-Since pictures usually help a lot, here is an overview of what we will be
-doing. Don't worry about all the details of the port numbers and such for the
-moment. 
-
-\footnotesize
-\begin{verbatim}
-  File daemon (client):
-                 stunnel-fd1.conf
-                   |===========|
-  Port 29102  >----| Stunnel 1 |-----> Port 9102
-                   |===========|
-                 stunnel-fd2.conf
-                   |===========|
-  Port 9103   >----| Stunnel 2 |-----> server:29103
-                   |===========|
-  Director (server):
-                 stunnel-dir.conf
-                   |===========|
-  Port 29102  >----| Stunnel 3 |-----> client:29102
-                   |===========|
-                 stunnel-sd.conf
-                   |===========|
-  Port 29103  >----| Stunnel 4 |-----> 9103
-                   |===========|
-\end{verbatim}
-\normalsize
-
-\section{Certificates}
-\index[general]{Certificates }
-
-In order for stunnel to function as a server, which it does in our diagram for
-Stunnel 1 and Stunnel 4, you must have a certificate and the key. It is
-possible to keep the two in separate files, but normally, you keep them in one
-single .pem file. You may create this certificate yourself in which case, it
-will be self-signed, or you may have it signed by a CA. 
-
-If you want your clients to verify that the server is in fact valid (Stunnel 2
-and Stunnel 3), you will need to have the server certificates signed by a CA
-(Certificate Authority), and you will need to have the CA's public certificate
-(contains the CA's public key). 
-
-Having a CA signed certificate is {\bf highly} recommended if you are using
-your client across the Internet, otherwise you are exposed to the man in the
-middle attack and hence loss of your data. 
-
-See below for how to create a self-signed certificate. 
-
-\section{Securing the Data Channel}
-\index[general]{Channel!Securing the Data }
-\index[general]{Securing the Data Channel }
-
-To simplify things a bit, let's for the moment consider only the data channel.
-That is the connection between the File daemon and the Storage daemon, which
-takes place on port 9103. In fact, in a minimalist solution, this is the only
-connection that needs to be encrypted, because it is the one that transports your
-data. The connection between the Director and the File daemon is simply a
-control channel used to start the job and get the job status. 
-
-Normally the File daemon will contact the Storage daemon on port 9103
-(supplied by the Director), so we need an stunnel that listens on port 9103 on
-the File daemon's machine, encrypts the data and sends it to the Storage
-daemon. This is depicted by Stunnel 2 above. Note that this stunnel is
-listening on port 9103 and sending to server:29103. We use port 29103 on the
-server because if we would send the data to port 9103, it would go directly to the
-Storage daemon, which doesn't understand encrypted data. On the server
-machine, we run Stunnel 4, which listens on port 29103, decrypts the data and
-sends it to the Storage daemon, which is listening on port 9103. 
-
-\section{Data Channel Configuration}
-\index[general]{Modification of bacula-dir.conf for the Data Channel }
-\index[general]{baculoa-dir.conf!Modification for the Data Channel }
-
-The Storage resource of the bacula-dir.conf normally looks something like the
-following: 
-
-\footnotesize
-\begin{verbatim}
-Storage {
-  Name = File
-  Address = server
-  SDPort = 9103
-  Password = storage_password
-  Device = File
-  Media Type = File
-}
-\end{verbatim}
-\normalsize
-
-Notice that this is running on the server machine, and it points the File
-daemon back to server:9103, which is where our Storage daemon is listening. We
-modify this to be: 
-
-\footnotesize
-\begin{verbatim}
-Storage {
-  Name = File
-  Address = localhost
-  SDPort = 9103
-  Password = storage_password
-  Device = File
-  Media Type = File
-}
-\end{verbatim}
-\normalsize
-
-This causes the File daemon to send the data to the stunnel running on
-localhost (the client machine). We could have used client as the address as
-well. 
-
-\section{Stunnel Configuration for the Data Channel}
-\index[general]{Stunnel Configuration for the Data Channel }
-
-In the diagram above, we see above Stunnel 2 that we use stunnel-fd2.conf on the
-client. A pretty much minimal config file would look like the following: 
-
-\footnotesize
-\begin{verbatim}
-client = yes
-[29103]
-accept = localhost:9103
-connect = server:29103
-\end{verbatim}
-\normalsize
-
-The above config file does encrypt the data but it does not require a
-certificate, so it is subject to the man in the middle attack. The file I
-actually used, stunnel-fd2.conf, looked like this: 
-
-\footnotesize
-\begin{verbatim}
-#
-# Stunnel conf for Bacula client -> SD
-#
-pid = /home/kern/bacula/bin/working/stunnel.pid
-#
-# A cert is not mandatory here. If verify=2, a
-#  cert signed by a CA must be specified, and
-#  either CAfile or CApath must point to the CA's
-#  cert
-#
-cert = /home/kern/stunnel/stunnel.pem
-CAfile = /home/kern/ssl/cacert.pem
-verify = 2
-client = yes
-# debug = 7
-# foreground = yes
-[29103]
-accept = localhost:9103
-connect = server:29103
-\end{verbatim}
-\normalsize
-
-You will notice that I specified a pid file location because I ran stunnel
-under my own userid so I could not use the default, which requires root
-permission. I also specified a certificate that I have as well as verify level
-2 so that the certificate is required and verified, and I must supply the
-location of the CA (Certificate Authority) certificate so that the stunnel
-certificate can be verified. Finally, you will see that there are two lines
-commented out, which when enabled, produce a lot of nice debug info in the
-command window. 
-
-If you do not have a signed certificate (stunnel.pem), you need to delete the
-cert, CAfile, and verify lines. 
-
-Note that the stunnel.pem, is actually a private key and a certificate in a
-single file. These two can be kept and specified individually, but keeping
-them in one file is more convenient. 
-
-The config file, stunnel-sd.conf, needed for Stunnel 4 on the server machine
-is: 
-
-\footnotesize
-\begin{verbatim}
-#
-# Bacula stunnel conf for Storage daemon
-#
-pid = /home/kern/bacula/bin/working/stunnel.pid
-#
-# A cert is mandatory here, it may be self signed
-#  If it is self signed, the client may not use
-#  verify
-#
-cert   = /home/kern/stunnel/stunnel.pem
-client = no
-# debug = 7
-# foreground = yes
-[29103]
-accept = 29103
-connect = 9103
-\end{verbatim}
-\normalsize
-
-\section{Starting and Testing the Data Encryption}
-\index[general]{Starting and Testing the Data Encryption }
-\index[general]{Encryption!Starting and Testing the Data }
-
-It will most likely be the simplest to implement the Data Channel encryption
-in the following order: 
-
-\begin{itemize}
-\item Setup and run Bacula backing up some data on your  client machine
-   without encryption.  
-\item Stop Bacula.  
-\item Modify the Storage resource in the Director's conf  file.  
-\item Start Bacula  
-\item Start stunnel on the server with:  
-
-   \footnotesize
-\begin{verbatim}
-     stunnel stunnel-sd.conf
-  
-\end{verbatim}
-\normalsize
-
-\item Start stunnel on the client with:  
-
-   \footnotesize
-\begin{verbatim}
-    stunnel stunnel-fd2.conf
-  
-\end{verbatim}
-\normalsize
-
-\item Run a job.  
-\item If it doesn't work, turn debug on in both stunnel conf files,  restart
-   the stunnels, rerun the job, repeat until it works. 
-   \end{itemize}
-
-\section{Encrypting the Control Channel}
-\index[general]{Channel!Encrypting the Control }
-\index[general]{Encrypting the Control Channel }
-
-The Job control channel is between the Director and the File daemon, and as
-mentioned above, it is not really necessary to encrypt, but it is good
-practice to encrypt it as well. The two stunnels that are used in this case
-will be Stunnel 1 and Stunnel 3 in the diagram above. Stunnel 3 on the server
-might normally listen on port 9102, but if you have a local File daemon, this
-will not work, so we make it listen on port 29102. It then sends the data to
-client:29102. Again we use port 29102 so that the stunnel on the client
-machine can decrypt the data before passing it on to port 9102 where the File
-daemon is listening. 
-
-\section{Control Channel Configuration}
-\index[general]{Control Channel Configuration }
-
-We need to modify the standard Client resource, which would normally look
-something like: 
-
-\footnotesize
-\begin{verbatim}
-Client {
-  Name = client-fd
-  Address = client
-  FDPort = 9102
-  Catalog = BackupDB
-  Password = "xxx"
-}
-\end{verbatim}
-\normalsize
-
-to be: 
-
-\footnotesize
-\begin{verbatim}
-Client {
-  Name = client-fd
-  Address = localhost
-  FDPort = 29102
-  Catalog = BackupDB
-  Password = "xxx"
-}
-\end{verbatim}
-\normalsize
-
-This will cause the Director to send the control information to
-localhost:29102 instead of directly to the client. 
-
-\section{Stunnel Configuration for the Control Channel}
-\index[general]{Config Files for stunnel to Encrypt the Control Channel }
-
-The stunnel config file, stunnel-dir.conf, for the Director's machine would
-look like the following: 
-
-\footnotesize
-\begin{verbatim}
-#
-# Bacula stunnel conf for the Directory to contact a client
-#
-pid = /home/kern/bacula/bin/working/stunnel.pid
-#
-# A cert is not mandatory here. If verify=2, a
-#  cert signed by a CA must be specified, and
-#  either CAfile or CApath must point to the CA's
-#  cert
-#
-cert   = /home/kern/stunnel/stunnel.pem
-CAfile = /home/kern/ssl/cacert.pem
-verify = 2
-client = yes
-# debug = 7
-# foreground = yes
-[29102]
-accept = localhost:29102
-connect = client:29102
-\end{verbatim}
-\normalsize
-
-and the config file, stunnel-fd1.conf, needed to run stunnel on the Client
-would be: 
-
-\footnotesize
-\begin{verbatim}
-#
-# Bacula stunnel conf for the Directory to contact a client
-#
-pid = /home/kern/bacula/bin/working/stunnel.pid
-#
-# A cert is not mandatory here. If verify=2, a
-#  cert signed by a CA must be specified, and
-#  either CAfile or CApath must point to the CA's
-#  cert
-#
-cert   = /home/kern/stunnel/stunnel.pem
-CAfile = /home/kern/ssl/cacert.pem
-verify = 2
-client = yes
-# debug = 7
-# foreground = yes
-[29102]
-accept = localhost:29102
-connect = client:29102
-\end{verbatim}
-\normalsize
-
-\section{Starting and Testing the Control Channel}
-\index[general]{Starting and Testing the Control Channel }
-\index[general]{Channel!Starting and Testing the Control }
-
-It will most likely be the simplest to implement the Control Channel
-encryption in the following order: 
-
-\begin{itemize}
-\item Stop Bacula.  
-\item Modify the Client resource in the Director's conf  file.  
-\item Start Bacula  
-\item Start stunnel on the server with:  
-
-   \footnotesize
-\begin{verbatim}
-     stunnel stunnel-dir.conf
-  
-\end{verbatim}
-\normalsize
-
-\item Start stunnel on the client with:  
-
-   \footnotesize
-\begin{verbatim}
-    stunnel stunnel-fd1.conf
-  
-\end{verbatim}
-\normalsize
-
-\item Run a job.  
-\item If it doesn't work, turn debug on in both stunnel conf files,  restart
-   the stunnels, rerun the job, repeat until it works. 
-   \end{itemize}
-
-\section{Using stunnel to Encrypt to a Second Client}
-\index[general]{Using stunnel to Encrypt to a Second Client }
-\index[general]{Client!Using stunnel to Encrypt to a Second }
-
-On the client machine, you can just duplicate the setup that you have on the
-first client file for file and it should work fine. 
-
-In the bacula-dir.conf file, you will want to create a second client pretty
-much identical to how you did for the first one, but the port number must be
-unique. We previously used: 
-
-\footnotesize
-\begin{verbatim}
-Client {
-  Name = client-fd
-  Address = localhost
-  FDPort = 29102
-  Catalog = BackupDB
-  Password = "xxx"
-}
-\end{verbatim}
-\normalsize
-
-so for the second client, we will, of course, have a different name, and we
-will also need a different port. Remember that we used port 29103 for the
-Storage daemon, so for the second client, we can use port 29104, and the
-Client resource would look like: 
-
-\footnotesize
-\begin{verbatim}
-Client {
-  Name = client2-fd
-  Address = localhost
-  FDPort = 29104
-  Catalog = BackupDB
-  Password = "yyy"
-}
-\end{verbatim}
-\normalsize
-
-Now, fortunately, we do not need a third stunnel to on the Director's machine,
-we can just add the new port to the config file, stunnel-dir.conf, to make: 
-
-\footnotesize
-\begin{verbatim}
-#
-# Bacula stunnel conf for the Directory to contact a client
-#
-pid = /home/kern/bacula/bin/working/stunnel.pid
-#
-# A cert is not mandatory here. If verify=2, a
-#  cert signed by a CA must be specified, and
-#  either CAfile or CApath must point to the CA's
-#  cert
-#
-cert   = /home/kern/stunnel/stunnel.pem
-CAfile = /home/kern/ssl/cacert.pem
-verify = 2
-client = yes
-# debug = 7
-# foreground = yes
-[29102]
-accept = localhost:29102
-connect = client:29102
-[29104]
-accept = localhost:29102
-connect = client2:29102
-\end{verbatim}
-\normalsize
-
-There are no changes necessary to the Storage daemon or the other stunnel so
-that this new client can talk to our Storage daemon. 
-
-\section{Creating a Self-signed Certificate}
-\index[general]{Creating a Self-signed Certificate }
-\index[general]{Certificate!Creating a Self-signed }
-
-You may create a self-signed certificate for use with stunnel that will permit
-you to make it function, but will not allow certificate validation. The .pem
-file containing both the certificate and the key can be made with the
-following, which I put in a file named {\bf makepem}: 
-
-\footnotesize
-\begin{verbatim}
-#!/bin/sh
-#
-# Simple shell script to make a .pem file that can be used
-# with stunnel and Bacula
-#
-OPENSSL=openssl
-   umask 77
-   PEM1="/bin/mktemp openssl.XXXXXX"
-   PEM2="/bin/mktemp openssl.XXXXXX"
-   ${OPENSSL} req -newkey rsa:1024 -keyout $PEM1 -nodes \
-       -x509 -days 365 -out $PEM2
-   cat $PEM1 > stunnel.pem
-   echo ""   >>stunnel.pem
-   cat $PEM2 >>stunnel.pem
-   rm $PEM1 $PEM2
-\end{verbatim}
-\normalsize
-
-The above script will ask you a number of questions. You may simply answer
-each of them by entering a return, or if you wish you may enter your own data.
-
-
-\section{Getting a CA Signed Certificate}
-\index[general]{Certificate!Getting a CA Signed }
-\index[general]{Getting a CA Signed Certificate }
-
-The process of getting a certificate that is signed by a CA is quite a bit
-more complicated. You can purchase one from quite a number of PKI vendors, but
-that is not at all necessary for use with Bacula. 
-
-To get a CA signed
-certificate, you will either need to find a friend that has setup his own CA
-or to become a CA yourself, and thus you can sign all your own certificates.
-The book OpenSSL by John Viega, Matt Mesier \& Pravir Chandra from O'Reilly
-explains how to do it, or you can read the documentation provided in the
-Open-source PKI Book project at Source Forge: 
-\elink{
-http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}
-{http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}.
-Note, this link may change. 
-
-\section{Using ssh to Secure the Communications}
-\index[general]{Communications!Using ssh to Secure the }
-\index[general]{Using ssh to Secure the Communications }
-
-Please see the script {\bf ssh-tunnel.sh} in the {\bf examples} directory. It
-was contributed by Stephan Holl. 
diff --git a/docs/manuals/fr/misc/vars-en.tex b/docs/manuals/fr/misc/vars-en.tex
new file mode 100644 (file)
index 0000000..b03c3ac
--- /dev/null
@@ -0,0 +1,229 @@
+%%
+%%
+
+\chapter{Variable Expansion}
+\label{VarsChapter}
+\index[general]{Variable Expansion }
+\index[general]{Expansion!Variable }
+
+% TODO: does the following mean that this should not be in book?
+
+Please note that as of version 1.37, the Variable Expansion 
+is deprecated and replaced by Python scripting (not yet
+documented).
+
+Variable expansion is somewhat similar to Unix shell variable expansion.
+Currently (version 1.31), it is used only in format labels, but in the future,
+it will most likely be used in more places. 
+
+\section{General Functionality}
+\index[general]{Functionality!General }
+\index[general]{General Functionality }
+
+This is basically a string expansion capability that permits referencing
+variables, indexing arrays, conditional replacement of variables, case
+conversion, substring selection, regular expression matching and replacement,
+character class replacement, padding strings, repeated expansion in a user
+controlled loop, support of arithmetic expressions in the loop start, step and
+end conditions, and recursive expansion. 
+
+When using variable expansion characters in a Volume Label Format record, the
+format should always be enclosed in double quotes ({\bf "}). 
+
+For example, {\bf \$\{HOME\}} will be replaced by your home directory as
+defined in the environment. If you have defined the variable {\bf xxx} to be
+{\bf Test}, then the reference {\bf \$\{xxx:p/7/Y/r\}} will right pad the
+contents of {\bf xxx} to a length of seven characters filling with the
+character {\bf Y} giving {\bf YYYTest}. 
+
+\section{Bacula Variables}
+\index[general]{Bacula Variables }
+\index[general]{Variables!Bacula }
+
+Within Bacula, there are three main classes of variables with some minor
+variations within the classes. The classes are: 
+
+\begin{description}
+
+\item [Counters]
+   \index[general]{Counters }
+   Counters are defined by the {\bf Counter}  resources in the Director's conf
+file. The counter can either  be a temporary counter that lasts for the
+duration of Bacula's  execution, or it can be a variable that is stored in 
+the catalog, and thus retains its value from one Bacula execution  to another.
+Counter variables may be incremented by postfixing  a plus sign ({\bf +} after
+the variable name). 
+
+\item [Internal Variables]
+   \index[general]{Internal Variables }
+   Internal variables are read-only,  and may be related to the current job (i.e.
+Job name), or  maybe special variables such as the date and time.  The
+following variables are available:  
+
+\begin{itemize}
+\item [Year]  -- the full year  
+\item [Month]  -- the current month 1-12  
+\item [Day]  -- the day of the month 1-31  
+\item [Hour]  -- the hour 0-24  
+\item [Minute]  -- the current minute 0-59  
+\item [Second]  -- the current second 0-59  
+\item [WeekDay]  -- the current day of the week 0-6 with 0 being Sunday  
+\item [Job]  -- the job name  
+\item [general]  -- the Director's name  
+\item [Level]  -- the Job Level 
+\item [Type]  -- the Job type 
+\item [JobId]  -- the JobId 
+\item [JobName]  -- the unique job name composed of Job and date  
+\item [Storage]  -- the Storage daemon's name  
+\item [Client]  -- the Client's name  
+\item [NumVols]  -- the current number of Volumes in the Pool  
+\item [Pool]  -- the Pool name  
+\item [Catalog]  -- the Catalog name  
+\item [MediaType] -- the Media Type  
+   \end{itemize}
+
+\item [Environment Variables]
+   \index[general]{Environment Variables }
+   Environment variables are read-only,  and must be defined in the environment
+prior to executing Bacula.  Environment variables may be either scalar or an
+array, where the  elements of the array are referenced by subscripting the
+variable  name (e.g. {\bf \$\{Months[3]\}}). Environment variable arrays are 
+defined by separating the elements with a vertical bar ({\bf |}),  thus {\bf
+set Months="Jan|Feb|Mar|Apr|..."} defines  an environment variable named
+{\bf Month} that will be  treated as an array, and the reference {\bf
+\$\{Months[3]\}} will  yield {\bf Mar}. The elements of the array can have 
+differing lengths. 
+\end{description}
+
+\section{Full Syntax}
+\index[general]{Syntax!Full }
+\index[general]{Full Syntax }
+
+Since the syntax is quite extensive, below, you will find the pseudo BNF. The
+special characters have the following meaning: 
+
+\footnotesize
+\begin{verbatim}
+ ::=     definition
+ ( )     grouping if the parens are not quoted
+ |       separates alternatives
+ '/'     literal / (or any other character)
+ CAPS    a character or character sequence
+ *       preceding item can be repeated zero or more times
+ ?       preceding item can appear zero or one time
+ +       preceding item must appear one or more times
+\end{verbatim}
+\normalsize
+
+And the pseudo BNF describing the syntax is: 
+
+\footnotesize
+\begin{verbatim}
+ input       ::= ( TEXT
+                 | variable
+                 | INDEX_OPEN input INDEX_CLOSE (loop_limits)?
+                 )*
+ variable    ::= DELIM_INIT (name|expression)
+ name        ::= (NAME_CHARS)+
+ expression  ::= DELIM_OPEN
+                 (name|variable)+
+                 (INDEX_OPEN num_exp INDEX_CLOSE)?
+                 (':' command)*
+                 DELIM_CLOSE
+ command     ::= '-' (TEXT_EXP|variable)+
+               | '+' (TEXT_EXP|variable)+
+               | 'o' NUMBER ('-'|',') (NUMBER)?
+               | '#'
+               | '*' (TEXT_EXP|variable)+
+               | 's' '/' (TEXT_PATTERN)+
+                     '/' (variable|TEXT_SUBST)*
+                     '/' ('m'|'g'|'i'|'t')*
+               | 'y' '/' (variable|TEXT_SUBST)+
+                     '/' (variable|TEXT_SUBST)*
+                     '/'
+               | 'p' '/' NUMBER
+                     '/' (variable|TEXT_SUBST)*
+                     '/' ('r'|'l'|'c')
+               | '%' (name|variable)+
+                     ('(' (TEXT_ARGS)? ')')?
+               | 'l'
+               | 'u'
+ num_exp     ::= operand
+               | operand ('+'|'-'|'*'|'/'|'%') num_exp
+ operand     ::= ('+'|'-')? NUMBER
+               | INDEX_MARK
+               | '(' num_exp ')'
+               | variable
+ loop_limits ::= DELIM_OPEN
+                 (num_exp)? ',' (num_exp)? (',' (num_exp)?)?
+                 DELIM_CLOSE
+ NUMBER      ::= ('0'|...|'9')+
+ TEXT_PATTERN::= (^('/'))+
+ TEXT_SUBST  ::= (^(DELIM_INIT|'/'))+
+ TEXT_ARGS   ::= (^(DELIM_INIT|')'))+
+ TEXT_EXP    ::= (^(DELIM_INIT|DELIM_CLOSE|':'|'+'))+
+ TEXT        ::= (^(DELIM_INIT|INDEX_OPEN|INDEX_CLOSE))+
+ DELIM_INIT  ::= '$'
+ DELIM_OPEN  ::= '{'
+ DELIM_CLOSE ::= '}'
+ INDEX_OPEN  ::= '['
+ INDEX_CLOSE ::= ']'
+ INDEX_MARK  ::= '#'
+ NAME_CHARS  ::= 'a'|...|'z'|'A'|...|'Z'|'0'|...|'9'
+\end{verbatim}
+\normalsize
+
+\section{Semantics}
+\index[general]{Semantics }
+
+The items listed in {\bf command} above, which always follow a colon ({\bf :})
+have the following meanings: 
+
+\footnotesize
+\begin{verbatim}
+ -    perform substitution if variable is empty
+ +    perform substitution if variable is not empty
+ o    cut out substring of the variable value
+ #    length of the variable value
+ *    substitute empty string if the variable value is not empty,
+      otherwise substitute the trailing parameter
+ s    regular expression search and replace. The trailing
+      options are: m = multiline, i = case insensitive,
+                   g = global,    t = plain text (no regexp)
+ y    transpose characters from class A to class B
+ p    pad variable to l = left, r = right or c = center,
+      with second value.
+ %    special function call (none implemented)
+ l    lower case the variable value
+ u    upper case the variable value
+\end{verbatim}
+\normalsize
+
+The {\bf loop\_limits} are start, step, and end values. 
+
+A counter variable name followed immediately by a plus ({\bf +}) will cause
+the counter to be incremented by one. 
+
+\section{Examples}
+\index[general]{Examples }
+
+To create an ISO date: 
+
+\footnotesize
+\begin{verbatim}
+  DLT-${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}
+\end{verbatim}
+\normalsize
+
+on 20 June 2003 would give {\bf DLT-2003-06-20} 
+
+If you set the environment variable {\bf mon} to 
+
+\footnotesize
+\begin{verbatim}
+   January|February|March|April|May|...
+   File-${mon[${Month}]}/${Day}/${Year}
+\end{verbatim}
+\normalsize
+
+on the first of March would give {\bf File-March/1/2003 } 
diff --git a/docs/manuals/fr/misc/vars.tex b/docs/manuals/fr/misc/vars.tex
deleted file mode 100644 (file)
index b03c3ac..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-%%
-%%
-
-\chapter{Variable Expansion}
-\label{VarsChapter}
-\index[general]{Variable Expansion }
-\index[general]{Expansion!Variable }
-
-% TODO: does the following mean that this should not be in book?
-
-Please note that as of version 1.37, the Variable Expansion 
-is deprecated and replaced by Python scripting (not yet
-documented).
-
-Variable expansion is somewhat similar to Unix shell variable expansion.
-Currently (version 1.31), it is used only in format labels, but in the future,
-it will most likely be used in more places. 
-
-\section{General Functionality}
-\index[general]{Functionality!General }
-\index[general]{General Functionality }
-
-This is basically a string expansion capability that permits referencing
-variables, indexing arrays, conditional replacement of variables, case
-conversion, substring selection, regular expression matching and replacement,
-character class replacement, padding strings, repeated expansion in a user
-controlled loop, support of arithmetic expressions in the loop start, step and
-end conditions, and recursive expansion. 
-
-When using variable expansion characters in a Volume Label Format record, the
-format should always be enclosed in double quotes ({\bf "}). 
-
-For example, {\bf \$\{HOME\}} will be replaced by your home directory as
-defined in the environment. If you have defined the variable {\bf xxx} to be
-{\bf Test}, then the reference {\bf \$\{xxx:p/7/Y/r\}} will right pad the
-contents of {\bf xxx} to a length of seven characters filling with the
-character {\bf Y} giving {\bf YYYTest}. 
-
-\section{Bacula Variables}
-\index[general]{Bacula Variables }
-\index[general]{Variables!Bacula }
-
-Within Bacula, there are three main classes of variables with some minor
-variations within the classes. The classes are: 
-
-\begin{description}
-
-\item [Counters]
-   \index[general]{Counters }
-   Counters are defined by the {\bf Counter}  resources in the Director's conf
-file. The counter can either  be a temporary counter that lasts for the
-duration of Bacula's  execution, or it can be a variable that is stored in 
-the catalog, and thus retains its value from one Bacula execution  to another.
-Counter variables may be incremented by postfixing  a plus sign ({\bf +} after
-the variable name). 
-
-\item [Internal Variables]
-   \index[general]{Internal Variables }
-   Internal variables are read-only,  and may be related to the current job (i.e.
-Job name), or  maybe special variables such as the date and time.  The
-following variables are available:  
-
-\begin{itemize}
-\item [Year]  -- the full year  
-\item [Month]  -- the current month 1-12  
-\item [Day]  -- the day of the month 1-31  
-\item [Hour]  -- the hour 0-24  
-\item [Minute]  -- the current minute 0-59  
-\item [Second]  -- the current second 0-59  
-\item [WeekDay]  -- the current day of the week 0-6 with 0 being Sunday  
-\item [Job]  -- the job name  
-\item [general]  -- the Director's name  
-\item [Level]  -- the Job Level 
-\item [Type]  -- the Job type 
-\item [JobId]  -- the JobId 
-\item [JobName]  -- the unique job name composed of Job and date  
-\item [Storage]  -- the Storage daemon's name  
-\item [Client]  -- the Client's name  
-\item [NumVols]  -- the current number of Volumes in the Pool  
-\item [Pool]  -- the Pool name  
-\item [Catalog]  -- the Catalog name  
-\item [MediaType] -- the Media Type  
-   \end{itemize}
-
-\item [Environment Variables]
-   \index[general]{Environment Variables }
-   Environment variables are read-only,  and must be defined in the environment
-prior to executing Bacula.  Environment variables may be either scalar or an
-array, where the  elements of the array are referenced by subscripting the
-variable  name (e.g. {\bf \$\{Months[3]\}}). Environment variable arrays are 
-defined by separating the elements with a vertical bar ({\bf |}),  thus {\bf
-set Months="Jan|Feb|Mar|Apr|..."} defines  an environment variable named
-{\bf Month} that will be  treated as an array, and the reference {\bf
-\$\{Months[3]\}} will  yield {\bf Mar}. The elements of the array can have 
-differing lengths. 
-\end{description}
-
-\section{Full Syntax}
-\index[general]{Syntax!Full }
-\index[general]{Full Syntax }
-
-Since the syntax is quite extensive, below, you will find the pseudo BNF. The
-special characters have the following meaning: 
-
-\footnotesize
-\begin{verbatim}
- ::=     definition
- ( )     grouping if the parens are not quoted
- |       separates alternatives
- '/'     literal / (or any other character)
- CAPS    a character or character sequence
- *       preceding item can be repeated zero or more times
- ?       preceding item can appear zero or one time
- +       preceding item must appear one or more times
-\end{verbatim}
-\normalsize
-
-And the pseudo BNF describing the syntax is: 
-
-\footnotesize
-\begin{verbatim}
- input       ::= ( TEXT
-                 | variable
-                 | INDEX_OPEN input INDEX_CLOSE (loop_limits)?
-                 )*
- variable    ::= DELIM_INIT (name|expression)
- name        ::= (NAME_CHARS)+
- expression  ::= DELIM_OPEN
-                 (name|variable)+
-                 (INDEX_OPEN num_exp INDEX_CLOSE)?
-                 (':' command)*
-                 DELIM_CLOSE
- command     ::= '-' (TEXT_EXP|variable)+
-               | '+' (TEXT_EXP|variable)+
-               | 'o' NUMBER ('-'|',') (NUMBER)?
-               | '#'
-               | '*' (TEXT_EXP|variable)+
-               | 's' '/' (TEXT_PATTERN)+
-                     '/' (variable|TEXT_SUBST)*
-                     '/' ('m'|'g'|'i'|'t')*
-               | 'y' '/' (variable|TEXT_SUBST)+
-                     '/' (variable|TEXT_SUBST)*
-                     '/'
-               | 'p' '/' NUMBER
-                     '/' (variable|TEXT_SUBST)*
-                     '/' ('r'|'l'|'c')
-               | '%' (name|variable)+
-                     ('(' (TEXT_ARGS)? ')')?
-               | 'l'
-               | 'u'
- num_exp     ::= operand
-               | operand ('+'|'-'|'*'|'/'|'%') num_exp
- operand     ::= ('+'|'-')? NUMBER
-               | INDEX_MARK
-               | '(' num_exp ')'
-               | variable
- loop_limits ::= DELIM_OPEN
-                 (num_exp)? ',' (num_exp)? (',' (num_exp)?)?
-                 DELIM_CLOSE
- NUMBER      ::= ('0'|...|'9')+
- TEXT_PATTERN::= (^('/'))+
- TEXT_SUBST  ::= (^(DELIM_INIT|'/'))+
- TEXT_ARGS   ::= (^(DELIM_INIT|')'))+
- TEXT_EXP    ::= (^(DELIM_INIT|DELIM_CLOSE|':'|'+'))+
- TEXT        ::= (^(DELIM_INIT|INDEX_OPEN|INDEX_CLOSE))+
- DELIM_INIT  ::= '$'
- DELIM_OPEN  ::= '{'
- DELIM_CLOSE ::= '}'
- INDEX_OPEN  ::= '['
- INDEX_CLOSE ::= ']'
- INDEX_MARK  ::= '#'
- NAME_CHARS  ::= 'a'|...|'z'|'A'|...|'Z'|'0'|...|'9'
-\end{verbatim}
-\normalsize
-
-\section{Semantics}
-\index[general]{Semantics }
-
-The items listed in {\bf command} above, which always follow a colon ({\bf :})
-have the following meanings: 
-
-\footnotesize
-\begin{verbatim}
- -    perform substitution if variable is empty
- +    perform substitution if variable is not empty
- o    cut out substring of the variable value
- #    length of the variable value
- *    substitute empty string if the variable value is not empty,
-      otherwise substitute the trailing parameter
- s    regular expression search and replace. The trailing
-      options are: m = multiline, i = case insensitive,
-                   g = global,    t = plain text (no regexp)
- y    transpose characters from class A to class B
- p    pad variable to l = left, r = right or c = center,
-      with second value.
- %    special function call (none implemented)
- l    lower case the variable value
- u    upper case the variable value
-\end{verbatim}
-\normalsize
-
-The {\bf loop\_limits} are start, step, and end values. 
-
-A counter variable name followed immediately by a plus ({\bf +}) will cause
-the counter to be incremented by one. 
-
-\section{Examples}
-\index[general]{Examples }
-
-To create an ISO date: 
-
-\footnotesize
-\begin{verbatim}
-  DLT-${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}
-\end{verbatim}
-\normalsize
-
-on 20 June 2003 would give {\bf DLT-2003-06-20} 
-
-If you set the environment variable {\bf mon} to 
-
-\footnotesize
-\begin{verbatim}
-   January|February|March|April|May|...
-   File-${mon[${Month}]}/${Day}/${Year}
-\end{verbatim}
-\normalsize
-
-on the first of March would give {\bf File-March/1/2003 } 
diff --git a/docs/manuals/fr/problems/base/faq.tex b/docs/manuals/fr/problems/base/faq.tex
new file mode 100644 (file)
index 0000000..2fff751
--- /dev/null
@@ -0,0 +1,876 @@
+%%
+%%
+% TODO: maybe merge all this FAQ in with the appropriate section?
+% TODO: and use detailed indexing to help reader
+
+\chapter{Bacula Frequently Asked Questions}
+\label{FaqChapter}
+\index[general]{Questions!Bacula Frequently Asked }
+\index[general]{Bacula Frequently Asked Questions }
+
+These are questions that have been submitted over time by the
+Bacula users. The following
+FAQ is very useful, but it is not always up to date 
+with newer information, so after reading it, if you don't find what you 
+want, you might try the Bacula wiki maintained by Frank Sweetser, which
+contains more than just a FAQ:
+\elink{http://wiki.bacula.org}{http://wiki.bacula.org}
+or go directly to the FAQ at: 
+\elink{http://wiki.bacula.org/doku.php?id=faq}
+{http://wiki.bacula.org/doku.php?id=faq}.
+
+Please also see
+\ilink{the bugs section}{BugsChapter} of this document for a list
+of known bugs and solutions.
+
+\begin{description}
+\label{what}
+\section{What is Bacula?}
+\item [What is {\bf Bacula}? ]
+   \index[general]{What is Bacula? }
+   {\bf Bacula} is a network backup and restore program. 
+
+\section{Does Bacula support Windows?}
+\item [Does Bacula support Windows?]
+\index[general]{Does Bacula support Windows? }
+   Yes, Bacula compiles and runs on Windows machines (Win98, WinMe, WinXP,
+   WinNT, Win2003, and Win2000).  We provide a binary version of the Client
+   (bacula-fd), but have not tested the Director nor the Storage daemon.
+   Note, Win95 is no longer supported because it doesn't have the
+   GetFileAttributesExA API call.
+
+\label{lang}
+\section{What language is Bacula written in?}
+\item [What language is Bacula written in?]
+\index[general]{What language is Bacula written in? }
+   It is written in C++, but it is mostly C  code using only a limited set of
+   the C++ extensions  over C.  Thus Bacula is completely  compiled using the
+   C++ compiler. There are several modules, including the Win32 interface, that
+   are written using the  object oriented C++ features. Over time, we are slowly
+   adding a larger  subset of C++.  
+
+\label{run}
+\section{On what machines does Bacula run?}
+\item [On what machines does Bacula run? ]
+   \index[general]{On what machines does Bacula run? }
+   {\bf Bacula} builds and executes on Red Hat Linux (versions RH7.1-RHEL
+   4.0, Fedora, SuSE, Gentoo, Debian, Mandriva, ...), FreeBSD, Solaris,
+   Alpha, SGI (client), NetBSD, OpenBSD, Mac OS X (client), and Win32.
+
+   Bacula has been my only backup tool for over seven years backing up 8
+   machines nightly (6 Linux boxes running SuSE, previously
+   Red Hat and Fedora, a WinXP machine, and a WinNT machine).
+
+\label{stable}
+\section{Is Bacula Stable?}
+\item [Is Bacula Stable? ]
+\index[general]{Is Bacula Stable? }
+   Yes, it is remarkably stable, but remember, there are still a lot of
+   unimplemented or partially implemented features.  With a program of this
+   size (150,000+ lines of C++ code not including the SQL programs) there
+   are bound to be bugs.  The current test environment (a twisted pair
+   local network and a HP DLT backup tape) is not exactly ideal, so
+   additional testing on other sites is necessary.  The File daemon has
+   never crashed -- running months at a time with no intervention.  The
+   Storage daemon is remarkably stable with most of the problems arising
+   during labeling or switching tapes.  Storage daemon crashes are rare
+   but running multiple drives and simultaneous jobs sometimes (rarely)
+   problems.
+   The Director, given the multitude of functions it fulfills is also
+   relatively stable.  In a production environment, it rarely if ever
+   crashes.  Of the three daemons, the Director is the most prone to having
+   problems.  Still, it frequently runs several months with no problems.
+
+   There are a number of reasons for this stability.  
+
+   \begin{enumerate}
+   \item  The program is constantly checking the chain of allocated
+      memory buffers to ensure that no overruns have occurred.  \\
+   \item All  memory leaks (orphaned buffers) are reported each time the
+      program  terminates.\\
+   \item Any signal (segmentation fault, ...) generates a 
+      traceback that is emailed to the developer.  This permits quick
+      resolution of bugs even if they only show up rarely in a production
+      system.\\
+   \item There is a reasonably comprehensive set of regression tests
+      that avoids re-creating the most common errors in new versions of
+      Bacula.
+   \end{enumerate}
+
+\label{AuthorizationErrors}
+\section{I'm Getting Authorization Errors. What is Going On? }
+\item [I'm Getting Authorization Errors. What is Going On? ]
+\index[general]{Authorization Errors}
+\index[general]{Concurrent Jobs}
+   For security reasons, Bacula requires that both  the File daemon and the
+   Storage daemon know the name  of the Director as well as its password. As a
+   consequence,  if you change the Director's name or password, you must  make
+   the corresponding change in the Storage daemon's and  in the File daemon's
+   configuration files.  
+
+   During the authorization process, the Storage daemon and File daemon
+   also require that the Director authenticates itself, so both ends
+   require the other to have the correct name and password.
+
+   If you have edited the conf files and modified any name or any password,
+   and you are getting authentication errors, then your best bet is to go
+   back to the original conf files generated by the Bacula installation
+   process.  Make only the absolutely necessary modifications to these
+   files -- e.g.  add the correct email address.  Then follow the
+   instructions in the \ilink{ Running Bacula}{TutorialChapter} chapter of
+   this manual.  You will run a backup to disk and a restore.  Only when
+   that works, should you begin customization of the conf files.
+
+   Another reason that you can get authentication errors is if you are
+   running Multiple Concurrent Jobs in the Director, but you have not set
+   them in the File daemon or the Storage daemon.  Once you reach their
+   limit, they will reject the connection producing authentication (or
+   connection) errors.
+
+   If you are having problems connecting to a Windows machine that
+   previously worked, you might try restarting the Bacula service since
+   Windows frequently encounters networking connection problems.
+
+   Some users report that authentication fails if there is not a proper
+   reverse DNS lookup entry for the machine.  This seems to be a
+   requirement of gethostbyname(), which is what Bacula uses to translate
+   names into IP addresses.  If you cannot add a reverse DNS entry, or you
+   don't know how to do so, you can avoid the problem by specifying an IP
+   address rather than a machine name in the appropriate Bacula conf file.
+
+   Here is a picture that indicates what names/passwords in which
+   files/Resources must match up:
+
+   \includegraphics{\idir Conf-Diagram.eps}  
+
+   In the left column, you will find the Director, Storage, and  Client
+   resources, with their names and passwords -- these  are all in {\bf
+   bacula-dir.conf}. The right column is where the corresponding values
+   should be found in the  Console, Storage daemon (SD), and File daemon (FD)
+   configuration  files.  
+
+   Another thing to check is to ensure that the Bacula component you are
+   trying to access has {\bf Maximum Concurrent Jobs} set large enough to
+   handle each of the Jobs and the Console that want to connect
+   simultaneously.  Once the maximum connections has been reached, each
+   Bacula component will reject all new connections.
+
+   Finally, make sure you have no {\bf hosts.allow} or {\bf hosts.deny}
+   file that is not permitting access to the site trying to connect.
+
+\label{AccessProblems}
+\section{Bacula Runs Fine but Cannot Access a Client on a Different Machine.
+   Why? }
+\item [Bacula Runs Fine but Cannot Access a Client on a Different Machine.
+   Why? ]
+\index[general]{Cannot Access a Client}
+   There are several reasons why Bacula could not contact a client  on a
+   different machine. They are:  
+
+\begin{itemize}
+\item It is a Windows Client, and the client died because of an  improper
+   configuration file. Check that the Bacula icon is in  the system tray and the
+   the menu items work. If the client has  died, the icon will disappear only
+   when you move the mouse over  the icon.  
+\item The Client address or port is incorrect or not resolved by  DNS. See if
+   you can ping the client machine using the same  address as in the Client
+   record.  
+\item You have a firewall, and it is blocking traffic on port  9102 between
+   the Director's machine and the Client's  machine (or on port 9103 between the
+   Client and the Storage daemon  machines).  
+\item Your password or names are not correct in both the Director and  the
+   Client machine. Try configuring everything identical to  how you run the
+   client on the same machine as the Director, but  just change the Address. If
+   that works, make the other changes  one step at a time until it works.  
+\item You may also be having problems between your File daemon and your
+   Storage daemon. The name you use in the Storage resource of your
+   Director's conf file must be known (resolvable) by the File daemon, 
+   because it is passed symbolically to the File daemon, which then
+   resolves it to get an IP address used to contact the Storage daemon.
+\item You may have a {\bf hosts.allow} or {\bf hosts.deny} file that is
+   not permitting access.
+\end{itemize}
+
+\label{startover}
+\section{My Catalog is Full of Test Runs, How Can I Start Over?}
+\item [My Catalog is Full of Test Runs, How Can I Start Over? ]
+  \index[general]{My Catalog is Full of Test Runs, How Can I Start Over? }
+  If you are using MySQL do the following:
+
+\footnotesize
+\begin{verbatim}
+   cd <bacula-source>/src/cats
+   ./drop_mysql_tables
+   ./make_mysql_tables
+\end{verbatim}
+\normalsize
+
+If you are using SQLite, do the following:
+
+\footnotesize
+\begin{verbatim}
+   Delete bacula.db from your working directory.
+   cd <bacula-source>/src/cats
+   ./drop_sqlite_tables
+   ./make_sqlite_tables
+\end{verbatim}
+\normalsize
+
+Then write an EOF on each tape you used with {\bf Bacula} using: 
+
+\footnotesize
+\begin{verbatim}
+mt -f /dev/st0 rewind
+mt -f /dev/st0 weof
+\end{verbatim}
+\normalsize
+
+where you need to adjust the device name for your system.  
+
+\label{restorehang}
+\section{I Run a Restore Job and Bacula Hangs. What do I do?}
+\item [I Run a Restore Job and Bacula Hangs. What do I do?]
+\index[general]{I Run a Restore Job and Bacula Hangs. What do I do? }
+   On Bacula version 1.25 and prior, it expects you to have the correct
+   tape mounted prior to a restore.  On Bacula version 1.26 and higher, it
+   will ask you for the tape, and if the wrong one is mounted, it will
+   inform you.
+
+   If you have previously done an {\bf unmount} command, all Storage daemon
+   sessions (jobs) will be completely blocked from using the drive
+   unmounted, so be sure to do a {\bf mount} after your unmount.  If in
+   doubt, do a second {\bf mount}, it won't cause any harm.
+
+\label{windowstart}
+\section{I Cannot Get My Windows Client to Start Automatically? }
+\item [I Cannot Get My Windows Client to Start Automatically? ]
+\index[general]{Windows Auto Start}
+   You are probably having one of two problems: either the Client is dying
+   due to an incorrect configuration file, or you didn't do the
+   Installation commands necessary to install it as a Windows Service.
+
+   For the first problem, see the next FAQ question.  For the second
+   problem, please review the \ilink{ Windows Installation
+   instructions}{Win32Chapter} in this manual.
+
+\label{windowsdie}
+\section{My Windows Client Immediately Dies When I Start It}
+\item [My Windows Client Immediately Dies When I Start It]
+\index[general]{Windows Client Dies}
+The most common problem is either that the configuration file is not where
+it expects it to be, or that there is an error in the configuration file.
+You must have the configuration file in {\bf
+c:\textbackslash{}bacula\textbackslash{}bin\textbackslash{}bacula-fd.conf}.
+
+To {\bf see} what is going on when the File daemon starts  on Windows, do the
+following:  
+
+\footnotesize
+\begin{verbatim}
+    Start a DOS shell Window.
+    cd c:\bacula\bin
+    bacula-fd -d100 -c c:\bacula\bin\bacula-fd.conf
+    
+\end{verbatim}
+\normalsize
+
+This will cause the FD to write a file {\bf bacula.trace}  in the current
+directory, which you can examine and thereby determine  the problem.  
+
+\label{scroll}
+\item [When I Start the Console, the Error Messages Fly By. How can I see
+   them? ]
+\index[general]{Error Messages}
+   Either use a shell window with a scroll bar, or use the gnome-console.
+   In any case, you probably should be logging all output to a file, and
+   then you can simply view the file using an editor or the {\bf less}
+   program.  To log all output, I have the following in my Director's
+   Message resource definition:
+
+\footnotesize
+\begin{verbatim}
+    append = "/home/kern/bacula/bin/log" = all, !skipped
+    
+\end{verbatim}
+\normalsize
+
+Obviously you will want to change the filename to be appropriate  for your
+system.  
+
+\label{nobackup}
+\section{My backups are not working on my Windows 
+   Client. What should I do?}
+\item [I didn't realize that the backups were not working on my Windows 
+   Client. What should I do? ]
+\index[general]{Backups Failing}
+You should be sending yourself an email message for each job. This will  avoid
+the possibility of not knowing about a failed backup. To do so  put something
+like:  
+
+\footnotesize
+\begin{verbatim}
+  Mail = yourname@yourdomain = all, !skipped
+  
+\end{verbatim}
+\normalsize
+
+in your Director's message resource.  You should then receive one email for
+each Job that ran.  When you are comfortable with what is going on (it took
+me 9 months), you might change that to:
+
+\footnotesize
+\begin{verbatim}
+   MailOnError = yourname@yourdomain = all, !skipped
+   
+\end{verbatim}
+\normalsize
+
+then you only get email messages when a Job errors as is the case  for your
+Windows machine.  
+
+You should also be logging the Director's messages, please see the  previous
+FAQ for how to do so.  
+
+\label{sched}
+\section{All my Jobs are scheduled for the same time. Will this cause
+   problems?}
+\item [All my Jobs are scheduled for the same time. Will this cause
+   problems? ]
+\index[general]{Schedule problems}
+   No, not at all.  Bacula will schedule all the Jobs at the same time, but
+   will run them one after another unless you have increased the number of
+   simultaneous jobs in the configuration files for the Director, the File
+   daemon, and the Storage daemon.  The appropriate configuration record is
+   {\bf Maximum Concurrent Jobs = nn}.  At the current time, we recommend
+   that you leave this set to {\bf 1} for the Director.
+
+\label{disk}
+\section{Can Bacula Backup My System To Files instead of Tape?}
+\item [Can Bacula Backup My System To Files instead of Tape? ]
+\index[general]{Backup to Disk}
+   Yes, in principle, Bacula can backup to any storage medium as long as
+   you have correctly defined that medium in the Storage daemon's Device
+   resource.  For an example of how to backup to files, please see the
+   \ilink{Pruning Example}{PruningExample} in the Recycling chapter of this
+   manual.  Also, there is a whole chapter devoted to \ilink{Basic Volume
+   Management}{DiskChapter}.  This chapter was originally written to
+   explain how to write to disk, but was expanded to include volume
+   management.  It is, however, still quite a good chapter to read.
+
+\label{testbackup}
+\section{Can I use a dummy device to test the backup?}
+   Yes, to have a {\sl Virtual} device which just consumes data, you can use a 
+   FIFO device (see \ilink{Stored configuration}{SetupFifo}).
+   It's useful to test a backup.
+\footnotesize
+\begin{verbatim}
+Device {
+  Name = NULL
+  Media Type = NULL
+  Device Type = Fifo
+  Archive Device = /dev/null
+  LabelMedia = yes
+  Random Access = no
+  AutomaticMount = no
+  RemovableMedia = no
+  MaximumOpenWait = 60
+  AlwaysOpen = no
+}
+\end{verbatim}
+\normalsize
+
+\label{bigfiles}
+\section{Can Bacula Backup and Restore Files Bigger than 2 Gigabytes?}
+\item [Can Bacula Backup and Restore Files Bigger than 2 Gigabytes?]
+\index[general]{Large file support}
+If your operating system permits it, and you are running Bacula version
+1.26 or later, the answer is yes.  To the best of our knowledge all client
+system supported by Bacula can handle files bigger 2 Gigabytes.
+
+\label{cancel}
+\section{I want to stop a job.}
+%% Is there  a better way than "./bacula stop" to stop it?}
+\item [I Started A Job then Decided I Really Did Not Want to Run It. Is
+   there  a better way than {\bf ./bacula stop} to stop it?]
+\index[general]{Cancelling jobs} 
+   Yes, you normally should use the Console command {\bf cancel} to cancel
+   a Job that is either scheduled or running.  If the Job is scheduled, it
+   will be marked for cancellation and will be canceled when it is
+   scheduled to start.  If it is running, it will normally terminate after
+   a few minutes.  If the Job is waiting on a tape mount, you may need to
+   do a {\bf mount} command before it will be canceled.
+
+\label{trademark}
+\section{Why have You Trademarked the Name Bacula?}
+\item [Why have You Trademarked the Name
+   Bacula\raisebox{.6ex}{{\footnotesize \textsuperscript{\textregistered}}}?]
+\index[general]{Bacula Trademark}
+We have trademarked the name Bacula to ensure that all media  written by any
+program named Bacula will always be compatible. Anyone  may use the name
+Bacula, even in a derivative product as long as it  remains totally compatible
+in all respects with the program defined  here.
+
+\label{docversion}
+\section{Why is the Online Document for Version 1.39 but the Released Version is 1.38?}
+\item [Why is the Online Document for Version 1.39 of Bacula when the
+   Current Version is 1.38?]
+\index[general]{Multiple manuals}
+As Bacula is being developed, the document is also being enhanced, more
+often than not it has clarifications of existing features that can be very
+useful to our users, so we publish the very latest document.  Fortunately
+it is rare that there are confusions with new features.
+
+If you want to read a document that pertains only to a specific  version,
+please use the one distributed in the source code.  The web site also has 
+online versions of both the released manual and the current development
+manual.
+
+\label{sure}
+\section{Does Bacula really save and restore all files?}
+\item [How Can I Be Sure that Bacula Really Saves and Restores All Files? ]
+\index[general]{Checking Restores}
+   It is really quite simple, but took me a while to figure
+   out how to "prove" it.  First make a Bacula Rescue disk, see the
+   \ilink{Disaster Recovery Using Bacula}{RescueChapter} chapter
+   of this manual.
+   Second, you run a full backup of all your files on all partitions.
+   Third, you run an Verify InitCatalog Job on the same FileSet, which
+   effectively makes a record of all the files on your system.  Fourth, you
+   run a Verify Catalog job and assure yourself that nothing has changed
+   (well, between an InitCatalog and Catalog one doesn't expect anything).
+   Then do the unthinkable, write zeros on your MBR (master boot record)
+   wiping out your hard disk.  Now, restore your whole system using your
+   Bacula Rescue disk and the Full backup you made, and finally re-run the
+   Verify Catalog job.  You will see that with the exception of the
+   directory modification and access dates and the files changed during the
+   boot, your system is identical to what it was before you wiped your hard
+   disk.
+   Alternatively you could do the wiping and restoring to another computer
+   of the same type.
+
+\label{upgrade}
+\section{I want an Incremental but Bacula runs it as a Full backup. Why?}
+\item [I did a Full backup last week, but now in running an Incremental,
+   Bacula  says it did not find a FULL backup, so it did a FULL backup. Why?]
+\index[general]{FULL backup not found}
+   Before doing an Incremental or a Differential
+   backup, Bacula checks to see if there was a prior Full backup of the
+   same Job that terminated successfully.  If so, it uses the date that
+   full backup started as the time for comparing if files have changed.  If
+   Bacula does not find a successful full backup, it proceeds to do one.
+   Perhaps you canceled the full backup, or it terminated in error.  In
+   such cases, the full backup will not be successful.  You can check by
+   entering {\bf list jobs} and look to see if there is a prior Job with
+   the same Name that has Level F and JobStatus T (normal termination).
+
+   Another reason why Bacula may not find a suitable Full backup is that
+   every time you change the FileSet, Bacula will require a new Full
+   backup.  This is necessary to ensure that all files are properly backed
+   up in the case where you have added more files to the FileSet.
+   Beginning with version 1.31, the FileSets are also dated when they are
+   created, and this date is displayed with the name when you are listing
+   or selecting a FileSet.  For more on backup levels see below.
+
+   See also {\bf Ignore FileSet Changes} in the
+   \ilink{FileSet Resource definition}{FileSetResource} in the Director
+   chapter of this document.
+
+\label{filenamelengths}
+\section{Do you really handle unlimited path lengths?}
+\item [How Can You Claim to Handle Unlimited Path and Filename Lengths
+   when  All Other Programs Have Fixed Limits?]
+\index[general]{Path and Filename Lengths} 
+   Most of those other programs have been around for a long time, in fact
+   since the beginning of Unix, which means that they were designed for
+   rather small fixed length path and filename lengths.  Over the years,
+   these restrictions have been relaxed allowing longer names.  Bacula on
+   the other hand was designed in 2000, and so from the start, Path and
+   Filenames have been kept in buffers that start at 256 bytes in length,
+   but can grow as needed to handle any length.  Most of the work is
+   carried out by lower level routines making the coding rather easy.
+
+   Note that due to limitations Win32 path and filenames cannot exceed
+   260 characters. By using Win32 Unicode functions, we will remove this
+   restriction in later versions of Bacula.
+
+\label{unique}
+\section{What Is the Really Unique Feature of Bacula?}
+\item [What Is the Really Unique Feature of Bacula?]
+\index[general]{Unique Feature of Bacula} 
+   Well, it is hard to come up with unique features when backup programs
+   for Unix machines have been around since the 1960s.  That said, I
+   believe that Bacula is the first and only program to use a standard SQL
+   interface to catalog its database.  Although this adds a bit of
+   complexity and possibly overhead, it provides an amazingly rich set of
+   features that are easy to program and enhance.  The current code has
+   barely scratched the surface in this regard (version 1.38).
+
+   The second feature, which gives a lot of power and flexibility to Bacula
+   is the Bootstrap record definition.
+
+   The third unique feature, which is currently (1.30) unimplemented, and
+   thus can be called vaporware :-), is Base level saves.  When
+   implemented, this will enormously reduce tape usage.
+
+\label{sequence}
+\section{How can I force one job to run after another?}
+\item [If I Run Multiple Simultaneous Jobs, How Can I Force One
+   Particular  Job to Run After Another Job? ]
+\index[general]{Multiple Simultaneous Jobs}
+Yes, you can set Priorities on your jobs so that they  run in the order you
+specify. Please see:  
+\ilink{the Priority record}{Priority} in the  Job resource.
+
+\label{nomail}
+\section{I Am Not Getting Email Notification, What Can I Do? }
+\item [I Am Not Getting Email Notification, What Can I Do? ]
+\index[general]{No Email Notification}
+   The most common problem is that you have not specified a fully qualified
+   email address and your bsmtp server is rejecting the mail.  The next
+   most common problem is that your bsmtp server doesn't like the syntax on
+   the From part of the message.  For more details on this and other
+   problems, please see the \ilink{ Getting Email Notification to
+   Work}{email} section of the Tips chapter of this manual.  The section
+   \ilink{ Getting Notified of Job Completion}{notification} of the Tips
+   chapter may also be useful.  For more information on the {\bf bsmtp}
+   mail program, please see \ilink{bsmtp in the Volume Utility Tools
+   chapter}{bsmtp} of this manual.
+
+\label{periods}
+\section{My retention periods don't work}
+\item [I Change Recycling, Retention Periods, or File Sizes in my Pool
+   Resource  and they Still Don't Work.]
+\index[general]{Recycling}
+\index[general]{Retention Periods}
+\index[general]{Pool changes}
+  The different variables associated with a Pool are defined in the  Pool
+  Resource, but are actually read by Bacula from the Catalog database.  On
+  Bacula versions prior to 1.30, after changing your Pool Resource,  you must
+  manually update the corresponding values in the Catalog by  using the {\bf
+  update pool} command in the Console program. In Bacula  version 1.30, Bacula
+  does this for you automatically every time it  starts.  
+  
+  When Bacula creates a Media record (Volume), it uses many default  values from
+  the Pool record. If you subsequently change the Pool  record, the new values
+  will be used as a default for the next Volume  that is created, but if you
+  want the new values to apply to existing  Volumes, you must manually update
+  the Volume Catalog entry using  the {\bf update volume} command in the Console
+  program. 
+
+\label{CompressionNotWorking}
+\section{Why aren't my files compressed?}
+\item [I Have Configured Compression On, But None of My Files Are
+   Compressed.  Why?]
+\index[general]{Compression}
+   There are two kinds of compression. One is tape compression. This  is done by
+   the tape drive hardware, and you either enable or disable  it with system
+   tools such as {\bf mt}. This compression works  independently of Bacula,  
+   and when it is enabled, you should not use the Bacula software 
+   compression.
+   
+   Bacula also has software compression code in the File daemons, which you
+   normally need to enable only when backing up to file Volumes.  There are
+   two conditions necessary to enable the Bacula software compression.
+
+\begin{enumerate}
+\item You must have the zip development libraries loaded on your system
+   when building Bacula and Bacula must find this library, normally {\bf
+   /usr/lib/libz.a}.  On Red Hat systems, this library is provided by the
+   {\bf zlib-devel} rpm.
+
+   If the library is found by Bacula during the {\bf ./configure} it will
+   be mentioned in the {\bf config.out} line by:
+
+\footnotesize
+\begin{verbatim}
+    ZLIB support:  yes
+          
+\end{verbatim}
+\normalsize
+
+\item You must add the {\bf compression=gzip} option on your  Include
+   statement in the Director's configuration file.  
+\end{enumerate}
+
+\label{NewTape}
+\item [Bacula is Asking for a New Tape After 2 GB of Data but My Tape
+   holds 33 GB. Why?]
+\index[general]{Tape capacity}
+There are several reasons why Bacula will request a new tape.  
+
+\begin{itemize}
+\item There is an I/O error on the tape. Bacula prints an error message  and
+   requests a new tape. Bacula does not attempt to continue writing  after an
+   I/O error.  
+\item Bacula encounters and end of medium on the tape. This is not always 
+   distinguishable from an I/O error.  
+\item You have specifically set some size limitation on the tape. For  example
+   the {\bf Maximum Volume Bytes} or {\bf Maximum Volume Files}  in the
+   Director's Pool resource, or {\bf Maximum Volume Size} in  the Storage
+   daemon's Device resource.  
+\end{itemize}
+
+\label{LevelChanging}
+\section{Incremental backups are not working}
+\item [Bacula is Not Doing the Right Thing When I Request an Incremental
+   Backup. Why?]
+\index[general]{Incremental backups}
+   As explained in one of the previous questions, Bacula will automatically
+   upgrade an Incremental or Differential job to a Full backup if it cannot
+   find a prior Full backup or a suitable Full backup.  For the gory
+   details on how/when Bacula decides to upgrade levels please see the
+   \ilink{Level record}{Level} in the Director's configuration chapter of
+   this manual.
+   
+   If after reading the above mentioned section, you believe that Bacula  is not
+   correctly handling the level (Differential/Incremental),  please send us the
+   following information for analysis:  
+
+\begin{itemize}
+\item Your Director's configuration file.  
+\item The output from {\bf list jobs} covering the period where you  are
+   having the problem.  
+\item The Job report output from the prior Full save (not critical).  
+\item An {\bf llist jobid=nnn} where nnn is the JobId of the prior  Full save.
+\item The Job report output from the save that is doing the  wrong thing (not
+   critical).  
+\item An {\bf llist jobid=nnn} where nnn is the JobId of the job  that was not
+   correct.  
+\item An explanation of what job went wrong and why you think it did.  
+   \end{itemize}
+
+The above information can allow us to analyze what happened, without it, 
+there is not much we can do.  
+
+\label{WaitForever}
+\section{I am waiting forever for a backup of an offsite machine}
+\item [I am Backing Up an Offsite Machine with an Unreliable Connection.
+   The  Director Waits Forever for the Client to Contact the SD. What Can  I
+   Do?]
+\index[general]{Backing Up Offsite Machines}
+   Bacula was written on the assumption that it will have a good TCP/IP
+   connection between all the daemons.  As a consequence, the current
+   Bacula doesn't deal with faulty connections very well.  This situation
+   is slowly being corrected over time.
+   
+   There are several things you can do to improve the situation.  
+
+\begin{itemize}
+\item Upgrade to version 1.32 and use the new SDConnectTimeout record.  For
+   example, set:  
+
+\footnotesize
+\begin{verbatim}
+          SD Connect Timeout = 5 min
+          
+\end{verbatim}
+\normalsize
+
+in the FileDaemon resource.  
+\item Run these kinds of jobs after all other jobs.  
+   \end{itemize}
+
+\label{sshHanging}
+\section{SSH hangs forever after starting Bacula}
+\item [When I ssh into a machine and start Bacula then attempt to exit, 
+   ssh hangs forever.]
+\index[general]{ssh hangs}
+   This happens because Bacula leaves stdin, stdout, and stderr open for
+   debug purposes.  To avoid it, the simplest thing to do is to redirect
+   the output of those files to {\bf /dev/null} or another file in your
+   startup script (the Red Hat autostart scripts do this automatically).
+   For example, you start the Director with:
+   
+\footnotesize
+\begin{verbatim}
+    bacula-dir -c bacula-dir.conf ... >/dev/null 0>\&1 2>\&1
+    
+\end{verbatim}
+\normalsize
+
+and likewise for the other daemons.  
+
+\label{RetentionPeriods}
+\section{I'm confused by retention periods}
+\item [I'm confused by the different Retention periods: File Retention, 
+   Job Retention, Volume Retention. Why are there so many?]
+\index[general]{Retention Periods}
+   Yes, this certainly can be confusing.  The basic reason for so many is
+   to allow flexibility.  The File records take quite a lot of space in the
+   catalog, so they are typically records you want to remove rather
+   quickly.  The Job records, take very little space, and they can be
+   useful even without the File records to see what Jobs actually ran and
+   when.  One must understand that if the File records are removed from the
+   catalog, you cannot use the {\bf restore} command to restore an
+   individual file since Bacula no longer knows where it is.  However, as
+   long as the Volume Retention period has not expired, the data will still
+   be on the tape, and can be recovered from the tape.
+   
+   For example, I keep a 30 day retention period for my Files to keep my
+   catalog from getting too big, but I keep my tapes for a minimum of one
+   year, just in case.
+
+\label{MaxVolumeSize}
+\section{MaxVolumeSize is ignored}
+\item [Why Does Bacula Ignore the MaxVolumeSize Set in my Pool?]
+\index[general]{MaxVolumeSize}
+   The MaxVolumeSize that Bacula uses comes from the Media record, so most
+   likely you changed your Pool, which is used as the default for creating
+   Media records, {\bf after} you created your Volume.  Check what is in
+   the Media record by doing:
+
+\footnotesize
+\begin{verbatim}
+llist Volume=xxx
+\end{verbatim}
+\normalsize
+
+If it doesn't have the right value, you can use: 
+
+\footnotesize
+\begin{verbatim}
+update Volume=xxx
+\end{verbatim}
+\normalsize
+
+to change it.  
+
+\label{ConnectionRefused}
+\section{I get a Connection refused when connecting to my Client}
+\item [In connecting to my Client, I get "ERR:Connection Refused.  Packet
+   Size too big from File daemon:192.168.1.4:9102" Why?]
+\index[general]{ERR:Connection Refused}
+   This is typically a communications error resulting  from one of the
+   following:
+
+\begin{itemize}
+\item Old versions of Bacula, usually a Win32 client, where two  threads were
+   using the same I/O packet. Fixed in more recent  versions. Please upgrade.  
+\item Some other program such as an HP Printer using the same  port (9102 in
+   this case).  
+\end{itemize}
+
+If it is neither of the above, please submit a bug report at  
+\elink{bugs.bacula.org}{http://bugs.bacula.org}.  
+
+Another solution might be to run the daemon with the debug  option by:  
+
+\footnotesize
+\begin{verbatim}
+    Start a DOS shell Window.
+    cd c:\bacula\bin
+    bacula-fd -d100 -c c:\bacula\bin\bacula-fd.conf
+    
+\end{verbatim}
+\normalsize
+
+This will cause the FD to write a file {\bf bacula.trace}  in the current
+directory, which you can examine to determine  the problem.  
+
+\section{Long running jobs die with Pipe Error}
+\item [During long running jobs my File daemon dies with Pipe Error, or
+       some other communications error. Why?]
+\index[general]{Communications Errors}
+\index[general]{Pipe Errors}
+\index[general]{slow}
+\index[general]{Backups!slow}
+   There are a number of reasons why a connection might break.
+   Most often, it is a router between your two computers that times out
+   inactive lines (not respecting the keepalive feature that Bacula uses).
+   In that case, you can use the {\bf Heartbeat Interval} directive in
+   both the Storage daemon and the File daemon. 
+
+   In at least one case, the problem has been a bad driver for a Win32
+   NVidia NForce 3 ethernet card with driver (4.4.2 17/05/2004). 
+   In this case, a good driver is (4.8.2.0 06/04/2005).  Moral of
+   the story, make sure you have the latest ethernet drivers
+   loaded, or use the following workaround as suggested by Thomas
+   Simmons for Win32 machines:
+     
+   Browse to:
+   Start \gt{} Control Panel \gt{} Network Connections
+
+   Right click the connection for the nvidia adapter and select properties. 
+   Under the General tab, click "Configure...". Under the Advanced tab set 
+   "Checksum Offload" to disabled and click OK to save the change.  
+
+   Lack of communications, or communications that get interrupted can
+   also be caused by Linux firewalls where you have a rule that throttles
+   connections or traffic.  For example, if you have:
+
+\footnotesize
+\begin{verbatim}
+iptables -t filter -A INPUT -m limit --limit 3/second --limit-burst 3 -j DROP
+\end{verbatim}
+\normalsize
+
+   you will want to add the following rules {\bf before} the above rule:
+\footnotesize
+\begin{verbatim}
+iptables -t filter -A INPUT --dport 9101 -j ACCEPT
+iptables -t filter -A INPUT --dport 9102 -j ACCEPT
+iptables -t filter -A INPUT --dport 9103 -j ACCEPT
+\end{verbatim}
+\normalsize
+   This will ensure that any Bacula traffic will not get terminated because
+   of high usage rates.
+   
+\section{How do I tell the Job which Volume to use?}
+\item[I can't figure out how to tell the job which volume to use]
+   \index[general]{What tape to mount}
+  This is an interesting statement. I now see that a number of people new to
+  Bacula have the same problem as you, probably from using programs like tar.
+
+  In fact, you do not tell Bacula what tapes to use.  It is the inverse.  Bacula
+  tells you want tapes it wants.  You put tapes at its disposition and it
+  chooses.  
+
+  Now, if you *really* want to be tricky and try to tell Bacula what to do, it
+  will be reasonable if for example you mount a valid tape that it can use on a
+  drive, it will most likely go ahead and use it.  It also has a documented
+  algorithm for choosing tapes -- but you are asking for problems ...
+
+  So, the trick is to invert your concept of things and put Bacula in charge of
+  handling the tapes.  Once you do that, you will be fine.  If you want to
+  anticipate what it is going to do, you can generally figure it out correctly
+  and  get what you want.  
+
+  If you start with the idea that you are going to force or tell Bacula to use
+  particular tapes or you insist on trying to run in that kind of mode, you will
+  probably not be too happy.
+
+  I don't want to worry about what tape has what data. That is what Bacula is
+  designed for.
+
+  If you have an application where you *really* need to remove a tape each day
+  and  insert a new one, it can be done the directives exist to accomplish that.
+  In such a case, one little "trick" to knowing what tape Bacula will want at
+  2am  while you are asleep is to run a tiny job at 4pm while you are still at
+  work  that backs up say one directory, or even one file. You will quickly find
+  out  what tape it wants, and you can mount it before you go home ... 
+
+\label{Password generation}
+\section{Password generation}
+\item [How do I generate a password?]
+\index[general]{MaxVolumeSize}
+
+   Each daemon needs a password.  This password occurs in the configuration
+   file for that daemon and in the bacula-dir.conf file. These passwords are
+   plain text.  There is no special generation procedure.  Most people just
+   use random text.
+
+   Passwords are never sent over the wire in plain text.  They are always
+   encrypted.
+
+   Security surrounding these passwords is best left security to your
+   operating system.  Passwords are not encrypted within Bacula
+   configuration files.
+
+\end{description}
+        
diff --git a/docs/manuals/fr/problems/base/fdl.tex b/docs/manuals/fr/problems/base/fdl.tex
new file mode 100644 (file)
index 0000000..b46cd99
--- /dev/null
@@ -0,0 +1,485 @@
+% TODO: maybe get rid of centering
+
+\chapter{GNU Free Documentation License}
+\index[general]{GNU Free Documentation License}
+\index[general]{License!GNU Free Documentation}        
+
+\label{label_fdl}
+
+ \begin{center}
+
+       Version 1.2, November 2002
+
+
+ Copyright \copyright 2000,2001,2002  Free Software Foundation, Inc.
+ \bigskip
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  
+ \bigskip
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+\end{center}
+
+
+\begin{center}
+{\bf\large Preamble}
+\end{center}
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+\begin{center}
+{\Large\bf 1. APPLICABILITY AND DEFINITIONS}
+\end{center}
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The \textbf{"Document"}, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as \textbf{"you"}.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A \textbf{"Modified Version"} of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A \textbf{"Secondary Section"} is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject.  (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The \textbf{"Invariant Sections"} are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The \textbf{"Cover Texts"} are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A \textbf{"Transparent"} copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not "Transparent" is called \textbf{"Opaque"}.
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification.  Examples of
+transparent image formats include PNG, XCF and JPG.  Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The \textbf{"Title Page"} means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section \textbf{"Entitled XYZ"} means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as \textbf{"Acknowledgements"},
+\textbf{"Dedications"}, \textbf{"Endorsements"}, or \textbf{"History"}.)  
+To \textbf{"Preserve the Title"}
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+\begin{center}
+{\Large\bf 2. VERBATIM COPYING}
+\end{center}
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+\begin{center}
+{\Large\bf 3. COPYING IN QUANTITY}
+\end{center}
+
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+\begin{center}
+{\Large\bf 4. MODIFICATIONS}
+\end{center}
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+\begin{itemize}
+\item[A.] 
+   Use in the Title Page (and on the covers, if any) a title distinct
+   from that of the Document, and from those of previous versions
+   (which should, if there were any, be listed in the History section
+   of the Document).  You may use the same title as a previous version
+   if the original publisher of that version gives permission.
+   
+\item[B.]
+   List on the Title Page, as authors, one or more persons or entities
+   responsible for authorship of the modifications in the Modified
+   Version, together with at least five of the principal authors of the
+   Document (all of its principal authors, if it has fewer than five),
+   unless they release you from this requirement.
+   
+\item[C.]
+   State on the Title page the name of the publisher of the
+   Modified Version, as the publisher.
+   
+\item[D.]
+   Preserve all the copyright notices of the Document.
+   
+\item[E.]
+   Add an appropriate copyright notice for your modifications
+   adjacent to the other copyright notices.
+   
+\item[F.]
+   Include, immediately after the copyright notices, a license notice
+   giving the public permission to use the Modified Version under the
+   terms of this License, in the form shown in the Addendum below.
+   
+\item[G.]
+   Preserve in that license notice the full lists of Invariant Sections
+   and required Cover Texts given in the Document's license notice.
+   
+\item[H.]
+   Include an unaltered copy of this License.
+   
+\item[I.]
+   Preserve the section Entitled "History", Preserve its Title, and add
+   to it an item stating at least the title, year, new authors, and
+   publisher of the Modified Version as given on the Title Page.  If
+   there is no section Entitled "History" in the Document, create one
+   stating the title, year, authors, and publisher of the Document as
+   given on its Title Page, then add an item describing the Modified
+   Version as stated in the previous sentence.
+   
+\item[J.]
+   Preserve the network location, if any, given in the Document for
+   public access to a Transparent copy of the Document, and likewise
+   the network locations given in the Document for previous versions
+   it was based on.  These may be placed in the "History" section.
+   You may omit a network location for a work that was published at
+   least four years before the Document itself, or if the original
+   publisher of the version it refers to gives permission.
+   
+\item[K.]
+   For any section Entitled "Acknowledgements" or "Dedications",
+   Preserve the Title of the section, and preserve in the section all
+   the substance and tone of each of the contributor acknowledgements
+   and/or dedications given therein.
+   
+\item[L.]
+   Preserve all the Invariant Sections of the Document,
+   unaltered in their text and in their titles.  Section numbers
+   or the equivalent are not considered part of the section titles.
+   
+\item[M.]
+   Delete any section Entitled "Endorsements".  Such a section
+   may not be included in the Modified Version.
+   
+\item[N.]
+   Do not retitle any existing section to be Entitled "Endorsements"
+   or to conflict in title with any Invariant Section.
+   
+\item[O.]
+   Preserve any Warranty Disclaimers.
+\end{itemize}
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+\begin{center}
+{\Large\bf 5. COMBINING DOCUMENTS}
+\end{center}
+
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications".  You must delete all sections
+Entitled "Endorsements".
+
+\begin{center}
+{\Large\bf 6. COLLECTIONS OF DOCUMENTS}
+\end{center}
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+\begin{center}
+{\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS}
+\end{center}
+
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+\begin{center}
+{\Large\bf 8. TRANSLATION}
+\end{center}
+
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+\begin{center}
+{\Large\bf 9. TERMINATION}
+\end{center}
+
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+\begin{center}
+{\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE}
+\end{center}
+
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+\begin{center}
+{\Large\bf ADDENDUM: How to use this License for your documents}
+% TODO: this is too long for table of contents
+\end{center}
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+\bigskip
+\begin{quote}
+    Copyright \copyright  YEAR  YOUR NAME.
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the GNU Free Documentation License, Version 1.2
+    or any later version published by the Free Software Foundation;
+    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+    A copy of the license is included in the section entitled "GNU
+    Free Documentation License".
+\end{quote}
+\bigskip
+    
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+\bigskip
+\begin{quote}
+    with the Invariant Sections being LIST THEIR TITLES, with the
+    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+\end{quote}
+\bigskip
+    
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+%---------------------------------------------------------------------
diff --git a/docs/manuals/fr/problems/base/firewalls.tex b/docs/manuals/fr/problems/base/firewalls.tex
new file mode 100644 (file)
index 0000000..9646ea6
--- /dev/null
@@ -0,0 +1,373 @@
+%%
+%%
+
+\chapter{Dealing with Firewalls}
+\label{FirewallsChapter}
+\index[general]{Dealing with Firewalls }
+\index[general]{Firewalls!Dealing with }
+
+If you have a firewall or a DMZ installed on your computer, you may experience
+difficulties contacting one or more of the Clients to back them up. This is
+especially true if you are trying to backup a Client across the Internet. 
+
+\section{Technical Details}
+\index[general]{Technical Details }
+\index[general]{Details!Technical }
+
+If you are attempting to do this, the sequence of network events in Bacula to
+do a backup are the following: 
+
+\footnotesize
+\begin{verbatim}
+Console -> DIR:9101
+DIR     -> SD:9103
+DIR     -> FD:9102
+FD      -> SD:9103
+\end{verbatim}
+\normalsize
+
+Where hopefully it is obvious that DIR represents the Director, FD the File
+daemon or client, and SD the Storage daemon. The numbers that follow those
+names are the standard ports used by Bacula, and the \verb:->: represents the
+left side making a connection to the right side (i.e. the right side is the
+"server" or is listening on the specified port), and the left side is the
+"client" that initiates the conversation. 
+
+Note, port 9103 serves both the Director and the File daemon, each having its
+own independent connection. 
+
+If you are running {\bf iptables}, you might add something like: 
+
+\footnotesize
+\begin{verbatim}
+-A FW-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9101:9103 -j ACCEPT
+\end{verbatim}
+\normalsize
+
+on your server, and 
+
+\footnotesize
+\begin{verbatim}
+-A FW-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9102 -j ACCEPT
+\end{verbatim}
+\normalsize
+
+on your client. In both cases, I assume that the machine is allowed to
+initiate connections on any port. If not, you will need to allow outgoing
+connections on ports 9102 and 9103 on your server and 9103 on your client.
+Thanks to Raymond Norton for this tip. 
+
+\section{A Concrete Example}
+\index[general]{Example!Concrete }
+\index[general]{Concrete Example }
+
+The following discussion was originally written by
+Jesse Guardiani because he has 'internal' and 'external' requiring the
+Director and the Client to use different IP addresses.  His original
+solution was to define two different Storage resources in the Director's
+conf file each pointing to the same Storage daemon but with different
+IP addresses.  In Bacula 1.38.x this no longer works, because Bacula makes
+a one-to-one association between a Storage daemon resource and a Device (such
+as an Autochanger).  As a consequence, I have modified his original
+text to a method that I believe will work, but is as of yet untested
+(KES - July 2006).
+
+My bacula server is on the 192.168.1.0/24 network at IP address 192.168.1.52.
+For the sake of discussion we will refer to this network as the 'internal'
+network because it connects to the internet through a NAT'd firewall. We will
+call the network on the public (internet) side of the NAT'd firewall the
+'external' network. Also, for the sake of discussion we will call my bacula
+server: 
+
+\footnotesize
+\begin{verbatim}
+    server.int.mydomain.tld
+\end{verbatim}
+\normalsize
+
+when a fully qualified domain name is required, or simply: 
+
+\footnotesize
+\begin{verbatim}
+    server
+\end{verbatim}
+\normalsize
+
+if a hostname is adequate. We will call the various bacula daemons running on
+the server.int.mydomain.tld machine: 
+
+\footnotesize
+\begin{verbatim}
+    server-fd
+    server-sd
+    server-dir
+\end{verbatim}
+\normalsize
+
+In addition, I have two clients that I want to back up with Bacula. The first
+client is on the internal network. Its fully qualified domain name is: 
+
+\footnotesize
+\begin{verbatim}
+    private1.int.mydomain.tld
+\end{verbatim}
+\normalsize
+
+And its hostname is: 
+
+\footnotesize
+\begin{verbatim}
+    private1
+\end{verbatim}
+\normalsize
+
+This machine is a client and therefore runs just one bacula daemon: 
+
+\footnotesize
+\begin{verbatim}
+    private1-fd
+\end{verbatim}
+\normalsize
+
+The second client is on the external network. Its fully qualified domain name
+is: 
+
+\footnotesize
+\begin{verbatim}
+    public1.mydomain.tld
+\end{verbatim}
+\normalsize
+
+And its hostname is: 
+
+\footnotesize
+\begin{verbatim}
+    public1
+\end{verbatim}
+\normalsize
+
+This machine also runs just one bacula daemon: 
+
+\footnotesize
+\begin{verbatim}
+    public1-fd
+\end{verbatim}
+\normalsize
+
+Finally, I have a NAT firewall/gateway with two network interfaces. The first
+interface is on the internal network and serves as a gateway to the internet
+for all the machines attached to the internal network (For example,
+server.int.mydomain.tld and private1.int.mydomain.tld). The second interface
+is on the external (internet) network. The external interface has been
+assigned the name: 
+
+\footnotesize
+\begin{verbatim}
+    firewall.mydomain.tld
+\end{verbatim}
+\normalsize
+
+Remember: 
+
+\footnotesize
+\begin{verbatim}
+    *.int.mydomain.tld = internal network
+        *.mydomain.tld = external network
+\end{verbatim}
+\normalsize
+
+\subsection{The Bacula Configuration Files for the Above}
+\index[general]{Above!Bacula Configuration Files for the }
+\index[general]{Bacula Configuration Files for the Above }
+
+server-sd manages a 4 tape AIT autoloader. All of my backups are written to
+server-sd. I have just *one* Device resource in my server-sd.conf file: 
+
+\footnotesize
+\begin{verbatim}
+Autochanger {
+  Name = "autochanger1";\
+  Device = Drive0
+  Changer Device = /dev/ch0;
+  Changer Command = "/usr/local/sbin/chio-bacula %c %o %S %a";
+}
+Device {
+  Name = Drive0
+  DriveIndex = 0
+  Media Type = AIT-1;
+  Archive Device = /dev/nrsa1;
+  Label Media = yes;
+  AutoChanger = yes;
+  AutomaticMount = yes;               # when device opened, read it
+  AlwaysOpen = yes;
+  Hardware End of Medium = No
+  Fast Forward Space File = No
+  BSF at EOM = yes
+}
+\end{verbatim}
+\normalsize
+
+(note, please see 
+\ilink{the Tape Testing}{FreeBSDTapes} chapter of this manual
+for important FreeBSD information.) However, unlike previously, there
+is only one Storage definition in my server-dir.conf file: 
+
+\footnotesize
+\begin{verbatim}
+Storage {
+  Name = "autochanger1"    # Storage device for backing up
+  Address = Storage-server
+  SDPort = 9103
+  Password = "mysecretpassword"
+  Device = "autochanger1"
+  Media Type = AIT-1
+  Autochanger = yes
+}
+\end{verbatim}
+\normalsize
+
+Note that the Storage resource uses neither of the two addresses to
+the Storage daemon -- neither server.int.mydomain.tld nor
+firewall.mydomain.tld, but instead uses the address Storage-server.
+
+What is key is that in the internal net, Storage-server is resolved
+to server.int.mydomain.tld, either with an entry in /etc/hosts, or by
+creating and appropriate DNS entry, and on the external net (the Client
+machine), Storage-server is resolved to firewall.mydomain.tld.
+
+
+In addition to the above, I have two Client resources defined in
+server-dir.conf: 
+
+\footnotesize
+\begin{verbatim}
+Client {
+  Name = private1-fd
+  Address = private1.int.mydomain.tld
+  FDPort = 9102
+  Catalog = MyCatalog
+  Password = "mysecretpassword"       # password for FileDaemon
+}
+Client {
+  Name = public1-fd
+  Address = public1.mydomain.tld
+  FDPort = 9102
+  Catalog = MyCatalog
+  Password = "mysecretpassword"       # password for FileDaemon
+}
+\end{verbatim}
+\normalsize
+
+And finally, to tie it all together, I have two Job resources defined in
+server-dir.conf: 
+
+\footnotesize
+\begin{verbatim}
+Job {
+  Name = "Private1-Backup"
+  Type = Backup
+  Client = private1-fd
+  FileSet = "Private1"
+  Schedule = "WeeklyCycle"
+  Storage = "autochanger1-int"
+  Messages = Standard
+  Pool = "Weekly"
+  Write Bootstrap = "/var/db/bacula/Private1-Backup.bsr"
+  Priority = 12
+}
+Job {
+  Name = "Public1-Backup"
+  Type = Backup
+  Client = public1-fd
+  FileSet = "Public1"
+  Schedule = "WeeklyCycle"
+  Storage = "autochanger1-ext"
+  Messages = Standard
+  Pool = "Weekly"
+  Write Bootstrap = "/var/db/bacula/Public1-Backup.bsr"
+  Priority = 13
+}
+\end{verbatim}
+\normalsize
+
+It is important to notice that because the 'Private1-Backup' Job is intended
+to back up a machine on the internal network so it resolves Storage-server
+to contact the Storage daemon via the internal net.
+On the other hand, the 'Public1-Backup' Job is intended to
+back up a machine on the external network, so it resolves Storage-server
+to contact the Storage daemon via the external net.
+
+I have left the Pool, Catalog, Messages, FileSet, Schedule, and Director
+resources out of the above server-dir.conf examples because they are not
+pertinent to the discussion. 
+
+\subsection{How Does It Work?}
+\index[general]{How Does It Work? }
+\index[general]{Work!How Does It }
+
+If I want to run a backup of private1.int.mydomain.tld and store that backup
+using server-sd then my understanding of the order of events is this: 
+
+\begin{enumerate}
+\item I execute my Bacula 'console' command on server.int.mydomain.tld.  
+\item console connects to server-dir.  
+\item I tell console to 'run' backup Job 'Private1-Backup'.  
+\item console relays this command to server-dir.  
+\item server-dir connects to private1-fd at private1.int.mydomain.tld:9102  
+\item server-dir tells private1-fd to start sending the files defined in  the
+   'Private1-Backup' Job's FileSet resource to the Storage resource 
+   'autochanger1', which we have defined in server-dir.conf as having the 
+address:port of Storage-server, which is mapped by DNS to server.int.mydomain.tld.
+\item private1-fd connects to server.int.mydomain.tld:9103 and begins sending 
+   files. 
+   \end{enumerate}
+
+Alternatively, if I want to run a backup of public1.mydomain.tld and store
+that backup using server-sd then my understanding of the order of events is
+this: 
+
+\begin{enumerate}
+\item I execute my Bacula 'console' command on server.int.mydomain.tld.  
+\item console connects to server-dir.  
+\item I tell console to 'run' backup Job 'Public1-Backup'.  
+\item console relays this command to server-dir.  
+\item server-dir connects, through the NAT'd firewall, to public1-fd at 
+   public1.mydomain.tld:9102  
+\item server-dir tells public1-fd to start sending the files defined in  the
+   'Public1-Backup' Job's FileSet resource to the Storage resource 
+   'autochanger1', which we have defined in server-dir.conf as having the 
+   same address:port as above of Storage-server, but which on this machine
+   is resolved to firewall.mydomain.tld:9103.  
+\item public1-fd connects to firewall.mydomain.tld:9103 and begins sending 
+   files. 
+   \end{enumerate}
+
+\subsection{Important Note}
+\index[general]{Important Note }
+\index[general]{Note!Important }
+
+In order for the above 'Public1-Backup' Job to succeed,
+firewall.mydomain.tld:9103 MUST be forwarded using the firewall's
+configuration software to server.int.mydomain.tld:9103. Some firewalls call
+this 'Server Publication'. Others may call it 'Port Forwarding'. 
+
+\subsection{Firewall Problems}
+\index[general]{Firewall Problems}
+\index[general]{Problems!Firewalls}
+Either a firewall or a router may decide to timeout and terminate
+open connections if they are not active for a short time. By Internet
+standards the period should be two hours, and should be indefinitely
+extended if KEEPALIVE is set as is the case by Bacula.  If your firewall
+or router does not respect these rules, you may find Bacula connections
+terminated. In that case, the first thing to try is turning on the
+{\bf Heart Beat Interval} both in the File daemon and the Storage daemon
+and set an interval of say five minutes.
+
+Also, if you have denial of service rate limiting in your firewall, this
+too can cause Bacula disconnects since Bacula can at times use very high 
+access rates. To avoid this, you should implement default accept
+rules for the Bacula ports involved before the rate limiting rules.
+
+Finally, if you have a Windows machine, it will most likely by default
+disallow connections to the Bacula Windows File daemon.  See the      
+Windows chapter of this manual for additional details.
diff --git a/docs/manuals/fr/problems/base/kaboom.tex b/docs/manuals/fr/problems/base/kaboom.tex
new file mode 100644 (file)
index 0000000..a4e5bc5
--- /dev/null
@@ -0,0 +1,233 @@
+%%
+%%
+
+\chapter{What To Do When Bacula Crashes (Kaboom)}
+\label{KaboomChapter}
+\index[general]{Kaboom!What To Do When Bacula Crashes }
+\index[general]{What To Do When Bacula Crashes (Kaboom) }
+
+If you are running on a Linux system, and you have a set of working
+configuration files, it is very unlikely that {\bf Bacula} will crash. As with
+all software, however, it is inevitable that someday, it may crash,
+particularly if you are running on another operating system or using a new or
+unusual feature. 
+
+This chapter explains what you should do if one of the three {\bf Bacula}
+daemons (Director, File, Storage) crashes.  When we speak of crashing, we 
+mean that the daemon terminates abnormally because of an error.  There are
+many cases where Bacula detects errors (such as PIPE errors) and will fail 
+a job. These are not considered crashes.  In addition, under certain
+conditions, Bacula will detect a fatal in the configuration, such as 
+lack of permission to read/write the working directory. In that case,
+Bacula will force itself to crash with a SEGFAULT. However, before
+crashing, Bacula will normally display a message indicating why.    
+For more details, please read on.
+  
+
+\section{Traceback}
+\index[general]{Traceback}
+
+Each of the three Bacula daemons has a built-in exception handler which, in
+case of an error, will attempt to produce a traceback. If successful the
+traceback will be emailed to you. 
+
+For this to work, you need to ensure that a few things are setup correctly on
+your system: 
+
+\begin{enumerate}
+\item You must have a version of Bacula built with debug information turned
+   on and not stripped of debugging symbols.
+
+\item You must have an installed copy of {\bf gdb} (the GNU debugger),  and it
+   must be on {\bf Bacula's} path. On some systems such as Solaris, {\bf
+   gdb} may be replaced by {\bf dbx}.
+
+\item The Bacula installed script file {\bf btraceback} must  be in the same
+   directory as the daemon which dies, and it must  be marked as executable.  
+
+\item The script file {\bf btraceback.gdb} must  have the correct  path to it
+   specified in the {\bf btraceback} file.  
+
+\item You must have a {\bf mail} program which is on {\bf Bacula's}  path. 
+   By default, this {\bf mail} program is set to {\bf bsmtp}, so it must
+   be correctly configured.
+
+\item If you run either the Director or Storage daemon under a non-root
+   userid, you will most likely need to modify the {\bf btraceback} file
+   to do something like {\bf sudo} (raise to root priority) for the       
+   call to {\bf gdb} so that it has the proper permissions to debug
+   Bacula.
+\end{enumerate}
+
+If all the above conditions are met, the daemon that crashes will produce a
+traceback report and email it to you. If the above conditions are not true,
+you can either run the debugger by hand as described below, or you may be able
+to correct the problems by editing the {\bf btraceback} file. I recommend not
+spending too much time on trying to get the traceback to work as it can be
+very difficult. 
+
+The changes that might be needed are to add a correct path to the {\bf gdb}
+program, correct the path to the {\bf btraceback.gdb} file, change the {\bf
+mail} program or its path, or change your email address. The key line in the
+{\bf btraceback} file is: 
+
+\footnotesize
+\begin{verbatim}
+gdb -quiet -batch -x /home/kern/bacula/bin/btraceback.gdb \
+     $1 $2 2>\&1 | bsmtp -s "Bacula traceback" your-address@xxx.com
+\end{verbatim}
+\normalsize
+
+Since each daemon has the same traceback code, a single btraceback file is
+sufficient if you are running more than one daemon on a machine. 
+
+\section{Testing The Traceback}
+\index[general]{Traceback!Testing The }
+\index[general]{Testing The Traceback }
+
+To "manually" test the traceback feature, you simply start {\bf Bacula} then
+obtain the {\bf PID} of the main daemon thread (there are multiple threads).
+The output produced here will look different depending on what OS and what
+version of the kernel you are running.
+Unfortunately, the output had to be split to fit on this page: 
+
+\footnotesize
+\begin{verbatim}
+[kern@rufus kern]$ ps fax --columns 132 | grep bacula-dir
+ 2103 ?        S      0:00 /home/kern/bacula/k/src/dird/bacula-dir -c
+                                       /home/kern/bacula/k/src/dird/dird.conf
+ 2104 ?        S      0:00  \_ /home/kern/bacula/k/src/dird/bacula-dir -c
+                                       /home/kern/bacula/k/src/dird/dird.conf
+ 2106 ?        S      0:00      \_ /home/kern/bacula/k/src/dird/bacula-dir -c
+                                       /home/kern/bacula/k/src/dird/dird.conf
+ 2105 ?        S      0:00      \_ /home/kern/bacula/k/src/dird/bacula-dir -c
+                                       /home/kern/bacula/k/src/dird/dird.conf
+\end{verbatim}
+\normalsize
+
+which in this case is 2103. Then while Bacula is running, you call the program
+giving it the path to the Bacula executable and the {\bf PID}. In this case,
+it is: 
+
+\footnotesize
+\begin{verbatim}
+./btraceback /home/kern/bacula/k/src/dird 2103
+\end{verbatim}
+\normalsize
+
+It should produce an email showing you the current state of the daemon (in
+this case the Director), and then exit leaving {\bf Bacula} running as if
+nothing happened. If this is not the case, you will need to correct the
+problem by modifying the {\bf btraceback} script. 
+
+Typical problems might be that {\bf gdb} or {\bf dbx} for Solaris is not on
+the default path.  Fix this by specifying the full path to it in the {\bf
+btraceback} file.  Another common problem is that you haven't modified the
+script so that the {\bf bsmtp} program has an appropriate smtp server or
+the proper syntax for your smtp server.  If you use the {\bf mail} program
+and it is not on the default path, it will also fail.  On some systems, it
+is preferable to use {\bf Mail} rather than {\bf mail}.
+
+\section{Getting A Traceback On Other Systems}
+\index[general]{Getting A Traceback On Other Systems}
+\index[general]{Systems!Getting A Traceback On Other}
+
+It should be possible to produce a similar traceback on systems other than
+Linux, either using {\bf gdb} or some other debugger. Solaris with {\bf dbx}
+loaded works quite fine. On other systems, you will need to modify the {\bf
+btraceback} program to invoke the correct debugger, and possibly correct the
+{\bf btraceback.gdb} script to have appropriate commands for your debugger. If
+anyone succeeds in making this work with another debugger, please send us a
+copy of what you modified. Please keep in mind that for any debugger to
+work, it will most likely need to run as root, so you may need to modify
+the {\bf btraceback} script accordingly.
+
+\label{ManuallyDebugging}
+\section{Manually Running Bacula Under The Debugger}
+\index[general]{Manually Running Bacula Under The Debugger}
+\index[general]{Debugger!Manually Running Bacula Under The}
+
+If for some reason you cannot get the automatic traceback, or if you want to
+interactively examine the variable contents after a crash, you can run Bacula
+under the debugger. Assuming you want to run the Storage daemon under the
+debugger (the technique is the same for the other daemons, only the name
+changes), you would do the following: 
+
+\begin{enumerate}
+\item Start the Director and the File daemon. If the  Storage daemon also
+   starts, you will need to find its PID  as shown above (ps fax | grep
+   bacula-sd) and kill it  with a command like the following:  
+
+\footnotesize
+\begin{verbatim}
+      kill -15 PID
+\end{verbatim}
+\normalsize
+
+where you replace {\bf PID} by the actual value. 
+
+\item At this point, the Director and the File daemon should  be running but
+   the Storage daemon should not.  
+
+\item cd to the directory containing the Storage daemon  
+
+\item Start the Storage daemon under the debugger:  
+
+   \footnotesize
+\begin{verbatim}
+    gdb ./bacula-sd
+\end{verbatim}
+\normalsize
+
+\item Run the Storage daemon:  
+
+   \footnotesize
+\begin{verbatim}
+     run -s -f -c ./bacula-sd.conf
+\end{verbatim}
+\normalsize
+
+You may replace the {\bf ./bacula-sd.conf} with the full path  to the Storage
+daemon's configuration file.  
+
+\item At this point, Bacula will be fully operational.  
+
+\item In another shell command window, start the Console program  and do what
+   is necessary to cause Bacula to die.  
+
+\item When Bacula crashes, the {\bf gdb} shell window will  become active and
+   {\bf gdb} will show you the error that  occurred.  
+
+\item To get a general traceback of all threads, issue the following  command:
+
+\footnotesize
+\begin{verbatim}
+       thread apply all bt
+\end{verbatim}
+\normalsize
+
+After that you can issue any debugging command. 
+\end{enumerate}
+
+\section{Getting Debug Output from Bacula}
+\index[general]{Getting Debug Output from Bacula }
+Each of the daemons normally has debug compiled into the program, but
+disabled. There are two ways to enable the debug output. One is to add the
+{\bf -d nnn} option on the command line when starting the debugger. The {\bf
+nnn} is the debug level, and generally anything between 50 and 200 is
+reasonable. The higher the number, the more output is produced. The output is
+written to standard output. 
+
+The second way of getting debug output is to dynamically turn it on using the
+Console using the {\bf setdebug} command. The full syntax of the command is: 
+
+\footnotesize
+\begin{verbatim}
+ setdebug level=nnn client=client-name storage=storage-name dir
+\end{verbatim}
+\normalsize
+
+If none of the options are given, the command will prompt you. You can
+selectively turn on/off debugging in any or all the daemons (i.e. it is not
+necessary to specify all the components of the above command). 
diff --git a/docs/manuals/fr/problems/base/problems.tex b/docs/manuals/fr/problems/base/problems.tex
new file mode 100644 (file)
index 0000000..ff6a874
--- /dev/null
@@ -0,0 +1,84 @@
+%%
+%%
+%%  The following characters must be preceded by a backslash
+%%    to be entered as printable characters:
+%%
+%%   # $ % & ~ _ ^ \ { }
+%%
+
+\documentclass[10pt,a4paper]{book}
+
+\topmargin -0.5in
+\oddsidemargin 0.0in
+\evensidemargin 0.0in
+\textheight 10in
+\textwidth 6.5in
+
+\usepackage{html}
+\usepackage{float}
+\usepackage{graphicx}
+\usepackage{bacula}
+\usepackage{longtable}
+\usepackage{makeidx}
+\usepackage{index}
+\usepackage{setspace}
+\usepackage{hyperref}
+\usepackage{url}
+
+
+\makeindex
+\newindex{general}{idx}{ind}{General Index}
+
+\sloppy
+
+\begin{document}
+\sloppy
+
+\newfont{\bighead}{cmr17 at 36pt}
+\parskip 10pt
+\parindent 0pt
+
+\title{\includegraphics{\idir bacula-logo.eps} \\ \bigskip
+  \Huge{Bacula Problem Resolution Guide}
+  \begin{center}
+   \large{It comes in the night and sucks 
+          the essence from your computers. }
+  \end{center}
+}
+
+
+\author{Kern Sibbald}
+\date{\vspace{1.0in}\today \\
+      This manual documents Bacula version \input{version} \\
+      \vspace{0.2in}
+      Copyright \copyright 1999-2010, Free Software Foundation Europe
+      e.V. \\
+      \vspace{0.2in}
+  Permission is granted to copy, distribute and/or modify this document under the terms of the
+  GNU Free Documentation License, Version 1.2 published by the Free Software Foundation; 
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+  A copy of the license is included in the section entitled "GNU Free Documentation License".
+}
+
+\maketitle
+
+\clearpage
+\tableofcontents
+\clearpage
+
+\include{faq}
+\include{tips}
+\include{tapetesting}
+\include{firewalls}
+\include{kaboom}
+\include{fdl}
+
+
+% The following line tells link_resolver.pl to not include these files:
+% nolinks developersi baculai-dir baculai-fd baculai-sd baculai-console baculai-main
+
+% pull in the index
+\clearpage
+\printindex[general]
+
+\end{document}
diff --git a/docs/manuals/fr/problems/base/rpm-faq.tex b/docs/manuals/fr/problems/base/rpm-faq.tex
new file mode 100644 (file)
index 0000000..127fc39
--- /dev/null
@@ -0,0 +1,395 @@
+%%
+%%
+
+\chapter{Bacula RPM Packaging FAQ}
+\label{RpmFaqChapter}
+\index[general]{FAQ!Bacula\textsuperscript{\textregistered} - RPM Packaging }
+\index[general]{Bacula\textsuperscript{\textregistered} - RPM Packaging FAQ }
+
+\begin{enumerate}
+\item 
+   \ilink{How do I build Bacula for platform xxx?}{faq1}  
+\item 
+   \ilink{How do I control which database support gets built?}{faq2} 
+
+\item 
+   \ilink{What other defines are used?}{faq3}  
+\item 
+   \ilink{I'm getting errors about not having permission when I try to build the
+   packages. Do I need to be root?}{faq4}  
+\item 
+   \ilink{I'm building my own rpms but on all platforms and compiles I get an
+   unresolved dependency for something called
+   /usr/afsws/bin/pagsh.}{faq5} 
+\item 
+   \ilink{I'm building my own rpms because you don't publish for my platform.
+    Can I get my packages released to sourceforge for other people to use?}{faq6} 
+\item 
+   \ilink{Is there an easier way than sorting out all these command line options?}{faq7}
+\item 
+   \ilink{I just upgraded from 1.36.x to 1.38.x and now my director daemon won't start. It appears to start but dies silently and I get a "connection refused" error when starting the console. What is wrong?}{faq8}  
+\item 
+   \ilink{There are a lot of rpm packages. Which packages do I need for what?}{faq9}  
+\end{enumerate}
+
+\section{Answers}
+\index[general]{Answers }
+
+\begin{enumerate}
+\item 
+   \label{faq1}
+   {\bf How do I build Bacula for platform xxx?}
+   The bacula spec file contains defines to build for several platforms:
+   Red Hat 7.x (rh7), Red Hat 8.0 (rh8), Red Hat 9 (rh9), Fedora Core (fc1,
+   fc3, fc4, fc5, fc6, fc7), Whitebox Enterprise Linux 3.0 (wb3), Red Hat Enterprise Linux 
+   (rhel3, rhel4, rhel5), Mandrake 10.x (mdk), Mandriva 2006.x (mdv) CentOS (centos3, centos4, centos5) 
+   Scientific Linux (sl3, sl4, sl5) and SuSE (su9, su10, su102, su103). The package build is controlled by a mandatory define set at the beginning of the file.  These defines basically just control the dependency information that gets coded into the finished rpm package as well 
+   as any special configure options required.  The platform define may be edited 
+   in the spec file directly (by default all defines are set to 0 or "not set").  
+   For example, to build the Red Hat 7.x package find the line in the spec file
+   which reads
+
+\footnotesize
+\begin{verbatim}
+        %define rh7 0
+        
+\end{verbatim}
+\normalsize
+
+and edit it to read  
+
+\footnotesize
+\begin{verbatim}
+        %define rh7 1
+        
+\end{verbatim}
+\normalsize
+
+Alternately you may pass the define on the command line when calling rpmbuild:
+
+\footnotesize
+\begin{verbatim}
+        rpmbuild -ba --define "build_rh7 1" bacula.spec
+        rpmbuild --rebuild --define build_rh7 1" bacula-x.x.x-x.src.rpm
+        
+\end{verbatim}
+\normalsize
+
+\item 
+   \label{faq2}
+   {\bf How do I control which database support gets built?}
+   Another mandatory build define controls which database support is compiled,
+   one of  build\_sqlite, build\_mysql or build\_postgresql. To get the MySQL
+   package and support either  set the  
+
+\footnotesize
+\begin{verbatim}
+        %define mysql 0
+        OR
+        %define mysql4 0
+        OR
+        %define mysql5 0
+        
+\end{verbatim}
+\normalsize
+
+to  
+
+\footnotesize
+\begin{verbatim}
+        %define mysql 1
+        OR
+        %define mysql4 1
+        OR
+        %define mysql5 1
+        
+\end{verbatim}
+\normalsize
+
+in the spec file directly or pass it to rpmbuild on the command line:  
+
+\footnotesize
+\begin{verbatim}
+        rpmbuild -ba --define "build_rh7 1" --define "build_mysql 1" bacula.spec
+        rpmbuild -ba --define "build_rh7 1" --define "build_mysql4 1" bacula.spec
+        rpmbuild -ba --define "build_rh7 1" --define "build_mysql5 1" bacula.spec
+        
+\end{verbatim}
+\normalsize
+
+\item 
+   \label{faq3}
+   {\bf What other defines are used?}
+   Three other building defines of note are the depkgs\_version, docs\_version and
+   \_rescuever identifiers. These  two defines are set with each release and must 
+   match the version of those sources that are being used to build the packages. 
+   You would not ordinarily need to edit these.  See also the Build Options section 
+   below for other build time options that can be passed on the command line.
+\item 
+   \label{faq4}
+   {\bf I'm getting errors about not having permission when I try  to build the
+   packages. Do I need to be root?}
+   No, you do not need to be root and, in fact, it is better practice to
+   build rpm packages as a non-root user.  Bacula packages are designed to
+   be built by a regular user but you must make a few changes on your
+   system to do this.  If you are building on your own system then the
+   simplest method is to add write permissions for all to the build
+   directory (/usr/src/redhat/, /usr/src/RPM or /usr/src/packages).  
+   To accomplish this, execute the following command as root:
+
+\footnotesize
+\begin{verbatim}
+        chmod -R 777 /usr/src/redhat
+        chmod -R 777 /usr/src/RPM
+        chmod -R 777 /usr/src/packages
+        
+\end{verbatim}
+\normalsize
+
+If you are working on a shared system where you can not use the method
+above then you need to recreate the appropriate above directory tree with all
+of its subdirectories inside your home directory.  Then create a file named
+
+{\tt .rpmmacros} 
+
+in your home directory (or edit  the file if it already exists)
+and add the following line:  
+
+\footnotesize
+\begin{verbatim}
+        %_topdir /home/myuser/redhat
+        %_tmppath /tmp
+        
+\end{verbatim}
+\normalsize
+
+Another handy directive for the .rpmmacros file if you wish to suppress the
+creation of debug rpm packages is:
+
+\footnotesize
+\begin{verbatim}
+        %debug_package %{nil}
+        
+\end{verbatim}
+
+\normalsize
+
+\item 
+   \label{faq5}
+   {\bf I'm building my own rpms but on all platforms and compiles I get an
+   unresolved dependency for something called /usr/afsws/bin/pagsh.} This
+   is a shell from the OpenAFS (Andrew File System).  If you are seeing
+   this then you chose to include the docs/examples directory in your
+   package.  One of the example scripts in this directory is a pagsh
+   script.  Rpmbuild, when scanning for dependencies, looks at the shebang
+   line of all packaged scripts in addition to checking shared libraries.
+   To avoid this do not package the examples directory. If you are seeing this 
+   problem you are building a very old bacula package as the examples have been 
+   removed from the doc packaging.
+
+\item 
+   \label{faq6}
+   {\bf I'm building my own rpms because you don't publish for my platform.
+    Can I get my packages released to sourceforge for other people to use?} Yes, 
+    contributions from users are accepted and appreciated. Please examine the 
+    directory platforms/contrib-rpm in the source code for further information.
+
+\item 
+   \label{faq7}
+   {\bf Is there an easier way than sorting out all these command line options?} Yes, 
+    there is a gui wizard shell script which you can use to rebuild the src rpm package. 
+   Look in the source archive for platforms/contrib-rpm/rpm\_wizard.sh. This script will 
+   allow you to specify build options using GNOME dialog screens. It requires zenity.
+
+\item 
+   \label{faq8}
+   {\bf I just upgraded from 1.36.x to 1.38.x and now my director daemon
+won't start.  It appears to start but dies silently and I get a "connection
+refused" error when starting the console.  What is wrong?} Beginning with
+1.38 the rpm packages are configured to run the director and storage
+daemons as a non-root user.  The file daemon runs as user root and group
+bacula, the storage daemon as user bacula and group disk, and the director
+as user bacula and group bacula.  If you are upgrading you will need to
+change some file permissions for things to work.  Execute the following
+commands as root:
+
+\footnotesize
+\begin{verbatim}
+        chown bacula.bacula /var/bacula/*
+        chown root.bacula /var/bacula/bacula-fd.9102.state
+        chown bacula.disk /var/bacula/bacula-sd.9103.state
+        
+\end{verbatim}
+\normalsize
+
+Further, if you are using File storage volumes rather than tapes those
+files will also need to have ownership set to user bacula and group bacula.
+
+\item 
+   \label{faq9}
+   {\bf There are a lot of rpm packages.  Which packages do I need for
+what?} For a bacula server you need to select the packsge based upon your
+preferred catalog database: one of bacula-mysql, bacula-postgresql or
+bacula-sqlite.  If your system does not provide an mtx package you also
+need bacula-mtx to satisfy that dependancy.  For a client machine you need
+only install bacula-client.  Optionally, for either server or client
+machines, you may install a graphical console bacula-gconsole and/or
+bacula-wxconsole. The Bacula Administration Tool is installed with the 
+bacula-bat package.  One last package, bacula-updatedb is required only when
+upgrading a server more than one database revision level.
+
+
+
+\item {\bf Support for RHEL3/4/5, CentOS 3/4/5, Scientific Linux 3/4/5 and x86\_64}
+   The examples below show
+   explicit build support for RHEL4 and CentOS 4. Build support 
+   for x86\_64 has also been added. 
+\end{enumerate}
+
+\footnotesize
+\begin{verbatim}
+Build with one of these 3 commands:
+
+rpmbuild --rebuild \
+        --define "build_rhel4 1" \
+        --define "build_sqlite 1" \
+        bacula-1.38.3-1.src.rpm
+
+rpmbuild --rebuild \
+        --define "build_rhel4 1" \
+        --define "build_postgresql 1" \
+        bacula-1.38.3-1.src.rpm
+
+rpmbuild --rebuild \
+        --define "build_rhel4 1" \
+        --define "build_mysql4 1" \
+        bacula-1.38.3-1.src.rpm
+
+For CentOS substitute '--define "build_centos4 1"' in place of rhel4. 
+For Scientific Linux substitute '--define "build_sl4 1"' in place of rhel4.
+
+For 64 bit support add '--define "build_x86_64 1"'
+\end{verbatim}
+\normalsize
+
+\section{Build Options}
+\index[general]{Build Options}
+The spec file currently supports building on the following platforms:
+\footnotesize
+\begin{verbatim}
+Red Hat builds
+--define "build_rh7 1"
+--define "build_rh8 1"
+--define "build_rh9 1"
+
+Fedora Core build
+--define "build_fc1 1"
+--define "build_fc3 1"
+--define "build_fc4 1"
+--define "build_fc5 1"
+--define "build_fc6 1"
+--define "build_fc7 1"
+
+Whitebox Enterprise build
+--define "build_wb3 1"
+
+Red Hat Enterprise builds
+--define "build_rhel3 1"
+--define "build_rhel4 1"
+--define "build_rhel5 1"
+
+CentOS build
+--define "build_centos3 1"
+--define "build_centos4 1"
+--define "build_centos5 1"
+
+Scientific Linux build
+--define "build_sl3 1"
+--define "build_sl4 1"
+--define "build_sl5 1"
+
+SuSE build
+--define "build_su9 1"
+--define "build_su10 1"
+--define "build_su102 1"
+--define "build_su103 1"
+
+Mandrake 10.x build
+--define "build_mdk 1"
+
+Mandriva build
+--define "build_mdv 1"
+
+MySQL support:
+for mysql 3.23.x support define this
+--define "build_mysql 1"
+if using mysql 4.x define this,
+currently: Mandrake 10.x, Mandriva 2006.0, SuSE 9.x & 10.0, FC4 & RHEL4
+--define "build_mysql4 1"
+if using mysql 5.x define this,
+currently: SuSE 10.1 & FC5
+--define "build_mysql5 1"
+
+PostgreSQL support:
+--define "build_postgresql 1"
+
+Sqlite support:
+--define "build_sqlite 1"
+
+Build the client rpm only in place of one of the above database full builds:
+--define "build_client_only 1"
+
+X86-64 support:
+--define "build_x86_64 1"
+
+Supress build of bgnome-console:
+--define "nobuild_gconsole 1"
+
+Build the WXWindows console:
+requires wxGTK >= 2.6
+--define "build_wxconsole 1"
+
+Build the Bacula Administration Tool:
+requires QT >= 4.2
+--define "build_bat 1"
+
+Build python scripting support:
+--define "build_python 1"
+
+Modify the Packager tag for third party packages:
+--define "contrib_packager Your Name <youremail@site.org>"
+
+\end{verbatim}
+\normalsize
+
+\section{RPM Install Problems}
+\index[general]{RPM Install Problems}
+In general the RPMs, once properly built should install correctly.
+However, when attempting to run the daemons, a number of problems
+can occur:
+\begin{itemize}
+\item [Wrong /var/bacula Permissions]
+  By default, the Director and Storage daemon do not run with
+  root permission. If the /var/bacula is owned by root, then it
+  is possible that the Director and the Storage daemon will not
+  be able to access this directory, which is used as the Working
+  Directory. To fix this, the easiest thing to do is:
+\begin{verbatim}
+  chown bacula:bacula /var/bacula
+\end{verbatim}
+  Note: as of 1.38.8 /var/bacula is installed root:bacula with
+  permissions 770.
+\item [The Storage daemon cannot Access the Tape drive]
+  This can happen in some older RPM releases where the Storage
+  daemon ran under userid bacula, group bacula.  There are two
+  ways of fixing this: the best is to modify the /etc/init.d/bacula-sd
+  file so that it starts the Storage daemon with group "disk".
+  The second way to fix the problem is to change the permissions
+  of your tape drive (usually /dev/nst0) so that Bacula can access it.
+  You will probably need to change the permissions of the SCSI control
+  device as well, which is usually /dev/sg0.  The exact names depend
+  on your configuration, please see the Tape Testing chapter for
+  more information on devices.
+\end{itemize}
diff --git a/docs/manuals/fr/problems/base/tapetesting.tex b/docs/manuals/fr/problems/base/tapetesting.tex
new file mode 100644 (file)
index 0000000..710f90e
--- /dev/null
@@ -0,0 +1,1376 @@
+%%
+%%
+
+\chapter{Testing Your Tape Drive With Bacula}
+\label{TapeTestingChapter}
+\index[general]{Testing Your Tape Drive With Bacula}
+
+This chapter is concerned with testing and configuring your tape drive to make
+sure that it will work properly with Bacula using the {\bf btape} program. 
+\label{summary}
+
+\section{Get Your Tape Drive Working}
+
+In general, you should follow the following steps to get your tape drive to
+work with Bacula. Start with a tape mounted in your drive. If you have an
+autochanger, load a tape into the drive. We use {\bf /dev/nst0} as the tape
+drive name, you will need to adapt it according to your system. 
+
+Do not proceed to the next item until you have succeeded with the previous
+one. 
+
+\begin{enumerate}
+\item Make sure that Bacula (the Storage daemon) is not running
+  or that you have {\bf unmount}ed the drive you will use 
+  for testing.
+
+\item Use tar to write to, then read from your drive:  
+
+   \footnotesize
+\begin{verbatim}
+   mt -f /dev/nst0 rewind
+   tar cvf /dev/nst0 .
+   mt -f /dev/nst0 rewind
+   tar tvf /dev/nst0
+   
+\end{verbatim}
+\normalsize
+
+\item Make sure you have a valid and correct Device resource corresponding
+   to your drive.  For Linux users, generally, the default one works.  For
+   FreeBSD users, there are two possible Device configurations (see below).
+   For other drives and/or OSes, you will need to first ensure that your
+   system tape modes are properly setup (see below), then possibly modify 
+   you Device resource depending on the output from the btape program (next
+   item). When doing this, you should consult the \ilink{Storage Daemon
+   Configuration}{StoredConfChapter} of this manual.
+
+\item If you are using a Fibre Channel to connect your tape drive to
+   Bacula, please be sure to disable any caching in the NSR (network
+   storage router, which is a Fibre Channel to SCSI converter).
+
+\item Run the btape {\bf test} command:  
+
+   \footnotesize
+\begin{verbatim}
+   ./btape -c bacula-sd.conf /dev/nst0
+   test
+   
+\end{verbatim}
+\normalsize
+
+   It isn't necessary to run the autochanger part of the test at this time,
+   but do not go past this point until the basic test succeeds.  If you do
+   have an autochanger, please be sure to read the \ilink{Autochanger
+   chapter}{AutochangersChapter} of this manual.
+
+\item Run the btape {\bf fill} command, preferably with two volumes.  This
+   can take a long time. If you have an autochanger and it  is configured, Bacula
+   will automatically use it. If you do  not have it configured, you can manually
+   issue the appropriate  {\bf mtx} command, or press the autochanger buttons to
+   change  the tape when requested to do so. 
+
+\item FreeBSD users, if you have a pre-5.0 system run the {\bf tapetest}
+   program, and make sure your system is patched if necessary. The tapetest
+   program can be found in the platform/freebsd directory. The instructions
+   for its use are at the top of the file.
+
+\item Run Bacula, and backup a reasonably small directory, say 60
+   Megabytes.  Do three successive backups of this directory.
+
+\item Stop Bacula, then restart it.  Do another full backup of the same
+   directory.  Then stop and restart Bacula.
+
+\item Do a restore of the directory backed up, by entering the  following
+   restore command, being careful to restore it to  an alternate location:  
+
+
+\footnotesize
+\begin{verbatim}
+   restore select all done
+   yes
+   
+\end{verbatim}
+\normalsize
+
+   Do a {\bf diff} on the restored directory to ensure it is identical  to the
+   original directory. If you are going to backup multiple different systems
+   (Linux, Windows, Mac, Solaris, FreeBSD, ...), be sure you test the restore
+   on each system type.
+
+\item If you have an autochanger, you should now go back to the  btape program
+   and run the autochanger test:  
+
+\footnotesize
+\begin{verbatim}
+     ./btape -c bacula-sd.conf /dev/nst0
+     auto
+     
+\end{verbatim}
+\normalsize
+
+   Adjust your autochanger as necessary to ensure that it works  correctly. See
+   the Autochanger chapter of this manual  for a complete discussion of testing
+   your autochanger.  
+
+\item We strongly recommend that you use a dedicated SCSI
+   controller for your tape drives. Scanners are known to induce
+   serious problems with the SCSI bus, causing it to reset. If the
+   SCSI bus is reset while Bacula has the tape drive open, it will
+   most likely be fatal to your tape since the drive will rewind.
+   These kinds of problems show up in the system log. For example,
+   the following was most likely caused by a scanner:
+
+\footnotesize
+\begin{verbatim}
+Feb 14 17:29:55 epohost kernel: (scsi0:A:2:0): No or incomplete CDB sent to device.
+Feb 14 17:29:55 epohost kernel: scsi0: Issued Channel A Bus Reset. 1 SCBs aborted
+\end{verbatim}
+\normalsize
+
+\end{enumerate}
+
+If you have reached this point, you stand a good chance of having everything
+work. If you get into trouble at any point, {\bf carefully} read the
+documentation given below. If you cannot get past some point, ask the {\bf
+bacula-users} email list, but specify which of the steps you have successfully
+completed. In particular, you may want to look at the 
+\ilink{ Tips for Resolving Problems}{problems1} section below. 
+
+
+\label{NoTapeInDrive}
+\subsection{Problems When no Tape in Drive}
+\index[general]{Problems When no Tape in Drive}
+When Bacula was first written the Linux 2.4 kernel permitted opening the
+drive whether or not there was a tape in the drive. Thus the Bacula code is
+based on the concept that if the drive cannot be opened, there is a serious
+problem, and the job is failed.
+
+With version 2.6 of the Linux kernel, if there is no tape in the drive, the
+OS will wait two minutes (default) and then return a failure, and consequently,
+Bacula version 1.36 and below will fail the job.  This is important to keep
+in mind, because if you use an option such as {\bf Offline on Unmount =
+yes}, there will be a point when there is no tape in the drive, and if
+another job starts or if Bacula asks the operator to mount a tape, when
+Bacula attempts to open the drive (about a 20 minute delay), it will fail
+and Bacula will fail the job.
+
+In version 1.38.x, the Bacula code partially gets around this problem -- at
+least in the initial open of the drive.  However, functions like Polling
+the drive do not work correctly if there is no tape in the drive.
+Providing you do not use {\bf Offline on Unmount = yes}, you should not
+experience job failures as mentioned above.  If you do experience such
+failures, you can also increase the {\bf Maximum Open Wait} time interval,
+which will give you more time to mount the next tape before the job is
+failed.
+
+\subsection{Specifying the Configuration File}
+\index[general]{File!Specifying the Configuration}
+\index[general]{Specifying the Configuration File}
+
+Starting with version 1.27, each of the tape utility programs including the
+{\bf btape} program requires a valid Storage daemon configuration file
+(actually, the only part of the configuration file that {\bf btape} needs is
+the {\bf Device} resource definitions). This permits {\bf btape} to find the
+configuration parameters for your archive device (generally a tape drive).
+Without those parameters, the testing and utility programs do not know how to
+properly read and write your drive. By default, they use {\bf bacula-sd.conf}
+in the current directory, but you may specify a different configuration file
+using the {\bf -c} option. 
+
+\subsection{Specifying a Device Name For a Tape}
+\index[general]{Tape!Specifying a Device Name For a}
+\index[general]{Specifying a Device Name For a Tape}
+
+{\bf btape} {\bf device-name} where the Volume can be found. In the case of a
+tape, this is the physical device name such as {\bf /dev/nst0} or {\bf
+/dev/rmt/0ubn} depending on your system that you specify on the Archive Device
+directive. For the program to work, it must find the identical name in the
+Device resource of the configuration file. If the name is not found in the
+list of physical names, the utility program will compare the name you entered
+to the Device names (rather than the Archive device names). 
+
+When specifying a tape device, it is preferable that the "non-rewind"
+variant of the device file name be given.  In addition, on systems such as
+Sun, which have multiple tape access methods, you must be sure to specify
+to use Berkeley I/O conventions with the device.  The
+{\bf b} in the Solaris (Sun) archive specification {\bf /dev/rmt/0mbn} is
+what is needed in this case.  Bacula does not support SysV tape drive
+behavior.
+
+See below for specifying Volume names. 
+
+\subsection{Specifying a Device Name For a File}
+\index[general]{File!Specifying a Device Name For a}
+\index[general]{Specifying a Device Name For a File}
+
+If you are attempting to read or write an archive file rather than a tape, the
+{\bf device-name} should be the full path to the archive location including
+the filename. The filename (last part of the specification) will be stripped
+and used as the Volume name, and the path (first part before the filename)
+must have the same entry in the configuration file. So, the path is equivalent
+to the archive device name, and the filename is equivalent to the volume name.
+
+
+\section{btape}
+\label{btape1}
+\index[general]{Btape}
+
+This program permits a number of elementary tape operations via a tty command
+interface. The {\bf test} command, described below, can be very useful for
+testing tape drive compatibility problems. Aside from initial testing of tape
+drive compatibility with {\bf Bacula}, {\bf btape} will be mostly used by
+developers writing new tape drivers. 
+
+{\bf btape} can be dangerous to use with existing {\bf Bacula} tapes because
+it will relabel a tape or write on the tape if so requested regardless of
+whether or not the tape contains valuable data, so please be careful and use
+it only on blank tapes. 
+
+To work properly, {\bf btape} needs to read the Storage daemon's configuration
+file. As a default, it will look for {\bf bacula-sd.conf} in the current
+directory. If your configuration file is elsewhere, please use the {\bf -c}
+option to specify where. 
+
+The physical device name or the Device resource name must be specified on the
+command line, and this same device name must be present in the Storage
+daemon's configuration file read by {\bf btape} 
+
+\footnotesize
+\begin{verbatim}
+Usage: btape [options] device_name
+       -b <file>   specify bootstrap file
+       -c <file>   set configuration file to file
+       -d <nn>     set debug level to nn
+       -p          proceed inspite of I/O errors
+       -s          turn off signals
+       -v          be verbose
+       -?          print this message.
+\end{verbatim}
+\normalsize
+
+\subsection{Using btape to Verify your Tape Drive}
+\index[general]{Using btape to Verify your Tape Drive}
+\index[general]{Drive!Using btape to Verify your Tape}
+
+An important reason for this program is to ensure that a Storage daemon
+configuration file is defined so that Bacula will correctly read and write
+tapes. 
+
+It is highly recommended that you run the {\bf test} command before running
+your first Bacula job to ensure that the parameters you have defined for your
+storage device (tape drive) will permit {\bf Bacula} to function properly. You
+only need to mount a blank tape, enter the command, and the output should be
+reasonably self explanatory. For example: 
+
+\footnotesize
+\begin{verbatim}
+(ensure that Bacula is not running)
+./btape -c /usr/bin/bacula/bacula-sd.conf /dev/nst0
+\end{verbatim}
+\normalsize
+
+The output will be: 
+
+\footnotesize
+\begin{verbatim}
+Tape block granularity is 1024 bytes.
+btape: btape.c:376 Using device: /dev/nst0
+*
+\end{verbatim}
+\normalsize
+
+Enter the test command: 
+
+\footnotesize
+\begin{verbatim}
+test
+\end{verbatim}
+\normalsize
+
+The output produced should be something similar to the following: I've cut the
+listing short because it is frequently updated to have new tests. 
+
+\footnotesize
+\begin{verbatim}
+=== Append files test ===
+This test is essential to Bacula.
+I'm going to write one record  in file 0,
+                   two records in file 1,
+             and three records in file 2
+btape: btape.c:387 Rewound /dev/nst0
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:410 Wrote EOF to /dev/nst0
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:410 Wrote EOF to /dev/nst0
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:410 Wrote EOF to /dev/nst0
+btape: btape.c:387 Rewound /dev/nst0
+btape: btape.c:693 Now moving to end of media.
+btape: btape.c:427 Moved to end of media
+We should be in file 3. I am at file 3. This is correct!
+Now the important part, I am going to attempt to append to the tape.
+...
+=== End Append files test ===
+\end{verbatim}
+\normalsize
+
+If you do not successfully complete the above test, please resolve the
+problem(s) before attempting to use {\bf Bacula}. Depending on your tape
+drive, the test may recommend that you add certain records to your
+configuration. We strongly recommend that you do so and then re-run the above
+test to insure it works the first time. 
+
+Some of the suggestions it provides for resolving the problems may or may not
+be useful. If at all possible avoid using fixed blocking. If the test suddenly
+starts to print a long series of: 
+
+\footnotesize
+\begin{verbatim}
+Got EOF on tape.
+Got EOF on tape.
+...
+\end{verbatim}
+\normalsize
+
+then almost certainly, you are running your drive in fixed block mode rather
+than variable block mode. See below for more help of resolving fix
+versus variable block problems.
+
+It is also possible that you have your drive
+set in SysV tape drive mode. The drive must use BSD tape conventions.
+See the section above on setting your {\bf Archive device} correctly.
+
+For FreeBSD users, please see the notes below for doing further testing of
+your tape drive. 
+
+\subsection{Testing tape drive speed}
+\label{sec:btapespeed}
+
+To determine the best configuration of your tape drive, you can run the
+\texttt{speed} command available in the \texttt{btape} program.
+
+This command can have the following arguments:
+\begin{itemize}
+\item[\texttt{file\_size=n}] Specify the Maximum File Size for this test
+  (between 1 and 5GB). This counter is in GB.
+\item[\texttt{nb\_file=n}] Specify the number of file to be written. The amount
+  of data should be greater than your memory ($file\_size*nb\_file$).
+\item[\texttt{skip\_zero}] This flag permits to skip tests with constant
+  data.
+\item[\texttt{skip\_random}] This flag permits to skip tests with random
+  data.
+\item[\texttt{skip\_raw}] This flag permits to skip tests with raw access.
+\item[\texttt{skip\_block}] This flag permits to skip tests with Bacula block
+  access.
+\end{itemize}
+
+\begin{verbatim}
+*speed file_size=3 skip_raw
+btape.c:1078 Test with zero data and bacula block structure.
+btape.c:956 Begin writing 3 files of 3.221 GB with blocks of 129024 bytes.
+++++++++++++++++++++++++++++++++++++++++++
+btape.c:604 Wrote 1 EOF to "Drive-0" (/dev/nst0)
+btape.c:406 Volume bytes=3.221 GB. Write rate = 44.128 MB/s
+...
+btape.c:383 Total Volume bytes=9.664 GB. Total Write rate = 43.531 MB/s
+
+btape.c:1090 Test with random data, should give the minimum throughput.
+btape.c:956 Begin writing 3 files of 3.221 GB with blocks of 129024 bytes.
++++++++++++++++++++++++++++++++++++++++++++
+btape.c:604 Wrote 1 EOF to "Drive-0" (/dev/nst0)
+btape.c:406 Volume bytes=3.221 GB. Write rate = 7.271 MB/s
++++++++++++++++++++++++++++++++++++++++++++
+...
+btape.c:383 Total Volume bytes=9.664 GB. Total Write rate = 7.365 MB/s
+
+\end{verbatim}
+
+When using compression, the random test will give your the minimum throughput
+of your drive . The test using constant string will give you the maximum speed
+of your hardware chain. (cpu, memory, scsi card, cable, drive, tape).
+
+You can change the block size in the Storage Daemon configuration file.
+
+\label{SCSITricks}
+\subsection{Linux SCSI Tricks}
+\index[general]{Tricks!Linux SCSI}
+\index[general]{Linux SCSI Tricks}
+
+You can find out what SCSI devices you have by doing: 
+
+\footnotesize
+\begin{verbatim}
+lsscsi
+\end{verbatim}
+\normalsize
+
+Typical output is:
+
+\footnotesize
+\begin{verbatim}
+[0:0:0:0]    disk    ATA      ST3160812AS      3.AD  /dev/sda
+[2:0:4:0]    tape    HP       Ultrium 2-SCSI   F6CH  /dev/st0
+[2:0:5:0]    tape    HP       Ultrium 2-SCSI   F6CH  /dev/st1
+[2:0:6:0]    mediumx OVERLAND LXB              0107  -
+[2:0:9:0]    tape    HP       Ultrium 1-SCSI   E50H  /dev/st2
+[2:0:10:0]   mediumx OVERLAND LXB              0107  -
+\end{verbatim}
+\normalsize
+
+There are two drives in one autochanger: /dev/st0 and /dev/st1
+and a third tape drive at /dev/st2.  For using them with Bacula, one
+would normally reference them as /dev/nst0 ... /dev/nst2.  Not also,
+there are two different autochangers identified as "mediumx OVERLAND LXB".
+They can be addressed via their /dev/sgN designation, which can be
+obtained by counting from the beginning as 0 to each changer.  In the
+above case, the two changers are located on /dev/sg3 and /dev/sg5. The one
+at /dev/sg3, controls drives /dev/nst0 and /dev/nst1; and the one at
+/dev/sg5 controles drive /dev/nst2.
+
+If you do not have the {\bf lsscsi}  command, you can obtain the same
+information as follows:
+
+\footnotesize
+\begin{verbatim}
+cat /proc/scsi/scsi
+\end{verbatim}
+\normalsize
+
+For the above example with the three drives and two autochangers,
+I get:
+
+\footnotesize       
+\begin{verbatim}
+Attached devices:
+Host: scsi0 Channel: 00 Id: 00 Lun: 00
+  Vendor: ATA      Model: ST3160812AS      Rev: 3.AD
+  Type:   Direct-Access                    ANSI SCSI revision: 05
+Host: scsi2 Channel: 00 Id: 04 Lun: 00
+  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 05 Lun: 00
+  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 06 Lun: 00
+  Vendor: OVERLAND Model: LXB              Rev: 0107
+  Type:   Medium Changer                   ANSI SCSI revision: 02
+Host: scsi2 Channel: 00 Id: 09 Lun: 00
+  Vendor: HP       Model: Ultrium 1-SCSI   Rev: E50H
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 10 Lun: 00
+  Vendor: OVERLAND Model: LXB              Rev: 0107
+  Type:   Medium Changer                   ANSI SCSI revision: 02
+\end{verbatim}
+\normalsize
+
+
+As an additional example, I get the following (on a different machine from the
+above example):
+
+\footnotesize
+\begin{verbatim}
+Attached devices:
+Host: scsi2 Channel: 00 Id: 01 Lun: 00
+  Vendor: HP       Model: C5713A           Rev: H107
+  Type:   Sequential-Access                ANSI SCSI revision: 02
+Host: scsi2 Channel: 00 Id: 04 Lun: 00
+  Vendor: SONY     Model: SDT-10000        Rev: 0110
+  Type:   Sequential-Access                ANSI SCSI revision: 02
+\end{verbatim}
+\normalsize
+
+The above represents first an autochanger and second a simple
+tape drive. The HP changer (the first entry) uses the same SCSI channel
+for data and for control, so in Bacula, you would use: 
+\footnotesize
+\begin{verbatim}
+Archive Device = /dev/nst0
+Changer Device = /dev/sg0
+\end{verbatim}
+\normalsize
+
+If you want to remove the SDT-10000 device, you can do so as root with: 
+
+\footnotesize
+\begin{verbatim}
+echo "scsi remove-single-device 2 0 4 0">/proc/scsi/scsi
+\end{verbatim}
+\normalsize
+
+and you can put add it back with: 
+
+\footnotesize
+\begin{verbatim}
+echo "scsi add-single-device 2 0 4 0">/proc/scsi/scsi
+\end{verbatim}
+\normalsize
+
+where the 2 0 4 0 are the Host, Channel, Id, and Lun as seen on the output
+from {\bf cat /proc/scsi/scsi}. Note, the Channel must be specified as
+numeric. 
+
+Below is a slightly more complicated output, which is a single autochanger
+with two drives, and which operates the changer on a different channel
+from from the drives:
+
+\footnotesize
+\begin{verbatim}
+Attached devices:
+Host: scsi0 Channel: 00 Id: 00 Lun: 00
+  Vendor: ATA      Model: WDC WD1600JD-75H Rev: 08.0
+  Type:   Direct-Access                    ANSI SCSI revision: 05
+Host: scsi2 Channel: 00 Id: 04 Lun: 00
+  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 05 Lun: 00
+  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 06 Lun: 00
+  Vendor: OVERLAND Model: LXB              Rev: 0106
+  Type:   Medium Changer                   ANSI SCSI revision: 02
+\end{verbatim}
+\normalsize
+
+The above tape drives are accessed on /dev/nst0 and /dev/nst1, while
+the control channel for those two drives is /dev/sg3.
+
+
+
+\label{problems1}
+\section{Tips for Resolving Problems}
+\index[general]{Problems!Tips for Resolving}
+\index[general]{Tips for Resolving Problems}
+
+\label{CannotRestore}
+\subsection{Bacula Saves But Cannot Restore Files}
+\index[general]{Files!Bacula Saves But Cannot Restore}
+\index[general]{Bacula Saves But Cannot Restore Files}
+
+If you are getting error messages such as: 
+
+\footnotesize
+\begin{verbatim}
+Volume data error at 0:1! Wanted block-id: "BB02", got "". Buffer discarded
+\end{verbatim}
+\normalsize
+
+It is very likely that Bacula has tried to do block positioning and ended up
+at an invalid block. This can happen if your tape drive is in fixed block mode
+while Bacula's default is variable blocks. Note that in such cases, Bacula is
+perfectly able to write to your Volumes (tapes), but cannot position to read
+them. 
+
+There are two possible solutions. 
+
+\begin{enumerate}
+\item The first and  best is to always ensure that your drive is in  variable
+   block mode. Note, it can switch back to  fixed block mode on a reboot or if
+   another program  uses the drive. So on such systems you  need to modify the
+   Bacula startup files  to explicitly set: 
+
+\footnotesize
+\begin{verbatim}
+mt -f /dev/nst0 defblksize 0
+\end{verbatim}
+\normalsize
+
+or whatever is appropriate on your system. Note, if you are running a Linux
+system, and the above command does not work, it is most likely because you
+have not loaded the appropriate {\bf mt} package, which is often called
+{\bf mt\_st}, but may differ according to your distribution.
+
+\item The second possibility, especially, if Bacula wrote  while the drive was
+   in fixed block mode, is to turn  off block positioning in Bacula. This is done
+   by  adding: 
+
+\footnotesize
+\begin{verbatim}
+Block Positioning = no
+\end{verbatim}
+\normalsize
+
+to the Device resource. This is not the recommended  procedure because it can
+enormously slow down  recovery of files, but it may help where all else 
+fails. This directive is available in version 1.35.5  or later (and not yet
+tested).  
+\end{enumerate}
+
+If you are getting error messages such as:
+\footnotesize
+\begin{verbatim}
+Volume data error at 0:0!
+Block checksum mismatch in block=0 len=32625 calc=345678 blk=123456
+\end{verbatim}
+\normalsize
+
+You are getting tape read errors, and this is most likely due to 
+one of the following things:
+\begin{enumerate}
+\item An old or bad tape.
+\item A dirty drive that needs cleaning (particularly for DDS drives).
+\item A loose SCSI cable.
+\item Old firmware in your drive. Make sure you have the latest firmware
+      loaded.
+\item Computer memory errors.
+\item Over-clocking your CPU.
+\item A bad SCSI card.
+\end{enumerate}
+
+
+\label{opendevice}
+\subsection{Bacula Cannot Open the Device}
+\index[general]{Device!Bacula Cannot Open the}
+\index[general]{Bacula Cannot Open the Device}
+
+If you get an error message such as: 
+
+\footnotesize
+\begin{verbatim}
+dev open failed: dev.c:265 stored: unable to open
+device /dev/nst0:> ERR=No such device or address
+\end{verbatim}
+\normalsize
+
+the first time you run a job, it is most likely due to the fact that you
+specified the incorrect device name on your {\bf Archive Device}. 
+
+If Bacula works fine with your drive, then all off a sudden you get error
+messages similar to the one shown above, it is quite possible that your driver
+module is being removed because the kernel deems it idle. This is done via
+{\bf crontab} with the use of {\bf rmmod -a}. To fix the problem, you can
+remove this entry from {\bf crontab}, or you can manually {\bf modprob} your
+driver module (or add it to the local startup script). Thanks to Alan Brown
+for this tip. 
+\label{IncorrectFiles}
+
+\subsection{Incorrect File Number}
+\index[general]{Number!Incorrect File}
+\index[general]{Incorrect File Number}
+
+When Bacula moves to the end of the medium, it normally uses the {\bf
+ioctl(MTEOM)} function. Then Bacula uses the {\bf ioctl(MTIOCGET)} function to
+retrieve the current file position from the {\bf mt\_fileno} field. Some SCSI
+tape drivers will use a fast means of seeking to the end of the medium and in
+doing so, they will not know the current file position and hence return a {\bf
+-1}. As a consequence, if you get {\bf "This is NOT correct!"} in the
+positioning tests, this may be the cause. You must correct this condition in
+order for Bacula to work. 
+
+There are two possible solutions to the above problem of incorrect file
+number: 
+
+\begin{itemize}
+\item Figure out how to configure your SCSI driver to  keep track of the file
+   position during the MTEOM  request. This is the preferred solution.  
+\item Modify the {\bf Device} resource of your {\bf bacula-sd.conf} file  to
+   include:  
+
+\footnotesize
+\begin{verbatim}
+Hardware End of File = no
+\end{verbatim}
+\normalsize
+
+This will cause Bacula to use the MTFSF request to  seek to the end of the
+medium, and Bacula will keep  track of the file number itself. 
+\end{itemize}
+
+\label{IncorrectBlocks}
+\subsection{Incorrect Number of Blocks or Positioning Errors}
+\index[general]{Testing!Incorrect Number of Blocks or Positioning Errors}
+\index[general]{Incorrect Number of Blocks or Positioning Errors}
+
+{\bf Bacula's} preferred method of working with tape drives (sequential
+devices) is to run in variable block mode, and this is what is set by default.
+You should first ensure that your tape drive is set for variable block mode
+(see below). 
+
+If your tape drive is in fixed block mode and you have told Bacula to use
+different fixed block sizes or variable block sizes (default), you will get
+errors when Bacula attempts to forward space to the correct block (the kernel
+driver's idea of tape blocks will not correspond to Bacula's). 
+
+All modern tape drives support variable tape blocks, but some older drives (in
+particular the QIC drives) as well as the ATAPI ide-scsi driver run only in
+fixed block mode. The Travan tape drives also apparently must run in fixed
+block mode (to be confirmed). 
+
+Even in variable block mode, with the exception of the first record on the
+second or subsequent volume of a multi-volume backup, Bacula will write blocks
+of a fixed size. However, in reading a tape, Bacula will assume that for each
+read request, exactly one block from the tape will be transferred. This the
+most common way that tape drives work and is well supported by {\bf Bacula}. 
+
+Drives that run in fixed block mode can cause serious problems for Bacula if
+the drive's block size does not correspond exactly to {\bf Bacula's} block
+size. In fixed block size mode, drivers may transmit a partial block or
+multiple blocks for a single read request. From {\bf Bacula's} point of view,
+this destroys the concept of tape blocks. It is much better to run in variable
+block mode, and almost all modern drives (the OnStream is an exception) run in
+variable block mode. In order for Bacula to run in fixed block mode, you must
+include the following records in the Storage daemon's Device resource
+definition: 
+
+\footnotesize
+\begin{verbatim}
+Minimum Block Size = nnn
+Maximum Block Size = nnn
+\end{verbatim}
+\normalsize
+
+where {\bf nnn} must be the same for both records and must be identical to the
+driver's fixed block size. 
+
+We recommend that you avoid this configuration if at all possible by using
+variable block sizes. 
+
+If you must run with fixed size blocks, make sure they are not 512 bytes. This
+is too small and the overhead that Bacula has with each record will become
+excessive. If at all possible set any fixed block size to something like
+64,512 bytes or possibly 32,768 if 64,512 is too large for your drive. See
+below for the details on checking and setting the default drive block size. 
+
+To recover files from tapes written in fixed block mode, see below. 
+
+\label{TapeModes}
+\subsection{Ensuring that the Tape Modes Are Properly Set -- {\bf Linux
+Only}}
+\index[general]{Ensuring that the Tape Modes Are Properly Set -- Linux Only}
+
+If you have a modern SCSI tape drive and you are having problems with the {\bf
+test} command as noted above, it may be that some program has set one or more
+of your SCSI driver's options to non-default values. For example, if your
+driver is set to work in SysV manner, Bacula will not work correctly because
+it expects BSD behavior. To reset your tape drive to the default values, you
+can try the following, but {\bf ONLY} if you have a SCSI tape drive on a {\bf
+Linux} system: 
+
+\footnotesize
+\begin{verbatim}
+become super user
+mt -f /dev/nst0 rewind
+mt -f /dev/nst0 stoptions buffer-writes async-writes read-ahead
+\end{verbatim}
+\normalsize
+
+The above commands will clear all options and then set those specified. None
+of the specified options are required by Bacula, but a number of other options
+such as SysV behavior must not be set. Bacula does not support SysV tape
+behavior. On systems other than Linux, you will need to consult your {\bf mt}
+man pages or documentation to figure out how to do the same thing. This should
+not really be necessary though -- for example, on both Linux and Solaris
+systems, the default tape driver options are compatible with Bacula. 
+On Solaris systems, you must take care to specify the correct device
+name on the {\bf Archive device} directive. See above for more details.
+
+You may also want to ensure that no prior program has set the default block
+size, as happened to one user, by explicitly turning it off with: 
+
+\footnotesize
+\begin{verbatim}
+mt -f /dev/nst0 defblksize 0
+\end{verbatim}
+\normalsize
+
+If you are running a Linux
+system, and the above command does not work, it is most likely because you
+have not loaded the appropriate {\bf mt} package, which is often called
+{\bf mt\_st}, but may differ according to your distribution.
+
+If you would like to know what options you have set before making any of the
+changes noted above, you can now view them on Linux systems, thanks to a tip
+provided by Willem Riede. Do the following: 
+
+\footnotesize
+\begin{verbatim}
+become super user
+mt -f /dev/nst0 stsetoptions 0
+grep st0 /var/log/messages
+\end{verbatim}
+\normalsize
+
+and you will get output that looks something like the following: 
+
+\footnotesize
+\begin{verbatim}
+kernel: st0: Mode 0 options: buffer writes: 1, async writes: 1, read ahead: 1
+kernel: st0:    can bsr: 0, two FMs: 0, fast mteom: 0, auto lock: 0,
+kernel: st0:    defs for wr: 0, no block limits: 0, partitions: 0, s2 log: 0
+kernel: st0:    sysv: 0 nowait: 0
+\end{verbatim}
+\normalsize
+
+Note, I have chopped off the beginning of the line with the date and machine
+name for presentation purposes. 
+
+Some people find that the above settings only last until the next reboot, so
+please check this otherwise you may have unexpected problems. 
+
+Beginning with Bacula version 1.35.8, if Bacula detects that you are running
+in variable block mode, it will attempt to set your drive appropriately. All
+OSes permit setting variable block mode, but some OSes do not permit setting
+the other modes that Bacula needs to function properly. 
+
+\label{compression}
+\subsection{Tape Hardware Compression and Blocking Size}
+\index[general]{Tape Hardware Compression and Blocking Size}
+\index[general]{Size!Tape Hardware Compression and Blocking Size}
+
+You should be able to verify the tape compression status with sysfs on Linux.
+\begin{verbatim}
+cat /sys/class/scsi_tape/nst0/default_compression
+\end{verbatim}
+
+You can, turn it on by using (on Linux): 
+
+\footnotesize
+\begin{verbatim}
+become super user
+mt -f /dev/nst0 defcompression 1
+\end{verbatim}
+\normalsize
+
+and of course, if you use a zero instead of the one at the end, you will turn
+it off. 
+
+If you have built the {\bf mtx} program in the {\bf depkgs} package, you can
+use tapeinfo to get quite a bit of information about your tape drive even if
+it is not an autochanger. This program is called using the SCSI control
+device. On Linux for tape drive /dev/nst0, this is usually /dev/sg0, while on
+FreeBSD for /dev/nsa0, the control device is often /dev/pass2. For example on
+my DDS-4 drive (/dev/nst0), I get the following: 
+
+\footnotesize
+\begin{verbatim}
+tapeinfo -f /dev/sg0
+Product Type: Tape Drive
+Vendor ID: 'HP      '
+Product ID: 'C5713A          '
+Revision: 'H107'
+Attached Changer: No
+MinBlock:1
+MaxBlock:16777215
+SCSI ID: 5
+SCSI LUN: 0
+Ready: yes
+BufferedMode: yes
+Medium Type: Not Loaded
+Density Code: 0x26
+BlockSize: 0             
+\end{verbatim}
+\normalsize
+
+where the {\bf DataCompEnabled: yes} means that tape hardware compression is
+turned on. You can turn it on and off (yes|no) by using the {\bf mt}
+commands given above. Also, this output will tell you if the {\bf BlockSize}
+is non-zero and hence set for a particular block size. Bacula is not likely to
+work in such a situation because it will normally attempt to write blocks of
+64,512 bytes, except the last block of the job which will generally be
+shorter. The first thing to try is setting the default block size to zero
+using the {\bf mt -f /dev/nst0 defblksize 0} command as shown above.
+On FreeBSD, this would be something like: {\bf mt -f /dev/nsa0 blocksize 0}. 
+
+On some operating systems with some tape drives, the amount of data that
+can be written to the tape and whether or not compression is enabled is
+determined by the density usually the {\bf mt -f /dev/nst0 setdensity xxx} command.
+Often  {\bf mt -f /dev/nst0 status} will print out the current
+density code that is used with the drive.  Most systems, but unfortunately
+not all, set the density to the maximum by default. On some systems, you
+can also get a list of all available density codes with:
+{\bf mt -f /dev/nst0 densities} or a similar {\bf mt} command.
+Note, for DLT and SDLT devices, no-compression versus compression is very 
+often controlled by the density code.  On FreeBSD systems, the compression
+mode is set using {\bf mt -f /dev/nsa0 comp xxx} where xxx is the
+mode you want.  In general, see {\bf man mt}  for the options available on
+your system.
+
+Note, some of the above {\bf mt} commands may not be persistent depending
+on your system configuration. That is they may be reset if a program  
+other than Bacula uses the drive or, as is frequently the case, on reboot
+of your system.
+                   
+If your tape drive requires fixed block sizes (very unusual), you can use the
+following records: 
+
+\footnotesize
+\begin{verbatim}
+Minimum Block Size = nnn
+Maximum Block Size = nnn
+\end{verbatim}
+\normalsize
+
+in your Storage daemon's Device resource to force Bacula to write fixed size
+blocks (where you sent nnn to be the same for both of the above records). This
+should be done only if your drive does not support variable block sizes, or
+you have some other strong reasons for using fixed block sizes. As mentioned
+above, a small fixed block size of 512 or 1024 bytes will be very inefficient.
+Try to set any fixed block size to something like 64,512 bytes or larger if
+your drive will support it. 
+
+Also, note that the {\bf Medium Type} field of the output of {\bf tapeinfo}
+reports {\bf Not Loaded}, which is not correct. As a consequence, you should
+ignore that field as well as the {\bf Attached Changer} field. 
+
+To recover files from tapes written in fixed block mode, see below. 
+\label{FreeBSDTapes}
+
+\subsection{Tape Modes on FreeBSD}
+\index[general]{FreeBSD!Tape Modes on}
+\index[general]{Tape Modes on FreeBSD}
+
+On most FreeBSD systems such as 4.9 and most tape drives, Bacula should run
+with: 
+
+\footnotesize
+\begin{verbatim}
+mt  -f  /dev/nsa0  seteotmodel  2
+mt  -f  /dev/nsa0  blocksize   0
+mt  -f  /dev/nsa0  comp  enable
+\end{verbatim}
+\normalsize
+
+You might want to put those commands in a startup script to make sure your
+tape driver is properly initialized before running Bacula, because
+depending on your system configuration, these modes may be reset if a      
+program other than Bacula uses the drive or when your system is rebooted.
+
+Then according to what the {\bf btape test} command returns, you will probably
+need to set the following (see below for an alternative): 
+
+\footnotesize
+\begin{verbatim}
+  Hardware End of Medium = no
+  BSF at EOM = yes
+  Backward Space Record = no
+  Backward Space File = no
+  Fast Forward Space File = no
+  TWO EOF = yes
+\end{verbatim}
+\normalsize
+
+Then be sure to run some append tests with Bacula where you start and stop
+Bacula between appending to the tape, or use {\bf btape} version 1.35.1 or
+greater, which includes simulation of stopping/restarting Bacula. 
+
+Please see the file {\bf platforms/freebsd/pthreads-fix.txt} in the main
+Bacula directory concerning {\bf important} information concerning
+compatibility of Bacula and your system. A much more optimal Device
+configuration is shown below, but does not work with all tape drives. Please
+test carefully before putting either into production. 
+
+Note, for FreeBSD 4.10-RELEASE, using a Sony TSL11000 L100 DDS4 with an
+autochanger set to variable block size and DCLZ compression, Brian McDonald
+reports that to get Bacula to append correctly between Bacula executions,
+the correct values to use are:
+
+\footnotesize
+\begin{verbatim}
+mt  -f  /dev/nsa0  seteotmodel  1
+mt  -f  /dev/nsa0  blocksize  0
+mt  -f /dev/nsa0  comp  enable
+\end{verbatim}
+\normalsize
+
+and 
+
+\footnotesize
+\begin{verbatim}
+  Hardware End of Medium = no
+  BSF at EOM = no
+  Backward Space Record = no
+  Backward Space File = no
+  Fast Forward Space File = yes
+  TWO EOF = no
+\end{verbatim}
+\normalsize
+
+This has been confirmed by several other people using different hardware. This
+configuration is the preferred one because it uses one EOF and no backspacing
+at the end of the tape, which works much more efficiently and reliably with
+modern tape drives. 
+
+Finally, here is a Device configuration that Danny Butroyd reports to work
+correctly with the Overland Powerloader tape library using LT0-2 and
+FreeBSD 5.4-Stable:
+
+\footnotesize
+\begin{verbatim}
+# Overland Powerloader LT02 - 17 slots single drive
+Device {
+  Name = Powerloader
+  Media Type = LT0-2
+  Archive Device = /dev/nsa0
+  AutomaticMount = yes;              
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+  RandomAccess = no;
+  Changer Command = "/usr/local/sbin/mtx-changer %c %o %S %a %d"
+  Changer Device = /dev/pass2
+  AutoChanger = yes
+  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
+
+  # FreeBSD Specific Settings
+  Offline On Unmount = no
+  Hardware End of Medium = no
+  BSF at EOM = yes
+  Backward Space Record = no
+  Fast Forward Space File = no
+  TWO EOF = yes
+}
+
+The following Device resource works fine with Dell PowerVault 110T and
+120T devices on both FreeBSD 5.3 and on NetBSD 3.0.  It also works
+with Sony AIT-2 drives on FreeBSD.
+\footnotesize
+\begin{verbatim}
+Device {
+  ...
+  # FreeBSD/NetBSD Specific Settings
+  Hardware End of Medium = no
+  BSF at EOM = yes
+  Backward Space Record = no
+  Fast Forward Space File = yes
+  TWO EOF = yes
+}
+\end{verbatim}
+\normalsize
+
+On FreeBSD version 6.0, it is reported that you can even set
+Backward Space Record = yes.
+
+
+
+\subsection{Finding your Tape Drives and Autochangers on FreeBSD}
+\index[general]{FreeBSD!Finding Tape Drives and Autochangers}
+\index[general]{Finding Tape Drives and Autochangers on FreeBSD}
+
+On FreeBSD, you can do a {\bf camcontrol devlist} as root to determine what
+drives and autochangers you have. For example, 
+
+\footnotesize
+\begin{verbatim}
+undef# camcontrol devlist
+    at scbus0 target 2 lun 0 (pass0,sa0)
+    at scbus0 target 4 lun 0 (pass1,sa1)
+    at scbus0 target 4 lun 1 (pass2)
+\end{verbatim}
+\normalsize
+
+from the above, you can determine that there is a tape drive on {\bf /dev/sa0}
+and another on {\bf /dev/sa1} in addition since there is a second line for the
+drive on {\bf /dev/sa1}, you know can assume that it is the control device for
+the autochanger (i.e. {\bf /dev/pass2}). It is also the control device name to
+use when invoking the tapeinfo program. E.g. 
+
+\footnotesize
+\begin{verbatim}
+tapeinfo -f /dev/pass2
+\end{verbatim}
+\normalsize
+
+\label{onstream}
+
+\subsection{Using the OnStream driver on Linux Systems}
+\index[general]{Using the OnStream driver on Linux Systems}
+\index[general]{Systems!Using the OnStream driver on Linux}
+
+Bacula version 1.33 (not 1.32x) is now working and ready for testing with the
+OnStream kernel osst driver version 0.9.14 or above. Osst is available from: 
+\elink{http://sourceforge.net/projects/osst/}
+{http://sourceforge.net/projects/osst/}. 
+
+To make Bacula work you must first load the new driver then, as root, do: 
+
+\footnotesize
+\begin{verbatim}
+  mt -f /dev/nosst0 defblksize 32768
+\end{verbatim}
+\normalsize
+
+Also you must add the following to your Device resource in your Storage
+daemon's conf file: 
+
+\footnotesize
+\begin{verbatim}
+ Minimum Block Size = 32768
+ Maximum Block Size = 32768
+\end{verbatim}
+\normalsize
+
+Here is a Device specification provided by Michel Meyers that is known to
+work: 
+
+\footnotesize
+\begin{verbatim}
+Device {
+  Name = "Onstream DI-30"
+  Media Type = "ADR-30"
+  Archive Device = /dev/nosst0
+  Minimum Block Size = 32768
+  Maximum Block Size = 32768
+  Hardware End of Medium = yes
+  BSF at EOM = no
+  Backward Space File = yes
+  Fast Forward Space File = yes
+  Two EOF = no
+  AutomaticMount = yes
+  AlwaysOpen = yes
+  Removable Media = yes
+}
+\end{verbatim}
+\normalsize
+
+\section{Hardware Compression on EXB-8900}
+\index[general]{Hardware Compression on EXB-8900}
+\index[general]{EXB-8900!Hardware Compression}
+
+To active, check, or disable the hardware compression feature
+on an EXB-8900, use the exabyte MammothTool. You can get it here:
+\elink{http://www.exabyte.com/support/online/downloads/index.cfm}
+{http://www.exabyte.com/support/online/downloads/index.cfm}.
+There is a Solaris version of this tool. With option -C 0 or 1 you
+can disable or activate compression. Start this tool without any
+options for a small reference.
+
+\label{fill}
+\subsection{Using btape to Simulate Filling a Tape}
+\index[general]{Using btape to Simulate Filling a Tape}
+\index[general]{Tape!Using btape to Simulate Filling}
+
+Because there are often problems with certain tape drives or systems when end
+of tape conditions occur, {\bf btape} has a special command {\bf fill} that
+causes it to write random data to a tape until the tape fills. It then writes
+at least one more Bacula block to a second tape. Finally, it reads back both
+tapes to ensure that the data has been written in a way that Bacula can
+recover it. Note, there is also a single tape option as noted below, which you
+should use rather than the two tape test. See below for more details. 
+
+This can be an extremely time consuming process (here it is about 6 hours) to
+fill a full tape. Note, that btape writes random data to the tape when it is
+filling it. This has two consequences: 1. it takes a bit longer to generate
+the data, especially on slow CPUs. 2. the total amount of data is
+approximately the real physical capacity of your tape, regardless of whether
+or not the tape drive compression is on or off. This is because random data
+does not compress very much. 
+
+To begin this test, you enter the {\bf fill} command and follow the
+instructions. There are two options: the simple single tape option and the
+multiple tape option. Please use only the simple single tape option because
+the multiple tape option still doesn't work totally correctly. If the single
+tape option does not succeed, you should correct the problem before using
+Bacula. 
+\label{RecoveringFiles}
+
+\section{Recovering Files Written With Fixed Block Sizes}
+\index[general]{Recovering Files Written With Fixed Block Sizes}
+
+If you have been previously running your tape drive in fixed block mode
+(default 512) and Bacula with variable blocks (default), then in version
+1.32f-x and 1.34 and above, Bacula will fail to recover files because it does
+block spacing, and because the block sizes don't agree between your tape drive
+and Bacula it will not work. 
+
+The long term solution is to run your drive in variable block mode as
+described above. However, if you have written tapes using fixed block sizes,
+this can be a bit of a pain. The solution to the problem is: while you are
+doing a restore command using a tape written in fixed block size, ensure that
+your drive is set to the fixed block size used while the tape was written.
+Then when doing the {\bf restore} command in the Console program, do not
+answer the prompt {\bf yes/mod/no}. Instead, edit the bootstrap file (the
+location is listed in the prompt) using any ASCII editor. Remove all {\bf
+VolBlock} lines in the file. When the file is re-written, answer the question,
+and Bacula will run without using block positioning, and it should recover
+your files. 
+
+\label{BlockModes}
+\section{Tape Blocking Modes}
+\index[general]{Modes!Tape Blocking}
+\index[general]{Tape Blocking Modes}
+
+SCSI tapes may either be written in {\bf variable} or {\bf fixed} block sizes.
+Newer drives support both modes, but some drives such as the QIC devices
+always use fixed block sizes. Bacula attempts to fill and write complete
+blocks (default 65K), so that in normal mode (variable block size), Bacula
+will always write blocks of the same size except the last block of a Job. If
+Bacula is configured to write fixed block sizes, it will pad the last block of
+the Job to the correct size. Bacula expects variable tape block size drives to
+behave as follows: Each write to the drive results in a single record being
+written to the tape. Each read returns a single record. If you request less
+bytes than are in the record, only those number of bytes will be returned, but
+the entire logical record will have been read (the next read will retrieve the
+next record). Thus data from a single write is always returned in a single
+read, and sequentially written records are returned by sequential reads. 
+
+Bacula expects fixed block size tape drives to behave as follows: If a write
+length is greater than the physical block size of the drive, the write will be
+written as two blocks each of the fixed physical size. This single write may
+become multiple physical records on the tape. (This is not a good situation).
+According to the documentation, one may never write an amount of data that is
+not the exact multiple of the blocksize (it is not specified if an error
+occurs or if the the last record is padded). When reading, it is my
+understanding that each read request reads one physical record from the tape.
+Due to the complications of fixed block size tape drives, you should avoid
+them if possible with Bacula, or you must be ABSOLUTELY certain that you use
+fixed block sizes within Bacula that correspond to the physical block size of
+the tape drive. This will ensure that Bacula has a one to one correspondence
+between what it writes and the physical record on the tape. 
+
+Please note that Bacula will not function correctly if it writes a block and
+that block is split into two or more physical records on the tape. Bacula
+assumes that each write causes a single record to be written, and that it can
+sequentially recover each of the blocks it has written by using the same
+number of sequential reads as it had written. 
+
+\section{Details of Tape Modes}
+\index[general]{Modes!Details}
+\index[general]{Details of Tape Modes}
+Rudolf Cejka has provided the following information concerning
+certain tape modes and MTEOM.
+
+\begin{description}
+\item[Tape level]
+  It is always possible to position filemarks or blocks, whereas
+  positioning to the end-of-data is only optional feature, however it is
+  implemented very often.  SCSI specification also talks about optional
+  sequential filemarks, setmarks and sequential setmarks, but these are not
+  implemented so often.  Modern tape drives keep track of file positions in
+  built-in chip (AIT, LTO) or at the beginning of the tape (SDLT), so there
+  is not any speed difference, if end-of-data or filemarks is used (I have
+  heard, that LTO-1 from all 3 manufacturers do not use its chip for file
+  locations, but a tape as in SDLT case, and I'm not sure about LTO-2 and
+  LTO-3 case).  However there is a big difference, that end-of-data ignores
+  file position, whereas filemarks returns the real number of skipped
+  files, so OS can track current file number just in filemarks case.
+
+\item[OS level]
+  Solaris does use just SCSI SPACE Filemarks, it does not support SCSI
+  SPACE End-of-data.  When MTEOM is called, Solaris does use SCSI SPACE
+  Filemarks with count = 1048576 for fast mode, and combination of SCSI
+  SPACE Filemarks with count = 1 with SCSI SPACE Blocks with count = 1 for
+  slow mode, so EOD mark on the tape on some older tape drives is not
+  skipped.  File number is always tracked for MTEOM.
+
+  Linux does support both SCSI SPACE Filemarks and End-of-data: When MTEOM
+  is called in MT\_ST\_FAST\_MTEOM mode, SCSI SPACE End-of-data is used.
+  In the other case, SCSI SPACE Filemarks with count =
+  8388607 is used.  
+  There is no real slow mode like in Solaris - I just expect, that for
+  older tape drives Filemarks may be slower than End-of-data, but not so
+  much as in Solaris slow mode.  File number is tracked for MTEOM just
+  without MT\_ST\_FAST\_MTEOM - when MT\_ST\_FAST\_MTEOM is used, it is not.
+
+  FreeBSD does support both SCSI SPACE Filemarks and End-of-data, but when
+  MTEOD (MTEOM) is called, SCSI SPACE End-of-data is always used.  FreeBSD
+  never use SCSI SPACE Filemarks for MTEOD. File number is never tracked
+  for MTEOD.
+
+\item[Bacula level]
+  When {\bf Hardware End of Medium = Yes} is used, MTEOM is called, but it
+  does not mean, that hardware End-of-data must be used.  When Hardware End
+  of Medium = No, if Fast Forward Space File = Yes, MTFSF with count =
+  32767 is used, else Block Read with count = 1 with Forward Space File
+  with count = 1 is used, which is really very slow.
+
+\item [Hardware End of Medium = Yes|No]
+  The name of this option is misleading and is the source of confusion,
+  because it is not the hardware EOM, what is really switched here.
+
+  If I use Yes, OS must not use SCSI SPACE End-of-data, because Bacula
+  expects, that there is tracked file number, which is not supported by
+  SCSI specification.  Instead, the OS have to use SCSI SPACE Filemarks.
+
+  If I use No, an action depends on Fast Forward Space File.
+
+  When I set {\bf Hardware End of Medium = no}
+  and {\bf Fast Forward Space File = no}
+  file positioning was very slow
+  on my LTO-3 (about ten to 100 minutes), but
+
+  with {\bf Hardware End of Medium = no} and
+{\bf Fast Forward Space File = yes}, the time is ten to
+100 times faster (about one to two minutes).
+
+\end{description}
+
+\section{Tape Performance Problems}
+\index[general]{Tape Performance}
+If you have LTO-3 or LTO-4 drives, you should be able to
+fairly good transfer rates; from 60 to 150 MB/second, providing
+you have fast disks; GigaBit Ethernet connections (probably 2); you are 
+running multiple simultaneous jobs; you have Bacula data spooling
+enabled; your tape block size is set to 131072 or 262144; and
+you have set {\bf Maximum File Size = 5G}.
+
+If you are not getting good performance, consider some of the following
+suggestions from the Allen Balck on the Bacula Users email list:
+
+\begin{enumerate}
+\item You are using an old HBA (i.e. SCSI-1, which only does 5 MB/s)
+
+\item There are other, slower, devices on the SCSI bus. The HBA will
+   negotiate the speed of every device down to the speed of the
+   slowest.
+
+\item There is a termination problem on the bus (either too much or
+   too little termination). The HBA will drop the bus speed in an
+   attempt to increase the reliability of the bus.
+
+\item Loose or damaged cabling - this will probably make the HBA "think"
+   you have a termination problem and it will react as in 3 above.
+\end{enumerate}
+
+See if /var/adm/messages (or /var/log/messages) tells you what the sync
+rate of the SCSI devices/bus are. Also, the next time you reboot, the
+BIOS may be able to tell you what the rate of each device is.
+
+
+\section{Autochanger Errors}
+\index[general]{Errors!Autochanger}
+\index[general]{Autochanger Errors}
+
+If you are getting errors such as:
+
+\footnotesize
+\begin{verbatim}
+3992 Bad autochanger "load slot 1, drive 1": ERR=Child exited with code 1.
+\end{verbatim}
+\normalsize
+
+and you are running your Storage daemon as non-root, then most likely
+you are having permissions problems with the control channel. Running
+as root, set permissions on /dev/sgX so that the userid and group of
+your Storage daemon can access the device. You need to ensure that you
+all access to the proper control device, and if you don't have any
+SCSI disk drives (including SATA drives), you might want to change
+the permissions on /dev/sg*.
+
+\section{Syslog Errors}
+\index[general]{Errors!Syslog}
+\index[general]{Syslog Errors}
+
+If you are getting errors such as:
+
+\footnotesize
+\begin{verbatim}
+: kernel: st0: MTSETDRVBUFFER only allowed for root
+\end{verbatim}
+\normalsize
+
+you are most likely running your Storage daemon as non-root, and
+Bacula is attempting to set the correct OS buffering to correspond
+to your Device resource. Most OSes allow only root to issue this
+ioctl command. In general, the message can be ignored providing 
+you are sure that your OS parameters are properly configured as
+described earlier in this manual.  If you are running your Storage daemon 
+as root, you should not be getting these system log messages, and if
+you are, something is probably wrong.
diff --git a/docs/manuals/fr/problems/base/tips.tex b/docs/manuals/fr/problems/base/tips.tex
new file mode 100644 (file)
index 0000000..f13da7a
--- /dev/null
@@ -0,0 +1,1045 @@
+%%
+%%
+
+\chapter{Tips and Suggestions}
+\label{TipsChapter}
+\index[general]{Tips and Suggestions }
+\index[general]{Suggestions!Tips and }
+\label{examples}
+\index[general]{Examples }
+
+There are a number of example scripts for various things that can be found in
+the {\bf example} subdirectory and its subdirectories of the Bacula source
+distribution. 
+
+For additional tips, please see the \elink{Bacula
+wiki}{http://wiki.bacula.org}.
+
+\section{Upgrading Bacula Versions}
+\label{upgrading}
+\index[general]{Upgrading Bacula Versions }
+\index[general]{Versions!Upgrading Bacula }
+\index[general]{Upgrading}
+
+The first thing to do before upgrading from one version to another is to
+ensure that you don't overwrite or delete your production (current) version
+of Bacula until you have tested that the new version works.
+
+If you have installed Bacula into a single directory, this is simple: simply
+make a copy of your Bacula directory. 
+
+If you have done a more typical Unix installation where the binaries are
+placed in one directory and the configuration files are placed in another,
+then the simplest way is to configure your new Bacula to go into a single
+file. Alternatively, make copies of all your binaries and especially your 
+conf files.
+
+Whatever your situation may be (one of the two just described), you should
+probably start with the {\bf defaultconf} script that can be found in the {\bf
+examples} subdirectory. Copy this script to the main Bacula directory, modify
+it as necessary (there should not need to be many modifications), configure
+Bacula, build it, install it, then stop your production Bacula, copy all the
+{\bf *.conf} files from your production Bacula directory to the test Bacula
+directory, start the test version, and run a few test backups. If all seems
+good, then you can proceed to install the new Bacula in place of or possibly
+over the old Bacula. 
+
+When installing a new Bacula you need not worry about losing the changes you
+made to your configuration files as the installation process will not
+overwrite them providing that you do not do a {\bf make uninstall}.
+
+If the new version of Bacula requires an upgrade to the database,
+you can upgrade it with the script {\bf update\_bacula\_tables}, which
+will be installed in your scripts directory (default {\bf /etc/bacula}),
+or alternatively, you can find it in the  
+{\bf \lt{}bacula-source\gt{}/src/cats} directory.
+
+\section{Getting Notified of Job Completion}
+\label{notification}
+\index[general]{Getting Notified of Job Completion }
+\index[general]{Completion!Getting Notified of Job }
+
+One of the first things you should do is to ensure that you are being properly
+notified of the status of each Job run by Bacula, or at a minimum of each Job
+that terminates with an error. 
+
+Until you are completely comfortable with {\bf Bacula}, we recommend that you
+send an email to yourself for each Job that is run. This is most easily
+accomplished by adding an email notification address in the {\bf Messages}
+resource of your Director's configuration file. An email is automatically
+configured in the default configuration files, but you must ensure that the
+default {\bf root} address is replaced by your email address. 
+
+For additional examples of how to configure a Bacula, please take a look at the
+{\bf .conf} files found in the {\bf examples} sub-directory. We recommend the
+following configuration (where you change the paths and email address to
+correspond to your setup). Note, the {\bf mailcommand} and {\bf
+operatorcommand} should be on a single line. They were split here for
+presentation: 
+
+\footnotesize
+\begin{verbatim}
+Messages {
+  Name = Standard
+  mailcommand = "/home/bacula/bin/bsmtp -h localhost
+                -f \"\(Bacula\) %r\"
+                -s \"Bacula: %t %e of %c %l\" %r"
+  operatorcommand = "/home/bacula/bin/bsmtp -h localhost
+                -f \"\(Bacula\) %r\"
+                -s \"Bacula: Intervention needed for %j\" %r"
+  Mail = your-email-address = all, !skipped, !terminate
+  append = "/home/bacula/bin/log" = all, !skipped, !terminate
+  operator = your-email-address = mount
+  console = all, !skipped, !saved
+}
+\end{verbatim}
+\normalsize
+
+You will need to ensure that the {\bf /home/bacula/bin} path on the {\bf
+mailcommand} and the {\bf operatorcommand} lines point to your {\bf Bacula}
+binary directory where the {\bf bsmtp} program will be installed. You will
+also want to ensure that the {\bf your-email-address} is replaced by your
+email address, and finally, you will also need to ensure that the {\bf
+/home/bacula/bin/log} points to the file where you want to log all messages. 
+
+With the above Messages resource, you will be notified by email of every Job
+that ran, all the output will be appended to the {\bf log} file you specify,
+all output will be directed to the console program, and all mount messages
+will be emailed to you. Note, some messages will be sent to multiple
+destinations. 
+
+The form of the mailcommand is a bit complicated, but it allows you to
+distinguish whether the Job terminated in error or terminated normally. Please
+see the 
+\ilink{Mail Command}{mailcommand} section of the Messages
+Resource chapter of this manual for the details of the substitution characters
+used above. 
+
+Once you are totally comfortable with Bacula as I am, or if you have a large
+number of nightly Jobs as I do (eight), you will probably want to change the
+{\bf Mail} command to {\bf Mail On Error} which will generate an email message
+only if the Job terminates in error. If the Job terminates normally, no email
+message will be sent, but the output will still be appended to the log file as
+well as sent to the Console program. 
+
+\section{Getting Email Notification to Work}
+\label{email}
+\index[general]{Work!Getting Email Notification to }
+\index[general]{Getting Email Notification to Work }
+
+The section above describes how to get email notification of job status.
+Occasionally, however, users have problems receiving any email at all. In that
+case, the things to check are the following: 
+
+\begin{itemize}
+\item Ensure that you have a valid email address specified on your  {\bf Mail}
+   record in the Director's Messages resource. The email  address should be fully
+   qualified. Simply using {\bf root} generally  will not work, rather you should
+use {\bf root@localhost} or better  yet your full domain.  
+\item Ensure that you do not have a {\bf Mail} record in the Storage  daemon's
+   or File daemon's configuration files. The only record  you should have is {\bf
+   director}:  
+
+\footnotesize
+\begin{verbatim}
+      director = director-name = all
+      
+\end{verbatim}
+\normalsize
+
+\item If all else fails, try replacing the {\bf mailcommand} with 
+
+   \footnotesize
+\begin{verbatim}
+mailcommand = "mail -s test your@domain.com"
+\end{verbatim}
+\normalsize
+
+\item Once the above is working, assuming you want to use {\bf bsmtp},  submit
+   the desired bsmtp command by hand and ensure that the email  is delivered,
+   then put that command into {\bf Bacula}. Small  differences in things such as
+the parenthesis around the word  Bacula can make a big difference to some
+bsmtp programs.  For example, you might start simply by using: 
+
+\footnotesize
+\begin{verbatim}
+mailcommand = "/home/bacula/bin/bsmtp -f \"root@localhost\" %r"
+\end{verbatim}
+\normalsize
+
+\end{itemize}
+
+\section{Getting Notified that Bacula is Running}
+\label{JobNotification}
+\index[general]{Running!Getting Notified that Bacula is }
+\index[general]{Getting Notified that Bacula is Running }
+
+If like me, you have setup Bacula so that email is sent only when a Job has
+errors, as described in the previous section of this chapter, inevitably, one
+day, something will go wrong and {\bf Bacula} can stall. This could be because
+Bacula crashes, which is vary rare, or more likely the network has caused {\bf
+Bacula} to {\bf hang} for some unknown reason. 
+
+To avoid this, you can use the {\bf RunAfterJob} command in the Job resource
+to schedule a Job nightly, or weekly that simply emails you a message saying
+that Bacula is still running. For example, I have setup the following Job in
+my Director's configuration file: 
+
+\footnotesize
+\begin{verbatim}
+Schedule {
+  Name = "Watchdog"
+  Run = Level=Full sun-sat at 6:05
+}
+Job {
+  Name = "Watchdog"
+  Type = Admin
+  Client=Watchdog
+  FileSet="Verify Set"
+  Messages = Standard
+  Storage = DLTDrive
+  Pool = Default
+  Schedule = "Watchdog"
+  RunAfterJob = "/home/kern/bacula/bin/watchdog %c %d"
+}
+Client {
+  Name = Watchdog
+  Address = rufus
+  FDPort = 9102
+  Catalog = Verify
+  Password = ""
+  File Retention = 1day
+  Job Retention = 1 month
+  AutoPrune = yes
+}
+\end{verbatim}
+\normalsize
+
+Where I established a schedule to run the Job nightly. The Job itself is type
+{\bf Admin} which means that it doesn't actually do anything, and I've defined
+a FileSet, Pool, Storage, and Client, all of which are not really used (and
+probably don't need to be specified). The key aspect of this Job is the
+command: 
+
+\footnotesize
+\begin{verbatim}
+  RunAfterJob = "/home/kern/bacula/bin/watchdog %c %d"
+\end{verbatim}
+\normalsize
+
+which runs my "watchdog" script. As an example, I have added the Job codes
+\%c and \%d which will cause the Client name and the Director's name to be
+passed to the script. For example, if the Client's name is {\bf Watchdog} and
+the Director's name is {\bf main-dir} then referencing \$1 in the script would
+get {\bf Watchdog} and referencing \$2 would get {\bf main-dir}. In this case,
+having the script know the Client and Director's name is not really useful,
+but in other situations it may be. 
+
+You can put anything in the watchdog script. In my case, I like to monitor the
+size of my catalog to be sure that {\bf Bacula} is really pruning it. The
+following is my watchdog script: 
+
+\footnotesize
+\begin{verbatim}
+#!/bin/sh
+cd /home/kern/mysql/var/bacula
+du . * |
+/home/kern/bacula/bin/bsmtp  \
+   -f "\(Bacula\) abuse@whitehouse.com" -h mail.yyyy.com \
+   -s "Bacula running" abuse@whitehouse.com
+\end{verbatim}
+\normalsize
+
+If you just wish to send yourself a message, you can do it with: 
+
+\footnotesize
+\begin{verbatim}
+#!/bin/sh
+cd /home/kern/mysql/var/bacula
+/home/kern/bacula/bin/bsmtp  \
+   -f "\(Bacula\) abuse@whitehouse.com" -h mail.yyyy.com \
+   -s "Bacula running" abuse@whitehouse.com <<END-OF-DATA
+Bacula is still running!!!
+END-OF-DATA
+\end{verbatim}
+\normalsize
+
+\section{Maintaining a Valid Bootstrap File}
+\label{bootstrap}
+\index[general]{Maintaining a Valid Bootstrap File }
+\index[general]{File!Maintaining a Valid Bootstrap }
+
+By using a 
+\ilink{ WriteBootstrap}{writebootstrap} record in each of your
+Director's Job resources, you can constantly maintain a 
+\ilink{bootstrap}{BootstrapChapter} file that will enable you to
+recover the state of your system as of the last backup without having the
+Bacula catalog. This permits you to more easily recover from a disaster that
+destroys your Bacula catalog. 
+
+When a Job resource has a {\bf WriteBootstrap} record, Bacula will maintain
+the designated file (normally on another system but mounted by NFS) with up to
+date information necessary to restore your system. For example, in my
+Director's configuration file, I have the following record: 
+
+\footnotesize
+\begin{verbatim}
+ Write Bootstrap = "/mnt/deuter/files/backup/client-name.bsr"
+\end{verbatim}
+\normalsize
+
+where I replace {\bf client-name} by the actual name of the client that is
+being backed up. Thus, Bacula automatically maintains one file for each of my
+clients. The necessary bootstrap information is appended to this file during
+each {\bf Incremental} backup, and the file is totally rewritten during each
+{\bf Full} backup. 
+
+Note, one disadvantage of writing to an NFS mounted volume as I do is
+that if the other machine goes down, the OS will wait forever on the fopen()
+call that Bacula makes. As a consequence, Bacula will completely stall until
+the machine exporting the NFS mounts comes back up. A possible solution to this
+problem was provided by Andrew Hilborne, and consists of using the {\bf soft}
+option instead of the {\bf hard} option when mounting the NFS volume, which is
+typically done in {\bf /etc/fstab}/. The NFS documentation explains these
+options in detail. However, I found that with the {\bf soft} option 
+NFS disconnected frequently causing even more problems.
+
+If you are starting off in the middle of a cycle (i.e. with Incremental
+backups) rather than at the beginning (with a Full backup), the {\bf
+bootstrap} file will not be immediately valid as it must always have the
+information from a Full backup as the first record. If you wish to synchronize
+your bootstrap file immediately, you can do so by running a {\bf restore}
+command for the client and selecting a full restore, but when the restore
+command asks for confirmation to run the restore Job, you simply reply no,
+then copy the bootstrap file that was written to the location specified on the
+{\bf Write Bootstrap} record. The restore bootstrap file can be found in {\bf
+restore.bsr} in the working directory that you defined. In the example given
+below for the client {\bf rufus}, my input is shown in bold. Note, the JobId
+output has been partially truncated to fit on the page here: 
+
+\footnotesize
+\begin{verbatim}
+(in the Console program)
+*restore
+First you select one or more JobIds that contain files
+to be restored. You will then be presented several methods
+of specifying the JobIds. Then you will be allowed to
+select which files from those JobIds are to be restored.
+To select the JobIds, you have the following choices:
+     1: List last 20 Jobs run
+     2: List Jobs where a given File is saved
+     3: Enter list of JobIds to select
+     4: Enter SQL list command
+     5: Select the most recent backup for a client
+     6: Cancel
+Select item:  (1-6): 5
+The defined Client resources are:
+     1: Minimatou
+     2: Rufus
+     3: Timmy
+Select Client (File daemon) resource (1-3): 2
+The defined FileSet resources are:
+     1: Other Files
+Item 1 selected automatically.
++-------+------+-------+---------+---------+------+-------+------------+
+| JobId | Levl | Files | StrtTim | VolName | File | SesId | VolSesTime |
++-------+------+-------+---------+---------+------+-------+------------+
+| 2     | F    | 84    |  ...    | test1   | 0    | 1     | 1035645259 |
++-------+------+-------+---------+---------+------+-------+------------+
+You have selected the following JobId: 2
+Building directory tree for JobId 2 ...
+The defined Storage resources are:
+     1: File
+Item 1 selected automatically.
+You are now entering file selection mode where you add and
+remove files to be restored. All files are initially added.
+Enter "done" to leave this mode.
+cwd is: /
+$ done
+84 files selected to restore.
+Run Restore job
+JobName:    kernsrestore
+Bootstrap:  /home/kern/bacula/working/restore.bsr
+Where:      /tmp/bacula-restores
+FileSet:    Other Files
+Client:     Rufus
+Storage:    File
+JobId:      *None*
+OK to run? (yes/mod/no): no
+quit
+(in a shell window)
+cp ../working/restore.bsr /mnt/deuter/files/backup/rufus.bsr
+\end{verbatim}
+\normalsize
+
+\section{Rejected Volumes After a Crash}
+\label{RejectedVolumes}
+\index[general]{Crash!Rejected Volumes After a }
+\index[general]{Rejected Volumes After a Crash }
+
+Bacula keeps a count of the number of files on each Volume in its Catalog
+database so that before appending to a tape, it can verify that the number of
+files are correct, and thus prevent overwriting valid data. If the Director or
+the Storage daemon crashes before the job has completed, the tape will contain
+one more file than is noted in the Catalog, and the next time you attempt to
+use the same Volume, Bacula will reject it due to a mismatch between the
+physical tape (Volume) and the catalog. 
+
+The easiest solution to this problem is to label a new tape and start fresh.
+If you wish to continue appending to the current tape, you can do so by using
+the {\bf update} command in the console program to change the {\bf Volume
+Files} entry in the catalog. A typical sequence of events would go like the
+following: 
+
+\footnotesize
+\begin{verbatim}
+- Bacula crashes
+- You restart Bacula
+\end{verbatim}
+\normalsize
+
+Bacula then prints: 
+
+\footnotesize
+\begin{verbatim}
+17-Jan-2003 16:45 rufus-dir: Start Backup JobId 13,
+                  Job=kernsave.2003-01-17_16.45.46
+17-Jan-2003 16:45 rufus-sd: Volume test01 previously written,
+                  moving to end of data.
+17-Jan-2003 16:46 rufus-sd: kernsave.2003-01-17_16.45.46 Error:
+                  I cannot write on this volume because:
+                  The number of files mismatch! Volume=11 Catalog=10
+17-Jan-2003 16:46 rufus-sd: Job kernsave.2003-01-17_16.45.46 waiting.
+                   Cannot find any appendable volumes.
+Please use the "label"  command to create a new Volume for:
+    Storage:      SDT-10000
+    Media type:   DDS-4
+    Pool:         Default
+\end{verbatim}
+\normalsize
+
+(note, lines wrapped for presentation)
+The key here is the line that reads: 
+
+\footnotesize
+\begin{verbatim}
+  The number of files mismatch! Volume=11 Catalog=10
+\end{verbatim}
+\normalsize
+
+It says that Bacula found eleven files on the volume, but that the catalog
+says there should be ten. When you see this, you can be reasonably sure that
+the SD was interrupted while writing before it had a chance to update the
+catalog. As a consequence, you can just modify the catalog count to eleven,
+and even if the catalog contains references to files saved in file 11,
+everything will be OK and nothing will be lost. Note that if the SD had
+written several file marks to the volume, the difference between the Volume
+count and the Catalog count could be larger than one, but this is unusual. 
+
+If on the other hand the catalog is marked as having more files than Bacula
+found on the tape, you need to consider the possible negative consequences of
+modifying the catalog. Please see below for a more complete discussion of
+this. 
+
+Continuing with the example of {\bf Volume = 11 Catalog = 10}, to enable to
+Bacula to append to the tape, you do the following: 
+
+\footnotesize
+\begin{verbatim}
+update
+Update choice:
+     1: Volume parameters
+     2: Pool from resource
+     3: Slots from autochanger
+Choose catalog item to update (1-3): 1
+Defined Pools:
+     1: Default
+     2: File
+Select the Pool (1-2):
++-------+---------+--------+---------+-----------+------+----------+------+-----+
+| MedId | VolName | MedTyp | VolStat | VolBytes  | Last | VolReten | Recy | Slt |
++-------+---------+--------+---------+-----------+------+----------+------+-----+
+| 1     | test01  | DDS-4  | Error   | 352427156 | ...  | 31536000 | 1    | 0   |
++-------+---------+--------+---------+-----------+------+----------+------+-----+
+Enter MediaId or Volume name: 1
+\end{verbatim}
+\normalsize
+
+(note table output truncated for presentation) First, you chose to update the
+Volume parameters by entering a {\bf 1}. In the volume listing that follows,
+notice how the VolStatus is {\bf Error}. We will correct that after changing
+the Volume Files. Continuing, you respond 1, 
+
+\footnotesize
+\begin{verbatim}
+Updating Volume "test01"
+Parameters to modify:
+     1: Volume Status
+     2: Volume Retention Period
+     3: Volume Use Duration
+     4: Maximum Volume Jobs
+     5: Maximum Volume Files
+     6: Maximum Volume Bytes
+     7: Recycle Flag
+     8: Slot
+     9: Volume Files
+    10: Pool
+    11: Done
+Select parameter to modify (1-11): 9
+Warning changing Volume Files can result
+in loss of data on your Volume
+Current Volume Files is: 10
+Enter new number of Files for Volume: 11
+New Volume Files is: 11
+Updating Volume "test01"
+Parameters to modify:
+     1: Volume Status
+     2: Volume Retention Period
+     3: Volume Use Duration
+     4: Maximum Volume Jobs
+     5: Maximum Volume Files
+     6: Maximum Volume Bytes
+     7: Recycle Flag
+     8: Slot
+     9: Volume Files
+    10: Pool
+    11: Done
+Select parameter to modify (1-10): 1
+\end{verbatim}
+\normalsize
+
+Here, you have selected {\bf 9} in order to update the Volume Files, then you
+changed it from {\bf 10} to {\bf 11}, and you now answer {\bf 1} to change the
+Volume Status. 
+
+\footnotesize
+\begin{verbatim}
+Current Volume status is: Error
+Possible Values are:
+     1: Append
+     2: Archive
+     3: Disabled
+     4: Full
+     5: Used
+     6: Read-Only
+Choose new Volume Status (1-6): 1
+New Volume status is: Append
+Updating Volume "test01"
+Parameters to modify:
+     1: Volume Status
+     2: Volume Retention Period
+     3: Volume Use Duration
+     4: Maximum Volume Jobs
+     5: Maximum Volume Files
+     6: Maximum Volume Bytes
+     7: Recycle Flag
+     8: Slot
+     9: Volume Files
+    10: Pool
+    11: Done
+Select parameter to modify (1-11): 11
+Selection done.
+\end{verbatim}
+\normalsize
+
+At this point, you have changed the Volume Files from {\bf 10} to {\bf 11} to
+account for the last file that was written but not updated in the database,
+and you changed the Volume Status back to {\bf Append}. 
+
+This was a lot of words to describe something quite simple. 
+
+The {\bf Volume Files} option exists only in version 1.29 and later, and you
+should be careful using it. Generally, if you set the value to that which
+Bacula said is on the tape, you will be OK, especially if the value is one
+more than what is in the catalog. 
+
+Now lets consider the case: 
+
+\footnotesize
+\begin{verbatim}
+  The number of files mismatch! Volume=10 Catalog=12
+\end{verbatim}
+\normalsize
+
+Here the Bacula found fewer files on the volume than what is marked in the
+catalog. Now, in this case, you should hesitate a lot before modifying the count
+in the catalog, because if you force the catalog from 12 to 10, Bacula will
+start writing after the file 10 on the tape, possibly overwriting valid data,
+and if you ever try to restore any of the files that the catalog has marked as
+saved on Files 11 and 12, all chaos will break out. In this case, you will
+probably be better off using a new tape. In fact, you might want to see what
+files the catalog claims are actually stored on that Volume, and back them up
+to another tape and recycle this tape. 
+
+\section{Security Considerations}
+\label{security}
+\index[general]{Considerations!Security }
+\index[general]{Security Considerations }
+
+Only the File daemon needs to run with root permission (so that it can access
+all files). As a consequence, you may run your Director, Storage daemon, and
+MySQL or PostgreSQL database server as non-root processes. Version 1.30 has
+the {\bf -u} and the {\bf -g} options that allow you to specify a userid and
+groupid on the command line to be used after Bacula starts. 
+
+As of version 1.33, thanks to Dan Langille, it is easier to configure the
+Bacula Director and Storage daemon to run as non-root. 
+
+You should protect the Bacula port addresses (normally 9101, 9102, and 9103)
+from outside access by a firewall or other means of protection to prevent
+unauthorized use of your daemons. 
+
+You should ensure that the configuration files are not world readable since
+they contain passwords that allow access to the daemons. Anyone who can access
+the Director using a console program can restore any file from a backup
+Volume. 
+
+You should protect your Catalog database. If you are using SQLite, make sure
+that the working directory is readable only by root (or your Bacula userid),
+and ensure that {\bf bacula.db} has permissions {\bf -rw-r\verb:--:r\verb:--:} (i.e. 640) or
+more strict. If you are using MySQL or PostgreSQL, please note that the Bacula
+setup procedure leaves the database open to anyone. At a minimum, you should
+assign the user {\bf bacula} a userid and add it to your Director's
+configuration file in the appropriate Catalog resource. 
+
+If you use the make\_catalog\_backup script provided by Bacula, remember that
+you should take care when supplying passwords on the command line.  Read the
+\ilink{Backing Up Your Bacula
+Database - Security Considerations }{BackingUpBaculaSecurityConsiderations}
+section for more information.
+
+\section{Creating Holiday Schedules}
+\label{holiday}
+\index[general]{Schedules!Creating Holiday }
+\index[general]{Creating Holiday Schedules }
+
+If you normally change tapes every day or at least every Friday, but Thursday
+is a holiday, you can use a trick proposed by Lutz Kittler to ensure that no
+job runs on Thursday so that you can insert Friday's tape and be sure it will
+be used on Friday. To do so, define a {\bf RunJobBefore} script that normally
+returns zero, so that the Bacula job will normally continue. You can then
+modify the script to return non-zero on any day when you do not want Bacula to
+run the job. 
+
+\section{Automatic Labeling Using Your Autochanger}
+\label{autolabel}
+\index[general]{Automatic Labeling Using Your Autochanger }
+\index[general]{Autochanger!Automatic Labeling Using Your }
+
+If you have an autochanger but it does not support barcodes, using a "trick"
+you can make Bacula automatically label all the volumes in your autochanger's
+magazine. 
+
+First create a file containing one line for each slot in your autochanger that
+has a tape to be labeled. The line will contain the slot number a colon (:)
+then the Volume name you want to use. For example, create a file named {\bf
+volume-list}, which contains: 
+
+\footnotesize
+\begin{verbatim}
+1:Volume001
+2:TestVolume02
+5:LastVolume
+\end{verbatim}
+\normalsize
+
+The records do not need to be in any order and you don't need to mention all
+the slots. Normally, you will have a consistent set of Volume names and a
+sequential set of numbers for each slot you want labeled. In the example
+above, I've left out slots 3 and 4 just as an example. Now, modify your {\bf
+mtx-changer} script and comment out all the lines in the {\bf list)} case by
+putting a \# in column 1. Then add the following two lines: 
+
+\footnotesize
+\begin{verbatim}
+  cat <absolute-path>/volume-list
+  exit 0
+\end{verbatim}
+\normalsize
+
+so that the whole case looks like: 
+
+\footnotesize
+\begin{verbatim}
+  list)
+#
+# commented out lines
+   cat <absolute-path>/volume-list
+   exit 0
+   ;;
+\end{verbatim}
+\normalsize
+
+where you replace \lt{}absolute-path\gt{} with the full path to the
+volume-list file. Then using the console, you enter the following command: 
+
+\footnotesize
+\begin{verbatim}
+   label barcodes
+\end{verbatim}
+\normalsize
+
+and Bacula will proceed to mount the autochanger Volumes in the list and label
+them with the Volume names you have supplied. Bacula will think that the list
+was provided by the autochanger barcodes, but in reality, it was you who
+supplied the \lt{}barcodes\gt{}. 
+
+If it seems to work, when it finishes, enter: 
+
+\footnotesize
+\begin{verbatim}
+   list volumes
+\end{verbatim}
+\normalsize
+
+and you should see all the volumes nicely created. 
+
+\section{Backing Up Portables Using DHCP}
+\label{DNS}
+\index[general]{DHCP!Backing Up Portables Using }
+\index[general]{Backing Up Portables Using DHCP }
+
+You may want to backup laptops or portables that are not always connected to
+the network. If you are using DHCP to assign an IP address to those machines
+when they connect, you will need to use the Dynamic Update capability of DNS
+to assign a name to those machines that can be used in the Address field of
+the Client resource in the Director's conf file. 
+
+\section{Going on Vacation}
+\label{Vacation}
+\index[general]{Vacation!Going on }
+\index[general]{Going on Vacation }
+
+At some point, you may want to be absent for a week or two and you want to
+make sure Bacula has enough tape left so that the backups will complete. You
+start by doing a {\bf list volumes} in the Console program: 
+
+\footnotesize
+\begin{verbatim}
+list volumes
+Using default Catalog name=BackupDB DB=bacula
+Pool: Default
++---------+---------------+-----------+-----------+----------------+-
+| MediaId | VolumeName    | MediaType | VolStatus |       VolBytes |
++---------+---------------+-----------+-----------+----------------+-
+|      23 | DLT-30Nov02   | DLT8000   | Full      | 54,739,278,128 |
+|      24 | DLT-21Dec02   | DLT8000   | Full      | 56,331,524,629 |
+|      25 | DLT-11Jan03   | DLT8000   | Full      | 67,863,514,895 |
+|      26 | DLT-02Feb03   | DLT8000   | Full      | 63,439,314,216 |
+|      27 | DLT-03Mar03   | DLT8000   | Full      | 66,022,754,598 |
+|      28 | DLT-04Apr03   | DLT8000   | Full      | 60,792,559,924 |
+|      29 | DLT-28Apr03   | DLT8000   | Full      | 62,072,494,063 |
+|      30 | DLT-17May03   | DLT8000   | Full      | 65,901,767,839 |
+|      31 | DLT-07Jun03   | DLT8000   | Used      | 56,558,490,015 |
+|      32 | DLT-28Jun03   | DLT8000   | Full      | 64,274,871,265 |
+|      33 | DLT-19Jul03   | DLT8000   | Full      | 64,648,749,480 |
+|      34 | DLT-08Aug03   | DLT8000   | Full      | 64,293,941,255 |
+|      35 | DLT-24Aug03   | DLT8000   | Append    |  9,999,216,782 |
++---------+---------------+-----------+-----------+----------------+
+\end{verbatim}
+\normalsize
+
+Note, I have truncated the output for presentation purposes. What is
+significant, is that I can see that my current tape has almost 10 Gbytes of
+data, and that the average amount of data I get on my tapes is about 60
+Gbytes. So if I go on vacation now, I don't need to worry about tape capacity
+(at least not for short absences). 
+
+Equally significant is the fact that I did go on vacation the 28th of June
+2003, and when I did the {\bf list volumes} command, my current tape at that
+time, DLT-07Jun03 MediaId 31, had 56.5 Gbytes written. I could see that the
+tape would fill shortly. Consequently, I manually marked it as {\bf Used} and
+replaced it with a fresh tape that I labeled as DLT-28Jun03, thus assuring
+myself that the backups would all complete without my intervention. 
+
+\section{Exclude Files on Windows Regardless of Case}
+\label{Case}
+\index[general]{Exclude Files on Windows Regardless of Case}
+% TODO: should this be put in the win32 chapter?
+% TODO: should all these tips be placed in other chapters?
+
+This tip was submitted by Marc Brueckner who wasn't sure of the case of some
+of his files on Win32, which is case insensitive. The problem is that Bacula
+thinks that {\bf /UNIMPORTANT FILES} is different from {\bf /Unimportant
+Files}. Marc was aware that the file exclusion permits wild-cards. So, he
+specified: 
+
+\footnotesize
+\begin{verbatim}
+"/[Uu][Nn][Ii][Mm][Pp][Oo][Rr][Tt][Aa][Nn][Tt] [Ff][Ii][Ll][Ee][Ss]"
+\end{verbatim}
+\normalsize
+
+As a consequence, the above exclude works for files of any case. 
+
+Please note that this works only in Bacula Exclude statement and not in
+Include. 
+
+\section{Executing Scripts on a Remote Machine}
+\label{RemoteExecution}
+\index[general]{Machine!Executing Scripts on a Remote }
+\index[general]{Executing Scripts on a Remote Machine }
+
+This tip also comes from Marc Brueckner. (Note, this tip is probably outdated
+by the addition of {\bf ClientRunBeforJob} and {\bf ClientRunAfterJob} Job
+records, but the technique still could be useful.) First I thought the "Run
+Before Job" statement in the Job-resource is for executing a script on the
+remote machine (the machine to be backed up). (Note, this is possible as mentioned
+above by using {\bf ClientRunBeforJob} and {\bf ClientRunAfterJob}).
+It could be useful to execute
+scripts on the remote machine e.g. for stopping databases or other services
+while doing the backup. (Of course I have to start the services again when the
+backup has finished) I found the following solution: Bacula could execute
+scripts on the remote machine by using ssh. The authentication is done
+automatically using a private key. First you have to generate a keypair. I've
+done this by: 
+
+\footnotesize
+\begin{verbatim}
+ssh-keygen -b 4096 -t dsa -f Bacula_key
+\end{verbatim}
+\normalsize
+
+This statement may take a little time to run. It creates a public/private key
+pair with no passphrase. You could save the keys in /etc/bacula. Now you have
+two new files : Bacula\_key which contains the private key and Bacula\_key.pub
+which contains the public key. 
+
+Now you have to append the Bacula\_key.pub file to the file authorized\_keys
+in the \textbackslash{}root\textbackslash{}.ssh directory of the remote
+machine. Then you have to add (or uncomment) the line 
+
+\footnotesize
+\begin{verbatim}
+AuthorizedKeysFile           %h/.ssh/authorized_keys
+\end{verbatim}
+\normalsize
+
+to the sshd\_config file on the remote machine. Where the \%h stands for the
+home-directory of the user (root in this case). 
+
+Assuming that your sshd is already running on the remote machine, you can now
+enter the following on the machine where Bacula runs: 
+
+\footnotesize
+\begin{verbatim}
+ssh -i Bacula_key  -l root <machine-name-or-ip-address> "ls -la"
+\end{verbatim}
+\normalsize
+
+This should execute the "ls -la" command on the remote machine. 
+
+Now you could add lines like the following to your Director's conf file: 
+
+\footnotesize
+\begin{verbatim}
+...
+Run Before Job = ssh -i /etc/bacula/Bacula_key 192.168.1.1 \
+                 "/etc/init.d/database stop"
+Run After Job = ssh -i /etc/bacula/Bacula_key 192.168.1.1 \
+                 "/etc/init.d/database start"
+...
+\end{verbatim}
+\normalsize
+
+Even though Bacula version 1.32 and later has a ClientRunBeforeJob, the ssh method still
+could be useful for updating all the Bacula clients on several remote machines
+in a single script. 
+
+\section{Recycling All Your Volumes}
+\label{recycle}
+\index[general]{Recycling All Your Volumes }
+\index[general]{Volumes!Recycling All Your }
+
+This tip comes from Phil Stracchino. 
+
+If you decide to blow away your catalog and start over, the simplest way to
+re-add all your prelabeled tapes with a minimum of fuss (provided you don't
+care about the data on the tapes) is to add the tape labels using the console
+{\bf add} command, then go into the catalog and manually set the VolStatus of
+every tape to {\bf Recycle}. 
+
+The SQL command to do this is very simple, either use your vendor's
+command line interface (mysql, postgres, sqlite, ...) or use the sql
+command in the Bacula console:
+
+\footnotesize
+\begin{verbatim}
+update Media set VolStatus='Recycle';
+\end{verbatim}
+\normalsize
+
+Bacula will then ignore the data already stored on the tapes and just re-use
+each tape without further objection. 
+
+\section{Backing up ACLs on ext3 or XFS filesystems}
+\label{ACLs}
+\index[general]{Filesystems!Backing up ACLs on ext3 or XFS }
+\index[general]{Backing up ACLs on ext3 or XFS filesystems }
+
+This tip comes from Volker Sauer. 
+
+Note, this tip was given prior to implementation of ACLs in Bacula (version
+1.34.5). It is left here because dumping/displaying ACLs can still be useful
+in testing/verifying that Bacula is backing up and restoring your ACLs
+properly. Please see the 
+\ilink{aclsupport}{ACLSupport} FileSet option in the
+configuration chapter of this manual. 
+
+For example, you could dump the ACLs to a file with a script similar to the
+following: 
+
+\footnotesize
+\begin{verbatim}
+#!/bin/sh
+BACKUP_DIRS="/foo /bar"
+STORE_ACL=/root/acl-backup
+umask 077
+for i in $BACKUP_DIRS; do
+ cd $i /usr/bin/getfacl -R --skip-base .>$STORE_ACL/${i//\//_}
+done
+\end{verbatim}
+\normalsize
+
+Then use Bacula to backup {\bf /root/acl-backup}. 
+
+The ACLs could be restored using Bacula to the {\bf /root/acl-backup} file,
+then restored to your system using: 
+
+\footnotesize
+\begin{verbatim}
+setfacl --restore/root/acl-backup
+\end{verbatim}
+\normalsize
+
+\section{Total Automation of Bacula Tape Handling}
+\label{automate}
+\index[general]{Handling!Total Automation of Bacula Tape }
+\index[general]{Total Automation of Bacula Tape Handling }
+
+This tip was provided by Alexander Kuehn. 
+
+\elink{Bacula}{http://www.bacula.org/} is a really nice backup program except
+that the manual tape changing requires user interaction with the bacula
+console. 
+
+Fortunately I can fix this.
+NOTE!!! This suggestion applies for people who do *NOT* have tape autochangers
+and must change tapes manually.!!!!! 
+
+Bacula supports a variety of tape changers through the use of mtx-changer
+scripts/programs. This highly flexible approach allowed me to create 
+\elink{this shell script}{http://www.bacula.org/en/rel-manual/mtx-changer.txt} which does the following:
+% TODO: We need to include this in book appendix and point to it.
+% TODO:
+Whenever a new tape is required it sends a mail to the operator to insert the
+new tape. Then it waits until a tape has been inserted, sends a mail again to
+say thank you and let's bacula continue its backup.
+So you can schedule and run backups without ever having to log on or see the
+console.
+To make the whole thing work you need to create a Device resource which looks
+something like this ("Archive Device", "Maximum Changer Wait", "Media
+Type" and "Label media" may have different values): 
+
+\footnotesize
+\begin{verbatim}
+Device {
+   Name=DDS3
+   Archive Device = # use yours not mine! ;)/dev/nsa0
+   Changer Device = # not really required/dev/nsa0
+   Changer Command = "# use this (maybe change the path)!
+         /usr/local/bin/mtx-changer %o %a %S"
+   Maximum Changer Wait = 3d          # 3 days in seconds
+   AutomaticMount = yes;              # mount on start
+   AlwaysOpen = yes;                  # keep device locked
+   Media Type = DDS3                  # it's just a name
+   RemovableMedia = yes;              #
+   Offline On Unmount = Yes;          # keep this too
+   Label media = Yes;                 #
+}
+\end{verbatim}
+\normalsize
+
+As the script has to emulate the complete wisdom of a mtx-changer it has an
+internal "database" containing where which tape is stored, you can see this on
+the following line:
+
+\footnotesize
+\begin{verbatim}
+labels="VOL-0001 VOL-0002 VOL-0003 VOL-0004 VOL-0005 VOL-0006
+VOL-0007 VOL-0008 VOL-0009 VOL-0010 VOL-0011 VOL-0012"
+\end{verbatim}
+\normalsize
+
+The above should be all on one line, and it effectively tells Bacula that
+volume "VOL-0001" is located in slot 1 (which is our lowest slot), that
+volume "VOL-0002" is located in slot 2 and so on..
+The script also maintains a logfile (/var/log/mtx.log) where you can monitor
+its operation.
+
+\section{Running Concurrent Jobs}
+\label{ConcurrentJobs}
+\index[general]{Jobs!Running Concurrent}
+\index[general]{Running Concurrent Jobs}
+\index[general]{Concurrent Jobs}
+
+Bacula can run multiple concurrent jobs, but the default configuration files
+do not enable it. Using the {\bf Maximum Concurrent Jobs} directive, you
+can configure how many and which jobs can be run simultaneously. 
+The Director's default value for {\bf Maximum Concurrent Jobs} is "1".
+
+To initially setup concurrent jobs you need to define {\bf Maximum Concurrent Jobs} in 
+the Director's configuration file (bacula-dir.conf) in the 
+Director, Job, Client, and Storage resources.
+
+Additionally the File daemon, and the Storage daemon each have their own
+{\bf Maximum Concurrent Jobs} directive that sets the overall maximum
+number of concurrent jobs the daemon will run.  The default for both the
+File daemon and the Storage daemon is "20".
+
+For example, if you want two different jobs to run simultaneously backing up
+the same Client to the same Storage device, they will run concurrently only if
+you have set {\bf Maximum Concurrent Jobs} greater than one in the Director
+resource, the Client resource, and the Storage resource in bacula-dir.conf. 
+
+We recommend that you read the \ilink{Data
+Spooling}{SpoolingChapter} of this manual first, then test your multiple
+concurrent backup including restore testing before you put it into
+production.
+
+Below is a super stripped down bacula-dir.conf file showing you the four
+places where the the file must be modified to allow the same job {\bf
+NightlySave} to run up to four times concurrently. The change to the Job
+resource is not necessary if you want different Jobs to run at the same time,
+which is the normal case. 
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula Director Configuration file -- bacula-dir.conf
+#
+Director {
+  Name = rufus-dir
+  Maximum Concurrent Jobs = 4
+  ...
+}
+Job {
+  Name = "NightlySave"
+  Maximum Concurrent Jobs = 4
+  Client = rufus-fd
+  Storage = File
+  ...
+}
+Client {
+  Name = rufus-fd
+  Maximum Concurrent Jobs = 4
+  ...
+}
+Storage {
+  Name = File
+  Maximum Concurrent Jobs = 4
+  ...
+}
+\end{verbatim}
+\normalsize
diff --git a/docs/manuals/fr/problems/base/version.tex b/docs/manuals/fr/problems/base/version.tex
new file mode 100644 (file)
index 0000000..36878dd
--- /dev/null
@@ -0,0 +1 @@
+5.1.2 (26 February 2010)
diff --git a/docs/manuals/fr/problems/faq-en.tex b/docs/manuals/fr/problems/faq-en.tex
new file mode 100644 (file)
index 0000000..2fff751
--- /dev/null
@@ -0,0 +1,876 @@
+%%
+%%
+% TODO: maybe merge all this FAQ in with the appropriate section?
+% TODO: and use detailed indexing to help reader
+
+\chapter{Bacula Frequently Asked Questions}
+\label{FaqChapter}
+\index[general]{Questions!Bacula Frequently Asked }
+\index[general]{Bacula Frequently Asked Questions }
+
+These are questions that have been submitted over time by the
+Bacula users. The following
+FAQ is very useful, but it is not always up to date 
+with newer information, so after reading it, if you don't find what you 
+want, you might try the Bacula wiki maintained by Frank Sweetser, which
+contains more than just a FAQ:
+\elink{http://wiki.bacula.org}{http://wiki.bacula.org}
+or go directly to the FAQ at: 
+\elink{http://wiki.bacula.org/doku.php?id=faq}
+{http://wiki.bacula.org/doku.php?id=faq}.
+
+Please also see
+\ilink{the bugs section}{BugsChapter} of this document for a list
+of known bugs and solutions.
+
+\begin{description}
+\label{what}
+\section{What is Bacula?}
+\item [What is {\bf Bacula}? ]
+   \index[general]{What is Bacula? }
+   {\bf Bacula} is a network backup and restore program. 
+
+\section{Does Bacula support Windows?}
+\item [Does Bacula support Windows?]
+\index[general]{Does Bacula support Windows? }
+   Yes, Bacula compiles and runs on Windows machines (Win98, WinMe, WinXP,
+   WinNT, Win2003, and Win2000).  We provide a binary version of the Client
+   (bacula-fd), but have not tested the Director nor the Storage daemon.
+   Note, Win95 is no longer supported because it doesn't have the
+   GetFileAttributesExA API call.
+
+\label{lang}
+\section{What language is Bacula written in?}
+\item [What language is Bacula written in?]
+\index[general]{What language is Bacula written in? }
+   It is written in C++, but it is mostly C  code using only a limited set of
+   the C++ extensions  over C.  Thus Bacula is completely  compiled using the
+   C++ compiler. There are several modules, including the Win32 interface, that
+   are written using the  object oriented C++ features. Over time, we are slowly
+   adding a larger  subset of C++.  
+
+\label{run}
+\section{On what machines does Bacula run?}
+\item [On what machines does Bacula run? ]
+   \index[general]{On what machines does Bacula run? }
+   {\bf Bacula} builds and executes on Red Hat Linux (versions RH7.1-RHEL
+   4.0, Fedora, SuSE, Gentoo, Debian, Mandriva, ...), FreeBSD, Solaris,
+   Alpha, SGI (client), NetBSD, OpenBSD, Mac OS X (client), and Win32.
+
+   Bacula has been my only backup tool for over seven years backing up 8
+   machines nightly (6 Linux boxes running SuSE, previously
+   Red Hat and Fedora, a WinXP machine, and a WinNT machine).
+
+\label{stable}
+\section{Is Bacula Stable?}
+\item [Is Bacula Stable? ]
+\index[general]{Is Bacula Stable? }
+   Yes, it is remarkably stable, but remember, there are still a lot of
+   unimplemented or partially implemented features.  With a program of this
+   size (150,000+ lines of C++ code not including the SQL programs) there
+   are bound to be bugs.  The current test environment (a twisted pair
+   local network and a HP DLT backup tape) is not exactly ideal, so
+   additional testing on other sites is necessary.  The File daemon has
+   never crashed -- running months at a time with no intervention.  The
+   Storage daemon is remarkably stable with most of the problems arising
+   during labeling or switching tapes.  Storage daemon crashes are rare
+   but running multiple drives and simultaneous jobs sometimes (rarely)
+   problems.
+   The Director, given the multitude of functions it fulfills is also
+   relatively stable.  In a production environment, it rarely if ever
+   crashes.  Of the three daemons, the Director is the most prone to having
+   problems.  Still, it frequently runs several months with no problems.
+
+   There are a number of reasons for this stability.  
+
+   \begin{enumerate}
+   \item  The program is constantly checking the chain of allocated
+      memory buffers to ensure that no overruns have occurred.  \\
+   \item All  memory leaks (orphaned buffers) are reported each time the
+      program  terminates.\\
+   \item Any signal (segmentation fault, ...) generates a 
+      traceback that is emailed to the developer.  This permits quick
+      resolution of bugs even if they only show up rarely in a production
+      system.\\
+   \item There is a reasonably comprehensive set of regression tests
+      that avoids re-creating the most common errors in new versions of
+      Bacula.
+   \end{enumerate}
+
+\label{AuthorizationErrors}
+\section{I'm Getting Authorization Errors. What is Going On? }
+\item [I'm Getting Authorization Errors. What is Going On? ]
+\index[general]{Authorization Errors}
+\index[general]{Concurrent Jobs}
+   For security reasons, Bacula requires that both  the File daemon and the
+   Storage daemon know the name  of the Director as well as its password. As a
+   consequence,  if you change the Director's name or password, you must  make
+   the corresponding change in the Storage daemon's and  in the File daemon's
+   configuration files.  
+
+   During the authorization process, the Storage daemon and File daemon
+   also require that the Director authenticates itself, so both ends
+   require the other to have the correct name and password.
+
+   If you have edited the conf files and modified any name or any password,
+   and you are getting authentication errors, then your best bet is to go
+   back to the original conf files generated by the Bacula installation
+   process.  Make only the absolutely necessary modifications to these
+   files -- e.g.  add the correct email address.  Then follow the
+   instructions in the \ilink{ Running Bacula}{TutorialChapter} chapter of
+   this manual.  You will run a backup to disk and a restore.  Only when
+   that works, should you begin customization of the conf files.
+
+   Another reason that you can get authentication errors is if you are
+   running Multiple Concurrent Jobs in the Director, but you have not set
+   them in the File daemon or the Storage daemon.  Once you reach their
+   limit, they will reject the connection producing authentication (or
+   connection) errors.
+
+   If you are having problems connecting to a Windows machine that
+   previously worked, you might try restarting the Bacula service since
+   Windows frequently encounters networking connection problems.
+
+   Some users report that authentication fails if there is not a proper
+   reverse DNS lookup entry for the machine.  This seems to be a
+   requirement of gethostbyname(), which is what Bacula uses to translate
+   names into IP addresses.  If you cannot add a reverse DNS entry, or you
+   don't know how to do so, you can avoid the problem by specifying an IP
+   address rather than a machine name in the appropriate Bacula conf file.
+
+   Here is a picture that indicates what names/passwords in which
+   files/Resources must match up:
+
+   \includegraphics{\idir Conf-Diagram.eps}  
+
+   In the left column, you will find the Director, Storage, and  Client
+   resources, with their names and passwords -- these  are all in {\bf
+   bacula-dir.conf}. The right column is where the corresponding values
+   should be found in the  Console, Storage daemon (SD), and File daemon (FD)
+   configuration  files.  
+
+   Another thing to check is to ensure that the Bacula component you are
+   trying to access has {\bf Maximum Concurrent Jobs} set large enough to
+   handle each of the Jobs and the Console that want to connect
+   simultaneously.  Once the maximum connections has been reached, each
+   Bacula component will reject all new connections.
+
+   Finally, make sure you have no {\bf hosts.allow} or {\bf hosts.deny}
+   file that is not permitting access to the site trying to connect.
+
+\label{AccessProblems}
+\section{Bacula Runs Fine but Cannot Access a Client on a Different Machine.
+   Why? }
+\item [Bacula Runs Fine but Cannot Access a Client on a Different Machine.
+   Why? ]
+\index[general]{Cannot Access a Client}
+   There are several reasons why Bacula could not contact a client  on a
+   different machine. They are:  
+
+\begin{itemize}
+\item It is a Windows Client, and the client died because of an  improper
+   configuration file. Check that the Bacula icon is in  the system tray and the
+   the menu items work. If the client has  died, the icon will disappear only
+   when you move the mouse over  the icon.  
+\item The Client address or port is incorrect or not resolved by  DNS. See if
+   you can ping the client machine using the same  address as in the Client
+   record.  
+\item You have a firewall, and it is blocking traffic on port  9102 between
+   the Director's machine and the Client's  machine (or on port 9103 between the
+   Client and the Storage daemon  machines).  
+\item Your password or names are not correct in both the Director and  the
+   Client machine. Try configuring everything identical to  how you run the
+   client on the same machine as the Director, but  just change the Address. If
+   that works, make the other changes  one step at a time until it works.  
+\item You may also be having problems between your File daemon and your
+   Storage daemon. The name you use in the Storage resource of your
+   Director's conf file must be known (resolvable) by the File daemon, 
+   because it is passed symbolically to the File daemon, which then
+   resolves it to get an IP address used to contact the Storage daemon.
+\item You may have a {\bf hosts.allow} or {\bf hosts.deny} file that is
+   not permitting access.
+\end{itemize}
+
+\label{startover}
+\section{My Catalog is Full of Test Runs, How Can I Start Over?}
+\item [My Catalog is Full of Test Runs, How Can I Start Over? ]
+  \index[general]{My Catalog is Full of Test Runs, How Can I Start Over? }
+  If you are using MySQL do the following:
+
+\footnotesize
+\begin{verbatim}
+   cd <bacula-source>/src/cats
+   ./drop_mysql_tables
+   ./make_mysql_tables
+\end{verbatim}
+\normalsize
+
+If you are using SQLite, do the following:
+
+\footnotesize
+\begin{verbatim}
+   Delete bacula.db from your working directory.
+   cd <bacula-source>/src/cats
+   ./drop_sqlite_tables
+   ./make_sqlite_tables
+\end{verbatim}
+\normalsize
+
+Then write an EOF on each tape you used with {\bf Bacula} using: 
+
+\footnotesize
+\begin{verbatim}
+mt -f /dev/st0 rewind
+mt -f /dev/st0 weof
+\end{verbatim}
+\normalsize
+
+where you need to adjust the device name for your system.  
+
+\label{restorehang}
+\section{I Run a Restore Job and Bacula Hangs. What do I do?}
+\item [I Run a Restore Job and Bacula Hangs. What do I do?]
+\index[general]{I Run a Restore Job and Bacula Hangs. What do I do? }
+   On Bacula version 1.25 and prior, it expects you to have the correct
+   tape mounted prior to a restore.  On Bacula version 1.26 and higher, it
+   will ask you for the tape, and if the wrong one is mounted, it will
+   inform you.
+
+   If you have previously done an {\bf unmount} command, all Storage daemon
+   sessions (jobs) will be completely blocked from using the drive
+   unmounted, so be sure to do a {\bf mount} after your unmount.  If in
+   doubt, do a second {\bf mount}, it won't cause any harm.
+
+\label{windowstart}
+\section{I Cannot Get My Windows Client to Start Automatically? }
+\item [I Cannot Get My Windows Client to Start Automatically? ]
+\index[general]{Windows Auto Start}
+   You are probably having one of two problems: either the Client is dying
+   due to an incorrect configuration file, or you didn't do the
+   Installation commands necessary to install it as a Windows Service.
+
+   For the first problem, see the next FAQ question.  For the second
+   problem, please review the \ilink{ Windows Installation
+   instructions}{Win32Chapter} in this manual.
+
+\label{windowsdie}
+\section{My Windows Client Immediately Dies When I Start It}
+\item [My Windows Client Immediately Dies When I Start It]
+\index[general]{Windows Client Dies}
+The most common problem is either that the configuration file is not where
+it expects it to be, or that there is an error in the configuration file.
+You must have the configuration file in {\bf
+c:\textbackslash{}bacula\textbackslash{}bin\textbackslash{}bacula-fd.conf}.
+
+To {\bf see} what is going on when the File daemon starts  on Windows, do the
+following:  
+
+\footnotesize
+\begin{verbatim}
+    Start a DOS shell Window.
+    cd c:\bacula\bin
+    bacula-fd -d100 -c c:\bacula\bin\bacula-fd.conf
+    
+\end{verbatim}
+\normalsize
+
+This will cause the FD to write a file {\bf bacula.trace}  in the current
+directory, which you can examine and thereby determine  the problem.  
+
+\label{scroll}
+\item [When I Start the Console, the Error Messages Fly By. How can I see
+   them? ]
+\index[general]{Error Messages}
+   Either use a shell window with a scroll bar, or use the gnome-console.
+   In any case, you probably should be logging all output to a file, and
+   then you can simply view the file using an editor or the {\bf less}
+   program.  To log all output, I have the following in my Director's
+   Message resource definition:
+
+\footnotesize
+\begin{verbatim}
+    append = "/home/kern/bacula/bin/log" = all, !skipped
+    
+\end{verbatim}
+\normalsize
+
+Obviously you will want to change the filename to be appropriate  for your
+system.  
+
+\label{nobackup}
+\section{My backups are not working on my Windows 
+   Client. What should I do?}
+\item [I didn't realize that the backups were not working on my Windows 
+   Client. What should I do? ]
+\index[general]{Backups Failing}
+You should be sending yourself an email message for each job. This will  avoid
+the possibility of not knowing about a failed backup. To do so  put something
+like:  
+
+\footnotesize
+\begin{verbatim}
+  Mail = yourname@yourdomain = all, !skipped
+  
+\end{verbatim}
+\normalsize
+
+in your Director's message resource.  You should then receive one email for
+each Job that ran.  When you are comfortable with what is going on (it took
+me 9 months), you might change that to:
+
+\footnotesize
+\begin{verbatim}
+   MailOnError = yourname@yourdomain = all, !skipped
+   
+\end{verbatim}
+\normalsize
+
+then you only get email messages when a Job errors as is the case  for your
+Windows machine.  
+
+You should also be logging the Director's messages, please see the  previous
+FAQ for how to do so.  
+
+\label{sched}
+\section{All my Jobs are scheduled for the same time. Will this cause
+   problems?}
+\item [All my Jobs are scheduled for the same time. Will this cause
+   problems? ]
+\index[general]{Schedule problems}
+   No, not at all.  Bacula will schedule all the Jobs at the same time, but
+   will run them one after another unless you have increased the number of
+   simultaneous jobs in the configuration files for the Director, the File
+   daemon, and the Storage daemon.  The appropriate configuration record is
+   {\bf Maximum Concurrent Jobs = nn}.  At the current time, we recommend
+   that you leave this set to {\bf 1} for the Director.
+
+\label{disk}
+\section{Can Bacula Backup My System To Files instead of Tape?}
+\item [Can Bacula Backup My System To Files instead of Tape? ]
+\index[general]{Backup to Disk}
+   Yes, in principle, Bacula can backup to any storage medium as long as
+   you have correctly defined that medium in the Storage daemon's Device
+   resource.  For an example of how to backup to files, please see the
+   \ilink{Pruning Example}{PruningExample} in the Recycling chapter of this
+   manual.  Also, there is a whole chapter devoted to \ilink{Basic Volume
+   Management}{DiskChapter}.  This chapter was originally written to
+   explain how to write to disk, but was expanded to include volume
+   management.  It is, however, still quite a good chapter to read.
+
+\label{testbackup}
+\section{Can I use a dummy device to test the backup?}
+   Yes, to have a {\sl Virtual} device which just consumes data, you can use a 
+   FIFO device (see \ilink{Stored configuration}{SetupFifo}).
+   It's useful to test a backup.
+\footnotesize
+\begin{verbatim}
+Device {
+  Name = NULL
+  Media Type = NULL
+  Device Type = Fifo
+  Archive Device = /dev/null
+  LabelMedia = yes
+  Random Access = no
+  AutomaticMount = no
+  RemovableMedia = no
+  MaximumOpenWait = 60
+  AlwaysOpen = no
+}
+\end{verbatim}
+\normalsize
+
+\label{bigfiles}
+\section{Can Bacula Backup and Restore Files Bigger than 2 Gigabytes?}
+\item [Can Bacula Backup and Restore Files Bigger than 2 Gigabytes?]
+\index[general]{Large file support}
+If your operating system permits it, and you are running Bacula version
+1.26 or later, the answer is yes.  To the best of our knowledge all client
+system supported by Bacula can handle files bigger 2 Gigabytes.
+
+\label{cancel}
+\section{I want to stop a job.}
+%% Is there  a better way than "./bacula stop" to stop it?}
+\item [I Started A Job then Decided I Really Did Not Want to Run It. Is
+   there  a better way than {\bf ./bacula stop} to stop it?]
+\index[general]{Cancelling jobs} 
+   Yes, you normally should use the Console command {\bf cancel} to cancel
+   a Job that is either scheduled or running.  If the Job is scheduled, it
+   will be marked for cancellation and will be canceled when it is
+   scheduled to start.  If it is running, it will normally terminate after
+   a few minutes.  If the Job is waiting on a tape mount, you may need to
+   do a {\bf mount} command before it will be canceled.
+
+\label{trademark}
+\section{Why have You Trademarked the Name Bacula?}
+\item [Why have You Trademarked the Name
+   Bacula\raisebox{.6ex}{{\footnotesize \textsuperscript{\textregistered}}}?]
+\index[general]{Bacula Trademark}
+We have trademarked the name Bacula to ensure that all media  written by any
+program named Bacula will always be compatible. Anyone  may use the name
+Bacula, even in a derivative product as long as it  remains totally compatible
+in all respects with the program defined  here.
+
+\label{docversion}
+\section{Why is the Online Document for Version 1.39 but the Released Version is 1.38?}
+\item [Why is the Online Document for Version 1.39 of Bacula when the
+   Current Version is 1.38?]
+\index[general]{Multiple manuals}
+As Bacula is being developed, the document is also being enhanced, more
+often than not it has clarifications of existing features that can be very
+useful to our users, so we publish the very latest document.  Fortunately
+it is rare that there are confusions with new features.
+
+If you want to read a document that pertains only to a specific  version,
+please use the one distributed in the source code.  The web site also has 
+online versions of both the released manual and the current development
+manual.
+
+\label{sure}
+\section{Does Bacula really save and restore all files?}
+\item [How Can I Be Sure that Bacula Really Saves and Restores All Files? ]
+\index[general]{Checking Restores}
+   It is really quite simple, but took me a while to figure
+   out how to "prove" it.  First make a Bacula Rescue disk, see the
+   \ilink{Disaster Recovery Using Bacula}{RescueChapter} chapter
+   of this manual.
+   Second, you run a full backup of all your files on all partitions.
+   Third, you run an Verify InitCatalog Job on the same FileSet, which
+   effectively makes a record of all the files on your system.  Fourth, you
+   run a Verify Catalog job and assure yourself that nothing has changed
+   (well, between an InitCatalog and Catalog one doesn't expect anything).
+   Then do the unthinkable, write zeros on your MBR (master boot record)
+   wiping out your hard disk.  Now, restore your whole system using your
+   Bacula Rescue disk and the Full backup you made, and finally re-run the
+   Verify Catalog job.  You will see that with the exception of the
+   directory modification and access dates and the files changed during the
+   boot, your system is identical to what it was before you wiped your hard
+   disk.
+   Alternatively you could do the wiping and restoring to another computer
+   of the same type.
+
+\label{upgrade}
+\section{I want an Incremental but Bacula runs it as a Full backup. Why?}
+\item [I did a Full backup last week, but now in running an Incremental,
+   Bacula  says it did not find a FULL backup, so it did a FULL backup. Why?]
+\index[general]{FULL backup not found}
+   Before doing an Incremental or a Differential
+   backup, Bacula checks to see if there was a prior Full backup of the
+   same Job that terminated successfully.  If so, it uses the date that
+   full backup started as the time for comparing if files have changed.  If
+   Bacula does not find a successful full backup, it proceeds to do one.
+   Perhaps you canceled the full backup, or it terminated in error.  In
+   such cases, the full backup will not be successful.  You can check by
+   entering {\bf list jobs} and look to see if there is a prior Job with
+   the same Name that has Level F and JobStatus T (normal termination).
+
+   Another reason why Bacula may not find a suitable Full backup is that
+   every time you change the FileSet, Bacula will require a new Full
+   backup.  This is necessary to ensure that all files are properly backed
+   up in the case where you have added more files to the FileSet.
+   Beginning with version 1.31, the FileSets are also dated when they are
+   created, and this date is displayed with the name when you are listing
+   or selecting a FileSet.  For more on backup levels see below.
+
+   See also {\bf Ignore FileSet Changes} in the
+   \ilink{FileSet Resource definition}{FileSetResource} in the Director
+   chapter of this document.
+
+\label{filenamelengths}
+\section{Do you really handle unlimited path lengths?}
+\item [How Can You Claim to Handle Unlimited Path and Filename Lengths
+   when  All Other Programs Have Fixed Limits?]
+\index[general]{Path and Filename Lengths} 
+   Most of those other programs have been around for a long time, in fact
+   since the beginning of Unix, which means that they were designed for
+   rather small fixed length path and filename lengths.  Over the years,
+   these restrictions have been relaxed allowing longer names.  Bacula on
+   the other hand was designed in 2000, and so from the start, Path and
+   Filenames have been kept in buffers that start at 256 bytes in length,
+   but can grow as needed to handle any length.  Most of the work is
+   carried out by lower level routines making the coding rather easy.
+
+   Note that due to limitations Win32 path and filenames cannot exceed
+   260 characters. By using Win32 Unicode functions, we will remove this
+   restriction in later versions of Bacula.
+
+\label{unique}
+\section{What Is the Really Unique Feature of Bacula?}
+\item [What Is the Really Unique Feature of Bacula?]
+\index[general]{Unique Feature of Bacula} 
+   Well, it is hard to come up with unique features when backup programs
+   for Unix machines have been around since the 1960s.  That said, I
+   believe that Bacula is the first and only program to use a standard SQL
+   interface to catalog its database.  Although this adds a bit of
+   complexity and possibly overhead, it provides an amazingly rich set of
+   features that are easy to program and enhance.  The current code has
+   barely scratched the surface in this regard (version 1.38).
+
+   The second feature, which gives a lot of power and flexibility to Bacula
+   is the Bootstrap record definition.
+
+   The third unique feature, which is currently (1.30) unimplemented, and
+   thus can be called vaporware :-), is Base level saves.  When
+   implemented, this will enormously reduce tape usage.
+
+\label{sequence}
+\section{How can I force one job to run after another?}
+\item [If I Run Multiple Simultaneous Jobs, How Can I Force One
+   Particular  Job to Run After Another Job? ]
+\index[general]{Multiple Simultaneous Jobs}
+Yes, you can set Priorities on your jobs so that they  run in the order you
+specify. Please see:  
+\ilink{the Priority record}{Priority} in the  Job resource.
+
+\label{nomail}
+\section{I Am Not Getting Email Notification, What Can I Do? }
+\item [I Am Not Getting Email Notification, What Can I Do? ]
+\index[general]{No Email Notification}
+   The most common problem is that you have not specified a fully qualified
+   email address and your bsmtp server is rejecting the mail.  The next
+   most common problem is that your bsmtp server doesn't like the syntax on
+   the From part of the message.  For more details on this and other
+   problems, please see the \ilink{ Getting Email Notification to
+   Work}{email} section of the Tips chapter of this manual.  The section
+   \ilink{ Getting Notified of Job Completion}{notification} of the Tips
+   chapter may also be useful.  For more information on the {\bf bsmtp}
+   mail program, please see \ilink{bsmtp in the Volume Utility Tools
+   chapter}{bsmtp} of this manual.
+
+\label{periods}
+\section{My retention periods don't work}
+\item [I Change Recycling, Retention Periods, or File Sizes in my Pool
+   Resource  and they Still Don't Work.]
+\index[general]{Recycling}
+\index[general]{Retention Periods}
+\index[general]{Pool changes}
+  The different variables associated with a Pool are defined in the  Pool
+  Resource, but are actually read by Bacula from the Catalog database.  On
+  Bacula versions prior to 1.30, after changing your Pool Resource,  you must
+  manually update the corresponding values in the Catalog by  using the {\bf
+  update pool} command in the Console program. In Bacula  version 1.30, Bacula
+  does this for you automatically every time it  starts.  
+  
+  When Bacula creates a Media record (Volume), it uses many default  values from
+  the Pool record. If you subsequently change the Pool  record, the new values
+  will be used as a default for the next Volume  that is created, but if you
+  want the new values to apply to existing  Volumes, you must manually update
+  the Volume Catalog entry using  the {\bf update volume} command in the Console
+  program. 
+
+\label{CompressionNotWorking}
+\section{Why aren't my files compressed?}
+\item [I Have Configured Compression On, But None of My Files Are
+   Compressed.  Why?]
+\index[general]{Compression}
+   There are two kinds of compression. One is tape compression. This  is done by
+   the tape drive hardware, and you either enable or disable  it with system
+   tools such as {\bf mt}. This compression works  independently of Bacula,  
+   and when it is enabled, you should not use the Bacula software 
+   compression.
+   
+   Bacula also has software compression code in the File daemons, which you
+   normally need to enable only when backing up to file Volumes.  There are
+   two conditions necessary to enable the Bacula software compression.
+
+\begin{enumerate}
+\item You must have the zip development libraries loaded on your system
+   when building Bacula and Bacula must find this library, normally {\bf
+   /usr/lib/libz.a}.  On Red Hat systems, this library is provided by the
+   {\bf zlib-devel} rpm.
+
+   If the library is found by Bacula during the {\bf ./configure} it will
+   be mentioned in the {\bf config.out} line by:
+
+\footnotesize
+\begin{verbatim}
+    ZLIB support:  yes
+          
+\end{verbatim}
+\normalsize
+
+\item You must add the {\bf compression=gzip} option on your  Include
+   statement in the Director's configuration file.  
+\end{enumerate}
+
+\label{NewTape}
+\item [Bacula is Asking for a New Tape After 2 GB of Data but My Tape
+   holds 33 GB. Why?]
+\index[general]{Tape capacity}
+There are several reasons why Bacula will request a new tape.  
+
+\begin{itemize}
+\item There is an I/O error on the tape. Bacula prints an error message  and
+   requests a new tape. Bacula does not attempt to continue writing  after an
+   I/O error.  
+\item Bacula encounters and end of medium on the tape. This is not always 
+   distinguishable from an I/O error.  
+\item You have specifically set some size limitation on the tape. For  example
+   the {\bf Maximum Volume Bytes} or {\bf Maximum Volume Files}  in the
+   Director's Pool resource, or {\bf Maximum Volume Size} in  the Storage
+   daemon's Device resource.  
+\end{itemize}
+
+\label{LevelChanging}
+\section{Incremental backups are not working}
+\item [Bacula is Not Doing the Right Thing When I Request an Incremental
+   Backup. Why?]
+\index[general]{Incremental backups}
+   As explained in one of the previous questions, Bacula will automatically
+   upgrade an Incremental or Differential job to a Full backup if it cannot
+   find a prior Full backup or a suitable Full backup.  For the gory
+   details on how/when Bacula decides to upgrade levels please see the
+   \ilink{Level record}{Level} in the Director's configuration chapter of
+   this manual.
+   
+   If after reading the above mentioned section, you believe that Bacula  is not
+   correctly handling the level (Differential/Incremental),  please send us the
+   following information for analysis:  
+
+\begin{itemize}
+\item Your Director's configuration file.  
+\item The output from {\bf list jobs} covering the period where you  are
+   having the problem.  
+\item The Job report output from the prior Full save (not critical).  
+\item An {\bf llist jobid=nnn} where nnn is the JobId of the prior  Full save.
+\item The Job report output from the save that is doing the  wrong thing (not
+   critical).  
+\item An {\bf llist jobid=nnn} where nnn is the JobId of the job  that was not
+   correct.  
+\item An explanation of what job went wrong and why you think it did.  
+   \end{itemize}
+
+The above information can allow us to analyze what happened, without it, 
+there is not much we can do.  
+
+\label{WaitForever}
+\section{I am waiting forever for a backup of an offsite machine}
+\item [I am Backing Up an Offsite Machine with an Unreliable Connection.
+   The  Director Waits Forever for the Client to Contact the SD. What Can  I
+   Do?]
+\index[general]{Backing Up Offsite Machines}
+   Bacula was written on the assumption that it will have a good TCP/IP
+   connection between all the daemons.  As a consequence, the current
+   Bacula doesn't deal with faulty connections very well.  This situation
+   is slowly being corrected over time.
+   
+   There are several things you can do to improve the situation.  
+
+\begin{itemize}
+\item Upgrade to version 1.32 and use the new SDConnectTimeout record.  For
+   example, set:  
+
+\footnotesize
+\begin{verbatim}
+          SD Connect Timeout = 5 min
+          
+\end{verbatim}
+\normalsize
+
+in the FileDaemon resource.  
+\item Run these kinds of jobs after all other jobs.  
+   \end{itemize}
+
+\label{sshHanging}
+\section{SSH hangs forever after starting Bacula}
+\item [When I ssh into a machine and start Bacula then attempt to exit, 
+   ssh hangs forever.]
+\index[general]{ssh hangs}
+   This happens because Bacula leaves stdin, stdout, and stderr open for
+   debug purposes.  To avoid it, the simplest thing to do is to redirect
+   the output of those files to {\bf /dev/null} or another file in your
+   startup script (the Red Hat autostart scripts do this automatically).
+   For example, you start the Director with:
+   
+\footnotesize
+\begin{verbatim}
+    bacula-dir -c bacula-dir.conf ... >/dev/null 0>\&1 2>\&1
+    
+\end{verbatim}
+\normalsize
+
+and likewise for the other daemons.  
+
+\label{RetentionPeriods}
+\section{I'm confused by retention periods}
+\item [I'm confused by the different Retention periods: File Retention, 
+   Job Retention, Volume Retention. Why are there so many?]
+\index[general]{Retention Periods}
+   Yes, this certainly can be confusing.  The basic reason for so many is
+   to allow flexibility.  The File records take quite a lot of space in the
+   catalog, so they are typically records you want to remove rather
+   quickly.  The Job records, take very little space, and they can be
+   useful even without the File records to see what Jobs actually ran and
+   when.  One must understand that if the File records are removed from the
+   catalog, you cannot use the {\bf restore} command to restore an
+   individual file since Bacula no longer knows where it is.  However, as
+   long as the Volume Retention period has not expired, the data will still
+   be on the tape, and can be recovered from the tape.
+   
+   For example, I keep a 30 day retention period for my Files to keep my
+   catalog from getting too big, but I keep my tapes for a minimum of one
+   year, just in case.
+
+\label{MaxVolumeSize}
+\section{MaxVolumeSize is ignored}
+\item [Why Does Bacula Ignore the MaxVolumeSize Set in my Pool?]
+\index[general]{MaxVolumeSize}
+   The MaxVolumeSize that Bacula uses comes from the Media record, so most
+   likely you changed your Pool, which is used as the default for creating
+   Media records, {\bf after} you created your Volume.  Check what is in
+   the Media record by doing:
+
+\footnotesize
+\begin{verbatim}
+llist Volume=xxx
+\end{verbatim}
+\normalsize
+
+If it doesn't have the right value, you can use: 
+
+\footnotesize
+\begin{verbatim}
+update Volume=xxx
+\end{verbatim}
+\normalsize
+
+to change it.  
+
+\label{ConnectionRefused}
+\section{I get a Connection refused when connecting to my Client}
+\item [In connecting to my Client, I get "ERR:Connection Refused.  Packet
+   Size too big from File daemon:192.168.1.4:9102" Why?]
+\index[general]{ERR:Connection Refused}
+   This is typically a communications error resulting  from one of the
+   following:
+
+\begin{itemize}
+\item Old versions of Bacula, usually a Win32 client, where two  threads were
+   using the same I/O packet. Fixed in more recent  versions. Please upgrade.  
+\item Some other program such as an HP Printer using the same  port (9102 in
+   this case).  
+\end{itemize}
+
+If it is neither of the above, please submit a bug report at  
+\elink{bugs.bacula.org}{http://bugs.bacula.org}.  
+
+Another solution might be to run the daemon with the debug  option by:  
+
+\footnotesize
+\begin{verbatim}
+    Start a DOS shell Window.
+    cd c:\bacula\bin
+    bacula-fd -d100 -c c:\bacula\bin\bacula-fd.conf
+    
+\end{verbatim}
+\normalsize
+
+This will cause the FD to write a file {\bf bacula.trace}  in the current
+directory, which you can examine to determine  the problem.  
+
+\section{Long running jobs die with Pipe Error}
+\item [During long running jobs my File daemon dies with Pipe Error, or
+       some other communications error. Why?]
+\index[general]{Communications Errors}
+\index[general]{Pipe Errors}
+\index[general]{slow}
+\index[general]{Backups!slow}
+   There are a number of reasons why a connection might break.
+   Most often, it is a router between your two computers that times out
+   inactive lines (not respecting the keepalive feature that Bacula uses).
+   In that case, you can use the {\bf Heartbeat Interval} directive in
+   both the Storage daemon and the File daemon. 
+
+   In at least one case, the problem has been a bad driver for a Win32
+   NVidia NForce 3 ethernet card with driver (4.4.2 17/05/2004). 
+   In this case, a good driver is (4.8.2.0 06/04/2005).  Moral of
+   the story, make sure you have the latest ethernet drivers
+   loaded, or use the following workaround as suggested by Thomas
+   Simmons for Win32 machines:
+     
+   Browse to:
+   Start \gt{} Control Panel \gt{} Network Connections
+
+   Right click the connection for the nvidia adapter and select properties. 
+   Under the General tab, click "Configure...". Under the Advanced tab set 
+   "Checksum Offload" to disabled and click OK to save the change.  
+
+   Lack of communications, or communications that get interrupted can
+   also be caused by Linux firewalls where you have a rule that throttles
+   connections or traffic.  For example, if you have:
+
+\footnotesize
+\begin{verbatim}
+iptables -t filter -A INPUT -m limit --limit 3/second --limit-burst 3 -j DROP
+\end{verbatim}
+\normalsize
+
+   you will want to add the following rules {\bf before} the above rule:
+\footnotesize
+\begin{verbatim}
+iptables -t filter -A INPUT --dport 9101 -j ACCEPT
+iptables -t filter -A INPUT --dport 9102 -j ACCEPT
+iptables -t filter -A INPUT --dport 9103 -j ACCEPT
+\end{verbatim}
+\normalsize
+   This will ensure that any Bacula traffic will not get terminated because
+   of high usage rates.
+   
+\section{How do I tell the Job which Volume to use?}
+\item[I can't figure out how to tell the job which volume to use]
+   \index[general]{What tape to mount}
+  This is an interesting statement. I now see that a number of people new to
+  Bacula have the same problem as you, probably from using programs like tar.
+
+  In fact, you do not tell Bacula what tapes to use.  It is the inverse.  Bacula
+  tells you want tapes it wants.  You put tapes at its disposition and it
+  chooses.  
+
+  Now, if you *really* want to be tricky and try to tell Bacula what to do, it
+  will be reasonable if for example you mount a valid tape that it can use on a
+  drive, it will most likely go ahead and use it.  It also has a documented
+  algorithm for choosing tapes -- but you are asking for problems ...
+
+  So, the trick is to invert your concept of things and put Bacula in charge of
+  handling the tapes.  Once you do that, you will be fine.  If you want to
+  anticipate what it is going to do, you can generally figure it out correctly
+  and  get what you want.  
+
+  If you start with the idea that you are going to force or tell Bacula to use
+  particular tapes or you insist on trying to run in that kind of mode, you will
+  probably not be too happy.
+
+  I don't want to worry about what tape has what data. That is what Bacula is
+  designed for.
+
+  If you have an application where you *really* need to remove a tape each day
+  and  insert a new one, it can be done the directives exist to accomplish that.
+  In such a case, one little "trick" to knowing what tape Bacula will want at
+  2am  while you are asleep is to run a tiny job at 4pm while you are still at
+  work  that backs up say one directory, or even one file. You will quickly find
+  out  what tape it wants, and you can mount it before you go home ... 
+
+\label{Password generation}
+\section{Password generation}
+\item [How do I generate a password?]
+\index[general]{MaxVolumeSize}
+
+   Each daemon needs a password.  This password occurs in the configuration
+   file for that daemon and in the bacula-dir.conf file. These passwords are
+   plain text.  There is no special generation procedure.  Most people just
+   use random text.
+
+   Passwords are never sent over the wire in plain text.  They are always
+   encrypted.
+
+   Security surrounding these passwords is best left security to your
+   operating system.  Passwords are not encrypted within Bacula
+   configuration files.
+
+\end{description}
+        
diff --git a/docs/manuals/fr/problems/faq.tex b/docs/manuals/fr/problems/faq.tex
deleted file mode 100644 (file)
index 2fff751..0000000
+++ /dev/null
@@ -1,876 +0,0 @@
-%%
-%%
-% TODO: maybe merge all this FAQ in with the appropriate section?
-% TODO: and use detailed indexing to help reader
-
-\chapter{Bacula Frequently Asked Questions}
-\label{FaqChapter}
-\index[general]{Questions!Bacula Frequently Asked }
-\index[general]{Bacula Frequently Asked Questions }
-
-These are questions that have been submitted over time by the
-Bacula users. The following
-FAQ is very useful, but it is not always up to date 
-with newer information, so after reading it, if you don't find what you 
-want, you might try the Bacula wiki maintained by Frank Sweetser, which
-contains more than just a FAQ:
-\elink{http://wiki.bacula.org}{http://wiki.bacula.org}
-or go directly to the FAQ at: 
-\elink{http://wiki.bacula.org/doku.php?id=faq}
-{http://wiki.bacula.org/doku.php?id=faq}.
-
-Please also see
-\ilink{the bugs section}{BugsChapter} of this document for a list
-of known bugs and solutions.
-
-\begin{description}
-\label{what}
-\section{What is Bacula?}
-\item [What is {\bf Bacula}? ]
-   \index[general]{What is Bacula? }
-   {\bf Bacula} is a network backup and restore program. 
-
-\section{Does Bacula support Windows?}
-\item [Does Bacula support Windows?]
-\index[general]{Does Bacula support Windows? }
-   Yes, Bacula compiles and runs on Windows machines (Win98, WinMe, WinXP,
-   WinNT, Win2003, and Win2000).  We provide a binary version of the Client
-   (bacula-fd), but have not tested the Director nor the Storage daemon.
-   Note, Win95 is no longer supported because it doesn't have the
-   GetFileAttributesExA API call.
-
-\label{lang}
-\section{What language is Bacula written in?}
-\item [What language is Bacula written in?]
-\index[general]{What language is Bacula written in? }
-   It is written in C++, but it is mostly C  code using only a limited set of
-   the C++ extensions  over C.  Thus Bacula is completely  compiled using the
-   C++ compiler. There are several modules, including the Win32 interface, that
-   are written using the  object oriented C++ features. Over time, we are slowly
-   adding a larger  subset of C++.  
-
-\label{run}
-\section{On what machines does Bacula run?}
-\item [On what machines does Bacula run? ]
-   \index[general]{On what machines does Bacula run? }
-   {\bf Bacula} builds and executes on Red Hat Linux (versions RH7.1-RHEL
-   4.0, Fedora, SuSE, Gentoo, Debian, Mandriva, ...), FreeBSD, Solaris,
-   Alpha, SGI (client), NetBSD, OpenBSD, Mac OS X (client), and Win32.
-
-   Bacula has been my only backup tool for over seven years backing up 8
-   machines nightly (6 Linux boxes running SuSE, previously
-   Red Hat and Fedora, a WinXP machine, and a WinNT machine).
-
-\label{stable}
-\section{Is Bacula Stable?}
-\item [Is Bacula Stable? ]
-\index[general]{Is Bacula Stable? }
-   Yes, it is remarkably stable, but remember, there are still a lot of
-   unimplemented or partially implemented features.  With a program of this
-   size (150,000+ lines of C++ code not including the SQL programs) there
-   are bound to be bugs.  The current test environment (a twisted pair
-   local network and a HP DLT backup tape) is not exactly ideal, so
-   additional testing on other sites is necessary.  The File daemon has
-   never crashed -- running months at a time with no intervention.  The
-   Storage daemon is remarkably stable with most of the problems arising
-   during labeling or switching tapes.  Storage daemon crashes are rare
-   but running multiple drives and simultaneous jobs sometimes (rarely)
-   problems.
-   The Director, given the multitude of functions it fulfills is also
-   relatively stable.  In a production environment, it rarely if ever
-   crashes.  Of the three daemons, the Director is the most prone to having
-   problems.  Still, it frequently runs several months with no problems.
-
-   There are a number of reasons for this stability.  
-
-   \begin{enumerate}
-   \item  The program is constantly checking the chain of allocated
-      memory buffers to ensure that no overruns have occurred.  \\
-   \item All  memory leaks (orphaned buffers) are reported each time the
-      program  terminates.\\
-   \item Any signal (segmentation fault, ...) generates a 
-      traceback that is emailed to the developer.  This permits quick
-      resolution of bugs even if they only show up rarely in a production
-      system.\\
-   \item There is a reasonably comprehensive set of regression tests
-      that avoids re-creating the most common errors in new versions of
-      Bacula.
-   \end{enumerate}
-
-\label{AuthorizationErrors}
-\section{I'm Getting Authorization Errors. What is Going On? }
-\item [I'm Getting Authorization Errors. What is Going On? ]
-\index[general]{Authorization Errors}
-\index[general]{Concurrent Jobs}
-   For security reasons, Bacula requires that both  the File daemon and the
-   Storage daemon know the name  of the Director as well as its password. As a
-   consequence,  if you change the Director's name or password, you must  make
-   the corresponding change in the Storage daemon's and  in the File daemon's
-   configuration files.  
-
-   During the authorization process, the Storage daemon and File daemon
-   also require that the Director authenticates itself, so both ends
-   require the other to have the correct name and password.
-
-   If you have edited the conf files and modified any name or any password,
-   and you are getting authentication errors, then your best bet is to go
-   back to the original conf files generated by the Bacula installation
-   process.  Make only the absolutely necessary modifications to these
-   files -- e.g.  add the correct email address.  Then follow the
-   instructions in the \ilink{ Running Bacula}{TutorialChapter} chapter of
-   this manual.  You will run a backup to disk and a restore.  Only when
-   that works, should you begin customization of the conf files.
-
-   Another reason that you can get authentication errors is if you are
-   running Multiple Concurrent Jobs in the Director, but you have not set
-   them in the File daemon or the Storage daemon.  Once you reach their
-   limit, they will reject the connection producing authentication (or
-   connection) errors.
-
-   If you are having problems connecting to a Windows machine that
-   previously worked, you might try restarting the Bacula service since
-   Windows frequently encounters networking connection problems.
-
-   Some users report that authentication fails if there is not a proper
-   reverse DNS lookup entry for the machine.  This seems to be a
-   requirement of gethostbyname(), which is what Bacula uses to translate
-   names into IP addresses.  If you cannot add a reverse DNS entry, or you
-   don't know how to do so, you can avoid the problem by specifying an IP
-   address rather than a machine name in the appropriate Bacula conf file.
-
-   Here is a picture that indicates what names/passwords in which
-   files/Resources must match up:
-
-   \includegraphics{\idir Conf-Diagram.eps}  
-
-   In the left column, you will find the Director, Storage, and  Client
-   resources, with their names and passwords -- these  are all in {\bf
-   bacula-dir.conf}. The right column is where the corresponding values
-   should be found in the  Console, Storage daemon (SD), and File daemon (FD)
-   configuration  files.  
-
-   Another thing to check is to ensure that the Bacula component you are
-   trying to access has {\bf Maximum Concurrent Jobs} set large enough to
-   handle each of the Jobs and the Console that want to connect
-   simultaneously.  Once the maximum connections has been reached, each
-   Bacula component will reject all new connections.
-
-   Finally, make sure you have no {\bf hosts.allow} or {\bf hosts.deny}
-   file that is not permitting access to the site trying to connect.
-
-\label{AccessProblems}
-\section{Bacula Runs Fine but Cannot Access a Client on a Different Machine.
-   Why? }
-\item [Bacula Runs Fine but Cannot Access a Client on a Different Machine.
-   Why? ]
-\index[general]{Cannot Access a Client}
-   There are several reasons why Bacula could not contact a client  on a
-   different machine. They are:  
-
-\begin{itemize}
-\item It is a Windows Client, and the client died because of an  improper
-   configuration file. Check that the Bacula icon is in  the system tray and the
-   the menu items work. If the client has  died, the icon will disappear only
-   when you move the mouse over  the icon.  
-\item The Client address or port is incorrect or not resolved by  DNS. See if
-   you can ping the client machine using the same  address as in the Client
-   record.  
-\item You have a firewall, and it is blocking traffic on port  9102 between
-   the Director's machine and the Client's  machine (or on port 9103 between the
-   Client and the Storage daemon  machines).  
-\item Your password or names are not correct in both the Director and  the
-   Client machine. Try configuring everything identical to  how you run the
-   client on the same machine as the Director, but  just change the Address. If
-   that works, make the other changes  one step at a time until it works.  
-\item You may also be having problems between your File daemon and your
-   Storage daemon. The name you use in the Storage resource of your
-   Director's conf file must be known (resolvable) by the File daemon, 
-   because it is passed symbolically to the File daemon, which then
-   resolves it to get an IP address used to contact the Storage daemon.
-\item You may have a {\bf hosts.allow} or {\bf hosts.deny} file that is
-   not permitting access.
-\end{itemize}
-
-\label{startover}
-\section{My Catalog is Full of Test Runs, How Can I Start Over?}
-\item [My Catalog is Full of Test Runs, How Can I Start Over? ]
-  \index[general]{My Catalog is Full of Test Runs, How Can I Start Over? }
-  If you are using MySQL do the following:
-
-\footnotesize
-\begin{verbatim}
-   cd <bacula-source>/src/cats
-   ./drop_mysql_tables
-   ./make_mysql_tables
-\end{verbatim}
-\normalsize
-
-If you are using SQLite, do the following:
-
-\footnotesize
-\begin{verbatim}
-   Delete bacula.db from your working directory.
-   cd <bacula-source>/src/cats
-   ./drop_sqlite_tables
-   ./make_sqlite_tables
-\end{verbatim}
-\normalsize
-
-Then write an EOF on each tape you used with {\bf Bacula} using: 
-
-\footnotesize
-\begin{verbatim}
-mt -f /dev/st0 rewind
-mt -f /dev/st0 weof
-\end{verbatim}
-\normalsize
-
-where you need to adjust the device name for your system.  
-
-\label{restorehang}
-\section{I Run a Restore Job and Bacula Hangs. What do I do?}
-\item [I Run a Restore Job and Bacula Hangs. What do I do?]
-\index[general]{I Run a Restore Job and Bacula Hangs. What do I do? }
-   On Bacula version 1.25 and prior, it expects you to have the correct
-   tape mounted prior to a restore.  On Bacula version 1.26 and higher, it
-   will ask you for the tape, and if the wrong one is mounted, it will
-   inform you.
-
-   If you have previously done an {\bf unmount} command, all Storage daemon
-   sessions (jobs) will be completely blocked from using the drive
-   unmounted, so be sure to do a {\bf mount} after your unmount.  If in
-   doubt, do a second {\bf mount}, it won't cause any harm.
-
-\label{windowstart}
-\section{I Cannot Get My Windows Client to Start Automatically? }
-\item [I Cannot Get My Windows Client to Start Automatically? ]
-\index[general]{Windows Auto Start}
-   You are probably having one of two problems: either the Client is dying
-   due to an incorrect configuration file, or you didn't do the
-   Installation commands necessary to install it as a Windows Service.
-
-   For the first problem, see the next FAQ question.  For the second
-   problem, please review the \ilink{ Windows Installation
-   instructions}{Win32Chapter} in this manual.
-
-\label{windowsdie}
-\section{My Windows Client Immediately Dies When I Start It}
-\item [My Windows Client Immediately Dies When I Start It]
-\index[general]{Windows Client Dies}
-The most common problem is either that the configuration file is not where
-it expects it to be, or that there is an error in the configuration file.
-You must have the configuration file in {\bf
-c:\textbackslash{}bacula\textbackslash{}bin\textbackslash{}bacula-fd.conf}.
-
-To {\bf see} what is going on when the File daemon starts  on Windows, do the
-following:  
-
-\footnotesize
-\begin{verbatim}
-    Start a DOS shell Window.
-    cd c:\bacula\bin
-    bacula-fd -d100 -c c:\bacula\bin\bacula-fd.conf
-    
-\end{verbatim}
-\normalsize
-
-This will cause the FD to write a file {\bf bacula.trace}  in the current
-directory, which you can examine and thereby determine  the problem.  
-
-\label{scroll}
-\item [When I Start the Console, the Error Messages Fly By. How can I see
-   them? ]
-\index[general]{Error Messages}
-   Either use a shell window with a scroll bar, or use the gnome-console.
-   In any case, you probably should be logging all output to a file, and
-   then you can simply view the file using an editor or the {\bf less}
-   program.  To log all output, I have the following in my Director's
-   Message resource definition:
-
-\footnotesize
-\begin{verbatim}
-    append = "/home/kern/bacula/bin/log" = all, !skipped
-    
-\end{verbatim}
-\normalsize
-
-Obviously you will want to change the filename to be appropriate  for your
-system.  
-
-\label{nobackup}
-\section{My backups are not working on my Windows 
-   Client. What should I do?}
-\item [I didn't realize that the backups were not working on my Windows 
-   Client. What should I do? ]
-\index[general]{Backups Failing}
-You should be sending yourself an email message for each job. This will  avoid
-the possibility of not knowing about a failed backup. To do so  put something
-like:  
-
-\footnotesize
-\begin{verbatim}
-  Mail = yourname@yourdomain = all, !skipped
-  
-\end{verbatim}
-\normalsize
-
-in your Director's message resource.  You should then receive one email for
-each Job that ran.  When you are comfortable with what is going on (it took
-me 9 months), you might change that to:
-
-\footnotesize
-\begin{verbatim}
-   MailOnError = yourname@yourdomain = all, !skipped
-   
-\end{verbatim}
-\normalsize
-
-then you only get email messages when a Job errors as is the case  for your
-Windows machine.  
-
-You should also be logging the Director's messages, please see the  previous
-FAQ for how to do so.  
-
-\label{sched}
-\section{All my Jobs are scheduled for the same time. Will this cause
-   problems?}
-\item [All my Jobs are scheduled for the same time. Will this cause
-   problems? ]
-\index[general]{Schedule problems}
-   No, not at all.  Bacula will schedule all the Jobs at the same time, but
-   will run them one after another unless you have increased the number of
-   simultaneous jobs in the configuration files for the Director, the File
-   daemon, and the Storage daemon.  The appropriate configuration record is
-   {\bf Maximum Concurrent Jobs = nn}.  At the current time, we recommend
-   that you leave this set to {\bf 1} for the Director.
-
-\label{disk}
-\section{Can Bacula Backup My System To Files instead of Tape?}
-\item [Can Bacula Backup My System To Files instead of Tape? ]
-\index[general]{Backup to Disk}
-   Yes, in principle, Bacula can backup to any storage medium as long as
-   you have correctly defined that medium in the Storage daemon's Device
-   resource.  For an example of how to backup to files, please see the
-   \ilink{Pruning Example}{PruningExample} in the Recycling chapter of this
-   manual.  Also, there is a whole chapter devoted to \ilink{Basic Volume
-   Management}{DiskChapter}.  This chapter was originally written to
-   explain how to write to disk, but was expanded to include volume
-   management.  It is, however, still quite a good chapter to read.
-
-\label{testbackup}
-\section{Can I use a dummy device to test the backup?}
-   Yes, to have a {\sl Virtual} device which just consumes data, you can use a 
-   FIFO device (see \ilink{Stored configuration}{SetupFifo}).
-   It's useful to test a backup.
-\footnotesize
-\begin{verbatim}
-Device {
-  Name = NULL
-  Media Type = NULL
-  Device Type = Fifo
-  Archive Device = /dev/null
-  LabelMedia = yes
-  Random Access = no
-  AutomaticMount = no
-  RemovableMedia = no
-  MaximumOpenWait = 60
-  AlwaysOpen = no
-}
-\end{verbatim}
-\normalsize
-
-\label{bigfiles}
-\section{Can Bacula Backup and Restore Files Bigger than 2 Gigabytes?}
-\item [Can Bacula Backup and Restore Files Bigger than 2 Gigabytes?]
-\index[general]{Large file support}
-If your operating system permits it, and you are running Bacula version
-1.26 or later, the answer is yes.  To the best of our knowledge all client
-system supported by Bacula can handle files bigger 2 Gigabytes.
-
-\label{cancel}
-\section{I want to stop a job.}
-%% Is there  a better way than "./bacula stop" to stop it?}
-\item [I Started A Job then Decided I Really Did Not Want to Run It. Is
-   there  a better way than {\bf ./bacula stop} to stop it?]
-\index[general]{Cancelling jobs} 
-   Yes, you normally should use the Console command {\bf cancel} to cancel
-   a Job that is either scheduled or running.  If the Job is scheduled, it
-   will be marked for cancellation and will be canceled when it is
-   scheduled to start.  If it is running, it will normally terminate after
-   a few minutes.  If the Job is waiting on a tape mount, you may need to
-   do a {\bf mount} command before it will be canceled.
-
-\label{trademark}
-\section{Why have You Trademarked the Name Bacula?}
-\item [Why have You Trademarked the Name
-   Bacula\raisebox{.6ex}{{\footnotesize \textsuperscript{\textregistered}}}?]
-\index[general]{Bacula Trademark}
-We have trademarked the name Bacula to ensure that all media  written by any
-program named Bacula will always be compatible. Anyone  may use the name
-Bacula, even in a derivative product as long as it  remains totally compatible
-in all respects with the program defined  here.
-
-\label{docversion}
-\section{Why is the Online Document for Version 1.39 but the Released Version is 1.38?}
-\item [Why is the Online Document for Version 1.39 of Bacula when the
-   Current Version is 1.38?]
-\index[general]{Multiple manuals}
-As Bacula is being developed, the document is also being enhanced, more
-often than not it has clarifications of existing features that can be very
-useful to our users, so we publish the very latest document.  Fortunately
-it is rare that there are confusions with new features.
-
-If you want to read a document that pertains only to a specific  version,
-please use the one distributed in the source code.  The web site also has 
-online versions of both the released manual and the current development
-manual.
-
-\label{sure}
-\section{Does Bacula really save and restore all files?}
-\item [How Can I Be Sure that Bacula Really Saves and Restores All Files? ]
-\index[general]{Checking Restores}
-   It is really quite simple, but took me a while to figure
-   out how to "prove" it.  First make a Bacula Rescue disk, see the
-   \ilink{Disaster Recovery Using Bacula}{RescueChapter} chapter
-   of this manual.
-   Second, you run a full backup of all your files on all partitions.
-   Third, you run an Verify InitCatalog Job on the same FileSet, which
-   effectively makes a record of all the files on your system.  Fourth, you
-   run a Verify Catalog job and assure yourself that nothing has changed
-   (well, between an InitCatalog and Catalog one doesn't expect anything).
-   Then do the unthinkable, write zeros on your MBR (master boot record)
-   wiping out your hard disk.  Now, restore your whole system using your
-   Bacula Rescue disk and the Full backup you made, and finally re-run the
-   Verify Catalog job.  You will see that with the exception of the
-   directory modification and access dates and the files changed during the
-   boot, your system is identical to what it was before you wiped your hard
-   disk.
-   Alternatively you could do the wiping and restoring to another computer
-   of the same type.
-
-\label{upgrade}
-\section{I want an Incremental but Bacula runs it as a Full backup. Why?}
-\item [I did a Full backup last week, but now in running an Incremental,
-   Bacula  says it did not find a FULL backup, so it did a FULL backup. Why?]
-\index[general]{FULL backup not found}
-   Before doing an Incremental or a Differential
-   backup, Bacula checks to see if there was a prior Full backup of the
-   same Job that terminated successfully.  If so, it uses the date that
-   full backup started as the time for comparing if files have changed.  If
-   Bacula does not find a successful full backup, it proceeds to do one.
-   Perhaps you canceled the full backup, or it terminated in error.  In
-   such cases, the full backup will not be successful.  You can check by
-   entering {\bf list jobs} and look to see if there is a prior Job with
-   the same Name that has Level F and JobStatus T (normal termination).
-
-   Another reason why Bacula may not find a suitable Full backup is that
-   every time you change the FileSet, Bacula will require a new Full
-   backup.  This is necessary to ensure that all files are properly backed
-   up in the case where you have added more files to the FileSet.
-   Beginning with version 1.31, the FileSets are also dated when they are
-   created, and this date is displayed with the name when you are listing
-   or selecting a FileSet.  For more on backup levels see below.
-
-   See also {\bf Ignore FileSet Changes} in the
-   \ilink{FileSet Resource definition}{FileSetResource} in the Director
-   chapter of this document.
-
-\label{filenamelengths}
-\section{Do you really handle unlimited path lengths?}
-\item [How Can You Claim to Handle Unlimited Path and Filename Lengths
-   when  All Other Programs Have Fixed Limits?]
-\index[general]{Path and Filename Lengths} 
-   Most of those other programs have been around for a long time, in fact
-   since the beginning of Unix, which means that they were designed for
-   rather small fixed length path and filename lengths.  Over the years,
-   these restrictions have been relaxed allowing longer names.  Bacula on
-   the other hand was designed in 2000, and so from the start, Path and
-   Filenames have been kept in buffers that start at 256 bytes in length,
-   but can grow as needed to handle any length.  Most of the work is
-   carried out by lower level routines making the coding rather easy.
-
-   Note that due to limitations Win32 path and filenames cannot exceed
-   260 characters. By using Win32 Unicode functions, we will remove this
-   restriction in later versions of Bacula.
-
-\label{unique}
-\section{What Is the Really Unique Feature of Bacula?}
-\item [What Is the Really Unique Feature of Bacula?]
-\index[general]{Unique Feature of Bacula} 
-   Well, it is hard to come up with unique features when backup programs
-   for Unix machines have been around since the 1960s.  That said, I
-   believe that Bacula is the first and only program to use a standard SQL
-   interface to catalog its database.  Although this adds a bit of
-   complexity and possibly overhead, it provides an amazingly rich set of
-   features that are easy to program and enhance.  The current code has
-   barely scratched the surface in this regard (version 1.38).
-
-   The second feature, which gives a lot of power and flexibility to Bacula
-   is the Bootstrap record definition.
-
-   The third unique feature, which is currently (1.30) unimplemented, and
-   thus can be called vaporware :-), is Base level saves.  When
-   implemented, this will enormously reduce tape usage.
-
-\label{sequence}
-\section{How can I force one job to run after another?}
-\item [If I Run Multiple Simultaneous Jobs, How Can I Force One
-   Particular  Job to Run After Another Job? ]
-\index[general]{Multiple Simultaneous Jobs}
-Yes, you can set Priorities on your jobs so that they  run in the order you
-specify. Please see:  
-\ilink{the Priority record}{Priority} in the  Job resource.
-
-\label{nomail}
-\section{I Am Not Getting Email Notification, What Can I Do? }
-\item [I Am Not Getting Email Notification, What Can I Do? ]
-\index[general]{No Email Notification}
-   The most common problem is that you have not specified a fully qualified
-   email address and your bsmtp server is rejecting the mail.  The next
-   most common problem is that your bsmtp server doesn't like the syntax on
-   the From part of the message.  For more details on this and other
-   problems, please see the \ilink{ Getting Email Notification to
-   Work}{email} section of the Tips chapter of this manual.  The section
-   \ilink{ Getting Notified of Job Completion}{notification} of the Tips
-   chapter may also be useful.  For more information on the {\bf bsmtp}
-   mail program, please see \ilink{bsmtp in the Volume Utility Tools
-   chapter}{bsmtp} of this manual.
-
-\label{periods}
-\section{My retention periods don't work}
-\item [I Change Recycling, Retention Periods, or File Sizes in my Pool
-   Resource  and they Still Don't Work.]
-\index[general]{Recycling}
-\index[general]{Retention Periods}
-\index[general]{Pool changes}
-  The different variables associated with a Pool are defined in the  Pool
-  Resource, but are actually read by Bacula from the Catalog database.  On
-  Bacula versions prior to 1.30, after changing your Pool Resource,  you must
-  manually update the corresponding values in the Catalog by  using the {\bf
-  update pool} command in the Console program. In Bacula  version 1.30, Bacula
-  does this for you automatically every time it  starts.  
-  
-  When Bacula creates a Media record (Volume), it uses many default  values from
-  the Pool record. If you subsequently change the Pool  record, the new values
-  will be used as a default for the next Volume  that is created, but if you
-  want the new values to apply to existing  Volumes, you must manually update
-  the Volume Catalog entry using  the {\bf update volume} command in the Console
-  program. 
-
-\label{CompressionNotWorking}
-\section{Why aren't my files compressed?}
-\item [I Have Configured Compression On, But None of My Files Are
-   Compressed.  Why?]
-\index[general]{Compression}
-   There are two kinds of compression. One is tape compression. This  is done by
-   the tape drive hardware, and you either enable or disable  it with system
-   tools such as {\bf mt}. This compression works  independently of Bacula,  
-   and when it is enabled, you should not use the Bacula software 
-   compression.
-   
-   Bacula also has software compression code in the File daemons, which you
-   normally need to enable only when backing up to file Volumes.  There are
-   two conditions necessary to enable the Bacula software compression.
-
-\begin{enumerate}
-\item You must have the zip development libraries loaded on your system
-   when building Bacula and Bacula must find this library, normally {\bf
-   /usr/lib/libz.a}.  On Red Hat systems, this library is provided by the
-   {\bf zlib-devel} rpm.
-
-   If the library is found by Bacula during the {\bf ./configure} it will
-   be mentioned in the {\bf config.out} line by:
-
-\footnotesize
-\begin{verbatim}
-    ZLIB support:  yes
-          
-\end{verbatim}
-\normalsize
-
-\item You must add the {\bf compression=gzip} option on your  Include
-   statement in the Director's configuration file.  
-\end{enumerate}
-
-\label{NewTape}
-\item [Bacula is Asking for a New Tape After 2 GB of Data but My Tape
-   holds 33 GB. Why?]
-\index[general]{Tape capacity}
-There are several reasons why Bacula will request a new tape.  
-
-\begin{itemize}
-\item There is an I/O error on the tape. Bacula prints an error message  and
-   requests a new tape. Bacula does not attempt to continue writing  after an
-   I/O error.  
-\item Bacula encounters and end of medium on the tape. This is not always 
-   distinguishable from an I/O error.  
-\item You have specifically set some size limitation on the tape. For  example
-   the {\bf Maximum Volume Bytes} or {\bf Maximum Volume Files}  in the
-   Director's Pool resource, or {\bf Maximum Volume Size} in  the Storage
-   daemon's Device resource.  
-\end{itemize}
-
-\label{LevelChanging}
-\section{Incremental backups are not working}
-\item [Bacula is Not Doing the Right Thing When I Request an Incremental
-   Backup. Why?]
-\index[general]{Incremental backups}
-   As explained in one of the previous questions, Bacula will automatically
-   upgrade an Incremental or Differential job to a Full backup if it cannot
-   find a prior Full backup or a suitable Full backup.  For the gory
-   details on how/when Bacula decides to upgrade levels please see the
-   \ilink{Level record}{Level} in the Director's configuration chapter of
-   this manual.
-   
-   If after reading the above mentioned section, you believe that Bacula  is not
-   correctly handling the level (Differential/Incremental),  please send us the
-   following information for analysis:  
-
-\begin{itemize}
-\item Your Director's configuration file.  
-\item The output from {\bf list jobs} covering the period where you  are
-   having the problem.  
-\item The Job report output from the prior Full save (not critical).  
-\item An {\bf llist jobid=nnn} where nnn is the JobId of the prior  Full save.
-\item The Job report output from the save that is doing the  wrong thing (not
-   critical).  
-\item An {\bf llist jobid=nnn} where nnn is the JobId of the job  that was not
-   correct.  
-\item An explanation of what job went wrong and why you think it did.  
-   \end{itemize}
-
-The above information can allow us to analyze what happened, without it, 
-there is not much we can do.  
-
-\label{WaitForever}
-\section{I am waiting forever for a backup of an offsite machine}
-\item [I am Backing Up an Offsite Machine with an Unreliable Connection.
-   The  Director Waits Forever for the Client to Contact the SD. What Can  I
-   Do?]
-\index[general]{Backing Up Offsite Machines}
-   Bacula was written on the assumption that it will have a good TCP/IP
-   connection between all the daemons.  As a consequence, the current
-   Bacula doesn't deal with faulty connections very well.  This situation
-   is slowly being corrected over time.
-   
-   There are several things you can do to improve the situation.  
-
-\begin{itemize}
-\item Upgrade to version 1.32 and use the new SDConnectTimeout record.  For
-   example, set:  
-
-\footnotesize
-\begin{verbatim}
-          SD Connect Timeout = 5 min
-          
-\end{verbatim}
-\normalsize
-
-in the FileDaemon resource.  
-\item Run these kinds of jobs after all other jobs.  
-   \end{itemize}
-
-\label{sshHanging}
-\section{SSH hangs forever after starting Bacula}
-\item [When I ssh into a machine and start Bacula then attempt to exit, 
-   ssh hangs forever.]
-\index[general]{ssh hangs}
-   This happens because Bacula leaves stdin, stdout, and stderr open for
-   debug purposes.  To avoid it, the simplest thing to do is to redirect
-   the output of those files to {\bf /dev/null} or another file in your
-   startup script (the Red Hat autostart scripts do this automatically).
-   For example, you start the Director with:
-   
-\footnotesize
-\begin{verbatim}
-    bacula-dir -c bacula-dir.conf ... >/dev/null 0>\&1 2>\&1
-    
-\end{verbatim}
-\normalsize
-
-and likewise for the other daemons.  
-
-\label{RetentionPeriods}
-\section{I'm confused by retention periods}
-\item [I'm confused by the different Retention periods: File Retention, 
-   Job Retention, Volume Retention. Why are there so many?]
-\index[general]{Retention Periods}
-   Yes, this certainly can be confusing.  The basic reason for so many is
-   to allow flexibility.  The File records take quite a lot of space in the
-   catalog, so they are typically records you want to remove rather
-   quickly.  The Job records, take very little space, and they can be
-   useful even without the File records to see what Jobs actually ran and
-   when.  One must understand that if the File records are removed from the
-   catalog, you cannot use the {\bf restore} command to restore an
-   individual file since Bacula no longer knows where it is.  However, as
-   long as the Volume Retention period has not expired, the data will still
-   be on the tape, and can be recovered from the tape.
-   
-   For example, I keep a 30 day retention period for my Files to keep my
-   catalog from getting too big, but I keep my tapes for a minimum of one
-   year, just in case.
-
-\label{MaxVolumeSize}
-\section{MaxVolumeSize is ignored}
-\item [Why Does Bacula Ignore the MaxVolumeSize Set in my Pool?]
-\index[general]{MaxVolumeSize}
-   The MaxVolumeSize that Bacula uses comes from the Media record, so most
-   likely you changed your Pool, which is used as the default for creating
-   Media records, {\bf after} you created your Volume.  Check what is in
-   the Media record by doing:
-
-\footnotesize
-\begin{verbatim}
-llist Volume=xxx
-\end{verbatim}
-\normalsize
-
-If it doesn't have the right value, you can use: 
-
-\footnotesize
-\begin{verbatim}
-update Volume=xxx
-\end{verbatim}
-\normalsize
-
-to change it.  
-
-\label{ConnectionRefused}
-\section{I get a Connection refused when connecting to my Client}
-\item [In connecting to my Client, I get "ERR:Connection Refused.  Packet
-   Size too big from File daemon:192.168.1.4:9102" Why?]
-\index[general]{ERR:Connection Refused}
-   This is typically a communications error resulting  from one of the
-   following:
-
-\begin{itemize}
-\item Old versions of Bacula, usually a Win32 client, where two  threads were
-   using the same I/O packet. Fixed in more recent  versions. Please upgrade.  
-\item Some other program such as an HP Printer using the same  port (9102 in
-   this case).  
-\end{itemize}
-
-If it is neither of the above, please submit a bug report at  
-\elink{bugs.bacula.org}{http://bugs.bacula.org}.  
-
-Another solution might be to run the daemon with the debug  option by:  
-
-\footnotesize
-\begin{verbatim}
-    Start a DOS shell Window.
-    cd c:\bacula\bin
-    bacula-fd -d100 -c c:\bacula\bin\bacula-fd.conf
-    
-\end{verbatim}
-\normalsize
-
-This will cause the FD to write a file {\bf bacula.trace}  in the current
-directory, which you can examine to determine  the problem.  
-
-\section{Long running jobs die with Pipe Error}
-\item [During long running jobs my File daemon dies with Pipe Error, or
-       some other communications error. Why?]
-\index[general]{Communications Errors}
-\index[general]{Pipe Errors}
-\index[general]{slow}
-\index[general]{Backups!slow}
-   There are a number of reasons why a connection might break.
-   Most often, it is a router between your two computers that times out
-   inactive lines (not respecting the keepalive feature that Bacula uses).
-   In that case, you can use the {\bf Heartbeat Interval} directive in
-   both the Storage daemon and the File daemon. 
-
-   In at least one case, the problem has been a bad driver for a Win32
-   NVidia NForce 3 ethernet card with driver (4.4.2 17/05/2004). 
-   In this case, a good driver is (4.8.2.0 06/04/2005).  Moral of
-   the story, make sure you have the latest ethernet drivers
-   loaded, or use the following workaround as suggested by Thomas
-   Simmons for Win32 machines:
-     
-   Browse to:
-   Start \gt{} Control Panel \gt{} Network Connections
-
-   Right click the connection for the nvidia adapter and select properties. 
-   Under the General tab, click "Configure...". Under the Advanced tab set 
-   "Checksum Offload" to disabled and click OK to save the change.  
-
-   Lack of communications, or communications that get interrupted can
-   also be caused by Linux firewalls where you have a rule that throttles
-   connections or traffic.  For example, if you have:
-
-\footnotesize
-\begin{verbatim}
-iptables -t filter -A INPUT -m limit --limit 3/second --limit-burst 3 -j DROP
-\end{verbatim}
-\normalsize
-
-   you will want to add the following rules {\bf before} the above rule:
-\footnotesize
-\begin{verbatim}
-iptables -t filter -A INPUT --dport 9101 -j ACCEPT
-iptables -t filter -A INPUT --dport 9102 -j ACCEPT
-iptables -t filter -A INPUT --dport 9103 -j ACCEPT
-\end{verbatim}
-\normalsize
-   This will ensure that any Bacula traffic will not get terminated because
-   of high usage rates.
-   
-\section{How do I tell the Job which Volume to use?}
-\item[I can't figure out how to tell the job which volume to use]
-   \index[general]{What tape to mount}
-  This is an interesting statement. I now see that a number of people new to
-  Bacula have the same problem as you, probably from using programs like tar.
-
-  In fact, you do not tell Bacula what tapes to use.  It is the inverse.  Bacula
-  tells you want tapes it wants.  You put tapes at its disposition and it
-  chooses.  
-
-  Now, if you *really* want to be tricky and try to tell Bacula what to do, it
-  will be reasonable if for example you mount a valid tape that it can use on a
-  drive, it will most likely go ahead and use it.  It also has a documented
-  algorithm for choosing tapes -- but you are asking for problems ...
-
-  So, the trick is to invert your concept of things and put Bacula in charge of
-  handling the tapes.  Once you do that, you will be fine.  If you want to
-  anticipate what it is going to do, you can generally figure it out correctly
-  and  get what you want.  
-
-  If you start with the idea that you are going to force or tell Bacula to use
-  particular tapes or you insist on trying to run in that kind of mode, you will
-  probably not be too happy.
-
-  I don't want to worry about what tape has what data. That is what Bacula is
-  designed for.
-
-  If you have an application where you *really* need to remove a tape each day
-  and  insert a new one, it can be done the directives exist to accomplish that.
-  In such a case, one little "trick" to knowing what tape Bacula will want at
-  2am  while you are asleep is to run a tiny job at 4pm while you are still at
-  work  that backs up say one directory, or even one file. You will quickly find
-  out  what tape it wants, and you can mount it before you go home ... 
-
-\label{Password generation}
-\section{Password generation}
-\item [How do I generate a password?]
-\index[general]{MaxVolumeSize}
-
-   Each daemon needs a password.  This password occurs in the configuration
-   file for that daemon and in the bacula-dir.conf file. These passwords are
-   plain text.  There is no special generation procedure.  Most people just
-   use random text.
-
-   Passwords are never sent over the wire in plain text.  They are always
-   encrypted.
-
-   Security surrounding these passwords is best left security to your
-   operating system.  Passwords are not encrypted within Bacula
-   configuration files.
-
-\end{description}
-        
diff --git a/docs/manuals/fr/problems/fdl-en.tex b/docs/manuals/fr/problems/fdl-en.tex
new file mode 100644 (file)
index 0000000..b46cd99
--- /dev/null
@@ -0,0 +1,485 @@
+% TODO: maybe get rid of centering
+
+\chapter{GNU Free Documentation License}
+\index[general]{GNU Free Documentation License}
+\index[general]{License!GNU Free Documentation}        
+
+\label{label_fdl}
+
+ \begin{center}
+
+       Version 1.2, November 2002
+
+
+ Copyright \copyright 2000,2001,2002  Free Software Foundation, Inc.
+ \bigskip
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  
+ \bigskip
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+\end{center}
+
+
+\begin{center}
+{\bf\large Preamble}
+\end{center}
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+\begin{center}
+{\Large\bf 1. APPLICABILITY AND DEFINITIONS}
+\end{center}
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The \textbf{"Document"}, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as \textbf{"you"}.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A \textbf{"Modified Version"} of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A \textbf{"Secondary Section"} is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject.  (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The \textbf{"Invariant Sections"} are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The \textbf{"Cover Texts"} are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A \textbf{"Transparent"} copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not "Transparent" is called \textbf{"Opaque"}.
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification.  Examples of
+transparent image formats include PNG, XCF and JPG.  Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The \textbf{"Title Page"} means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section \textbf{"Entitled XYZ"} means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as \textbf{"Acknowledgements"},
+\textbf{"Dedications"}, \textbf{"Endorsements"}, or \textbf{"History"}.)  
+To \textbf{"Preserve the Title"}
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+\begin{center}
+{\Large\bf 2. VERBATIM COPYING}
+\end{center}
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+\begin{center}
+{\Large\bf 3. COPYING IN QUANTITY}
+\end{center}
+
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+\begin{center}
+{\Large\bf 4. MODIFICATIONS}
+\end{center}
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+\begin{itemize}
+\item[A.] 
+   Use in the Title Page (and on the covers, if any) a title distinct
+   from that of the Document, and from those of previous versions
+   (which should, if there were any, be listed in the History section
+   of the Document).  You may use the same title as a previous version
+   if the original publisher of that version gives permission.
+   
+\item[B.]
+   List on the Title Page, as authors, one or more persons or entities
+   responsible for authorship of the modifications in the Modified
+   Version, together with at least five of the principal authors of the
+   Document (all of its principal authors, if it has fewer than five),
+   unless they release you from this requirement.
+   
+\item[C.]
+   State on the Title page the name of the publisher of the
+   Modified Version, as the publisher.
+   
+\item[D.]
+   Preserve all the copyright notices of the Document.
+   
+\item[E.]
+   Add an appropriate copyright notice for your modifications
+   adjacent to the other copyright notices.
+   
+\item[F.]
+   Include, immediately after the copyright notices, a license notice
+   giving the public permission to use the Modified Version under the
+   terms of this License, in the form shown in the Addendum below.
+   
+\item[G.]
+   Preserve in that license notice the full lists of Invariant Sections
+   and required Cover Texts given in the Document's license notice.
+   
+\item[H.]
+   Include an unaltered copy of this License.
+   
+\item[I.]
+   Preserve the section Entitled "History", Preserve its Title, and add
+   to it an item stating at least the title, year, new authors, and
+   publisher of the Modified Version as given on the Title Page.  If
+   there is no section Entitled "History" in the Document, create one
+   stating the title, year, authors, and publisher of the Document as
+   given on its Title Page, then add an item describing the Modified
+   Version as stated in the previous sentence.
+   
+\item[J.]
+   Preserve the network location, if any, given in the Document for
+   public access to a Transparent copy of the Document, and likewise
+   the network locations given in the Document for previous versions
+   it was based on.  These may be placed in the "History" section.
+   You may omit a network location for a work that was published at
+   least four years before the Document itself, or if the original
+   publisher of the version it refers to gives permission.
+   
+\item[K.]
+   For any section Entitled "Acknowledgements" or "Dedications",
+   Preserve the Title of the section, and preserve in the section all
+   the substance and tone of each of the contributor acknowledgements
+   and/or dedications given therein.
+   
+\item[L.]
+   Preserve all the Invariant Sections of the Document,
+   unaltered in their text and in their titles.  Section numbers
+   or the equivalent are not considered part of the section titles.
+   
+\item[M.]
+   Delete any section Entitled "Endorsements".  Such a section
+   may not be included in the Modified Version.
+   
+\item[N.]
+   Do not retitle any existing section to be Entitled "Endorsements"
+   or to conflict in title with any Invariant Section.
+   
+\item[O.]
+   Preserve any Warranty Disclaimers.
+\end{itemize}
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+\begin{center}
+{\Large\bf 5. COMBINING DOCUMENTS}
+\end{center}
+
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications".  You must delete all sections
+Entitled "Endorsements".
+
+\begin{center}
+{\Large\bf 6. COLLECTIONS OF DOCUMENTS}
+\end{center}
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+\begin{center}
+{\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS}
+\end{center}
+
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+\begin{center}
+{\Large\bf 8. TRANSLATION}
+\end{center}
+
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+\begin{center}
+{\Large\bf 9. TERMINATION}
+\end{center}
+
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+\begin{center}
+{\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE}
+\end{center}
+
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+\begin{center}
+{\Large\bf ADDENDUM: How to use this License for your documents}
+% TODO: this is too long for table of contents
+\end{center}
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+\bigskip
+\begin{quote}
+    Copyright \copyright  YEAR  YOUR NAME.
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the GNU Free Documentation License, Version 1.2
+    or any later version published by the Free Software Foundation;
+    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+    A copy of the license is included in the section entitled "GNU
+    Free Documentation License".
+\end{quote}
+\bigskip
+    
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+\bigskip
+\begin{quote}
+    with the Invariant Sections being LIST THEIR TITLES, with the
+    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+\end{quote}
+\bigskip
+    
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+%---------------------------------------------------------------------
diff --git a/docs/manuals/fr/problems/fdl.tex b/docs/manuals/fr/problems/fdl.tex
deleted file mode 100644 (file)
index b46cd99..0000000
+++ /dev/null
@@ -1,485 +0,0 @@
-% TODO: maybe get rid of centering
-
-\chapter{GNU Free Documentation License}
-\index[general]{GNU Free Documentation License}
-\index[general]{License!GNU Free Documentation}        
-
-\label{label_fdl}
-
- \begin{center}
-
-       Version 1.2, November 2002
-
-
- Copyright \copyright 2000,2001,2002  Free Software Foundation, Inc.
- \bigskip
-     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-  
- \bigskip
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-\end{center}
-
-
-\begin{center}
-{\bf\large Preamble}
-\end{center}
-
-The purpose of this License is to make a manual, textbook, or other
-functional and useful document "free" in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.
-
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense.  It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does.  But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book.  We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-\begin{center}
-{\Large\bf 1. APPLICABILITY AND DEFINITIONS}
-\end{center}
-
-This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License.  Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein.  The \textbf{"Document"}, below,
-refers to any such manual or work.  Any member of the public is a
-licensee, and is addressed as \textbf{"you"}.  You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.
-
-A \textbf{"Modified Version"} of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A \textbf{"Secondary Section"} is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject.  (Thus, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.)  The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The \textbf{"Invariant Sections"} are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.  If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant.  The Document may contain zero
-Invariant Sections.  If the Document does not identify any Invariant
-Sections then there are none.
-
-The \textbf{"Cover Texts"} are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.  A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.
-
-A \textbf{"Transparent"} copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters.  A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text.  A copy that is not "Transparent" is called \textbf{"Opaque"}.
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML, PostScript or PDF designed for human modification.  Examples of
-transparent image formats include PNG, XCF and JPG.  Opaque formats
-include proprietary formats that can be read and edited only by
-proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML, PostScript or PDF produced by some word
-processors for output purposes only.
-
-The \textbf{"Title Page"} means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page.  For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-A section \textbf{"Entitled XYZ"} means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language.  (Here XYZ stands for a
-specific section name mentioned below, such as \textbf{"Acknowledgements"},
-\textbf{"Dedications"}, \textbf{"Endorsements"}, or \textbf{"History"}.)  
-To \textbf{"Preserve the Title"}
-of such a section when you modify the Document means that it remains a
-section "Entitled XYZ" according to this definition.
-
-The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document.  These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.
-
-
-\begin{center}
-{\Large\bf 2. VERBATIM COPYING}
-\end{center}
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License.  You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute.  However, you may accept
-compensation in exchange for copies.  If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-\begin{center}
-{\Large\bf 3. COPYING IN QUANTITY}
-\end{center}
-
-
-If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover.  Both covers must also clearly and legibly identify
-you as the publisher of these copies.  The front cover must present
-the full title with all words of the title equally prominent and
-visible.  You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-
-\begin{center}
-{\Large\bf 4. MODIFICATIONS}
-\end{center}
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it.  In addition, you must do these things in the Modified Version:
-
-\begin{itemize}
-\item[A.] 
-   Use in the Title Page (and on the covers, if any) a title distinct
-   from that of the Document, and from those of previous versions
-   (which should, if there were any, be listed in the History section
-   of the Document).  You may use the same title as a previous version
-   if the original publisher of that version gives permission.
-   
-\item[B.]
-   List on the Title Page, as authors, one or more persons or entities
-   responsible for authorship of the modifications in the Modified
-   Version, together with at least five of the principal authors of the
-   Document (all of its principal authors, if it has fewer than five),
-   unless they release you from this requirement.
-   
-\item[C.]
-   State on the Title page the name of the publisher of the
-   Modified Version, as the publisher.
-   
-\item[D.]
-   Preserve all the copyright notices of the Document.
-   
-\item[E.]
-   Add an appropriate copyright notice for your modifications
-   adjacent to the other copyright notices.
-   
-\item[F.]
-   Include, immediately after the copyright notices, a license notice
-   giving the public permission to use the Modified Version under the
-   terms of this License, in the form shown in the Addendum below.
-   
-\item[G.]
-   Preserve in that license notice the full lists of Invariant Sections
-   and required Cover Texts given in the Document's license notice.
-   
-\item[H.]
-   Include an unaltered copy of this License.
-   
-\item[I.]
-   Preserve the section Entitled "History", Preserve its Title, and add
-   to it an item stating at least the title, year, new authors, and
-   publisher of the Modified Version as given on the Title Page.  If
-   there is no section Entitled "History" in the Document, create one
-   stating the title, year, authors, and publisher of the Document as
-   given on its Title Page, then add an item describing the Modified
-   Version as stated in the previous sentence.
-   
-\item[J.]
-   Preserve the network location, if any, given in the Document for
-   public access to a Transparent copy of the Document, and likewise
-   the network locations given in the Document for previous versions
-   it was based on.  These may be placed in the "History" section.
-   You may omit a network location for a work that was published at
-   least four years before the Document itself, or if the original
-   publisher of the version it refers to gives permission.
-   
-\item[K.]
-   For any section Entitled "Acknowledgements" or "Dedications",
-   Preserve the Title of the section, and preserve in the section all
-   the substance and tone of each of the contributor acknowledgements
-   and/or dedications given therein.
-   
-\item[L.]
-   Preserve all the Invariant Sections of the Document,
-   unaltered in their text and in their titles.  Section numbers
-   or the equivalent are not considered part of the section titles.
-   
-\item[M.]
-   Delete any section Entitled "Endorsements".  Such a section
-   may not be included in the Modified Version.
-   
-\item[N.]
-   Do not retitle any existing section to be Entitled "Endorsements"
-   or to conflict in title with any Invariant Section.
-   
-\item[O.]
-   Preserve any Warranty Disclaimers.
-\end{itemize}
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant.  To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section Entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version.  Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity.  If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-\begin{center}
-{\Large\bf 5. COMBINING DOCUMENTS}
-\end{center}
-
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy.  If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections Entitled "History"
-in the various original documents, forming one section Entitled
-"History"; likewise combine any sections Entitled "Acknowledgements",
-and any sections Entitled "Dedications".  You must delete all sections
-Entitled "Endorsements".
-
-\begin{center}
-{\Large\bf 6. COLLECTIONS OF DOCUMENTS}
-\end{center}
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-
-\begin{center}
-{\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS}
-\end{center}
-
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an "aggregate" if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one half of
-the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.
-
-
-\begin{center}
-{\Large\bf 8. TRANSLATION}
-\end{center}
-
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections.  You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers.  In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.
-
-If a section in the Document is Entitled "Acknowledgements",
-"Dedications", or "History", the requirement (section 4) to Preserve
-its Title (section 1) will typically require changing the actual
-title.
-
-
-\begin{center}
-{\Large\bf 9. TERMINATION}
-\end{center}
-
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License.  Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License.  However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-
-\begin{center}
-{\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE}
-\end{center}
-
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time.  Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.  See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation.  If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-
-\begin{center}
-{\Large\bf ADDENDUM: How to use this License for your documents}
-% TODO: this is too long for table of contents
-\end{center}
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
-\bigskip
-\begin{quote}
-    Copyright \copyright  YEAR  YOUR NAME.
-    Permission is granted to copy, distribute and/or modify this document
-    under the terms of the GNU Free Documentation License, Version 1.2
-    or any later version published by the Free Software Foundation;
-    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
-    A copy of the license is included in the section entitled "GNU
-    Free Documentation License".
-\end{quote}
-\bigskip
-    
-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the "with...Texts." line with this:
-
-\bigskip
-\begin{quote}
-    with the Invariant Sections being LIST THEIR TITLES, with the
-    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-\end{quote}
-\bigskip
-    
-If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
-
-%---------------------------------------------------------------------
diff --git a/docs/manuals/fr/problems/firewalls-en.tex b/docs/manuals/fr/problems/firewalls-en.tex
new file mode 100644 (file)
index 0000000..9646ea6
--- /dev/null
@@ -0,0 +1,373 @@
+%%
+%%
+
+\chapter{Dealing with Firewalls}
+\label{FirewallsChapter}
+\index[general]{Dealing with Firewalls }
+\index[general]{Firewalls!Dealing with }
+
+If you have a firewall or a DMZ installed on your computer, you may experience
+difficulties contacting one or more of the Clients to back them up. This is
+especially true if you are trying to backup a Client across the Internet. 
+
+\section{Technical Details}
+\index[general]{Technical Details }
+\index[general]{Details!Technical }
+
+If you are attempting to do this, the sequence of network events in Bacula to
+do a backup are the following: 
+
+\footnotesize
+\begin{verbatim}
+Console -> DIR:9101
+DIR     -> SD:9103
+DIR     -> FD:9102
+FD      -> SD:9103
+\end{verbatim}
+\normalsize
+
+Where hopefully it is obvious that DIR represents the Director, FD the File
+daemon or client, and SD the Storage daemon. The numbers that follow those
+names are the standard ports used by Bacula, and the \verb:->: represents the
+left side making a connection to the right side (i.e. the right side is the
+"server" or is listening on the specified port), and the left side is the
+"client" that initiates the conversation. 
+
+Note, port 9103 serves both the Director and the File daemon, each having its
+own independent connection. 
+
+If you are running {\bf iptables}, you might add something like: 
+
+\footnotesize
+\begin{verbatim}
+-A FW-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9101:9103 -j ACCEPT
+\end{verbatim}
+\normalsize
+
+on your server, and 
+
+\footnotesize
+\begin{verbatim}
+-A FW-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9102 -j ACCEPT
+\end{verbatim}
+\normalsize
+
+on your client. In both cases, I assume that the machine is allowed to
+initiate connections on any port. If not, you will need to allow outgoing
+connections on ports 9102 and 9103 on your server and 9103 on your client.
+Thanks to Raymond Norton for this tip. 
+
+\section{A Concrete Example}
+\index[general]{Example!Concrete }
+\index[general]{Concrete Example }
+
+The following discussion was originally written by
+Jesse Guardiani because he has 'internal' and 'external' requiring the
+Director and the Client to use different IP addresses.  His original
+solution was to define two different Storage resources in the Director's
+conf file each pointing to the same Storage daemon but with different
+IP addresses.  In Bacula 1.38.x this no longer works, because Bacula makes
+a one-to-one association between a Storage daemon resource and a Device (such
+as an Autochanger).  As a consequence, I have modified his original
+text to a method that I believe will work, but is as of yet untested
+(KES - July 2006).
+
+My bacula server is on the 192.168.1.0/24 network at IP address 192.168.1.52.
+For the sake of discussion we will refer to this network as the 'internal'
+network because it connects to the internet through a NAT'd firewall. We will
+call the network on the public (internet) side of the NAT'd firewall the
+'external' network. Also, for the sake of discussion we will call my bacula
+server: 
+
+\footnotesize
+\begin{verbatim}
+    server.int.mydomain.tld
+\end{verbatim}
+\normalsize
+
+when a fully qualified domain name is required, or simply: 
+
+\footnotesize
+\begin{verbatim}
+    server
+\end{verbatim}
+\normalsize
+
+if a hostname is adequate. We will call the various bacula daemons running on
+the server.int.mydomain.tld machine: 
+
+\footnotesize
+\begin{verbatim}
+    server-fd
+    server-sd
+    server-dir
+\end{verbatim}
+\normalsize
+
+In addition, I have two clients that I want to back up with Bacula. The first
+client is on the internal network. Its fully qualified domain name is: 
+
+\footnotesize
+\begin{verbatim}
+    private1.int.mydomain.tld
+\end{verbatim}
+\normalsize
+
+And its hostname is: 
+
+\footnotesize
+\begin{verbatim}
+    private1
+\end{verbatim}
+\normalsize
+
+This machine is a client and therefore runs just one bacula daemon: 
+
+\footnotesize
+\begin{verbatim}
+    private1-fd
+\end{verbatim}
+\normalsize
+
+The second client is on the external network. Its fully qualified domain name
+is: 
+
+\footnotesize
+\begin{verbatim}
+    public1.mydomain.tld
+\end{verbatim}
+\normalsize
+
+And its hostname is: 
+
+\footnotesize
+\begin{verbatim}
+    public1
+\end{verbatim}
+\normalsize
+
+This machine also runs just one bacula daemon: 
+
+\footnotesize
+\begin{verbatim}
+    public1-fd
+\end{verbatim}
+\normalsize
+
+Finally, I have a NAT firewall/gateway with two network interfaces. The first
+interface is on the internal network and serves as a gateway to the internet
+for all the machines attached to the internal network (For example,
+server.int.mydomain.tld and private1.int.mydomain.tld). The second interface
+is on the external (internet) network. The external interface has been
+assigned the name: 
+
+\footnotesize
+\begin{verbatim}
+    firewall.mydomain.tld
+\end{verbatim}
+\normalsize
+
+Remember: 
+
+\footnotesize
+\begin{verbatim}
+    *.int.mydomain.tld = internal network
+        *.mydomain.tld = external network
+\end{verbatim}
+\normalsize
+
+\subsection{The Bacula Configuration Files for the Above}
+\index[general]{Above!Bacula Configuration Files for the }
+\index[general]{Bacula Configuration Files for the Above }
+
+server-sd manages a 4 tape AIT autoloader. All of my backups are written to
+server-sd. I have just *one* Device resource in my server-sd.conf file: 
+
+\footnotesize
+\begin{verbatim}
+Autochanger {
+  Name = "autochanger1";\
+  Device = Drive0
+  Changer Device = /dev/ch0;
+  Changer Command = "/usr/local/sbin/chio-bacula %c %o %S %a";
+}
+Device {
+  Name = Drive0
+  DriveIndex = 0
+  Media Type = AIT-1;
+  Archive Device = /dev/nrsa1;
+  Label Media = yes;
+  AutoChanger = yes;
+  AutomaticMount = yes;               # when device opened, read it
+  AlwaysOpen = yes;
+  Hardware End of Medium = No
+  Fast Forward Space File = No
+  BSF at EOM = yes
+}
+\end{verbatim}
+\normalsize
+
+(note, please see 
+\ilink{the Tape Testing}{FreeBSDTapes} chapter of this manual
+for important FreeBSD information.) However, unlike previously, there
+is only one Storage definition in my server-dir.conf file: 
+
+\footnotesize
+\begin{verbatim}
+Storage {
+  Name = "autochanger1"    # Storage device for backing up
+  Address = Storage-server
+  SDPort = 9103
+  Password = "mysecretpassword"
+  Device = "autochanger1"
+  Media Type = AIT-1
+  Autochanger = yes
+}
+\end{verbatim}
+\normalsize
+
+Note that the Storage resource uses neither of the two addresses to
+the Storage daemon -- neither server.int.mydomain.tld nor
+firewall.mydomain.tld, but instead uses the address Storage-server.
+
+What is key is that in the internal net, Storage-server is resolved
+to server.int.mydomain.tld, either with an entry in /etc/hosts, or by
+creating and appropriate DNS entry, and on the external net (the Client
+machine), Storage-server is resolved to firewall.mydomain.tld.
+
+
+In addition to the above, I have two Client resources defined in
+server-dir.conf: 
+
+\footnotesize
+\begin{verbatim}
+Client {
+  Name = private1-fd
+  Address = private1.int.mydomain.tld
+  FDPort = 9102
+  Catalog = MyCatalog
+  Password = "mysecretpassword"       # password for FileDaemon
+}
+Client {
+  Name = public1-fd
+  Address = public1.mydomain.tld
+  FDPort = 9102
+  Catalog = MyCatalog
+  Password = "mysecretpassword"       # password for FileDaemon
+}
+\end{verbatim}
+\normalsize
+
+And finally, to tie it all together, I have two Job resources defined in
+server-dir.conf: 
+
+\footnotesize
+\begin{verbatim}
+Job {
+  Name = "Private1-Backup"
+  Type = Backup
+  Client = private1-fd
+  FileSet = "Private1"
+  Schedule = "WeeklyCycle"
+  Storage = "autochanger1-int"
+  Messages = Standard
+  Pool = "Weekly"
+  Write Bootstrap = "/var/db/bacula/Private1-Backup.bsr"
+  Priority = 12
+}
+Job {
+  Name = "Public1-Backup"
+  Type = Backup
+  Client = public1-fd
+  FileSet = "Public1"
+  Schedule = "WeeklyCycle"
+  Storage = "autochanger1-ext"
+  Messages = Standard
+  Pool = "Weekly"
+  Write Bootstrap = "/var/db/bacula/Public1-Backup.bsr"
+  Priority = 13
+}
+\end{verbatim}
+\normalsize
+
+It is important to notice that because the 'Private1-Backup' Job is intended
+to back up a machine on the internal network so it resolves Storage-server
+to contact the Storage daemon via the internal net.
+On the other hand, the 'Public1-Backup' Job is intended to
+back up a machine on the external network, so it resolves Storage-server
+to contact the Storage daemon via the external net.
+
+I have left the Pool, Catalog, Messages, FileSet, Schedule, and Director
+resources out of the above server-dir.conf examples because they are not
+pertinent to the discussion. 
+
+\subsection{How Does It Work?}
+\index[general]{How Does It Work? }
+\index[general]{Work!How Does It }
+
+If I want to run a backup of private1.int.mydomain.tld and store that backup
+using server-sd then my understanding of the order of events is this: 
+
+\begin{enumerate}
+\item I execute my Bacula 'console' command on server.int.mydomain.tld.  
+\item console connects to server-dir.  
+\item I tell console to 'run' backup Job 'Private1-Backup'.  
+\item console relays this command to server-dir.  
+\item server-dir connects to private1-fd at private1.int.mydomain.tld:9102  
+\item server-dir tells private1-fd to start sending the files defined in  the
+   'Private1-Backup' Job's FileSet resource to the Storage resource 
+   'autochanger1', which we have defined in server-dir.conf as having the 
+address:port of Storage-server, which is mapped by DNS to server.int.mydomain.tld.
+\item private1-fd connects to server.int.mydomain.tld:9103 and begins sending 
+   files. 
+   \end{enumerate}
+
+Alternatively, if I want to run a backup of public1.mydomain.tld and store
+that backup using server-sd then my understanding of the order of events is
+this: 
+
+\begin{enumerate}
+\item I execute my Bacula 'console' command on server.int.mydomain.tld.  
+\item console connects to server-dir.  
+\item I tell console to 'run' backup Job 'Public1-Backup'.  
+\item console relays this command to server-dir.  
+\item server-dir connects, through the NAT'd firewall, to public1-fd at 
+   public1.mydomain.tld:9102  
+\item server-dir tells public1-fd to start sending the files defined in  the
+   'Public1-Backup' Job's FileSet resource to the Storage resource 
+   'autochanger1', which we have defined in server-dir.conf as having the 
+   same address:port as above of Storage-server, but which on this machine
+   is resolved to firewall.mydomain.tld:9103.  
+\item public1-fd connects to firewall.mydomain.tld:9103 and begins sending 
+   files. 
+   \end{enumerate}
+
+\subsection{Important Note}
+\index[general]{Important Note }
+\index[general]{Note!Important }
+
+In order for the above 'Public1-Backup' Job to succeed,
+firewall.mydomain.tld:9103 MUST be forwarded using the firewall's
+configuration software to server.int.mydomain.tld:9103. Some firewalls call
+this 'Server Publication'. Others may call it 'Port Forwarding'. 
+
+\subsection{Firewall Problems}
+\index[general]{Firewall Problems}
+\index[general]{Problems!Firewalls}
+Either a firewall or a router may decide to timeout and terminate
+open connections if they are not active for a short time. By Internet
+standards the period should be two hours, and should be indefinitely
+extended if KEEPALIVE is set as is the case by Bacula.  If your firewall
+or router does not respect these rules, you may find Bacula connections
+terminated. In that case, the first thing to try is turning on the
+{\bf Heart Beat Interval} both in the File daemon and the Storage daemon
+and set an interval of say five minutes.
+
+Also, if you have denial of service rate limiting in your firewall, this
+too can cause Bacula disconnects since Bacula can at times use very high 
+access rates. To avoid this, you should implement default accept
+rules for the Bacula ports involved before the rate limiting rules.
+
+Finally, if you have a Windows machine, it will most likely by default
+disallow connections to the Bacula Windows File daemon.  See the      
+Windows chapter of this manual for additional details.
diff --git a/docs/manuals/fr/problems/firewalls.tex b/docs/manuals/fr/problems/firewalls.tex
deleted file mode 100644 (file)
index 9646ea6..0000000
+++ /dev/null
@@ -1,373 +0,0 @@
-%%
-%%
-
-\chapter{Dealing with Firewalls}
-\label{FirewallsChapter}
-\index[general]{Dealing with Firewalls }
-\index[general]{Firewalls!Dealing with }
-
-If you have a firewall or a DMZ installed on your computer, you may experience
-difficulties contacting one or more of the Clients to back them up. This is
-especially true if you are trying to backup a Client across the Internet. 
-
-\section{Technical Details}
-\index[general]{Technical Details }
-\index[general]{Details!Technical }
-
-If you are attempting to do this, the sequence of network events in Bacula to
-do a backup are the following: 
-
-\footnotesize
-\begin{verbatim}
-Console -> DIR:9101
-DIR     -> SD:9103
-DIR     -> FD:9102
-FD      -> SD:9103
-\end{verbatim}
-\normalsize
-
-Where hopefully it is obvious that DIR represents the Director, FD the File
-daemon or client, and SD the Storage daemon. The numbers that follow those
-names are the standard ports used by Bacula, and the \verb:->: represents the
-left side making a connection to the right side (i.e. the right side is the
-"server" or is listening on the specified port), and the left side is the
-"client" that initiates the conversation. 
-
-Note, port 9103 serves both the Director and the File daemon, each having its
-own independent connection. 
-
-If you are running {\bf iptables}, you might add something like: 
-
-\footnotesize
-\begin{verbatim}
--A FW-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9101:9103 -j ACCEPT
-\end{verbatim}
-\normalsize
-
-on your server, and 
-
-\footnotesize
-\begin{verbatim}
--A FW-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9102 -j ACCEPT
-\end{verbatim}
-\normalsize
-
-on your client. In both cases, I assume that the machine is allowed to
-initiate connections on any port. If not, you will need to allow outgoing
-connections on ports 9102 and 9103 on your server and 9103 on your client.
-Thanks to Raymond Norton for this tip. 
-
-\section{A Concrete Example}
-\index[general]{Example!Concrete }
-\index[general]{Concrete Example }
-
-The following discussion was originally written by
-Jesse Guardiani because he has 'internal' and 'external' requiring the
-Director and the Client to use different IP addresses.  His original
-solution was to define two different Storage resources in the Director's
-conf file each pointing to the same Storage daemon but with different
-IP addresses.  In Bacula 1.38.x this no longer works, because Bacula makes
-a one-to-one association between a Storage daemon resource and a Device (such
-as an Autochanger).  As a consequence, I have modified his original
-text to a method that I believe will work, but is as of yet untested
-(KES - July 2006).
-
-My bacula server is on the 192.168.1.0/24 network at IP address 192.168.1.52.
-For the sake of discussion we will refer to this network as the 'internal'
-network because it connects to the internet through a NAT'd firewall. We will
-call the network on the public (internet) side of the NAT'd firewall the
-'external' network. Also, for the sake of discussion we will call my bacula
-server: 
-
-\footnotesize
-\begin{verbatim}
-    server.int.mydomain.tld
-\end{verbatim}
-\normalsize
-
-when a fully qualified domain name is required, or simply: 
-
-\footnotesize
-\begin{verbatim}
-    server
-\end{verbatim}
-\normalsize
-
-if a hostname is adequate. We will call the various bacula daemons running on
-the server.int.mydomain.tld machine: 
-
-\footnotesize
-\begin{verbatim}
-    server-fd
-    server-sd
-    server-dir
-\end{verbatim}
-\normalsize
-
-In addition, I have two clients that I want to back up with Bacula. The first
-client is on the internal network. Its fully qualified domain name is: 
-
-\footnotesize
-\begin{verbatim}
-    private1.int.mydomain.tld
-\end{verbatim}
-\normalsize
-
-And its hostname is: 
-
-\footnotesize
-\begin{verbatim}
-    private1
-\end{verbatim}
-\normalsize
-
-This machine is a client and therefore runs just one bacula daemon: 
-
-\footnotesize
-\begin{verbatim}
-    private1-fd
-\end{verbatim}
-\normalsize
-
-The second client is on the external network. Its fully qualified domain name
-is: 
-
-\footnotesize
-\begin{verbatim}
-    public1.mydomain.tld
-\end{verbatim}
-\normalsize
-
-And its hostname is: 
-
-\footnotesize
-\begin{verbatim}
-    public1
-\end{verbatim}
-\normalsize
-
-This machine also runs just one bacula daemon: 
-
-\footnotesize
-\begin{verbatim}
-    public1-fd
-\end{verbatim}
-\normalsize
-
-Finally, I have a NAT firewall/gateway with two network interfaces. The first
-interface is on the internal network and serves as a gateway to the internet
-for all the machines attached to the internal network (For example,
-server.int.mydomain.tld and private1.int.mydomain.tld). The second interface
-is on the external (internet) network. The external interface has been
-assigned the name: 
-
-\footnotesize
-\begin{verbatim}
-    firewall.mydomain.tld
-\end{verbatim}
-\normalsize
-
-Remember: 
-
-\footnotesize
-\begin{verbatim}
-    *.int.mydomain.tld = internal network
-        *.mydomain.tld = external network
-\end{verbatim}
-\normalsize
-
-\subsection{The Bacula Configuration Files for the Above}
-\index[general]{Above!Bacula Configuration Files for the }
-\index[general]{Bacula Configuration Files for the Above }
-
-server-sd manages a 4 tape AIT autoloader. All of my backups are written to
-server-sd. I have just *one* Device resource in my server-sd.conf file: 
-
-\footnotesize
-\begin{verbatim}
-Autochanger {
-  Name = "autochanger1";\
-  Device = Drive0
-  Changer Device = /dev/ch0;
-  Changer Command = "/usr/local/sbin/chio-bacula %c %o %S %a";
-}
-Device {
-  Name = Drive0
-  DriveIndex = 0
-  Media Type = AIT-1;
-  Archive Device = /dev/nrsa1;
-  Label Media = yes;
-  AutoChanger = yes;
-  AutomaticMount = yes;               # when device opened, read it
-  AlwaysOpen = yes;
-  Hardware End of Medium = No
-  Fast Forward Space File = No
-  BSF at EOM = yes
-}
-\end{verbatim}
-\normalsize
-
-(note, please see 
-\ilink{the Tape Testing}{FreeBSDTapes} chapter of this manual
-for important FreeBSD information.) However, unlike previously, there
-is only one Storage definition in my server-dir.conf file: 
-
-\footnotesize
-\begin{verbatim}
-Storage {
-  Name = "autochanger1"    # Storage device for backing up
-  Address = Storage-server
-  SDPort = 9103
-  Password = "mysecretpassword"
-  Device = "autochanger1"
-  Media Type = AIT-1
-  Autochanger = yes
-}
-\end{verbatim}
-\normalsize
-
-Note that the Storage resource uses neither of the two addresses to
-the Storage daemon -- neither server.int.mydomain.tld nor
-firewall.mydomain.tld, but instead uses the address Storage-server.
-
-What is key is that in the internal net, Storage-server is resolved
-to server.int.mydomain.tld, either with an entry in /etc/hosts, or by
-creating and appropriate DNS entry, and on the external net (the Client
-machine), Storage-server is resolved to firewall.mydomain.tld.
-
-
-In addition to the above, I have two Client resources defined in
-server-dir.conf: 
-
-\footnotesize
-\begin{verbatim}
-Client {
-  Name = private1-fd
-  Address = private1.int.mydomain.tld
-  FDPort = 9102
-  Catalog = MyCatalog
-  Password = "mysecretpassword"       # password for FileDaemon
-}
-Client {
-  Name = public1-fd
-  Address = public1.mydomain.tld
-  FDPort = 9102
-  Catalog = MyCatalog
-  Password = "mysecretpassword"       # password for FileDaemon
-}
-\end{verbatim}
-\normalsize
-
-And finally, to tie it all together, I have two Job resources defined in
-server-dir.conf: 
-
-\footnotesize
-\begin{verbatim}
-Job {
-  Name = "Private1-Backup"
-  Type = Backup
-  Client = private1-fd
-  FileSet = "Private1"
-  Schedule = "WeeklyCycle"
-  Storage = "autochanger1-int"
-  Messages = Standard
-  Pool = "Weekly"
-  Write Bootstrap = "/var/db/bacula/Private1-Backup.bsr"
-  Priority = 12
-}
-Job {
-  Name = "Public1-Backup"
-  Type = Backup
-  Client = public1-fd
-  FileSet = "Public1"
-  Schedule = "WeeklyCycle"
-  Storage = "autochanger1-ext"
-  Messages = Standard
-  Pool = "Weekly"
-  Write Bootstrap = "/var/db/bacula/Public1-Backup.bsr"
-  Priority = 13
-}
-\end{verbatim}
-\normalsize
-
-It is important to notice that because the 'Private1-Backup' Job is intended
-to back up a machine on the internal network so it resolves Storage-server
-to contact the Storage daemon via the internal net.
-On the other hand, the 'Public1-Backup' Job is intended to
-back up a machine on the external network, so it resolves Storage-server
-to contact the Storage daemon via the external net.
-
-I have left the Pool, Catalog, Messages, FileSet, Schedule, and Director
-resources out of the above server-dir.conf examples because they are not
-pertinent to the discussion. 
-
-\subsection{How Does It Work?}
-\index[general]{How Does It Work? }
-\index[general]{Work!How Does It }
-
-If I want to run a backup of private1.int.mydomain.tld and store that backup
-using server-sd then my understanding of the order of events is this: 
-
-\begin{enumerate}
-\item I execute my Bacula 'console' command on server.int.mydomain.tld.  
-\item console connects to server-dir.  
-\item I tell console to 'run' backup Job 'Private1-Backup'.  
-\item console relays this command to server-dir.  
-\item server-dir connects to private1-fd at private1.int.mydomain.tld:9102  
-\item server-dir tells private1-fd to start sending the files defined in  the
-   'Private1-Backup' Job's FileSet resource to the Storage resource 
-   'autochanger1', which we have defined in server-dir.conf as having the 
-address:port of Storage-server, which is mapped by DNS to server.int.mydomain.tld.
-\item private1-fd connects to server.int.mydomain.tld:9103 and begins sending 
-   files. 
-   \end{enumerate}
-
-Alternatively, if I want to run a backup of public1.mydomain.tld and store
-that backup using server-sd then my understanding of the order of events is
-this: 
-
-\begin{enumerate}
-\item I execute my Bacula 'console' command on server.int.mydomain.tld.  
-\item console connects to server-dir.  
-\item I tell console to 'run' backup Job 'Public1-Backup'.  
-\item console relays this command to server-dir.  
-\item server-dir connects, through the NAT'd firewall, to public1-fd at 
-   public1.mydomain.tld:9102  
-\item server-dir tells public1-fd to start sending the files defined in  the
-   'Public1-Backup' Job's FileSet resource to the Storage resource 
-   'autochanger1', which we have defined in server-dir.conf as having the 
-   same address:port as above of Storage-server, but which on this machine
-   is resolved to firewall.mydomain.tld:9103.  
-\item public1-fd connects to firewall.mydomain.tld:9103 and begins sending 
-   files. 
-   \end{enumerate}
-
-\subsection{Important Note}
-\index[general]{Important Note }
-\index[general]{Note!Important }
-
-In order for the above 'Public1-Backup' Job to succeed,
-firewall.mydomain.tld:9103 MUST be forwarded using the firewall's
-configuration software to server.int.mydomain.tld:9103. Some firewalls call
-this 'Server Publication'. Others may call it 'Port Forwarding'. 
-
-\subsection{Firewall Problems}
-\index[general]{Firewall Problems}
-\index[general]{Problems!Firewalls}
-Either a firewall or a router may decide to timeout and terminate
-open connections if they are not active for a short time. By Internet
-standards the period should be two hours, and should be indefinitely
-extended if KEEPALIVE is set as is the case by Bacula.  If your firewall
-or router does not respect these rules, you may find Bacula connections
-terminated. In that case, the first thing to try is turning on the
-{\bf Heart Beat Interval} both in the File daemon and the Storage daemon
-and set an interval of say five minutes.
-
-Also, if you have denial of service rate limiting in your firewall, this
-too can cause Bacula disconnects since Bacula can at times use very high 
-access rates. To avoid this, you should implement default accept
-rules for the Bacula ports involved before the rate limiting rules.
-
-Finally, if you have a Windows machine, it will most likely by default
-disallow connections to the Bacula Windows File daemon.  See the      
-Windows chapter of this manual for additional details.
diff --git a/docs/manuals/fr/problems/kaboom-en.tex b/docs/manuals/fr/problems/kaboom-en.tex
new file mode 100644 (file)
index 0000000..a4e5bc5
--- /dev/null
@@ -0,0 +1,233 @@
+%%
+%%
+
+\chapter{What To Do When Bacula Crashes (Kaboom)}
+\label{KaboomChapter}
+\index[general]{Kaboom!What To Do When Bacula Crashes }
+\index[general]{What To Do When Bacula Crashes (Kaboom) }
+
+If you are running on a Linux system, and you have a set of working
+configuration files, it is very unlikely that {\bf Bacula} will crash. As with
+all software, however, it is inevitable that someday, it may crash,
+particularly if you are running on another operating system or using a new or
+unusual feature. 
+
+This chapter explains what you should do if one of the three {\bf Bacula}
+daemons (Director, File, Storage) crashes.  When we speak of crashing, we 
+mean that the daemon terminates abnormally because of an error.  There are
+many cases where Bacula detects errors (such as PIPE errors) and will fail 
+a job. These are not considered crashes.  In addition, under certain
+conditions, Bacula will detect a fatal in the configuration, such as 
+lack of permission to read/write the working directory. In that case,
+Bacula will force itself to crash with a SEGFAULT. However, before
+crashing, Bacula will normally display a message indicating why.    
+For more details, please read on.
+  
+
+\section{Traceback}
+\index[general]{Traceback}
+
+Each of the three Bacula daemons has a built-in exception handler which, in
+case of an error, will attempt to produce a traceback. If successful the
+traceback will be emailed to you. 
+
+For this to work, you need to ensure that a few things are setup correctly on
+your system: 
+
+\begin{enumerate}
+\item You must have a version of Bacula built with debug information turned
+   on and not stripped of debugging symbols.
+
+\item You must have an installed copy of {\bf gdb} (the GNU debugger),  and it
+   must be on {\bf Bacula's} path. On some systems such as Solaris, {\bf
+   gdb} may be replaced by {\bf dbx}.
+
+\item The Bacula installed script file {\bf btraceback} must  be in the same
+   directory as the daemon which dies, and it must  be marked as executable.  
+
+\item The script file {\bf btraceback.gdb} must  have the correct  path to it
+   specified in the {\bf btraceback} file.  
+
+\item You must have a {\bf mail} program which is on {\bf Bacula's}  path. 
+   By default, this {\bf mail} program is set to {\bf bsmtp}, so it must
+   be correctly configured.
+
+\item If you run either the Director or Storage daemon under a non-root
+   userid, you will most likely need to modify the {\bf btraceback} file
+   to do something like {\bf sudo} (raise to root priority) for the       
+   call to {\bf gdb} so that it has the proper permissions to debug
+   Bacula.
+\end{enumerate}
+
+If all the above conditions are met, the daemon that crashes will produce a
+traceback report and email it to you. If the above conditions are not true,
+you can either run the debugger by hand as described below, or you may be able
+to correct the problems by editing the {\bf btraceback} file. I recommend not
+spending too much time on trying to get the traceback to work as it can be
+very difficult. 
+
+The changes that might be needed are to add a correct path to the {\bf gdb}
+program, correct the path to the {\bf btraceback.gdb} file, change the {\bf
+mail} program or its path, or change your email address. The key line in the
+{\bf btraceback} file is: 
+
+\footnotesize
+\begin{verbatim}
+gdb -quiet -batch -x /home/kern/bacula/bin/btraceback.gdb \
+     $1 $2 2>\&1 | bsmtp -s "Bacula traceback" your-address@xxx.com
+\end{verbatim}
+\normalsize
+
+Since each daemon has the same traceback code, a single btraceback file is
+sufficient if you are running more than one daemon on a machine. 
+
+\section{Testing The Traceback}
+\index[general]{Traceback!Testing The }
+\index[general]{Testing The Traceback }
+
+To "manually" test the traceback feature, you simply start {\bf Bacula} then
+obtain the {\bf PID} of the main daemon thread (there are multiple threads).
+The output produced here will look different depending on what OS and what
+version of the kernel you are running.
+Unfortunately, the output had to be split to fit on this page: 
+
+\footnotesize
+\begin{verbatim}
+[kern@rufus kern]$ ps fax --columns 132 | grep bacula-dir
+ 2103 ?        S      0:00 /home/kern/bacula/k/src/dird/bacula-dir -c
+                                       /home/kern/bacula/k/src/dird/dird.conf
+ 2104 ?        S      0:00  \_ /home/kern/bacula/k/src/dird/bacula-dir -c
+                                       /home/kern/bacula/k/src/dird/dird.conf
+ 2106 ?        S      0:00      \_ /home/kern/bacula/k/src/dird/bacula-dir -c
+                                       /home/kern/bacula/k/src/dird/dird.conf
+ 2105 ?        S      0:00      \_ /home/kern/bacula/k/src/dird/bacula-dir -c
+                                       /home/kern/bacula/k/src/dird/dird.conf
+\end{verbatim}
+\normalsize
+
+which in this case is 2103. Then while Bacula is running, you call the program
+giving it the path to the Bacula executable and the {\bf PID}. In this case,
+it is: 
+
+\footnotesize
+\begin{verbatim}
+./btraceback /home/kern/bacula/k/src/dird 2103
+\end{verbatim}
+\normalsize
+
+It should produce an email showing you the current state of the daemon (in
+this case the Director), and then exit leaving {\bf Bacula} running as if
+nothing happened. If this is not the case, you will need to correct the
+problem by modifying the {\bf btraceback} script. 
+
+Typical problems might be that {\bf gdb} or {\bf dbx} for Solaris is not on
+the default path.  Fix this by specifying the full path to it in the {\bf
+btraceback} file.  Another common problem is that you haven't modified the
+script so that the {\bf bsmtp} program has an appropriate smtp server or
+the proper syntax for your smtp server.  If you use the {\bf mail} program
+and it is not on the default path, it will also fail.  On some systems, it
+is preferable to use {\bf Mail} rather than {\bf mail}.
+
+\section{Getting A Traceback On Other Systems}
+\index[general]{Getting A Traceback On Other Systems}
+\index[general]{Systems!Getting A Traceback On Other}
+
+It should be possible to produce a similar traceback on systems other than
+Linux, either using {\bf gdb} or some other debugger. Solaris with {\bf dbx}
+loaded works quite fine. On other systems, you will need to modify the {\bf
+btraceback} program to invoke the correct debugger, and possibly correct the
+{\bf btraceback.gdb} script to have appropriate commands for your debugger. If
+anyone succeeds in making this work with another debugger, please send us a
+copy of what you modified. Please keep in mind that for any debugger to
+work, it will most likely need to run as root, so you may need to modify
+the {\bf btraceback} script accordingly.
+
+\label{ManuallyDebugging}
+\section{Manually Running Bacula Under The Debugger}
+\index[general]{Manually Running Bacula Under The Debugger}
+\index[general]{Debugger!Manually Running Bacula Under The}
+
+If for some reason you cannot get the automatic traceback, or if you want to
+interactively examine the variable contents after a crash, you can run Bacula
+under the debugger. Assuming you want to run the Storage daemon under the
+debugger (the technique is the same for the other daemons, only the name
+changes), you would do the following: 
+
+\begin{enumerate}
+\item Start the Director and the File daemon. If the  Storage daemon also
+   starts, you will need to find its PID  as shown above (ps fax | grep
+   bacula-sd) and kill it  with a command like the following:  
+
+\footnotesize
+\begin{verbatim}
+      kill -15 PID
+\end{verbatim}
+\normalsize
+
+where you replace {\bf PID} by the actual value. 
+
+\item At this point, the Director and the File daemon should  be running but
+   the Storage daemon should not.  
+
+\item cd to the directory containing the Storage daemon  
+
+\item Start the Storage daemon under the debugger:  
+
+   \footnotesize
+\begin{verbatim}
+    gdb ./bacula-sd
+\end{verbatim}
+\normalsize
+
+\item Run the Storage daemon:  
+
+   \footnotesize
+\begin{verbatim}
+     run -s -f -c ./bacula-sd.conf
+\end{verbatim}
+\normalsize
+
+You may replace the {\bf ./bacula-sd.conf} with the full path  to the Storage
+daemon's configuration file.  
+
+\item At this point, Bacula will be fully operational.  
+
+\item In another shell command window, start the Console program  and do what
+   is necessary to cause Bacula to die.  
+
+\item When Bacula crashes, the {\bf gdb} shell window will  become active and
+   {\bf gdb} will show you the error that  occurred.  
+
+\item To get a general traceback of all threads, issue the following  command:
+
+\footnotesize
+\begin{verbatim}
+       thread apply all bt
+\end{verbatim}
+\normalsize
+
+After that you can issue any debugging command. 
+\end{enumerate}
+
+\section{Getting Debug Output from Bacula}
+\index[general]{Getting Debug Output from Bacula }
+Each of the daemons normally has debug compiled into the program, but
+disabled. There are two ways to enable the debug output. One is to add the
+{\bf -d nnn} option on the command line when starting the debugger. The {\bf
+nnn} is the debug level, and generally anything between 50 and 200 is
+reasonable. The higher the number, the more output is produced. The output is
+written to standard output. 
+
+The second way of getting debug output is to dynamically turn it on using the
+Console using the {\bf setdebug} command. The full syntax of the command is: 
+
+\footnotesize
+\begin{verbatim}
+ setdebug level=nnn client=client-name storage=storage-name dir
+\end{verbatim}
+\normalsize
+
+If none of the options are given, the command will prompt you. You can
+selectively turn on/off debugging in any or all the daemons (i.e. it is not
+necessary to specify all the components of the above command). 
diff --git a/docs/manuals/fr/problems/kaboom.tex b/docs/manuals/fr/problems/kaboom.tex
deleted file mode 100644 (file)
index a4e5bc5..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-%%
-%%
-
-\chapter{What To Do When Bacula Crashes (Kaboom)}
-\label{KaboomChapter}
-\index[general]{Kaboom!What To Do When Bacula Crashes }
-\index[general]{What To Do When Bacula Crashes (Kaboom) }
-
-If you are running on a Linux system, and you have a set of working
-configuration files, it is very unlikely that {\bf Bacula} will crash. As with
-all software, however, it is inevitable that someday, it may crash,
-particularly if you are running on another operating system or using a new or
-unusual feature. 
-
-This chapter explains what you should do if one of the three {\bf Bacula}
-daemons (Director, File, Storage) crashes.  When we speak of crashing, we 
-mean that the daemon terminates abnormally because of an error.  There are
-many cases where Bacula detects errors (such as PIPE errors) and will fail 
-a job. These are not considered crashes.  In addition, under certain
-conditions, Bacula will detect a fatal in the configuration, such as 
-lack of permission to read/write the working directory. In that case,
-Bacula will force itself to crash with a SEGFAULT. However, before
-crashing, Bacula will normally display a message indicating why.    
-For more details, please read on.
-  
-
-\section{Traceback}
-\index[general]{Traceback}
-
-Each of the three Bacula daemons has a built-in exception handler which, in
-case of an error, will attempt to produce a traceback. If successful the
-traceback will be emailed to you. 
-
-For this to work, you need to ensure that a few things are setup correctly on
-your system: 
-
-\begin{enumerate}
-\item You must have a version of Bacula built with debug information turned
-   on and not stripped of debugging symbols.
-
-\item You must have an installed copy of {\bf gdb} (the GNU debugger),  and it
-   must be on {\bf Bacula's} path. On some systems such as Solaris, {\bf
-   gdb} may be replaced by {\bf dbx}.
-
-\item The Bacula installed script file {\bf btraceback} must  be in the same
-   directory as the daemon which dies, and it must  be marked as executable.  
-
-\item The script file {\bf btraceback.gdb} must  have the correct  path to it
-   specified in the {\bf btraceback} file.  
-
-\item You must have a {\bf mail} program which is on {\bf Bacula's}  path. 
-   By default, this {\bf mail} program is set to {\bf bsmtp}, so it must
-   be correctly configured.
-
-\item If you run either the Director or Storage daemon under a non-root
-   userid, you will most likely need to modify the {\bf btraceback} file
-   to do something like {\bf sudo} (raise to root priority) for the       
-   call to {\bf gdb} so that it has the proper permissions to debug
-   Bacula.
-\end{enumerate}
-
-If all the above conditions are met, the daemon that crashes will produce a
-traceback report and email it to you. If the above conditions are not true,
-you can either run the debugger by hand as described below, or you may be able
-to correct the problems by editing the {\bf btraceback} file. I recommend not
-spending too much time on trying to get the traceback to work as it can be
-very difficult. 
-
-The changes that might be needed are to add a correct path to the {\bf gdb}
-program, correct the path to the {\bf btraceback.gdb} file, change the {\bf
-mail} program or its path, or change your email address. The key line in the
-{\bf btraceback} file is: 
-
-\footnotesize
-\begin{verbatim}
-gdb -quiet -batch -x /home/kern/bacula/bin/btraceback.gdb \
-     $1 $2 2>\&1 | bsmtp -s "Bacula traceback" your-address@xxx.com
-\end{verbatim}
-\normalsize
-
-Since each daemon has the same traceback code, a single btraceback file is
-sufficient if you are running more than one daemon on a machine. 
-
-\section{Testing The Traceback}
-\index[general]{Traceback!Testing The }
-\index[general]{Testing The Traceback }
-
-To "manually" test the traceback feature, you simply start {\bf Bacula} then
-obtain the {\bf PID} of the main daemon thread (there are multiple threads).
-The output produced here will look different depending on what OS and what
-version of the kernel you are running.
-Unfortunately, the output had to be split to fit on this page: 
-
-\footnotesize
-\begin{verbatim}
-[kern@rufus kern]$ ps fax --columns 132 | grep bacula-dir
- 2103 ?        S      0:00 /home/kern/bacula/k/src/dird/bacula-dir -c
-                                       /home/kern/bacula/k/src/dird/dird.conf
- 2104 ?        S      0:00  \_ /home/kern/bacula/k/src/dird/bacula-dir -c
-                                       /home/kern/bacula/k/src/dird/dird.conf
- 2106 ?        S      0:00      \_ /home/kern/bacula/k/src/dird/bacula-dir -c
-                                       /home/kern/bacula/k/src/dird/dird.conf
- 2105 ?        S      0:00      \_ /home/kern/bacula/k/src/dird/bacula-dir -c
-                                       /home/kern/bacula/k/src/dird/dird.conf
-\end{verbatim}
-\normalsize
-
-which in this case is 2103. Then while Bacula is running, you call the program
-giving it the path to the Bacula executable and the {\bf PID}. In this case,
-it is: 
-
-\footnotesize
-\begin{verbatim}
-./btraceback /home/kern/bacula/k/src/dird 2103
-\end{verbatim}
-\normalsize
-
-It should produce an email showing you the current state of the daemon (in
-this case the Director), and then exit leaving {\bf Bacula} running as if
-nothing happened. If this is not the case, you will need to correct the
-problem by modifying the {\bf btraceback} script. 
-
-Typical problems might be that {\bf gdb} or {\bf dbx} for Solaris is not on
-the default path.  Fix this by specifying the full path to it in the {\bf
-btraceback} file.  Another common problem is that you haven't modified the
-script so that the {\bf bsmtp} program has an appropriate smtp server or
-the proper syntax for your smtp server.  If you use the {\bf mail} program
-and it is not on the default path, it will also fail.  On some systems, it
-is preferable to use {\bf Mail} rather than {\bf mail}.
-
-\section{Getting A Traceback On Other Systems}
-\index[general]{Getting A Traceback On Other Systems}
-\index[general]{Systems!Getting A Traceback On Other}
-
-It should be possible to produce a similar traceback on systems other than
-Linux, either using {\bf gdb} or some other debugger. Solaris with {\bf dbx}
-loaded works quite fine. On other systems, you will need to modify the {\bf
-btraceback} program to invoke the correct debugger, and possibly correct the
-{\bf btraceback.gdb} script to have appropriate commands for your debugger. If
-anyone succeeds in making this work with another debugger, please send us a
-copy of what you modified. Please keep in mind that for any debugger to
-work, it will most likely need to run as root, so you may need to modify
-the {\bf btraceback} script accordingly.
-
-\label{ManuallyDebugging}
-\section{Manually Running Bacula Under The Debugger}
-\index[general]{Manually Running Bacula Under The Debugger}
-\index[general]{Debugger!Manually Running Bacula Under The}
-
-If for some reason you cannot get the automatic traceback, or if you want to
-interactively examine the variable contents after a crash, you can run Bacula
-under the debugger. Assuming you want to run the Storage daemon under the
-debugger (the technique is the same for the other daemons, only the name
-changes), you would do the following: 
-
-\begin{enumerate}
-\item Start the Director and the File daemon. If the  Storage daemon also
-   starts, you will need to find its PID  as shown above (ps fax | grep
-   bacula-sd) and kill it  with a command like the following:  
-
-\footnotesize
-\begin{verbatim}
-      kill -15 PID
-\end{verbatim}
-\normalsize
-
-where you replace {\bf PID} by the actual value. 
-
-\item At this point, the Director and the File daemon should  be running but
-   the Storage daemon should not.  
-
-\item cd to the directory containing the Storage daemon  
-
-\item Start the Storage daemon under the debugger:  
-
-   \footnotesize
-\begin{verbatim}
-    gdb ./bacula-sd
-\end{verbatim}
-\normalsize
-
-\item Run the Storage daemon:  
-
-   \footnotesize
-\begin{verbatim}
-     run -s -f -c ./bacula-sd.conf
-\end{verbatim}
-\normalsize
-
-You may replace the {\bf ./bacula-sd.conf} with the full path  to the Storage
-daemon's configuration file.  
-
-\item At this point, Bacula will be fully operational.  
-
-\item In another shell command window, start the Console program  and do what
-   is necessary to cause Bacula to die.  
-
-\item When Bacula crashes, the {\bf gdb} shell window will  become active and
-   {\bf gdb} will show you the error that  occurred.  
-
-\item To get a general traceback of all threads, issue the following  command:
-
-\footnotesize
-\begin{verbatim}
-       thread apply all bt
-\end{verbatim}
-\normalsize
-
-After that you can issue any debugging command. 
-\end{enumerate}
-
-\section{Getting Debug Output from Bacula}
-\index[general]{Getting Debug Output from Bacula }
-Each of the daemons normally has debug compiled into the program, but
-disabled. There are two ways to enable the debug output. One is to add the
-{\bf -d nnn} option on the command line when starting the debugger. The {\bf
-nnn} is the debug level, and generally anything between 50 and 200 is
-reasonable. The higher the number, the more output is produced. The output is
-written to standard output. 
-
-The second way of getting debug output is to dynamically turn it on using the
-Console using the {\bf setdebug} command. The full syntax of the command is: 
-
-\footnotesize
-\begin{verbatim}
- setdebug level=nnn client=client-name storage=storage-name dir
-\end{verbatim}
-\normalsize
-
-If none of the options are given, the command will prompt you. You can
-selectively turn on/off debugging in any or all the daemons (i.e. it is not
-necessary to specify all the components of the above command). 
index ff6a874ac5aacf7300ecf1c1db64de72fa007e0b..f46c1cfb04425c4d9d1445647ce8c61b5aeb9a06 100644 (file)
 \tableofcontents
 \clearpage
 
-\include{faq}
-\include{tips}
-\include{tapetesting}
-\include{firewalls}
-\include{kaboom}
-\include{fdl}
+\include{faq-en}
+\include{tips-en}
+\include{tapetesting-en}
+\include{firewalls-en}
+\include{kaboom-en}
+\include{fdl-en}
 
 
 % The following line tells link_resolver.pl to not include these files:
diff --git a/docs/manuals/fr/problems/rpm-faq-en.tex b/docs/manuals/fr/problems/rpm-faq-en.tex
new file mode 100644 (file)
index 0000000..127fc39
--- /dev/null
@@ -0,0 +1,395 @@
+%%
+%%
+
+\chapter{Bacula RPM Packaging FAQ}
+\label{RpmFaqChapter}
+\index[general]{FAQ!Bacula\textsuperscript{\textregistered} - RPM Packaging }
+\index[general]{Bacula\textsuperscript{\textregistered} - RPM Packaging FAQ }
+
+\begin{enumerate}
+\item 
+   \ilink{How do I build Bacula for platform xxx?}{faq1}  
+\item 
+   \ilink{How do I control which database support gets built?}{faq2} 
+
+\item 
+   \ilink{What other defines are used?}{faq3}  
+\item 
+   \ilink{I'm getting errors about not having permission when I try to build the
+   packages. Do I need to be root?}{faq4}  
+\item 
+   \ilink{I'm building my own rpms but on all platforms and compiles I get an
+   unresolved dependency for something called
+   /usr/afsws/bin/pagsh.}{faq5} 
+\item 
+   \ilink{I'm building my own rpms because you don't publish for my platform.
+    Can I get my packages released to sourceforge for other people to use?}{faq6} 
+\item 
+   \ilink{Is there an easier way than sorting out all these command line options?}{faq7}
+\item 
+   \ilink{I just upgraded from 1.36.x to 1.38.x and now my director daemon won't start. It appears to start but dies silently and I get a "connection refused" error when starting the console. What is wrong?}{faq8}  
+\item 
+   \ilink{There are a lot of rpm packages. Which packages do I need for what?}{faq9}  
+\end{enumerate}
+
+\section{Answers}
+\index[general]{Answers }
+
+\begin{enumerate}
+\item 
+   \label{faq1}
+   {\bf How do I build Bacula for platform xxx?}
+   The bacula spec file contains defines to build for several platforms:
+   Red Hat 7.x (rh7), Red Hat 8.0 (rh8), Red Hat 9 (rh9), Fedora Core (fc1,
+   fc3, fc4, fc5, fc6, fc7), Whitebox Enterprise Linux 3.0 (wb3), Red Hat Enterprise Linux 
+   (rhel3, rhel4, rhel5), Mandrake 10.x (mdk), Mandriva 2006.x (mdv) CentOS (centos3, centos4, centos5) 
+   Scientific Linux (sl3, sl4, sl5) and SuSE (su9, su10, su102, su103). The package build is controlled by a mandatory define set at the beginning of the file.  These defines basically just control the dependency information that gets coded into the finished rpm package as well 
+   as any special configure options required.  The platform define may be edited 
+   in the spec file directly (by default all defines are set to 0 or "not set").  
+   For example, to build the Red Hat 7.x package find the line in the spec file
+   which reads
+
+\footnotesize
+\begin{verbatim}
+        %define rh7 0
+        
+\end{verbatim}
+\normalsize
+
+and edit it to read  
+
+\footnotesize
+\begin{verbatim}
+        %define rh7 1
+        
+\end{verbatim}
+\normalsize
+
+Alternately you may pass the define on the command line when calling rpmbuild:
+
+\footnotesize
+\begin{verbatim}
+        rpmbuild -ba --define "build_rh7 1" bacula.spec
+        rpmbuild --rebuild --define build_rh7 1" bacula-x.x.x-x.src.rpm
+        
+\end{verbatim}
+\normalsize
+
+\item 
+   \label{faq2}
+   {\bf How do I control which database support gets built?}
+   Another mandatory build define controls which database support is compiled,
+   one of  build\_sqlite, build\_mysql or build\_postgresql. To get the MySQL
+   package and support either  set the  
+
+\footnotesize
+\begin{verbatim}
+        %define mysql 0
+        OR
+        %define mysql4 0
+        OR
+        %define mysql5 0
+        
+\end{verbatim}
+\normalsize
+
+to  
+
+\footnotesize
+\begin{verbatim}
+        %define mysql 1
+        OR
+        %define mysql4 1
+        OR
+        %define mysql5 1
+        
+\end{verbatim}
+\normalsize
+
+in the spec file directly or pass it to rpmbuild on the command line:  
+
+\footnotesize
+\begin{verbatim}
+        rpmbuild -ba --define "build_rh7 1" --define "build_mysql 1" bacula.spec
+        rpmbuild -ba --define "build_rh7 1" --define "build_mysql4 1" bacula.spec
+        rpmbuild -ba --define "build_rh7 1" --define "build_mysql5 1" bacula.spec
+        
+\end{verbatim}
+\normalsize
+
+\item 
+   \label{faq3}
+   {\bf What other defines are used?}
+   Three other building defines of note are the depkgs\_version, docs\_version and
+   \_rescuever identifiers. These  two defines are set with each release and must 
+   match the version of those sources that are being used to build the packages. 
+   You would not ordinarily need to edit these.  See also the Build Options section 
+   below for other build time options that can be passed on the command line.
+\item 
+   \label{faq4}
+   {\bf I'm getting errors about not having permission when I try  to build the
+   packages. Do I need to be root?}
+   No, you do not need to be root and, in fact, it is better practice to
+   build rpm packages as a non-root user.  Bacula packages are designed to
+   be built by a regular user but you must make a few changes on your
+   system to do this.  If you are building on your own system then the
+   simplest method is to add write permissions for all to the build
+   directory (/usr/src/redhat/, /usr/src/RPM or /usr/src/packages).  
+   To accomplish this, execute the following command as root:
+
+\footnotesize
+\begin{verbatim}
+        chmod -R 777 /usr/src/redhat
+        chmod -R 777 /usr/src/RPM
+        chmod -R 777 /usr/src/packages
+        
+\end{verbatim}
+\normalsize
+
+If you are working on a shared system where you can not use the method
+above then you need to recreate the appropriate above directory tree with all
+of its subdirectories inside your home directory.  Then create a file named
+
+{\tt .rpmmacros} 
+
+in your home directory (or edit  the file if it already exists)
+and add the following line:  
+
+\footnotesize
+\begin{verbatim}
+        %_topdir /home/myuser/redhat
+        %_tmppath /tmp
+        
+\end{verbatim}
+\normalsize
+
+Another handy directive for the .rpmmacros file if you wish to suppress the
+creation of debug rpm packages is:
+
+\footnotesize
+\begin{verbatim}
+        %debug_package %{nil}
+        
+\end{verbatim}
+
+\normalsize
+
+\item 
+   \label{faq5}
+   {\bf I'm building my own rpms but on all platforms and compiles I get an
+   unresolved dependency for something called /usr/afsws/bin/pagsh.} This
+   is a shell from the OpenAFS (Andrew File System).  If you are seeing
+   this then you chose to include the docs/examples directory in your
+   package.  One of the example scripts in this directory is a pagsh
+   script.  Rpmbuild, when scanning for dependencies, looks at the shebang
+   line of all packaged scripts in addition to checking shared libraries.
+   To avoid this do not package the examples directory. If you are seeing this 
+   problem you are building a very old bacula package as the examples have been 
+   removed from the doc packaging.
+
+\item 
+   \label{faq6}
+   {\bf I'm building my own rpms because you don't publish for my platform.
+    Can I get my packages released to sourceforge for other people to use?} Yes, 
+    contributions from users are accepted and appreciated. Please examine the 
+    directory platforms/contrib-rpm in the source code for further information.
+
+\item 
+   \label{faq7}
+   {\bf Is there an easier way than sorting out all these command line options?} Yes, 
+    there is a gui wizard shell script which you can use to rebuild the src rpm package. 
+   Look in the source archive for platforms/contrib-rpm/rpm\_wizard.sh. This script will 
+   allow you to specify build options using GNOME dialog screens. It requires zenity.
+
+\item 
+   \label{faq8}
+   {\bf I just upgraded from 1.36.x to 1.38.x and now my director daemon
+won't start.  It appears to start but dies silently and I get a "connection
+refused" error when starting the console.  What is wrong?} Beginning with
+1.38 the rpm packages are configured to run the director and storage
+daemons as a non-root user.  The file daemon runs as user root and group
+bacula, the storage daemon as user bacula and group disk, and the director
+as user bacula and group bacula.  If you are upgrading you will need to
+change some file permissions for things to work.  Execute the following
+commands as root:
+
+\footnotesize
+\begin{verbatim}
+        chown bacula.bacula /var/bacula/*
+        chown root.bacula /var/bacula/bacula-fd.9102.state
+        chown bacula.disk /var/bacula/bacula-sd.9103.state
+        
+\end{verbatim}
+\normalsize
+
+Further, if you are using File storage volumes rather than tapes those
+files will also need to have ownership set to user bacula and group bacula.
+
+\item 
+   \label{faq9}
+   {\bf There are a lot of rpm packages.  Which packages do I need for
+what?} For a bacula server you need to select the packsge based upon your
+preferred catalog database: one of bacula-mysql, bacula-postgresql or
+bacula-sqlite.  If your system does not provide an mtx package you also
+need bacula-mtx to satisfy that dependancy.  For a client machine you need
+only install bacula-client.  Optionally, for either server or client
+machines, you may install a graphical console bacula-gconsole and/or
+bacula-wxconsole. The Bacula Administration Tool is installed with the 
+bacula-bat package.  One last package, bacula-updatedb is required only when
+upgrading a server more than one database revision level.
+
+
+
+\item {\bf Support for RHEL3/4/5, CentOS 3/4/5, Scientific Linux 3/4/5 and x86\_64}
+   The examples below show
+   explicit build support for RHEL4 and CentOS 4. Build support 
+   for x86\_64 has also been added. 
+\end{enumerate}
+
+\footnotesize
+\begin{verbatim}
+Build with one of these 3 commands:
+
+rpmbuild --rebuild \
+        --define "build_rhel4 1" \
+        --define "build_sqlite 1" \
+        bacula-1.38.3-1.src.rpm
+
+rpmbuild --rebuild \
+        --define "build_rhel4 1" \
+        --define "build_postgresql 1" \
+        bacula-1.38.3-1.src.rpm
+
+rpmbuild --rebuild \
+        --define "build_rhel4 1" \
+        --define "build_mysql4 1" \
+        bacula-1.38.3-1.src.rpm
+
+For CentOS substitute '--define "build_centos4 1"' in place of rhel4. 
+For Scientific Linux substitute '--define "build_sl4 1"' in place of rhel4.
+
+For 64 bit support add '--define "build_x86_64 1"'
+\end{verbatim}
+\normalsize
+
+\section{Build Options}
+\index[general]{Build Options}
+The spec file currently supports building on the following platforms:
+\footnotesize
+\begin{verbatim}
+Red Hat builds
+--define "build_rh7 1"
+--define "build_rh8 1"
+--define "build_rh9 1"
+
+Fedora Core build
+--define "build_fc1 1"
+--define "build_fc3 1"
+--define "build_fc4 1"
+--define "build_fc5 1"
+--define "build_fc6 1"
+--define "build_fc7 1"
+
+Whitebox Enterprise build
+--define "build_wb3 1"
+
+Red Hat Enterprise builds
+--define "build_rhel3 1"
+--define "build_rhel4 1"
+--define "build_rhel5 1"
+
+CentOS build
+--define "build_centos3 1"
+--define "build_centos4 1"
+--define "build_centos5 1"
+
+Scientific Linux build
+--define "build_sl3 1"
+--define "build_sl4 1"
+--define "build_sl5 1"
+
+SuSE build
+--define "build_su9 1"
+--define "build_su10 1"
+--define "build_su102 1"
+--define "build_su103 1"
+
+Mandrake 10.x build
+--define "build_mdk 1"
+
+Mandriva build
+--define "build_mdv 1"
+
+MySQL support:
+for mysql 3.23.x support define this
+--define "build_mysql 1"
+if using mysql 4.x define this,
+currently: Mandrake 10.x, Mandriva 2006.0, SuSE 9.x & 10.0, FC4 & RHEL4
+--define "build_mysql4 1"
+if using mysql 5.x define this,
+currently: SuSE 10.1 & FC5
+--define "build_mysql5 1"
+
+PostgreSQL support:
+--define "build_postgresql 1"
+
+Sqlite support:
+--define "build_sqlite 1"
+
+Build the client rpm only in place of one of the above database full builds:
+--define "build_client_only 1"
+
+X86-64 support:
+--define "build_x86_64 1"
+
+Supress build of bgnome-console:
+--define "nobuild_gconsole 1"
+
+Build the WXWindows console:
+requires wxGTK >= 2.6
+--define "build_wxconsole 1"
+
+Build the Bacula Administration Tool:
+requires QT >= 4.2
+--define "build_bat 1"
+
+Build python scripting support:
+--define "build_python 1"
+
+Modify the Packager tag for third party packages:
+--define "contrib_packager Your Name <youremail@site.org>"
+
+\end{verbatim}
+\normalsize
+
+\section{RPM Install Problems}
+\index[general]{RPM Install Problems}
+In general the RPMs, once properly built should install correctly.
+However, when attempting to run the daemons, a number of problems
+can occur:
+\begin{itemize}
+\item [Wrong /var/bacula Permissions]
+  By default, the Director and Storage daemon do not run with
+  root permission. If the /var/bacula is owned by root, then it
+  is possible that the Director and the Storage daemon will not
+  be able to access this directory, which is used as the Working
+  Directory. To fix this, the easiest thing to do is:
+\begin{verbatim}
+  chown bacula:bacula /var/bacula
+\end{verbatim}
+  Note: as of 1.38.8 /var/bacula is installed root:bacula with
+  permissions 770.
+\item [The Storage daemon cannot Access the Tape drive]
+  This can happen in some older RPM releases where the Storage
+  daemon ran under userid bacula, group bacula.  There are two
+  ways of fixing this: the best is to modify the /etc/init.d/bacula-sd
+  file so that it starts the Storage daemon with group "disk".
+  The second way to fix the problem is to change the permissions
+  of your tape drive (usually /dev/nst0) so that Bacula can access it.
+  You will probably need to change the permissions of the SCSI control
+  device as well, which is usually /dev/sg0.  The exact names depend
+  on your configuration, please see the Tape Testing chapter for
+  more information on devices.
+\end{itemize}
diff --git a/docs/manuals/fr/problems/rpm-faq.tex b/docs/manuals/fr/problems/rpm-faq.tex
deleted file mode 100644 (file)
index 127fc39..0000000
+++ /dev/null
@@ -1,395 +0,0 @@
-%%
-%%
-
-\chapter{Bacula RPM Packaging FAQ}
-\label{RpmFaqChapter}
-\index[general]{FAQ!Bacula\textsuperscript{\textregistered} - RPM Packaging }
-\index[general]{Bacula\textsuperscript{\textregistered} - RPM Packaging FAQ }
-
-\begin{enumerate}
-\item 
-   \ilink{How do I build Bacula for platform xxx?}{faq1}  
-\item 
-   \ilink{How do I control which database support gets built?}{faq2} 
-
-\item 
-   \ilink{What other defines are used?}{faq3}  
-\item 
-   \ilink{I'm getting errors about not having permission when I try to build the
-   packages. Do I need to be root?}{faq4}  
-\item 
-   \ilink{I'm building my own rpms but on all platforms and compiles I get an
-   unresolved dependency for something called
-   /usr/afsws/bin/pagsh.}{faq5} 
-\item 
-   \ilink{I'm building my own rpms because you don't publish for my platform.
-    Can I get my packages released to sourceforge for other people to use?}{faq6} 
-\item 
-   \ilink{Is there an easier way than sorting out all these command line options?}{faq7}
-\item 
-   \ilink{I just upgraded from 1.36.x to 1.38.x and now my director daemon won't start. It appears to start but dies silently and I get a "connection refused" error when starting the console. What is wrong?}{faq8}  
-\item 
-   \ilink{There are a lot of rpm packages. Which packages do I need for what?}{faq9}  
-\end{enumerate}
-
-\section{Answers}
-\index[general]{Answers }
-
-\begin{enumerate}
-\item 
-   \label{faq1}
-   {\bf How do I build Bacula for platform xxx?}
-   The bacula spec file contains defines to build for several platforms:
-   Red Hat 7.x (rh7), Red Hat 8.0 (rh8), Red Hat 9 (rh9), Fedora Core (fc1,
-   fc3, fc4, fc5, fc6, fc7), Whitebox Enterprise Linux 3.0 (wb3), Red Hat Enterprise Linux 
-   (rhel3, rhel4, rhel5), Mandrake 10.x (mdk), Mandriva 2006.x (mdv) CentOS (centos3, centos4, centos5) 
-   Scientific Linux (sl3, sl4, sl5) and SuSE (su9, su10, su102, su103). The package build is controlled by a mandatory define set at the beginning of the file.  These defines basically just control the dependency information that gets coded into the finished rpm package as well 
-   as any special configure options required.  The platform define may be edited 
-   in the spec file directly (by default all defines are set to 0 or "not set").  
-   For example, to build the Red Hat 7.x package find the line in the spec file
-   which reads
-
-\footnotesize
-\begin{verbatim}
-        %define rh7 0
-        
-\end{verbatim}
-\normalsize
-
-and edit it to read  
-
-\footnotesize
-\begin{verbatim}
-        %define rh7 1
-        
-\end{verbatim}
-\normalsize
-
-Alternately you may pass the define on the command line when calling rpmbuild:
-
-\footnotesize
-\begin{verbatim}
-        rpmbuild -ba --define "build_rh7 1" bacula.spec
-        rpmbuild --rebuild --define build_rh7 1" bacula-x.x.x-x.src.rpm
-        
-\end{verbatim}
-\normalsize
-
-\item 
-   \label{faq2}
-   {\bf How do I control which database support gets built?}
-   Another mandatory build define controls which database support is compiled,
-   one of  build\_sqlite, build\_mysql or build\_postgresql. To get the MySQL
-   package and support either  set the  
-
-\footnotesize
-\begin{verbatim}
-        %define mysql 0
-        OR
-        %define mysql4 0
-        OR
-        %define mysql5 0
-        
-\end{verbatim}
-\normalsize
-
-to  
-
-\footnotesize
-\begin{verbatim}
-        %define mysql 1
-        OR
-        %define mysql4 1
-        OR
-        %define mysql5 1
-        
-\end{verbatim}
-\normalsize
-
-in the spec file directly or pass it to rpmbuild on the command line:  
-
-\footnotesize
-\begin{verbatim}
-        rpmbuild -ba --define "build_rh7 1" --define "build_mysql 1" bacula.spec
-        rpmbuild -ba --define "build_rh7 1" --define "build_mysql4 1" bacula.spec
-        rpmbuild -ba --define "build_rh7 1" --define "build_mysql5 1" bacula.spec
-        
-\end{verbatim}
-\normalsize
-
-\item 
-   \label{faq3}
-   {\bf What other defines are used?}
-   Three other building defines of note are the depkgs\_version, docs\_version and
-   \_rescuever identifiers. These  two defines are set with each release and must 
-   match the version of those sources that are being used to build the packages. 
-   You would not ordinarily need to edit these.  See also the Build Options section 
-   below for other build time options that can be passed on the command line.
-\item 
-   \label{faq4}
-   {\bf I'm getting errors about not having permission when I try  to build the
-   packages. Do I need to be root?}
-   No, you do not need to be root and, in fact, it is better practice to
-   build rpm packages as a non-root user.  Bacula packages are designed to
-   be built by a regular user but you must make a few changes on your
-   system to do this.  If you are building on your own system then the
-   simplest method is to add write permissions for all to the build
-   directory (/usr/src/redhat/, /usr/src/RPM or /usr/src/packages).  
-   To accomplish this, execute the following command as root:
-
-\footnotesize
-\begin{verbatim}
-        chmod -R 777 /usr/src/redhat
-        chmod -R 777 /usr/src/RPM
-        chmod -R 777 /usr/src/packages
-        
-\end{verbatim}
-\normalsize
-
-If you are working on a shared system where you can not use the method
-above then you need to recreate the appropriate above directory tree with all
-of its subdirectories inside your home directory.  Then create a file named
-
-{\tt .rpmmacros} 
-
-in your home directory (or edit  the file if it already exists)
-and add the following line:  
-
-\footnotesize
-\begin{verbatim}
-        %_topdir /home/myuser/redhat
-        %_tmppath /tmp
-        
-\end{verbatim}
-\normalsize
-
-Another handy directive for the .rpmmacros file if you wish to suppress the
-creation of debug rpm packages is:
-
-\footnotesize
-\begin{verbatim}
-        %debug_package %{nil}
-        
-\end{verbatim}
-
-\normalsize
-
-\item 
-   \label{faq5}
-   {\bf I'm building my own rpms but on all platforms and compiles I get an
-   unresolved dependency for something called /usr/afsws/bin/pagsh.} This
-   is a shell from the OpenAFS (Andrew File System).  If you are seeing
-   this then you chose to include the docs/examples directory in your
-   package.  One of the example scripts in this directory is a pagsh
-   script.  Rpmbuild, when scanning for dependencies, looks at the shebang
-   line of all packaged scripts in addition to checking shared libraries.
-   To avoid this do not package the examples directory. If you are seeing this 
-   problem you are building a very old bacula package as the examples have been 
-   removed from the doc packaging.
-
-\item 
-   \label{faq6}
-   {\bf I'm building my own rpms because you don't publish for my platform.
-    Can I get my packages released to sourceforge for other people to use?} Yes, 
-    contributions from users are accepted and appreciated. Please examine the 
-    directory platforms/contrib-rpm in the source code for further information.
-
-\item 
-   \label{faq7}
-   {\bf Is there an easier way than sorting out all these command line options?} Yes, 
-    there is a gui wizard shell script which you can use to rebuild the src rpm package. 
-   Look in the source archive for platforms/contrib-rpm/rpm\_wizard.sh. This script will 
-   allow you to specify build options using GNOME dialog screens. It requires zenity.
-
-\item 
-   \label{faq8}
-   {\bf I just upgraded from 1.36.x to 1.38.x and now my director daemon
-won't start.  It appears to start but dies silently and I get a "connection
-refused" error when starting the console.  What is wrong?} Beginning with
-1.38 the rpm packages are configured to run the director and storage
-daemons as a non-root user.  The file daemon runs as user root and group
-bacula, the storage daemon as user bacula and group disk, and the director
-as user bacula and group bacula.  If you are upgrading you will need to
-change some file permissions for things to work.  Execute the following
-commands as root:
-
-\footnotesize
-\begin{verbatim}
-        chown bacula.bacula /var/bacula/*
-        chown root.bacula /var/bacula/bacula-fd.9102.state
-        chown bacula.disk /var/bacula/bacula-sd.9103.state
-        
-\end{verbatim}
-\normalsize
-
-Further, if you are using File storage volumes rather than tapes those
-files will also need to have ownership set to user bacula and group bacula.
-
-\item 
-   \label{faq9}
-   {\bf There are a lot of rpm packages.  Which packages do I need for
-what?} For a bacula server you need to select the packsge based upon your
-preferred catalog database: one of bacula-mysql, bacula-postgresql or
-bacula-sqlite.  If your system does not provide an mtx package you also
-need bacula-mtx to satisfy that dependancy.  For a client machine you need
-only install bacula-client.  Optionally, for either server or client
-machines, you may install a graphical console bacula-gconsole and/or
-bacula-wxconsole. The Bacula Administration Tool is installed with the 
-bacula-bat package.  One last package, bacula-updatedb is required only when
-upgrading a server more than one database revision level.
-
-
-
-\item {\bf Support for RHEL3/4/5, CentOS 3/4/5, Scientific Linux 3/4/5 and x86\_64}
-   The examples below show
-   explicit build support for RHEL4 and CentOS 4. Build support 
-   for x86\_64 has also been added. 
-\end{enumerate}
-
-\footnotesize
-\begin{verbatim}
-Build with one of these 3 commands:
-
-rpmbuild --rebuild \
-        --define "build_rhel4 1" \
-        --define "build_sqlite 1" \
-        bacula-1.38.3-1.src.rpm
-
-rpmbuild --rebuild \
-        --define "build_rhel4 1" \
-        --define "build_postgresql 1" \
-        bacula-1.38.3-1.src.rpm
-
-rpmbuild --rebuild \
-        --define "build_rhel4 1" \
-        --define "build_mysql4 1" \
-        bacula-1.38.3-1.src.rpm
-
-For CentOS substitute '--define "build_centos4 1"' in place of rhel4. 
-For Scientific Linux substitute '--define "build_sl4 1"' in place of rhel4.
-
-For 64 bit support add '--define "build_x86_64 1"'
-\end{verbatim}
-\normalsize
-
-\section{Build Options}
-\index[general]{Build Options}
-The spec file currently supports building on the following platforms:
-\footnotesize
-\begin{verbatim}
-Red Hat builds
---define "build_rh7 1"
---define "build_rh8 1"
---define "build_rh9 1"
-
-Fedora Core build
---define "build_fc1 1"
---define "build_fc3 1"
---define "build_fc4 1"
---define "build_fc5 1"
---define "build_fc6 1"
---define "build_fc7 1"
-
-Whitebox Enterprise build
---define "build_wb3 1"
-
-Red Hat Enterprise builds
---define "build_rhel3 1"
---define "build_rhel4 1"
---define "build_rhel5 1"
-
-CentOS build
---define "build_centos3 1"
---define "build_centos4 1"
---define "build_centos5 1"
-
-Scientific Linux build
---define "build_sl3 1"
---define "build_sl4 1"
---define "build_sl5 1"
-
-SuSE build
---define "build_su9 1"
---define "build_su10 1"
---define "build_su102 1"
---define "build_su103 1"
-
-Mandrake 10.x build
---define "build_mdk 1"
-
-Mandriva build
---define "build_mdv 1"
-
-MySQL support:
-for mysql 3.23.x support define this
---define "build_mysql 1"
-if using mysql 4.x define this,
-currently: Mandrake 10.x, Mandriva 2006.0, SuSE 9.x & 10.0, FC4 & RHEL4
---define "build_mysql4 1"
-if using mysql 5.x define this,
-currently: SuSE 10.1 & FC5
---define "build_mysql5 1"
-
-PostgreSQL support:
---define "build_postgresql 1"
-
-Sqlite support:
---define "build_sqlite 1"
-
-Build the client rpm only in place of one of the above database full builds:
---define "build_client_only 1"
-
-X86-64 support:
---define "build_x86_64 1"
-
-Supress build of bgnome-console:
---define "nobuild_gconsole 1"
-
-Build the WXWindows console:
-requires wxGTK >= 2.6
---define "build_wxconsole 1"
-
-Build the Bacula Administration Tool:
-requires QT >= 4.2
---define "build_bat 1"
-
-Build python scripting support:
---define "build_python 1"
-
-Modify the Packager tag for third party packages:
---define "contrib_packager Your Name <youremail@site.org>"
-
-\end{verbatim}
-\normalsize
-
-\section{RPM Install Problems}
-\index[general]{RPM Install Problems}
-In general the RPMs, once properly built should install correctly.
-However, when attempting to run the daemons, a number of problems
-can occur:
-\begin{itemize}
-\item [Wrong /var/bacula Permissions]
-  By default, the Director and Storage daemon do not run with
-  root permission. If the /var/bacula is owned by root, then it
-  is possible that the Director and the Storage daemon will not
-  be able to access this directory, which is used as the Working
-  Directory. To fix this, the easiest thing to do is:
-\begin{verbatim}
-  chown bacula:bacula /var/bacula
-\end{verbatim}
-  Note: as of 1.38.8 /var/bacula is installed root:bacula with
-  permissions 770.
-\item [The Storage daemon cannot Access the Tape drive]
-  This can happen in some older RPM releases where the Storage
-  daemon ran under userid bacula, group bacula.  There are two
-  ways of fixing this: the best is to modify the /etc/init.d/bacula-sd
-  file so that it starts the Storage daemon with group "disk".
-  The second way to fix the problem is to change the permissions
-  of your tape drive (usually /dev/nst0) so that Bacula can access it.
-  You will probably need to change the permissions of the SCSI control
-  device as well, which is usually /dev/sg0.  The exact names depend
-  on your configuration, please see the Tape Testing chapter for
-  more information on devices.
-\end{itemize}
diff --git a/docs/manuals/fr/problems/tapetesting-en.tex b/docs/manuals/fr/problems/tapetesting-en.tex
new file mode 100644 (file)
index 0000000..710f90e
--- /dev/null
@@ -0,0 +1,1376 @@
+%%
+%%
+
+\chapter{Testing Your Tape Drive With Bacula}
+\label{TapeTestingChapter}
+\index[general]{Testing Your Tape Drive With Bacula}
+
+This chapter is concerned with testing and configuring your tape drive to make
+sure that it will work properly with Bacula using the {\bf btape} program. 
+\label{summary}
+
+\section{Get Your Tape Drive Working}
+
+In general, you should follow the following steps to get your tape drive to
+work with Bacula. Start with a tape mounted in your drive. If you have an
+autochanger, load a tape into the drive. We use {\bf /dev/nst0} as the tape
+drive name, you will need to adapt it according to your system. 
+
+Do not proceed to the next item until you have succeeded with the previous
+one. 
+
+\begin{enumerate}
+\item Make sure that Bacula (the Storage daemon) is not running
+  or that you have {\bf unmount}ed the drive you will use 
+  for testing.
+
+\item Use tar to write to, then read from your drive:  
+
+   \footnotesize
+\begin{verbatim}
+   mt -f /dev/nst0 rewind
+   tar cvf /dev/nst0 .
+   mt -f /dev/nst0 rewind
+   tar tvf /dev/nst0
+   
+\end{verbatim}
+\normalsize
+
+\item Make sure you have a valid and correct Device resource corresponding
+   to your drive.  For Linux users, generally, the default one works.  For
+   FreeBSD users, there are two possible Device configurations (see below).
+   For other drives and/or OSes, you will need to first ensure that your
+   system tape modes are properly setup (see below), then possibly modify 
+   you Device resource depending on the output from the btape program (next
+   item). When doing this, you should consult the \ilink{Storage Daemon
+   Configuration}{StoredConfChapter} of this manual.
+
+\item If you are using a Fibre Channel to connect your tape drive to
+   Bacula, please be sure to disable any caching in the NSR (network
+   storage router, which is a Fibre Channel to SCSI converter).
+
+\item Run the btape {\bf test} command:  
+
+   \footnotesize
+\begin{verbatim}
+   ./btape -c bacula-sd.conf /dev/nst0
+   test
+   
+\end{verbatim}
+\normalsize
+
+   It isn't necessary to run the autochanger part of the test at this time,
+   but do not go past this point until the basic test succeeds.  If you do
+   have an autochanger, please be sure to read the \ilink{Autochanger
+   chapter}{AutochangersChapter} of this manual.
+
+\item Run the btape {\bf fill} command, preferably with two volumes.  This
+   can take a long time. If you have an autochanger and it  is configured, Bacula
+   will automatically use it. If you do  not have it configured, you can manually
+   issue the appropriate  {\bf mtx} command, or press the autochanger buttons to
+   change  the tape when requested to do so. 
+
+\item FreeBSD users, if you have a pre-5.0 system run the {\bf tapetest}
+   program, and make sure your system is patched if necessary. The tapetest
+   program can be found in the platform/freebsd directory. The instructions
+   for its use are at the top of the file.
+
+\item Run Bacula, and backup a reasonably small directory, say 60
+   Megabytes.  Do three successive backups of this directory.
+
+\item Stop Bacula, then restart it.  Do another full backup of the same
+   directory.  Then stop and restart Bacula.
+
+\item Do a restore of the directory backed up, by entering the  following
+   restore command, being careful to restore it to  an alternate location:  
+
+
+\footnotesize
+\begin{verbatim}
+   restore select all done
+   yes
+   
+\end{verbatim}
+\normalsize
+
+   Do a {\bf diff} on the restored directory to ensure it is identical  to the
+   original directory. If you are going to backup multiple different systems
+   (Linux, Windows, Mac, Solaris, FreeBSD, ...), be sure you test the restore
+   on each system type.
+
+\item If you have an autochanger, you should now go back to the  btape program
+   and run the autochanger test:  
+
+\footnotesize
+\begin{verbatim}
+     ./btape -c bacula-sd.conf /dev/nst0
+     auto
+     
+\end{verbatim}
+\normalsize
+
+   Adjust your autochanger as necessary to ensure that it works  correctly. See
+   the Autochanger chapter of this manual  for a complete discussion of testing
+   your autochanger.  
+
+\item We strongly recommend that you use a dedicated SCSI
+   controller for your tape drives. Scanners are known to induce
+   serious problems with the SCSI bus, causing it to reset. If the
+   SCSI bus is reset while Bacula has the tape drive open, it will
+   most likely be fatal to your tape since the drive will rewind.
+   These kinds of problems show up in the system log. For example,
+   the following was most likely caused by a scanner:
+
+\footnotesize
+\begin{verbatim}
+Feb 14 17:29:55 epohost kernel: (scsi0:A:2:0): No or incomplete CDB sent to device.
+Feb 14 17:29:55 epohost kernel: scsi0: Issued Channel A Bus Reset. 1 SCBs aborted
+\end{verbatim}
+\normalsize
+
+\end{enumerate}
+
+If you have reached this point, you stand a good chance of having everything
+work. If you get into trouble at any point, {\bf carefully} read the
+documentation given below. If you cannot get past some point, ask the {\bf
+bacula-users} email list, but specify which of the steps you have successfully
+completed. In particular, you may want to look at the 
+\ilink{ Tips for Resolving Problems}{problems1} section below. 
+
+
+\label{NoTapeInDrive}
+\subsection{Problems When no Tape in Drive}
+\index[general]{Problems When no Tape in Drive}
+When Bacula was first written the Linux 2.4 kernel permitted opening the
+drive whether or not there was a tape in the drive. Thus the Bacula code is
+based on the concept that if the drive cannot be opened, there is a serious
+problem, and the job is failed.
+
+With version 2.6 of the Linux kernel, if there is no tape in the drive, the
+OS will wait two minutes (default) and then return a failure, and consequently,
+Bacula version 1.36 and below will fail the job.  This is important to keep
+in mind, because if you use an option such as {\bf Offline on Unmount =
+yes}, there will be a point when there is no tape in the drive, and if
+another job starts or if Bacula asks the operator to mount a tape, when
+Bacula attempts to open the drive (about a 20 minute delay), it will fail
+and Bacula will fail the job.
+
+In version 1.38.x, the Bacula code partially gets around this problem -- at
+least in the initial open of the drive.  However, functions like Polling
+the drive do not work correctly if there is no tape in the drive.
+Providing you do not use {\bf Offline on Unmount = yes}, you should not
+experience job failures as mentioned above.  If you do experience such
+failures, you can also increase the {\bf Maximum Open Wait} time interval,
+which will give you more time to mount the next tape before the job is
+failed.
+
+\subsection{Specifying the Configuration File}
+\index[general]{File!Specifying the Configuration}
+\index[general]{Specifying the Configuration File}
+
+Starting with version 1.27, each of the tape utility programs including the
+{\bf btape} program requires a valid Storage daemon configuration file
+(actually, the only part of the configuration file that {\bf btape} needs is
+the {\bf Device} resource definitions). This permits {\bf btape} to find the
+configuration parameters for your archive device (generally a tape drive).
+Without those parameters, the testing and utility programs do not know how to
+properly read and write your drive. By default, they use {\bf bacula-sd.conf}
+in the current directory, but you may specify a different configuration file
+using the {\bf -c} option. 
+
+\subsection{Specifying a Device Name For a Tape}
+\index[general]{Tape!Specifying a Device Name For a}
+\index[general]{Specifying a Device Name For a Tape}
+
+{\bf btape} {\bf device-name} where the Volume can be found. In the case of a
+tape, this is the physical device name such as {\bf /dev/nst0} or {\bf
+/dev/rmt/0ubn} depending on your system that you specify on the Archive Device
+directive. For the program to work, it must find the identical name in the
+Device resource of the configuration file. If the name is not found in the
+list of physical names, the utility program will compare the name you entered
+to the Device names (rather than the Archive device names). 
+
+When specifying a tape device, it is preferable that the "non-rewind"
+variant of the device file name be given.  In addition, on systems such as
+Sun, which have multiple tape access methods, you must be sure to specify
+to use Berkeley I/O conventions with the device.  The
+{\bf b} in the Solaris (Sun) archive specification {\bf /dev/rmt/0mbn} is
+what is needed in this case.  Bacula does not support SysV tape drive
+behavior.
+
+See below for specifying Volume names. 
+
+\subsection{Specifying a Device Name For a File}
+\index[general]{File!Specifying a Device Name For a}
+\index[general]{Specifying a Device Name For a File}
+
+If you are attempting to read or write an archive file rather than a tape, the
+{\bf device-name} should be the full path to the archive location including
+the filename. The filename (last part of the specification) will be stripped
+and used as the Volume name, and the path (first part before the filename)
+must have the same entry in the configuration file. So, the path is equivalent
+to the archive device name, and the filename is equivalent to the volume name.
+
+
+\section{btape}
+\label{btape1}
+\index[general]{Btape}
+
+This program permits a number of elementary tape operations via a tty command
+interface. The {\bf test} command, described below, can be very useful for
+testing tape drive compatibility problems. Aside from initial testing of tape
+drive compatibility with {\bf Bacula}, {\bf btape} will be mostly used by
+developers writing new tape drivers. 
+
+{\bf btape} can be dangerous to use with existing {\bf Bacula} tapes because
+it will relabel a tape or write on the tape if so requested regardless of
+whether or not the tape contains valuable data, so please be careful and use
+it only on blank tapes. 
+
+To work properly, {\bf btape} needs to read the Storage daemon's configuration
+file. As a default, it will look for {\bf bacula-sd.conf} in the current
+directory. If your configuration file is elsewhere, please use the {\bf -c}
+option to specify where. 
+
+The physical device name or the Device resource name must be specified on the
+command line, and this same device name must be present in the Storage
+daemon's configuration file read by {\bf btape} 
+
+\footnotesize
+\begin{verbatim}
+Usage: btape [options] device_name
+       -b <file>   specify bootstrap file
+       -c <file>   set configuration file to file
+       -d <nn>     set debug level to nn
+       -p          proceed inspite of I/O errors
+       -s          turn off signals
+       -v          be verbose
+       -?          print this message.
+\end{verbatim}
+\normalsize
+
+\subsection{Using btape to Verify your Tape Drive}
+\index[general]{Using btape to Verify your Tape Drive}
+\index[general]{Drive!Using btape to Verify your Tape}
+
+An important reason for this program is to ensure that a Storage daemon
+configuration file is defined so that Bacula will correctly read and write
+tapes. 
+
+It is highly recommended that you run the {\bf test} command before running
+your first Bacula job to ensure that the parameters you have defined for your
+storage device (tape drive) will permit {\bf Bacula} to function properly. You
+only need to mount a blank tape, enter the command, and the output should be
+reasonably self explanatory. For example: 
+
+\footnotesize
+\begin{verbatim}
+(ensure that Bacula is not running)
+./btape -c /usr/bin/bacula/bacula-sd.conf /dev/nst0
+\end{verbatim}
+\normalsize
+
+The output will be: 
+
+\footnotesize
+\begin{verbatim}
+Tape block granularity is 1024 bytes.
+btape: btape.c:376 Using device: /dev/nst0
+*
+\end{verbatim}
+\normalsize
+
+Enter the test command: 
+
+\footnotesize
+\begin{verbatim}
+test
+\end{verbatim}
+\normalsize
+
+The output produced should be something similar to the following: I've cut the
+listing short because it is frequently updated to have new tests. 
+
+\footnotesize
+\begin{verbatim}
+=== Append files test ===
+This test is essential to Bacula.
+I'm going to write one record  in file 0,
+                   two records in file 1,
+             and three records in file 2
+btape: btape.c:387 Rewound /dev/nst0
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:410 Wrote EOF to /dev/nst0
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:410 Wrote EOF to /dev/nst0
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:855 Wrote one record of 64412 bytes.
+btape: btape.c:857 Wrote block to device.
+btape: btape.c:410 Wrote EOF to /dev/nst0
+btape: btape.c:387 Rewound /dev/nst0
+btape: btape.c:693 Now moving to end of media.
+btape: btape.c:427 Moved to end of media
+We should be in file 3. I am at file 3. This is correct!
+Now the important part, I am going to attempt to append to the tape.
+...
+=== End Append files test ===
+\end{verbatim}
+\normalsize
+
+If you do not successfully complete the above test, please resolve the
+problem(s) before attempting to use {\bf Bacula}. Depending on your tape
+drive, the test may recommend that you add certain records to your
+configuration. We strongly recommend that you do so and then re-run the above
+test to insure it works the first time. 
+
+Some of the suggestions it provides for resolving the problems may or may not
+be useful. If at all possible avoid using fixed blocking. If the test suddenly
+starts to print a long series of: 
+
+\footnotesize
+\begin{verbatim}
+Got EOF on tape.
+Got EOF on tape.
+...
+\end{verbatim}
+\normalsize
+
+then almost certainly, you are running your drive in fixed block mode rather
+than variable block mode. See below for more help of resolving fix
+versus variable block problems.
+
+It is also possible that you have your drive
+set in SysV tape drive mode. The drive must use BSD tape conventions.
+See the section above on setting your {\bf Archive device} correctly.
+
+For FreeBSD users, please see the notes below for doing further testing of
+your tape drive. 
+
+\subsection{Testing tape drive speed}
+\label{sec:btapespeed}
+
+To determine the best configuration of your tape drive, you can run the
+\texttt{speed} command available in the \texttt{btape} program.
+
+This command can have the following arguments:
+\begin{itemize}
+\item[\texttt{file\_size=n}] Specify the Maximum File Size for this test
+  (between 1 and 5GB). This counter is in GB.
+\item[\texttt{nb\_file=n}] Specify the number of file to be written. The amount
+  of data should be greater than your memory ($file\_size*nb\_file$).
+\item[\texttt{skip\_zero}] This flag permits to skip tests with constant
+  data.
+\item[\texttt{skip\_random}] This flag permits to skip tests with random
+  data.
+\item[\texttt{skip\_raw}] This flag permits to skip tests with raw access.
+\item[\texttt{skip\_block}] This flag permits to skip tests with Bacula block
+  access.
+\end{itemize}
+
+\begin{verbatim}
+*speed file_size=3 skip_raw
+btape.c:1078 Test with zero data and bacula block structure.
+btape.c:956 Begin writing 3 files of 3.221 GB with blocks of 129024 bytes.
+++++++++++++++++++++++++++++++++++++++++++
+btape.c:604 Wrote 1 EOF to "Drive-0" (/dev/nst0)
+btape.c:406 Volume bytes=3.221 GB. Write rate = 44.128 MB/s
+...
+btape.c:383 Total Volume bytes=9.664 GB. Total Write rate = 43.531 MB/s
+
+btape.c:1090 Test with random data, should give the minimum throughput.
+btape.c:956 Begin writing 3 files of 3.221 GB with blocks of 129024 bytes.
++++++++++++++++++++++++++++++++++++++++++++
+btape.c:604 Wrote 1 EOF to "Drive-0" (/dev/nst0)
+btape.c:406 Volume bytes=3.221 GB. Write rate = 7.271 MB/s
++++++++++++++++++++++++++++++++++++++++++++
+...
+btape.c:383 Total Volume bytes=9.664 GB. Total Write rate = 7.365 MB/s
+
+\end{verbatim}
+
+When using compression, the random test will give your the minimum throughput
+of your drive . The test using constant string will give you the maximum speed
+of your hardware chain. (cpu, memory, scsi card, cable, drive, tape).
+
+You can change the block size in the Storage Daemon configuration file.
+
+\label{SCSITricks}
+\subsection{Linux SCSI Tricks}
+\index[general]{Tricks!Linux SCSI}
+\index[general]{Linux SCSI Tricks}
+
+You can find out what SCSI devices you have by doing: 
+
+\footnotesize
+\begin{verbatim}
+lsscsi
+\end{verbatim}
+\normalsize
+
+Typical output is:
+
+\footnotesize
+\begin{verbatim}
+[0:0:0:0]    disk    ATA      ST3160812AS      3.AD  /dev/sda
+[2:0:4:0]    tape    HP       Ultrium 2-SCSI   F6CH  /dev/st0
+[2:0:5:0]    tape    HP       Ultrium 2-SCSI   F6CH  /dev/st1
+[2:0:6:0]    mediumx OVERLAND LXB              0107  -
+[2:0:9:0]    tape    HP       Ultrium 1-SCSI   E50H  /dev/st2
+[2:0:10:0]   mediumx OVERLAND LXB              0107  -
+\end{verbatim}
+\normalsize
+
+There are two drives in one autochanger: /dev/st0 and /dev/st1
+and a third tape drive at /dev/st2.  For using them with Bacula, one
+would normally reference them as /dev/nst0 ... /dev/nst2.  Not also,
+there are two different autochangers identified as "mediumx OVERLAND LXB".
+They can be addressed via their /dev/sgN designation, which can be
+obtained by counting from the beginning as 0 to each changer.  In the
+above case, the two changers are located on /dev/sg3 and /dev/sg5. The one
+at /dev/sg3, controls drives /dev/nst0 and /dev/nst1; and the one at
+/dev/sg5 controles drive /dev/nst2.
+
+If you do not have the {\bf lsscsi}  command, you can obtain the same
+information as follows:
+
+\footnotesize
+\begin{verbatim}
+cat /proc/scsi/scsi
+\end{verbatim}
+\normalsize
+
+For the above example with the three drives and two autochangers,
+I get:
+
+\footnotesize       
+\begin{verbatim}
+Attached devices:
+Host: scsi0 Channel: 00 Id: 00 Lun: 00
+  Vendor: ATA      Model: ST3160812AS      Rev: 3.AD
+  Type:   Direct-Access                    ANSI SCSI revision: 05
+Host: scsi2 Channel: 00 Id: 04 Lun: 00
+  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 05 Lun: 00
+  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 06 Lun: 00
+  Vendor: OVERLAND Model: LXB              Rev: 0107
+  Type:   Medium Changer                   ANSI SCSI revision: 02
+Host: scsi2 Channel: 00 Id: 09 Lun: 00
+  Vendor: HP       Model: Ultrium 1-SCSI   Rev: E50H
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 10 Lun: 00
+  Vendor: OVERLAND Model: LXB              Rev: 0107
+  Type:   Medium Changer                   ANSI SCSI revision: 02
+\end{verbatim}
+\normalsize
+
+
+As an additional example, I get the following (on a different machine from the
+above example):
+
+\footnotesize
+\begin{verbatim}
+Attached devices:
+Host: scsi2 Channel: 00 Id: 01 Lun: 00
+  Vendor: HP       Model: C5713A           Rev: H107
+  Type:   Sequential-Access                ANSI SCSI revision: 02
+Host: scsi2 Channel: 00 Id: 04 Lun: 00
+  Vendor: SONY     Model: SDT-10000        Rev: 0110
+  Type:   Sequential-Access                ANSI SCSI revision: 02
+\end{verbatim}
+\normalsize
+
+The above represents first an autochanger and second a simple
+tape drive. The HP changer (the first entry) uses the same SCSI channel
+for data and for control, so in Bacula, you would use: 
+\footnotesize
+\begin{verbatim}
+Archive Device = /dev/nst0
+Changer Device = /dev/sg0
+\end{verbatim}
+\normalsize
+
+If you want to remove the SDT-10000 device, you can do so as root with: 
+
+\footnotesize
+\begin{verbatim}
+echo "scsi remove-single-device 2 0 4 0">/proc/scsi/scsi
+\end{verbatim}
+\normalsize
+
+and you can put add it back with: 
+
+\footnotesize
+\begin{verbatim}
+echo "scsi add-single-device 2 0 4 0">/proc/scsi/scsi
+\end{verbatim}
+\normalsize
+
+where the 2 0 4 0 are the Host, Channel, Id, and Lun as seen on the output
+from {\bf cat /proc/scsi/scsi}. Note, the Channel must be specified as
+numeric. 
+
+Below is a slightly more complicated output, which is a single autochanger
+with two drives, and which operates the changer on a different channel
+from from the drives:
+
+\footnotesize
+\begin{verbatim}
+Attached devices:
+Host: scsi0 Channel: 00 Id: 00 Lun: 00
+  Vendor: ATA      Model: WDC WD1600JD-75H Rev: 08.0
+  Type:   Direct-Access                    ANSI SCSI revision: 05
+Host: scsi2 Channel: 00 Id: 04 Lun: 00
+  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 05 Lun: 00
+  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
+  Type:   Sequential-Access                ANSI SCSI revision: 03
+Host: scsi2 Channel: 00 Id: 06 Lun: 00
+  Vendor: OVERLAND Model: LXB              Rev: 0106
+  Type:   Medium Changer                   ANSI SCSI revision: 02
+\end{verbatim}
+\normalsize
+
+The above tape drives are accessed on /dev/nst0 and /dev/nst1, while
+the control channel for those two drives is /dev/sg3.
+
+
+
+\label{problems1}
+\section{Tips for Resolving Problems}
+\index[general]{Problems!Tips for Resolving}
+\index[general]{Tips for Resolving Problems}
+
+\label{CannotRestore}
+\subsection{Bacula Saves But Cannot Restore Files}
+\index[general]{Files!Bacula Saves But Cannot Restore}
+\index[general]{Bacula Saves But Cannot Restore Files}
+
+If you are getting error messages such as: 
+
+\footnotesize
+\begin{verbatim}
+Volume data error at 0:1! Wanted block-id: "BB02", got "". Buffer discarded
+\end{verbatim}
+\normalsize
+
+It is very likely that Bacula has tried to do block positioning and ended up
+at an invalid block. This can happen if your tape drive is in fixed block mode
+while Bacula's default is variable blocks. Note that in such cases, Bacula is
+perfectly able to write to your Volumes (tapes), but cannot position to read
+them. 
+
+There are two possible solutions. 
+
+\begin{enumerate}
+\item The first and  best is to always ensure that your drive is in  variable
+   block mode. Note, it can switch back to  fixed block mode on a reboot or if
+   another program  uses the drive. So on such systems you  need to modify the
+   Bacula startup files  to explicitly set: 
+
+\footnotesize
+\begin{verbatim}
+mt -f /dev/nst0 defblksize 0
+\end{verbatim}
+\normalsize
+
+or whatever is appropriate on your system. Note, if you are running a Linux
+system, and the above command does not work, it is most likely because you
+have not loaded the appropriate {\bf mt} package, which is often called
+{\bf mt\_st}, but may differ according to your distribution.
+
+\item The second possibility, especially, if Bacula wrote  while the drive was
+   in fixed block mode, is to turn  off block positioning in Bacula. This is done
+   by  adding: 
+
+\footnotesize
+\begin{verbatim}
+Block Positioning = no
+\end{verbatim}
+\normalsize
+
+to the Device resource. This is not the recommended  procedure because it can
+enormously slow down  recovery of files, but it may help where all else 
+fails. This directive is available in version 1.35.5  or later (and not yet
+tested).  
+\end{enumerate}
+
+If you are getting error messages such as:
+\footnotesize
+\begin{verbatim}
+Volume data error at 0:0!
+Block checksum mismatch in block=0 len=32625 calc=345678 blk=123456
+\end{verbatim}
+\normalsize
+
+You are getting tape read errors, and this is most likely due to 
+one of the following things:
+\begin{enumerate}
+\item An old or bad tape.
+\item A dirty drive that needs cleaning (particularly for DDS drives).
+\item A loose SCSI cable.
+\item Old firmware in your drive. Make sure you have the latest firmware
+      loaded.
+\item Computer memory errors.
+\item Over-clocking your CPU.
+\item A bad SCSI card.
+\end{enumerate}
+
+
+\label{opendevice}
+\subsection{Bacula Cannot Open the Device}
+\index[general]{Device!Bacula Cannot Open the}
+\index[general]{Bacula Cannot Open the Device}
+
+If you get an error message such as: 
+
+\footnotesize
+\begin{verbatim}
+dev open failed: dev.c:265 stored: unable to open
+device /dev/nst0:> ERR=No such device or address
+\end{verbatim}
+\normalsize
+
+the first time you run a job, it is most likely due to the fact that you
+specified the incorrect device name on your {\bf Archive Device}. 
+
+If Bacula works fine with your drive, then all off a sudden you get error
+messages similar to the one shown above, it is quite possible that your driver
+module is being removed because the kernel deems it idle. This is done via
+{\bf crontab} with the use of {\bf rmmod -a}. To fix the problem, you can
+remove this entry from {\bf crontab}, or you can manually {\bf modprob} your
+driver module (or add it to the local startup script). Thanks to Alan Brown
+for this tip. 
+\label{IncorrectFiles}
+
+\subsection{Incorrect File Number}
+\index[general]{Number!Incorrect File}
+\index[general]{Incorrect File Number}
+
+When Bacula moves to the end of the medium, it normally uses the {\bf
+ioctl(MTEOM)} function. Then Bacula uses the {\bf ioctl(MTIOCGET)} function to
+retrieve the current file position from the {\bf mt\_fileno} field. Some SCSI
+tape drivers will use a fast means of seeking to the end of the medium and in
+doing so, they will not know the current file position and hence return a {\bf
+-1}. As a consequence, if you get {\bf "This is NOT correct!"} in the
+positioning tests, this may be the cause. You must correct this condition in
+order for Bacula to work. 
+
+There are two possible solutions to the above problem of incorrect file
+number: 
+
+\begin{itemize}
+\item Figure out how to configure your SCSI driver to  keep track of the file
+   position during the MTEOM  request. This is the preferred solution.  
+\item Modify the {\bf Device} resource of your {\bf bacula-sd.conf} file  to
+   include:  
+
+\footnotesize
+\begin{verbatim}
+Hardware End of File = no
+\end{verbatim}
+\normalsize
+
+This will cause Bacula to use the MTFSF request to  seek to the end of the
+medium, and Bacula will keep  track of the file number itself. 
+\end{itemize}
+
+\label{IncorrectBlocks}
+\subsection{Incorrect Number of Blocks or Positioning Errors}
+\index[general]{Testing!Incorrect Number of Blocks or Positioning Errors}
+\index[general]{Incorrect Number of Blocks or Positioning Errors}
+
+{\bf Bacula's} preferred method of working with tape drives (sequential
+devices) is to run in variable block mode, and this is what is set by default.
+You should first ensure that your tape drive is set for variable block mode
+(see below). 
+
+If your tape drive is in fixed block mode and you have told Bacula to use
+different fixed block sizes or variable block sizes (default), you will get
+errors when Bacula attempts to forward space to the correct block (the kernel
+driver's idea of tape blocks will not correspond to Bacula's). 
+
+All modern tape drives support variable tape blocks, but some older drives (in
+particular the QIC drives) as well as the ATAPI ide-scsi driver run only in
+fixed block mode. The Travan tape drives also apparently must run in fixed
+block mode (to be confirmed). 
+
+Even in variable block mode, with the exception of the first record on the
+second or subsequent volume of a multi-volume backup, Bacula will write blocks
+of a fixed size. However, in reading a tape, Bacula will assume that for each
+read request, exactly one block from the tape will be transferred. This the
+most common way that tape drives work and is well supported by {\bf Bacula}. 
+
+Drives that run in fixed block mode can cause serious problems for Bacula if
+the drive's block size does not correspond exactly to {\bf Bacula's} block
+size. In fixed block size mode, drivers may transmit a partial block or
+multiple blocks for a single read request. From {\bf Bacula's} point of view,
+this destroys the concept of tape blocks. It is much better to run in variable
+block mode, and almost all modern drives (the OnStream is an exception) run in
+variable block mode. In order for Bacula to run in fixed block mode, you must
+include the following records in the Storage daemon's Device resource
+definition: 
+
+\footnotesize
+\begin{verbatim}
+Minimum Block Size = nnn
+Maximum Block Size = nnn
+\end{verbatim}
+\normalsize
+
+where {\bf nnn} must be the same for both records and must be identical to the
+driver's fixed block size. 
+
+We recommend that you avoid this configuration if at all possible by using
+variable block sizes. 
+
+If you must run with fixed size blocks, make sure they are not 512 bytes. This
+is too small and the overhead that Bacula has with each record will become
+excessive. If at all possible set any fixed block size to something like
+64,512 bytes or possibly 32,768 if 64,512 is too large for your drive. See
+below for the details on checking and setting the default drive block size. 
+
+To recover files from tapes written in fixed block mode, see below. 
+
+\label{TapeModes}
+\subsection{Ensuring that the Tape Modes Are Properly Set -- {\bf Linux
+Only}}
+\index[general]{Ensuring that the Tape Modes Are Properly Set -- Linux Only}
+
+If you have a modern SCSI tape drive and you are having problems with the {\bf
+test} command as noted above, it may be that some program has set one or more
+of your SCSI driver's options to non-default values. For example, if your
+driver is set to work in SysV manner, Bacula will not work correctly because
+it expects BSD behavior. To reset your tape drive to the default values, you
+can try the following, but {\bf ONLY} if you have a SCSI tape drive on a {\bf
+Linux} system: 
+
+\footnotesize
+\begin{verbatim}
+become super user
+mt -f /dev/nst0 rewind
+mt -f /dev/nst0 stoptions buffer-writes async-writes read-ahead
+\end{verbatim}
+\normalsize
+
+The above commands will clear all options and then set those specified. None
+of the specified options are required by Bacula, but a number of other options
+such as SysV behavior must not be set. Bacula does not support SysV tape
+behavior. On systems other than Linux, you will need to consult your {\bf mt}
+man pages or documentation to figure out how to do the same thing. This should
+not really be necessary though -- for example, on both Linux and Solaris
+systems, the default tape driver options are compatible with Bacula. 
+On Solaris systems, you must take care to specify the correct device
+name on the {\bf Archive device} directive. See above for more details.
+
+You may also want to ensure that no prior program has set the default block
+size, as happened to one user, by explicitly turning it off with: 
+
+\footnotesize
+\begin{verbatim}
+mt -f /dev/nst0 defblksize 0
+\end{verbatim}
+\normalsize
+
+If you are running a Linux
+system, and the above command does not work, it is most likely because you
+have not loaded the appropriate {\bf mt} package, which is often called
+{\bf mt\_st}, but may differ according to your distribution.
+
+If you would like to know what options you have set before making any of the
+changes noted above, you can now view them on Linux systems, thanks to a tip
+provided by Willem Riede. Do the following: 
+
+\footnotesize
+\begin{verbatim}
+become super user
+mt -f /dev/nst0 stsetoptions 0
+grep st0 /var/log/messages
+\end{verbatim}
+\normalsize
+
+and you will get output that looks something like the following: 
+
+\footnotesize
+\begin{verbatim}
+kernel: st0: Mode 0 options: buffer writes: 1, async writes: 1, read ahead: 1
+kernel: st0:    can bsr: 0, two FMs: 0, fast mteom: 0, auto lock: 0,
+kernel: st0:    defs for wr: 0, no block limits: 0, partitions: 0, s2 log: 0
+kernel: st0:    sysv: 0 nowait: 0
+\end{verbatim}
+\normalsize
+
+Note, I have chopped off the beginning of the line with the date and machine
+name for presentation purposes. 
+
+Some people find that the above settings only last until the next reboot, so
+please check this otherwise you may have unexpected problems. 
+
+Beginning with Bacula version 1.35.8, if Bacula detects that you are running
+in variable block mode, it will attempt to set your drive appropriately. All
+OSes permit setting variable block mode, but some OSes do not permit setting
+the other modes that Bacula needs to function properly. 
+
+\label{compression}
+\subsection{Tape Hardware Compression and Blocking Size}
+\index[general]{Tape Hardware Compression and Blocking Size}
+\index[general]{Size!Tape Hardware Compression and Blocking Size}
+
+You should be able to verify the tape compression status with sysfs on Linux.
+\begin{verbatim}
+cat /sys/class/scsi_tape/nst0/default_compression
+\end{verbatim}
+
+You can, turn it on by using (on Linux): 
+
+\footnotesize
+\begin{verbatim}
+become super user
+mt -f /dev/nst0 defcompression 1
+\end{verbatim}
+\normalsize
+
+and of course, if you use a zero instead of the one at the end, you will turn
+it off. 
+
+If you have built the {\bf mtx} program in the {\bf depkgs} package, you can
+use tapeinfo to get quite a bit of information about your tape drive even if
+it is not an autochanger. This program is called using the SCSI control
+device. On Linux for tape drive /dev/nst0, this is usually /dev/sg0, while on
+FreeBSD for /dev/nsa0, the control device is often /dev/pass2. For example on
+my DDS-4 drive (/dev/nst0), I get the following: 
+
+\footnotesize
+\begin{verbatim}
+tapeinfo -f /dev/sg0
+Product Type: Tape Drive
+Vendor ID: 'HP      '
+Product ID: 'C5713A          '
+Revision: 'H107'
+Attached Changer: No
+MinBlock:1
+MaxBlock:16777215
+SCSI ID: 5
+SCSI LUN: 0
+Ready: yes
+BufferedMode: yes
+Medium Type: Not Loaded
+Density Code: 0x26
+BlockSize: 0             
+\end{verbatim}
+\normalsize
+
+where the {\bf DataCompEnabled: yes} means that tape hardware compression is
+turned on. You can turn it on and off (yes|no) by using the {\bf mt}
+commands given above. Also, this output will tell you if the {\bf BlockSize}
+is non-zero and hence set for a particular block size. Bacula is not likely to
+work in such a situation because it will normally attempt to write blocks of
+64,512 bytes, except the last block of the job which will generally be
+shorter. The first thing to try is setting the default block size to zero
+using the {\bf mt -f /dev/nst0 defblksize 0} command as shown above.
+On FreeBSD, this would be something like: {\bf mt -f /dev/nsa0 blocksize 0}. 
+
+On some operating systems with some tape drives, the amount of data that
+can be written to the tape and whether or not compression is enabled is
+determined by the density usually the {\bf mt -f /dev/nst0 setdensity xxx} command.
+Often  {\bf mt -f /dev/nst0 status} will print out the current
+density code that is used with the drive.  Most systems, but unfortunately
+not all, set the density to the maximum by default. On some systems, you
+can also get a list of all available density codes with:
+{\bf mt -f /dev/nst0 densities} or a similar {\bf mt} command.
+Note, for DLT and SDLT devices, no-compression versus compression is very 
+often controlled by the density code.  On FreeBSD systems, the compression
+mode is set using {\bf mt -f /dev/nsa0 comp xxx} where xxx is the
+mode you want.  In general, see {\bf man mt}  for the options available on
+your system.
+
+Note, some of the above {\bf mt} commands may not be persistent depending
+on your system configuration. That is they may be reset if a program  
+other than Bacula uses the drive or, as is frequently the case, on reboot
+of your system.
+                   
+If your tape drive requires fixed block sizes (very unusual), you can use the
+following records: 
+
+\footnotesize
+\begin{verbatim}
+Minimum Block Size = nnn
+Maximum Block Size = nnn
+\end{verbatim}
+\normalsize
+
+in your Storage daemon's Device resource to force Bacula to write fixed size
+blocks (where you sent nnn to be the same for both of the above records). This
+should be done only if your drive does not support variable block sizes, or
+you have some other strong reasons for using fixed block sizes. As mentioned
+above, a small fixed block size of 512 or 1024 bytes will be very inefficient.
+Try to set any fixed block size to something like 64,512 bytes or larger if
+your drive will support it. 
+
+Also, note that the {\bf Medium Type} field of the output of {\bf tapeinfo}
+reports {\bf Not Loaded}, which is not correct. As a consequence, you should
+ignore that field as well as the {\bf Attached Changer} field. 
+
+To recover files from tapes written in fixed block mode, see below. 
+\label{FreeBSDTapes}
+
+\subsection{Tape Modes on FreeBSD}
+\index[general]{FreeBSD!Tape Modes on}
+\index[general]{Tape Modes on FreeBSD}
+
+On most FreeBSD systems such as 4.9 and most tape drives, Bacula should run
+with: 
+
+\footnotesize
+\begin{verbatim}
+mt  -f  /dev/nsa0  seteotmodel  2
+mt  -f  /dev/nsa0  blocksize   0
+mt  -f  /dev/nsa0  comp  enable
+\end{verbatim}
+\normalsize
+
+You might want to put those commands in a startup script to make sure your
+tape driver is properly initialized before running Bacula, because
+depending on your system configuration, these modes may be reset if a      
+program other than Bacula uses the drive or when your system is rebooted.
+
+Then according to what the {\bf btape test} command returns, you will probably
+need to set the following (see below for an alternative): 
+
+\footnotesize
+\begin{verbatim}
+  Hardware End of Medium = no
+  BSF at EOM = yes
+  Backward Space Record = no
+  Backward Space File = no
+  Fast Forward Space File = no
+  TWO EOF = yes
+\end{verbatim}
+\normalsize
+
+Then be sure to run some append tests with Bacula where you start and stop
+Bacula between appending to the tape, or use {\bf btape} version 1.35.1 or
+greater, which includes simulation of stopping/restarting Bacula. 
+
+Please see the file {\bf platforms/freebsd/pthreads-fix.txt} in the main
+Bacula directory concerning {\bf important} information concerning
+compatibility of Bacula and your system. A much more optimal Device
+configuration is shown below, but does not work with all tape drives. Please
+test carefully before putting either into production. 
+
+Note, for FreeBSD 4.10-RELEASE, using a Sony TSL11000 L100 DDS4 with an
+autochanger set to variable block size and DCLZ compression, Brian McDonald
+reports that to get Bacula to append correctly between Bacula executions,
+the correct values to use are:
+
+\footnotesize
+\begin{verbatim}
+mt  -f  /dev/nsa0  seteotmodel  1
+mt  -f  /dev/nsa0  blocksize  0
+mt  -f /dev/nsa0  comp  enable
+\end{verbatim}
+\normalsize
+
+and 
+
+\footnotesize
+\begin{verbatim}
+  Hardware End of Medium = no
+  BSF at EOM = no
+  Backward Space Record = no
+  Backward Space File = no
+  Fast Forward Space File = yes
+  TWO EOF = no
+\end{verbatim}
+\normalsize
+
+This has been confirmed by several other people using different hardware. This
+configuration is the preferred one because it uses one EOF and no backspacing
+at the end of the tape, which works much more efficiently and reliably with
+modern tape drives. 
+
+Finally, here is a Device configuration that Danny Butroyd reports to work
+correctly with the Overland Powerloader tape library using LT0-2 and
+FreeBSD 5.4-Stable:
+
+\footnotesize
+\begin{verbatim}
+# Overland Powerloader LT02 - 17 slots single drive
+Device {
+  Name = Powerloader
+  Media Type = LT0-2
+  Archive Device = /dev/nsa0
+  AutomaticMount = yes;              
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+  RandomAccess = no;
+  Changer Command = "/usr/local/sbin/mtx-changer %c %o %S %a %d"
+  Changer Device = /dev/pass2
+  AutoChanger = yes
+  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
+
+  # FreeBSD Specific Settings
+  Offline On Unmount = no
+  Hardware End of Medium = no
+  BSF at EOM = yes
+  Backward Space Record = no
+  Fast Forward Space File = no
+  TWO EOF = yes
+}
+
+The following Device resource works fine with Dell PowerVault 110T and
+120T devices on both FreeBSD 5.3 and on NetBSD 3.0.  It also works
+with Sony AIT-2 drives on FreeBSD.
+\footnotesize
+\begin{verbatim}
+Device {
+  ...
+  # FreeBSD/NetBSD Specific Settings
+  Hardware End of Medium = no
+  BSF at EOM = yes
+  Backward Space Record = no
+  Fast Forward Space File = yes
+  TWO EOF = yes
+}
+\end{verbatim}
+\normalsize
+
+On FreeBSD version 6.0, it is reported that you can even set
+Backward Space Record = yes.
+
+
+
+\subsection{Finding your Tape Drives and Autochangers on FreeBSD}
+\index[general]{FreeBSD!Finding Tape Drives and Autochangers}
+\index[general]{Finding Tape Drives and Autochangers on FreeBSD}
+
+On FreeBSD, you can do a {\bf camcontrol devlist} as root to determine what
+drives and autochangers you have. For example, 
+
+\footnotesize
+\begin{verbatim}
+undef# camcontrol devlist
+    at scbus0 target 2 lun 0 (pass0,sa0)
+    at scbus0 target 4 lun 0 (pass1,sa1)
+    at scbus0 target 4 lun 1 (pass2)
+\end{verbatim}
+\normalsize
+
+from the above, you can determine that there is a tape drive on {\bf /dev/sa0}
+and another on {\bf /dev/sa1} in addition since there is a second line for the
+drive on {\bf /dev/sa1}, you know can assume that it is the control device for
+the autochanger (i.e. {\bf /dev/pass2}). It is also the control device name to
+use when invoking the tapeinfo program. E.g. 
+
+\footnotesize
+\begin{verbatim}
+tapeinfo -f /dev/pass2
+\end{verbatim}
+\normalsize
+
+\label{onstream}
+
+\subsection{Using the OnStream driver on Linux Systems}
+\index[general]{Using the OnStream driver on Linux Systems}
+\index[general]{Systems!Using the OnStream driver on Linux}
+
+Bacula version 1.33 (not 1.32x) is now working and ready for testing with the
+OnStream kernel osst driver version 0.9.14 or above. Osst is available from: 
+\elink{http://sourceforge.net/projects/osst/}
+{http://sourceforge.net/projects/osst/}. 
+
+To make Bacula work you must first load the new driver then, as root, do: 
+
+\footnotesize
+\begin{verbatim}
+  mt -f /dev/nosst0 defblksize 32768
+\end{verbatim}
+\normalsize
+
+Also you must add the following to your Device resource in your Storage
+daemon's conf file: 
+
+\footnotesize
+\begin{verbatim}
+ Minimum Block Size = 32768
+ Maximum Block Size = 32768
+\end{verbatim}
+\normalsize
+
+Here is a Device specification provided by Michel Meyers that is known to
+work: 
+
+\footnotesize
+\begin{verbatim}
+Device {
+  Name = "Onstream DI-30"
+  Media Type = "ADR-30"
+  Archive Device = /dev/nosst0
+  Minimum Block Size = 32768
+  Maximum Block Size = 32768
+  Hardware End of Medium = yes
+  BSF at EOM = no
+  Backward Space File = yes
+  Fast Forward Space File = yes
+  Two EOF = no
+  AutomaticMount = yes
+  AlwaysOpen = yes
+  Removable Media = yes
+}
+\end{verbatim}
+\normalsize
+
+\section{Hardware Compression on EXB-8900}
+\index[general]{Hardware Compression on EXB-8900}
+\index[general]{EXB-8900!Hardware Compression}
+
+To active, check, or disable the hardware compression feature
+on an EXB-8900, use the exabyte MammothTool. You can get it here:
+\elink{http://www.exabyte.com/support/online/downloads/index.cfm}
+{http://www.exabyte.com/support/online/downloads/index.cfm}.
+There is a Solaris version of this tool. With option -C 0 or 1 you
+can disable or activate compression. Start this tool without any
+options for a small reference.
+
+\label{fill}
+\subsection{Using btape to Simulate Filling a Tape}
+\index[general]{Using btape to Simulate Filling a Tape}
+\index[general]{Tape!Using btape to Simulate Filling}
+
+Because there are often problems with certain tape drives or systems when end
+of tape conditions occur, {\bf btape} has a special command {\bf fill} that
+causes it to write random data to a tape until the tape fills. It then writes
+at least one more Bacula block to a second tape. Finally, it reads back both
+tapes to ensure that the data has been written in a way that Bacula can
+recover it. Note, there is also a single tape option as noted below, which you
+should use rather than the two tape test. See below for more details. 
+
+This can be an extremely time consuming process (here it is about 6 hours) to
+fill a full tape. Note, that btape writes random data to the tape when it is
+filling it. This has two consequences: 1. it takes a bit longer to generate
+the data, especially on slow CPUs. 2. the total amount of data is
+approximately the real physical capacity of your tape, regardless of whether
+or not the tape drive compression is on or off. This is because random data
+does not compress very much. 
+
+To begin this test, you enter the {\bf fill} command and follow the
+instructions. There are two options: the simple single tape option and the
+multiple tape option. Please use only the simple single tape option because
+the multiple tape option still doesn't work totally correctly. If the single
+tape option does not succeed, you should correct the problem before using
+Bacula. 
+\label{RecoveringFiles}
+
+\section{Recovering Files Written With Fixed Block Sizes}
+\index[general]{Recovering Files Written With Fixed Block Sizes}
+
+If you have been previously running your tape drive in fixed block mode
+(default 512) and Bacula with variable blocks (default), then in version
+1.32f-x and 1.34 and above, Bacula will fail to recover files because it does
+block spacing, and because the block sizes don't agree between your tape drive
+and Bacula it will not work. 
+
+The long term solution is to run your drive in variable block mode as
+described above. However, if you have written tapes using fixed block sizes,
+this can be a bit of a pain. The solution to the problem is: while you are
+doing a restore command using a tape written in fixed block size, ensure that
+your drive is set to the fixed block size used while the tape was written.
+Then when doing the {\bf restore} command in the Console program, do not
+answer the prompt {\bf yes/mod/no}. Instead, edit the bootstrap file (the
+location is listed in the prompt) using any ASCII editor. Remove all {\bf
+VolBlock} lines in the file. When the file is re-written, answer the question,
+and Bacula will run without using block positioning, and it should recover
+your files. 
+
+\label{BlockModes}
+\section{Tape Blocking Modes}
+\index[general]{Modes!Tape Blocking}
+\index[general]{Tape Blocking Modes}
+
+SCSI tapes may either be written in {\bf variable} or {\bf fixed} block sizes.
+Newer drives support both modes, but some drives such as the QIC devices
+always use fixed block sizes. Bacula attempts to fill and write complete
+blocks (default 65K), so that in normal mode (variable block size), Bacula
+will always write blocks of the same size except the last block of a Job. If
+Bacula is configured to write fixed block sizes, it will pad the last block of
+the Job to the correct size. Bacula expects variable tape block size drives to
+behave as follows: Each write to the drive results in a single record being
+written to the tape. Each read returns a single record. If you request less
+bytes than are in the record, only those number of bytes will be returned, but
+the entire logical record will have been read (the next read will retrieve the
+next record). Thus data from a single write is always returned in a single
+read, and sequentially written records are returned by sequential reads. 
+
+Bacula expects fixed block size tape drives to behave as follows: If a write
+length is greater than the physical block size of the drive, the write will be
+written as two blocks each of the fixed physical size. This single write may
+become multiple physical records on the tape. (This is not a good situation).
+According to the documentation, one may never write an amount of data that is
+not the exact multiple of the blocksize (it is not specified if an error
+occurs or if the the last record is padded). When reading, it is my
+understanding that each read request reads one physical record from the tape.
+Due to the complications of fixed block size tape drives, you should avoid
+them if possible with Bacula, or you must be ABSOLUTELY certain that you use
+fixed block sizes within Bacula that correspond to the physical block size of
+the tape drive. This will ensure that Bacula has a one to one correspondence
+between what it writes and the physical record on the tape. 
+
+Please note that Bacula will not function correctly if it writes a block and
+that block is split into two or more physical records on the tape. Bacula
+assumes that each write causes a single record to be written, and that it can
+sequentially recover each of the blocks it has written by using the same
+number of sequential reads as it had written. 
+
+\section{Details of Tape Modes}
+\index[general]{Modes!Details}
+\index[general]{Details of Tape Modes}
+Rudolf Cejka has provided the following information concerning
+certain tape modes and MTEOM.
+
+\begin{description}
+\item[Tape level]
+  It is always possible to position filemarks or blocks, whereas
+  positioning to the end-of-data is only optional feature, however it is
+  implemented very often.  SCSI specification also talks about optional
+  sequential filemarks, setmarks and sequential setmarks, but these are not
+  implemented so often.  Modern tape drives keep track of file positions in
+  built-in chip (AIT, LTO) or at the beginning of the tape (SDLT), so there
+  is not any speed difference, if end-of-data or filemarks is used (I have
+  heard, that LTO-1 from all 3 manufacturers do not use its chip for file
+  locations, but a tape as in SDLT case, and I'm not sure about LTO-2 and
+  LTO-3 case).  However there is a big difference, that end-of-data ignores
+  file position, whereas filemarks returns the real number of skipped
+  files, so OS can track current file number just in filemarks case.
+
+\item[OS level]
+  Solaris does use just SCSI SPACE Filemarks, it does not support SCSI
+  SPACE End-of-data.  When MTEOM is called, Solaris does use SCSI SPACE
+  Filemarks with count = 1048576 for fast mode, and combination of SCSI
+  SPACE Filemarks with count = 1 with SCSI SPACE Blocks with count = 1 for
+  slow mode, so EOD mark on the tape on some older tape drives is not
+  skipped.  File number is always tracked for MTEOM.
+
+  Linux does support both SCSI SPACE Filemarks and End-of-data: When MTEOM
+  is called in MT\_ST\_FAST\_MTEOM mode, SCSI SPACE End-of-data is used.
+  In the other case, SCSI SPACE Filemarks with count =
+  8388607 is used.  
+  There is no real slow mode like in Solaris - I just expect, that for
+  older tape drives Filemarks may be slower than End-of-data, but not so
+  much as in Solaris slow mode.  File number is tracked for MTEOM just
+  without MT\_ST\_FAST\_MTEOM - when MT\_ST\_FAST\_MTEOM is used, it is not.
+
+  FreeBSD does support both SCSI SPACE Filemarks and End-of-data, but when
+  MTEOD (MTEOM) is called, SCSI SPACE End-of-data is always used.  FreeBSD
+  never use SCSI SPACE Filemarks for MTEOD. File number is never tracked
+  for MTEOD.
+
+\item[Bacula level]
+  When {\bf Hardware End of Medium = Yes} is used, MTEOM is called, but it
+  does not mean, that hardware End-of-data must be used.  When Hardware End
+  of Medium = No, if Fast Forward Space File = Yes, MTFSF with count =
+  32767 is used, else Block Read with count = 1 with Forward Space File
+  with count = 1 is used, which is really very slow.
+
+\item [Hardware End of Medium = Yes|No]
+  The name of this option is misleading and is the source of confusion,
+  because it is not the hardware EOM, what is really switched here.
+
+  If I use Yes, OS must not use SCSI SPACE End-of-data, because Bacula
+  expects, that there is tracked file number, which is not supported by
+  SCSI specification.  Instead, the OS have to use SCSI SPACE Filemarks.
+
+  If I use No, an action depends on Fast Forward Space File.
+
+  When I set {\bf Hardware End of Medium = no}
+  and {\bf Fast Forward Space File = no}
+  file positioning was very slow
+  on my LTO-3 (about ten to 100 minutes), but
+
+  with {\bf Hardware End of Medium = no} and
+{\bf Fast Forward Space File = yes}, the time is ten to
+100 times faster (about one to two minutes).
+
+\end{description}
+
+\section{Tape Performance Problems}
+\index[general]{Tape Performance}
+If you have LTO-3 or LTO-4 drives, you should be able to
+fairly good transfer rates; from 60 to 150 MB/second, providing
+you have fast disks; GigaBit Ethernet connections (probably 2); you are 
+running multiple simultaneous jobs; you have Bacula data spooling
+enabled; your tape block size is set to 131072 or 262144; and
+you have set {\bf Maximum File Size = 5G}.
+
+If you are not getting good performance, consider some of the following
+suggestions from the Allen Balck on the Bacula Users email list:
+
+\begin{enumerate}
+\item You are using an old HBA (i.e. SCSI-1, which only does 5 MB/s)
+
+\item There are other, slower, devices on the SCSI bus. The HBA will
+   negotiate the speed of every device down to the speed of the
+   slowest.
+
+\item There is a termination problem on the bus (either too much or
+   too little termination). The HBA will drop the bus speed in an
+   attempt to increase the reliability of the bus.
+
+\item Loose or damaged cabling - this will probably make the HBA "think"
+   you have a termination problem and it will react as in 3 above.
+\end{enumerate}
+
+See if /var/adm/messages (or /var/log/messages) tells you what the sync
+rate of the SCSI devices/bus are. Also, the next time you reboot, the
+BIOS may be able to tell you what the rate of each device is.
+
+
+\section{Autochanger Errors}
+\index[general]{Errors!Autochanger}
+\index[general]{Autochanger Errors}
+
+If you are getting errors such as:
+
+\footnotesize
+\begin{verbatim}
+3992 Bad autochanger "load slot 1, drive 1": ERR=Child exited with code 1.
+\end{verbatim}
+\normalsize
+
+and you are running your Storage daemon as non-root, then most likely
+you are having permissions problems with the control channel. Running
+as root, set permissions on /dev/sgX so that the userid and group of
+your Storage daemon can access the device. You need to ensure that you
+all access to the proper control device, and if you don't have any
+SCSI disk drives (including SATA drives), you might want to change
+the permissions on /dev/sg*.
+
+\section{Syslog Errors}
+\index[general]{Errors!Syslog}
+\index[general]{Syslog Errors}
+
+If you are getting errors such as:
+
+\footnotesize
+\begin{verbatim}
+: kernel: st0: MTSETDRVBUFFER only allowed for root
+\end{verbatim}
+\normalsize
+
+you are most likely running your Storage daemon as non-root, and
+Bacula is attempting to set the correct OS buffering to correspond
+to your Device resource. Most OSes allow only root to issue this
+ioctl command. In general, the message can be ignored providing 
+you are sure that your OS parameters are properly configured as
+described earlier in this manual.  If you are running your Storage daemon 
+as root, you should not be getting these system log messages, and if
+you are, something is probably wrong.
diff --git a/docs/manuals/fr/problems/tapetesting.tex b/docs/manuals/fr/problems/tapetesting.tex
deleted file mode 100644 (file)
index 710f90e..0000000
+++ /dev/null
@@ -1,1376 +0,0 @@
-%%
-%%
-
-\chapter{Testing Your Tape Drive With Bacula}
-\label{TapeTestingChapter}
-\index[general]{Testing Your Tape Drive With Bacula}
-
-This chapter is concerned with testing and configuring your tape drive to make
-sure that it will work properly with Bacula using the {\bf btape} program. 
-\label{summary}
-
-\section{Get Your Tape Drive Working}
-
-In general, you should follow the following steps to get your tape drive to
-work with Bacula. Start with a tape mounted in your drive. If you have an
-autochanger, load a tape into the drive. We use {\bf /dev/nst0} as the tape
-drive name, you will need to adapt it according to your system. 
-
-Do not proceed to the next item until you have succeeded with the previous
-one. 
-
-\begin{enumerate}
-\item Make sure that Bacula (the Storage daemon) is not running
-  or that you have {\bf unmount}ed the drive you will use 
-  for testing.
-
-\item Use tar to write to, then read from your drive:  
-
-   \footnotesize
-\begin{verbatim}
-   mt -f /dev/nst0 rewind
-   tar cvf /dev/nst0 .
-   mt -f /dev/nst0 rewind
-   tar tvf /dev/nst0
-   
-\end{verbatim}
-\normalsize
-
-\item Make sure you have a valid and correct Device resource corresponding
-   to your drive.  For Linux users, generally, the default one works.  For
-   FreeBSD users, there are two possible Device configurations (see below).
-   For other drives and/or OSes, you will need to first ensure that your
-   system tape modes are properly setup (see below), then possibly modify 
-   you Device resource depending on the output from the btape program (next
-   item). When doing this, you should consult the \ilink{Storage Daemon
-   Configuration}{StoredConfChapter} of this manual.
-
-\item If you are using a Fibre Channel to connect your tape drive to
-   Bacula, please be sure to disable any caching in the NSR (network
-   storage router, which is a Fibre Channel to SCSI converter).
-
-\item Run the btape {\bf test} command:  
-
-   \footnotesize
-\begin{verbatim}
-   ./btape -c bacula-sd.conf /dev/nst0
-   test
-   
-\end{verbatim}
-\normalsize
-
-   It isn't necessary to run the autochanger part of the test at this time,
-   but do not go past this point until the basic test succeeds.  If you do
-   have an autochanger, please be sure to read the \ilink{Autochanger
-   chapter}{AutochangersChapter} of this manual.
-
-\item Run the btape {\bf fill} command, preferably with two volumes.  This
-   can take a long time. If you have an autochanger and it  is configured, Bacula
-   will automatically use it. If you do  not have it configured, you can manually
-   issue the appropriate  {\bf mtx} command, or press the autochanger buttons to
-   change  the tape when requested to do so. 
-
-\item FreeBSD users, if you have a pre-5.0 system run the {\bf tapetest}
-   program, and make sure your system is patched if necessary. The tapetest
-   program can be found in the platform/freebsd directory. The instructions
-   for its use are at the top of the file.
-
-\item Run Bacula, and backup a reasonably small directory, say 60
-   Megabytes.  Do three successive backups of this directory.
-
-\item Stop Bacula, then restart it.  Do another full backup of the same
-   directory.  Then stop and restart Bacula.
-
-\item Do a restore of the directory backed up, by entering the  following
-   restore command, being careful to restore it to  an alternate location:  
-
-
-\footnotesize
-\begin{verbatim}
-   restore select all done
-   yes
-   
-\end{verbatim}
-\normalsize
-
-   Do a {\bf diff} on the restored directory to ensure it is identical  to the
-   original directory. If you are going to backup multiple different systems
-   (Linux, Windows, Mac, Solaris, FreeBSD, ...), be sure you test the restore
-   on each system type.
-
-\item If you have an autochanger, you should now go back to the  btape program
-   and run the autochanger test:  
-
-\footnotesize
-\begin{verbatim}
-     ./btape -c bacula-sd.conf /dev/nst0
-     auto
-     
-\end{verbatim}
-\normalsize
-
-   Adjust your autochanger as necessary to ensure that it works  correctly. See
-   the Autochanger chapter of this manual  for a complete discussion of testing
-   your autochanger.  
-
-\item We strongly recommend that you use a dedicated SCSI
-   controller for your tape drives. Scanners are known to induce
-   serious problems with the SCSI bus, causing it to reset. If the
-   SCSI bus is reset while Bacula has the tape drive open, it will
-   most likely be fatal to your tape since the drive will rewind.
-   These kinds of problems show up in the system log. For example,
-   the following was most likely caused by a scanner:
-
-\footnotesize
-\begin{verbatim}
-Feb 14 17:29:55 epohost kernel: (scsi0:A:2:0): No or incomplete CDB sent to device.
-Feb 14 17:29:55 epohost kernel: scsi0: Issued Channel A Bus Reset. 1 SCBs aborted
-\end{verbatim}
-\normalsize
-
-\end{enumerate}
-
-If you have reached this point, you stand a good chance of having everything
-work. If you get into trouble at any point, {\bf carefully} read the
-documentation given below. If you cannot get past some point, ask the {\bf
-bacula-users} email list, but specify which of the steps you have successfully
-completed. In particular, you may want to look at the 
-\ilink{ Tips for Resolving Problems}{problems1} section below. 
-
-
-\label{NoTapeInDrive}
-\subsection{Problems When no Tape in Drive}
-\index[general]{Problems When no Tape in Drive}
-When Bacula was first written the Linux 2.4 kernel permitted opening the
-drive whether or not there was a tape in the drive. Thus the Bacula code is
-based on the concept that if the drive cannot be opened, there is a serious
-problem, and the job is failed.
-
-With version 2.6 of the Linux kernel, if there is no tape in the drive, the
-OS will wait two minutes (default) and then return a failure, and consequently,
-Bacula version 1.36 and below will fail the job.  This is important to keep
-in mind, because if you use an option such as {\bf Offline on Unmount =
-yes}, there will be a point when there is no tape in the drive, and if
-another job starts or if Bacula asks the operator to mount a tape, when
-Bacula attempts to open the drive (about a 20 minute delay), it will fail
-and Bacula will fail the job.
-
-In version 1.38.x, the Bacula code partially gets around this problem -- at
-least in the initial open of the drive.  However, functions like Polling
-the drive do not work correctly if there is no tape in the drive.
-Providing you do not use {\bf Offline on Unmount = yes}, you should not
-experience job failures as mentioned above.  If you do experience such
-failures, you can also increase the {\bf Maximum Open Wait} time interval,
-which will give you more time to mount the next tape before the job is
-failed.
-
-\subsection{Specifying the Configuration File}
-\index[general]{File!Specifying the Configuration}
-\index[general]{Specifying the Configuration File}
-
-Starting with version 1.27, each of the tape utility programs including the
-{\bf btape} program requires a valid Storage daemon configuration file
-(actually, the only part of the configuration file that {\bf btape} needs is
-the {\bf Device} resource definitions). This permits {\bf btape} to find the
-configuration parameters for your archive device (generally a tape drive).
-Without those parameters, the testing and utility programs do not know how to
-properly read and write your drive. By default, they use {\bf bacula-sd.conf}
-in the current directory, but you may specify a different configuration file
-using the {\bf -c} option. 
-
-\subsection{Specifying a Device Name For a Tape}
-\index[general]{Tape!Specifying a Device Name For a}
-\index[general]{Specifying a Device Name For a Tape}
-
-{\bf btape} {\bf device-name} where the Volume can be found. In the case of a
-tape, this is the physical device name such as {\bf /dev/nst0} or {\bf
-/dev/rmt/0ubn} depending on your system that you specify on the Archive Device
-directive. For the program to work, it must find the identical name in the
-Device resource of the configuration file. If the name is not found in the
-list of physical names, the utility program will compare the name you entered
-to the Device names (rather than the Archive device names). 
-
-When specifying a tape device, it is preferable that the "non-rewind"
-variant of the device file name be given.  In addition, on systems such as
-Sun, which have multiple tape access methods, you must be sure to specify
-to use Berkeley I/O conventions with the device.  The
-{\bf b} in the Solaris (Sun) archive specification {\bf /dev/rmt/0mbn} is
-what is needed in this case.  Bacula does not support SysV tape drive
-behavior.
-
-See below for specifying Volume names. 
-
-\subsection{Specifying a Device Name For a File}
-\index[general]{File!Specifying a Device Name For a}
-\index[general]{Specifying a Device Name For a File}
-
-If you are attempting to read or write an archive file rather than a tape, the
-{\bf device-name} should be the full path to the archive location including
-the filename. The filename (last part of the specification) will be stripped
-and used as the Volume name, and the path (first part before the filename)
-must have the same entry in the configuration file. So, the path is equivalent
-to the archive device name, and the filename is equivalent to the volume name.
-
-
-\section{btape}
-\label{btape1}
-\index[general]{Btape}
-
-This program permits a number of elementary tape operations via a tty command
-interface. The {\bf test} command, described below, can be very useful for
-testing tape drive compatibility problems. Aside from initial testing of tape
-drive compatibility with {\bf Bacula}, {\bf btape} will be mostly used by
-developers writing new tape drivers. 
-
-{\bf btape} can be dangerous to use with existing {\bf Bacula} tapes because
-it will relabel a tape or write on the tape if so requested regardless of
-whether or not the tape contains valuable data, so please be careful and use
-it only on blank tapes. 
-
-To work properly, {\bf btape} needs to read the Storage daemon's configuration
-file. As a default, it will look for {\bf bacula-sd.conf} in the current
-directory. If your configuration file is elsewhere, please use the {\bf -c}
-option to specify where. 
-
-The physical device name or the Device resource name must be specified on the
-command line, and this same device name must be present in the Storage
-daemon's configuration file read by {\bf btape} 
-
-\footnotesize
-\begin{verbatim}
-Usage: btape [options] device_name
-       -b <file>   specify bootstrap file
-       -c <file>   set configuration file to file
-       -d <nn>     set debug level to nn
-       -p          proceed inspite of I/O errors
-       -s          turn off signals
-       -v          be verbose
-       -?          print this message.
-\end{verbatim}
-\normalsize
-
-\subsection{Using btape to Verify your Tape Drive}
-\index[general]{Using btape to Verify your Tape Drive}
-\index[general]{Drive!Using btape to Verify your Tape}
-
-An important reason for this program is to ensure that a Storage daemon
-configuration file is defined so that Bacula will correctly read and write
-tapes. 
-
-It is highly recommended that you run the {\bf test} command before running
-your first Bacula job to ensure that the parameters you have defined for your
-storage device (tape drive) will permit {\bf Bacula} to function properly. You
-only need to mount a blank tape, enter the command, and the output should be
-reasonably self explanatory. For example: 
-
-\footnotesize
-\begin{verbatim}
-(ensure that Bacula is not running)
-./btape -c /usr/bin/bacula/bacula-sd.conf /dev/nst0
-\end{verbatim}
-\normalsize
-
-The output will be: 
-
-\footnotesize
-\begin{verbatim}
-Tape block granularity is 1024 bytes.
-btape: btape.c:376 Using device: /dev/nst0
-*
-\end{verbatim}
-\normalsize
-
-Enter the test command: 
-
-\footnotesize
-\begin{verbatim}
-test
-\end{verbatim}
-\normalsize
-
-The output produced should be something similar to the following: I've cut the
-listing short because it is frequently updated to have new tests. 
-
-\footnotesize
-\begin{verbatim}
-=== Append files test ===
-This test is essential to Bacula.
-I'm going to write one record  in file 0,
-                   two records in file 1,
-             and three records in file 2
-btape: btape.c:387 Rewound /dev/nst0
-btape: btape.c:855 Wrote one record of 64412 bytes.
-btape: btape.c:857 Wrote block to device.
-btape: btape.c:410 Wrote EOF to /dev/nst0
-btape: btape.c:855 Wrote one record of 64412 bytes.
-btape: btape.c:857 Wrote block to device.
-btape: btape.c:855 Wrote one record of 64412 bytes.
-btape: btape.c:857 Wrote block to device.
-btape: btape.c:410 Wrote EOF to /dev/nst0
-btape: btape.c:855 Wrote one record of 64412 bytes.
-btape: btape.c:857 Wrote block to device.
-btape: btape.c:855 Wrote one record of 64412 bytes.
-btape: btape.c:857 Wrote block to device.
-btape: btape.c:855 Wrote one record of 64412 bytes.
-btape: btape.c:857 Wrote block to device.
-btape: btape.c:410 Wrote EOF to /dev/nst0
-btape: btape.c:387 Rewound /dev/nst0
-btape: btape.c:693 Now moving to end of media.
-btape: btape.c:427 Moved to end of media
-We should be in file 3. I am at file 3. This is correct!
-Now the important part, I am going to attempt to append to the tape.
-...
-=== End Append files test ===
-\end{verbatim}
-\normalsize
-
-If you do not successfully complete the above test, please resolve the
-problem(s) before attempting to use {\bf Bacula}. Depending on your tape
-drive, the test may recommend that you add certain records to your
-configuration. We strongly recommend that you do so and then re-run the above
-test to insure it works the first time. 
-
-Some of the suggestions it provides for resolving the problems may or may not
-be useful. If at all possible avoid using fixed blocking. If the test suddenly
-starts to print a long series of: 
-
-\footnotesize
-\begin{verbatim}
-Got EOF on tape.
-Got EOF on tape.
-...
-\end{verbatim}
-\normalsize
-
-then almost certainly, you are running your drive in fixed block mode rather
-than variable block mode. See below for more help of resolving fix
-versus variable block problems.
-
-It is also possible that you have your drive
-set in SysV tape drive mode. The drive must use BSD tape conventions.
-See the section above on setting your {\bf Archive device} correctly.
-
-For FreeBSD users, please see the notes below for doing further testing of
-your tape drive. 
-
-\subsection{Testing tape drive speed}
-\label{sec:btapespeed}
-
-To determine the best configuration of your tape drive, you can run the
-\texttt{speed} command available in the \texttt{btape} program.
-
-This command can have the following arguments:
-\begin{itemize}
-\item[\texttt{file\_size=n}] Specify the Maximum File Size for this test
-  (between 1 and 5GB). This counter is in GB.
-\item[\texttt{nb\_file=n}] Specify the number of file to be written. The amount
-  of data should be greater than your memory ($file\_size*nb\_file$).
-\item[\texttt{skip\_zero}] This flag permits to skip tests with constant
-  data.
-\item[\texttt{skip\_random}] This flag permits to skip tests with random
-  data.
-\item[\texttt{skip\_raw}] This flag permits to skip tests with raw access.
-\item[\texttt{skip\_block}] This flag permits to skip tests with Bacula block
-  access.
-\end{itemize}
-
-\begin{verbatim}
-*speed file_size=3 skip_raw
-btape.c:1078 Test with zero data and bacula block structure.
-btape.c:956 Begin writing 3 files of 3.221 GB with blocks of 129024 bytes.
-++++++++++++++++++++++++++++++++++++++++++
-btape.c:604 Wrote 1 EOF to "Drive-0" (/dev/nst0)
-btape.c:406 Volume bytes=3.221 GB. Write rate = 44.128 MB/s
-...
-btape.c:383 Total Volume bytes=9.664 GB. Total Write rate = 43.531 MB/s
-
-btape.c:1090 Test with random data, should give the minimum throughput.
-btape.c:956 Begin writing 3 files of 3.221 GB with blocks of 129024 bytes.
-+++++++++++++++++++++++++++++++++++++++++++
-btape.c:604 Wrote 1 EOF to "Drive-0" (/dev/nst0)
-btape.c:406 Volume bytes=3.221 GB. Write rate = 7.271 MB/s
-+++++++++++++++++++++++++++++++++++++++++++
-...
-btape.c:383 Total Volume bytes=9.664 GB. Total Write rate = 7.365 MB/s
-
-\end{verbatim}
-
-When using compression, the random test will give your the minimum throughput
-of your drive . The test using constant string will give you the maximum speed
-of your hardware chain. (cpu, memory, scsi card, cable, drive, tape).
-
-You can change the block size in the Storage Daemon configuration file.
-
-\label{SCSITricks}
-\subsection{Linux SCSI Tricks}
-\index[general]{Tricks!Linux SCSI}
-\index[general]{Linux SCSI Tricks}
-
-You can find out what SCSI devices you have by doing: 
-
-\footnotesize
-\begin{verbatim}
-lsscsi
-\end{verbatim}
-\normalsize
-
-Typical output is:
-
-\footnotesize
-\begin{verbatim}
-[0:0:0:0]    disk    ATA      ST3160812AS      3.AD  /dev/sda
-[2:0:4:0]    tape    HP       Ultrium 2-SCSI   F6CH  /dev/st0
-[2:0:5:0]    tape    HP       Ultrium 2-SCSI   F6CH  /dev/st1
-[2:0:6:0]    mediumx OVERLAND LXB              0107  -
-[2:0:9:0]    tape    HP       Ultrium 1-SCSI   E50H  /dev/st2
-[2:0:10:0]   mediumx OVERLAND LXB              0107  -
-\end{verbatim}
-\normalsize
-
-There are two drives in one autochanger: /dev/st0 and /dev/st1
-and a third tape drive at /dev/st2.  For using them with Bacula, one
-would normally reference them as /dev/nst0 ... /dev/nst2.  Not also,
-there are two different autochangers identified as "mediumx OVERLAND LXB".
-They can be addressed via their /dev/sgN designation, which can be
-obtained by counting from the beginning as 0 to each changer.  In the
-above case, the two changers are located on /dev/sg3 and /dev/sg5. The one
-at /dev/sg3, controls drives /dev/nst0 and /dev/nst1; and the one at
-/dev/sg5 controles drive /dev/nst2.
-
-If you do not have the {\bf lsscsi}  command, you can obtain the same
-information as follows:
-
-\footnotesize
-\begin{verbatim}
-cat /proc/scsi/scsi
-\end{verbatim}
-\normalsize
-
-For the above example with the three drives and two autochangers,
-I get:
-
-\footnotesize       
-\begin{verbatim}
-Attached devices:
-Host: scsi0 Channel: 00 Id: 00 Lun: 00
-  Vendor: ATA      Model: ST3160812AS      Rev: 3.AD
-  Type:   Direct-Access                    ANSI SCSI revision: 05
-Host: scsi2 Channel: 00 Id: 04 Lun: 00
-  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
-  Type:   Sequential-Access                ANSI SCSI revision: 03
-Host: scsi2 Channel: 00 Id: 05 Lun: 00
-  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
-  Type:   Sequential-Access                ANSI SCSI revision: 03
-Host: scsi2 Channel: 00 Id: 06 Lun: 00
-  Vendor: OVERLAND Model: LXB              Rev: 0107
-  Type:   Medium Changer                   ANSI SCSI revision: 02
-Host: scsi2 Channel: 00 Id: 09 Lun: 00
-  Vendor: HP       Model: Ultrium 1-SCSI   Rev: E50H
-  Type:   Sequential-Access                ANSI SCSI revision: 03
-Host: scsi2 Channel: 00 Id: 10 Lun: 00
-  Vendor: OVERLAND Model: LXB              Rev: 0107
-  Type:   Medium Changer                   ANSI SCSI revision: 02
-\end{verbatim}
-\normalsize
-
-
-As an additional example, I get the following (on a different machine from the
-above example):
-
-\footnotesize
-\begin{verbatim}
-Attached devices:
-Host: scsi2 Channel: 00 Id: 01 Lun: 00
-  Vendor: HP       Model: C5713A           Rev: H107
-  Type:   Sequential-Access                ANSI SCSI revision: 02
-Host: scsi2 Channel: 00 Id: 04 Lun: 00
-  Vendor: SONY     Model: SDT-10000        Rev: 0110
-  Type:   Sequential-Access                ANSI SCSI revision: 02
-\end{verbatim}
-\normalsize
-
-The above represents first an autochanger and second a simple
-tape drive. The HP changer (the first entry) uses the same SCSI channel
-for data and for control, so in Bacula, you would use: 
-\footnotesize
-\begin{verbatim}
-Archive Device = /dev/nst0
-Changer Device = /dev/sg0
-\end{verbatim}
-\normalsize
-
-If you want to remove the SDT-10000 device, you can do so as root with: 
-
-\footnotesize
-\begin{verbatim}
-echo "scsi remove-single-device 2 0 4 0">/proc/scsi/scsi
-\end{verbatim}
-\normalsize
-
-and you can put add it back with: 
-
-\footnotesize
-\begin{verbatim}
-echo "scsi add-single-device 2 0 4 0">/proc/scsi/scsi
-\end{verbatim}
-\normalsize
-
-where the 2 0 4 0 are the Host, Channel, Id, and Lun as seen on the output
-from {\bf cat /proc/scsi/scsi}. Note, the Channel must be specified as
-numeric. 
-
-Below is a slightly more complicated output, which is a single autochanger
-with two drives, and which operates the changer on a different channel
-from from the drives:
-
-\footnotesize
-\begin{verbatim}
-Attached devices:
-Host: scsi0 Channel: 00 Id: 00 Lun: 00
-  Vendor: ATA      Model: WDC WD1600JD-75H Rev: 08.0
-  Type:   Direct-Access                    ANSI SCSI revision: 05
-Host: scsi2 Channel: 00 Id: 04 Lun: 00
-  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
-  Type:   Sequential-Access                ANSI SCSI revision: 03
-Host: scsi2 Channel: 00 Id: 05 Lun: 00
-  Vendor: HP       Model: Ultrium 2-SCSI   Rev: F6CH
-  Type:   Sequential-Access                ANSI SCSI revision: 03
-Host: scsi2 Channel: 00 Id: 06 Lun: 00
-  Vendor: OVERLAND Model: LXB              Rev: 0106
-  Type:   Medium Changer                   ANSI SCSI revision: 02
-\end{verbatim}
-\normalsize
-
-The above tape drives are accessed on /dev/nst0 and /dev/nst1, while
-the control channel for those two drives is /dev/sg3.
-
-
-
-\label{problems1}
-\section{Tips for Resolving Problems}
-\index[general]{Problems!Tips for Resolving}
-\index[general]{Tips for Resolving Problems}
-
-\label{CannotRestore}
-\subsection{Bacula Saves But Cannot Restore Files}
-\index[general]{Files!Bacula Saves But Cannot Restore}
-\index[general]{Bacula Saves But Cannot Restore Files}
-
-If you are getting error messages such as: 
-
-\footnotesize
-\begin{verbatim}
-Volume data error at 0:1! Wanted block-id: "BB02", got "". Buffer discarded
-\end{verbatim}
-\normalsize
-
-It is very likely that Bacula has tried to do block positioning and ended up
-at an invalid block. This can happen if your tape drive is in fixed block mode
-while Bacula's default is variable blocks. Note that in such cases, Bacula is
-perfectly able to write to your Volumes (tapes), but cannot position to read
-them. 
-
-There are two possible solutions. 
-
-\begin{enumerate}
-\item The first and  best is to always ensure that your drive is in  variable
-   block mode. Note, it can switch back to  fixed block mode on a reboot or if
-   another program  uses the drive. So on such systems you  need to modify the
-   Bacula startup files  to explicitly set: 
-
-\footnotesize
-\begin{verbatim}
-mt -f /dev/nst0 defblksize 0
-\end{verbatim}
-\normalsize
-
-or whatever is appropriate on your system. Note, if you are running a Linux
-system, and the above command does not work, it is most likely because you
-have not loaded the appropriate {\bf mt} package, which is often called
-{\bf mt\_st}, but may differ according to your distribution.
-
-\item The second possibility, especially, if Bacula wrote  while the drive was
-   in fixed block mode, is to turn  off block positioning in Bacula. This is done
-   by  adding: 
-
-\footnotesize
-\begin{verbatim}
-Block Positioning = no
-\end{verbatim}
-\normalsize
-
-to the Device resource. This is not the recommended  procedure because it can
-enormously slow down  recovery of files, but it may help where all else 
-fails. This directive is available in version 1.35.5  or later (and not yet
-tested).  
-\end{enumerate}
-
-If you are getting error messages such as:
-\footnotesize
-\begin{verbatim}
-Volume data error at 0:0!
-Block checksum mismatch in block=0 len=32625 calc=345678 blk=123456
-\end{verbatim}
-\normalsize
-
-You are getting tape read errors, and this is most likely due to 
-one of the following things:
-\begin{enumerate}
-\item An old or bad tape.
-\item A dirty drive that needs cleaning (particularly for DDS drives).
-\item A loose SCSI cable.
-\item Old firmware in your drive. Make sure you have the latest firmware
-      loaded.
-\item Computer memory errors.
-\item Over-clocking your CPU.
-\item A bad SCSI card.
-\end{enumerate}
-
-
-\label{opendevice}
-\subsection{Bacula Cannot Open the Device}
-\index[general]{Device!Bacula Cannot Open the}
-\index[general]{Bacula Cannot Open the Device}
-
-If you get an error message such as: 
-
-\footnotesize
-\begin{verbatim}
-dev open failed: dev.c:265 stored: unable to open
-device /dev/nst0:> ERR=No such device or address
-\end{verbatim}
-\normalsize
-
-the first time you run a job, it is most likely due to the fact that you
-specified the incorrect device name on your {\bf Archive Device}. 
-
-If Bacula works fine with your drive, then all off a sudden you get error
-messages similar to the one shown above, it is quite possible that your driver
-module is being removed because the kernel deems it idle. This is done via
-{\bf crontab} with the use of {\bf rmmod -a}. To fix the problem, you can
-remove this entry from {\bf crontab}, or you can manually {\bf modprob} your
-driver module (or add it to the local startup script). Thanks to Alan Brown
-for this tip. 
-\label{IncorrectFiles}
-
-\subsection{Incorrect File Number}
-\index[general]{Number!Incorrect File}
-\index[general]{Incorrect File Number}
-
-When Bacula moves to the end of the medium, it normally uses the {\bf
-ioctl(MTEOM)} function. Then Bacula uses the {\bf ioctl(MTIOCGET)} function to
-retrieve the current file position from the {\bf mt\_fileno} field. Some SCSI
-tape drivers will use a fast means of seeking to the end of the medium and in
-doing so, they will not know the current file position and hence return a {\bf
--1}. As a consequence, if you get {\bf "This is NOT correct!"} in the
-positioning tests, this may be the cause. You must correct this condition in
-order for Bacula to work. 
-
-There are two possible solutions to the above problem of incorrect file
-number: 
-
-\begin{itemize}
-\item Figure out how to configure your SCSI driver to  keep track of the file
-   position during the MTEOM  request. This is the preferred solution.  
-\item Modify the {\bf Device} resource of your {\bf bacula-sd.conf} file  to
-   include:  
-
-\footnotesize
-\begin{verbatim}
-Hardware End of File = no
-\end{verbatim}
-\normalsize
-
-This will cause Bacula to use the MTFSF request to  seek to the end of the
-medium, and Bacula will keep  track of the file number itself. 
-\end{itemize}
-
-\label{IncorrectBlocks}
-\subsection{Incorrect Number of Blocks or Positioning Errors}
-\index[general]{Testing!Incorrect Number of Blocks or Positioning Errors}
-\index[general]{Incorrect Number of Blocks or Positioning Errors}
-
-{\bf Bacula's} preferred method of working with tape drives (sequential
-devices) is to run in variable block mode, and this is what is set by default.
-You should first ensure that your tape drive is set for variable block mode
-(see below). 
-
-If your tape drive is in fixed block mode and you have told Bacula to use
-different fixed block sizes or variable block sizes (default), you will get
-errors when Bacula attempts to forward space to the correct block (the kernel
-driver's idea of tape blocks will not correspond to Bacula's). 
-
-All modern tape drives support variable tape blocks, but some older drives (in
-particular the QIC drives) as well as the ATAPI ide-scsi driver run only in
-fixed block mode. The Travan tape drives also apparently must run in fixed
-block mode (to be confirmed). 
-
-Even in variable block mode, with the exception of the first record on the
-second or subsequent volume of a multi-volume backup, Bacula will write blocks
-of a fixed size. However, in reading a tape, Bacula will assume that for each
-read request, exactly one block from the tape will be transferred. This the
-most common way that tape drives work and is well supported by {\bf Bacula}. 
-
-Drives that run in fixed block mode can cause serious problems for Bacula if
-the drive's block size does not correspond exactly to {\bf Bacula's} block
-size. In fixed block size mode, drivers may transmit a partial block or
-multiple blocks for a single read request. From {\bf Bacula's} point of view,
-this destroys the concept of tape blocks. It is much better to run in variable
-block mode, and almost all modern drives (the OnStream is an exception) run in
-variable block mode. In order for Bacula to run in fixed block mode, you must
-include the following records in the Storage daemon's Device resource
-definition: 
-
-\footnotesize
-\begin{verbatim}
-Minimum Block Size = nnn
-Maximum Block Size = nnn
-\end{verbatim}
-\normalsize
-
-where {\bf nnn} must be the same for both records and must be identical to the
-driver's fixed block size. 
-
-We recommend that you avoid this configuration if at all possible by using
-variable block sizes. 
-
-If you must run with fixed size blocks, make sure they are not 512 bytes. This
-is too small and the overhead that Bacula has with each record will become
-excessive. If at all possible set any fixed block size to something like
-64,512 bytes or possibly 32,768 if 64,512 is too large for your drive. See
-below for the details on checking and setting the default drive block size. 
-
-To recover files from tapes written in fixed block mode, see below. 
-
-\label{TapeModes}
-\subsection{Ensuring that the Tape Modes Are Properly Set -- {\bf Linux
-Only}}
-\index[general]{Ensuring that the Tape Modes Are Properly Set -- Linux Only}
-
-If you have a modern SCSI tape drive and you are having problems with the {\bf
-test} command as noted above, it may be that some program has set one or more
-of your SCSI driver's options to non-default values. For example, if your
-driver is set to work in SysV manner, Bacula will not work correctly because
-it expects BSD behavior. To reset your tape drive to the default values, you
-can try the following, but {\bf ONLY} if you have a SCSI tape drive on a {\bf
-Linux} system: 
-
-\footnotesize
-\begin{verbatim}
-become super user
-mt -f /dev/nst0 rewind
-mt -f /dev/nst0 stoptions buffer-writes async-writes read-ahead
-\end{verbatim}
-\normalsize
-
-The above commands will clear all options and then set those specified. None
-of the specified options are required by Bacula, but a number of other options
-such as SysV behavior must not be set. Bacula does not support SysV tape
-behavior. On systems other than Linux, you will need to consult your {\bf mt}
-man pages or documentation to figure out how to do the same thing. This should
-not really be necessary though -- for example, on both Linux and Solaris
-systems, the default tape driver options are compatible with Bacula. 
-On Solaris systems, you must take care to specify the correct device
-name on the {\bf Archive device} directive. See above for more details.
-
-You may also want to ensure that no prior program has set the default block
-size, as happened to one user, by explicitly turning it off with: 
-
-\footnotesize
-\begin{verbatim}
-mt -f /dev/nst0 defblksize 0
-\end{verbatim}
-\normalsize
-
-If you are running a Linux
-system, and the above command does not work, it is most likely because you
-have not loaded the appropriate {\bf mt} package, which is often called
-{\bf mt\_st}, but may differ according to your distribution.
-
-If you would like to know what options you have set before making any of the
-changes noted above, you can now view them on Linux systems, thanks to a tip
-provided by Willem Riede. Do the following: 
-
-\footnotesize
-\begin{verbatim}
-become super user
-mt -f /dev/nst0 stsetoptions 0
-grep st0 /var/log/messages
-\end{verbatim}
-\normalsize
-
-and you will get output that looks something like the following: 
-
-\footnotesize
-\begin{verbatim}
-kernel: st0: Mode 0 options: buffer writes: 1, async writes: 1, read ahead: 1
-kernel: st0:    can bsr: 0, two FMs: 0, fast mteom: 0, auto lock: 0,
-kernel: st0:    defs for wr: 0, no block limits: 0, partitions: 0, s2 log: 0
-kernel: st0:    sysv: 0 nowait: 0
-\end{verbatim}
-\normalsize
-
-Note, I have chopped off the beginning of the line with the date and machine
-name for presentation purposes. 
-
-Some people find that the above settings only last until the next reboot, so
-please check this otherwise you may have unexpected problems. 
-
-Beginning with Bacula version 1.35.8, if Bacula detects that you are running
-in variable block mode, it will attempt to set your drive appropriately. All
-OSes permit setting variable block mode, but some OSes do not permit setting
-the other modes that Bacula needs to function properly. 
-
-\label{compression}
-\subsection{Tape Hardware Compression and Blocking Size}
-\index[general]{Tape Hardware Compression and Blocking Size}
-\index[general]{Size!Tape Hardware Compression and Blocking Size}
-
-You should be able to verify the tape compression status with sysfs on Linux.
-\begin{verbatim}
-cat /sys/class/scsi_tape/nst0/default_compression
-\end{verbatim}
-
-You can, turn it on by using (on Linux): 
-
-\footnotesize
-\begin{verbatim}
-become super user
-mt -f /dev/nst0 defcompression 1
-\end{verbatim}
-\normalsize
-
-and of course, if you use a zero instead of the one at the end, you will turn
-it off. 
-
-If you have built the {\bf mtx} program in the {\bf depkgs} package, you can
-use tapeinfo to get quite a bit of information about your tape drive even if
-it is not an autochanger. This program is called using the SCSI control
-device. On Linux for tape drive /dev/nst0, this is usually /dev/sg0, while on
-FreeBSD for /dev/nsa0, the control device is often /dev/pass2. For example on
-my DDS-4 drive (/dev/nst0), I get the following: 
-
-\footnotesize
-\begin{verbatim}
-tapeinfo -f /dev/sg0
-Product Type: Tape Drive
-Vendor ID: 'HP      '
-Product ID: 'C5713A          '
-Revision: 'H107'
-Attached Changer: No
-MinBlock:1
-MaxBlock:16777215
-SCSI ID: 5
-SCSI LUN: 0
-Ready: yes
-BufferedMode: yes
-Medium Type: Not Loaded
-Density Code: 0x26
-BlockSize: 0             
-\end{verbatim}
-\normalsize
-
-where the {\bf DataCompEnabled: yes} means that tape hardware compression is
-turned on. You can turn it on and off (yes|no) by using the {\bf mt}
-commands given above. Also, this output will tell you if the {\bf BlockSize}
-is non-zero and hence set for a particular block size. Bacula is not likely to
-work in such a situation because it will normally attempt to write blocks of
-64,512 bytes, except the last block of the job which will generally be
-shorter. The first thing to try is setting the default block size to zero
-using the {\bf mt -f /dev/nst0 defblksize 0} command as shown above.
-On FreeBSD, this would be something like: {\bf mt -f /dev/nsa0 blocksize 0}. 
-
-On some operating systems with some tape drives, the amount of data that
-can be written to the tape and whether or not compression is enabled is
-determined by the density usually the {\bf mt -f /dev/nst0 setdensity xxx} command.
-Often  {\bf mt -f /dev/nst0 status} will print out the current
-density code that is used with the drive.  Most systems, but unfortunately
-not all, set the density to the maximum by default. On some systems, you
-can also get a list of all available density codes with:
-{\bf mt -f /dev/nst0 densities} or a similar {\bf mt} command.
-Note, for DLT and SDLT devices, no-compression versus compression is very 
-often controlled by the density code.  On FreeBSD systems, the compression
-mode is set using {\bf mt -f /dev/nsa0 comp xxx} where xxx is the
-mode you want.  In general, see {\bf man mt}  for the options available on
-your system.
-
-Note, some of the above {\bf mt} commands may not be persistent depending
-on your system configuration. That is they may be reset if a program  
-other than Bacula uses the drive or, as is frequently the case, on reboot
-of your system.
-                   
-If your tape drive requires fixed block sizes (very unusual), you can use the
-following records: 
-
-\footnotesize
-\begin{verbatim}
-Minimum Block Size = nnn
-Maximum Block Size = nnn
-\end{verbatim}
-\normalsize
-
-in your Storage daemon's Device resource to force Bacula to write fixed size
-blocks (where you sent nnn to be the same for both of the above records). This
-should be done only if your drive does not support variable block sizes, or
-you have some other strong reasons for using fixed block sizes. As mentioned
-above, a small fixed block size of 512 or 1024 bytes will be very inefficient.
-Try to set any fixed block size to something like 64,512 bytes or larger if
-your drive will support it. 
-
-Also, note that the {\bf Medium Type} field of the output of {\bf tapeinfo}
-reports {\bf Not Loaded}, which is not correct. As a consequence, you should
-ignore that field as well as the {\bf Attached Changer} field. 
-
-To recover files from tapes written in fixed block mode, see below. 
-\label{FreeBSDTapes}
-
-\subsection{Tape Modes on FreeBSD}
-\index[general]{FreeBSD!Tape Modes on}
-\index[general]{Tape Modes on FreeBSD}
-
-On most FreeBSD systems such as 4.9 and most tape drives, Bacula should run
-with: 
-
-\footnotesize
-\begin{verbatim}
-mt  -f  /dev/nsa0  seteotmodel  2
-mt  -f  /dev/nsa0  blocksize   0
-mt  -f  /dev/nsa0  comp  enable
-\end{verbatim}
-\normalsize
-
-You might want to put those commands in a startup script to make sure your
-tape driver is properly initialized before running Bacula, because
-depending on your system configuration, these modes may be reset if a      
-program other than Bacula uses the drive or when your system is rebooted.
-
-Then according to what the {\bf btape test} command returns, you will probably
-need to set the following (see below for an alternative): 
-
-\footnotesize
-\begin{verbatim}
-  Hardware End of Medium = no
-  BSF at EOM = yes
-  Backward Space Record = no
-  Backward Space File = no
-  Fast Forward Space File = no
-  TWO EOF = yes
-\end{verbatim}
-\normalsize
-
-Then be sure to run some append tests with Bacula where you start and stop
-Bacula between appending to the tape, or use {\bf btape} version 1.35.1 or
-greater, which includes simulation of stopping/restarting Bacula. 
-
-Please see the file {\bf platforms/freebsd/pthreads-fix.txt} in the main
-Bacula directory concerning {\bf important} information concerning
-compatibility of Bacula and your system. A much more optimal Device
-configuration is shown below, but does not work with all tape drives. Please
-test carefully before putting either into production. 
-
-Note, for FreeBSD 4.10-RELEASE, using a Sony TSL11000 L100 DDS4 with an
-autochanger set to variable block size and DCLZ compression, Brian McDonald
-reports that to get Bacula to append correctly between Bacula executions,
-the correct values to use are:
-
-\footnotesize
-\begin{verbatim}
-mt  -f  /dev/nsa0  seteotmodel  1
-mt  -f  /dev/nsa0  blocksize  0
-mt  -f /dev/nsa0  comp  enable
-\end{verbatim}
-\normalsize
-
-and 
-
-\footnotesize
-\begin{verbatim}
-  Hardware End of Medium = no
-  BSF at EOM = no
-  Backward Space Record = no
-  Backward Space File = no
-  Fast Forward Space File = yes
-  TWO EOF = no
-\end{verbatim}
-\normalsize
-
-This has been confirmed by several other people using different hardware. This
-configuration is the preferred one because it uses one EOF and no backspacing
-at the end of the tape, which works much more efficiently and reliably with
-modern tape drives. 
-
-Finally, here is a Device configuration that Danny Butroyd reports to work
-correctly with the Overland Powerloader tape library using LT0-2 and
-FreeBSD 5.4-Stable:
-
-\footnotesize
-\begin{verbatim}
-# Overland Powerloader LT02 - 17 slots single drive
-Device {
-  Name = Powerloader
-  Media Type = LT0-2
-  Archive Device = /dev/nsa0
-  AutomaticMount = yes;              
-  AlwaysOpen = yes;
-  RemovableMedia = yes;
-  RandomAccess = no;
-  Changer Command = "/usr/local/sbin/mtx-changer %c %o %S %a %d"
-  Changer Device = /dev/pass2
-  AutoChanger = yes
-  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
-
-  # FreeBSD Specific Settings
-  Offline On Unmount = no
-  Hardware End of Medium = no
-  BSF at EOM = yes
-  Backward Space Record = no
-  Fast Forward Space File = no
-  TWO EOF = yes
-}
-
-The following Device resource works fine with Dell PowerVault 110T and
-120T devices on both FreeBSD 5.3 and on NetBSD 3.0.  It also works
-with Sony AIT-2 drives on FreeBSD.
-\footnotesize
-\begin{verbatim}
-Device {
-  ...
-  # FreeBSD/NetBSD Specific Settings
-  Hardware End of Medium = no
-  BSF at EOM = yes
-  Backward Space Record = no
-  Fast Forward Space File = yes
-  TWO EOF = yes
-}
-\end{verbatim}
-\normalsize
-
-On FreeBSD version 6.0, it is reported that you can even set
-Backward Space Record = yes.
-
-
-
-\subsection{Finding your Tape Drives and Autochangers on FreeBSD}
-\index[general]{FreeBSD!Finding Tape Drives and Autochangers}
-\index[general]{Finding Tape Drives and Autochangers on FreeBSD}
-
-On FreeBSD, you can do a {\bf camcontrol devlist} as root to determine what
-drives and autochangers you have. For example, 
-
-\footnotesize
-\begin{verbatim}
-undef# camcontrol devlist
-    at scbus0 target 2 lun 0 (pass0,sa0)
-    at scbus0 target 4 lun 0 (pass1,sa1)
-    at scbus0 target 4 lun 1 (pass2)
-\end{verbatim}
-\normalsize
-
-from the above, you can determine that there is a tape drive on {\bf /dev/sa0}
-and another on {\bf /dev/sa1} in addition since there is a second line for the
-drive on {\bf /dev/sa1}, you know can assume that it is the control device for
-the autochanger (i.e. {\bf /dev/pass2}). It is also the control device name to
-use when invoking the tapeinfo program. E.g. 
-
-\footnotesize
-\begin{verbatim}
-tapeinfo -f /dev/pass2
-\end{verbatim}
-\normalsize
-
-\label{onstream}
-
-\subsection{Using the OnStream driver on Linux Systems}
-\index[general]{Using the OnStream driver on Linux Systems}
-\index[general]{Systems!Using the OnStream driver on Linux}
-
-Bacula version 1.33 (not 1.32x) is now working and ready for testing with the
-OnStream kernel osst driver version 0.9.14 or above. Osst is available from: 
-\elink{http://sourceforge.net/projects/osst/}
-{http://sourceforge.net/projects/osst/}. 
-
-To make Bacula work you must first load the new driver then, as root, do: 
-
-\footnotesize
-\begin{verbatim}
-  mt -f /dev/nosst0 defblksize 32768
-\end{verbatim}
-\normalsize
-
-Also you must add the following to your Device resource in your Storage
-daemon's conf file: 
-
-\footnotesize
-\begin{verbatim}
- Minimum Block Size = 32768
- Maximum Block Size = 32768
-\end{verbatim}
-\normalsize
-
-Here is a Device specification provided by Michel Meyers that is known to
-work: 
-
-\footnotesize
-\begin{verbatim}
-Device {
-  Name = "Onstream DI-30"
-  Media Type = "ADR-30"
-  Archive Device = /dev/nosst0
-  Minimum Block Size = 32768
-  Maximum Block Size = 32768
-  Hardware End of Medium = yes
-  BSF at EOM = no
-  Backward Space File = yes
-  Fast Forward Space File = yes
-  Two EOF = no
-  AutomaticMount = yes
-  AlwaysOpen = yes
-  Removable Media = yes
-}
-\end{verbatim}
-\normalsize
-
-\section{Hardware Compression on EXB-8900}
-\index[general]{Hardware Compression on EXB-8900}
-\index[general]{EXB-8900!Hardware Compression}
-
-To active, check, or disable the hardware compression feature
-on an EXB-8900, use the exabyte MammothTool. You can get it here:
-\elink{http://www.exabyte.com/support/online/downloads/index.cfm}
-{http://www.exabyte.com/support/online/downloads/index.cfm}.
-There is a Solaris version of this tool. With option -C 0 or 1 you
-can disable or activate compression. Start this tool without any
-options for a small reference.
-
-\label{fill}
-\subsection{Using btape to Simulate Filling a Tape}
-\index[general]{Using btape to Simulate Filling a Tape}
-\index[general]{Tape!Using btape to Simulate Filling}
-
-Because there are often problems with certain tape drives or systems when end
-of tape conditions occur, {\bf btape} has a special command {\bf fill} that
-causes it to write random data to a tape until the tape fills. It then writes
-at least one more Bacula block to a second tape. Finally, it reads back both
-tapes to ensure that the data has been written in a way that Bacula can
-recover it. Note, there is also a single tape option as noted below, which you
-should use rather than the two tape test. See below for more details. 
-
-This can be an extremely time consuming process (here it is about 6 hours) to
-fill a full tape. Note, that btape writes random data to the tape when it is
-filling it. This has two consequences: 1. it takes a bit longer to generate
-the data, especially on slow CPUs. 2. the total amount of data is
-approximately the real physical capacity of your tape, regardless of whether
-or not the tape drive compression is on or off. This is because random data
-does not compress very much. 
-
-To begin this test, you enter the {\bf fill} command and follow the
-instructions. There are two options: the simple single tape option and the
-multiple tape option. Please use only the simple single tape option because
-the multiple tape option still doesn't work totally correctly. If the single
-tape option does not succeed, you should correct the problem before using
-Bacula. 
-\label{RecoveringFiles}
-
-\section{Recovering Files Written With Fixed Block Sizes}
-\index[general]{Recovering Files Written With Fixed Block Sizes}
-
-If you have been previously running your tape drive in fixed block mode
-(default 512) and Bacula with variable blocks (default), then in version
-1.32f-x and 1.34 and above, Bacula will fail to recover files because it does
-block spacing, and because the block sizes don't agree between your tape drive
-and Bacula it will not work. 
-
-The long term solution is to run your drive in variable block mode as
-described above. However, if you have written tapes using fixed block sizes,
-this can be a bit of a pain. The solution to the problem is: while you are
-doing a restore command using a tape written in fixed block size, ensure that
-your drive is set to the fixed block size used while the tape was written.
-Then when doing the {\bf restore} command in the Console program, do not
-answer the prompt {\bf yes/mod/no}. Instead, edit the bootstrap file (the
-location is listed in the prompt) using any ASCII editor. Remove all {\bf
-VolBlock} lines in the file. When the file is re-written, answer the question,
-and Bacula will run without using block positioning, and it should recover
-your files. 
-
-\label{BlockModes}
-\section{Tape Blocking Modes}
-\index[general]{Modes!Tape Blocking}
-\index[general]{Tape Blocking Modes}
-
-SCSI tapes may either be written in {\bf variable} or {\bf fixed} block sizes.
-Newer drives support both modes, but some drives such as the QIC devices
-always use fixed block sizes. Bacula attempts to fill and write complete
-blocks (default 65K), so that in normal mode (variable block size), Bacula
-will always write blocks of the same size except the last block of a Job. If
-Bacula is configured to write fixed block sizes, it will pad the last block of
-the Job to the correct size. Bacula expects variable tape block size drives to
-behave as follows: Each write to the drive results in a single record being
-written to the tape. Each read returns a single record. If you request less
-bytes than are in the record, only those number of bytes will be returned, but
-the entire logical record will have been read (the next read will retrieve the
-next record). Thus data from a single write is always returned in a single
-read, and sequentially written records are returned by sequential reads. 
-
-Bacula expects fixed block size tape drives to behave as follows: If a write
-length is greater than the physical block size of the drive, the write will be
-written as two blocks each of the fixed physical size. This single write may
-become multiple physical records on the tape. (This is not a good situation).
-According to the documentation, one may never write an amount of data that is
-not the exact multiple of the blocksize (it is not specified if an error
-occurs or if the the last record is padded). When reading, it is my
-understanding that each read request reads one physical record from the tape.
-Due to the complications of fixed block size tape drives, you should avoid
-them if possible with Bacula, or you must be ABSOLUTELY certain that you use
-fixed block sizes within Bacula that correspond to the physical block size of
-the tape drive. This will ensure that Bacula has a one to one correspondence
-between what it writes and the physical record on the tape. 
-
-Please note that Bacula will not function correctly if it writes a block and
-that block is split into two or more physical records on the tape. Bacula
-assumes that each write causes a single record to be written, and that it can
-sequentially recover each of the blocks it has written by using the same
-number of sequential reads as it had written. 
-
-\section{Details of Tape Modes}
-\index[general]{Modes!Details}
-\index[general]{Details of Tape Modes}
-Rudolf Cejka has provided the following information concerning
-certain tape modes and MTEOM.
-
-\begin{description}
-\item[Tape level]
-  It is always possible to position filemarks or blocks, whereas
-  positioning to the end-of-data is only optional feature, however it is
-  implemented very often.  SCSI specification also talks about optional
-  sequential filemarks, setmarks and sequential setmarks, but these are not
-  implemented so often.  Modern tape drives keep track of file positions in
-  built-in chip (AIT, LTO) or at the beginning of the tape (SDLT), so there
-  is not any speed difference, if end-of-data or filemarks is used (I have
-  heard, that LTO-1 from all 3 manufacturers do not use its chip for file
-  locations, but a tape as in SDLT case, and I'm not sure about LTO-2 and
-  LTO-3 case).  However there is a big difference, that end-of-data ignores
-  file position, whereas filemarks returns the real number of skipped
-  files, so OS can track current file number just in filemarks case.
-
-\item[OS level]
-  Solaris does use just SCSI SPACE Filemarks, it does not support SCSI
-  SPACE End-of-data.  When MTEOM is called, Solaris does use SCSI SPACE
-  Filemarks with count = 1048576 for fast mode, and combination of SCSI
-  SPACE Filemarks with count = 1 with SCSI SPACE Blocks with count = 1 for
-  slow mode, so EOD mark on the tape on some older tape drives is not
-  skipped.  File number is always tracked for MTEOM.
-
-  Linux does support both SCSI SPACE Filemarks and End-of-data: When MTEOM
-  is called in MT\_ST\_FAST\_MTEOM mode, SCSI SPACE End-of-data is used.
-  In the other case, SCSI SPACE Filemarks with count =
-  8388607 is used.  
-  There is no real slow mode like in Solaris - I just expect, that for
-  older tape drives Filemarks may be slower than End-of-data, but not so
-  much as in Solaris slow mode.  File number is tracked for MTEOM just
-  without MT\_ST\_FAST\_MTEOM - when MT\_ST\_FAST\_MTEOM is used, it is not.
-
-  FreeBSD does support both SCSI SPACE Filemarks and End-of-data, but when
-  MTEOD (MTEOM) is called, SCSI SPACE End-of-data is always used.  FreeBSD
-  never use SCSI SPACE Filemarks for MTEOD. File number is never tracked
-  for MTEOD.
-
-\item[Bacula level]
-  When {\bf Hardware End of Medium = Yes} is used, MTEOM is called, but it
-  does not mean, that hardware End-of-data must be used.  When Hardware End
-  of Medium = No, if Fast Forward Space File = Yes, MTFSF with count =
-  32767 is used, else Block Read with count = 1 with Forward Space File
-  with count = 1 is used, which is really very slow.
-
-\item [Hardware End of Medium = Yes|No]
-  The name of this option is misleading and is the source of confusion,
-  because it is not the hardware EOM, what is really switched here.
-
-  If I use Yes, OS must not use SCSI SPACE End-of-data, because Bacula
-  expects, that there is tracked file number, which is not supported by
-  SCSI specification.  Instead, the OS have to use SCSI SPACE Filemarks.
-
-  If I use No, an action depends on Fast Forward Space File.
-
-  When I set {\bf Hardware End of Medium = no}
-  and {\bf Fast Forward Space File = no}
-  file positioning was very slow
-  on my LTO-3 (about ten to 100 minutes), but
-
-  with {\bf Hardware End of Medium = no} and
-{\bf Fast Forward Space File = yes}, the time is ten to
-100 times faster (about one to two minutes).
-
-\end{description}
-
-\section{Tape Performance Problems}
-\index[general]{Tape Performance}
-If you have LTO-3 or LTO-4 drives, you should be able to
-fairly good transfer rates; from 60 to 150 MB/second, providing
-you have fast disks; GigaBit Ethernet connections (probably 2); you are 
-running multiple simultaneous jobs; you have Bacula data spooling
-enabled; your tape block size is set to 131072 or 262144; and
-you have set {\bf Maximum File Size = 5G}.
-
-If you are not getting good performance, consider some of the following
-suggestions from the Allen Balck on the Bacula Users email list:
-
-\begin{enumerate}
-\item You are using an old HBA (i.e. SCSI-1, which only does 5 MB/s)
-
-\item There are other, slower, devices on the SCSI bus. The HBA will
-   negotiate the speed of every device down to the speed of the
-   slowest.
-
-\item There is a termination problem on the bus (either too much or
-   too little termination). The HBA will drop the bus speed in an
-   attempt to increase the reliability of the bus.
-
-\item Loose or damaged cabling - this will probably make the HBA "think"
-   you have a termination problem and it will react as in 3 above.
-\end{enumerate}
-
-See if /var/adm/messages (or /var/log/messages) tells you what the sync
-rate of the SCSI devices/bus are. Also, the next time you reboot, the
-BIOS may be able to tell you what the rate of each device is.
-
-
-\section{Autochanger Errors}
-\index[general]{Errors!Autochanger}
-\index[general]{Autochanger Errors}
-
-If you are getting errors such as:
-
-\footnotesize
-\begin{verbatim}
-3992 Bad autochanger "load slot 1, drive 1": ERR=Child exited with code 1.
-\end{verbatim}
-\normalsize
-
-and you are running your Storage daemon as non-root, then most likely
-you are having permissions problems with the control channel. Running
-as root, set permissions on /dev/sgX so that the userid and group of
-your Storage daemon can access the device. You need to ensure that you
-all access to the proper control device, and if you don't have any
-SCSI disk drives (including SATA drives), you might want to change
-the permissions on /dev/sg*.
-
-\section{Syslog Errors}
-\index[general]{Errors!Syslog}
-\index[general]{Syslog Errors}
-
-If you are getting errors such as:
-
-\footnotesize
-\begin{verbatim}
-: kernel: st0: MTSETDRVBUFFER only allowed for root
-\end{verbatim}
-\normalsize
-
-you are most likely running your Storage daemon as non-root, and
-Bacula is attempting to set the correct OS buffering to correspond
-to your Device resource. Most OSes allow only root to issue this
-ioctl command. In general, the message can be ignored providing 
-you are sure that your OS parameters are properly configured as
-described earlier in this manual.  If you are running your Storage daemon 
-as root, you should not be getting these system log messages, and if
-you are, something is probably wrong.
diff --git a/docs/manuals/fr/problems/tips-en.tex b/docs/manuals/fr/problems/tips-en.tex
new file mode 100644 (file)
index 0000000..f13da7a
--- /dev/null
@@ -0,0 +1,1045 @@
+%%
+%%
+
+\chapter{Tips and Suggestions}
+\label{TipsChapter}
+\index[general]{Tips and Suggestions }
+\index[general]{Suggestions!Tips and }
+\label{examples}
+\index[general]{Examples }
+
+There are a number of example scripts for various things that can be found in
+the {\bf example} subdirectory and its subdirectories of the Bacula source
+distribution. 
+
+For additional tips, please see the \elink{Bacula
+wiki}{http://wiki.bacula.org}.
+
+\section{Upgrading Bacula Versions}
+\label{upgrading}
+\index[general]{Upgrading Bacula Versions }
+\index[general]{Versions!Upgrading Bacula }
+\index[general]{Upgrading}
+
+The first thing to do before upgrading from one version to another is to
+ensure that you don't overwrite or delete your production (current) version
+of Bacula until you have tested that the new version works.
+
+If you have installed Bacula into a single directory, this is simple: simply
+make a copy of your Bacula directory. 
+
+If you have done a more typical Unix installation where the binaries are
+placed in one directory and the configuration files are placed in another,
+then the simplest way is to configure your new Bacula to go into a single
+file. Alternatively, make copies of all your binaries and especially your 
+conf files.
+
+Whatever your situation may be (one of the two just described), you should
+probably start with the {\bf defaultconf} script that can be found in the {\bf
+examples} subdirectory. Copy this script to the main Bacula directory, modify
+it as necessary (there should not need to be many modifications), configure
+Bacula, build it, install it, then stop your production Bacula, copy all the
+{\bf *.conf} files from your production Bacula directory to the test Bacula
+directory, start the test version, and run a few test backups. If all seems
+good, then you can proceed to install the new Bacula in place of or possibly
+over the old Bacula. 
+
+When installing a new Bacula you need not worry about losing the changes you
+made to your configuration files as the installation process will not
+overwrite them providing that you do not do a {\bf make uninstall}.
+
+If the new version of Bacula requires an upgrade to the database,
+you can upgrade it with the script {\bf update\_bacula\_tables}, which
+will be installed in your scripts directory (default {\bf /etc/bacula}),
+or alternatively, you can find it in the  
+{\bf \lt{}bacula-source\gt{}/src/cats} directory.
+
+\section{Getting Notified of Job Completion}
+\label{notification}
+\index[general]{Getting Notified of Job Completion }
+\index[general]{Completion!Getting Notified of Job }
+
+One of the first things you should do is to ensure that you are being properly
+notified of the status of each Job run by Bacula, or at a minimum of each Job
+that terminates with an error. 
+
+Until you are completely comfortable with {\bf Bacula}, we recommend that you
+send an email to yourself for each Job that is run. This is most easily
+accomplished by adding an email notification address in the {\bf Messages}
+resource of your Director's configuration file. An email is automatically
+configured in the default configuration files, but you must ensure that the
+default {\bf root} address is replaced by your email address. 
+
+For additional examples of how to configure a Bacula, please take a look at the
+{\bf .conf} files found in the {\bf examples} sub-directory. We recommend the
+following configuration (where you change the paths and email address to
+correspond to your setup). Note, the {\bf mailcommand} and {\bf
+operatorcommand} should be on a single line. They were split here for
+presentation: 
+
+\footnotesize
+\begin{verbatim}
+Messages {
+  Name = Standard
+  mailcommand = "/home/bacula/bin/bsmtp -h localhost
+                -f \"\(Bacula\) %r\"
+                -s \"Bacula: %t %e of %c %l\" %r"
+  operatorcommand = "/home/bacula/bin/bsmtp -h localhost
+                -f \"\(Bacula\) %r\"
+                -s \"Bacula: Intervention needed for %j\" %r"
+  Mail = your-email-address = all, !skipped, !terminate
+  append = "/home/bacula/bin/log" = all, !skipped, !terminate
+  operator = your-email-address = mount
+  console = all, !skipped, !saved
+}
+\end{verbatim}
+\normalsize
+
+You will need to ensure that the {\bf /home/bacula/bin} path on the {\bf
+mailcommand} and the {\bf operatorcommand} lines point to your {\bf Bacula}
+binary directory where the {\bf bsmtp} program will be installed. You will
+also want to ensure that the {\bf your-email-address} is replaced by your
+email address, and finally, you will also need to ensure that the {\bf
+/home/bacula/bin/log} points to the file where you want to log all messages. 
+
+With the above Messages resource, you will be notified by email of every Job
+that ran, all the output will be appended to the {\bf log} file you specify,
+all output will be directed to the console program, and all mount messages
+will be emailed to you. Note, some messages will be sent to multiple
+destinations. 
+
+The form of the mailcommand is a bit complicated, but it allows you to
+distinguish whether the Job terminated in error or terminated normally. Please
+see the 
+\ilink{Mail Command}{mailcommand} section of the Messages
+Resource chapter of this manual for the details of the substitution characters
+used above. 
+
+Once you are totally comfortable with Bacula as I am, or if you have a large
+number of nightly Jobs as I do (eight), you will probably want to change the
+{\bf Mail} command to {\bf Mail On Error} which will generate an email message
+only if the Job terminates in error. If the Job terminates normally, no email
+message will be sent, but the output will still be appended to the log file as
+well as sent to the Console program. 
+
+\section{Getting Email Notification to Work}
+\label{email}
+\index[general]{Work!Getting Email Notification to }
+\index[general]{Getting Email Notification to Work }
+
+The section above describes how to get email notification of job status.
+Occasionally, however, users have problems receiving any email at all. In that
+case, the things to check are the following: 
+
+\begin{itemize}
+\item Ensure that you have a valid email address specified on your  {\bf Mail}
+   record in the Director's Messages resource. The email  address should be fully
+   qualified. Simply using {\bf root} generally  will not work, rather you should
+use {\bf root@localhost} or better  yet your full domain.  
+\item Ensure that you do not have a {\bf Mail} record in the Storage  daemon's
+   or File daemon's configuration files. The only record  you should have is {\bf
+   director}:  
+
+\footnotesize
+\begin{verbatim}
+      director = director-name = all
+      
+\end{verbatim}
+\normalsize
+
+\item If all else fails, try replacing the {\bf mailcommand} with 
+
+   \footnotesize
+\begin{verbatim}
+mailcommand = "mail -s test your@domain.com"
+\end{verbatim}
+\normalsize
+
+\item Once the above is working, assuming you want to use {\bf bsmtp},  submit
+   the desired bsmtp command by hand and ensure that the email  is delivered,
+   then put that command into {\bf Bacula}. Small  differences in things such as
+the parenthesis around the word  Bacula can make a big difference to some
+bsmtp programs.  For example, you might start simply by using: 
+
+\footnotesize
+\begin{verbatim}
+mailcommand = "/home/bacula/bin/bsmtp -f \"root@localhost\" %r"
+\end{verbatim}
+\normalsize
+
+\end{itemize}
+
+\section{Getting Notified that Bacula is Running}
+\label{JobNotification}
+\index[general]{Running!Getting Notified that Bacula is }
+\index[general]{Getting Notified that Bacula is Running }
+
+If like me, you have setup Bacula so that email is sent only when a Job has
+errors, as described in the previous section of this chapter, inevitably, one
+day, something will go wrong and {\bf Bacula} can stall. This could be because
+Bacula crashes, which is vary rare, or more likely the network has caused {\bf
+Bacula} to {\bf hang} for some unknown reason. 
+
+To avoid this, you can use the {\bf RunAfterJob} command in the Job resource
+to schedule a Job nightly, or weekly that simply emails you a message saying
+that Bacula is still running. For example, I have setup the following Job in
+my Director's configuration file: 
+
+\footnotesize
+\begin{verbatim}
+Schedule {
+  Name = "Watchdog"
+  Run = Level=Full sun-sat at 6:05
+}
+Job {
+  Name = "Watchdog"
+  Type = Admin
+  Client=Watchdog
+  FileSet="Verify Set"
+  Messages = Standard
+  Storage = DLTDrive
+  Pool = Default
+  Schedule = "Watchdog"
+  RunAfterJob = "/home/kern/bacula/bin/watchdog %c %d"
+}
+Client {
+  Name = Watchdog
+  Address = rufus
+  FDPort = 9102
+  Catalog = Verify
+  Password = ""
+  File Retention = 1day
+  Job Retention = 1 month
+  AutoPrune = yes
+}
+\end{verbatim}
+\normalsize
+
+Where I established a schedule to run the Job nightly. The Job itself is type
+{\bf Admin} which means that it doesn't actually do anything, and I've defined
+a FileSet, Pool, Storage, and Client, all of which are not really used (and
+probably don't need to be specified). The key aspect of this Job is the
+command: 
+
+\footnotesize
+\begin{verbatim}
+  RunAfterJob = "/home/kern/bacula/bin/watchdog %c %d"
+\end{verbatim}
+\normalsize
+
+which runs my "watchdog" script. As an example, I have added the Job codes
+\%c and \%d which will cause the Client name and the Director's name to be
+passed to the script. For example, if the Client's name is {\bf Watchdog} and
+the Director's name is {\bf main-dir} then referencing \$1 in the script would
+get {\bf Watchdog} and referencing \$2 would get {\bf main-dir}. In this case,
+having the script know the Client and Director's name is not really useful,
+but in other situations it may be. 
+
+You can put anything in the watchdog script. In my case, I like to monitor the
+size of my catalog to be sure that {\bf Bacula} is really pruning it. The
+following is my watchdog script: 
+
+\footnotesize
+\begin{verbatim}
+#!/bin/sh
+cd /home/kern/mysql/var/bacula
+du . * |
+/home/kern/bacula/bin/bsmtp  \
+   -f "\(Bacula\) abuse@whitehouse.com" -h mail.yyyy.com \
+   -s "Bacula running" abuse@whitehouse.com
+\end{verbatim}
+\normalsize
+
+If you just wish to send yourself a message, you can do it with: 
+
+\footnotesize
+\begin{verbatim}
+#!/bin/sh
+cd /home/kern/mysql/var/bacula
+/home/kern/bacula/bin/bsmtp  \
+   -f "\(Bacula\) abuse@whitehouse.com" -h mail.yyyy.com \
+   -s "Bacula running" abuse@whitehouse.com <<END-OF-DATA
+Bacula is still running!!!
+END-OF-DATA
+\end{verbatim}
+\normalsize
+
+\section{Maintaining a Valid Bootstrap File}
+\label{bootstrap}
+\index[general]{Maintaining a Valid Bootstrap File }
+\index[general]{File!Maintaining a Valid Bootstrap }
+
+By using a 
+\ilink{ WriteBootstrap}{writebootstrap} record in each of your
+Director's Job resources, you can constantly maintain a 
+\ilink{bootstrap}{BootstrapChapter} file that will enable you to
+recover the state of your system as of the last backup without having the
+Bacula catalog. This permits you to more easily recover from a disaster that
+destroys your Bacula catalog. 
+
+When a Job resource has a {\bf WriteBootstrap} record, Bacula will maintain
+the designated file (normally on another system but mounted by NFS) with up to
+date information necessary to restore your system. For example, in my
+Director's configuration file, I have the following record: 
+
+\footnotesize
+\begin{verbatim}
+ Write Bootstrap = "/mnt/deuter/files/backup/client-name.bsr"
+\end{verbatim}
+\normalsize
+
+where I replace {\bf client-name} by the actual name of the client that is
+being backed up. Thus, Bacula automatically maintains one file for each of my
+clients. The necessary bootstrap information is appended to this file during
+each {\bf Incremental} backup, and the file is totally rewritten during each
+{\bf Full} backup. 
+
+Note, one disadvantage of writing to an NFS mounted volume as I do is
+that if the other machine goes down, the OS will wait forever on the fopen()
+call that Bacula makes. As a consequence, Bacula will completely stall until
+the machine exporting the NFS mounts comes back up. A possible solution to this
+problem was provided by Andrew Hilborne, and consists of using the {\bf soft}
+option instead of the {\bf hard} option when mounting the NFS volume, which is
+typically done in {\bf /etc/fstab}/. The NFS documentation explains these
+options in detail. However, I found that with the {\bf soft} option 
+NFS disconnected frequently causing even more problems.
+
+If you are starting off in the middle of a cycle (i.e. with Incremental
+backups) rather than at the beginning (with a Full backup), the {\bf
+bootstrap} file will not be immediately valid as it must always have the
+information from a Full backup as the first record. If you wish to synchronize
+your bootstrap file immediately, you can do so by running a {\bf restore}
+command for the client and selecting a full restore, but when the restore
+command asks for confirmation to run the restore Job, you simply reply no,
+then copy the bootstrap file that was written to the location specified on the
+{\bf Write Bootstrap} record. The restore bootstrap file can be found in {\bf
+restore.bsr} in the working directory that you defined. In the example given
+below for the client {\bf rufus}, my input is shown in bold. Note, the JobId
+output has been partially truncated to fit on the page here: 
+
+\footnotesize
+\begin{verbatim}
+(in the Console program)
+*restore
+First you select one or more JobIds that contain files
+to be restored. You will then be presented several methods
+of specifying the JobIds. Then you will be allowed to
+select which files from those JobIds are to be restored.
+To select the JobIds, you have the following choices:
+     1: List last 20 Jobs run
+     2: List Jobs where a given File is saved
+     3: Enter list of JobIds to select
+     4: Enter SQL list command
+     5: Select the most recent backup for a client
+     6: Cancel
+Select item:  (1-6): 5
+The defined Client resources are:
+     1: Minimatou
+     2: Rufus
+     3: Timmy
+Select Client (File daemon) resource (1-3): 2
+The defined FileSet resources are:
+     1: Other Files
+Item 1 selected automatically.
++-------+------+-------+---------+---------+------+-------+------------+
+| JobId | Levl | Files | StrtTim | VolName | File | SesId | VolSesTime |
++-------+------+-------+---------+---------+------+-------+------------+
+| 2     | F    | 84    |  ...    | test1   | 0    | 1     | 1035645259 |
++-------+------+-------+---------+---------+------+-------+------------+
+You have selected the following JobId: 2
+Building directory tree for JobId 2 ...
+The defined Storage resources are:
+     1: File
+Item 1 selected automatically.
+You are now entering file selection mode where you add and
+remove files to be restored. All files are initially added.
+Enter "done" to leave this mode.
+cwd is: /
+$ done
+84 files selected to restore.
+Run Restore job
+JobName:    kernsrestore
+Bootstrap:  /home/kern/bacula/working/restore.bsr
+Where:      /tmp/bacula-restores
+FileSet:    Other Files
+Client:     Rufus
+Storage:    File
+JobId:      *None*
+OK to run? (yes/mod/no): no
+quit
+(in a shell window)
+cp ../working/restore.bsr /mnt/deuter/files/backup/rufus.bsr
+\end{verbatim}
+\normalsize
+
+\section{Rejected Volumes After a Crash}
+\label{RejectedVolumes}
+\index[general]{Crash!Rejected Volumes After a }
+\index[general]{Rejected Volumes After a Crash }
+
+Bacula keeps a count of the number of files on each Volume in its Catalog
+database so that before appending to a tape, it can verify that the number of
+files are correct, and thus prevent overwriting valid data. If the Director or
+the Storage daemon crashes before the job has completed, the tape will contain
+one more file than is noted in the Catalog, and the next time you attempt to
+use the same Volume, Bacula will reject it due to a mismatch between the
+physical tape (Volume) and the catalog. 
+
+The easiest solution to this problem is to label a new tape and start fresh.
+If you wish to continue appending to the current tape, you can do so by using
+the {\bf update} command in the console program to change the {\bf Volume
+Files} entry in the catalog. A typical sequence of events would go like the
+following: 
+
+\footnotesize
+\begin{verbatim}
+- Bacula crashes
+- You restart Bacula
+\end{verbatim}
+\normalsize
+
+Bacula then prints: 
+
+\footnotesize
+\begin{verbatim}
+17-Jan-2003 16:45 rufus-dir: Start Backup JobId 13,
+                  Job=kernsave.2003-01-17_16.45.46
+17-Jan-2003 16:45 rufus-sd: Volume test01 previously written,
+                  moving to end of data.
+17-Jan-2003 16:46 rufus-sd: kernsave.2003-01-17_16.45.46 Error:
+                  I cannot write on this volume because:
+                  The number of files mismatch! Volume=11 Catalog=10
+17-Jan-2003 16:46 rufus-sd: Job kernsave.2003-01-17_16.45.46 waiting.
+                   Cannot find any appendable volumes.
+Please use the "label"  command to create a new Volume for:
+    Storage:      SDT-10000
+    Media type:   DDS-4
+    Pool:         Default
+\end{verbatim}
+\normalsize
+
+(note, lines wrapped for presentation)
+The key here is the line that reads: 
+
+\footnotesize
+\begin{verbatim}
+  The number of files mismatch! Volume=11 Catalog=10
+\end{verbatim}
+\normalsize
+
+It says that Bacula found eleven files on the volume, but that the catalog
+says there should be ten. When you see this, you can be reasonably sure that
+the SD was interrupted while writing before it had a chance to update the
+catalog. As a consequence, you can just modify the catalog count to eleven,
+and even if the catalog contains references to files saved in file 11,
+everything will be OK and nothing will be lost. Note that if the SD had
+written several file marks to the volume, the difference between the Volume
+count and the Catalog count could be larger than one, but this is unusual. 
+
+If on the other hand the catalog is marked as having more files than Bacula
+found on the tape, you need to consider the possible negative consequences of
+modifying the catalog. Please see below for a more complete discussion of
+this. 
+
+Continuing with the example of {\bf Volume = 11 Catalog = 10}, to enable to
+Bacula to append to the tape, you do the following: 
+
+\footnotesize
+\begin{verbatim}
+update
+Update choice:
+     1: Volume parameters
+     2: Pool from resource
+     3: Slots from autochanger
+Choose catalog item to update (1-3): 1
+Defined Pools:
+     1: Default
+     2: File
+Select the Pool (1-2):
++-------+---------+--------+---------+-----------+------+----------+------+-----+
+| MedId | VolName | MedTyp | VolStat | VolBytes  | Last | VolReten | Recy | Slt |
++-------+---------+--------+---------+-----------+------+----------+------+-----+
+| 1     | test01  | DDS-4  | Error   | 352427156 | ...  | 31536000 | 1    | 0   |
++-------+---------+--------+---------+-----------+------+----------+------+-----+
+Enter MediaId or Volume name: 1
+\end{verbatim}
+\normalsize
+
+(note table output truncated for presentation) First, you chose to update the
+Volume parameters by entering a {\bf 1}. In the volume listing that follows,
+notice how the VolStatus is {\bf Error}. We will correct that after changing
+the Volume Files. Continuing, you respond 1, 
+
+\footnotesize
+\begin{verbatim}
+Updating Volume "test01"
+Parameters to modify:
+     1: Volume Status
+     2: Volume Retention Period
+     3: Volume Use Duration
+     4: Maximum Volume Jobs
+     5: Maximum Volume Files
+     6: Maximum Volume Bytes
+     7: Recycle Flag
+     8: Slot
+     9: Volume Files
+    10: Pool
+    11: Done
+Select parameter to modify (1-11): 9
+Warning changing Volume Files can result
+in loss of data on your Volume
+Current Volume Files is: 10
+Enter new number of Files for Volume: 11
+New Volume Files is: 11
+Updating Volume "test01"
+Parameters to modify:
+     1: Volume Status
+     2: Volume Retention Period
+     3: Volume Use Duration
+     4: Maximum Volume Jobs
+     5: Maximum Volume Files
+     6: Maximum Volume Bytes
+     7: Recycle Flag
+     8: Slot
+     9: Volume Files
+    10: Pool
+    11: Done
+Select parameter to modify (1-10): 1
+\end{verbatim}
+\normalsize
+
+Here, you have selected {\bf 9} in order to update the Volume Files, then you
+changed it from {\bf 10} to {\bf 11}, and you now answer {\bf 1} to change the
+Volume Status. 
+
+\footnotesize
+\begin{verbatim}
+Current Volume status is: Error
+Possible Values are:
+     1: Append
+     2: Archive
+     3: Disabled
+     4: Full
+     5: Used
+     6: Read-Only
+Choose new Volume Status (1-6): 1
+New Volume status is: Append
+Updating Volume "test01"
+Parameters to modify:
+     1: Volume Status
+     2: Volume Retention Period
+     3: Volume Use Duration
+     4: Maximum Volume Jobs
+     5: Maximum Volume Files
+     6: Maximum Volume Bytes
+     7: Recycle Flag
+     8: Slot
+     9: Volume Files
+    10: Pool
+    11: Done
+Select parameter to modify (1-11): 11
+Selection done.
+\end{verbatim}
+\normalsize
+
+At this point, you have changed the Volume Files from {\bf 10} to {\bf 11} to
+account for the last file that was written but not updated in the database,
+and you changed the Volume Status back to {\bf Append}. 
+
+This was a lot of words to describe something quite simple. 
+
+The {\bf Volume Files} option exists only in version 1.29 and later, and you
+should be careful using it. Generally, if you set the value to that which
+Bacula said is on the tape, you will be OK, especially if the value is one
+more than what is in the catalog. 
+
+Now lets consider the case: 
+
+\footnotesize
+\begin{verbatim}
+  The number of files mismatch! Volume=10 Catalog=12
+\end{verbatim}
+\normalsize
+
+Here the Bacula found fewer files on the volume than what is marked in the
+catalog. Now, in this case, you should hesitate a lot before modifying the count
+in the catalog, because if you force the catalog from 12 to 10, Bacula will
+start writing after the file 10 on the tape, possibly overwriting valid data,
+and if you ever try to restore any of the files that the catalog has marked as
+saved on Files 11 and 12, all chaos will break out. In this case, you will
+probably be better off using a new tape. In fact, you might want to see what
+files the catalog claims are actually stored on that Volume, and back them up
+to another tape and recycle this tape. 
+
+\section{Security Considerations}
+\label{security}
+\index[general]{Considerations!Security }
+\index[general]{Security Considerations }
+
+Only the File daemon needs to run with root permission (so that it can access
+all files). As a consequence, you may run your Director, Storage daemon, and
+MySQL or PostgreSQL database server as non-root processes. Version 1.30 has
+the {\bf -u} and the {\bf -g} options that allow you to specify a userid and
+groupid on the command line to be used after Bacula starts. 
+
+As of version 1.33, thanks to Dan Langille, it is easier to configure the
+Bacula Director and Storage daemon to run as non-root. 
+
+You should protect the Bacula port addresses (normally 9101, 9102, and 9103)
+from outside access by a firewall or other means of protection to prevent
+unauthorized use of your daemons. 
+
+You should ensure that the configuration files are not world readable since
+they contain passwords that allow access to the daemons. Anyone who can access
+the Director using a console program can restore any file from a backup
+Volume. 
+
+You should protect your Catalog database. If you are using SQLite, make sure
+that the working directory is readable only by root (or your Bacula userid),
+and ensure that {\bf bacula.db} has permissions {\bf -rw-r\verb:--:r\verb:--:} (i.e. 640) or
+more strict. If you are using MySQL or PostgreSQL, please note that the Bacula
+setup procedure leaves the database open to anyone. At a minimum, you should
+assign the user {\bf bacula} a userid and add it to your Director's
+configuration file in the appropriate Catalog resource. 
+
+If you use the make\_catalog\_backup script provided by Bacula, remember that
+you should take care when supplying passwords on the command line.  Read the
+\ilink{Backing Up Your Bacula
+Database - Security Considerations }{BackingUpBaculaSecurityConsiderations}
+section for more information.
+
+\section{Creating Holiday Schedules}
+\label{holiday}
+\index[general]{Schedules!Creating Holiday }
+\index[general]{Creating Holiday Schedules }
+
+If you normally change tapes every day or at least every Friday, but Thursday
+is a holiday, you can use a trick proposed by Lutz Kittler to ensure that no
+job runs on Thursday so that you can insert Friday's tape and be sure it will
+be used on Friday. To do so, define a {\bf RunJobBefore} script that normally
+returns zero, so that the Bacula job will normally continue. You can then
+modify the script to return non-zero on any day when you do not want Bacula to
+run the job. 
+
+\section{Automatic Labeling Using Your Autochanger}
+\label{autolabel}
+\index[general]{Automatic Labeling Using Your Autochanger }
+\index[general]{Autochanger!Automatic Labeling Using Your }
+
+If you have an autochanger but it does not support barcodes, using a "trick"
+you can make Bacula automatically label all the volumes in your autochanger's
+magazine. 
+
+First create a file containing one line for each slot in your autochanger that
+has a tape to be labeled. The line will contain the slot number a colon (:)
+then the Volume name you want to use. For example, create a file named {\bf
+volume-list}, which contains: 
+
+\footnotesize
+\begin{verbatim}
+1:Volume001
+2:TestVolume02
+5:LastVolume
+\end{verbatim}
+\normalsize
+
+The records do not need to be in any order and you don't need to mention all
+the slots. Normally, you will have a consistent set of Volume names and a
+sequential set of numbers for each slot you want labeled. In the example
+above, I've left out slots 3 and 4 just as an example. Now, modify your {\bf
+mtx-changer} script and comment out all the lines in the {\bf list)} case by
+putting a \# in column 1. Then add the following two lines: 
+
+\footnotesize
+\begin{verbatim}
+  cat <absolute-path>/volume-list
+  exit 0
+\end{verbatim}
+\normalsize
+
+so that the whole case looks like: 
+
+\footnotesize
+\begin{verbatim}
+  list)
+#
+# commented out lines
+   cat <absolute-path>/volume-list
+   exit 0
+   ;;
+\end{verbatim}
+\normalsize
+
+where you replace \lt{}absolute-path\gt{} with the full path to the
+volume-list file. Then using the console, you enter the following command: 
+
+\footnotesize
+\begin{verbatim}
+   label barcodes
+\end{verbatim}
+\normalsize
+
+and Bacula will proceed to mount the autochanger Volumes in the list and label
+them with the Volume names you have supplied. Bacula will think that the list
+was provided by the autochanger barcodes, but in reality, it was you who
+supplied the \lt{}barcodes\gt{}. 
+
+If it seems to work, when it finishes, enter: 
+
+\footnotesize
+\begin{verbatim}
+   list volumes
+\end{verbatim}
+\normalsize
+
+and you should see all the volumes nicely created. 
+
+\section{Backing Up Portables Using DHCP}
+\label{DNS}
+\index[general]{DHCP!Backing Up Portables Using }
+\index[general]{Backing Up Portables Using DHCP }
+
+You may want to backup laptops or portables that are not always connected to
+the network. If you are using DHCP to assign an IP address to those machines
+when they connect, you will need to use the Dynamic Update capability of DNS
+to assign a name to those machines that can be used in the Address field of
+the Client resource in the Director's conf file. 
+
+\section{Going on Vacation}
+\label{Vacation}
+\index[general]{Vacation!Going on }
+\index[general]{Going on Vacation }
+
+At some point, you may want to be absent for a week or two and you want to
+make sure Bacula has enough tape left so that the backups will complete. You
+start by doing a {\bf list volumes} in the Console program: 
+
+\footnotesize
+\begin{verbatim}
+list volumes
+Using default Catalog name=BackupDB DB=bacula
+Pool: Default
++---------+---------------+-----------+-----------+----------------+-
+| MediaId | VolumeName    | MediaType | VolStatus |       VolBytes |
++---------+---------------+-----------+-----------+----------------+-
+|      23 | DLT-30Nov02   | DLT8000   | Full      | 54,739,278,128 |
+|      24 | DLT-21Dec02   | DLT8000   | Full      | 56,331,524,629 |
+|      25 | DLT-11Jan03   | DLT8000   | Full      | 67,863,514,895 |
+|      26 | DLT-02Feb03   | DLT8000   | Full      | 63,439,314,216 |
+|      27 | DLT-03Mar03   | DLT8000   | Full      | 66,022,754,598 |
+|      28 | DLT-04Apr03   | DLT8000   | Full      | 60,792,559,924 |
+|      29 | DLT-28Apr03   | DLT8000   | Full      | 62,072,494,063 |
+|      30 | DLT-17May03   | DLT8000   | Full      | 65,901,767,839 |
+|      31 | DLT-07Jun03   | DLT8000   | Used      | 56,558,490,015 |
+|      32 | DLT-28Jun03   | DLT8000   | Full      | 64,274,871,265 |
+|      33 | DLT-19Jul03   | DLT8000   | Full      | 64,648,749,480 |
+|      34 | DLT-08Aug03   | DLT8000   | Full      | 64,293,941,255 |
+|      35 | DLT-24Aug03   | DLT8000   | Append    |  9,999,216,782 |
++---------+---------------+-----------+-----------+----------------+
+\end{verbatim}
+\normalsize
+
+Note, I have truncated the output for presentation purposes. What is
+significant, is that I can see that my current tape has almost 10 Gbytes of
+data, and that the average amount of data I get on my tapes is about 60
+Gbytes. So if I go on vacation now, I don't need to worry about tape capacity
+(at least not for short absences). 
+
+Equally significant is the fact that I did go on vacation the 28th of June
+2003, and when I did the {\bf list volumes} command, my current tape at that
+time, DLT-07Jun03 MediaId 31, had 56.5 Gbytes written. I could see that the
+tape would fill shortly. Consequently, I manually marked it as {\bf Used} and
+replaced it with a fresh tape that I labeled as DLT-28Jun03, thus assuring
+myself that the backups would all complete without my intervention. 
+
+\section{Exclude Files on Windows Regardless of Case}
+\label{Case}
+\index[general]{Exclude Files on Windows Regardless of Case}
+% TODO: should this be put in the win32 chapter?
+% TODO: should all these tips be placed in other chapters?
+
+This tip was submitted by Marc Brueckner who wasn't sure of the case of some
+of his files on Win32, which is case insensitive. The problem is that Bacula
+thinks that {\bf /UNIMPORTANT FILES} is different from {\bf /Unimportant
+Files}. Marc was aware that the file exclusion permits wild-cards. So, he
+specified: 
+
+\footnotesize
+\begin{verbatim}
+"/[Uu][Nn][Ii][Mm][Pp][Oo][Rr][Tt][Aa][Nn][Tt] [Ff][Ii][Ll][Ee][Ss]"
+\end{verbatim}
+\normalsize
+
+As a consequence, the above exclude works for files of any case. 
+
+Please note that this works only in Bacula Exclude statement and not in
+Include. 
+
+\section{Executing Scripts on a Remote Machine}
+\label{RemoteExecution}
+\index[general]{Machine!Executing Scripts on a Remote }
+\index[general]{Executing Scripts on a Remote Machine }
+
+This tip also comes from Marc Brueckner. (Note, this tip is probably outdated
+by the addition of {\bf ClientRunBeforJob} and {\bf ClientRunAfterJob} Job
+records, but the technique still could be useful.) First I thought the "Run
+Before Job" statement in the Job-resource is for executing a script on the
+remote machine (the machine to be backed up). (Note, this is possible as mentioned
+above by using {\bf ClientRunBeforJob} and {\bf ClientRunAfterJob}).
+It could be useful to execute
+scripts on the remote machine e.g. for stopping databases or other services
+while doing the backup. (Of course I have to start the services again when the
+backup has finished) I found the following solution: Bacula could execute
+scripts on the remote machine by using ssh. The authentication is done
+automatically using a private key. First you have to generate a keypair. I've
+done this by: 
+
+\footnotesize
+\begin{verbatim}
+ssh-keygen -b 4096 -t dsa -f Bacula_key
+\end{verbatim}
+\normalsize
+
+This statement may take a little time to run. It creates a public/private key
+pair with no passphrase. You could save the keys in /etc/bacula. Now you have
+two new files : Bacula\_key which contains the private key and Bacula\_key.pub
+which contains the public key. 
+
+Now you have to append the Bacula\_key.pub file to the file authorized\_keys
+in the \textbackslash{}root\textbackslash{}.ssh directory of the remote
+machine. Then you have to add (or uncomment) the line 
+
+\footnotesize
+\begin{verbatim}
+AuthorizedKeysFile           %h/.ssh/authorized_keys
+\end{verbatim}
+\normalsize
+
+to the sshd\_config file on the remote machine. Where the \%h stands for the
+home-directory of the user (root in this case). 
+
+Assuming that your sshd is already running on the remote machine, you can now
+enter the following on the machine where Bacula runs: 
+
+\footnotesize
+\begin{verbatim}
+ssh -i Bacula_key  -l root <machine-name-or-ip-address> "ls -la"
+\end{verbatim}
+\normalsize
+
+This should execute the "ls -la" command on the remote machine. 
+
+Now you could add lines like the following to your Director's conf file: 
+
+\footnotesize
+\begin{verbatim}
+...
+Run Before Job = ssh -i /etc/bacula/Bacula_key 192.168.1.1 \
+                 "/etc/init.d/database stop"
+Run After Job = ssh -i /etc/bacula/Bacula_key 192.168.1.1 \
+                 "/etc/init.d/database start"
+...
+\end{verbatim}
+\normalsize
+
+Even though Bacula version 1.32 and later has a ClientRunBeforeJob, the ssh method still
+could be useful for updating all the Bacula clients on several remote machines
+in a single script. 
+
+\section{Recycling All Your Volumes}
+\label{recycle}
+\index[general]{Recycling All Your Volumes }
+\index[general]{Volumes!Recycling All Your }
+
+This tip comes from Phil Stracchino. 
+
+If you decide to blow away your catalog and start over, the simplest way to
+re-add all your prelabeled tapes with a minimum of fuss (provided you don't
+care about the data on the tapes) is to add the tape labels using the console
+{\bf add} command, then go into the catalog and manually set the VolStatus of
+every tape to {\bf Recycle}. 
+
+The SQL command to do this is very simple, either use your vendor's
+command line interface (mysql, postgres, sqlite, ...) or use the sql
+command in the Bacula console:
+
+\footnotesize
+\begin{verbatim}
+update Media set VolStatus='Recycle';
+\end{verbatim}
+\normalsize
+
+Bacula will then ignore the data already stored on the tapes and just re-use
+each tape without further objection. 
+
+\section{Backing up ACLs on ext3 or XFS filesystems}
+\label{ACLs}
+\index[general]{Filesystems!Backing up ACLs on ext3 or XFS }
+\index[general]{Backing up ACLs on ext3 or XFS filesystems }
+
+This tip comes from Volker Sauer. 
+
+Note, this tip was given prior to implementation of ACLs in Bacula (version
+1.34.5). It is left here because dumping/displaying ACLs can still be useful
+in testing/verifying that Bacula is backing up and restoring your ACLs
+properly. Please see the 
+\ilink{aclsupport}{ACLSupport} FileSet option in the
+configuration chapter of this manual. 
+
+For example, you could dump the ACLs to a file with a script similar to the
+following: 
+
+\footnotesize
+\begin{verbatim}
+#!/bin/sh
+BACKUP_DIRS="/foo /bar"
+STORE_ACL=/root/acl-backup
+umask 077
+for i in $BACKUP_DIRS; do
+ cd $i /usr/bin/getfacl -R --skip-base .>$STORE_ACL/${i//\//_}
+done
+\end{verbatim}
+\normalsize
+
+Then use Bacula to backup {\bf /root/acl-backup}. 
+
+The ACLs could be restored using Bacula to the {\bf /root/acl-backup} file,
+then restored to your system using: 
+
+\footnotesize
+\begin{verbatim}
+setfacl --restore/root/acl-backup
+\end{verbatim}
+\normalsize
+
+\section{Total Automation of Bacula Tape Handling}
+\label{automate}
+\index[general]{Handling!Total Automation of Bacula Tape }
+\index[general]{Total Automation of Bacula Tape Handling }
+
+This tip was provided by Alexander Kuehn. 
+
+\elink{Bacula}{http://www.bacula.org/} is a really nice backup program except
+that the manual tape changing requires user interaction with the bacula
+console. 
+
+Fortunately I can fix this.
+NOTE!!! This suggestion applies for people who do *NOT* have tape autochangers
+and must change tapes manually.!!!!! 
+
+Bacula supports a variety of tape changers through the use of mtx-changer
+scripts/programs. This highly flexible approach allowed me to create 
+\elink{this shell script}{http://www.bacula.org/en/rel-manual/mtx-changer.txt} which does the following:
+% TODO: We need to include this in book appendix and point to it.
+% TODO:
+Whenever a new tape is required it sends a mail to the operator to insert the
+new tape. Then it waits until a tape has been inserted, sends a mail again to
+say thank you and let's bacula continue its backup.
+So you can schedule and run backups without ever having to log on or see the
+console.
+To make the whole thing work you need to create a Device resource which looks
+something like this ("Archive Device", "Maximum Changer Wait", "Media
+Type" and "Label media" may have different values): 
+
+\footnotesize
+\begin{verbatim}
+Device {
+   Name=DDS3
+   Archive Device = # use yours not mine! ;)/dev/nsa0
+   Changer Device = # not really required/dev/nsa0
+   Changer Command = "# use this (maybe change the path)!
+         /usr/local/bin/mtx-changer %o %a %S"
+   Maximum Changer Wait = 3d          # 3 days in seconds
+   AutomaticMount = yes;              # mount on start
+   AlwaysOpen = yes;                  # keep device locked
+   Media Type = DDS3                  # it's just a name
+   RemovableMedia = yes;              #
+   Offline On Unmount = Yes;          # keep this too
+   Label media = Yes;                 #
+}
+\end{verbatim}
+\normalsize
+
+As the script has to emulate the complete wisdom of a mtx-changer it has an
+internal "database" containing where which tape is stored, you can see this on
+the following line:
+
+\footnotesize
+\begin{verbatim}
+labels="VOL-0001 VOL-0002 VOL-0003 VOL-0004 VOL-0005 VOL-0006
+VOL-0007 VOL-0008 VOL-0009 VOL-0010 VOL-0011 VOL-0012"
+\end{verbatim}
+\normalsize
+
+The above should be all on one line, and it effectively tells Bacula that
+volume "VOL-0001" is located in slot 1 (which is our lowest slot), that
+volume "VOL-0002" is located in slot 2 and so on..
+The script also maintains a logfile (/var/log/mtx.log) where you can monitor
+its operation.
+
+\section{Running Concurrent Jobs}
+\label{ConcurrentJobs}
+\index[general]{Jobs!Running Concurrent}
+\index[general]{Running Concurrent Jobs}
+\index[general]{Concurrent Jobs}
+
+Bacula can run multiple concurrent jobs, but the default configuration files
+do not enable it. Using the {\bf Maximum Concurrent Jobs} directive, you
+can configure how many and which jobs can be run simultaneously. 
+The Director's default value for {\bf Maximum Concurrent Jobs} is "1".
+
+To initially setup concurrent jobs you need to define {\bf Maximum Concurrent Jobs} in 
+the Director's configuration file (bacula-dir.conf) in the 
+Director, Job, Client, and Storage resources.
+
+Additionally the File daemon, and the Storage daemon each have their own
+{\bf Maximum Concurrent Jobs} directive that sets the overall maximum
+number of concurrent jobs the daemon will run.  The default for both the
+File daemon and the Storage daemon is "20".
+
+For example, if you want two different jobs to run simultaneously backing up
+the same Client to the same Storage device, they will run concurrently only if
+you have set {\bf Maximum Concurrent Jobs} greater than one in the Director
+resource, the Client resource, and the Storage resource in bacula-dir.conf. 
+
+We recommend that you read the \ilink{Data
+Spooling}{SpoolingChapter} of this manual first, then test your multiple
+concurrent backup including restore testing before you put it into
+production.
+
+Below is a super stripped down bacula-dir.conf file showing you the four
+places where the the file must be modified to allow the same job {\bf
+NightlySave} to run up to four times concurrently. The change to the Job
+resource is not necessary if you want different Jobs to run at the same time,
+which is the normal case. 
+
+\footnotesize
+\begin{verbatim}
+#
+# Bacula Director Configuration file -- bacula-dir.conf
+#
+Director {
+  Name = rufus-dir
+  Maximum Concurrent Jobs = 4
+  ...
+}
+Job {
+  Name = "NightlySave"
+  Maximum Concurrent Jobs = 4
+  Client = rufus-fd
+  Storage = File
+  ...
+}
+Client {
+  Name = rufus-fd
+  Maximum Concurrent Jobs = 4
+  ...
+}
+Storage {
+  Name = File
+  Maximum Concurrent Jobs = 4
+  ...
+}
+\end{verbatim}
+\normalsize
diff --git a/docs/manuals/fr/problems/tips.tex b/docs/manuals/fr/problems/tips.tex
deleted file mode 100644 (file)
index f13da7a..0000000
+++ /dev/null
@@ -1,1045 +0,0 @@
-%%
-%%
-
-\chapter{Tips and Suggestions}
-\label{TipsChapter}
-\index[general]{Tips and Suggestions }
-\index[general]{Suggestions!Tips and }
-\label{examples}
-\index[general]{Examples }
-
-There are a number of example scripts for various things that can be found in
-the {\bf example} subdirectory and its subdirectories of the Bacula source
-distribution. 
-
-For additional tips, please see the \elink{Bacula
-wiki}{http://wiki.bacula.org}.
-
-\section{Upgrading Bacula Versions}
-\label{upgrading}
-\index[general]{Upgrading Bacula Versions }
-\index[general]{Versions!Upgrading Bacula }
-\index[general]{Upgrading}
-
-The first thing to do before upgrading from one version to another is to
-ensure that you don't overwrite or delete your production (current) version
-of Bacula until you have tested that the new version works.
-
-If you have installed Bacula into a single directory, this is simple: simply
-make a copy of your Bacula directory. 
-
-If you have done a more typical Unix installation where the binaries are
-placed in one directory and the configuration files are placed in another,
-then the simplest way is to configure your new Bacula to go into a single
-file. Alternatively, make copies of all your binaries and especially your 
-conf files.
-
-Whatever your situation may be (one of the two just described), you should
-probably start with the {\bf defaultconf} script that can be found in the {\bf
-examples} subdirectory. Copy this script to the main Bacula directory, modify
-it as necessary (there should not need to be many modifications), configure
-Bacula, build it, install it, then stop your production Bacula, copy all the
-{\bf *.conf} files from your production Bacula directory to the test Bacula
-directory, start the test version, and run a few test backups. If all seems
-good, then you can proceed to install the new Bacula in place of or possibly
-over the old Bacula. 
-
-When installing a new Bacula you need not worry about losing the changes you
-made to your configuration files as the installation process will not
-overwrite them providing that you do not do a {\bf make uninstall}.
-
-If the new version of Bacula requires an upgrade to the database,
-you can upgrade it with the script {\bf update\_bacula\_tables}, which
-will be installed in your scripts directory (default {\bf /etc/bacula}),
-or alternatively, you can find it in the  
-{\bf \lt{}bacula-source\gt{}/src/cats} directory.
-
-\section{Getting Notified of Job Completion}
-\label{notification}
-\index[general]{Getting Notified of Job Completion }
-\index[general]{Completion!Getting Notified of Job }
-
-One of the first things you should do is to ensure that you are being properly
-notified of the status of each Job run by Bacula, or at a minimum of each Job
-that terminates with an error. 
-
-Until you are completely comfortable with {\bf Bacula}, we recommend that you
-send an email to yourself for each Job that is run. This is most easily
-accomplished by adding an email notification address in the {\bf Messages}
-resource of your Director's configuration file. An email is automatically
-configured in the default configuration files, but you must ensure that the
-default {\bf root} address is replaced by your email address. 
-
-For additional examples of how to configure a Bacula, please take a look at the
-{\bf .conf} files found in the {\bf examples} sub-directory. We recommend the
-following configuration (where you change the paths and email address to
-correspond to your setup). Note, the {\bf mailcommand} and {\bf
-operatorcommand} should be on a single line. They were split here for
-presentation: 
-
-\footnotesize
-\begin{verbatim}
-Messages {
-  Name = Standard
-  mailcommand = "/home/bacula/bin/bsmtp -h localhost
-                -f \"\(Bacula\) %r\"
-                -s \"Bacula: %t %e of %c %l\" %r"
-  operatorcommand = "/home/bacula/bin/bsmtp -h localhost
-                -f \"\(Bacula\) %r\"
-                -s \"Bacula: Intervention needed for %j\" %r"
-  Mail = your-email-address = all, !skipped, !terminate
-  append = "/home/bacula/bin/log" = all, !skipped, !terminate
-  operator = your-email-address = mount
-  console = all, !skipped, !saved
-}
-\end{verbatim}
-\normalsize
-
-You will need to ensure that the {\bf /home/bacula/bin} path on the {\bf
-mailcommand} and the {\bf operatorcommand} lines point to your {\bf Bacula}
-binary directory where the {\bf bsmtp} program will be installed. You will
-also want to ensure that the {\bf your-email-address} is replaced by your
-email address, and finally, you will also need to ensure that the {\bf
-/home/bacula/bin/log} points to the file where you want to log all messages. 
-
-With the above Messages resource, you will be notified by email of every Job
-that ran, all the output will be appended to the {\bf log} file you specify,
-all output will be directed to the console program, and all mount messages
-will be emailed to you. Note, some messages will be sent to multiple
-destinations. 
-
-The form of the mailcommand is a bit complicated, but it allows you to
-distinguish whether the Job terminated in error or terminated normally. Please
-see the 
-\ilink{Mail Command}{mailcommand} section of the Messages
-Resource chapter of this manual for the details of the substitution characters
-used above. 
-
-Once you are totally comfortable with Bacula as I am, or if you have a large
-number of nightly Jobs as I do (eight), you will probably want to change the
-{\bf Mail} command to {\bf Mail On Error} which will generate an email message
-only if the Job terminates in error. If the Job terminates normally, no email
-message will be sent, but the output will still be appended to the log file as
-well as sent to the Console program. 
-
-\section{Getting Email Notification to Work}
-\label{email}
-\index[general]{Work!Getting Email Notification to }
-\index[general]{Getting Email Notification to Work }
-
-The section above describes how to get email notification of job status.
-Occasionally, however, users have problems receiving any email at all. In that
-case, the things to check are the following: 
-
-\begin{itemize}
-\item Ensure that you have a valid email address specified on your  {\bf Mail}
-   record in the Director's Messages resource. The email  address should be fully
-   qualified. Simply using {\bf root} generally  will not work, rather you should
-use {\bf root@localhost} or better  yet your full domain.  
-\item Ensure that you do not have a {\bf Mail} record in the Storage  daemon's
-   or File daemon's configuration files. The only record  you should have is {\bf
-   director}:  
-
-\footnotesize
-\begin{verbatim}
-      director = director-name = all
-      
-\end{verbatim}
-\normalsize
-
-\item If all else fails, try replacing the {\bf mailcommand} with 
-
-   \footnotesize
-\begin{verbatim}
-mailcommand = "mail -s test your@domain.com"
-\end{verbatim}
-\normalsize
-
-\item Once the above is working, assuming you want to use {\bf bsmtp},  submit
-   the desired bsmtp command by hand and ensure that the email  is delivered,
-   then put that command into {\bf Bacula}. Small  differences in things such as
-the parenthesis around the word  Bacula can make a big difference to some
-bsmtp programs.  For example, you might start simply by using: 
-
-\footnotesize
-\begin{verbatim}
-mailcommand = "/home/bacula/bin/bsmtp -f \"root@localhost\" %r"
-\end{verbatim}
-\normalsize
-
-\end{itemize}
-
-\section{Getting Notified that Bacula is Running}
-\label{JobNotification}
-\index[general]{Running!Getting Notified that Bacula is }
-\index[general]{Getting Notified that Bacula is Running }
-
-If like me, you have setup Bacula so that email is sent only when a Job has
-errors, as described in the previous section of this chapter, inevitably, one
-day, something will go wrong and {\bf Bacula} can stall. This could be because
-Bacula crashes, which is vary rare, or more likely the network has caused {\bf
-Bacula} to {\bf hang} for some unknown reason. 
-
-To avoid this, you can use the {\bf RunAfterJob} command in the Job resource
-to schedule a Job nightly, or weekly that simply emails you a message saying
-that Bacula is still running. For example, I have setup the following Job in
-my Director's configuration file: 
-
-\footnotesize
-\begin{verbatim}
-Schedule {
-  Name = "Watchdog"
-  Run = Level=Full sun-sat at 6:05
-}
-Job {
-  Name = "Watchdog"
-  Type = Admin
-  Client=Watchdog
-  FileSet="Verify Set"
-  Messages = Standard
-  Storage = DLTDrive
-  Pool = Default
-  Schedule = "Watchdog"
-  RunAfterJob = "/home/kern/bacula/bin/watchdog %c %d"
-}
-Client {
-  Name = Watchdog
-  Address = rufus
-  FDPort = 9102
-  Catalog = Verify
-  Password = ""
-  File Retention = 1day
-  Job Retention = 1 month
-  AutoPrune = yes
-}
-\end{verbatim}
-\normalsize
-
-Where I established a schedule to run the Job nightly. The Job itself is type
-{\bf Admin} which means that it doesn't actually do anything, and I've defined
-a FileSet, Pool, Storage, and Client, all of which are not really used (and
-probably don't need to be specified). The key aspect of this Job is the
-command: 
-
-\footnotesize
-\begin{verbatim}
-  RunAfterJob = "/home/kern/bacula/bin/watchdog %c %d"
-\end{verbatim}
-\normalsize
-
-which runs my "watchdog" script. As an example, I have added the Job codes
-\%c and \%d which will cause the Client name and the Director's name to be
-passed to the script. For example, if the Client's name is {\bf Watchdog} and
-the Director's name is {\bf main-dir} then referencing \$1 in the script would
-get {\bf Watchdog} and referencing \$2 would get {\bf main-dir}. In this case,
-having the script know the Client and Director's name is not really useful,
-but in other situations it may be. 
-
-You can put anything in the watchdog script. In my case, I like to monitor the
-size of my catalog to be sure that {\bf Bacula} is really pruning it. The
-following is my watchdog script: 
-
-\footnotesize
-\begin{verbatim}
-#!/bin/sh
-cd /home/kern/mysql/var/bacula
-du . * |
-/home/kern/bacula/bin/bsmtp  \
-   -f "\(Bacula\) abuse@whitehouse.com" -h mail.yyyy.com \
-   -s "Bacula running" abuse@whitehouse.com
-\end{verbatim}
-\normalsize
-
-If you just wish to send yourself a message, you can do it with: 
-
-\footnotesize
-\begin{verbatim}
-#!/bin/sh
-cd /home/kern/mysql/var/bacula
-/home/kern/bacula/bin/bsmtp  \
-   -f "\(Bacula\) abuse@whitehouse.com" -h mail.yyyy.com \
-   -s "Bacula running" abuse@whitehouse.com <<END-OF-DATA
-Bacula is still running!!!
-END-OF-DATA
-\end{verbatim}
-\normalsize
-
-\section{Maintaining a Valid Bootstrap File}
-\label{bootstrap}
-\index[general]{Maintaining a Valid Bootstrap File }
-\index[general]{File!Maintaining a Valid Bootstrap }
-
-By using a 
-\ilink{ WriteBootstrap}{writebootstrap} record in each of your
-Director's Job resources, you can constantly maintain a 
-\ilink{bootstrap}{BootstrapChapter} file that will enable you to
-recover the state of your system as of the last backup without having the
-Bacula catalog. This permits you to more easily recover from a disaster that
-destroys your Bacula catalog. 
-
-When a Job resource has a {\bf WriteBootstrap} record, Bacula will maintain
-the designated file (normally on another system but mounted by NFS) with up to
-date information necessary to restore your system. For example, in my
-Director's configuration file, I have the following record: 
-
-\footnotesize
-\begin{verbatim}
- Write Bootstrap = "/mnt/deuter/files/backup/client-name.bsr"
-\end{verbatim}
-\normalsize
-
-where I replace {\bf client-name} by the actual name of the client that is
-being backed up. Thus, Bacula automatically maintains one file for each of my
-clients. The necessary bootstrap information is appended to this file during
-each {\bf Incremental} backup, and the file is totally rewritten during each
-{\bf Full} backup. 
-
-Note, one disadvantage of writing to an NFS mounted volume as I do is
-that if the other machine goes down, the OS will wait forever on the fopen()
-call that Bacula makes. As a consequence, Bacula will completely stall until
-the machine exporting the NFS mounts comes back up. A possible solution to this
-problem was provided by Andrew Hilborne, and consists of using the {\bf soft}
-option instead of the {\bf hard} option when mounting the NFS volume, which is
-typically done in {\bf /etc/fstab}/. The NFS documentation explains these
-options in detail. However, I found that with the {\bf soft} option 
-NFS disconnected frequently causing even more problems.
-
-If you are starting off in the middle of a cycle (i.e. with Incremental
-backups) rather than at the beginning (with a Full backup), the {\bf
-bootstrap} file will not be immediately valid as it must always have the
-information from a Full backup as the first record. If you wish to synchronize
-your bootstrap file immediately, you can do so by running a {\bf restore}
-command for the client and selecting a full restore, but when the restore
-command asks for confirmation to run the restore Job, you simply reply no,
-then copy the bootstrap file that was written to the location specified on the
-{\bf Write Bootstrap} record. The restore bootstrap file can be found in {\bf
-restore.bsr} in the working directory that you defined. In the example given
-below for the client {\bf rufus}, my input is shown in bold. Note, the JobId
-output has been partially truncated to fit on the page here: 
-
-\footnotesize
-\begin{verbatim}
-(in the Console program)
-*restore
-First you select one or more JobIds that contain files
-to be restored. You will then be presented several methods
-of specifying the JobIds. Then you will be allowed to
-select which files from those JobIds are to be restored.
-To select the JobIds, you have the following choices:
-     1: List last 20 Jobs run
-     2: List Jobs where a given File is saved
-     3: Enter list of JobIds to select
-     4: Enter SQL list command
-     5: Select the most recent backup for a client
-     6: Cancel
-Select item:  (1-6): 5
-The defined Client resources are:
-     1: Minimatou
-     2: Rufus
-     3: Timmy
-Select Client (File daemon) resource (1-3): 2
-The defined FileSet resources are:
-     1: Other Files
-Item 1 selected automatically.
-+-------+------+-------+---------+---------+------+-------+------------+
-| JobId | Levl | Files | StrtTim | VolName | File | SesId | VolSesTime |
-+-------+------+-------+---------+---------+------+-------+------------+
-| 2     | F    | 84    |  ...    | test1   | 0    | 1     | 1035645259 |
-+-------+------+-------+---------+---------+------+-------+------------+
-You have selected the following JobId: 2
-Building directory tree for JobId 2 ...
-The defined Storage resources are:
-     1: File
-Item 1 selected automatically.
-You are now entering file selection mode where you add and
-remove files to be restored. All files are initially added.
-Enter "done" to leave this mode.
-cwd is: /
-$ done
-84 files selected to restore.
-Run Restore job
-JobName:    kernsrestore
-Bootstrap:  /home/kern/bacula/working/restore.bsr
-Where:      /tmp/bacula-restores
-FileSet:    Other Files
-Client:     Rufus
-Storage:    File
-JobId:      *None*
-OK to run? (yes/mod/no): no
-quit
-(in a shell window)
-cp ../working/restore.bsr /mnt/deuter/files/backup/rufus.bsr
-\end{verbatim}
-\normalsize
-
-\section{Rejected Volumes After a Crash}
-\label{RejectedVolumes}
-\index[general]{Crash!Rejected Volumes After a }
-\index[general]{Rejected Volumes After a Crash }
-
-Bacula keeps a count of the number of files on each Volume in its Catalog
-database so that before appending to a tape, it can verify that the number of
-files are correct, and thus prevent overwriting valid data. If the Director or
-the Storage daemon crashes before the job has completed, the tape will contain
-one more file than is noted in the Catalog, and the next time you attempt to
-use the same Volume, Bacula will reject it due to a mismatch between the
-physical tape (Volume) and the catalog. 
-
-The easiest solution to this problem is to label a new tape and start fresh.
-If you wish to continue appending to the current tape, you can do so by using
-the {\bf update} command in the console program to change the {\bf Volume
-Files} entry in the catalog. A typical sequence of events would go like the
-following: 
-
-\footnotesize
-\begin{verbatim}
-- Bacula crashes
-- You restart Bacula
-\end{verbatim}
-\normalsize
-
-Bacula then prints: 
-
-\footnotesize
-\begin{verbatim}
-17-Jan-2003 16:45 rufus-dir: Start Backup JobId 13,
-                  Job=kernsave.2003-01-17_16.45.46
-17-Jan-2003 16:45 rufus-sd: Volume test01 previously written,
-                  moving to end of data.
-17-Jan-2003 16:46 rufus-sd: kernsave.2003-01-17_16.45.46 Error:
-                  I cannot write on this volume because:
-                  The number of files mismatch! Volume=11 Catalog=10
-17-Jan-2003 16:46 rufus-sd: Job kernsave.2003-01-17_16.45.46 waiting.
-                   Cannot find any appendable volumes.
-Please use the "label"  command to create a new Volume for:
-    Storage:      SDT-10000
-    Media type:   DDS-4
-    Pool:         Default
-\end{verbatim}
-\normalsize
-
-(note, lines wrapped for presentation)
-The key here is the line that reads: 
-
-\footnotesize
-\begin{verbatim}
-  The number of files mismatch! Volume=11 Catalog=10
-\end{verbatim}
-\normalsize
-
-It says that Bacula found eleven files on the volume, but that the catalog
-says there should be ten. When you see this, you can be reasonably sure that
-the SD was interrupted while writing before it had a chance to update the
-catalog. As a consequence, you can just modify the catalog count to eleven,
-and even if the catalog contains references to files saved in file 11,
-everything will be OK and nothing will be lost. Note that if the SD had
-written several file marks to the volume, the difference between the Volume
-count and the Catalog count could be larger than one, but this is unusual. 
-
-If on the other hand the catalog is marked as having more files than Bacula
-found on the tape, you need to consider the possible negative consequences of
-modifying the catalog. Please see below for a more complete discussion of
-this. 
-
-Continuing with the example of {\bf Volume = 11 Catalog = 10}, to enable to
-Bacula to append to the tape, you do the following: 
-
-\footnotesize
-\begin{verbatim}
-update
-Update choice:
-     1: Volume parameters
-     2: Pool from resource
-     3: Slots from autochanger
-Choose catalog item to update (1-3): 1
-Defined Pools:
-     1: Default
-     2: File
-Select the Pool (1-2):
-+-------+---------+--------+---------+-----------+------+----------+------+-----+
-| MedId | VolName | MedTyp | VolStat | VolBytes  | Last | VolReten | Recy | Slt |
-+-------+---------+--------+---------+-----------+------+----------+------+-----+
-| 1     | test01  | DDS-4  | Error   | 352427156 | ...  | 31536000 | 1    | 0   |
-+-------+---------+--------+---------+-----------+------+----------+------+-----+
-Enter MediaId or Volume name: 1
-\end{verbatim}
-\normalsize
-
-(note table output truncated for presentation) First, you chose to update the
-Volume parameters by entering a {\bf 1}. In the volume listing that follows,
-notice how the VolStatus is {\bf Error}. We will correct that after changing
-the Volume Files. Continuing, you respond 1, 
-
-\footnotesize
-\begin{verbatim}
-Updating Volume "test01"
-Parameters to modify:
-     1: Volume Status
-     2: Volume Retention Period
-     3: Volume Use Duration
-     4: Maximum Volume Jobs
-     5: Maximum Volume Files
-     6: Maximum Volume Bytes
-     7: Recycle Flag
-     8: Slot
-     9: Volume Files
-    10: Pool
-    11: Done
-Select parameter to modify (1-11): 9
-Warning changing Volume Files can result
-in loss of data on your Volume
-Current Volume Files is: 10
-Enter new number of Files for Volume: 11
-New Volume Files is: 11
-Updating Volume "test01"
-Parameters to modify:
-     1: Volume Status
-     2: Volume Retention Period
-     3: Volume Use Duration
-     4: Maximum Volume Jobs
-     5: Maximum Volume Files
-     6: Maximum Volume Bytes
-     7: Recycle Flag
-     8: Slot
-     9: Volume Files
-    10: Pool
-    11: Done
-Select parameter to modify (1-10): 1
-\end{verbatim}
-\normalsize
-
-Here, you have selected {\bf 9} in order to update the Volume Files, then you
-changed it from {\bf 10} to {\bf 11}, and you now answer {\bf 1} to change the
-Volume Status. 
-
-\footnotesize
-\begin{verbatim}
-Current Volume status is: Error
-Possible Values are:
-     1: Append
-     2: Archive
-     3: Disabled
-     4: Full
-     5: Used
-     6: Read-Only
-Choose new Volume Status (1-6): 1
-New Volume status is: Append
-Updating Volume "test01"
-Parameters to modify:
-     1: Volume Status
-     2: Volume Retention Period
-     3: Volume Use Duration
-     4: Maximum Volume Jobs
-     5: Maximum Volume Files
-     6: Maximum Volume Bytes
-     7: Recycle Flag
-     8: Slot
-     9: Volume Files
-    10: Pool
-    11: Done
-Select parameter to modify (1-11): 11
-Selection done.
-\end{verbatim}
-\normalsize
-
-At this point, you have changed the Volume Files from {\bf 10} to {\bf 11} to
-account for the last file that was written but not updated in the database,
-and you changed the Volume Status back to {\bf Append}. 
-
-This was a lot of words to describe something quite simple. 
-
-The {\bf Volume Files} option exists only in version 1.29 and later, and you
-should be careful using it. Generally, if you set the value to that which
-Bacula said is on the tape, you will be OK, especially if the value is one
-more than what is in the catalog. 
-
-Now lets consider the case: 
-
-\footnotesize
-\begin{verbatim}
-  The number of files mismatch! Volume=10 Catalog=12
-\end{verbatim}
-\normalsize
-
-Here the Bacula found fewer files on the volume than what is marked in the
-catalog. Now, in this case, you should hesitate a lot before modifying the count
-in the catalog, because if you force the catalog from 12 to 10, Bacula will
-start writing after the file 10 on the tape, possibly overwriting valid data,
-and if you ever try to restore any of the files that the catalog has marked as
-saved on Files 11 and 12, all chaos will break out. In this case, you will
-probably be better off using a new tape. In fact, you might want to see what
-files the catalog claims are actually stored on that Volume, and back them up
-to another tape and recycle this tape. 
-
-\section{Security Considerations}
-\label{security}
-\index[general]{Considerations!Security }
-\index[general]{Security Considerations }
-
-Only the File daemon needs to run with root permission (so that it can access
-all files). As a consequence, you may run your Director, Storage daemon, and
-MySQL or PostgreSQL database server as non-root processes. Version 1.30 has
-the {\bf -u} and the {\bf -g} options that allow you to specify a userid and
-groupid on the command line to be used after Bacula starts. 
-
-As of version 1.33, thanks to Dan Langille, it is easier to configure the
-Bacula Director and Storage daemon to run as non-root. 
-
-You should protect the Bacula port addresses (normally 9101, 9102, and 9103)
-from outside access by a firewall or other means of protection to prevent
-unauthorized use of your daemons. 
-
-You should ensure that the configuration files are not world readable since
-they contain passwords that allow access to the daemons. Anyone who can access
-the Director using a console program can restore any file from a backup
-Volume. 
-
-You should protect your Catalog database. If you are using SQLite, make sure
-that the working directory is readable only by root (or your Bacula userid),
-and ensure that {\bf bacula.db} has permissions {\bf -rw-r\verb:--:r\verb:--:} (i.e. 640) or
-more strict. If you are using MySQL or PostgreSQL, please note that the Bacula
-setup procedure leaves the database open to anyone. At a minimum, you should
-assign the user {\bf bacula} a userid and add it to your Director's
-configuration file in the appropriate Catalog resource. 
-
-If you use the make\_catalog\_backup script provided by Bacula, remember that
-you should take care when supplying passwords on the command line.  Read the
-\ilink{Backing Up Your Bacula
-Database - Security Considerations }{BackingUpBaculaSecurityConsiderations}
-section for more information.
-
-\section{Creating Holiday Schedules}
-\label{holiday}
-\index[general]{Schedules!Creating Holiday }
-\index[general]{Creating Holiday Schedules }
-
-If you normally change tapes every day or at least every Friday, but Thursday
-is a holiday, you can use a trick proposed by Lutz Kittler to ensure that no
-job runs on Thursday so that you can insert Friday's tape and be sure it will
-be used on Friday. To do so, define a {\bf RunJobBefore} script that normally
-returns zero, so that the Bacula job will normally continue. You can then
-modify the script to return non-zero on any day when you do not want Bacula to
-run the job. 
-
-\section{Automatic Labeling Using Your Autochanger}
-\label{autolabel}
-\index[general]{Automatic Labeling Using Your Autochanger }
-\index[general]{Autochanger!Automatic Labeling Using Your }
-
-If you have an autochanger but it does not support barcodes, using a "trick"
-you can make Bacula automatically label all the volumes in your autochanger's
-magazine. 
-
-First create a file containing one line for each slot in your autochanger that
-has a tape to be labeled. The line will contain the slot number a colon (:)
-then the Volume name you want to use. For example, create a file named {\bf
-volume-list}, which contains: 
-
-\footnotesize
-\begin{verbatim}
-1:Volume001
-2:TestVolume02
-5:LastVolume
-\end{verbatim}
-\normalsize
-
-The records do not need to be in any order and you don't need to mention all
-the slots. Normally, you will have a consistent set of Volume names and a
-sequential set of numbers for each slot you want labeled. In the example
-above, I've left out slots 3 and 4 just as an example. Now, modify your {\bf
-mtx-changer} script and comment out all the lines in the {\bf list)} case by
-putting a \# in column 1. Then add the following two lines: 
-
-\footnotesize
-\begin{verbatim}
-  cat <absolute-path>/volume-list
-  exit 0
-\end{verbatim}
-\normalsize
-
-so that the whole case looks like: 
-
-\footnotesize
-\begin{verbatim}
-  list)
-#
-# commented out lines
-   cat <absolute-path>/volume-list
-   exit 0
-   ;;
-\end{verbatim}
-\normalsize
-
-where you replace \lt{}absolute-path\gt{} with the full path to the
-volume-list file. Then using the console, you enter the following command: 
-
-\footnotesize
-\begin{verbatim}
-   label barcodes
-\end{verbatim}
-\normalsize
-
-and Bacula will proceed to mount the autochanger Volumes in the list and label
-them with the Volume names you have supplied. Bacula will think that the list
-was provided by the autochanger barcodes, but in reality, it was you who
-supplied the \lt{}barcodes\gt{}. 
-
-If it seems to work, when it finishes, enter: 
-
-\footnotesize
-\begin{verbatim}
-   list volumes
-\end{verbatim}
-\normalsize
-
-and you should see all the volumes nicely created. 
-
-\section{Backing Up Portables Using DHCP}
-\label{DNS}
-\index[general]{DHCP!Backing Up Portables Using }
-\index[general]{Backing Up Portables Using DHCP }
-
-You may want to backup laptops or portables that are not always connected to
-the network. If you are using DHCP to assign an IP address to those machines
-when they connect, you will need to use the Dynamic Update capability of DNS
-to assign a name to those machines that can be used in the Address field of
-the Client resource in the Director's conf file. 
-
-\section{Going on Vacation}
-\label{Vacation}
-\index[general]{Vacation!Going on }
-\index[general]{Going on Vacation }
-
-At some point, you may want to be absent for a week or two and you want to
-make sure Bacula has enough tape left so that the backups will complete. You
-start by doing a {\bf list volumes} in the Console program: 
-
-\footnotesize
-\begin{verbatim}
-list volumes
-Using default Catalog name=BackupDB DB=bacula
-Pool: Default
-+---------+---------------+-----------+-----------+----------------+-
-| MediaId | VolumeName    | MediaType | VolStatus |       VolBytes |
-+---------+---------------+-----------+-----------+----------------+-
-|      23 | DLT-30Nov02   | DLT8000   | Full      | 54,739,278,128 |
-|      24 | DLT-21Dec02   | DLT8000   | Full      | 56,331,524,629 |
-|      25 | DLT-11Jan03   | DLT8000   | Full      | 67,863,514,895 |
-|      26 | DLT-02Feb03   | DLT8000   | Full      | 63,439,314,216 |
-|      27 | DLT-03Mar03   | DLT8000   | Full      | 66,022,754,598 |
-|      28 | DLT-04Apr03   | DLT8000   | Full      | 60,792,559,924 |
-|      29 | DLT-28Apr03   | DLT8000   | Full      | 62,072,494,063 |
-|      30 | DLT-17May03   | DLT8000   | Full      | 65,901,767,839 |
-|      31 | DLT-07Jun03   | DLT8000   | Used      | 56,558,490,015 |
-|      32 | DLT-28Jun03   | DLT8000   | Full      | 64,274,871,265 |
-|      33 | DLT-19Jul03   | DLT8000   | Full      | 64,648,749,480 |
-|      34 | DLT-08Aug03   | DLT8000   | Full      | 64,293,941,255 |
-|      35 | DLT-24Aug03   | DLT8000   | Append    |  9,999,216,782 |
-+---------+---------------+-----------+-----------+----------------+
-\end{verbatim}
-\normalsize
-
-Note, I have truncated the output for presentation purposes. What is
-significant, is that I can see that my current tape has almost 10 Gbytes of
-data, and that the average amount of data I get on my tapes is about 60
-Gbytes. So if I go on vacation now, I don't need to worry about tape capacity
-(at least not for short absences). 
-
-Equally significant is the fact that I did go on vacation the 28th of June
-2003, and when I did the {\bf list volumes} command, my current tape at that
-time, DLT-07Jun03 MediaId 31, had 56.5 Gbytes written. I could see that the
-tape would fill shortly. Consequently, I manually marked it as {\bf Used} and
-replaced it with a fresh tape that I labeled as DLT-28Jun03, thus assuring
-myself that the backups would all complete without my intervention. 
-
-\section{Exclude Files on Windows Regardless of Case}
-\label{Case}
-\index[general]{Exclude Files on Windows Regardless of Case}
-% TODO: should this be put in the win32 chapter?
-% TODO: should all these tips be placed in other chapters?
-
-This tip was submitted by Marc Brueckner who wasn't sure of the case of some
-of his files on Win32, which is case insensitive. The problem is that Bacula
-thinks that {\bf /UNIMPORTANT FILES} is different from {\bf /Unimportant
-Files}. Marc was aware that the file exclusion permits wild-cards. So, he
-specified: 
-
-\footnotesize
-\begin{verbatim}
-"/[Uu][Nn][Ii][Mm][Pp][Oo][Rr][Tt][Aa][Nn][Tt] [Ff][Ii][Ll][Ee][Ss]"
-\end{verbatim}
-\normalsize
-
-As a consequence, the above exclude works for files of any case. 
-
-Please note that this works only in Bacula Exclude statement and not in
-Include. 
-
-\section{Executing Scripts on a Remote Machine}
-\label{RemoteExecution}
-\index[general]{Machine!Executing Scripts on a Remote }
-\index[general]{Executing Scripts on a Remote Machine }
-
-This tip also comes from Marc Brueckner. (Note, this tip is probably outdated
-by the addition of {\bf ClientRunBeforJob} and {\bf ClientRunAfterJob} Job
-records, but the technique still could be useful.) First I thought the "Run
-Before Job" statement in the Job-resource is for executing a script on the
-remote machine (the machine to be backed up). (Note, this is possible as mentioned
-above by using {\bf ClientRunBeforJob} and {\bf ClientRunAfterJob}).
-It could be useful to execute
-scripts on the remote machine e.g. for stopping databases or other services
-while doing the backup. (Of course I have to start the services again when the
-backup has finished) I found the following solution: Bacula could execute
-scripts on the remote machine by using ssh. The authentication is done
-automatically using a private key. First you have to generate a keypair. I've
-done this by: 
-
-\footnotesize
-\begin{verbatim}
-ssh-keygen -b 4096 -t dsa -f Bacula_key
-\end{verbatim}
-\normalsize
-
-This statement may take a little time to run. It creates a public/private key
-pair with no passphrase. You could save the keys in /etc/bacula. Now you have
-two new files : Bacula\_key which contains the private key and Bacula\_key.pub
-which contains the public key. 
-
-Now you have to append the Bacula\_key.pub file to the file authorized\_keys
-in the \textbackslash{}root\textbackslash{}.ssh directory of the remote
-machine. Then you have to add (or uncomment) the line 
-
-\footnotesize
-\begin{verbatim}
-AuthorizedKeysFile           %h/.ssh/authorized_keys
-\end{verbatim}
-\normalsize
-
-to the sshd\_config file on the remote machine. Where the \%h stands for the
-home-directory of the user (root in this case). 
-
-Assuming that your sshd is already running on the remote machine, you can now
-enter the following on the machine where Bacula runs: 
-
-\footnotesize
-\begin{verbatim}
-ssh -i Bacula_key  -l root <machine-name-or-ip-address> "ls -la"
-\end{verbatim}
-\normalsize
-
-This should execute the "ls -la" command on the remote machine. 
-
-Now you could add lines like the following to your Director's conf file: 
-
-\footnotesize
-\begin{verbatim}
-...
-Run Before Job = ssh -i /etc/bacula/Bacula_key 192.168.1.1 \
-                 "/etc/init.d/database stop"
-Run After Job = ssh -i /etc/bacula/Bacula_key 192.168.1.1 \
-                 "/etc/init.d/database start"
-...
-\end{verbatim}
-\normalsize
-
-Even though Bacula version 1.32 and later has a ClientRunBeforeJob, the ssh method still
-could be useful for updating all the Bacula clients on several remote machines
-in a single script. 
-
-\section{Recycling All Your Volumes}
-\label{recycle}
-\index[general]{Recycling All Your Volumes }
-\index[general]{Volumes!Recycling All Your }
-
-This tip comes from Phil Stracchino. 
-
-If you decide to blow away your catalog and start over, the simplest way to
-re-add all your prelabeled tapes with a minimum of fuss (provided you don't
-care about the data on the tapes) is to add the tape labels using the console
-{\bf add} command, then go into the catalog and manually set the VolStatus of
-every tape to {\bf Recycle}. 
-
-The SQL command to do this is very simple, either use your vendor's
-command line interface (mysql, postgres, sqlite, ...) or use the sql
-command in the Bacula console:
-
-\footnotesize
-\begin{verbatim}
-update Media set VolStatus='Recycle';
-\end{verbatim}
-\normalsize
-
-Bacula will then ignore the data already stored on the tapes and just re-use
-each tape without further objection. 
-
-\section{Backing up ACLs on ext3 or XFS filesystems}
-\label{ACLs}
-\index[general]{Filesystems!Backing up ACLs on ext3 or XFS }
-\index[general]{Backing up ACLs on ext3 or XFS filesystems }
-
-This tip comes from Volker Sauer. 
-
-Note, this tip was given prior to implementation of ACLs in Bacula (version
-1.34.5). It is left here because dumping/displaying ACLs can still be useful
-in testing/verifying that Bacula is backing up and restoring your ACLs
-properly. Please see the 
-\ilink{aclsupport}{ACLSupport} FileSet option in the
-configuration chapter of this manual. 
-
-For example, you could dump the ACLs to a file with a script similar to the
-following: 
-
-\footnotesize
-\begin{verbatim}
-#!/bin/sh
-BACKUP_DIRS="/foo /bar"
-STORE_ACL=/root/acl-backup
-umask 077
-for i in $BACKUP_DIRS; do
- cd $i /usr/bin/getfacl -R --skip-base .>$STORE_ACL/${i//\//_}
-done
-\end{verbatim}
-\normalsize
-
-Then use Bacula to backup {\bf /root/acl-backup}. 
-
-The ACLs could be restored using Bacula to the {\bf /root/acl-backup} file,
-then restored to your system using: 
-
-\footnotesize
-\begin{verbatim}
-setfacl --restore/root/acl-backup
-\end{verbatim}
-\normalsize
-
-\section{Total Automation of Bacula Tape Handling}
-\label{automate}
-\index[general]{Handling!Total Automation of Bacula Tape }
-\index[general]{Total Automation of Bacula Tape Handling }
-
-This tip was provided by Alexander Kuehn. 
-
-\elink{Bacula}{http://www.bacula.org/} is a really nice backup program except
-that the manual tape changing requires user interaction with the bacula
-console. 
-
-Fortunately I can fix this.
-NOTE!!! This suggestion applies for people who do *NOT* have tape autochangers
-and must change tapes manually.!!!!! 
-
-Bacula supports a variety of tape changers through the use of mtx-changer
-scripts/programs. This highly flexible approach allowed me to create 
-\elink{this shell script}{http://www.bacula.org/en/rel-manual/mtx-changer.txt} which does the following:
-% TODO: We need to include this in book appendix and point to it.
-% TODO:
-Whenever a new tape is required it sends a mail to the operator to insert the
-new tape. Then it waits until a tape has been inserted, sends a mail again to
-say thank you and let's bacula continue its backup.
-So you can schedule and run backups without ever having to log on or see the
-console.
-To make the whole thing work you need to create a Device resource which looks
-something like this ("Archive Device", "Maximum Changer Wait", "Media
-Type" and "Label media" may have different values): 
-
-\footnotesize
-\begin{verbatim}
-Device {
-   Name=DDS3
-   Archive Device = # use yours not mine! ;)/dev/nsa0
-   Changer Device = # not really required/dev/nsa0
-   Changer Command = "# use this (maybe change the path)!
-         /usr/local/bin/mtx-changer %o %a %S"
-   Maximum Changer Wait = 3d          # 3 days in seconds
-   AutomaticMount = yes;              # mount on start
-   AlwaysOpen = yes;                  # keep device locked
-   Media Type = DDS3                  # it's just a name
-   RemovableMedia = yes;              #
-   Offline On Unmount = Yes;          # keep this too
-   Label media = Yes;                 #
-}
-\end{verbatim}
-\normalsize
-
-As the script has to emulate the complete wisdom of a mtx-changer it has an
-internal "database" containing where which tape is stored, you can see this on
-the following line:
-
-\footnotesize
-\begin{verbatim}
-labels="VOL-0001 VOL-0002 VOL-0003 VOL-0004 VOL-0005 VOL-0006
-VOL-0007 VOL-0008 VOL-0009 VOL-0010 VOL-0011 VOL-0012"
-\end{verbatim}
-\normalsize
-
-The above should be all on one line, and it effectively tells Bacula that
-volume "VOL-0001" is located in slot 1 (which is our lowest slot), that
-volume "VOL-0002" is located in slot 2 and so on..
-The script also maintains a logfile (/var/log/mtx.log) where you can monitor
-its operation.
-
-\section{Running Concurrent Jobs}
-\label{ConcurrentJobs}
-\index[general]{Jobs!Running Concurrent}
-\index[general]{Running Concurrent Jobs}
-\index[general]{Concurrent Jobs}
-
-Bacula can run multiple concurrent jobs, but the default configuration files
-do not enable it. Using the {\bf Maximum Concurrent Jobs} directive, you
-can configure how many and which jobs can be run simultaneously. 
-The Director's default value for {\bf Maximum Concurrent Jobs} is "1".
-
-To initially setup concurrent jobs you need to define {\bf Maximum Concurrent Jobs} in 
-the Director's configuration file (bacula-dir.conf) in the 
-Director, Job, Client, and Storage resources.
-
-Additionally the File daemon, and the Storage daemon each have their own
-{\bf Maximum Concurrent Jobs} directive that sets the overall maximum
-number of concurrent jobs the daemon will run.  The default for both the
-File daemon and the Storage daemon is "20".
-
-For example, if you want two different jobs to run simultaneously backing up
-the same Client to the same Storage device, they will run concurrently only if
-you have set {\bf Maximum Concurrent Jobs} greater than one in the Director
-resource, the Client resource, and the Storage resource in bacula-dir.conf. 
-
-We recommend that you read the \ilink{Data
-Spooling}{SpoolingChapter} of this manual first, then test your multiple
-concurrent backup including restore testing before you put it into
-production.
-
-Below is a super stripped down bacula-dir.conf file showing you the four
-places where the the file must be modified to allow the same job {\bf
-NightlySave} to run up to four times concurrently. The change to the Job
-resource is not necessary if you want different Jobs to run at the same time,
-which is the normal case. 
-
-\footnotesize
-\begin{verbatim}
-#
-# Bacula Director Configuration file -- bacula-dir.conf
-#
-Director {
-  Name = rufus-dir
-  Maximum Concurrent Jobs = 4
-  ...
-}
-Job {
-  Name = "NightlySave"
-  Maximum Concurrent Jobs = 4
-  Client = rufus-fd
-  Storage = File
-  ...
-}
-Client {
-  Name = rufus-fd
-  Maximum Concurrent Jobs = 4
-  ...
-}
-Storage {
-  Name = File
-  Maximum Concurrent Jobs = 4
-  ...
-}
-\end{verbatim}
-\normalsize