From 6a6bf2e22e2e9296dec9d1658ee677c3cb25e5fe Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Tue, 7 Aug 2012 15:47:56 -0500
Subject: samba 3.6.6

---
 abs/extra/samba/PKGBUILD             | 112 +++++++++++++++++++++--------------
 abs/extra/samba/__changelog          |   5 +-
 abs/extra/samba/fix-ipv6-mount.patch |  11 ----
 abs/extra/samba/nmbd.service         |   8 +++
 abs/extra/samba/samba                |  12 ++--
 abs/extra/samba/samba.conf           |   1 +
 abs/extra/samba/samba.install        |   7 +++
 abs/extra/samba/samba.logrotate      |   9 ---
 abs/extra/samba/smbd.service         |   9 +++
 abs/extra/samba/winbindd.service     |   9 +++
 10 files changed, 109 insertions(+), 74 deletions(-)
 delete mode 100644 abs/extra/samba/fix-ipv6-mount.patch
 create mode 100644 abs/extra/samba/nmbd.service
 create mode 100644 abs/extra/samba/samba.conf
 create mode 100644 abs/extra/samba/samba.install
 delete mode 100644 abs/extra/samba/samba.logrotate
 create mode 100644 abs/extra/samba/smbd.service
 create mode 100644 abs/extra/samba/winbindd.service

diff --git a/abs/extra/samba/PKGBUILD b/abs/extra/samba/PKGBUILD
index eced810..63d943d 100644
--- a/abs/extra/samba/PKGBUILD
+++ b/abs/extra/samba/PKGBUILD
@@ -1,25 +1,27 @@
-# $Id: PKGBUILD 94658 2010-10-09 09:44:15Z tpowa $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org
+# $Id: PKGBUILD 162373 2012-06-26 05:39:58Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
 # Contributor: judd <jvinet@zeroflux.org>
 pkgbase=samba
-pkgname=('smbclient' 'samba')
-pkgver=3.5.6
+pkgname=('libwbclient' 'smbclient' 'samba')
+pkgver=3.6.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=2
-arch=('i686' 'x86_64')
+_realver=3.6.6
+pkgrel=1
+arch=(i686 x86_64)
 url="http://www.samba.org"
 license=('GPL3')
