1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
# $Id: PKGBUILD 136328 2011-08-26 12:41:22Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgbase=samba
pkgname=('smbclient' 'samba')
pkgver=3.6.0
# 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.6.0
pkgrel=4
arch=(i686 x86_64)
url="http://www.samba.org"
license=('GPL3')
makedepends=('db' 'popt' 'libcups' 'acl' 'libldap' 'libcap' 'krb5' 'pam'
'gamin' 'gnutls>=2.4.1' 'talloc' 'tdb' 'python2')
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
sed -i "s/env python/env python2/g" ../buildtools/bin/waf
./autogen-waf.sh
# everything needs to be specified :/
../buildtools/bin/waf configure --prefix=/usr \
--with-privatedir=/etc/samba/private \
--libdir=/usr/lib/ \
--with-modulesdir=/usr/lib/samba \
--with-swatdir=/usr/share/samba/swat \
--localstatedir=/var \
--with-configdir=/etc/samba \
--with-lockdir=/var/cache/samba \
--with-cachedir=/var/cache/samba \
--with-statedir=/var/cache/samba \
--with-piddir=/var/run/samba \
--with-logfilebase=/var/log/samba \
--sysconfdir=/etc \
--with-pam \
--with-pam_smbpass \
--with-pammodulesdir=/lib/security \
--with-ads \
--with-acl-support \
--with-syslog \
--disable-avahi \
--with-shared-modules=idmap_ad,idmap_adex,idmap_rid,idmap_hash,idmap_tdb2 \
--disable-rpath \
--disable-rpath-private-install \
--disable-rpath-install
#fix the shitty build system!
sed -i -e 's#/etc/smb.conf#/etc/samba/smb.conf#g' bin/default/source3/include/config.h
../buildtools/bin/waf build ${MAKEFLAGS}
}
package_smbclient () {
pkgdesc="Tools to access a server's filespace and printers via SMB"
depends=('readline' 'popt' 'libldap' 'cifs-utils' 'libcap' 'krb5' 'db' 'e2fsprogs' 'tdb' 'talloc')
cd ${srcdir}/${pkgbase}-${_realver}/source3
mkdir -p ${pkgdir}/usr/bin ${pkgdir}/usr/lib
install -m755 bin/{smbclient,rpcclient,smbspool,smbtree,smbcacls,smbcquotas,smbget,net,nmblookup} ${pkgdir}/usr/bin/
for i in libreplace.so libsmbregistry.so libsecurity.so librpccommon.so libdcerpc-samba.so libpassdb.so libLIBCLI_SPOOLSS.so libprinting_migrate.so libsamba3core.so libndr-samba.so libsamba-util-common.so libads.so libtdb-wrap.so libaddns.so libcliauth.so libwinbind-client.so; do
install -m644 -D bin/shared/private/$i ${pkgdir}/usr/lib/$i
done
for i in libsmbconf libnetapi libwbclient libsmbclient; do
install -m644 -D bin/shared/$i.so.0 ${pkgdir}/usr/lib/$i.so.0
ln -sf /usr/lib/$i.so.0 ${pkgdir}/usr/lib/$i.so
done
mkdir ${pkgdir}/usr/lib/libsmb
ln -sf /usr/lib/libsmb/libsmbclient.so.0 ${pkgdir}/usr/lib/libsmb/libsmbclient.so.0
ln -sf /usr/lib/libsmb/libsmbclient.so.0 ${pkgdir}/usr/lib/libsmb/libsmbclient.so
for i in libndr-krb5pac libndr-standard libndr; do
install -m644 -D bin/shared/$i.so.0 ${pkgdir}/usr/lib/$i.so.0.0.1
ln -sf /usr/lib/$i.so.0.0.1 ${pkgdir}/usr/lib/$i.so.0
ln -sf /usr/lib/$i.so.0.0.1 ${pkgdir}/usr/lib/$i.so
done
install -m644 -D bin/shared/private/libtevent.so.0 ${pkgdir}/usr/lib/libtevent.so.0.9.11
ln -sf /usr/lib/libtevent.so.0.9.11 ${pkgdir}/usr/lib/libtevent.so.0
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}
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' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap' 'krb5' 'pam' 'gamin' 'gnutls' 'e2fsprogs' 'tdb' 'talloc')
optdepends=('python2: for python bindings')
cd ${srcdir}/samba-${_realver}/source3
mkdir -p ${pkgdir}/etc/samba/private
chmod 700 ${pkgdir}/etc/samba/private
../buildtools/bin/waf install --destdir=${pkgdir}
chmod 644 ${pkgdir}/usr/include/*.h
rm -rf ${pkgdir}/usr/var
install -D -m755 ${startdir}/samba ${pkgdir}/etc/rc.d/samba
install -D -m644 ${startdir}/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 ${startdir}/samba.logrotate ${pkgdir}/etc/logrotate.d/samba
install -D -m644 ${startdir}/swat.xinetd ${pkgdir}/etc/xinetd.d/swat
install -D -m644 ${startdir}/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
# remove conflict files of smbclient
for man in libsmbclient smbspool \
mount.cifs net cifs.upcall; do
rm -f ${pkgdir}/usr/share/man/man8/${man}.8
done
for i in libreplace.so libsmbregistry.so libsecurity.so librpccommon.so libdcerpc-samba.so libpassdb.so libLIBCLI_SPOOLSS.so libprinting_migrate.so libsamba3core.so libndr-samba.so libsamba-util-common.so libads.so libtdb-wrap.so libaddns.so libcliauth.so libtevent.so.0.9.11 libtevent.so.0 libwinbind-client.so; do
rm -f ${pkgdir}/usr/lib/samba/$i
done
mv ${pkgdir}/usr/lib/samba/*.so ${pkgdir}/usr/lib
for i in libndr-krb5pac.* libsmbconf.* libndr-standard.* libndr.* 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 -r ${pkgdir}/usr/lib/libsmb
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
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=(e297e0ea7923c7de8d7c1d8fd0ec0a05
a3da19515a234c703876cf850c44e996
5697da77590ec092cc8a883bae06093c
a4bbfa39fee95bba2e7ad6b535fae7e6
96f82c38f3f540b53f3e5144900acf17
f2f2e348acd1ccb566e95fa8a561b828
c6a38a8c8fa24979e6217aed533358ea)
|