bug #73943: CAN-2004-1154: Integer overflow for samba 2.x, 3.x<=3.0.9
authorChristian Andreetta <satya@gentoo.org>
Fri, 17 Dec 2004 08:57:27 +0000 (08:57 +0000)
committerChristian Andreetta <satya@gentoo.org>
Fri, 17 Dec 2004 08:57:27 +0000 (08:57 +0000)
net-fs/samba/ChangeLog
net-fs/samba/Manifest
net-fs/samba/files/digest-samba-3.0.9-r1 [new file with mode: 0644]
net-fs/samba/files/samba-3.0.9-util.c-bitpmap.c-4120.patch [new file with mode: 0644]
net-fs/samba/samba-3.0.9-r1.ebuild [new file with mode: 0644]

index f0739251296bddd6237cb56c7483b5738dd84e9c..fa3c24030be5cd6de916badbdbfee08fb7b1f35b 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for net-fs/samba
 # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/ChangeLog,v 1.135 2004/11/29 18:05:23 satya Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/ChangeLog,v 1.136 2004/12/17 08:57:27 satya Exp $
+
+*samba-3.0.9-r1 (17 Dec 2004)
+
+  17 Dec 2004; Christian Andreetta <satya@gentoo.org>
+  +files/samba-3.0.9-util.c-bitpmap.c-4120.patch, +samba-3.0.9-r1.ebuild:
+  bug #73943: CAN-2004-1154: Integer overflow for samba 2.x, 3.x<=3.0.9
 
   29 Nov 2004; Christian Andreetta <satya@gentoo.org> samba-3.0.9.ebuild:
   more masked archs added
index 35eca90f86c49a1d9e62007d2a10d0d20bedf49a..83a6a1f97c5370d4cbf980662474547c52160150 100644 (file)
@@ -3,8 +3,9 @@ MD5 9b192ecc1db0a52318a676e8c03d4ac2 samba-3.0.7-r1.ebuild 15395
 MD5 cd9f3589a14d50054a0b1e4e129602af samba-3.0.6-r4.ebuild 14203
 MD5 7ad9048a4062a3c8ce96af16abb18e4c samba-3.0.9.ebuild 16191
 MD5 fc36819e4e02fa146e936aa31947ad27 samba-3.0.6-r3.ebuild 14226
+MD5 1c93ffe2bc210fbeee7fa52a1fb5cb5c samba-3.0.9-r1.ebuild 16373
 MD5 826ef7c1a083b2b7f564dc5198072698 samba-3.0.8.ebuild 16812
-MD5 c5c42e503b7d1f48801b9bc1ebf3832f ChangeLog 24705
+MD5 d43fe1fd8a7597e75981dd1bc08abc8d ChangeLog 24937
 MD5 41299f246433a1a55c8fccc77ccd709e metadata.xml 491
 MD5 7c1f458c46d453971ac7ca85c290f7a3 samba-3.0.8-r1.ebuild 17126
 MD5 fcebd975211fecf647f6cecf26ba5c96 files/samba-3.0.4.patch 8086
@@ -37,6 +38,7 @@ MD5 8c114eb3ebe56e7adb7db9381bea62db files/digest-samba-3.0.6-r3 203
 MD5 8c114eb3ebe56e7adb7db9381bea62db files/digest-samba-3.0.6-r4 203
 MD5 a6cb7ea67d2a4fa00cb2d5dba0710cc3 files/digest-samba-3.0.7-r1 203
 MD5 94d8eb813ea041a79ee00914c5052b3f files/digest-samba-3.0.8-r1 205
+MD5 5933e87f1c72bc7a29a1ea4073b49441 files/digest-samba-3.0.9-r1 284
 MD5 9560b7e29d3a65db029fc1800e84abcc files/samba-pdb_ldap-exop.patch 3921
 MD5 3685eadb817d185b06476eca6c0c15c4 files/smbusers 204
 MD5 09195dd8ab25ce77ac51c0c05b4ab93c files/system-auth-winbind 869
@@ -46,6 +48,7 @@ MD5 990fe15ff8a0e79f39069fff6475536d files/samba-3.0.2a-smbprint.patch 1224
 MD5 b836e258befae9d6c66cb3f158769b25 files/samba-3.0.6-libdirsymlink.patch 592
 MD5 6acf6a5e92ff2cfc5f09b88f5d01b63e files/samba-svc 975
 MD5 b6cdc1468e45f92f19873e0c6c5b6e94 files/samba.pam 332
