diff options
20 files changed, 1694 insertions, 0 deletions
diff --git a/net-fs/samba/Manifest b/net-fs/samba/Manifest new file mode 100644 index 000000000..b9b8915e4 --- /dev/null +++ b/net-fs/samba/Manifest @@ -0,0 +1,21 @@ +AUX 3.0.26a-invalid-free-fix.patch 541 RMD160 13e1b0420ae9c06a2e6d4f9a8a0a3af8c32318b9 SHA1 0457c901f55b86b9b3751dc67b86a26cb19ec4e7 SHA256 4a727b9a02cbc7e2efc00190d5068c82e12a0b9fdad2a50869a2f10bc39a06f2 +AUX 3.0.26a-lazyldflags.patch 1466 RMD160 12a3d97c8b84af5dea7c70173e4613bc663d4e8d SHA1 35742557c810ae4bfbbfecc3a6c3549c392fd313 SHA256 07eb35a567540bc88657f75881c8daf10de3697b64ec9bd7167f1df80cfb0d55 +AUX 3.0.28-autoconf-2.62-fix.patch 524 RMD160 843a8adb134376259485fba22deceeebf453abea SHA1 2adfe8d3a5ea32971c67305fc047f39e5c03ba76 SHA256 0b9b80b52899154f6526d4864218742c2ec836d44a8a4045e091b3bb40449171 +AUX 3.0.28-fix_broken_readdir_detection.patch 430 RMD160 f881e5a61ee2de714b9409a5a4f4c87d7a9a6dc0 SHA1 092b1ed0abce1eaf90aece7f637e72c3d4a902ff SHA256 7756d512df664d6f55851566d050797a6fc33f13ded4b1df5e2484a578ffd3f4 +AUX 3.0.28a-wrong_python_ldflags.patch 996 RMD160 9514ef1b21129a950388ccabf797243dc92b390c SHA1 432366d841bbd2ec97c7a529c0c48d352aace356 SHA256 6f75e2e797d4a7a9f8758c5b3066cc1af86d392457d6f9ae8804427d74be4696 +AUX README.gentoo 3208 RMD160 858aee78e07bdc0ebee7bc6c2212d4c528325633 SHA1 819ae809566e967cdc03024adae4443c5833dfc5 SHA256 9e87efa3fcea73becdfad4adb0fe677e1969c2951f03c47d1b0f4aeb00999578 +AUX config/lmhosts 130 RMD160 b2acc34f95a4f926528ae67861c3597204be0c41 SHA1 be21644d6b4645d0685b954071b4618faa1c6da2 SHA256 c1c0a520c6d4b4ce7df9bd30f835dd912942b05004fc24e3cc495fc1622d5d8c +AUX config/nsswitch.conf-winbind 410 RMD160 02722819dfba2fb1425eadd0f63f96f598ecda69 SHA1 ede68472b5eae7d2efb805e138bd7f9ca8f7fefb SHA256 d1e61b5a152d05a3d8a9f8d18d574596acc1a594b311278d3ad9ea1b2c273a40 +AUX config/nsswitch.conf-wins 396 RMD160 61f7d80bfa06efb16e8e9344f2402fc88b1198e8 SHA1 8139e2034118b0fe64d40cf7dc811435ee151584 SHA256 1ab5c5711823af6a04fdaf4920826940b4b0d92822e6464bbf404ca03d24fd1b +AUX config/samba.pam 397 RMD160 8f64b09e17e0c458a8156db3cc92a0413513e4fc SHA1 f39d48e07be8069885b51253c5b891a856b7b41e SHA256 86634f2d541370518d0958a73c04776ed5df2a3716ef128ff384459acce9cd38 +AUX config/samba.schema 16044 RMD160 b28408c64524ea44a9b0ea877d614603456a18fa SHA1 523d8bcf6313fe8ce03a3fbe762ba90b88ca5643 SHA256 c011a2f2f4fcc2839e3609cf5477507d938083f48f15a05787337b352f3afec3 +AUX config/smb.conf.example-samba3 19701 RMD160 1ce92cbedb15cf5ee4d66ee50fd7c996231facea SHA1 5c60002f23ac2a60fc27b58ea03659acb0db876a SHA256 83fd9407e71db606bb50677f9d8a557688b6eafacb32d30c7a0a6d1c666b694d +AUX config/smbusers 208 RMD160 04d432806e3024543096da6e079820032a850436 SHA1 ef8344b94b3860d405f8663206be9d5cab6030a9 SHA256 845fbb6c93e4570fc40ca59e2471a9a72cb76fe20ce5bde5f75fec65b5471702 +AUX config/swat.xinetd 531 RMD160 76c6d999a77c356d1013ab2586762e034550aac3 SHA1 3c25ea5418a007c875959cf12416ef1cbc37952b SHA256 12c2e1a907d1751f2431fc2b1a4702ee6ddca228c81056333dd96a4f146ac1ab +AUX config/system-auth-winbind 705 RMD160 fc6cc98cd1749d4e44f7edfbfd904fe77aaf046f SHA1 1b55c7b4211133b8fe27d07dd0a4a14539fbf859 SHA256 73791c615c207f2ff5589866eda7def275ed0b1085ac3f465ba9442258858e14 +AUX samba-conf 1291 RMD160 326fb4beee8105d839d23e37f4989d7e332c996b SHA1 af7cd695f212d7ec022df05ba2f821a8f9878ab2 SHA256 dfaf474c3cbfa3d3b26d1531c6f5913739d5815c4b8083063934ee4fd6b38861 +AUX samba-init 1133 RMD160 77a084e8f78665af0233f19dc9c4a49693360da1 SHA1 09d7f1d676856289b61e890396a9976e2ccc794a SHA256 3b41d16daf02f9a1ab12e62c4c915f58e7801c07be48e2a94086eb288bb86aad +AUX samba-xinetd 286 RMD160 c90bd8518082eb4c182d5f7bd223a76f8e3c7fab SHA1 b250c5ca539187d8b481bcfb6ea3a915d7e8b26b SHA256 964d06dc33beff38978a8f03cd12b05c33d8258ed73aa9ffbf137fe226de25b8 +DIST samba-3.0.33.tar.gz 49393320 RMD160 c396f9dbd052d9377ca7ff75550173855c9792e2 SHA1 235c15e796a49fcf80b154d608813af8e7ebb329 SHA256 285004bdfb452235ac8ac20d33c083ecb326a10f6ee819dab4032ab5c6563a16 +DIST samba-vscan-0.3.6c-beta5.tar.gz 248183 RMD160 6929c30b57e342c4bdf6a6b432fbe41c2ac70a74 SHA1 9e1b37225246ff2f19e37aceb97a680afc82cdda SHA256 bfe910d54add8dcb87d5babdf50127a6dcf079e0e90ad9947b4cbfdbe3e3037d +EBUILD samba-3.0.33.ebuild 10443 RMD160 ca2f6bb5719d2caa539e20a141d0372f3174babc SHA1 7889594760c81864cbcee89d3cfb3cb9ab3314ea SHA256 e93886e650c5afeee6b4d976cca579793a06205f7e5782bd188272f46be4ccdd diff --git a/net-fs/samba/files/3.0.26a-invalid-free-fix.patch b/net-fs/samba/files/3.0.26a-invalid-free-fix.patch new file mode 100644 index 000000000..5a4eeb5cf --- /dev/null +++ b/net-fs/samba/files/3.0.26a-invalid-free-fix.patch @@ -0,0 +1,17 @@ +diff --git a/source/libsmb/libsmbclient.c b/source/libsmb/libsmbclient.c +index 80b09fa..374a86a 100644 +--- a/source/libsmb/libsmbclient.c ++++ b/source/libsmb/libsmbclient.c +@@ -2644,7 +2644,11 @@ smbc_opendir_ctx(SMBCCTX *context, + return NULL; + } + +- ip_list = &server_addr; ++ ip_list = memdup(&server_addr, sizeof(server_addr)); ++ if (ip_list == NULL) { ++ errno = ENOMEM; ++ return NULL; ++ } + count = 1; + } + diff --git a/net-fs/samba/files/3.0.26a-lazyldflags.patch b/net-fs/samba/files/3.0.26a-lazyldflags.patch new file mode 100644 index 000000000..845624738 --- /dev/null +++ b/net-fs/samba/files/3.0.26a-lazyldflags.patch @@ -0,0 +1,36 @@ +diff -Naur samba-3.0.25c.orig/source/Makefile.in samba-3.0.25c/source/Makefile.in +--- samba-3.0.25c.orig/source/Makefile.in 2007-09-01 09:14:54.000000000 +0200 ++++ samba-3.0.25c/source/Makefile.in 2007-09-01 09:17:08.000000000 +0200 +@@ -87,6 +87,8 @@ + # The permissions to give the executables + INSTALLPERMS = 0755 + ++LAZYLDFLAGS=-Wl,-z,now ++ + # set these to where to find various files + # These can be overridden by command line switches (see smbd(8)) + # or in smb.conf (see smb.conf(5)) +@@ -1008,19 +1010,19 @@ + + bin/smbmnt@EXEEXT@: proto_exists $(MNT_OBJ) bin/.dummy + @echo Linking $@ +- @$(CC) $(FLAGS) -o $@ $(MNT_OBJ) $(DYNEXP) $(LDFLAGS) ++ @$(CC) $(FLAGS) -o $@ $(MNT_OBJ) $(DYNEXP) $(LDFLAGS) $(LAZYLDFLAGS) + + bin/smbumount@EXEEXT@: proto_exists $(UMOUNT_OBJ) bin/.dummy + @echo Linking $@ +- @$(CC) $(FLAGS) -o $@ $(UMOUNT_OBJ) $(DYNEXP) $(LDFLAGS) ++ @$(CC) $(FLAGS) -o $@ $(UMOUNT_OBJ) $(DYNEXP) $(LDFLAGS) $(LAZYLDFLAGS) + + bin/mount.cifs@EXEEXT@: $(CIFS_MOUNT_OBJ) bin/.dummy + @echo Linking $@ +- @$(CC) $(FLAGS) -o $@ $(CIFS_MOUNT_OBJ) $(DYNEXP) $(LDFLAGS) ++ @$(CC) $(FLAGS) -o $@ $(CIFS_MOUNT_OBJ) $(DYNEXP) $(LDFLAGS) $(LAZYLDFLAGS) + + bin/umount.cifs@EXEEXT@: $(CIFS_UMOUNT_OBJ) bin/.dummy + @echo Linking $@ +- @$(CC) $(FLAGS) -o $@ $(CIFS_UMOUNT_OBJ) $(DYNEXP) $(LDFLAGS) ++ @$(CC) $(FLAGS) -o $@ $(CIFS_UMOUNT_OBJ) $(DYNEXP) $(LDFLAGS) $(LAZYLDFLAGS) + + bin/testparm@EXEEXT@: proto_exists $(TESTPARM_OBJ) @BUILD_POPT@ bin/.dummy + @echo Linking $@ diff --git a/net-fs/samba/files/3.0.28-autoconf-2.62-fix.patch b/net-fs/samba/files/3.0.28-autoconf-2.62-fix.patch new file mode 100644 index 000000000..2f5bc2b77 --- /dev/null +++ b/net-fs/samba/files/3.0.28-autoconf-2.62-fix.patch @@ -0,0 +1,15 @@ +--- lib/replace/autoconf-2.60.m4.orig 2008-04-19 00:26:33.000000000 -0400 ++++ lib/replace/autoconf-2.60.m4 2008-04-19 00:22:25.000000000 -0400 +@@ -179,6 +179,7 @@ + # ------------------------ + # Enable extensions on systems that normally disable them, + # typically due to standards-conformance issues. ++m4_ifndef([AC_USE_SYSTEM_EXTENSIONS],[ + AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS], + [ + AC_BEFORE([$0], [AC_COMPILE_IFELSE]) +@@ -208,3 +209,4 @@ + AC_DEFINE([__EXTENSIONS__]) + AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) + ]) ++]) diff --git a/net-fs/samba/files/3.0.28-fix_broken_readdir_detection.patch b/net-fs/samba/files/3.0.28-fix_broken_readdir_detection.patch new file mode 100644 index 000000000..47f33d7bb --- /dev/null +++ b/net-fs/samba/files/3.0.28-fix_broken_readdir_detection.patch @@ -0,0 +1,18 @@ +diff -Naur samba-3.0.28.orig/source/tests/os2_delete.c samba-3.0.28/source/tests/os2_delete.c +--- samba-3.0.28.orig/source/tests/os2_delete.c 2007-11-15 04:15:04.000000000 +0100 ++++ samba-3.0.28/source/tests/os2_delete.c 2008-02-20 20:47:53.878055947 +0100 +@@ -105,6 +105,9 @@ + + return 0; + } ++ ++#if 0 ++ + /* + test readdir/unlink pattern that OS/2 uses + tridge@samba.org July 2005 +@@ -212,3 +215,4 @@ + + return 0; + } ++#endif diff --git a/net-fs/samba/files/3.0.28a-wrong_python_ldflags.patch b/net-fs/samba/files/3.0.28a-wrong_python_ldflags.patch new file mode 100644 index 000000000..6f5c8baa7 --- /dev/null +++ b/net-fs/samba/files/3.0.28a-wrong_python_ldflags.patch @@ -0,0 +1,25 @@ +diff -Naur samba-3.0.28a.orig/source/Makefile.in samba-3.0.28a/source/Makefile.in +--- samba-3.0.28a.orig/source/Makefile.in 2008-05-17 12:20:23.000000000 +0200 ++++ samba-3.0.28a/source/Makefile.in 2008-05-17 12:23:38.000000000 +0200 +@@ -1666,7 +1666,8 @@ + fi + PYTHON_OBJS="$(PYTHON_OBJ)" \ + PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS) $(FLAGS)" \ +- LIBS="$(LDFLAGS) $(LIBS) $(PASSDB_LIBS) $(IDMAP_LIBS) $(KRB5LIBS) $(LDAP_LIBS)" \ ++ LDFLAGS="$(LDSHFLAGS)" \ ++ LIBS="$(LDSHFLAGS) $(LIBS) $(PASSDB_LIBS) $(IDMAP_LIBS) $(KRB5LIBS) $(LDAP_LIBS)" \ + $(PYTHON) python/setup.py build + + python_install: $(PYTHON_OBJ) +@@ -1676,8 +1677,9 @@ + fi + PYTHON_OBJS="$(PYTHON_OBJ)" \ + PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS)" \ +- LIBS="$(LDFLAGS) $(LIBS)" \ +- $(PYTHON) python/setup.py install --root=$(DESTDIR) ++ LDFLAGS="$(LDSHFLAGS)" \ ++ LIBS="$(LDSHFLAGS) $(LIBS)" \ ++ $(PYTHON) python/setup.py install --root="$(DESTDIR)" + + python_clean: + @-if test -n "$(PYTHON)"; then $(PYTHON) python/setup.py clean; fi diff --git a/net-fs/samba/files/README.gentoo b/net-fs/samba/files/README.gentoo new file mode 100644 index 000000000..6d3c00564 --- /dev/null +++ b/net-fs/samba/files/README.gentoo @@ -0,0 +1,79 @@ +#------------------------------------------------------------------------- +# WHATSNEW +#------------------------------------------------------------------------- +3.0.2: + If you are upgrading from a Samba version prior to 3.0.2, and you + use Samba's password database, you must run the following command: + pdbedit --force-initialized-passwords + +3.0.10: + LIBs flags changes for suid bins: LDFLAGS+='-Wl,-z,now' + +3.0.12: + libsmbclient shared library retrocompatibility is not assured: please + rebuild all samba-linked third part packages + /etc/samba/private moved to ${PRIVATE_DST} + for better File System Hierarchy adeherence + +3.0.20: + --with-idmap configure option removed + (historical: it is already included if dynamic id/gid mapping is used) + New USE flags: + async: async input/output + automount: automount support (previously default) + syslog: log to syslog daemon (previously default) + +3.0.22: + *sql backend: they were experimental, and now are marked as "deprecated" + upstream + CVE-2006-1059 security fix: 3.0.21* shipped with a bug in the debug + functions of winbind (debug>=5 reveals secret ids in logs) + +3.0.23: + *sql and xml backends have been removed by upstream devs. SQL is + temporarily continued on SourceForge (http://pdbsql.sourceforge.net), + but it will be removed with samba 4.x (and maybe 3.2.x) + see also ldap changes below + CAN-2006-1059: memory exaustion DoS against smbd in all samba versions + between 3.0.x and 3.0.23 + +General: + If you experience client locks in file transfers _only_, try the parameter + use sendfile = no (man smb.conf(5), man sendfile(2)) + There also seem some problems with the smbfs implementation of the recent + 2.6.x kernels. If you experience problems (lockups) with smbfs, try + 'mount -t cifs' as an alternative + +#------------------------------------------------------------------------- +# WINBIND +#------------------------------------------------------------------------- +3.0.7: param: 'winbind enable local accounts' is now disabled by default + +#------------------------------------------------------------------------- +# LDAP +#------------------------------------------------------------------------- +3.0.2: + If you are upgrading from prior to 3.0.2, and you are using LDAP for Samba + authentication, you must check the sambaPwdLastSet attribute on all + accounts, and ensure it is not 0. + +3.0.12: + smbldap-tools is now a separate package for ease of upgrade + +3.0.23: + a new index is required: 'index sambaSID sub' (run slapindex afterwards) + use an updated samba.schema containing the correct 'sambaSID' definition + +#------------------------------------------------------------------------- +# DOCS +#------------------------------------------------------------------------- +General: + Beside [1], there is a good HOWTO about setting up samba3 with cups and + clamav at [2] +Ldap: + Beside the Samba Guide ad [1], try to look at smbldap-tools docs [3] + +[1] http://www.samba.org +[2] http://www.gentoo.org/doc/en/quick-samba-howto.xml +[3] http://www.idealx.org/prj/samba/smbldap-howto.fr.html + diff --git a/net-fs/samba/files/config/lmhosts b/net-fs/samba/files/config/lmhosts new file mode 100644 index 000000000..504ad2661 --- /dev/null +++ b/net-fs/samba/files/config/lmhosts @@ -0,0 +1,2 @@ +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/config/lmhosts,v 1.1 2007/09/07 21:07:40 dev-zero Exp $ +127.0.0.1 localhost diff --git a/net-fs/samba/files/config/nsswitch.conf-winbind b/net-fs/samba/files/config/nsswitch.conf-winbind new file mode 100644 index 000000000..e66273a62 --- /dev/null +++ b/net-fs/samba/files/config/nsswitch.conf-winbind @@ -0,0 +1,17 @@ +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/config/nsswitch.conf-winbind,v 1.1 2007/09/07 21:07:40 dev-zero Exp $ +passwd: files winbind +group: files winbind + +hosts: files dns +networks: files dns + +services: db files +protocols: db files +rpc: db files +ethers: db files +netmasks: files +netgroup: files +bootparams: files + +automount: files +aliases: files diff --git a/net-fs/samba/files/config/nsswitch.conf-wins b/net-fs/samba/files/config/nsswitch.conf-wins new file mode 100644 index 000000000..b21fef3ef --- /dev/null +++ b/net-fs/samba/files/config/nsswitch.conf-wins @@ -0,0 +1,17 @@ +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/config/nsswitch.conf-wins,v 1.1 2007/09/07 21:07:40 dev-zero Exp $ +passwd: files +group: files + +hosts: files dns wins +networks: files dns + +services: db files +protocols: db files +rpc: db files +ethers: db files +netmasks: files +netgroup: files +bootparams: files + +automount: files +aliases: files diff --git a/net-fs/samba/files/config/samba.pam b/net-fs/samba/files/config/samba.pam new file mode 100644 index 000000000..91beadd47 --- /dev/null +++ b/net-fs/samba/files/config/samba.pam @@ -0,0 +1,8 @@ +#%PAM-1.0 +# * pam_smbpass.so authenticates against the smbpasswd file +# * changed Redhat's 'pam_stack' with 'include' for *BSD compatibility +# (Diego "Flameeyes" Petteno'): enable with pam>=0.78 only +auth required pam_smbpass.so nodelay +account include system-auth +session include system-auth +password required pam_smbpass.so nodelay smbconf=/etc/samba/smb.conf diff --git a/net-fs/samba/files/config/samba.schema b/net-fs/samba/files/config/samba.schema new file mode 100644 index 000000000..17ea2d9fd --- /dev/null +++ b/net-fs/samba/files/config/samba.schema @@ -0,0 +1,471 @@ +## +## schema file for OpenLDAP 2.x +## Schema for storing Samba user accounts and group maps in LDAP +## OIDs are owned by the Samba Team +## +## Prerequisite schemas - uid (cosine.schema) +## - displayName (inetorgperson.schema) +## - gidNumber (nis.schema) +## +## 1.3.6.1.4.1.7165.2.1.x - attributetypes +## 1.3.6.1.4.1.7165.2.2.x - objectclasses +## +## ----- READ THIS WHEN ADDING A NEW ATTRIBUTE OR OBJECT CLASS ------ +## +## Run the 'get_next_oid' bash script in this directory to find the +## next available OID for attribute type and object classes. +## +## $ ./get_next_oid +## attributetype ( 1.3.6.1.4.1.7165.2.1.XX NAME .... +## objectclass ( 1.3.6.1.4.1.7165.2.2.XX NAME .... +## +## Also ensure that new entries adhere to the declaration style +## used throughout this file +## +## <attributetype|objectclass> ( 1.3.6.1.4.1.7165.2.XX.XX NAME .... +## ^ ^ ^ +## +## The spaces are required for the get_next_oid script (and for +## readability). +## +## ------------------------------------------------------------------ + +######################################################################## +## HISTORICAL ## +######################################################################## + +## +## Password hashes +## +#attributetype ( 1.3.6.1.4.1.7165.2.1.1 NAME 'lmPassword' +# DESC 'LanManager Passwd' +# EQUALITY caseIgnoreIA5Match +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.2 NAME 'ntPassword' +# DESC 'NT Passwd' +# EQUALITY caseIgnoreIA5Match +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE ) + +## +## Account flags in string format ([UWDX ]) +## +#attributetype ( 1.3.6.1.4.1.7165.2.1.4 NAME 'acctFlags' +# DESC 'Account Flags' +# EQUALITY caseIgnoreIA5Match +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE ) + +## +## Password timestamps & policies +## +#attributetype ( 1.3.6.1.4.1.7165.2.1.3 NAME 'pwdLastSet' +# DESC 'NT pwdLastSet' +# EQUALITY integerMatch +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.5 NAME 'logonTime' +# DESC 'NT logonTime' +# EQUALITY integerMatch +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.6 NAME 'logoffTime' +# DESC 'NT logoffTime' +# EQUALITY integerMatch +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.7 NAME 'kickoffTime' +# DESC 'NT kickoffTime' +# EQUALITY integerMatch +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.8 NAME 'pwdCanChange' +# DESC 'NT pwdCanChange' +# EQUALITY integerMatch +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.9 NAME 'pwdMustChange' +# DESC 'NT pwdMustChange' +# EQUALITY integerMatch +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +## +## string settings +## +#attributetype ( 1.3.6.1.4.1.7165.2.1.10 NAME 'homeDrive' +# DESC 'NT homeDrive' +# EQUALITY caseIgnoreIA5Match +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.11 NAME 'scriptPath' +# DESC 'NT scriptPath' +# EQUALITY caseIgnoreIA5Match +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.12 NAME 'profilePath' +# DESC 'NT profilePath' +# EQUALITY caseIgnoreIA5Match +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.13 NAME 'userWorkstations' +# DESC 'userWorkstations' +# EQUALITY caseIgnoreIA5Match +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.17 NAME 'smbHome' +# DESC 'smbHome' +# EQUALITY caseIgnoreIA5Match +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.18 NAME 'domain' +# DESC 'Windows NT domain to which the user belongs' +# EQUALITY caseIgnoreIA5Match +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} ) + +## +## user and group RID +## +#attributetype ( 1.3.6.1.4.1.7165.2.1.14 NAME 'rid' +# DESC 'NT rid' +# EQUALITY integerMatch +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +#attributetype ( 1.3.6.1.4.1.7165.2.1.15 NAME 'primaryGroupID' +# DESC 'NT Group RID' +# EQUALITY integerMatch +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +## +## The smbPasswordEntry objectclass has been depreciated in favor of the +## sambaAccount objectclass +## +#objectclass ( 1.3.6.1.4.1.7165.2.2.1 NAME 'smbPasswordEntry' SUP top AUXILIARY +# DESC 'Samba smbpasswd entry' +# MUST ( uid $ uidNumber ) +# MAY ( lmPassword $ ntPassword $ pwdLastSet $ acctFlags )) + +#objectclass ( 1.3.6.1.4.1.7165.2.2.2 NAME 'sambaAccount' SUP top STRUCTURAL +# DESC 'Samba Account' +# MUST ( uid $ rid ) +# MAY ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $ +# logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $ +# displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $ +# description $ userWorkstations $ primaryGroupID $ domain )) + +#objectclass ( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' SUP top AUXILIARY +# DESC 'Samba Auxiliary Account' +# MUST ( uid $ rid ) +# MAY ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $ +# logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $ +# displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $ +# description $ userWorkstations $ primaryGroupID $ domain )) + +######################################################################## +## END OF HISTORICAL ## +######################################################################## + +####################################################################### +## Attributes used by Samba 3.0 schema ## +####################################################################### + +## +## Password hashes +## +attributetype ( 1.3.6.1.4.1.7165.2.1.24 NAME 'sambaLMPassword' + DESC 'LanManager Password' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.25 NAME 'sambaNTPassword' + DESC 'MD4 hash of the unicode password' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE ) + +## +## Account flags in string format ([UWDX ]) +## +attributetype ( 1.3.6.1.4.1.7165.2.1.26 NAME 'sambaAcctFlags' + DESC 'Account Flags' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE ) + +## +## Password timestamps & policies +## +attributetype ( 1.3.6.1.4.1.7165.2.1.27 NAME 'sambaPwdLastSet' + DESC 'Timestamp of the last password update' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.28 NAME 'sambaPwdCanChange' + DESC 'Timestamp of when the user is allowed to update the password' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.29 NAME 'sambaPwdMustChange' + DESC 'Timestamp of when the password will expire' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.30 NAME 'sambaLogonTime' + DESC 'Timestamp of last logon' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.31 NAME 'sambaLogoffTime' + DESC 'Timestamp of last logoff' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.32 NAME 'sambaKickoffTime' + DESC 'Timestamp of when the user will be logged off automatically' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.48 NAME 'sambaBadPasswordCount' + DESC 'Bad password attempt count' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.49 NAME 'sambaBadPasswordTime' + DESC 'Time of the last bad password attempt' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.55 NAME 'sambaLogonHours' + DESC 'Logon Hours' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{42} SINGLE-VALUE ) + +## +## string settings +## +attributetype ( 1.3.6.1.4.1.7165.2.1.33 NAME 'sambaHomeDrive' + DESC 'Driver letter of home directory mapping' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.34 NAME 'sambaLogonScript' + DESC 'Logon script path' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.35 NAME 'sambaProfilePath' + DESC 'Roaming profile path' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.36 NAME 'sambaUserWorkstations' + DESC 'List of user workstations the user is allowed to logon to' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.37 NAME 'sambaHomePath' + DESC 'Home directory UNC path' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.38 NAME 'sambaDomainName' + DESC 'Windows NT domain to which the user belongs' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.47 NAME 'sambaMungedDial' + DESC '' + EQUALITY caseExactMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.54 NAME 'sambaPasswordHistory' + DESC 'Concatenated MD4 hashes of the unicode passwords used on this account' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} ) + +## +## SID, of any type +## + +attributetype ( 1.3.6.1.4.1.7165.2.1.20 NAME 'sambaSID' + DESC 'Security ID' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE ) + + +## +## Primary group SID, compatible with ntSid +## + +attributetype ( 1.3.6.1.4.1.7165.2.1.23 NAME 'sambaPrimaryGroupSID' + DESC 'Primary Group Security ID' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.51 NAME 'sambaSIDList' + DESC 'Security ID List' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} ) + +## +## group mapping attributes +## +attributetype ( 1.3.6.1.4.1.7165.2.1.19 NAME 'sambaGroupType' + DESC 'NT Group Type' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +## +## Store info on the domain +## + +attributetype ( 1.3.6.1.4.1.7165.2.1.21 NAME 'sambaNextUserRid' + DESC 'Next NT rid to give our for users' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.22 NAME 'sambaNextGroupRid' + DESC 'Next NT rid to give out for groups' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.39 NAME 'sambaNextRid' + DESC 'Next NT rid to give out for anything' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.40 NAME 'sambaAlgorithmicRidBase' + DESC 'Base at which the samba RID generation algorithm should operate' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.41 NAME 'sambaShareName' + DESC 'Share Name' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.42 NAME 'sambaOptionName' + DESC 'Option Name' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.43 NAME 'sambaBoolOption' + DESC 'A boolean option' + EQUALITY booleanMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.44 NAME 'sambaIntegerOption' + DESC 'An integer option' + EQUALITY integerMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.45 NAME 'sambaStringOption' + DESC 'A string option' + EQUALITY caseExactIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.46 NAME 'sambaStringListOption' + DESC 'A string list option' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) + + +attributetype ( 1.3.6.1.4.1.7165.2.1.50 NAME 'sambaPrivName' + SUP name ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.52 NAME 'sambaPrivilegeList' + DESC 'Privileges List' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} ) + +attributetype ( 1.3.6.1.4.1.7165.2.1.53 NAME 'sambaTrustFlags' + DESC 'Trust Password Flags' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + + +####################################################################### +## objectClasses used by Samba 3.0 schema ## +####################################################################### + +## The X.500 data model (and therefore LDAPv3) says that each entry can +## only have one structural objectclass. OpenLDAP 2.0 does not enforce +## this currently but will in v2.1 + +## +## added new objectclass (and OID) for 3.0 to help us deal with backwards +## compatibility with 2.2 installations (e.g. ldapsam_compat) --jerry +## +objectclass ( 1.3.6.1.4.1.7165.2.2.6 NAME 'sambaSamAccount' SUP top AUXILIARY + DESC 'Samba 3.0 Auxilary SAM Account' + MUST ( uid $ sambaSID ) + MAY ( cn $ sambaLMPassword $ sambaNTPassword $ sambaPwdLastSet $ + sambaLogonTime $ sambaLogoffTime $ sambaKickoffTime $ + sambaPwdCanChange $ sambaPwdMustChange $ sambaAcctFlags $ + displayName $ sambaHomePath $ sambaHomeDrive $ sambaLogonScript $ + sambaProfilePath $ description $ sambaUserWorkstations $ + sambaPrimaryGroupSID $ sambaDomainName $ sambaMungedDial $ + sambaBadPasswordCount $ sambaBadPasswordTime $ + sambaPasswordHistory $ sambaLogonHours)) + +## +## Group mapping info +## +objectclass ( 1.3.6.1.4.1.7165.2.2.4 NAME 'sambaGroupMapping' SUP top AUXILIARY + DESC 'Samba Group Mapping' + MUST ( gidNumber $ sambaSID $ sambaGroupType ) + MAY ( displayName $ description $ sambaSIDList )) + +## +## Trust password for trust relationships (any kind) +## +objectclass ( 1.3.6.1.4.1.7165.2.2.14 NAME 'sambaTrustPassword' SUP top STRUCTURAL + DESC 'Samba Trust Password' + MUST ( sambaDomainName $ sambaNTPassword $ sambaTrustFlags ) + MAY ( sambaSID $ sambaPwdLastSet )) + +## +## Whole-of-domain info +## +objectclass ( 1.3.6.1.4.1.7165.2.2.5 NAME 'sambaDomain' SUP top STRUCTURAL + DESC 'Samba Domain Information' + MUST ( sambaDomainName $ + sambaSID ) + MAY ( sambaNextRid $ sambaNextGroupRid $ sambaNextUserRid $ + sambaAlgorithmicRidBase ) ) + +## +## used for idmap_ldap module +## +objectclass ( 1.3.6.1.4.1.7165.2.2.7 NAME 'sambaUnixIdPool' SUP top AUXILIARY + DESC 'Pool for allocating UNIX uids/gids' + MUST ( uidNumber $ gidNumber ) ) + + +objectclass ( 1.3.6.1.4.1.7165.2.2.8 NAME 'sambaIdmapEntry' SUP top AUXILIARY + DESC 'Mapping from a SID to an ID' + MUST ( sambaSID ) + MAY ( uidNumber $ gidNumber ) ) + +objectclass ( 1.3.6.1.4.1.7165.2.2.9 NAME 'sambaSidEntry' SUP top STRUCTURAL + DESC 'Structural Class for a SID' + MUST ( sambaSID ) ) + +objectclass ( 1.3.6.1.4.1.7165.1.2.2.10 NAME 'sambaConfig' SUP top AUXILIARY + DESC 'Samba Configuration Section' + MAY ( description ) ) + +objectclass ( 1.3.6.1.4.1.7165.2.2.11 NAME 'sambaShare' SUP top STRUCTURAL + DESC 'Samba Share Section' + MUST ( sambaShareName ) + MAY ( description ) ) + +objectclass ( 1.3.6.1.4.1.7165.2.2.12 NAME 'sambaConfigOption' SUP top STRUCTURAL + DESC 'Samba Configuration Option' + MUST ( sambaOptionName ) + MAY ( sambaBoolOption $ sambaIntegerOption $ sambaStringOption $ + sambaStringListoption $ description ) ) + + +objectclass ( 1.3.6.1.4.1.7165.2.2.13 NAME 'sambaPrivilege' SUP top AUXILIARY + DESC 'Samba Privilege' + MUST ( sambaSID ) + MAY ( sambaPrivilegeList ) ) + diff --git a/net-fs/samba/files/config/smb.conf.example-samba3 b/net-fs/samba/files/config/smb.conf.example-samba3 new file mode 100644 index 000000000..1c1216fc2 --- /dev/null +++ b/net-fs/samba/files/config/smb.conf.example-samba3 @@ -0,0 +1,478 @@ +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options (perhaps too +# many!) most of which are not shown in this example +# +# For a step to step guide on installing, configuring and using samba, +# read the Samba-HOWTO-Collection. This may be obtained from: +# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf +# +# Many working examples of smb.conf files can be found in the +# Samba-Guide which is generated daily and can be downloaded from: +# http://www.samba.org/samba/docs/Samba-Guide.pdf +# +# Any line which starts with a ; (semi-colon) or a # (hash) +# is a comment and is ignored. In this example we will use a # +# for commentry and a ; for parts of the config file that you +# may wish to enable +# +# NOTE: Whenever you modify this file you should run the command "testparm" +# to check that you have not made any basic syntactic errors. +# +#======================= Global Settings ===================================== +[global] + +# 1. Server Naming Options: +# workgroup = NT-Domain-Name or Workgroup-Name + workgroup = MYGROUP + +# netbios name is the name you will see in "Network Neighbourhood", +# but defaults to your hostname +; netbios name = <name_of_this_server> + +# server string is the equivalent of the NT Description field + server string = Samba Server %v + +# 2. Printing Options: +# CHANGES TO ENABLE PRINTING ON ALL CUPS PRINTERS IN THE NETWORK +# if you want to automatically load your printer list rather +# than setting them up individually then you'll need this + printcap name = cups + load printers = yes + +# It should not be necessary to spell out the print system type unless +# yours is non-standard. Currently supported print systems include: +# bsd, sysv, plp, lprng, aix, hpux, qnx, cups + printing = cups + +# 3. Logging Options: +# this tells Samba to use a separate log file for each machine +# that connects + log file = /var/log/samba/log.%m + +# Put a capping on the size of the log files (in Kb). + max log size = 50 + +# Set the log (verbosity) level (0 <= log level <= 10) +; log level = 3 + +# 4. Security and Domain Membership Options: +# This option is important for security. It allows you to restrict +# connections to machines which are on your local network. The +# following example restricts access to two C class networks and +# the "loopback" interface. For more examples of the syntax see +# the smb.conf man page. Do not enable this if (tcp/ip) name resolution does +# not work for all the hosts in your network. +; hosts allow = 192.168.1. 192.168.2. 127. + +# Uncomment this if you want a guest account, you must add this to /etc/passwd +# otherwise the user "nobody" is used +; guest account = pcguest +# Allow users to map to guest: + map to guest = bad user + +# Security mode. Most people will want user level security. See +# security_level.txt for details. + security = user +# Use password server option only with security = server or security = domain +# When using security = domain, you should use password server = * +; password server = <NT-Server-Name> +; password server = * + +# Password Level allows matching of _n_ characters of the password for +# all combinations of upper and lower case. +; password level = 8 +; username level = 8 + +# You may wish to use password encryption. Please read +# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation. +# Do not enable this option unless you have read those documents +# Encrypted passwords are required for any use of samba in a Windows NT domain +# The smbpasswd file is only required by a server doing authentication, thus +# members of a domain do not need one. + encrypt passwords = yes + +# The following are needed to allow password changing from Windows to +# also update the Linux system password. +# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above. +# NOTE2: You do NOT need these to allow workstations to change only +# the encrypted SMB passwords. They allow the Unix password +# to be kept in sync with the SMB password. +; unix password sync = Yes +# You either need to setup a passwd program and passwd chat, or +# enable pam password change +; pam password change = yes +; passwd program = /usr/bin/passwd %u +; passwd chat = *New*UNIX*password* %n\n *Re*ype*new*UNIX*password* %n\n \ +;*passwd:*all*authentication*tokens*updated*successfully* + +# Unix users can map to different SMB User names +; username map = /etc/samba/smbusers + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# of the machine that is connecting +; include = /etc/samba/smb.conf.%m + +# Options for using winbind. Winbind allows you to do all account and +# authentication from a Windows or samba domain controller, creating +# accounts on the fly, and maintaining a mapping of Windows RIDs to unix uid's +# and gid's. idmap uid and idmap gid are the only required parameters. +# +# winbind separator is the character a user must use between their domain +# name and username, defaults to "\" +; winbind separator = + +# +# winbind use default domain allows you to have winbind return usernames +# in the form user instead of DOMAIN+user for the domain listed in the +# workgroup parameter. +; winbind use default domain = yes +# +# template homedir determines the home directory for winbind users, with +# %D expanding to their domain name and %U expanding to their username: +; template homedir = /home/%D/%U + +# When using winbind, you may want to have samba create home directories +# on the fly for authenticated users. Ensure that /etc/pam.d/samba is +# using 'service=system-auth-winbind' in pam_stack modules, and then +# enable obedience of pam restrictions below: +; obey pam restrictions = yes + +# +# template shell determines the shell users authenticated by winbind get +; template shell = /bin/bash + +# 5. Browser Control and Networking Options: +# Most people will find that this option gives better performance. +# See speed.txt and the manual pages for details + socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 + +# Configure Samba to use multiple interfaces +# If you have multiple network interfaces then you must list them +# here. See the man page for details. +; interfaces = 192.168.12.2/24 192.168.13.2/24 + +# Configure remote browse list synchronisation here +# request announcement to, or browse list sync from: +# a specific host or from / to a whole subnet (see below) +; remote browse sync = 192.168.3.25 192.168.5.255 +# Cause this host to announce itself to local subnets here +; remote announce = 192.168.1.255 192.168.2.44 + +# set local master to no if you don't want Samba to become a master +# browser on your network. Otherwise the normal election rules apply +; local master = no + +# OS Level determines the precedence of this server in master browser +# elections. The default value should be reasonable +; os level = 33 + +# Domain Master specifies Samba to be the Domain Master Browser. This +# allows Samba to collate browse lists between subnets. Don't use this +# if you already have a Windows NT domain controller doing this job +; domain master = yes + +# Preferred Master causes Samba to force a local browser election on startup +# and gives it a slightly higher chance of winning the election +; preferred master = yes + +# 6. Domain Control Options: +# Enable this if you want Samba to be a domain logon server for +# Windows95 workstations or Primary Domain Controller for WinNT and Win2k +; domain logons = yes + +# if you enable domain logons then you may want a per-machine or +# per user logon script +# run a specific logon batch file per workstation (machine) +; logon script = %m.bat +# run a specific logon batch file per username +; logon script = %U.bat + +# Where to store roaming profiles for WinNT and Win2k +# %L substitutes for this servers netbios name, %U is username +# You must uncomment the [Profiles] share below +; logon path = \\%L\Profiles\%U + +# Where to store roaming profiles for Win9x. Be careful with this as it also +# impacts where Win2k finds it's /HOME share +; logon home = \\%L\%U\.profile + + +# The add user script is used by a domain member to add local user accounts +# that have been authenticated by the domain controller, or when adding +# users via the Windows NT Tools (ie User Manager for Domains). + +# Scripts for file (passwd, smbpasswd) backend: +; add user script = /usr/sbin/useradd -s /bin/false '%u' +; delete user script = /usr/sbin/userdel '%s' +; add user to group script = /usr/bin/gpasswd -a '%u' '%g' +; delete user from group script = /usr/bin/gpasswd -d '%u' '%g' +; set primary group script = /usr/sbin/usermod -g '%g' '%u' +; add group script = /usr/sbin/groupadd %g && getent group '%g'|awk -F: '{print $3}' +; delete group script = /usr/sbin/groupdel '%g' + +# Scripts for LDAP backend (assumes nss_ldap is in use on the domain controller. +# Needs IDEALX scripts, and configuration in smbldap_conf.pm. +# This assumes you've installed the IDEALX scripts into /usr/share/samba/scripts... +; add user script = /usr/share/samba/scripts/smbldap-useradd.pl '%u' +; delete user script = /usr/share/samba/scripts/smbldap-userdel.pl '%u' +; add user to group script = /usr/share/samba/scripts/smbldap-groupmod.pl -m '%u' '%g' +; delete user from group script = /usr/share/samba/scripts/smbldap-groupmod.pl -x '%u' '%g' +; set primary group script = /usr/share/samba/scripts/smbldap-usermod.pl -g '%g' '%u' +; add group script = /usr/share/samba/scripts/smbldap-groupadd.pl '%g' && /usr/share/samba/scripts/smbldap-groupshow.pl %g|awk '/^gidNumber:/ {print $2}' +; delete group script = /usr/share/samba/scripts/smbldap-userdel.pl '%g' + + +# The add machine script is use by a samba server configured as a domain +# controller to add local machine accounts when adding machines to the domain. +# The script must work from the command line when replacing the macros, +# or the operation will fail. Check that groups exist if forcing a group. +# Script for domain controller for adding machines: +; add machine script = /usr/sbin/useradd -d /dev/null -g machines -c 'Machine Account' -s /bin/false '%u' +# Script for domain controller with LDAP backend for adding machines (You need +# the IDEALX scripts, and to configure the smbldap_conf.pm first): +; add machine script = /usr/share/samba/scripts/smbldap-useradd.pl -w -d /dev/null -g machines -c 'Machine Account' -s /bin/false '%u' + +# Domain groups: +# Domain groups are now configured by using the 'net groupmap' tool + +# Samba Password Database configuration: +# Samba now has runtime-configurable password database backends. +# smbpasswd is for backwards compatibility only Default (not recommended), +# new installations should use tdbsam or ldap. +; passdb backend = smbpasswd +# TDB backend +; passdb backend = tdbsam +# LDAP with fallback to smbpasswd guest +# Enable SSL by using an ldaps url, or enable tls with 'ldap ssl' below. +; passdb backend = ldapsam:ldaps://ldap.mydomain.com +# Use the samba2 LDAP schema: +; passdb backend = ldapsam_compat:ldaps://ldap.mydomain.com + +# idmap uid account range: +# This is a range of unix user-id's that samba will map non-unix RIDs to, +# such as when using Winbind +; idmap uid = 10000-20000 +; idmap gid = 10000-20000 + +# LDAP configuration for Domain Controlling: +# The account (dn) that samba uses to access the LDAP server +# This account needs to have write access to the LDAP tree +# You will need to give samba the password for this dn, by +# running 'smbpasswd -w mypassword' +; ldap admin dn = cn=root,dc=mydomain,dc=com +; ldap ssl = start_tls +# start_tls should run on 389, but samba defaults incorrectly to 636 +; ldap port = 389 +; ldap suffix = dc=mydomain,dc=com +; ldap server = ldap.mydomain.com +# Seperate suffixes are available for machines, users, groups, and idmap, if +# ldap suffix appears first, it is appended to the specific suffix. +# Example for a unix-ish directory layout: +; ldap machine suffix = ou=Hosts +; ldap user suffix = ou=People +; ldap group suffix = ou=Group +; ldap idmap suffix = ou=Idmap +# Example for AD-ish layout: +; ldap machine suffix = cn=Computers +; ldap user suffix = cn=Users +; ldap group suffix = cn=Groups +; ldap idmap suffix = cn=Idmap + + +# 7. Name Resolution Options: +# All NetBIOS names must be resolved to IP Addresses +# 'Name Resolve Order' allows the named resolution mechanism to be specified +# the default order is "host lmhosts wins bcast". "host" means use the unix +# system gethostbyname() function call that will use either /etc/hosts OR +# DNS or NIS depending on the settings of /etc/host.config, /etc/nsswitch.conf +# and the /etc/resolv.conf file. "host" therefore is system configuration +# dependant. This parameter is most often of use to prevent DNS lookups +# in order to resolve NetBIOS names to IP Addresses. Use with care! +# The example below excludes use of name resolution for machines that are NOT +# on the local network segment +# - OR - are not deliberately to be known via lmhosts or via WINS. +; name resolve order = wins host lmhosts bcast + +# Windows Internet Name Serving Support Section: +# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server +; wins support = yes + +# WINS Server - Tells the NMBD components of Samba to be a WINS Client +# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both +; wins server = w.x.y.z + +# WINS Proxy - Tells Samba to answer name resolution queries on +# behalf of a non WINS capable client, for this to work there must be +# at least one WINS Server on the network. The default is NO. +; wins proxy = yes + +# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names +# via DNS nslookups. The built-in default for versions 1.9.17 is yes, +# this has been changed in version 1.9.18 to no. + dns proxy = no + +# 8. File Naming Options: +# Case Preservation can be handy - system default is _no_ +# NOTE: These can be set on a per share basis +; preserve case = no +; short preserve case = no +# Default case is normally upper case for all DOS files +; default case = lower +# Be very careful with case sensitivity - it can break things! +; case sensitive = no + +# Enabling internationalization: +# you can match a Windows code page with a UNIX character set. +# Windows: 437 (US), 737 (GREEK), 850 (Latin1 - Western European), +# 852 (Czech), 861 (???), 932 (Japanese), +# 936 (Simplified Chin.), 949 (Korean Hangul), +# 950 (Trad. Chin.). +# More detail about code page is in +# "http://www.microsoft.com/globaldev/reference/oslocversion.mspx" +# UNIX: ISO8859-1 (Western European), ISO8859-2 (Eastern Eu.), +# ISO8859-5 (Russian Cyrillic), KOI8-R (Alt-Russ. Cyril.) +# This is an example for french users: +; dos charset = 850 +; unix charset = ISO8859-1 + + +#============================ Share Definitions ============================== +[homes] + comment = Home Directories + browseable = no + writable = yes +# You can enable VFS recycle bin on a per share basis: +# Uncomment the next 2 lines (make sure you create a +# .recycle folder in the base of the share and ensure +# all users will have write access to it. See +# examples/VFS/recycle/REAME in the samba docs for details +; vfs object = /usr/lib/samba/vfs/recycle.so + +# Un-comment the following and create the netlogon directory for Domain Logons +; [netlogon] +; comment = Network Logon Service +; path = /var/lib/samba/netlogon +; guest ok = yes +; writable = no + +# Un-comment the following to provide a specific roving profile share +# the default is to use the user's home directory +;[Profiles] +; path = /var/lib/samba/profiles +; browseable = no +; guest ok = yes +# This script can be enabled to create profile directories on the fly +# You may want to turn off guest acces if you enable this, as it +# hasn't been thoroughly tested. +;root preexec = PROFILE=/var/lib/samba/profiles/%u; if [ ! -e $PROFILE ]; \ +; then mkdir -pm700 $PROFILE; chown %u:%g $PROFILE;fi + +# NOTE: If you have a CUPS print system there is no need to +# specifically define each individual printer. +# You must configure the samba printers with the appropriate Windows +# drivers on your Windows clients. On the Samba server no filtering is +# done. If you wish that the server provides the driver and the clients +# send PostScript ("Generic PostScript Printer" under Windows), you have +# to swap the 'print command' line below with the commented one. +[printers] + comment = All Printers + path = /var/spool/samba + browseable = no +# set to yes to allow user 'guest account' to print. + guest ok = no + writable = no + printable = yes + +# This share is used for Windows NT-style point-and-print support. +# To be able to install drivers, you need to be either root, or listed +# in the printer admin parameter above. Note that you also need write access +# to the directory and share definition to be able to upload the drivers. +# For more information on this, please see the Printing Support Section of +# /usr/share/doc/samba-<version>/Samba-HOWTO-Collection.pdf +[print$] + path = /var/lib/samba/printers + browseable = yes + read only = yes + write list = @adm root + guest ok = yes + +# This one is useful for people to share files +;[tmp] +; comment = Temporary file space +; path = /tmp +; read only = no +; public = yes + +# A publicly accessible directory, but read only, except for people in +# the "staff" group +;[public] +; comment = Public Stuff +; path = /home/samba/public +; public = yes +; writable = no +; write list = @staff +# Audited directory through experimental VFS audit.so module: +# Uncomment next line. +; vfs object = /usr/lib/samba/vfs/audit.so + +# Other examples. +# +# A private printer, usable only by Fred. Spool data will be placed in Fred's +# home directory. Note that fred must have write access to the spool directory, +# wherever it is. +;[fredsprn] +; comment = Fred's Printer +; valid users = fred +; path = /homes/fred +; printer = freds_printer +; public = no +; writable = no +; printable = yes + +# A private directory, usable only by Fred. Note that Fred requires write +# access to the directory. +;[fredsdir] +; comment = Fred's Service +; path = /usr/somewhere/private +; valid users = fred +; public = no +; writable = yes +; printable = no + +# a service which has a different directory for each machine that connects +# this allows you to tailor configurations to incoming machines. You could +# also use the %u option to tailor it by user name. +# The %m gets replaced with the machine name that is connecting. +;[pchome] +; comment = PC Directories +; path = /usr/pc/%m +; public = no +; writable = yes + +# A publicly accessible directory, read/write to all users. Note that all files +# created in the directory by users will be owned by the default user, so +# any user with access can delete any other user's files. Obviously this +# directory must be writable by the default user. Another user could of course +# be specified, in which case all files would be owned by that user instead. +;[public] +; path = /usr/somewhere/else/public +; public = yes +; only guest = yes +; writable = yes +; printable = no + +# The following two entries demonstrate how to share a directory so that two +# users can place files there that will be owned by the specific users. In this +# setup, the directory should be writable by both users and should have the +# sticky bit set on it to prevent abuse. Obviously this could be extended to +# as many users as required. +;[myshare] +; comment = Mary's and Fred's stuff +; path = /usr/somewhere/shared +; valid users = mary fred +; public = no +; writable = yes +; printable = no +; create mask = 0765 + diff --git a/net-fs/samba/files/config/smbusers b/net-fs/samba/files/config/smbusers new file mode 100644 index 000000000..3a5fb67e9 --- /dev/null +++ b/net-fs/samba/files/config/smbusers @@ -0,0 +1,4 @@ +# Unix_name = SMB_name1 SMB_name2 ... +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/config/smbusers,v 1.1 2007/09/07 21:07:40 dev-zero Exp $ +root = administrator admin +nobody = guest pcguest smbguest diff --git a/net-fs/samba/files/config/swat.xinetd b/net-fs/samba/files/config/swat.xinetd new file mode 100644 index 000000000..1436dcbe0 --- /dev/null +++ b/net-fs/samba/files/config/swat.xinetd @@ -0,0 +1,17 @@ +# default: off +# description: SWAT is the Samba Web Admin Tool. Use swat \ +# to configure your Samba server. To use SWAT, \ +# connect to port 901 with your favorite web browser. +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/config/swat.xinetd,v 1.1 2007/09/07 21:07:40 dev-zero Exp $ + +service swat +{ + port = 901 + socket_type = stream + wait = no + only_from = localhost + user = root + server = /usr/sbin/swat + log_on_failure += USERID + disable = yes +} diff --git a/net-fs/samba/files/config/system-auth-winbind b/net-fs/samba/files/config/system-auth-winbind new file mode 100644 index 000000000..984289a22 --- /dev/null +++ b/net-fs/samba/files/config/system-auth-winbind @@ -0,0 +1,18 @@ +#%PAM-1.0 +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/config/system-auth-winbind,v 1.2 2008/03/10 08:15:41 dev-zero Exp $ + +auth required pam_env.so +auth sufficient pam_winbind.so +auth sufficient pam_unix.so likeauth nullok use_first_pass +auth required pam_deny.so + +account sufficient pam_winbind.so +account required pam_unix.so + +password required pam_cracklib.so retry=3 +password sufficient pam_unix.so nullok use_authtok md5 shadow +password required pam_deny.so + +session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 +session required pam_limits.so +session required pam_unix.so diff --git a/net-fs/samba/files/samba-conf b/net-fs/samba/files/samba-conf new file mode 100644 index 000000000..b67595ade --- /dev/null +++ b/net-fs/samba/files/samba-conf @@ -0,0 +1,28 @@ +#add "winbind" to the daemon_list if you also want winbind to start +daemon_list="smbd nmbd" + +#---------------------------------------------------------------------------- +# Daemons calls: <daemon_name>_<command_option> +#---------------------------------------------------------------------------- +my_service_name="samba" +my_service_PRE="unset TMP TMPDIR" +my_service_POST="" + +#---------------------------------------------------------------------------- +# Daemons calls: <daemon_name>_<command_option> +#---------------------------------------------------------------------------- +smbd_start_options="-D" +smbd_start="start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- ${smbd_start_options}" +smbd_stop="start-stop-daemon --stop --quiet --pidfile /var/run/samba/smbd.pid" +smbd_reload="killall -HUP smbd" + +nmbd_start_options="-D" +nmbd_start="start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- ${nmbd_start_options}" +nmbd_stop="start-stop-daemon --stop --quiet --pidfile /var/run/samba/nmbd.pid" +nmbd_reload="killall -HUP nmbd" + +winbind_start_options="" +winbind_start="start-stop-daemon --start --quiet --exec /usr/sbin/winbindd -- ${winbind_start_options}" +winbind_stop="start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/winbindd" +winbind_reload="killall -HUP winbindd" + diff --git a/net-fs/samba/files/samba-init b/net-fs/samba/files/samba-init new file mode 100644 index 000000000..bdefea63e --- /dev/null +++ b/net-fs/samba/files/samba-init @@ -0,0 +1,53 @@ +#!/sbin/runscript +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/samba-init,v 1.17 2007/09/11 22:55:08 uberlord Exp $ + +opts="reload" + +depend() { + after slapd + need net + use cupsd +} + +DAEMONNAME="${SVCNAME##samba.}" +[ "${DAEMONNAME}" != "samba" ] && daemon_list=${DAEMONNAME} + +signal_do() { + local signal="$1" + [ -z "${signal}" ] && return 0 + + local result=0 last_result=0 daemon= cmd_exec= + for daemon in ${daemon_list} ; do + eval cmd_exec=\$${daemon}_${signal} + if [ -n "${cmd_exec}" ]; then + ebegin "${my_service_name} -> ${signal}: ${daemon}" + #echo ${cmd} '->' ${!cmd} + ${cmd_exec} > /dev/null + last_result=$? + eend ${last_result} + fi + result=$(( ${result} + ${last_result} )) + done + return ${result} +} +start() { + ${my_service_PRE} + signal_do start && return 0 + + eerror "Error: starting services (see system logs)" + signal_do stop + return 1 +} +stop() { + ${my_service_PRE} + if signal_do stop ; then + ${my_service_POST} + return 0 + fi +} +reload() { + ${my_service_PRE} + signal_do reload +} diff --git a/net-fs/samba/files/samba-xinetd b/net-fs/samba/files/samba-xinetd new file mode 100644 index 000000000..a85f5b3ab --- /dev/null +++ b/net-fs/samba/files/samba-xinetd @@ -0,0 +1,12 @@ +# Samba smb service with ipv6 support (for samba3) +# Remember to stop samba service starting smbd before you activate this. +service microsoft-ds +{ + flags = REUSE IPV6 + socket_type = stream + wait = no + user = root + server = /usr/sbin/smbd + log_on_failure += USERID + disable = yes +} diff --git a/net-fs/samba/samba-3.0.33.ebuild b/net-fs/samba/samba-3.0.33.ebuild new file mode 100644 index 000000000..8cb19f775 --- /dev/null +++ b/net-fs/samba/samba-3.0.33.ebuild @@ -0,0 +1,358 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/samba-3.0.33.ebuild,v 1.8 2009/01/04 17:51:15 armin76 Exp $ + +EAPI="2" + +inherit autotools eutils pam python multilib versionator confutils multilib-xlibs + +VSCAN_P="samba-vscan-0.3.6c-beta5" +MY_P=${PN}-${PV/_/} + +DESCRIPTION="A suite of SMB and CIFS client/server programs for UNIX" +HOMEPAGE="http://www.samba.org/" +SRC_URI="mirror://samba/${MY_P}.tar.gz + mirror://samba/old-versions/${MY_P}.tar.gz + oav? ( http://www.openantivirus.org/download/${VSCAN_P}.tar.gz )" +LICENSE="GPL-3 oav? ( GPL-2 LGPL-2.1 )" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc ~sparc-fbsd x86 ~x86-fbsd" +IUSE="acl ads async automount caps cups debug doc examples ipv6 kernel_linux ldap fam + pam python quotas readline selinux swat syslog winbind oav" + +RDEPEND="dev-libs/popt + virtual/libiconv + acl? ( kernel_linux? ( sys-apps/acl ) ) + cups? ( net-print/cups[lib32?] ) + ipv6? ( sys-apps/xinetd ) + ads? ( virtual/krb5 ) + ldap? ( net-nds/openldap ) + pam? ( virtual/pam ) + python? ( dev-lang/python[lib32?] ) + readline? ( sys-libs/readline[lib32?] ) + selinux? ( sec-policy/selinux-samba ) + swat? ( sys-apps/xinetd ) + syslog? ( virtual/logger ) + fam? ( virtual/fam ) + caps? ( sys-libs/libcap[lib32?] ) + lib32? ( fam? ( dev-libs/libgamin[lib32] ) ) + lib32? ( pam? ( sys-libs/pam[lib32] ) )" +DEPEND="${RDEPEND}" + +# Tests are broken now :-( +RESTRICT="test" + +S=${WORKDIR}/${MY_P} +CONFDIR=${FILESDIR}/config +PRIVATE_DST=/var/lib/samba/private + +pkg_setup() { + confutils_use_depend_all ads ldap +} + +src_unpack() { + unpack ${A} + cd "${S}/source" + + # lazyldflags.patch: adds "-Wl,-z,now" to smb{mnt,umount} + # invalid-free-fix.patch: Bug #196015 (upstream: #5021) + + epatch \ + "${FILESDIR}/3.0.26a-lazyldflags.patch" \ + "${FILESDIR}/3.0.26a-invalid-free-fix.patch" \ + "${FILESDIR}/3.0.28-fix_broken_readdir_detection.patch" \ + "${FILESDIR}/3.0.28-autoconf-2.62-fix.patch" \ + "${FILESDIR}/3.0.28a-wrong_python_ldflags.patch" + + eautoconf -I. -Ilib/replace + + # Ok, agreed, this is ugly. But it avoids a patch we + # need for every samba version and we don't need autotools + sed -i \ + -e 's|"lib32" ||' \ + -e 's|if test -d "$i/$l" ;|if test -d "$i/$l" -o -L "$i/$l";|' \ + configure || die "sed failed" + + rm "${S}/docs/manpages"/{mount,umount}.cifs.8 + +} + +src_configure() { :; } + +multilib-xlibs_src_compile_internal() { + cd "${S}/source" + + local myconf + local mylangs + local mymod_shared + + python_version + myconf="--with-python=no" + use python && myconf="--with-python=${python}" + + use winbind && mymod_shared="--with-shared-modules=idmap_rid" + if use ldap ; then + myconf="${myconf} $(use_with ads)" + use winbind && mymod_shared="${mymod_shared},idmap_ad" + fi + + [[ ${CHOST} == *-*bsd* ]] && myconf="${myconf} --disable-pie" + use hppa && myconf="${myconf} --disable-pie" + + use caps && export ac_cv_header_sys_capability_h=yes || export ac_cv_header_sys_capability_h=no + + # Otherwise we get the whole swat stuff installed + if ! use swat ; then + sed -i \ + -e 's/^\(install:.*\)installswat \(.*\)/\1\2/' \ + Makefile.in || die "sed failed" + fi + + econf \ + --with-fhs \ + --sysconfdir=/etc/samba \ + --localstatedir=/var \ + --with-configdir=/etc/samba \ + --with-libdir=/usr/$(get_libdir)/samba \ + --with-pammodulesdir=$(getpam_mod_dir) \ + --with-swatdir=/usr/share/doc/${PF}/swat \ + --with-piddir=/var/run/samba \ + --with-lockdir=/var/cache/samba \ + --with-logfilebase=/var/log/samba \ + --with-privatedir=${PRIVATE_DST} \ + --with-libsmbclient \ + --enable-socket-wrapper \ + --with-cifsmount=no \ + $(use_with acl acl-support) \ + $(use_with async aio-support) \ + $(use_with automount) \ + $(use_enable cups) \ + $(use_enable debug) \ + $(use_enable fam) \ + $(use_with ads krb5) \ + $(use_with ldap) \ + $(use_with pam) $(use_with pam pam_smbpass) \ + $(use_with quotas) $(use_with quotas sys-quotas) \ + $(use_with readline) \ + $(use_with kernel_linux smbmount) \ + $(use_with syslog) \ + $(use_with winbind) \ + ${myconf} ${mylangs} ${mymod_shared} + + emake proto || die "emake proto failed" + emake everything || die "emake everything failed" + + if use python ; then + emake python_ext || die "emake python_ext failed" + fi + + if use oav ; then + # maintainer-info: + # - there are no known releases of mks or kavdc, + # setting to builtin to disable auto-detection + cd "${WORKDIR}/${VSCAN_P}" + econf \ + --with-fhs \ + --with-samba-source="${S}/source" \ + --with-libmksd-builtin \ + --with-libkavdc-builtin \ + --without-symantec \ + --with-filetype \ + --with-fileregexp \ + $(use_enable debug) + emake || die "emake oav plugins failed" + fi +} + +src_test() { + cd "${S}/source" + emake test || die "tests failed" +} + +multilib-xlibs_src_install_internal() { + cd "${S}/source" + + emake DESTDIR="${D}" install-everything || die "emake install-everything failed" + + # Extra rpctorture progs + local extra_bins="rpctorture" + for i in ${extra_bins} ; do + [[ -x "${S}/bin/${i}" ]] && dobin "${S}/bin/${i}" + done + + # remove .old stuff from /usr/bin: + rm -f "${D}"/usr/bin/*.old + + # Removing executable bits from header-files + fperms 644 /usr/include/lib{msrpc,smbclient}.h + + # Nsswitch extensions. Make link for wins and winbind resolvers + if use winbind ; then + dolib.so nsswitch/libnss_wins.so + dosym libnss_wins.so /usr/$(get_libdir)/libnss_wins.so.2 + dolib.so nsswitch/libnss_winbind.so + dosym libnss_winbind.so /usr/$(get_libdir)/libnss_winbind.so.2 + fi + + if use kernel_linux ; then + # Warning: this can byte you if /usr is + # on a separate volume and you have to mount + # a smb volume before the local mount + dosym ../usr/bin/smbmount /sbin/mount.smbfs + fperms 4755 /usr/bin/smbmnt + fperms 4755 /usr/bin/smbumount + fi + + # bug #46389: samba doesn't create symlink anymore + # beaviour seems to be changed in 3.0.6, see bug #61046 + dosym samba/libsmbclient.so /usr/$(get_libdir)/libsmbclient.so.0 + dosym samba/libsmbclient.so /usr/$(get_libdir)/libsmbclient.so + + # make the smb backend symlink for cups printing support (bug #133133) + if use cups ; then + dodir $(cups-config --serverbin)/backend + dosym /usr/bin/smbspool $(cups-config --serverbin)/backend/smb + fi + + if use python ; then + emake DESTDIR="${D}" python_install || die "emake installpython failed" + # We're doing that manually + find "${D}/usr/$(get_libdir)/python${PYVER}/site-packages" -iname "*.pyc" -delete + fi + + cd "${S}/source" + + # General config files + insinto /etc/samba + doins "${CONFDIR}"/{smbusers,lmhosts} + newins "${CONFDIR}/smb.conf.example-samba3" smb.conf.example + + newpamd "${CONFDIR}/samba.pam" samba + use winbind && dopamd "${CONFDIR}/system-auth-winbind" + if use swat ; then + insinto /etc/xinetd.d + newins "${CONFDIR}/swat.xinetd" swat + else + rm -f "${D}/usr/sbin/swat" + rm -f "${D}/usr/share/man/man8/swat.8" + fi + + newinitd "${FILESDIR}/samba-init" samba + newconfd "${FILESDIR}/samba-conf" samba + + if use ldap ; then + insinto /etc/openldap/schema + doins "${S}/examples/LDAP/samba.schema" + fi + + if use ipv6 ; then + insinto /etc/xinetd.d + newins "${FILESDIR}/samba-xinetd" smb + fi + + # dirs + diropts -m0700 ; keepdir "${PRIVATE_DST}" + diropts -m1777 ; keepdir /var/spool/samba + + diropts -m0755 + keepdir /var/{log,run,cache}/samba + keepdir /var/lib/samba/{netlogon,profiles} + keepdir /var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC,X64,IA64,COLOR} + keepdir /usr/$(get_libdir)/samba/{rpc,idmap,auth} + + # docs + dodoc "${FILESDIR}/README.gentoo" + dodoc "${S}"/{MAINTAINERS,README,Roadmap,WHATSNEW.txt} + dodoc "${CONFDIR}/nsswitch.conf-wins" + use winbind && dodoc "${CONFDIR}/nsswitch.conf-winbind" + + if use examples ; then + insinto /usr/share/doc/${PF} + doins -r "${S}/examples/" + find "${D}/usr/share/doc/${PF}" -type d -print0 | xargs -0 chmod 755 + find "${D}/usr/share/doc/${PF}/examples" ! -type d -print0 | xargs -0 chmod 644 + if use python ; then + insinto /usr/share/doc/${PF}/python + doins -r "${S}/source/python/examples" + fi + fi + + if ! use doc ; then + if ! use swat ; then + rm -rf "${D}/usr/share/doc/${PF}/swat" + else + rm -rf "${D}/usr/share/doc/${PF}/swat/help"/{guide,howto,devel} + rm -rf "${D}/usr/share/doc/${PF}/swat/using_samba" + fi + else + cd "${S}/docs" + insinto /usr/share/doc/${PF} + doins *.pdf + doins -r registry + dohtml -r htmldocs/* + fi + + if use oav ; then + cd "${WORKDIR}/${VSCAN_P}" + emake DESTDIR="${D}" install || die "emake install oav plugins failed" + docinto samba-vscan + dodoc AUTHORS ChangeLog FAQ INSTALL NEWS README TODO + find . -iname "*.conf" -print0 | xargs -0 dodoc + fi +} + +pkg_preinst() { + local PRIVATE_SRC=/etc/samba/private + if [[ ! -r "${ROOT}/${PRIVATE_DST}/secrets.tdb" \ + && -r "${ROOT}/${PRIVATE_SRC}/secrets.tdb" ]] ; then + ebegin "Copying "${ROOT}"/${PRIVATE_SRC}/* to ${ROOT}/${PRIVATE_DST}/" + mkdir -p "${D}/${PRIVATE_DST}" + cp -pPRf "${ROOT}/${PRIVATE_SRC}"/* "${D}/${PRIVATE_DST}/" + eend $? + fi + + if [[ ! -f "${ROOT}/etc/samba/smb.conf" ]] ; then + touch "${D}/etc/samba/smb.conf" + fi +} + +multilib-xlibs_pkg_postinst_internal() { + if use python ; then + python_version + python_mod_optimize /usr/$(get_libdir)/python${PYVER}/site-packages/samba + fi + + if use swat ; then + einfo "swat must be enabled by xinetd:" + einfo " change the /etc/xinetd.d/swat configuration" + fi + + if use ipv6 ; then + einfo "ipv6 support must be enabled by xinetd:" + einfo " change the /etc/xinetd.d/smb configuration" + fi + + elog "It is possible to start/stop daemons separately:" + elog " Create a symlink from /etc/init.d/samba.{smbd,nmbd,winbind} to" + elog " /etc/init.d/samba. Calling /etc/init.d/samba directly will start" + elog " the daemons configured in /etc/conf.d/samba" + + elog "The mount/umount.cifs helper applications are not included anymore." + elog "Please install net-fs/mount-cifs instead." + + if use oav ; then + elog "The configure snippets for various antivirus plugins are available here:" + elog " /usr/share/doc/${PF}/samba-vscan" + fi + + ewarn "If you're upgrading from 3.0.24 or earlier, please make sure to" + ewarn "restart your clients to clear any cached information about the server." + ewarn "Otherwise they might not be able to connect to the volumes." +} + +multilib-xlibs_pkg_postrm_internal() { + if use python ; then + python_version + python_mod_cleanup /usr/$(get_libdir)/python${PYVER}/site-packages/samba + fi +} |