summaryrefslogtreecommitdiff
path: root/extra/samba/PKGBUILD
blob: 8e51af587d94e37637349a87d061f30e32f75099 (plain)
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
178
179
180
181
182
183
# $Id: PKGBUILD 136362 2011-08-27 15:46:49Z 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=6
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-dnsupdate \
              --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/libsmbclient.so.0  ${pkgdir}/usr/lib/libsmb/libsmbclient.so.0
  ln -sf /usr/lib/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
  ../buildtools/bin/waf install --destdir=${pkgdir}
  # fix permission on include files
  chmod 644 ${pkgdir}/usr/include/*.h
  # remove wrong var directory
  rm -rf ${pkgdir}/usr/var
  # create missing directories
  mkdir -p ${pkgdir}/etc/samba/private
  chmod 700 ${pkgdir}/etc/samba/private
  mkdir -p ${pkgdir}/var/{lib,cache}/samba
  mkdir -p ${pkgdir}/var/nmbd
  mkdir -p ${pkgdir}/lib/security
  mkdir -p ${pkgdir}/etc/samba
  # install config files
  install -D -m755 ${startdir}/samba ${pkgdir}/etc/rc.d/samba
  install -D -m644 ${startdir}/samba.conf.d ${pkgdir}/etc/conf.d/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
  # run various install scripts
  script/./installman.sh ${pkgdir}/usr/share/man . C
  script/./installmo.sh ${pkgdir}/usr/share locale .
  script/./installdat.sh ${pkgdir}/usr/lib samba .
  chmod 755 script/./installmsg.sh
  script/./installmsg.sh ${pkgdir}/usr/lib samba .
  script/./installswat.sh ${pkgdir}/usr/share/samba swat .
  # 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
  # move libs to correct place
  mv ${pkgdir}/usr/lib/pam*.so ${pkgdir}/lib/security
  mv ${pkgdir}/usr/lib/libnss* ${pkgdir}/lib/
  ln -sf /lib/libnss_wins.so.2 ${pkgdir}/lib/libnss_wins.so
  ln -sf /lib/libnss_winbind.so.2 ${pkgdir}/lib/libnss_winbind.so
  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)