+++ This bug was initially created as a clone of Bug #5995 +++ Right now the same objects are duplicated in many targets, causing huge duplication of code, causing symbols collision, and requiring a huge time to bind the libraries at runtime. For instance, my collision detection script [1] outputs this: Symbol pdb_default_getgrgid@@ (32-bit UNIX System V ABI Intel 80386) present 20 times /usr/sbin/smbd /usr/bin/smbcacls /usr/bin/pdbedit /lib/security/pam_smbpass.so /usr/lib/samba/libsmbclient.so /usr/lib/samba/libmsrpc.so /usr/lib/python2.5/site-packages/samba/samr.so /usr/lib/python2.5/site-packages/samba/lsa.so /usr/bin/smbcquotas /usr/bin/smbpasswd /usr/lib/python2.5/site-packages/samba/srvsvc.so /usr/lib/python2.5/site-packages/samba/tdb.so /usr/bin/smbget /usr/bin/rpcclient /usr/lib/python2.5/site-packages/samba/smb.so /usr/lib/python2.5/site-packages/samba/winbind.so /usr/bin/net /usr/lib/python2.5/site-packages/samba/winreg.so /usr/bin/ntlm_auth /usr/lib/python2.5/site-packages/samba/spoolss.so It means that there are 20 copies of the RPC objects. There are many, many more objects that have the same problem. It's especially bad for the Python extensions, but it's just as bad for the rest. Having a single libsambacore.so library where all these symbols would be defined would reduce a lot the memory used (since it could then be shared among, say, the desktop system as a client and the smbd daemon as server), and would reduce the startup time of all the utilities. [1] http://blog.flameeyes.eu/2008/12/24/library-on-a-collision-course-on-the-screen
Too late for enhancements in 3.5. Raising version.
OpenWRT and other router builds of Samba have a hack to merge smbd and nmbd for just this reason because size is critical. They are stuck on 3.0.24 because that seems to be the last time anyone finished a port. I'm working on OpenWRT w/ 3.6 now, but it would be great to have this as an official change