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 branches?" And also, "How can I learn more, get involved, help, etc?" The information on this page is an introduction to help answer those kinds of questions, but much more can be found in the Developer pages in the Samba wiki.
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.
Samba development is in GIT
Example checkout command for the main git repo:
git clone git://git.samba.org/samba.git sambaor
git clone https://git.samba.org/samba.git samba
For more details see Using Git for Samba Development.
Also see the wiki article on Contribute.
Current release status
For more details on the release series, branch names, current schedules and release modi,
please see
Samba Wiki
Release Planning.
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 and look at our Roadmap 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.
Copyright Policy
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 API documentation available for various Samba libraries.
- The Samba Developer's Guide is available in PDF or HTML format
- Richard Sharpe's documentation on Writing a Samba VFS
- 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. :-)