diff options
author | Timur I. Bakeyev <timur@FreeBSD.org> | 2014-12-16 00:48:57 +0000 |
---|---|---|
committer | Timur I. Bakeyev <timur@FreeBSD.org> | 2014-12-16 00:48:57 +0000 |
commit | bc051b59a6b3929958cc62e5c0c669636365ab06 (patch) | |
tree | c3be4cc3d143f59a921f81761aa36790f9e17078 /net/samba41 | |
parent | 73bb14c0e30260c8d499f6f8dae4bc7018ec3ea8 (diff) |
Notes
Diffstat (limited to 'net/samba41')
-rw-r--r-- | net/samba41/Makefile | 4 | ||||
-rw-r--r-- | net/samba41/distinfo | 4 | ||||
-rw-r--r-- | net/samba41/files/patch-nsswitch__winbind_nss_freebsd.c | 125 | ||||
-rw-r--r-- | net/samba41/pkg-plist | 1 |
4 files changed, 5 insertions, 129 deletions
diff --git a/net/samba41/Makefile b/net/samba41/Makefile index dc2be67ec9c8..e336ec5204d1 100644 --- a/net/samba41/Makefile +++ b/net/samba41/Makefile @@ -3,7 +3,7 @@ PORTNAME?= ${SAMBA4_BASENAME}41 PORTVERSION?= ${SAMBA4_VERSION} -PORTREVISION?= 1 +PORTREVISION?= 0 CATEGORIES?= net MASTER_SITES= ${MASTER_SITE_SAMBA} MASTER_SITE_SUBDIR= samba/stable samba/rc @@ -18,7 +18,7 @@ CONFLICTS?= *samba3[2-6]-3.* samba4-4.0.* SAMBA4_BASENAME= samba SAMBA4_PORTNAME= ${SAMBA4_BASENAME}4 -SAMBA4_VERSION= 4.1.13 +SAMBA4_VERSION= 4.1.14 SAMBA4_DISTNAME= ${SAMBA4_BASENAME}-${SAMBA4_VERSION:S|.p|pre|:S|.r|rc|:S|.t|tp|:S|.a|alpha|} WRKSRC?= ${WRKDIR}/${DISTNAME} diff --git a/net/samba41/distinfo b/net/samba41/distinfo index 857c9423ad04..d6165aef5584 100644 --- a/net/samba41/distinfo +++ b/net/samba41/distinfo @@ -1,2 +1,2 @@ -SHA256 (samba-4.1.13.tar.gz) = 737907f4ed3a71f6ec12638387aff7cda4764f8c2eb18deeca16e2fb7ed66c9f -SIZE (samba-4.1.13.tar.gz) = 19523732 +SHA256 (samba-4.1.14.tar.gz) = 5ea14baaca997292355d368918879e3d639def92b54efef2279cf5abe8db2cba +SIZE (samba-4.1.14.tar.gz) = 19527260 diff --git a/net/samba41/files/patch-nsswitch__winbind_nss_freebsd.c b/net/samba41/files/patch-nsswitch__winbind_nss_freebsd.c deleted file mode 100644 index 98822689c5e7..000000000000 --- a/net/samba41/files/patch-nsswitch__winbind_nss_freebsd.c +++ /dev/null @@ -1,125 +0,0 @@ ---- ./nsswitch/winbind_nss_freebsd.c.orig 2012-10-02 08:24:41.000000000 +0000 -+++ ./nsswitch/winbind_nss_freebsd.c 2013-07-03 01:27:00.339935089 +0000 -@@ -5,6 +5,7 @@ - routines against Samba winbind/Windows NT Domain - - Copyright (C) Aaron Collins 2003 -+ Copyright (C) Timur I. Bakeyev 2013 - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public -@@ -23,7 +24,6 @@ - #include "winbind_client.h" - - /* Make sure that the module gets registered needed by freebsd 5.1 */ -- - extern enum nss_status _nss_winbind_getgrent_r(struct group *, char *, size_t, - int *); - extern enum nss_status _nss_winbind_getgrnam_r(const char *, struct group *, -@@ -32,6 +32,8 @@ - size_t, int *); - extern enum nss_status _nss_winbind_setgrent(void); - extern enum nss_status _nss_winbind_endgrent(void); -+extern enum nss_status _nss_winbind_initgroups_dyn(char *, gid_t, long int *, -+ long int *, gid_t **, long int , int *); - - extern enum nss_status _nss_winbind_getpwent_r(struct passwd *, char *, size_t, - int *); -@@ -41,6 +43,7 @@ - size_t, int *); - extern enum nss_status _nss_winbind_setpwent(void); - extern enum nss_status _nss_winbind_endpwent(void); -+ns_mtab *nss_module_register(const char *, unsigned int *, nss_module_unregister_fn *); - - NSS_METHOD_PROTOTYPE(__nss_compat_getgrnam_r); - NSS_METHOD_PROTOTYPE(__nss_compat_getgrgid_r); -@@ -53,6 +56,9 @@ - NSS_METHOD_PROTOTYPE(__nss_compat_getpwent_r); - NSS_METHOD_PROTOTYPE(__nss_compat_setpwent); - NSS_METHOD_PROTOTYPE(__nss_compat_endpwent); -+NSS_METHOD_PROTOTYPE(__nss_compat_endpwent); -+ -+NSS_METHOD_PROTOTYPE(__freebsd_getgroupmembership); - - static ns_mtab methods[] = { - { NSDB_GROUP, "getgrnam_r", __nss_compat_getgrnam_r, _nss_winbind_getgrnam_r }, -@@ -60,6 +66,7 @@ - { NSDB_GROUP, "getgrent_r", __nss_compat_getgrent_r, _nss_winbind_getgrent_r }, - { NSDB_GROUP, "setgrent", __nss_compat_setgrent, _nss_winbind_setgrent }, - { NSDB_GROUP, "endgrent", __nss_compat_endgrent, _nss_winbind_endgrent }, -+{ NSDB_GROUP, "getgroupmembership", __freebsd_getgroupmembership, NULL }, - - { NSDB_PASSWD, "getpwnam_r", __nss_compat_getpwnam_r, _nss_winbind_getpwnam_r }, - { NSDB_PASSWD, "getpwuid_r", __nss_compat_getpwuid_r, _nss_winbind_getpwuid_r }, -@@ -69,6 +76,71 @@ - - }; - -+/* Taken from libc */ -+static int -+gr_addgid(gid_t gid, gid_t *groups, int maxgrp, int *grpcnt) -+{ -+ int ret, dupc; -+ -+ /* skip duplicates */ -+ for (dupc = 0; dupc < MIN(maxgrp, *grpcnt); dupc++) { -+ if (groups[dupc] == gid) -+ return 1; -+ } -+ -+ ret = 1; -+ if (*grpcnt < maxgrp) /* add this gid */ -+ groups[*grpcnt] = gid; -+ else -+ ret = 0; -+ -+ (*grpcnt)++; -+ -+ return ret; -+} -+ -+/* -+ rv = _nsdispatch(NULL, dtab, NSDB_GROUP, "getgroupmembership", -+ defaultsrc, uname, agroup, groups, maxgrp, grpcnt); -+*/ -+ -+int -+__freebsd_getgroupmembership(void *retval, void *mdata, va_list ap) -+{ -+ const char *uname = va_arg(ap, const char *); -+ gid_t group = va_arg(ap, gid_t); -+ gid_t *groups = va_arg(ap, gid_t *); -+ int maxgrp = va_arg(ap, int); -+ int *groupc = va_arg(ap, int *); -+ -+ NSS_STATUS ret; -+ long int lcount, lsize; -+ int i, errnop; -+ gid_t *tmpgroups; -+ -+ /* Can be realloc() inside _nss_winbind_initgroups_dyn() */ -+ if ((tmpgroups=calloc(maxgrp, sizeof(gid_t))) == NULL) { -+ errno = ENOMEM; -+ return NS_TRYAGAIN; -+ } -+ -+ lcount = 0; -+ lsize = maxgrp; -+ /* insert primary membership(possibly already there) */ -+ gr_addgid(group, groups, maxgrp, groupc); -+ /* Don't limit number of groups, we want to know total size */ -+ ret = _nss_winbind_initgroups_dyn(uname, group, &lcount, &lsize, -+ &tmpgroups, 0, &errnop); -+ if (ret == NSS_STATUS_SUCCESS) { -+ /* lcount potentially can be bigger than maxgrp, so would groupc */ -+ for (i = 0; i < lcount; i++) -+ gr_addgid(tmpgroups[i], groups, maxgrp, groupc); -+ } -+ free(tmpgroups); -+ /* Let following nsswitch backend(s) add more groups(?) */ -+ return NSS_STATUS_NOTFOUND; -+} -+ - ns_mtab * - nss_module_register(const char *source, unsigned int *mtabsize, - nss_module_unregister_fn *unreg) diff --git a/net/samba41/pkg-plist b/net/samba41/pkg-plist index f7991d3e4bbd..5e58eca23e57 100644 --- a/net/samba41/pkg-plist +++ b/net/samba41/pkg-plist @@ -321,6 +321,7 @@ lib/shared-modules/auth/script.so %%MODULE_AUTH_SKEL%%lib/shared-modules/auth/skel.so %%AD_DC%%lib/shared-modules/bind9/dlz_bind9.so %%AD_DC%%lib/shared-modules/bind9/dlz_bind9_9.so +%%AD_DC%%lib/shared-modules/bind9/dlz_bind9_10.so %%AD_DC%%lib/shared-modules/gensec/krb5.so lib/shared-modules/idmap/autorid.so lib/shared-modules/idmap/hash.so |