PKGBUILDs/extra/samba/PKGBUILD
2010-05-01 21:31:41 -05:00

171 lines
6.9 KiB
Bash

# Maintainer: Garrett L. Ward <glward1@gmail.com>
pkgbase=samba
pkgname=('tdb' 'smbclient' 'samba')
pkgver=3.5.2
# 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.2
pkgrel=1
arch=(arm)
url="http://www.samba.org"
license=('GPL3')
makedepends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' 'libcap>=2.16' 'heimdal>=1.3.1' 'pam' 'fam' 'gnutls>=2.4.1')
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}
patch -Np0 -i ../fix-ipv6-mount.patch || return 1
cd ${srcdir}/${pkgbase}-${_realver}/source3
# heimdal-1.3.1 build fix
sed -i "/KRB5_DEPRECATED/s#1##" libsmb/clikrb5.c
./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 \
--disable-dnssd \
--disable-avahi \
--with-cifsumount
make || return 1
}
package_tdb () {
pkgdesc="A Trivia Database similar to GDBM but allows simultaneous commits"
cd ${srcdir}/${pkgbase}-${_realver}/lib/replace
./autogen.sh
./configure --prefix=/usr
make || return 1
cp replace.o snprintf.o getpass.o ../tdb/
cd ${srcdir}/${pkgbase}-${_realver}/lib/tdb
./autogen.sh
./configure --prefix=/usr
make || return 1
make DESTDIR=${pkgdir} install || return 1
ln -sf /usr/lib/libtdb.so.1.1.3 ${pkgdir}/usr/lib/libtdb.so.1 || return 1
ln -sf /usr/lib/libtdb.so.1.1.3 ${pkgdir}/usr/lib/libtdb.so || 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.3-1' 'db>=4.7' 'e2fsprogs' "tdb>=$pkgver")
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
rm -rf ${pkgdir}/usr/lib/samba/libsmbsharemodes*
for i in ${pkgdir}/usr/lib/samba/*; do
ln -sf samba/$(basename $i) ${pkgdir}/usr/lib/$(basename $i)
done
rm -rf ${pkgdir}/usr/lib/libtdb*
mkdir -p ${pkgdir}/usr/include
install -m644 include/libsmbclient.h ${pkgdir}/usr/include/
install -m644 ${srcdir}/${pkgbase}-${_realver}/lib/talloc/talloc.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.3-1' 'pam' 'fam' 'gnutls>=2.4.1' 'e2fsprogs' "tdb>=$pkgver")
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
# symlink libs
for i in ${pkgdir}/usr/lib/samba/libsmbshare*; do
ln -sf samba/$(basename $i) ${pkgdir}/usr/lib/$(basename $i)
done
# 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
install -D -m755 bin/pam_winbind.so ${pkgdir}/lib/security/pam_winbind.so
# remove conflict files of smbclient and tdb
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* libtdb* libtalloc* libwbclient* libsmbclient*;do
rm -f ${pkgdir}/usr/lib/samba/$i
done
for bin in tdbbackup tdbdump tdbtool net \
nmblookup rpcclient smbcacls smbclient \
smbcquotas smbget smbspool smbtar smbtree; do
rm -f ${pkgdir}/usr/bin/$bin
done
rm -f ${pkgdir}/usr/include/{tdb.h,talloc.h,netapi.h}
for man in rpcclient smbcacls smbclient smbcquotas \
smbtree smbtar nmblookup smbget; do
rm -f ${pkgdir}/usr/share/man/man1/${man}.1
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=('6f8cf649207ccd8c2c17e28c335f4e9d'
'e93533fa2296c07c1f645dfdd373657f'
'5697da77590ec092cc8a883bae06093c'
'a4bbfa39fee95bba2e7ad6b535fae7e6'
'96f82c38f3f540b53f3e5144900acf17'
'f2f2e348acd1ccb566e95fa8a561b828'
'c6a38a8c8fa24979e6217aed533358ea')