Difference between revisions of "Developer Documentation"

(Add links to academic writings)
(use include for Samba codebase organization)
 
(20 intermediate revisions by 5 users not shown)
Line 8: Line 8:
  
 
* [[ActiveProjects|Active projects]]
 
* [[ActiveProjects|Active projects]]
 +
  
 
= Release planning =
 
= Release planning =
Line 16: Line 17:
  
 
* [[Samba_Next_Goals|Samba Next Goals]]
 
* [[Samba_Next_Goals|Samba Next Goals]]
 +
  
 
= Source code =
 
= Source code =
Line 24: Line 26:
 
* [https://git.samba.org/?p=samba.git;a=heads Samba's own GitWeb] ([https://git.samba.org/?p=samba.git;a=shortlog;h=refs/heads/master latest changes in the master branch])
 
* [https://git.samba.org/?p=samba.git;a=heads Samba's own GitWeb] ([https://git.samba.org/?p=samba.git;a=shortlog;h=refs/heads/master latest changes in the master branch])
 
* [https://github.com/samba-team/samba Official Samba GitHub Mirror]
 
* [https://github.com/samba-team/samba Official Samba GitHub Mirror]
 +
 +
== Samba codebase organization ==
 +
 +
{{:Samba codebase organization overview}}
 +
 +
The Samba codebase is broken down in detail in the '''[[Samba_codebase_organization|Samba codebase organization page]]'''.
  
 
= Debugging / Testing =
 
= Debugging / Testing =
  
 
* [[The_Samba_Selftest_System|The Samba Selftest System]]
 
* [[The_Samba_Selftest_System|The Samba Selftest System]]
 +
 +
* [[Samba CI on gitlab]]
 +
 +
== [[Writing_Tests|Writing and running Samba tests]]==
  
 
* [[Writing_Torture_Tests|Writing Torture Tests]]
 
* [[Writing_Torture_Tests|Writing Torture Tests]]
 +
 +
* [[Writing_Python_Tests|Writing Python Tests]]
 +
 +
* [[Writing_cmocka_Tests|Writing cmocka Tests]]
 +
 +
* [[Writing_Shell_Tests|Writing Shell Tests]]
 +
 +
* [[Writing_Perl_Tests|Writing Perl Tests]]
  
 
* [[WinTest|Testing against Windows using WinTest]]
 
* [[WinTest|Testing against Windows using WinTest]]
  
* [[Testing_development_trees|Testing development trees]]
+
* [[Understanding_make_test|Understanding make test]]
  
* [[Debugging_individual_tests|Debugging individual tests]]
+
== Debugging help ==
  
 
* [[Keytab_Extraction|Keytab extraction]]
 
* [[Keytab_Extraction|Keytab extraction]]
Line 44: Line 64:
  
 
* [[Saving_RPC_FAULTs|Saving packets that failed to parse to test IDL fixes using ndrdump]]
 
* [[Saving_RPC_FAULTs|Saving packets that failed to parse to test IDL fixes using ndrdump]]
 +
 +
* [[Python/Debugging|Debugging in Python]]
 +
 +
== Development testing ==
 +
 +
* [[Testing removal of ifdef or configure checks|Testing removal of #ifdef or configure checks]]
 +
* [[Fuzzing|Information on Samba's fuzzing infrastructure]]
  
 
= Bug reporting =  
 
= Bug reporting =  
Line 52: Line 79:
  
  
 +
= Security =
 +
 +
* [[Samba_Security_Documentation|Samba Security Documentation]]
 +
* [[Samba_Protocol_Security|Samba Protocol Security Layers]]
  
 
= Presentations =
 
= Presentations =
Line 65: Line 96:
 
* [[Writing a Samba VFS Module]] (for Samba 4.0 and above)
 
* [[Writing a Samba VFS Module]] (for Samba 4.0 and above)
  
= Clustered Samba =
 
  
* [[Clustered_Samba|Clustered Samba]]
 
  
* [[CTDB_Project|CTDB Project]]
+
= Clustered Samba =
  
 +
* [[CTDB_and_Clustered_Samba|CTDB and Clustered Samba]]
  
 +
* [[New_clustering_features_in_SMB3_and_Samba|New clustering features in SMB3 and Samba]]
  
 
= Building Samba =
 
= Building Samba =
Line 114: Line 145:
  
 
* [[Samba4/ActiveDirectory|Active Directory Plans]]
 
* [[Samba4/ActiveDirectory|Active Directory Plans]]
 
* [[Samba4/LDAP_Backend|LDAP Directory Server Backend History Notes]]
 
  
 
* [[Samba4 AD Plugfest 2010 TODO list|Samba 4 AD Plugfest 2010 TODO List]]
 
* [[Samba4 AD Plugfest 2010 TODO list|Samba 4 AD Plugfest 2010 TODO List]]
Line 130: Line 159:
  
 
* [https://www.samba.org/samba/news/articles/samba3-4_integration.pdf Integration of Samba 3 & Samba 4 (2005)]
 
* [https://www.samba.org/samba/news/articles/samba3-4_integration.pdf Integration of Samba 3 & Samba 4 (2005)]
 +
 +
* [http://is.muni.cz/th/359290/fi_b/thesis.pdf Thesis on Talloc (2012)]

Latest revision as of 22:02, 12 June 2020

How can I contribute


Release planning


Source code

Samba development is stored in the Git SCM system. See Using Git for Samba Development for more detail on how Samba uses Git.

Two web interfaces are:

Samba codebase organization

Broadly speaking, the Samba source-code tree can be organized into the following major groups:

  • Top-level libraries, which contains common code shared amongst the Samba processes.
  • Source3, which is code primarily used by the file server and domain member.
  • Source4, which is code primarily used by the Active Directory Domain Controller.
  • Infrastructure components, which provide the build and test framework for Samba.
  • Autogenerated code, which is used for parsing DCE/RPC packets as well as other regularly structured buffers.

The Samba codebase is broken down in detail in the Samba codebase organization page.

Debugging / Testing

Writing and running Samba tests

Debugging help

Development testing

Bug reporting


Security

Presentations


VFS


Clustered Samba

Building Samba


Building packages


Google Summer of Code


Historical Documentation on the Development of Samba4

  • Franky: A Hybrid Samba Active Directory Controller (outdated!)

Academic Writings etc.