NEWS[SambaXP2022]: shorten snip
[samba-web.git] / projects / summercode06.html
1 <!--#include virtual="/samba/header.html" -->
2   <title>Samba -- Summer of Code Projects</title>
3 <!--#include virtual="/samba/header_columns.html" -->
4
5 <h2>Summer of Code Projects</h2>
6
7 <div class="request" style="margin:0 0 35px 0">
8 <p>The following is an outline of potential projects for those interested in
9 working on Samba through <a href="http://code.google.com/soc/">Google's 
10 "Summer of Code"</a> program.    Questions about Samba's participation in 
11 the program or about a project idea, scope, or design should be mailed to 
12 <a href="mailto:summercode@samba.org">summercode@samba.org</a>.
13 Note that you are not limited to the project ideas listed here.  Please email 
14 us if you have a new idea you would like to discuss.</p>
15
16 <p>If you are considering applying to SoC 2006, please make sure to read the 
17 <a href="http://code.google.com/soc/studentfaq.html">Student FAQ</a>.  Pay close
18 attention to <a href="http://code.google.com/soc/studentfaq.html#24">Question 24</a>
19 as the review process for Samba applications will be stricter this year.
20 It is very important you convince us that:</p>
21
22 <ol class="tight">
23   <li>you will, in fact, be able to do the work you are proposing</li> 
24   <li>you understand the scope of the problem</li>
25 </ol>
26
27 <p>Update (1 May): The <a href="http://code.google.com/soc/student_step1.html">student application
28 form</a> is now open for submissions at Google.</p>
29
30 <p>Best of luck to all the Summer of Code applicants.  <b>-- The Samba Team</b></p>
31
32 </div>
33
34   <h2>Project Ideas</h2>
35
36   <h4>SACL VFS Module (Samba 3)</h4>
37   <p>Support for file systems SACLs (i.e. file system auditing) 
38      on in Samba in a VFS module by utilizing Extended Attributes.  This 
39      project should ensure that users are able to successfully view and 
40      modify auditing settings on files and directories using the Windows 
41      Explorer.  
42   </p>
43
44   <h4>Consolidate internal LDAP SASL support (Samba 3)</h4>
45   <p>Samba has two separate copies of LDAP support routines.  One is
46      used to access Active Directories servers when operating as 
47      a member server and the other is used for implementing the 
48      LDAP passdb backend feature.  Applicants should be comfortable
49      with LDAP directories services and SASL mechanisms such as GSS-SPNEGO.
50   </p>
51
52   <h4>Backport EndPointMapper and support for ncacn_ip_tcp (Samba 3)</h4>
53   <p>Current Samba 3.0 releases only support MS-RPC over SMB named pipes.
54      The SAMBA_4_0 code base has support RPC directory over TCP which could
55      be back ported in some degree to the SAMBA_3_0 tree.
56   </p>
57
58   <h4>Alternative configuration backends (Samba 3)</h4>
59   <p>The current smb.conf does not allow the flexible set read and modify 
60      individual key/value pairs from within smbd.  This project would explore
61      using a registry like backend that would allow more flexibility 
62      is managing Samba's configuration settings outside on a simple text 
63      editor.  The <a href="http://www.libelektra.org/">LibElektra project</a> 
64      provides a common configuration library with storage plugins.  One 
65      possibility would be to implement an <a href="http://ldb.samba.org">LDB backend</a> 
66      along with a simple command line interpreter/editor.
67   </p>
68
69   <h4>Performance optimizations on NetBSD (Samba 3)</h4>
70   <p>This work is under the umbrella of the NetBSD project and is listed here
71      for publicity and to help inform interested applicants.  Please refer 
72      to <a href="http://www.netbsd.org/contrib/projects.html#smbtuneup">the 
73      NetBSD project site</a> for a complete description.
74   </p>
75
76   <h4>Full SAM implementation (Samba 3)</h4>
77   <p>Provide a new database passdb backend that provides both the Unix 
78      and Win32 attributes without the use of external commands such 
79      as the &quot;add user script&quot;.
80   </p>
81
82   <h4>SNMP support (Samba 3)</h4>
83   <p>Explore supporting the LANMAN SNMP MIB included with Windows 
84      server operating systems in smbd, nmbd, and winbindd.
85   </p>
86
87   <h4>Solve the overabundance of configuration parameters (Samba 3)</h4>
88   <p>Samba 3.0 includes many config options which are necessary only 
89      in extreme circumstances.  Only a small percentage of the parameters
90      are required in most installations.  The challenge is to remove
91      the more advanced settings from immediate misuse while still 
92      providing access to them when absolutely necessary.
93   </p>
94
95   <h4>Implement a Berkeley DB backend for LDB</h4>
96   <p><a href="http://ldb.samba.org/">LDB</a> currently supports
97      both TDB and LDAP backend storage mechanisms.  Another alternative
98      backend possibility is the <a href="http://www.sleepycat.com">Berkeley DB 
99      database</a>. 
100   </p>
101
102   <h4>Develop an Administrative Logging System (Samba 3)</h4>
103   <p>The log files in Samba are commonly of more use to developers
104      than to administrators.  A new logging system (in parallel with the
105      existing debug logs) similar to the Windows auditing facilities 
106      would record those specific events of concern to sysadmins.  This
107      support would include auditing for printers, users &amp; groups, 
108      configuration changes, etc...
109   </p>
110
111   <h4>Implement missing functionality in DsGetNCChanges (Samba 4)</h4>
112   <p>The primary goal is to review and implement the compression 
113      algorithm used in directory services replication.
114   </p>
115
116   <h4>Implement missing SWAT features (Samba 4)</h4>
117   <p>SWAT research in the SAMBA_4_0 branch is very different from 
118      the model of SWAT in the Samba 3 releases.  There are many 
119      possibilities for new management features that have yet to be 
120      explored.
121   </p>
122
123   <h4>Componentization of Samba (Samba 3 &amp; 4)</h4>
124   <p>Samba has many APIs and subsystems, such as talloc, ldb &amp; tdb, etc...,  
125      that would be of use to the Open Source community at large.  Much work 
126      is needed to break these individual projects out of the current
127      Samba source trees and establish them an individual projects
128      if which Samba is but one consumer.
129   </p>
130
131   <h4>Dbench and Nbench workload generator based on Samba 4</h4>
132   <p>Samba 4 has two NTVFS backends (cifs and nbench) which allow to
133      create a CIFS proxy which:
134      <ol>
135       <li>intercepts CIFS traffic and forwards that to a remote server, and</li>
136       <li>write down a workload scenario file for Nbench and Dbench tools</li>
137      </ol>
138    </p>
139    <p>For every connection there is one log file is written. These logs can later
140       be replayed by nbench/dbench against any file system/server to reproduce the
141       same workload. Implementation of the following things will allow to create
142       a specialized workload generator to test various usage scenarios based on
143       real world applications:
144       <ol>
145        <li>Add a functionality to post-process generated logs to create a combined
146            dbench/nbench scenario representing multiple-client access pattern.</li>
147        <li>Add CIFS Posix Extensions support to both Nbench NTVFS backend and dbench/nbench
148            tools so that Linux applications running against Linux CIFS file system
149            could be profiled.</li>
150        <li>Package resulting solution as simply-installable and configurable application
151            similar to <a href="http://www.enterprisesamba.org/">Samba4WINS package</a></li>
152       </ol>
153    </p>
154
155   <h4>Subversion VFS Module (Samba 3)</h4>
156   <p>Given a share that is also a Subversion working copy, provide a VFS module
157   that performs the svn action corresponding to the file system action.  For
158   example, if a file is added from a Windows client, an "svn add" is done by
159   the VFS module (note: not the command itself, but the equivalent SVN api 
160   call.)  When (and if) to commit and what message to attach could be  
161   configurable options.</p>
162
163   <h4>Automated testing against Windows</h4>
164   <p>The Samba project does extensive automated testing on
165   build.samba.org, but its all Samba<->Samba testing. Our testing
166   against Windows is currently manual. We would like to use vmware or
167   another virtual machine environment to allow for fully automated
168   testing against Windows machines, both as clients and servers.</p>
169
170   <h4>Re-implement smbclient in ejs (Samba 4)</h4>
171   <p>Samba4 now has an embedded javascript interpreter, which is used
172   for both web configuration and for command line tools. The
173   interpreter has access to the extensive internal C library of
174   Samba. We would like smbclient to be rewritten in js, making it much
175   more easily extendable by administrators.</p>
176
177   <h4>ci-skads decoding and implementation</h4>
178   <p>The ci-skads protocol is used to implement remote full filesystem
179   indexing (indexed search) between windows machines. We would like to
180   support this functionality in Samba, interfacing with existing
181   indexing tools on Unix systems (such as beagle). This would be a
182   very challenging project, suitable for someone experienced with
183   analyzing completely new protocols. </p>
184
185   <h4>GQ replacement using GTK and LDB</h4>
186   <p>GQ is a widely used LDAP query tool. 
187   Many LDAP administrators would benefit if a similar
188   tool were constructed, in particular with similar schema knowledge.
189   Using LDB as a backend could allow easy use of Samba-supported SASL
190   mechanisms for easier authentication.  Likewise, an LDB editor in SWAT would be
191   very useful.  Building it with interactive functionality
192   would make it a very powerful way to manage Samba4's LDB databases.</p>
193
194   <h4>Implement an external LDAP server backend (Samba 4)</h4>
195   <p>Currently, Samba4 can use either an in-memory database, or a LDAP
196   server as the backend for it's primary user database.  The LDAP
197   backend server alternative is currently very restricted: The only
198   supported server is a matching version of Samba4.  This project
199   would be to advance this support.  Initial steps would be to load
200   the provision, then permit password changes.  Eventual support would
201   include schema mapping.</p>
202
203   <h4>User Manager for SWAT (Samba 4)</h4>
204   <p>Samba 4 needs a user manger tool, built into the SWAT server.
205   This could be a new tool, or an existing tool ported to Samba4.  It
206   would benefit from being interactive without page load delays,
207   and should at least allow modification of similar
208   properties to MMC.</p>
209
210   <div class="request">
211     <p>This is just a holding area for project ideas. The projects 
212     listed here may be updated as developers refine a project's 
213     outline.</p>
214   </div>
215
216 <!--#include virtual="/samba/footer.html" -->