Development
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.
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.
Important: In order to avoid any potential licensing issues we require that anyone who has signed the Microsoft CIFS Royalty Free Agreement 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.
General Overview
On 4 April 2004, the Samba Team converted from CVS to Subversion for maintaining the Samba source code, and on 10 January 2008 we completed the switch to Git for all development barnches. With the transition to Git we also recovered in the main tree the CVS history. All older code is in the original Subversion and CVS trees; this would include 3.0.x and 2.2.x versions of Samba, which are no longer in active development.
The latest production release is Samba 3.2.2 (release notes and download).
With the release of version 3 of the GPL, the Samba Team has decided to release the next major production version of Samba under GPLv3. The next version will be Samba 3.2.0 and feature development is discontinued for Samba 3.0. See the Team's Announcement on GPLv3.
Ongoing future research is being done for Samba 4.0 This work is concurrent with Samba 3.2 maintenance and development. An alpha release is available.
Samba Branches
Areas of Samba development are listed below according to their branches within the Git source tree. Plans for each release follow its listing, along with a sample check out command.
GIT
Example checkout command for the main git repo:
git-clone git://git.samba.org/samba.git samba
See Jerry's wiki article on Using Git for Samba Development.
List of branches:
-
v3-devel
This is the permanent branch for 3.x development.
-
v3-3-test
This is the current branch for 3.2.x development.
-
v3-3-stable
This is the current branch for 3.2.x production releases.
-
v3-2-test
This is the current branch for 3.2.x development.
-
v3-2-stable
This is the current branch for 3.2.x production releases.
-
v3-0-test
This is the current branch for 3.0.x development. (critical bugfix and security fixes only)
-
v3-0-stable
This branch is not used any longer.
-
v4-0-test
This is the current branch for 4.x.x development.
-
v4-0-stable
This is the current branch for 4.x.x Alpha releases.
TODO List
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 TODO page for a list of projects.
Please coordinate all development efforts on the samba-technical mailing list. For more information about the list, or to join the list, go to the samba technical mailing list page. The main samba development channel on IRC is #samba-technical, server irc.freenode.net. Please don't ask user questions in this channel (users see #samba). Channel logs are available here.
Also, please see our policy concerning contributor copyright.
Learn More
For anyone interested in getting up to speed with SMB/CIFS, NetBIOS, MS-RPC, etc... Here are some links to help out:
- Get a copy of Wireshark or possibly Microsoft's Network Monitor shipped with Windows NT/2k server.
- See the docs at:
- The Samba Developer's Guide is available in PDF or HTML format
- SNIA CIFS Technical Reference
- http://www.cb1.com/~lkcl/ntdom/
- Archive of SMB/CIFS Protocol Drafts
- Chris Hertel's "Understanding the Network Neighborhood" and Implementing CIFS
- Luke Leighton's book with New Riders Publishing DCE/RPC over SMB: Samba and Windows NT Domain Internals, ISBN 1-57870-150-3.
- The smbtorture
documentation written by Stephen Zarkos are well worth reading
if you use the Samba test suite
- 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.
- The MSDN site (msdn.microsoft.com) is pretty good as well, if you know what you are looking for.
- Coding tools
As for what editor to use, it's your preference. The tool must not munge formatting to be useful.
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 http://sourcenav.sourceforge.net/ for a download link. One could also use 'ctags' to navigate thru the source code.
Of course, vi and grep will get you there too. :-)
You can contact us or report problems with this site here
