Here's the substance of the ticket I just submitted...

The latest SAMBA fails to initialize on startup. This seems to be related to 
the low value
of NAX_NGROUPS in the Darwin Kernel.

Here is the link that I found describing the problem:

http://www.sand4.info/index.php?q=aHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vMTg4ODc3OA%3D%3D

In it they show the hack:
--- system.c.orig       2012-02-22 22:46:14.000000000 -0200
+++ system.c    2012-02-22 22:47:51.000000000 -0200
@@ -1161,7 +1161,14 @@
 
 int groups_max(void)
 {
-#if defined(SYSCONF_SC_NGROUPS_MAX)
+#if defined(DARWINOS)
+       /* On OS X, sysconf(_SC_NGROUPS_MAX) returns 16
+        * due to OS X's group nesting and getgrouplist
+        * will return a flat list; users can exceed the
+        * maximum of 16 groups. And easily will.
+        */
+       return 32; // NGROUPS_MAX is defined, hence the define above is void.
+#elif defined(SYSCONF_SC_NGROUPS_MAX)
        int ret = sysconf(_SC_NGROUPS_MAX);
        return (ret == -1) ? NGROUPS_MAX : ret;
 #else

I haven't looked into this in any detail. Maybe someone else is more familiar 
with the code.


On May 21, 2012, at 6:03 PM, O'Dell James wrote:

> Shoot! You're right about that. What I did is completely broken and works 
> simply by chance.
> 
> I guess I'll have to figure out how to apply the patch.
> 
> Thanks!
> 
> Jim
> 
> On May 21, 2012, at 5:45 PM, Brandon Allbery wrote:
> 
>> On Mon, May 21, 2012 at 5:40 PM, O'Dell James <[email protected]> wrote:
>> Has anyone else experienced problems getting the latest macports version of 
>> Samba working.
>> 
>> After some poking around, I discovered that there is an OS X 10.7 patch 
>> lurking around that
>> increases the values for MAX_NGROUPS (Or some such name in the Samba 
>> sources).
>> 
>> It seems as if the OS X value of:
>> 
>> #define _SC_NGROUPS_MAX                  4
>> 
>> In unistd.h is not large enough to contain the complete group list.
>> 
>> If they're using that as the size, they are broken.  It's not a size, it's 
>> the code given to sysconf() to have it return the maximum number of groups.
>> 
>> Rather than change the SAMBA code, I just upped the value above to 32, 
>> rebuilt the
>> samba 3.6.3 package and all was copacetic.
>> 
>> So now invoking sysconf(_SC_NGROUPS_MAX) returns instead what 
>> sysconf(_SC_MEMORY_PROTECTION) does?
>> 
>> -- 
>> brandon s allbery                                      [email protected]
>> wandering unix systems administrator (available)     (412) 475-9364 vm/sms
>> 
> 

_______________________________________________
macports-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-users

Reply via email to