Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > df754e4e6f7f5fc8ab9d6ed8559f3e3d > files > 120

bacula-docs-5.0.3-19.fc16.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<!--Converted with LaTeX2HTML 2008 (1.71)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Bacula Developer Notes</TITLE>
<META NAME="description" CONTENT="Bacula Developer Notes">
<META NAME="keywords" CONTENT="developers">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="developers.css">

<LINK REL="next" HREF="Bacula_Git_Usage.html">
<LINK REL="previous" HREF="Contents.html">
<LINK REL="up" HREF="Developer_s_Guide.html">
<LINK REL="next" HREF="Development_Cycle.html">
</HEAD>

<BODY >
<!--Navigation Panel-->
<A NAME="tex2html422"
  HREF="Development_Cycle.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html416"
  HREF="Developer_s_Guide.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html410"
  HREF="Contents.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html418"
  HREF="Contents.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html420"
  HREF="GNU_Free_Documentation_Lice.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html423"
  HREF="Development_Cycle.html">The Development Cycle</A>
<B> Up:</B> <A NAME="tex2html417"
  HREF="Developer_s_Guide.html">Developer's Guide</A>
<B> Previous:</B> <A NAME="tex2html411"
  HREF="Contents.html">Contents</A>
 &nbsp; <B>  <A NAME="tex2html419"
  HREF="Contents.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html421"
  HREF="GNU_Free_Documentation_Lice.html">Index</A></B> 
<BR>
<BR>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION00200000000000000000"></A>
<A NAME="_ChapterStart10"></A><A NAME="101"></A>
<A NAME="102"></A>
<BR>
Bacula Developer Notes
</H1>

<P>
This document is intended mostly for developers and describes how you can
contribute to the Bacula project and the the general framework of making
Bacula source changes.

<P>

<H2><A NAME="SECTION00201000000000000000"></A>
<A NAME="107"></A>
<BR>
Contributions
</H2>

<P>
Contributions to the Bacula project come in many forms: ideas,
participation in helping people on the bacula-users email list, packaging
Bacula binaries for the community, helping improve the documentation, and
submitting code.

<P>
Contributions in the form of submissions for inclusion in the project are
broken into two groups.  The first are contributions that are aids and not
essential to Bacula.  In general, these will be scripts or will go into the
<B>bacula/examples</B> directory.  For these kinds of non-essential
contributions there is no obligation to do a copyright assignment as
described below.  However, a copyright assignment would still be
appreciated.

<P>
The second class of contributions are those which will be integrated with
Bacula and become an essential part (code, scripts, documentation, ...)
Within this class of contributions, there are two hurdles to surmount.  One
is getting your patch accepted, and two is dealing with copyright issues.
The following text describes some of the requirements for such code.

<P>

<H2><A NAME="SECTION00202000000000000000"></A>
<A NAME="113"></A>
<BR>
Patches
</H2>

<P>
Subject to the copyright assignment described below, your patches should be
sent in <B>git format-patch</B> format relative to the current contents of the 
master branch of the Source Forge Git repository.  Please attach the
output file or files generated by the <B>git format-patch</B> to the email
rather than include them directory to avoid wrapping of the lines
in the patch.  Please be sure to use the Bacula
indenting standard (see below) for source code.  If you have checked out
the source with Git, you can get a diff using.

<P>
<PRE>
git pull
git format-patch -M
</PRE>

<P>
If you plan on doing significant development work over a period of time,
after having your first patch reviewed and approved, you will be eligible
for having developer Git write access so that you can commit your changes
directly to the Git repository.  To do so, you will need a userid on Source
Forge.

<P>

<H2><A NAME="SECTION00203000000000000000"></A>
<A NAME="122"></A>
<BR>
Copyrights
</H2>

<P>
To avoid future problems concerning changing licensing or
copyrights, all code contributions more than a hand full of lines
must be in the Public Domain or have the copyright transferred to
the Free Software Foundation Europe e.V. with a Fiduciary License
Agreement (FLA) as the case for all the current code.  

<P>
Prior to November 2004, all the code was copyrighted by Kern Sibbald and
John Walker.  After November 2004, the code was copyrighted by Kern
Sibbald, then on the 15th of November 2006, Kern transferred the copyright
to the Free Software Foundation Europe e.V. In signing the FLA and
transferring the copyright, you retain the right to use the code you have
submitted as you want, and you ensure that Bacula will always remain Free
and Open Source.

