summaryrefslogtreecommitdiff
path: root/net/samba/patches/patch-ag
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2005-11-14 08:05:27 +0000
committerjlam <jlam@pkgsrc.org>2005-11-14 08:05:27 +0000
commit589e9035301f9dd8b1c2cab08e2027ba9f173c7f (patch)
tree7d2d1a417bb746f51ac31a3c7a5bbbf037ac2bbc /net/samba/patches/patch-ag
parente59e5b7dcc4fa93f570cbd046a33002790e68c2d (diff)
downloadpkgsrc-589e9035301f9dd8b1c2cab08e2027ba9f173c7f.tar.gz
Update net/samba to 3.0.20.2 from samba-3.0.20b. Recommended patches
for samba-3.0.20b that are applied as part of this update include: http://www.samba.org/samba/patches/print_lprm.patch http://www.samba.org/samba/patches/quota.patch http://www.samba.org/samba/patches/bug3201_wbinfo.patch This fixes PRs pkg/31352 and pkg/31991. Important changes that were made as part of porting this Samba release to pkgsrc include the following: * The new release model for Samba includes distributing patches for urgent bug fixes that will be included in the next release of Samba, and are available at http://www.samba.org/samba/patches/. Since these patches are rather generically named, we download all DISTFILES and PATCHFILES for Samba into a ${DISTNAME}-specific directory. * The default configuration for the samba package no longer builds the "winbind" portions of samba, which are really only useful when attempting to unify logons between Unix and Microsoft Windows. When the "winbind" option is specified, we also build the RID and AD idmap backends, which allow sharing UIDs/GIDs across Unix machines. * New package options have been added to the build: "mysql", "pgsql", and "xml" allow adding optional support for experimental passdb storage backends, and "winbind" allows for optionally building the winbindd daemon and associated plugins. * Two new smb.conf options were added -- "passwd expand gecos" and "state directory". The first describes whether "&" in the GECOS field of a passwd db entry is expanded to the login name. The second describes the location where the persistent-state database files are stored. * Luke Mewburn contributed code to allow nss_winbind.so to work properly on supported NetBSD systems. The FreeBSD NSS winbind code should probably be replaced with a suitably tweaked version of the NetBSD code since the latter is much more complete in the functions that are provided, but I'll leave that to freebsd-pkg-people. * Samba dumps all of its files into "lock directory", but some of them need to persist across reboots. We make a distinction between these files and the temporary files that are re-created by the Samba daemons when they are restarted -- the former are now stored in a "state directory" and the latter are stored in the "lock directory". This is modeled after the Debian patch to Samba located in: packaging/Debian/debian-unstable/patches/fhs.patch The "lock directory" default has been moved to ${VARBASE}/run/samba to emphasize the temporary status of the files stored in that directory. * Samba persists in using PAM_AUTHTOK_RECOVER_ERR, when there is almost universal agreement that PAM_AUTHTOK_RECOVERY_ERR is the right constant to use. Even the Linux-PAM distribution ensures that PAM_AUTHTOK_RECOVERY_ERR is correctly defined. To work around this, we define PAM_AUTHTOK_RECOVER_ERR appropriately in all the places where it is used. * The configure script checks for OpenSSL's libcrypto.so by looking for the symbol "des_set_key". However, libcrypto.so might not contain that symbol because the DES functions might come from a separate library, e.g. libdes.so. In this case, the configure script will think that libcrypto.so is not available, when it actually may be. Instead, look for EVP_des_cbc, which is always provided by libcrypto.so. * Add some missing $(PASSDB_LIBS) references to the Makefile to fix compilation problems if the experimental passdb backends are statically compiled into the Samba suite programs. * Fix compilation problems in sam/idmap_rid.c and sam/idmap_ad.c if the "rid" and "ad" idmap backends are statically compiled into winbindd. Changes between version 3.0.14a and 3.0.20b include: o Reporting files as read-only instead of returning the correct error code of "access denied" o File system quota support defects o Crash bugs caused by incompatibilities on 64-bit systems. o User Manager interoperability problems. o Support for several new Win32 rpc pipes. o New 'net rpc service' tool for managing Win32 services. o Capability to set the owner on new files and directory based on the parent's ownership. o Experimental, asynchronous IO file serving support. o Support for Microsoft Print Migrator. o New Winbind IDmap plugin (ad) for retrieving uid and gid from AD servers which maintain the SFU user and group attributes. o Rewritten support for POSIX pathnames when utilizing the Linux CIFS fs client. o New asynchronous winbindd. o New Windows NT registry file I/O library. o New user right (SeTakeOwnershipPrivilege) added. o New "net share migrate" options.
Diffstat (limited to 'net/samba/patches/patch-ag')
-rw-r--r--net/samba/patches/patch-ag49
1 files changed, 9 insertions, 40 deletions
diff --git a/net/samba/patches/patch-ag b/net/samba/patches/patch-ag
index 87f45a5961b..ccf5d3d57d7 100644
--- a/net/samba/patches/patch-ag
+++ b/net/samba/patches/patch-ag
@@ -1,54 +1,23 @@
-$NetBSD: patch-ag,v 1.4 2004/11/13 21:48:11 kim Exp $
+$NetBSD: patch-ag,v 1.5 2005/11/14 08:05:27 jlam Exp $
---- passdb/passdb.c.orig 2004-08-19 09:39:13.000000000 -0400
-+++ passdb/passdb.c 2004-10-28 00:22:15.000000000 -0400
-@@ -246,6 +246,11 @@
+--- passdb/passdb.c.orig 2005-10-12 13:03:35.000000000 -0400
++++ passdb/passdb.c
+@@ -246,6 +246,7 @@ static NTSTATUS pdb_set_sam_sids(SAM_ACC
NTSTATUS pdb_fill_sam_pw(SAM_ACCOUNT *sam_account, const struct passwd *pwd)
{
NTSTATUS ret;
-+#ifdef BSD
-+# define BUFLEN 1024
-+ char *bp, *gecos, *p, buf[BUFLEN];
-+ int buflen;
-+#endif
++ char *gecos;
if (!pwd) {
return NT_STATUS_UNSUCCESSFUL;
-@@ -254,7 +259,37 @@
+@@ -254,7 +255,9 @@ NTSTATUS pdb_fill_sam_pw(SAM_ACCOUNT *sa
pdb_fill_default_sam(sam_account);
pdb_set_username(sam_account, pwd->pw_name, PDB_SET);
-+
-+#ifdef BSD
-+ gecos = pwd->pw_gecos;
-+ if (*gecos == '*')
-+ gecos++;
-+ bp = buf;
-+
-+ /* copy gecos, interpolating & to be full name */
-+ for (p = gecos; *p != '\0'; p++) {
-+ if (bp >= &buf[BUFLEN - 1]) {
-+ /* buffer overflow */
-+ gecos = pwd->pw_name;
-+ goto gecos_done;
-+ }
-+ if (*p == '&') {
-+ /* interpolate full name */
-+ snprintf(bp, BUFLEN - (bp - buf), "%s", pwd->pw_name);
-+ *bp = toupper(*bp);
-+ bp += strlen(bp);
-+ }
-+ else
-+ *bp++ = *p;
-+ }
-+ *bp = '\0';
-+ gecos = buf;
-+
-+ gecos_done:
+- pdb_set_fullname(sam_account, pwd->pw_gecos, PDB_SET);
++ gecos = passwd_expand_gecos(pwd);
+ pdb_set_fullname(sam_account, gecos, PDB_SET);
-+#else
- pdb_set_fullname(sam_account, pwd->pw_gecos, PDB_SET);
-+#endif
++ SAFE_FREE(gecos);
pdb_set_unix_homedir(sam_account, pwd->pw_dir, PDB_SET);