+MD5 48bea6e2bb73a2b7ce286bedefae3011 files/samba-3.0.9-util.c-bitpmap.c-4120.patch 1872
 MD5 de43ff30dd5f1431590fd62a997e71b4 files/samba-3.0.4-python-setup.patch 833
 MD5 fcebd975211fecf647f6cecf26ba5c96 files/samba-3.0.x.patch 8086
 MD5 8289eda694b35875eec6df5cc3f50c86 files/samba-2.2.6-libresolv.patch 540
diff --git a/net-fs/samba/files/digest-samba-3.0.9-r1 b/net-fs/samba/files/digest-samba-3.0.9-r1
new file mode 100644 (file)
index 0000000..d2d7a20
--- /dev/null
@@ -0,0 +1,4 @@
+MD5 9cf2bcef71509a81687dec8732545400 samba-3.0.9.tar.gz 15172821
+MD5 d58ab9466d80c901c11e66435500ea33 samba-3.0.9-CAN-2004-1154.patch.bz2 68999
+MD5 5f173d549014985d681478897135915b samba-vscan-0.3.5.tar.bz2 161982
+MD5 63abfa7c522c8fb37e1d2e2fb9d422ab smbldap-tools-0.8.5-3.tgz 275520
diff --git a/net-fs/samba/files/samba-3.0.9-util.c-bitpmap.c-4120.patch b/net-fs/samba/files/samba-3.0.9-util.c-bitpmap.c-4120.patch
new file mode 100644 (file)
index 0000000..41b4189
--- /dev/null
@@ -0,0 +1,68 @@
+Index: branches/SAMBA_3_0/source/lib/util.c
+===================================================================
+--- branches/SAMBA_3_0/source/lib/util.c       (revision 4119)
++++ branches/SAMBA_3_0/source/lib/util.c       (revision 4120)
+@@ -867,9 +867,7 @@
+ void *malloc_(size_t size)
+ {
+ #undef malloc
+-      /* If we don't add an amount here the glibc memset seems to write
+-         one byte over. */
+-      return malloc(size+16);
++      return malloc(size);
+ #define malloc(s) __ERROR_DONT_USE_MALLOC_DIRECTLY
+ }
+ 
+@@ -880,9 +878,7 @@
+ static void *calloc_(size_t count, size_t size)
+ {
+ #undef calloc
+-      /* If we don't add an amount here the glibc memset seems to write
+-         one byte over. */
+-      return calloc(count+1, size);
++      return calloc(count, size);
+ #define calloc(n,s) __ERROR_DONT_USE_CALLOC_DIRECTLY
+ }
+ 
+@@ -893,9 +889,7 @@
+ static void *realloc_(void *ptr, size_t size)
+ {
+ #undef realloc
+-      /* If we don't add an amount here the glibc memset seems to write
+-         one byte over. */
+-      return realloc(ptr, size+16);
++      return realloc(ptr, size);
+ #define realloc(p,s) __ERROR_DONT_USE_RELLOC_DIRECTLY
+ }
+ 
+Index: branches/SAMBA_3_0/source/lib/bitmap.c
+===================================================================
+--- branches/SAMBA_3_0/source/lib/bitmap.c     (revision 4119)
++++ branches/SAMBA_3_0/source/lib/bitmap.c     (revision 4120)
+@@ -41,7 +41,7 @@
+               return NULL;
+       }
+ 
+-      memset(bm->b, 0, sizeof(bm->b[0])*(n+31)/32);
++      memset(bm->b, 0, sizeof(uint32)*((n+31)/32));
+ 
+       return bm;
+ }
+@@ -78,7 +78,7 @@
+               return NULL;
+       }
+ 
+-      memset(bm->b, 0, sizeof(bm->b[0])*(n+31)/32);
++      memset(bm->b, 0, sizeof(uint32)*((n+31)/32));
+ 
+       return bm;
+ }
+@@ -92,7 +92,7 @@
+         int count = MIN(dst->n, src->n);
+ 
+         SMB_ASSERT(dst->b != src->b);
+-      memcpy(dst->b, src->b, sizeof(dst->b[0])*(count+31)/32);
++      memcpy(dst->b, src->b, sizeof(uint32)*((count+31)/32));
+ 
+         return count;
+ }
diff --git a/net-fs/samba/samba-3.0.9-r1.ebuild b/net-fs/samba/samba-3.0.9-r1.ebuild
new file mode 100644 (file)
index 0000000..d272fd4
--- /dev/null
@@ -0,0 +1,400 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/samba-3.0.9-r1.ebuild,v 1.1 2004/12/17 08:57:27 satya Exp $
+
+inherit eutils flag-o-matic
+#---------------------------------------------------------------------------
+IUSE="acl cups doc kerberos ldap mysql pam postgres python quotas readline winbind xml xml2"
+IUSE="${IUSE} libclamav oav"
+IUSE="${IUSE} selinux"
+#---------------------------------------------------------------------------
+DESCRIPTION="SAMBA is a suite of SMB and CIFS client/server programs for UNIX"
+HOMEPAGE="http://www.samba.org/
+       http://www.openantivirus.org/projects.php
+       http://samba.idealx.org"
+#---------------------------------------------------------------------------
+SMBLDAP_TOOLS_VER=0.8.5
+VSCAN_VER=0.3.5
+# all vscan modules are being installed
+#VSCAN_MODS="oav sophos fprotd fsav trend icap mksd kavp clamav nai" 
+#---------------------------------------------------------------------------
+_CVS="-${PV/_/}"
+S=${WORKDIR}/${PN}${_CVS}
+#---------------------------------------------------------------------------
+SRC_URI="mirror://samba/${PN}${_CVS}.tar.gz
+       http://www.gentoo.org/~satya/packages/samba/samba-3.0.9-CAN-2004-1154.patch.bz2
+       oav? mirror://sourceforge/openantivirus/${PN}-vscan-${VSCAN_VER}.tar.bz2
+       ldap? http://samba.idealx.org/dist/smbldap-tools-${SMBLDAP_TOOLS_VER}-3.tgz"
+#---------------------------------------------------------------------------
+_COMMON_DEPS="dev-libs/popt
+       readline? sys-libs/readline
+       ldap? ( kerberos? ( virtual/krb5 ) )
+       mysql? ( dev-db/mysql sys-libs/zlib )
+       postgres? ( dev-db/postgresql sys-libs/zlib )
+       xml? ( dev-libs/libxml2 sys-libs/zlib )
+       xml2? ( dev-libs/libxml2 sys-libs/zlib )
+       acl? sys-apps/acl
+       cups? net-print/cups
+       ldap? ( net-nds/openldap dev-perl/Crypt-SmbHash )
+       pam? sys-libs/pam
+       python? dev-lang/python"
+DEPEND="sys-devel/autoconf
+       >=sys-apps/sed-4
+       ${_COMMON_DEPS}"
+#IDEALX scripts are now using Net::LDAP
+#selinux: bug #62907
+RDEPEND="ldap? dev-perl/perl-ldap ${_COMMON_DEPS}
+       selinux? ( sec-policy/selinux-samba )"
+#---------------------------------------------------------------------------
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 s390 sparc x86"
+#===========================================================================
+pkg_setup() {
+       ewarn "2004-11: new ebuild flags:"
+       ewarn "    quotas:    now disabled by default"
+       ewarn "    winbind:   now disabled by default"
+       ewarn "    libclamav: (oav) don't use clamav daemon, just load libraries when needed"
+       ewarn "/etc/samba/private moved to /var/lib/samba/private"
+       ebeep
+       epause
+       local PRIVATEDIR=/var/lib/samba/private
+       local PRIVATE_SRC=/etc/samba/private
+       if [[ ! -r ${PRIVATEDIR}/secrets.tdb && -r ${PRIVATE_SRC}/secrets.tdb ]]; then
+               einfo "Copying ${PRIVATE_SRC}/* to ${PRIVATEDIR}/"
+               cp -af ${PRIVATE_SRC}/* ${D}${PRIVATEDIR}/
+       fi
+}
+#===========================================================================
+src_unpack() {
+       local i
+       unpack ${A} || die
+       cd ${S} || die
+       # Clean up CVS ---------------------------------------------------------
+       find . -name .cvsignore | xargs rm -f
+       find . -name CVS | xargs rm -rf
+       # Add patch(es) --------------------------------------------------------
+       epatch ${FILESDIR}/samba-3.0.x-python-setup.patch || die
+       epatch ${DISTDIR}/samba-3.0.9-CAN-2004-1154.patch.bz2 || die
+       epatch ${FILESDIR}/samba-3.0.9-*.patch || die
+       #bug #44743 ------------------------------------------------------------
+       if [ ${ARCH} = "amd64" -o ${ARCH} = "ppc" -o ${ARCH} = "ppc64" ]; then
+               cd ${S} && epatch ${FILESDIR}/samba-3.0.x-smbumount-uid32.patch
+       fi
+       #Fix for bug #27858 ----------------------------------------------------
+       if [ ${ARCH} = "sparc" -o ${ARCH} = "ppc" -o ${ARCH} = "ppc64" ]; then
+               cd ${S}/source/include && epatch ${FILESDIR}/samba-2.2.8-statfs.patch
+       fi
+       #Bug #36200; sys-kernel/linux-headers dependent ------------------------
+       sed -i -e 's:#define LINUX_QUOTAS_2:#define LINUX_QUOTAS_1:' \
+               -e 's:<linux/quota.h>:<sys/quota.h>:' \
+               ${S}/source/smbd/quotas.c
+       #amd64 lib location is not lib32 nor lib -------------------------------
+       cd ${S} || die
+       use amd64 && epatch ${FILESDIR}/samba-3.0.x-libdirsymlink.patch
+       # examples: to be copied as docs ---------------------------------------
+       rm -rf ${S}/examples.ORIG
+       cp -a ${S}/examples ${S}/examples.ORIG
+       # Prep samba-vscan source.
+       if use oav ; then
+               cd ${WORKDIR}/${PN}-vscan-${VSCAN_VER}
+               epatch ${FILESDIR}/vscan-${VSCAN_VER}-libclamav.patch
+               cp -a ${WORKDIR}/${PN}-vscan-${VSCAN_VER} ${S}/examples/VFS
+       fi
+       #-----------------------------------------------------------------------
+       cd ${S}/source
+       echo "Running autoconf ..."
+       autoconf || die
+}
+#===========================================================================
+my_configure() {
+       local myconf="$1"
+       #-----------------------------------------------------------------------
+       for info_var in myconf CFLAGS LDFLAGS; do
+               einfo "${info_var} is: ${!info_var}"
+       done
+       #-----------------------------------------------------------------------
+       #default_{static,shared}_modules|source/configure
+       cd ${S}/source
+       econf \
+               --prefix=/usr \
+               --libdir=/usr/lib/samba \
+               --with-libdir=/usr/lib/samba \
+               --with-swatdir=/usr/share/doc/${PF}/swat \
+               --localstatedir=/var \
+               --with-piddir=/var/run/samba \
+               --with-lockdir=/var/cache/samba \
+               --with-logfilebase=/var/log/samba \
+               --sysconfdir=/etc/samba \
+               --with-configdir=/etc/samba \
+               --with-privatedir=/var/lib/samba/private \
+               \
+               --enable-static \
+               --enable-shared \
+               --with-manpages-langs=en \
+               --without-spinlocks \
+               --with-libsmbclient \
+               --with-automount \
+               --with-smbmount \
+               --with-syslog \
+               --with-idmap \
+               --host=${CHOST} \
+               ${myconf} || die
+       # Show install dirs ----------------------------------------------------
+       einfo "Dir conf:"
+       emake showlayout
+       # serialized headers make ----------------------------------------------
+       make proto
+}
+#===========================================================================
+src_compile() {
+       local myconf
+       local mymods
+       #mymods="nisplussam" #this is deprecated...
+       #-----------------------------------------------------------------------
+       use xml || use xml2 && mymods="xml,${mymods}"
+       use mysql && mymods="mysql,${mymods}"
+       use postgres && mymods="pgsql,${mymods}"
+       [ -n "${mymods}" ] && myconf="--with-expsam=${mymods}"
+       use acl \
+               && myconf="${myconf} --with-acl-support" \
+               || myconf="${myconf} --without-acl-support"
+       use pam \
+               && myconf="${myconf} --with-pam --with-pam_smbpass" \
+               || myconf="${myconf} --without-pam --without-pam_smbpass"
+       use cups \
+               && myconf="${myconf} --enable-cups" \
+               || myconf="${myconf} --disable-cups"
+       use ldap \
+               && myconf="${myconf} --with-ldap" \
+               || myconf="${myconf} --without-ldap"
+       #this is for old samba 2.x compat
+       #myconf="${myconf} --with-ldapsam"
+       myconf="${myconf} --without-ldapsam"
+       use quotas \
+               && myconf="${myconf} --with-quotas --with-sys-quotas" \
+               || myconf="${myconf} --without-quotas --without-sys-quotas"
+       use winbind \
+               && myconf="${myconf} --with-winbind" \
+               || myconf="${myconf} --without-winbind"
+       use python \
+               && myconf="${myconf} --with-python=yes" \
+               || myconf="${myconf} --with-python=no"
+       use readline \
+               && myconf="${myconf} --with-readline" \
+               || myconf="${myconf} --without-readline"
+       #-----------------------------------------------------------------------
+       # Removing: bug #64815 states that ads in amd64 is now ok
+       ###if [ "${ARCH}" != "amd64" ]; then
+       ###     use kerberos && use ldap \
+       ###             && myconf="${myconf} --with-ads" \
+       ###             || myconf="${myconf} --without-ads"
+       ###else
+       ###     myconf="${myconf} --without-ads"
+       ###fi
+       use kerberos && use ldap \
+               && myconf="${myconf} --with-ads" \
+               || myconf="${myconf} --without-ads"
+       #-----------------------------------------------------------------------
+       append-ldflags -L/usr/$(get_libdir) # lib64 location
+       # CONFIGURE ------------------------------------------------------------
+       my_configure "${myconf}"
+       # Compile main SAMBA pieces --------------------------------------------
+       einfo "make everything" && emake everything || die "SAMBA make everything error"
+       einfo "make rpctorture" && emake rpctorture || ewarn "rpctorture didn't build"
+       # build smbget ---------------------------------------------------------
+       einfo "smbget"
+       emake bin/smbget; assert "smbget compile error"
+       # Build selected samba-vscan plugins -----------------------------------
+       if use oav; then
+               cd ${S}/examples/VFS/${PN}-vscan-${VSCAN_VER}
+               my_conf="--prefix=/usr --libdir=/usr/lib/samba"
+               use libclamav && my_conf="${my_conf} --with-libclamav"
+               ./configure ${my_conf}
+               assert "bad ${PN}-vscan-${VSCAN_VER} ./configure"
+               emake # ${VSCAN_MODS}
+       fi
+       # SUID configure -------------------------------------------------------
+       append-ldflags -Wl,-z,now # lib preload
+       my_configure "${myconf}"
+       # SUID compile ---------------------------------------------------------
+       for file in smbmnt smbumount; do
+               einfo "LD: BIND_NOW: bin/${file}"
+               rm -f bin/${file}
+               emake bin/${file} || die "LD: BIND_NOW: bin/${file} compile error"
+       done
+       for file in mount.cifs; do
+               einfo "LD: BIND_NOW: bin/${file}"
+               gcc ${CFLAGS} ${LDFLAGS} client/${file}.c -o bin/${file} || die "LD: BIND_NOW: bin/${file} compile error"
+       done
+       LDFLAGS=${LDFLAGS/-Wl,-z,now/} #lib preload change must affect suid only!
+}
+#===========================================================================
+src_install() {
+       local i #for cicles
+       local extra_bins="debug2html smbfilter talloctort mount.cifs smbget"
+       #smbsh editreg
+       extra_bins="${extra_bins} smbtorture msgtest masktest locktest \
+               locktest2 nsstest vfstest rpctorture"
+       # ----------------------------------------------------------------------
+       cd ${S}/source
+       make DESTDIR=${D} install-everything
+       # Extra binary files, testing/torture progs ----------------------------
+       exeinto /usr/bin
+       for i in ${extra_bins}; do
+               [ -x ${S}/source/bin/${i} ] && doexe ${S}/source/bin/${i} && \
+               einfo "Extra binaries: ${i}"
+       done
+       # Installing these setuid-root allows users to (un)mount smbfs/cifs ----
+       for i in /usr/bin/smbumount /usr/bin/smbmnt /usr/bin/mount.cifs; do
+               fperms 4111 ${i} || die "No perms: ${i}"
+               einfo "suid: ${i}"
+       done
+       # Nsswitch extensions. Make link for wins and winbind resolvers --------
+       exeinto /lib
+       doexe ${S}/source/nsswitch/libnss_wins.so
+       ( cd ${D}/lib; ln -s libnss_wins.so libnss_wins.so.2 )
+       if use winbind; then
+               doexe ${S}/source/nsswitch/libnss_winbind.so
+               ( cd ${D}/lib; ln -s libnss_winbind.so libnss_winbind.so.2 )
+               exeinto /lib/security && doexe ${S}/source/nsswitch/pam_winbind.so
+       fi
+       exeinto /lib/security
+       use pam && doexe ${S}/source/bin/pam_smbpass.so
+       # mount backend --------------------------------------------------------
+       dodir /sbin
+       dosym ../usr/bin/smbmount /sbin/mount.smbfs
+       dosym ../usr/bin/mount.cifs /sbin/mount.cifs
+       # bug #46389: samba doesn't create symlink anymore
+       # beaviour seems to be changed in 3.0.6, see bug #61046 
+       dosym /usr/lib/samba/libsmbclient.so /usr/lib/libsmbclient.so.0
+       dosym /usr/lib/samba/libsmbclient.so /usr/lib/libsmbclient.so
+       # make the smb backend symlink for cups printing support..
+       if use cups; then
+               dodir /usr/lib/cups/backend
+               dosym /usr/bin/smbspool /usr/lib/cups/backend/smb
+       fi
+       # Install IDEALX scripts for LDAP backend administration ---------------
+       if use ldap; then
+               # corrections as per bug #41796
+               cd ${WORKDIR}/smbldap-tools-${SMBLDAP_TOOLS_VER}
+               exeinto /usr/share/samba/scripts; doexe smbldap-*
+               exeinto /etc/samba ; doexe smbldap_tools.pm
+               insinto /etc/smbldap-tools ; doins *.conf
+               fperms 644 /etc/smbldap-tools/smbldap.conf
+               fperms 600 /etc/smbldap-tools/smbldap_bind.conf
+               eval `perl '-V:installarchlib'`
+               dodir ${installarchlib}
+               #dosym /etc/samba/smbldap_conf.pm ${installarchlib}
+               #dosym /etc/samba/smbldap_conf.pm /usr/share/samba/scripts
+               dosym /etc/samba/smbldap_tools.pm ${installarchlib}
+               dosym /etc/samba/smbldap_tools.pm /usr/share/samba/scripts
+               if [ -f mkntpwd/mkntpwd ]; then
+                       exeinto /usr/sbin ; doexe mkntpwd/mkntpwd
+               fi
+       fi
+       # VFS plugin modules ---------------------------------------------------
+       if use oav; then
+               #exeinto /usr/lib/samba/vfs
+               #doexe ${S}/examples/VFS/${PN}-vscan-${VSCAN_VER}/vscan-*.so
+               cd ${S}/examples/VFS/${PN}-vscan-${VSCAN_VER}
+               make install DESTDIR=${D} || die "VFS: vscan error"
+               insinto /etc/samba
+               doins ${S}/examples/VFS/${PN}-vscan-${VSCAN_VER}/openantivirus/*conf
+       fi
+       # Python extensions ----------------------------------------------------
+       if use python; then
+               cd ${S}/source
+               python python/setup.py install --root=${D} || die
+       fi
+       # General config files -------------------------------------------------
+       insinto /etc/samba
+       touch ${D}/etc/samba/smb.conf
+       doins ${FILESDIR}/smbusers
+       newins ${FILESDIR}/smb.conf.example-samba3.gz smb.conf.example.gz
+       doins ${FILESDIR}/lmhosts
+       #doins ${FILESDIR}/recycle.conf #obsolete: see bug #68315
+       insinto /etc/pam.d
+       newins ${FILESDIR}/samba.pam samba
+       use winbind && doins ${FILESDIR}/system-auth-winbind
+       insinto /etc/xinetd.d
+       newins ${FILESDIR}/swat.xinetd swat
+       exeinto /etc/init.d; newexe ${FILESDIR}/samba-init samba
+       insinto /etc/conf.d; newins ${FILESDIR}/samba-conf samba
+       if use ldap; then
+               insinto /etc/openldap/schema
+               doins ${S}/examples/LDAP/samba.schema
+       fi
+       # dirs -----------------------------------------------------------------
+       diropts -m0700
+       local PRIVATE_DST=/var/lib/samba/private
+       dodir ${PRIVATE_DST}
+       touch ${D}${PRIVATE_DST}/.keep
+       diropts -m1777
+       dodir /var/spool/samba
+       touch ${D}/var/spool/samba/.keep
+       diropts -m0755
+       dodir /var/{log,run,cache}/samba
+       dodir /var/lib/samba/{netlogon,profiles}
+       dodir /var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC}
+       touch ${D}/var/{log,run,cache}/samba/.keep
+       touch ${D}/var/lib/samba/{netlogon,profiles}/.keep
+       touch ${D}/var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC}/.keep
+       # docs -----------------------------------------------------------------
+       docinto ""
+       dodoc ${S}/COPYING ${S}/Manifest ${S}/README ${S}/Roadmap ${S}/WHATSNEW.txt
+       docinto examples
+       dodoc ${FILESDIR}/nsswitch.conf-wins
+       use winbind && dodoc ${FILESDIR}/nsswitch.conf-winbind
+       cp -a ${S}/examples.ORIG/* ${D}/usr/share/doc/${PF}/examples
+       if use oav; then
+               docinto ${PN}-vscan-${VSCAN_VER}
+               cd ${WORKDIR}/${PN}-vscan-${VSCAN_VER}
+               dodoc AUTHORS COPYING ChangeLog FAQ INSTALL NEWS README TODO
+               dodoc */*.conf
+       fi
+       if use ldap; then
+               docinto smbldap-tools-${SMBLDAP_TOOLS_VER}
+               cd ${WORKDIR}/smbldap-tools-${SMBLDAP_TOOLS_VER}
+               dodoc CONTRIBUTORS COPYING ChangeLog FILES INFRA INSTALL README TODO
+       fi
+       if ! use doc; then
+               rm -rf ${D}/usr/share/doc/${PF}/swat/help/{guide,howto,devel}
+               rm -rf ${D}/usr/share/doc/${PF}/swat/using_samba
+       fi
+       # moving manpages ------------------------------------------------------
+       mv ${D}/usr/man ${D}/usr/share/man
+}
+#===========================================================================
+pkg_postinst() {
+       # touch /etc/samba/smb.conf so that people installing samba just
+       # to mount smb shares don't get annoying warnings all the time..
+       #[ ! -e ${ROOT}/etc/samba/smb.conf ] && touch ${ROOT}/etc/samba/smb.conf
+
+       ewarn ""
+       ewarn "If you are upgrading from a Samba version prior to 3.0.2, and you"
+       ewarn "use Samba's password database, you must run the following command:"
+       ewarn ""
+       ewarn "  pdbedit --force-initialized-passwords"
+       ewarn ""
+       ewarn "2004-09: LIBs flags changes for suid bins: LDFLAGS+='-Wl,-z,now'"
+       if use winbind; then
+               ewarn "         3.0.7: param: 'winbind enable local accounts' is now"
+               ewarn "                       disabled by default"
+       fi
+       ewarn "2004-11: /etc/samba/private moved to /var/lib/samba/private "
+       ewarn "            for better File System Hierarchy adeherence"
+       ewarn ""
+       einfo "If you experience client locks in file transfers _only_, try the parameter"
+       einfo "         use sendfile = no (man smb.conf(5), man sendfile(2))"
+       einfo "There also seem some problems with the smbfs implementation of the recent 2.6.x kernels"
+       einfo "If you experience problems (lockups) with smbfs, try cifs as an alternative"
+       einfo ""
+       if use ldap; then
+               ewarn "If you are upgrading from prior to 3.0.2, and you are using LDAP"
+               ewarn "    for Samba authentication, you must check the sambaPwdLastSet"
+               ewarn "    attribute on all accounts, and ensure it is not 0."
+               einfo ""
+       fi
+}
+