<P>
Your name should be clearly indicated as the author of the code, and you
must be extremely careful not to violate any copyrights or patents or use
other people's code without acknowledging it.  The purpose of this
requirement is to avoid future copyright, patent, or intellectual property
problems.  Please read the LICENSE agreement in the main Bacula source code
directory.  When you sign the Fiduciary License Agreement (FLA) and send it
in, you are agreeing to the terms of that LICENSE file.

<P>
If you don't understand what we mean by future problems, please
examine the difficulties Mozilla was having finding
previous contributors at 
http://www.mozilla.org/MPL/missing.html
http://www.mozilla.org/MPL/missing.html. The other important issue is to
avoid copyright, patent, or intellectual property violations as was
(May 2003) claimed by SCO against IBM. 

<P>
Although the copyright will be held by the Free Software
Foundation Europe e.V., each developer is expected to indicate
that he wrote and/or modified a particular module (or file) and
any other sources.  The copyright assignment may seem a bit
unusual, but in reality, it is not.  Most large projects require
this.

<P>
If you have any doubts about this, please don't hesitate to ask.  The
objective is to assure the long term survival of the Bacula project. 

<P>
Items not needing a copyright assignment are: most small changes,
enhancements, or bug fixes of 5-10 lines of code, which amount to    
less than 20

<H2><A NAME="SECTION00204000000000000000"></A>
<A NAME="129"></A>
<A NAME="130"></A>
<BR>
Copyright Assignment - Fiduciary License Agreement
</H2>

<P>
Since this is not a commercial enterprise, and we prefer to believe in
everyone's good faith, previously developers could assign the copyright by
explicitly acknowledging that they do so in their first submission.  This
was sufficient if the developer is independent, or an employee of a
not-for-profit organization or a university.  However, in an effort to
ensure that the Bacula code is really clean, beginning in August 2006, all
previous and future developers with SVN write access will be asked to submit a
copyright assignment (or Fiduciary License Agreement - FLA),
which means you agree to the LICENSE in the main source
directory. It also means that you receive back the right to use
the code that you have submitted.

<P>
Any developer who wants to contribute and is employed by a company should
either list the employer as the owner of the code, or get explicit
permission from him to sign the copyright assignment.  This is because in
many countries, all work that an employee does whether on company time or
in the employee's free time is considered to be Intellectual Property of
the company.  Obtaining official approval or an FLA from the company will
avoid misunderstandings between the employee, the company, and the Bacula
project.  A good number of companies have already followed this procedure.

<P>
The Fiduciary License Agreement is posted on the Bacula web site at:
http://www.bacula.org/en/FLA-bacula.en.pdfhttp://www.bacula.org/en/FLA-bacula.en.pdf

<P>
The instructions for filling out this agreement are also at:
http://www.bacula.org/?page=fsfehttp://www.bacula.org/?page=fsfe

<P>
It should be filled out, then sent to:

<P>
<PRE>
     Kern Sibbald
     Cotes-de-Montmoiret 9
     1012 Lausanne
     Switzerland
</PRE>

<P>
Please note that the above address is different from the officially
registered office mentioned in the document.  When you send in such a
complete document, please notify me: kern at sibbald dot com, and 
please add your email address to the FLA so that I can contact you
to confirm reception of the signed FLA.

<P>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>

<UL>
<LI><UL>
<LI><A NAME="tex2html424"
  HREF="Bacula_Developer_Notes.html#SECTION00201000000000000000">Contributions</A>
<LI><A NAME="tex2html425"
  HREF="Bacula_Developer_Notes.html#SECTION00202000000000000000">Patches</A>
<LI><A NAME="tex2html426"
  HREF="Bacula_Developer_Notes.html#SECTION00203000000000000000">Copyrights</A>
<LI><A NAME="tex2html427"
  HREF="Bacula_Developer_Notes.html#SECTION00204000000000000000">Copyright Assignment - Fiduciary License Agreement</A>
</UL>
<BR>
<LI><A NAME="tex2html428"
  HREF="Development_Cycle.html">The Development Cycle</A>
