From afa2a40b8e491d011d510521f56409aebd467685 Mon Sep 17 00:00:00 2001
From: Michael Hanson <hansonorders@verizon.net>
Date: Thu, 11 Nov 2010 02:08:31 +0000
Subject: samba: update to 3.5.6

---
 abs/extra/samba/PKGBUILD             | 144 +++++++++++++++++++++++++++++++++++
 abs/extra/samba/__changelog          |   2 +
 abs/extra/samba/fix-ipv6-mount.patch |  11 +++
 abs/extra/samba/samba                |  54 +++++++++++++
 abs/extra/samba/samba.conf.d         |   7 ++
 abs/extra/samba/samba.logrotate      |   9 +++
 abs/extra/samba/samba.pam            |   3 +
 abs/extra/samba/swat.xinetd          |  10 +++
 8 files changed, 240 insertions(+)
 create mode 100644 abs/extra/samba/PKGBUILD
 create mode 100644 abs/extra/samba/__changelog
 create mode 100644 abs/extra/samba/fix-ipv6-mount.patch
 create mode 100755 abs/extra/samba/samba
 create mode 100644 abs/extra/samba/samba.conf.d
 create mode 100644 abs/extra/samba/samba.logrotate
 create mode 100644 abs/extra/samba/samba.pam
 create mode 100644 abs/extra/samba/swat.xinetd

