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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
# $Id: PKGBUILD 176366 2013-01-31 08:04:09Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgbase=samba
pkgname=('libwbclient' 'smbclient' 'samba')
pkgver=3.6.12
# 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.12
pkgrel=1
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')
source=(http://us1.samba.org/samba/ftp/stable/${pkgbase}-${_realver}.tar.gz
samba.logrotate
swat.xinetd
samba.pam
smbd.service
smbd.socket
smbd@.service
nmbd.service
swat.socket
swat@.service
winbindd.service
samba.conf)
### 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=/usr/lib/security \
--with-dnsupdate \
--with-automount \
--with-quotas \
--with-ads \
--with-acl-support \
--with-libsmbclient \
--with-syslog \
--enable-external-libtalloc \
--disable-dnssd \
--disable-avahi \
--with-shared-modules=idmap_ad,idmap_adex,idmap_rid,idmap_hash,idmap_tdb2 \
--enable-external-libtdb
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
install -D -m644 pkgconfig/wbclient.pc ${pkgdir}/usr/lib/pkgconfig/wbclient.pc
install -D -m644 ../nsswitch/libwbclient/wbclient.h ${pkgdir}/usr/include/wbclient.h
}
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' 'libwbclient')
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 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/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')
install='samba.install'
cd ${srcdir}/samba-${_realver}/source3
mkdir -p ${pkgdir}/etc/samba/private
chmod 700 ${pkgdir}/etc/samba/private
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)
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}/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 \
mount.cifs net cifs.upcall; do
rm -f ${pkgdir}/usr/share/man/man8/${man}.8
done
for i in libnetapi* libwbclient* libsmbclient* winbind_krb5*;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/sbin/cifs.upcall
rm -f ${pkgdir}/usr/include/netapi.h
rm -f ${pkgdir}/usr/include/wbclient.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
# install systemd files
install -d -m755 ${pkgdir}/usr/lib/systemd/system
for i in smbd nmbd swat winbindd; do
install -m644 ${srcdir}/*.service ${pkgdir}/usr/lib/systemd/system/
install -m644 ${srcdir}/*.socket ${pkgdir}/usr/lib/systemd/system/
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=('430fd21a1acd26964d3ccf366df8709a'
'5697da77590ec092cc8a883bae06093c'
'a4bbfa39fee95bba2e7ad6b535fae7e6'
'96f82c38f3f540b53f3e5144900acf17'
'4d86a4e3b2ac4b35e12ac667d1d261a7'
'a78b9aa93eb14b0ac445897395693225'
'4f2a5266f88d016a78014bb02e118c7f'
'46bac3375dcf25baea4699226410987a'
'6db11f3dd2112a4b7a73007b189bef3f'
'b0de262f9c62acd162e873658f33d063'
'03257dd11fc041d59e612c02a54ef4c0'
'49abd7b719e3713a3f75a8a50958e381')
|