<LI><A NAME="tex2html429"
  HREF="Bacula_Code_Submissions_Pro.html">Bacula Code Submissions and Projects</A>
<LI><A NAME="tex2html430"
  HREF="Patches_Released_Versions.html">Patches for Released Versions</A>
<LI><A NAME="tex2html431"
  HREF="Developing_Bacula.html">Developing Bacula</A>
<UL>
<LI><A NAME="tex2html432"
  HREF="Developing_Bacula.html#SECTION00241000000000000000">Debugging</A>
<LI><A NAME="tex2html433"
  HREF="Developing_Bacula.html#SECTION00242000000000000000">Using a Debugger</A>
<LI><A NAME="tex2html434"
  HREF="Developing_Bacula.html#SECTION00243000000000000000">Memory Leaks</A>
<LI><A NAME="tex2html435"
  HREF="Developing_Bacula.html#SECTION00244000000000000000">Special Files</A>
<LI><A NAME="tex2html436"
  HREF="Developing_Bacula.html#SECTION00245000000000000000">When Implementing Incomplete Code</A>
<LI><A NAME="tex2html437"
  HREF="Developing_Bacula.html#SECTION00246000000000000000">Bacula Source File Structure</A>
<LI><A NAME="tex2html438"
  HREF="Developing_Bacula.html#SECTION00247000000000000000">Header Files</A>
<LI><A NAME="tex2html439"
  HREF="Developing_Bacula.html#SECTION00248000000000000000">Programming Standards</A>
<LI><A NAME="tex2html440"
  HREF="Developing_Bacula.html#SECTION00249000000000000000">Do Not Use</A>
<LI><A NAME="tex2html441"
  HREF="Developing_Bacula.html#SECTION002410000000000000000">Avoid if Possible</A>
<LI><A NAME="tex2html442"
  HREF="Developing_Bacula.html#SECTION002411000000000000000">Do Use Whenever Possible</A>
<LI><A NAME="tex2html443"
  HREF="Developing_Bacula.html#SECTION002412000000000000000">Indenting Standards</A>
<LI><A NAME="tex2html444"
  HREF="Developing_Bacula.html#SECTION002413000000000000000">Tabbing</A>
<LI><A NAME="tex2html445"
  HREF="Developing_Bacula.html#SECTION002414000000000000000">Don'ts</A>
<LI><A NAME="tex2html446"
  HREF="Developing_Bacula.html#SECTION002415000000000000000">Message Classes</A>
<LI><A NAME="tex2html447"
  HREF="Developing_Bacula.html#SECTION002416000000000000000">Debug Messages</A>
<LI><A NAME="tex2html448"
  HREF="Developing_Bacula.html#SECTION002417000000000000000">Error Messages</A>
<LI><A NAME="tex2html449"
  HREF="Developing_Bacula.html#SECTION002418000000000000000">Job Messages</A>
<LI><A NAME="tex2html450"
  HREF="Developing_Bacula.html#SECTION002419000000000000000">Queued Job Messages</A>
<LI><A NAME="tex2html451"
  HREF="Developing_Bacula.html#SECTION002420000000000000000">Memory Messages</A>
<LI><A NAME="tex2html452"
  HREF="Developing_Bacula.html#SECTION002421000000000000000">Bugs Database</A>
</UL></UL>
<!--End of Table of Child-Links-->
<HR>
<!--Navigation Panel-->
<A NAME="tex2html422"
  HREF="Development_Cycle.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html416"
  HREF="Developer_s_Guide.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html410"
  HREF="Contents.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html418"
  HREF="Contents.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html420"
  HREF="GNU_Free_Documentation_Lice.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html423"
  HREF="Development_Cycle.html">The Development Cycle</A>
<B> Up:</B> <A NAME="tex2html417"
  HREF="Developer_s_Guide.html">Developer's Guide</A>
<B> Previous:</B> <A NAME="tex2html411"
  HREF="Contents.html">Contents</A>
 &nbsp; <B>  <A NAME="tex2html419"
  HREF="Contents.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html421"
  HREF="GNU_Free_Documentation_Lice.html">Index</A></B> 
<!--End of Navigation Panel-->
<ADDRESS>

2012-01-24
</ADDRESS>
</BODY>
</HTML>