Developer Documentation: Difference between revisions
From SambaWiki
(add page writing shell tests) |
Slowfranklin (talk | contribs) |
||
(18 intermediate revisions by 3 users not shown) | |||
Line 25: | Line 25: | ||
Two web interfaces are: |
Two web interfaces are: |
||
* [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:// |
* [https://gitlab.com/samba-team/samba Official Samba GitLab Mirror] |
||
Samba is no longer actively developed on [https://github.com GitHub] but for reference and to keep old code from being mistakenly examined, the [https://github.com/samba-team/samba Offical Samba Team GitHub Mirror] is kept up to date. |
|||
== 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_Python_Tests|Writing Python Tests]] |
||
* [[Writing_cmocka_Tests|Writing cmocka Tests]] |
|||
* [[Writing_Shell_Tests|Writing Shell 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]] |
||
* [[Understanding_make_test|Understanding make test]] |
|||
* [[Testing_development_trees|Testing development trees]] |
|||
== Debugging help == |
|||
* [[Debugging_individual_tests|Debugging individual tests]] |
|||
* [[Keytab_Extraction|Keytab extraction]] |
* [[Keytab_Extraction|Keytab extraction]] |
||
Line 52: | Line 66: | ||
* [[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 60: | Line 81: | ||
= Security = |
|||
* [[Samba_Security_Documentation|Samba Security Documentation]] |
|||
* [[Samba_Protocol_Security|Samba Protocol Security Layers]] |
|||
= Presentations = |
= Presentations = |
||
Line 77: | Line 102: | ||
= Clustered Samba = |
= Clustered Samba = |
||
* [[Samba_on_Scale|Samba on Scale]] |
|||
⚫ | |||
⚫ | |||
* [[New_clustering_features_in_SMB3_and_Samba|New clustering features in SMB3 and Samba]] |
|||
= Building Samba = |
= Building Samba = |
||
Line 122: | Line 149: | ||
* [[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 129: | Line 154: | ||
* [http://download.samba.org/pub/samba/rc/ Development Releases of Samba4 (technology previews, alphas, betas, release candidates)] |
* [http://download.samba.org/pub/samba/rc/ Development Releases of Samba4 (technology previews, alphas, betas, release candidates)] |
||
= Prehistoric documentation from the Samba3 development era= |
|||
* [https://samba-team.gitlab.io/samba/htmldocs/Samba-Developers-Guide/index.html Samba Developers Guide] |
|||
= Academic Writings etc. = |
= Academic Writings etc. = |
Latest revision as of 18:29, 10 December 2022
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 is no longer actively developed on GitHub but for reference and to keep old code from being mistakenly examined, the Offical Samba Team GitHub Mirror is kept up to date.
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
- Writing a Samba VFS
- The new version of Writing a Samba VFS (for Samba 3.6 and earlier)
- Writing a Samba VFS Module (for Samba 4.0 and above)
Clustered Samba
Building Samba
- Building Samba 4 (Which build system to use and why)
Building packages
Google Summer of Code
Historical Documentation on the Development of Samba4
- Franky: A Hybrid Samba Active Directory Controller (outdated!)