diff --git a/abs/extra/samba/PKGBUILD b/abs/extra/samba/PKGBUILD
new file mode 100644
index 0000000..dba70bf
--- /dev/null
+++ b/abs/extra/samba/PKGBUILD
@@ -0,0 +1,144 @@
+# $Id: PKGBUILD 94658 2010-10-09 09:44:15Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org
+# Contributor: judd <jvinet@zeroflux.org>
+pkgbase=samba
+pkgname=('smbclient' 'samba')
+pkgver=3.5.6
+# We use the 'A' to fake out pacman's version comparators.  Samba chooses
+# to append 'a','b',etc to their subsequent releases, which pamcan
+# misconstrues as alpha, beta, etc.  Bad samba!
+_realver=3.5.6
+pkgrel=1
+arch=(i686 x86_64)
+url="http://www.samba.org"
+license=('GPL3')
+makedepends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' 'libcap>=2.16' 'heimdal>=1.2-1' 'pam' 'gnutls>=2.4.1' 'talloc' 'tdb')
+options=(!makeflags)
+source=(http://us1.samba.org/samba/ftp/stable/${pkgbase}-${_realver}.tar.gz
+        samba samba.logrotate 
+        swat.xinetd 
+        samba.pam 
+        samba.conf.d
+        fix-ipv6-mount.patch)
+### UNINSTALL dmapi package before building!!!
+
+build() {
+  cd ${srcdir}/${pkgbase}-${_realver}/source3
+  ./configure --prefix=/usr \
+              --libdir=/usr/lib/ \
+              --localstatedir=/var \
+              --with-configdir=/etc/samba \
+              --with-lockdir=/var/cache/samba \
+              --with-piddir=/var/run/samba \
+              --with-fhs \
+              --with-pam \
+              --with-pam_smbpass \
+              --with-pammodulesdir=/lib/security \
+              --with-ads \
+              --with-acl-support \
+              --with-cifsmount \
+              --with-libsmbclient \
+              --with-syslog \
+              --enable-external-libtalloc \
+              --disable-dnssd \
+              --disable-avahi \
+              --with-cifsumount \
+              --with-shared-modules=idmap_ad,idmap_adex,idmap_rid,idmap_hash \
+              --enable-external-libtdb
+  make || return 1
+}
+
+package_smbclient () {
+pkgdesc="Tools to access a server's filespace and printers via SMB"
+depends=('readline>=6.0.00' 'popt' 'libldap>=2.4.18-1' 'libcap>=2.16' 'heimdal>=1.2-1' 'db>=4.7' 'e2fsprogs' 'tdb' 'talloc')
+  cd ${srcdir}/${pkgbase}-${_realver}/source3
+  mkdir -p ${pkgdir}/usr/bin ${pkgdir}/sbin ${pkgdir}/usr/lib
+  install -m755 bin/{smbclient,rpcclient,smbspool,smbtree,smbcacls,smbcquotas,smbget,net,nmblookup} ${pkgdir}/usr/bin/
+  install -m755 bin/{mount.cifs,umount.cifs} ${pkgdir}/sbin/
+  for i in libnetapi* libwbclient* libsmbclient*;do
+      cp  -a bin/${i}*.so* ${pkgdir}/usr/lib/
+  done
+  install -m755 script/smbtar ${pkgdir}/usr/bin/
+  mkdir -p ${pkgdir}/usr/lib/cups/backend
+  ln -sf /usr/bin/smbspool ${pkgdir}/usr/lib/cups/backend/smb
+  mkdir -p ${pkgdir}/usr/include
+  install -m644 include/libsmbclient.h ${pkgdir}/usr/include/
+  install -m644 lib/netapi/netapi.h ${pkgdir}/usr/include/
+  mkdir -p ${pkgdir}/usr/share/man/man{1,7,8}
+  for man in smbspool \
+      umount.cifs mount.cifs net; do
+      install -m644 ../docs/manpages/${man}.8 ${pkgdir}/usr/share/man/man8/
+  done
+  for man in rpcclient smbcacls smbclient smbcquotas smbget \
+      smbtree smbtar nmblookup; do
+      install -m644 ../docs/manpages/${man}.1 ${pkgdir}/usr/share/man/man1/
+  done
+  install -m644 ../docs/manpages/libsmbclient.7 ${pkgdir}/usr/share/man/man7/
+}
+
+package_samba () {
+pkgdesc="Tools to access a server's filespace and printers via SMB"
+backup=(etc/logrotate.d/samba 
+        etc/pam.d/samba 
+        etc/samba/smb.conf
+        etc/xinetd.d/swat
+        etc/conf.d/samba)
+depends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap>=2.16' 'heimdal>=1.2-1' 'pam' 'gnutls>=2.4.1' 'e2fsprogs' 'tdb' 'talloc')
+  cd ${srcdir}/samba-${_realver}/source3
+  mkdir -p ${pkgdir}/var/log/samba
+  mkdir -p ${pkgdir}/etc/samba/private
+  chmod 700 ${pkgdir}/etc/samba/private
+  make DESTDIR=${pkgdir} install || return 1
+  chmod 644 ${pkgdir}/usr/include/*.h
+  rm -rf ${pkgdir}/usr/var
+  (cd script; cp installbin.sh i; cat i | sed 's/\/sbin\///' > installbin.sh)
+  install -D -m755 ../../samba ${pkgdir}/etc/rc.d/samba
+  install -D -m644 ../../samba.conf.d ${pkgdir}/etc/conf.d/samba
+  mkdir -p ${pkgdir}/etc/samba
+  cat ../examples/smb.conf.default | \
+    sed 's|log file = .*$|log file = /var/log/samba/log.%m|g' >${pkgdir}/etc/samba/smb.conf.default
+  install -D -m644 ../../samba.logrotate ${pkgdir}/etc/logrotate.d/samba
+  install -D -m644 ../../swat.xinetd ${pkgdir}/etc/xinetd.d/swat
+  install -D -m644 ../../samba.pam ${pkgdir}/etc/pam.d/samba
+  # spool directory
+  install -d -m1777 ${pkgdir}/var/spool/samba
+  sed -i 's|/usr/spool/samba|/var/spool/samba|g' ${pkgdir}/etc/samba/smb.conf.default
+  # fix logrotate
+  sed -i -e 's|log.%m|%m.log|g' ${pkgdir}/etc/samba/smb.conf.default
+  # nsswitch libraries
+  install -D -m755 ${srcdir}/samba-${_realver}/nsswitch/libnss_wins.so ${pkgdir}/lib/libnss_wins.so
+  ln -s libnss_wins.so ${pkgdir}/lib/libnss_wins.so.2
+  install -D -m755 ${srcdir}/samba-${_realver}/nsswitch/libnss_winbind.so ${pkgdir}/lib/libnss_winbind.so
+  # remove conflict files of smbclient
+  for man in libsmbclient smbspool \
+      umount.cifs mount.cifs net; do
+      rm -f ${pkgdir}/usr/share/man/man8/${man}.8
+  done
+  for i in libnetapi* libwbclient* libsmbclient*;do
+      rm -f ${pkgdir}/usr/lib/$i
+  done
+  for bin in net \
+      nmblookup rpcclient smbcacls smbclient \
+      smbcquotas smbget smbspool smbtar smbtree; do
+      rm -f ${pkgdir}/usr/bin/$bin
+  done
+  rm -f ${pkgdir}/usr/include/netapi.h
+  for man in rpcclient smbcacls smbclient smbcquotas \
+      smbtree smbtar nmblookup smbget; do
+      rm -f ${pkgdir}/usr/share/man/man1/${man}.1
+  done
+  for man in tdbbackup tdbdump tdbtool; do
+      rm -f ${pkgdir}/usr/share/man/man8/${man}.8
+  done
+  rm -f ${pkgdir}/usr/share/man/man7/libsmbclient.7
+  rm -f ${pkgdir}/usr/include/libsmbclient.h
+  # copy ldap example
+  install -D -m644 ${srcdir}/samba-${_realver}/examples/LDAP/samba.schema ${pkgdir}/usr/share/doc/samba/examples/LDAP/samba.schema
+}
+md5sums=('bf6c09ea497a166df8bd672db1d8da8f'
+         '891b9be03e7adf65c9a00319c76d33e5'
+         '5697da77590ec092cc8a883bae06093c'
+         'a4bbfa39fee95bba2e7ad6b535fae7e6'
+         '96f82c38f3f540b53f3e5144900acf17'
+         'f2f2e348acd1ccb566e95fa8a561b828'
+         'c6a38a8c8fa24979e6217aed533358ea')
diff --git a/abs/extra/samba/__changelog b/abs/extra/samba/__changelog
new file mode 100644
index 0000000..24743b6
--- /dev/null
+++ b/abs/extra/samba/__changelog
@@ -0,0 +1,2 @@
+remove fam support
+update to 3.5.6
diff --git a/abs/extra/samba/fix-ipv6-mount.patch b/abs/extra/samba/fix-ipv6-mount.patch
new file mode 100644
index 0000000..89bef65
--- /dev/null
+++ b/abs/extra/samba/fix-ipv6-mount.patch
@@ -0,0 +1,11 @@
+--- client/mount.cifs.c.orig	2010-03-03 13:42:02.143936727 +1000
++++ client/mount.cifs.c	2010-03-04 01:53:22.752879004 +1000
+@@ -1563,7 +1563,7 @@
+ 		}
+ 	}
+
+-	if (addr->ai_addr->sa_family == AF_INET6 && addr6->sin6_scope_id) {
++	if (addr && addr->ai_addr->sa_family == AF_INET6 && addr6->sin6_scope_id) {
+ 		strlcat(options, "%", options_size);
+ 		current_len = strnlen(options, options_size);
+ 		optionstail = options + current_len; 
diff --git a/abs/extra/samba/samba b/abs/extra/samba/samba
new file mode 100755
index 0000000..1b222d6
--- /dev/null
+++ b/abs/extra/samba/samba
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/samba ] && . /etc/conf.d/samba
+
+[ -z "$SAMBA_DAEMONS" ] && SAMBA_DAEMONS=(smbd nmbd)
+
+case "$1" in
+	start)
+		rc=0
+		stat_busy "Starting Samba Server"
+		if [ ! -x /var/run/samba ] ; then
+			install -m755 -g 81 -o 81 -d /var/run/samba
+		fi
+		for d in ${SAMBA_DAEMONS[@]}; do
+			PID=`pidof -o %PPID /usr/sbin/$d`
+			[ -z "$PID" ] && /usr/sbin/$d -D
+			rc=$(($rc+$?))
+		done
+		if [ $rc -gt 0 ]; then
+			stat_fail
+		else
+			add_daemon samba
+			stat_done
+		fi
+	;;
+	stop)
+		rc=0
+		stat_busy "Stopping Samba Server"
+		for d in ${SAMBA_DAEMONS[@]}; do
+			PID=`pidof -o %PPID /usr/sbin/$d`
+			[ -z "$PID" ] || kill $PID &> /dev/null
+			rc=$(($rc+$?))
+		done
+		if [ $rc -gt 0 ]; then
+			stat_fail
+		else
+			rm /var/run/samba/smbd.pid &>/dev/null
+			rm /var/run/samba/nmbd.pid &>/dev/null
+			rm /var/run/samba/winbindd.pid &>/dev/null
+			rm_daemon samba
+			stat_done
+		fi
+	;;
+	restart)
+		$0 stop
+		sleep 1
+		$0 start
+	;;
+	*)
+		echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/extra/samba/samba.conf.d b/abs/extra/samba/samba.conf.d
new file mode 100644
index 0000000..8721f95
--- /dev/null
+++ b/abs/extra/samba/samba.conf.d
@@ -0,0 +1,7 @@
+#
+# Configuration for the samba init script
+#
+
+# space separated list of daemons to launch
+SAMBA_DAEMONS=(smbd nmbd)
+#SAMBA_DAEMONS=(smbd nmbd winbindd)
diff --git a/abs/extra/samba/samba.logrotate b/abs/extra/samba/samba.logrotate
new file mode 100644
index 0000000..581f4c3
--- /dev/null
+++ b/abs/extra/samba/samba.logrotate
@@ -0,0 +1,9 @@
+/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log {
+   notifempty
+   missingok
+   sharedscripts
+   copytruncate
+   postrotate
+      /bin/kill -HUP `cat /var/run/samba/*.pid 2>/dev/null` 2>/dev/null || true
+   endscript
+}
diff --git a/abs/extra/samba/samba.pam b/abs/extra/samba/samba.pam
new file mode 100644
index 0000000..53724d1
--- /dev/null
+++ b/abs/extra/samba/samba.pam
@@ -0,0 +1,3 @@
+auth		required	pam_unix.so
+account		required	pam_unix.so
+session		required	pam_unix.so
diff --git a/abs/extra/samba/swat.xinetd b/abs/extra/samba/swat.xinetd
new file mode 100644
index 0000000..2e62a82
--- /dev/null
+++ b/abs/extra/samba/swat.xinetd
@@ -0,0 +1,10 @@
+service swat
+{
+        socket_type             = stream
+        wait                    = no
+        user                    = root
+        server                  = /usr/sbin/swat
+        log_on_success  += HOST DURATION
+        log_on_failure  += HOST
+        disable                 = yes
+}
-- 
cgit v0.12

