1 <!--#include virtual="/samba/header.html" -->
2 <title>Samba Development</title>
3 <!--#include virtual="/samba/header_wide.html" -->
7 <p>devel.samba.org contains information about the current state of Samba development. It should be of interest to those developing Samba as well as to those following Samba development.</p>
9 <p>Very often, questions arise concerning future plans for Samba. For example: "What functionality will be included in the next stable release?" "What are the differences between the various CVS and Subversion code branches?" And also, "How can I learn more, get involved, help, etc?" The information on this page is provided to help answer those kinds of questions.</p>
11 <blockquote><b>Important:</b> In order to avoid any potential licensing issues we require that anyone who has signed the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cifs/protocol/royalty-free_cifs_technical_reference_license_agreement.asp">Microsoft CIFS Royalty Free Agreement</a> not submit patches to Samba, nor base patches on the referenced specification. We require, too, that patches submitted to Samba not infringe on any known patents. Finally, as with all GPL work, the submitter should ensure that submitted patches do not conflict with any third-party copyright.</blockquote>
13 <h3>General Overview</h3>
15 <p>As of 4 April 2004, the Samba Team converted from CVS to Subversion for maintaining the Samba source code. All current development is done in a Subversion repository. All older code is in the original CVS tree; this would include 2.2.x versions of Samba, which are no longer in active development.</p>
17 <p>The latest production release is <em>Samba 3.0.23d</em> (<a
18 href="/samba/history/samba-3.0.23c.html">release notes</a> and <a
19 href="/samba/download/">download</a>).</p>
21 <p>Ongoing future research is being done for Samba 4.0
22 This work is concurrent with Samba 3.0 maintenance
23 and development. A <a href="/samba/ftp/samba4/">technology
24 preview release</a> is available.</p>
27 <h3>Samba Branches</h3>
29 <p>Areas of Samba development are listed below according to their branches within the Subversion source tree. Plans for each release follow its listing, along with a sample check out command.</p>
32 <li><h4><em>TRUNK</em></h4>
33 <p><b>NOTE:</b> TRUNK is no longer used for development. See the news item
34 <a href="http://news.samba.org/developers/svn_repo_reorganized/">SVN Repo
35 Reorganzied</a> for more info.</p>
39 <li><h4><em>SAMBA_3_0</em></h4>
40 <p>This is the current development branch for 3.0.x production releases.</p>
41 <p>Example checkout command:</p></li>
45 svn co svn://svnanon.samba.org/samba/branches/SAMBA_3_0 samba3
49 <li><h4><em>SAMBA_3_0_RELEASE</em></h4>
50 <p>This is the staging area used for freezing the 3.0.x release snapshots.</p>
51 <p>Example checkout command:</p></li>
55 svn co svn://svnanon.samba.org/samba/branches/SAMBA_3_0_RELEASE samba3_release
60 <li><h4>SAMBA_3_0_X</h4>
61 <p>After a release, a SAMBA_3_0_X branch is created, where X is the latest
62 release number (SAMBA_3_0_23, for example). This branch is a copy of
63 SAMBA_3_0_RELEASE at the time of release and is used for bug fixes only, so
64 that development may continue in SAMBA_3_0.</p>
65 <p>Example checkout command (remember to substitute for current release):</p>
70 svn co svn://svnanon.samba.org/samba/branches/SAMBA_3_0_23 samba_3.0.23
74 <li><h4><em>SAMBA_4_0</em></h4>
75 <p>This is the research branch for Samba 4.
76 <a href="/samba/ftp/samba4/">Technical Previews</a> of this code base are available
77 for download. Be aware that these snapshots are intended for testing purposes
78 only and not for use in production environments. For more information, see
79 the <a href="/samba/devel/roadmap-4.0.html">road map document</a>.</p>
80 <p>Example checkout command:</p></li>
84 svn co svn://svnanon.samba.org/samba/branches/SAMBA_4_0 samba4
87 <p>Further information on anonymous subversion access is available on <a href="/samba/subversion.html">the subversion page</a>. Those interested in the old CVS tree can check out the the <a href="/samba/cvs.html">CVS page</a>.</p>
92 <p>Because Samba development is driven by volunteers and demand, the best way to help stabilize the next release and/or feature is to help out. If you are interested in volunteering to help Samba development, go to the <a href="/samba/devel/TODO.html">TODO</a> page for a list of projects.</p>
94 <p>Please coordinate all development efforts on the <a href="mailto:samba-technical@samba.org">samba-technical</a> mailing list. For more information about the list, or to join the list, go to the <a href="http://lists.samba.org/mailman/listinfo/samba-technical">samba technical mailing list</a> page. The main samba development channel on IRC is <i>#samba-technical</i>, server <i>irc.freenode.net</i>. Please don't ask user questions in this channel (users see <i>#samba</i>). Channel logs are available <a href="http://irc.vernstok.nl/samba-technical.php">here</a>.</p>
96 <p>Also, please see our policy concerning <a href="/samba/devel/copyright-policy.html">contributor copyright</a>.</p>
99 <h3><a name="learn">Learn More</a></h3>
101 <p>For anyone interested in getting up to speed with SMB/CIFS, NetBIOS, MS-RPC, etc... Here are some links to help out:</p>
104 <li>Get a copy of <a href="http://www.wireshark.org">Wireshark</a> or possibly Microsoft's Network Monitor shipped with Windows NT/2k server.</li>
110 <a href="/samba/docs/man/Samba-Developers-Guide/">Samba
111 Developer's Guide</a> is available in
112 <a href="/samba/docs/Samba-Developers-Guide.pdf">PDF</a>
113 or <a href="/samba/docs/man/Samba-Developers-Guide/">HTML</a> format</li>
114 <li><a href="http://www.snia.org/tech_activities/CIFS/">SNIA CIFS Technical Reference</a></li>
115 <li><a href="http://www.cb1.com/~lkcl/ntdom/">http://www.cb1.com/~lkcl/ntdom/</a></li>
116 <li><a href="/samba/ftp/specs/">Archive of SMB/CIFS Protocol Drafts</a></li>
117 <li>Chris Hertel's <a href="http://www.linux-mag.com/2001-05/smb_01.html">"Understanding the Network Neighborhood"</a> and <a href="http://ubiqx.org/cifs/">Implementing CIFS</a></li>
118 <li>Luke Leighton's book with New Riders Publishing <a href="http://www.amazon.com/exec/obidos/ASIN/1578701503/qid%3D1032301305/sr%3D11-1/ref%3Dsr%5F11%5F1/102-4220271-1136156">DCE/RPC over SMB: Samba and Windows NT Domain Internals</a>, ISBN 1-57870-150-3.</li>
119 <li>The <a href="/samba/devel/smbtorture-raw-functions.txt">smbtorture
120 documentation</a> written by Stephen Zarkos are well worth reading
121 if you use the Samba test suite<br /><br /></li>
123 <li>Get a symbolic debugger (gdb, ddd, ups, etc...) and step through the smbd source code as it is running in response to a SMB call (or RPC) that you are interested in.</li></ul>
125 <li>The MSDN site (<a href="http://msdn.microsoft.com/">msdn.microsoft.com</a>) is pretty good as well, if you know what you are looking for.</li>
129 <li><em>Coding tools</em>
130 <p>As for what editor to use, it's your preference. The tool must not munge formatting to be useful.</p>
132 <p>RedHat's Source Navigator generates **huge** cross reference databases but also let's you get around in the code fairly well. You need to run X to use this? See <a href="http://sourcenav.sourceforge.net/">http://sourcenav.sourceforge.net/</a> for a download link. One could also use 'ctags' to navigate thru the source code.</p>
134 <p>Of course, vi and grep will get you there too. :-)</p>
139 <!--#include virtual="/samba/footer.html" -->