-makedepends=('db>=4.7' 'popt' 'acl' 'libldap' 'libcap>=2.16' 'heimdal>=1.2-1' 'pam' 'gnutls>=2.4.1' 'talloc' 'tdb')
-options=(!makeflags)
+makedepends=('db' 'popt' 'libcups' 'acl' 'libldap' 'libcap' 'krb5' 'pam'  'gnutls>=2.4.1' 'talloc' 'tdb')
 source=(http://us1.samba.org/samba/ftp/stable/${pkgbase}-${_realver}.tar.gz
-        samba samba.logrotate 
-        swat.xinetd 
-        samba.pam 
+        samba samba.logrotate
+        swat.xinetd
+        samba.pam
         samba.conf.d
-        fix-ipv6-mount.patch)
+        smbd.service
+        nmbd.service
+        winbindd.service
+        samba.conf)
 ### UNINSTALL dmapi package before building!!!
 
 build() {
@@ -33,42 +35,48 @@ build() {
               --with-fhs \
               --with-pam \
               --with-pam_smbpass \
-              --with-pammodulesdir=/lib/security \
+              --with-pammodulesdir=/usr/lib/security \
+              --with-dnsupdate \
+              --with-automount \
+              --with-quotas \
               --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 \
+              --with-shared-modules=idmap_ad,idmap_adex,idmap_rid,idmap_hash,idmap_tdb2 \
               --enable-external-libtdb
-  make || return 1
+  make
+}
+
+package_libwbclient () {
+pkgdesc="Samba winbind client library"
+depends=('glibc')
+  cd ${srcdir}/${pkgbase}-${_realver}/source3
+  mkdir -p ${pkgdir}/usr/lib  
+  for i in libwbclient*; do
+      cp  -a bin/${i}*.so* ${pkgdir}/usr/lib/
+  done
 }
 
 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')
+depends=('readline' 'popt' 'libldap' 'cifs-utils' 'libcap' 'krb5' 'db' 'e2fsprogs' 'tdb' 'talloc' 'libwbclient')
   cd ${srcdir}/${pkgbase}-${_realver}/source3
-  mkdir -p ${pkgdir}/usr/bin ${pkgdir}/sbin ${pkgdir}/usr/lib
+  mkdir -p ${pkgdir}/usr/bin ${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
+  for i in libnetapi* 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/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
+  mkdir -p ${pkgdir}/usr/share/man/man{1,7}
   for man in rpcclient smbcacls smbclient smbcquotas smbget \
       smbtree smbtar nmblookup; do
       install -m644 ../docs/manpages/${man}.1 ${pkgdir}/usr/share/man/man1/
@@ -78,25 +86,25 @@ depends=('readline>=6.0.00' 'popt' 'libldap>=2.4.18-1' 'libcap>=2.16' 'heimdal>=
 
 package_samba () {
 pkgdesc="Tools to access a server's filespace and printers via SMB"
-backup=(etc/logrotate.d/samba 
-        etc/pam.d/samba 
+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' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap>=2.16' 'heimdal>=1.2-1' 'pam' 'gnutls>=2.4.1' 'e2fsprogs' 'tdb' 'talloc')
+depends=('db' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap' 'krb5' 'pam'  'gnutls' 'e2fsprogs' 'tdb' 'talloc')
+install='samba.install'
   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
+  make DESTDIR=${pkgdir} install
   chmod 644 ${pkgdir}/usr/include/*.h
   rm -rf ${pkgdir}/usr/var
+  rm -rf ${pkgdir}/var/run/samba
   (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
+  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
@@ -106,15 +114,20 @@ depends=('db>=4.7' 'popt' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap>=2.16' 'h
   # 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
+  install -D -m755 ${srcdir}/samba-${_realver}/nsswitch/libnss_wins.so ${pkgdir}/usr/lib/libnss_wins.so
+  ln -s libnss_wins.so ${pkgdir}/usr/lib/libnss_wins.so.2
+  install -D -m755 ${srcdir}/samba-${_realver}/nsswitch/libnss_winbind.so ${pkgdir}/usr/lib/libnss_winbind.so
+  ln -s libnss_winbind.so ${pkgdir}/usr/lib/libnss_winbind.so.2
+  # winbind krb5 locator
+  mkdir -p ${pkgdir}/usr/lib/krb5/plugins/libkrb5
+  install -d -m 0755 ${pkgdir}/usr/lib/krb5/plugins/libkrb5
+  install -m 755 bin/winbind_krb5_locator.so ${pkgdir}/usr/lib/krb5/plugins/libkrb5/winbind_krb5_locator.so
   # remove conflict files of smbclient
   for man in libsmbclient smbspool \
-      umount.cifs mount.cifs net; do
+      mount.cifs net cifs.upcall; do
       rm -f ${pkgdir}/usr/share/man/man8/${man}.8
   done
-  for i in libnetapi* libwbclient* libsmbclient*;do
+  for i in libnetapi* libwbclient* libsmbclient* winbind_krb5*;do
       rm -f ${pkgdir}/usr/lib/$i
   done
   for bin in net \
@@ -122,6 +135,7 @@ depends=('db>=4.7' 'popt' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap>=2.16' 'h
       smbcquotas smbget smbspool smbtar smbtree; do
       rm -f ${pkgdir}/usr/bin/$bin
   done
+  rm -f ${pkgdir}/usr/sbin/cifs.upcall
   rm -f ${pkgdir}/usr/include/netapi.h
   for man in rpcclient smbcacls smbclient smbcquotas \
       smbtree smbtar nmblookup smbget; do
@@ -134,11 +148,21 @@ depends=('db>=4.7' 'popt' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap>=2.16' 'h
   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
+  # install systemd files
+  for i in smbd nmbd winbindd; do
+  install -D -m644 ${srcdir}/$i.service ${pkgdir}/usr/lib/systemd/system/$i.service
+  done
+  # create ephemeral dirs via tmpfiles rather than shipping them in package
+  install -D -m644 ${srcdir}/samba.conf ${pkgdir}/usr/lib/tmpfiles.d/samba.conf
+  rm -rf ${pkgdir}/var/run
 }
-md5sums=('bf6c09ea497a166df8bd672db1d8da8f'
-         '891b9be03e7adf65c9a00319c76d33e5'
+md5sums=('0bea52842d172231c0c0e23ee570d7af'
+         'a45a4283723be2b0ae32439dc4496a09'
          '5697da77590ec092cc8a883bae06093c'
          'a4bbfa39fee95bba2e7ad6b535fae7e6'
          '96f82c38f3f540b53f3e5144900acf17'
          'f2f2e348acd1ccb566e95fa8a561b828'
-         'c6a38a8c8fa24979e6217aed533358ea')
+         '389cc4fa3b459360feaa1b3d93274693'
+         'ea6a1251be979cb30c6098a28b270d2d'
+         '455f106ce7a4f983975b3a686eaa85e5'
+         '8e7ed39b54968e427f9506e9107bfb45')
diff --git a/abs/extra/samba/__changelog b/abs/extra/samba/__changelog
index 1fdfc4a..bb83999 100644
--- a/abs/extra/samba/__changelog
+++ b/abs/extra/samba/__changelog
@@ -1,4 +1 @@
-remove fam support
-update to 3.5.6
-
-remove libcups as dep and build without it.
+removed fam/gamin
diff --git a/abs/extra/samba/fix-ipv6-mount.patch b/abs/extra/samba/fix-ipv6-mount.patch
deleted file mode 100644
index 89bef65..0000000
--- a/abs/extra/samba/fix-ipv6-mount.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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/nmbd.service b/abs/extra/samba/nmbd.service
new file mode 100644
index 0000000..6e22ef2
--- /dev/null
+++ b/abs/extra/samba/nmbd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Samba NetBIOS name server
+
+[Service]
+ExecStart=/usr/sbin/nmbd -F
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/extra/samba/samba b/abs/extra/samba/samba
index 1b222d6..6098ee0 100755
--- a/abs/extra/samba/samba
+++ b/abs/extra/samba/samba
@@ -10,9 +10,9 @@ 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
+                if [ ! -x /var/log/samba ] ; then
+                        install -m755 -d /var/log/samba
+                fi
 		for d in ${SAMBA_DAEMONS[@]}; do
 			PID=`pidof -o %PPID /usr/sbin/$d`
 			[ -z "$PID" ] && /usr/sbin/$d -D
@@ -36,9 +36,9 @@ case "$1" in
 		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 /run/samba/smbd.pid &>/dev/null
+			rm /run/samba/nmbd.pid &>/dev/null
+			rm /run/samba/winbindd.pid &>/dev/null
 			rm_daemon samba
 			stat_done
 		fi
diff --git a/abs/extra/samba/samba.conf b/abs/extra/samba/samba.conf
new file mode 100644
index 0000000..c12610d
--- /dev/null
+++ b/abs/extra/samba/samba.conf
@@ -0,0 +1 @@
+D /run/samba 0755 - - -
diff --git a/abs/extra/samba/samba.install b/abs/extra/samba/samba.install
new file mode 100644
index 0000000..d9baeac
--- /dev/null
+++ b/abs/extra/samba/samba.install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+post_install() {
+  systemd-tmpfiles --create /usr/lib/tmpfiles.d/samba.conf
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/extra/samba/samba.logrotate b/abs/extra/samba/samba.logrotate
deleted file mode 100644
index 581f4c3..0000000
--- a/abs/extra/samba/samba.logrotate
+++ /dev/null
@@ -1,9 +0,0 @@
-/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/smbd.service b/abs/extra/samba/smbd.service
new file mode 100644
index 0000000..beb9bfa
--- /dev/null
+++ b/abs/extra/samba/smbd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Samba SMB/CIFS server
+
+[Service]
+ExecStart=/usr/sbin/smbd -F
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/abs/extra/samba/winbindd.service b/abs/extra/samba/winbindd.service
new file mode 100644
index 0000000..509c896
--- /dev/null
+++ b/abs/extra/samba/winbindd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Samba Winbind daemon
+
+[Service]
+ExecStart=/usr/sbin/winbindd -F
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
-- 
cgit v0.12