mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
359 lines
10 KiB
Bash
359 lines
10 KiB
Bash
|
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
|
||
|
# Contributor: judd <jvinet@zeroflux.org>
|
||
|
# Contributor: Michael Hansen <zrax0111 gmail com>
|
||
|
# Contributor: Marco A Rojas <marquicus at gmail.com>
|
||
|
# Contributor: Netanel Shine <netanel at archlinux.org.il >
|
||
|
# Contributor: ngoonee <ngoonee.talk@gmail.com>
|
||
|
# Contributor: Adam Russell <adamlr6+arch@gmail.com>
|
||
|
# Contributor: Dhananjay Sathe <dhananjaysathe@gmail.com>
|
||
|
|
||
|
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
||
|
# - generalize cpython arch-dependent install line
|
||
|
|
||
|
pkgbase=samba
|
||
|
pkgname=('libwbclient' 'ldb' 'smbclient' 'samba')
|
||
|
pkgver=4.21.0
|
||
|
pkgrel=2
|
||
|
arch=(x86_64)
|
||
|
url="https://www.samba.org"
|
||
|
license=('GPL-3.0-or-later')
|
||
|
makedepends=(
|
||
|
acl
|
||
|
dateutils
|
||
|
dbus
|
||
|
docbook-xsl
|
||
|
glusterfs
|
||
|
gnutls
|
||
|
jansson
|
||
|
krb5
|
||
|
libbsd
|
||
|
libcap
|
||
|
libcups
|
||
|
libldap
|
||
|
libnsl
|
||
|
libtirpc
|
||
|
liburing
|
||
|
pam
|
||
|
perl-json
|
||
|
perl-parse-yapp
|
||
|
pkg-config
|
||
|
popt
|
||
|
python
|
||
|
python-dnspython
|
||
|
python-markdown
|
||
|
readline
|
||
|
rpcsvc-proto
|
||
|
systemd
|
||
|
talloc
|
||
|
tdb
|
||
|
tevent
|
||
|
)
|
||
|
#checkdepends=(
|
||
|
# git
|
||
|
# python-cryptography
|
||
|
# python-iso8601
|
||
|
# python-pyasn1
|
||
|
#)
|
||
|
optdepends=(
|
||
|
'python-dnspython: samba_dnsupdate and samba_upgradedns in AD setup'
|
||
|
'python-markdown: for samba-tool domain schemeupgrade'
|
||
|
'glusterfs: for vfs_glusterfs support'
|
||
|
)
|
||
|
epoch=2
|
||
|
source=(
|
||
|
https://us1.samba.org/samba/ftp/stable/${pkgbase}-${pkgver}.tar{.gz,.asc}
|
||
|
samba.logrotate
|
||
|
samba.pam
|
||
|
samba.conf
|
||
|
)
|
||
|
validpgpkeys=('81F5E2832BD2545A1897B713AA99442FB680B620') #Samba Distribution Verification Key <samba-bugs@samba.org>
|
||
|
b2sums=('0889f2be3b78affee88250114397de87a77da77d9674815ec5605780a6bb3e2e28dbbae53b66695196408f4aef550acce793e6397045fbea4bb236fdd095ce1a'
|
||
|
'SKIP'
|
||
|
'72ecb413ca3499af984a0bb391f96e678a24a19d8e5c96050ba227878f0770f03466ac7a0ee328416e08204e92e9d16ec22d63ef25b53c20d957a17221cd3a98'
|
||
|
'3eab84d332d96678fe6e435ee243c8f1a82b838f601d61d3604d11e918aed7a62202edca5e476c4b9031ed284570e6fcd6c659cfdbd9624aa0019d3233755f81'
|
||
|
'e1f49e14d34cf1a48378cad9f427215101ff55b2461340e0dc2376192f07c45fc238463a07672348c0823e3aa7892c83a939a7d358aabac818e2108ca2c1900f')
|
||
|
### UNINSTALL dmapi package before building!!!
|
||
|
|
||
|
# Use samba-pkg as a staging directory for the split packages
|
||
|
# (This is so RPATHS and symlinks are generated correctly via
|
||
|
# make install, but the otherwise unsplit pieces can be split)
|
||
|
build() {
|
||
|
_samba4_idmap_modules=idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2
|
||
|
_samba4_pdb_modules=pdb_tdbsam,pdb_ldap,pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4
|
||
|
_samba4_auth_modules=auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4
|
||
|
_pkgsrc="${srcdir}"/samba-pkg
|
||
|
rm -rf ${_pkgsrc}
|
||
|
cd ${pkgbase}-${pkgver}
|
||
|
./configure --enable-fhs \
|
||
|
--prefix=/usr \
|
||
|
--sysconfdir=/etc \
|
||
|
--sbindir=/usr/bin \
|
||
|
--libdir=/usr/lib \
|
||
|
--libexecdir=/usr/lib/samba \
|
||
|
--localstatedir=/var \
|
||
|
--with-configdir=/etc/samba \
|
||
|
--with-lockdir=/var/cache/samba \
|
||
|
--with-sockets-dir=/run/samba \
|
||
|
--with-piddir=/run \
|
||
|
--with-ads \
|
||
|
--with-ldap \
|
||
|
--with-winbind \
|
||
|
--with-acl-support \
|
||
|
--with-systemd \
|
||
|
--systemd-install-services \
|
||
|
--with-pam \
|
||
|
--with-pammodulesdir=/usr/lib/security \
|
||
|
--private-libraries='!ldb' \
|
||
|
--bundled-libraries='!tdb,!talloc,!pytalloc-util,!tevent,!popt,!pyldb-util' \
|
||
|
--with-shared-modules="${_samba4_idmap_modules},${_samba4_pdb_modules},${_samba4_auth_modules},vfs_io_uring" \
|
||
|
--disable-rpath-install \
|
||
|
--with-profiling-data
|
||
|
# Add this to the options once it's working...
|
||
|
#--with-system-mitkrb5 /opt/heimdal
|
||
|
|
||
|
make
|
||
|
make DESTDIR="${_pkgsrc}/" install
|
||
|
|
||
|
# This gets skipped somehow
|
||
|
if [ ! -e "${_pkgsrc}"/usr/bin/smbtar ]; then
|
||
|
install -m755 "${srcdir}"/samba-${pkgver}/source3/script/smbtar "${_pkgsrc}"/usr/bin/
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# --enable-selftest for checks
|
||
|
#check() {
|
||
|
# cd samba-${pkgver}
|
||
|
# make check
|
||
|
#}
|
||
|
|
||
|
package_libwbclient() {
|
||
|
pkgdesc="winbind client library"
|
||
|
depends=('libbsd')
|
||
|
_pkgsrc="${srcdir}"/samba-pkg
|
||
|
install -d -m755 "${pkgdir}"/usr/lib
|
||
|
for lib in "${_pkgsrc}"/usr/lib/libwbclient.so*; do
|
||
|
mv ${lib} "${pkgdir}"/usr/lib/
|
||
|
done
|
||
|
install -d -m755 "${pkgdir}"/usr/lib/pkgconfig
|
||
|
mv "${_pkgsrc}"/usr/lib/pkgconfig/wbclient.pc "${pkgdir}"/usr/lib/pkgconfig/
|
||
|
install -d -m755 "${pkgdir}"/usr/include/samba-4.0
|
||
|
mv "${_pkgsrc}"/usr/include/samba-4.0/wbclient.h "${pkgdir}"/usr/include/samba-4.0/
|
||
|
}
|
||
|
|
||
|
package_ldb() {
|
||
|
pkgdesc='Schema-less, ldap like, API and database'
|
||
|
url="https://ldb.samba.org/"
|
||
|
depends=(
|
||
|
libtevent.so
|
||
|
lmdb
|
||
|
popt
|
||
|
talloc
|
||
|
tdb
|
||
|
libtdb.so
|
||
|
)
|
||
|
optdepends=(
|
||
|
'python: for python bindings'
|
||
|
)
|
||
|
_ldb_bins=(
|
||
|
ldbadd
|
||
|
ldbdel
|
||
|
ldbedit
|
||
|
ldbmodify
|
||
|
ldbrename
|
||
|
ldbsearch
|
||
|
)
|
||
|
_ldb_headers=(
|
||
|
ldb.h
|
||
|
ldb_errors.h
|
||
|
ldb_handlers.h
|
||
|
ldb_module.h
|
||
|
ldb_version.h
|
||
|
)
|
||
|
provides=(libldb.so)
|
||
|
_pkgsrc="${srcdir}"/samba-pkg
|
||
|
|
||
|
install -d -m755 "${pkgdir}"/usr/bin
|
||
|
for bin in ${_ldb_bins[@]}; do
|
||
|
mv "${_pkgsrc}"/usr/bin/${bin} "${pkgdir}"/usr/bin/
|
||
|
done
|
||
|
install -d -m755 "${pkgdir}"/usr/lib
|
||
|
for lib in "${_pkgsrc}"/usr/lib/libldb*; do
|
||
|
mv ${lib} "${pkgdir}"/usr/lib/
|
||
|
done
|
||
|
install -d -m755 "${pkgdir}"/usr/lib/samba
|
||
|
mv "${_pkgsrc}"/usr/lib/samba/ldb "${pkgdir}"/usr/lib/samba
|
||
|
install -d -m755 "${pkgdir}"/usr/lib/pkgconfig
|
||
|
mv "${_pkgsrc}"/usr/lib/pkgconfig/ldb.pc "${pkgdir}"/usr/lib/pkgconfig/
|
||
|
install -d -m755 "${pkgdir}"/usr/include/samba-4.0
|
||
|
for headers in ${_ldb_headers[@]}; do
|
||
|
mv "${_pkgsrc}"/usr/include/samba-4.0/${headers} "${pkgdir}"/usr/include/samba-4.0/
|
||
|
done
|
||
|
install -d -m755 "${pkgdir}"/usr/lib/python3.12/site-packages/
|
||
|
mv "${_pkgsrc}"/usr/lib/python3.12/site-packages/{_ldb_text.py,ldb.cpython-312-*-linux-gnu*.so} \
|
||
|
"${pkgdir}"/usr/lib/python3.12/site-packages/
|
||
|
|
||
|
install -d -m755 "${pkgdir}"/usr/share/man/man1
|
||
|
for bin in ${_ldb_bins[@]}; do
|
||
|
mv "${_pkgsrc}"/usr/share/man/man1/${bin}.1 "${pkgdir}"/usr/share/man/man1/
|
||
|
done
|
||
|
mv "${_pkgsrc}"/usr/share/man/man3 "${pkgdir}"/usr/share/man/
|
||
|
|
||
|
}
|
||
|
|
||
|
package_smbclient() {
|
||
|
pkgdesc="Tools to access a server's filespace and printers via SMB"
|
||
|
depends=(
|
||
|
cifs-utils
|
||
|
gnutls
|
||
|
icu
|
||
|
jansson
|
||
|
ldb
|
||
|
libarchive
|
||
|
libbsd
|
||
|
libcups
|
||
|
libldap
|
||
|
libldb.so
|
||
|
libnsl
|
||
|
libreadline.so
|
||
|
libtdb.so
|
||
|
libtevent.so
|
||
|
libwbclient
|
||
|
popt
|
||
|
python
|
||
|
readline
|
||
|
talloc
|
||
|
tdb
|
||
|
tevent
|
||
|
)
|
||
|
_smbclient_bins=(
|
||
|
smbclient
|
||
|
rpcclient
|
||
|
smbspool
|
||
|
smbtree
|
||
|
smbcacls
|
||
|
smbcquotas
|
||
|
smbget
|
||
|
net
|
||
|
nmblookup
|
||
|
smbtar
|
||
|
)
|
||
|
_pkgsrc="${srcdir}"/samba-pkg
|
||
|
|
||
|
install -d -m755 "${pkgdir}"/usr/bin
|
||
|
for bin in ${_smbclient_bins[@]}; do
|
||
|
mv "${_pkgsrc}"/usr/bin/${bin} "${pkgdir}"/usr/bin/
|
||
|
done
|
||
|
|
||
|
# smbclient binaries link to the majority of the samba
|
||
|
# libs, so this is a shortcut instead of resolving the
|
||
|
# whole dependency tree by hand
|
||
|
install -d -m755 "${pkgdir}"/usr/lib
|
||
|
for lib in "${_pkgsrc}"/usr/lib/lib*.so*; do
|
||
|
mv ${lib} "${pkgdir}"/usr/lib/
|
||
|
done
|
||
|
|
||
|
install -d -m755 "${pkgdir}"/usr/lib/samba
|
||
|
for lib in "${_pkgsrc}"/usr/lib/samba/lib*.so*; do
|
||
|
mv ${lib} "${pkgdir}"/usr/lib/samba/
|
||
|
done
|
||
|
|
||
|
install -d -m755 "${pkgdir}"/usr/lib/pkgconfig
|
||
|
mv "${_pkgsrc}"/usr/lib/pkgconfig/smbclient.pc "${pkgdir}"/usr/lib/pkgconfig/
|
||
|
mv "${_pkgsrc}"/usr/lib/pkgconfig/netapi.pc "${pkgdir}"/usr/lib/pkgconfig/
|
||
|
|
||
|
install -d -m755 "${pkgdir}"/usr/share/man/man1
|
||
|
install -d -m755 "${pkgdir}"/usr/share/man/man7
|
||
|
install -d -m755 "${pkgdir}"/usr/share/man/man8
|
||
|
for bin in ${_smbclient_bins[@]}; do
|
||
|
if [ -e "${_pkgsrc}"/usr/share/man/man1/${bin}.1 ]; then
|
||
|
mv "${_pkgsrc}"/usr/share/man/man1/${bin}.1 "${pkgdir}"/usr/share/man/man1/
|
||
|
fi
|
||
|
if [ -e "${_pkgsrc}"/usr/share/man/man8/${bin}.8 ]; then
|
||
|
mv "${_pkgsrc}"/usr/share/man/man8/${bin}.8 "${pkgdir}"/usr/share/man/man8/
|
||
|
fi
|
||
|
done
|
||
|
mv "${_pkgsrc}"/usr/share/man/man7/libsmbclient.7 "${pkgdir}"/usr/share/man/man7/
|
||
|
|
||
|
install -d -m755 "${pkgdir}"/usr/include/samba-4.0
|
||
|
mv "${_pkgsrc}"/usr/include/samba-4.0/libsmbclient.h "${pkgdir}"/usr/include/samba-4.0/
|
||
|
mv "${_pkgsrc}"/usr/include/samba-4.0/netapi.h "${pkgdir}"/usr/include/samba-4.0/
|
||
|
|
||
|
mkdir -p "${pkgdir}"/usr/lib/cups/backend
|
||
|
ln -sf /usr/bin/smbspool "${pkgdir}"/usr/lib/cups/backend/smb
|
||
|
}
|
||
|
|
||
|
package_samba() {
|
||
|
pkgdesc="SMB Fileserver and AD Domain server"
|
||
|
depends=(
|
||
|
"gnutls>=2.4.1"
|
||
|
gpgme
|
||
|
ldb
|
||
|
libbsd
|
||
|
libcups
|
||
|
"libcap>=2.16"
|
||
|
libldb.so
|
||
|
libtdb.so
|
||
|
libtevent.so
|
||
|
liburing
|
||
|
libwbclient
|
||
|
popt
|
||
|
python
|
||
|
"smbclient>=${pkgver}"
|
||
|
talloc
|
||
|
tdb
|
||
|
)
|
||
|
optdepends=(
|
||
|
'python-dnspython: netads_dns.py, dnsresolver.py and traffic_packets.py '
|
||
|
'python-markdown: ms_schema_markdown.py and ms_forest_updates_markdown.py'
|
||
|
'python-cryptography: lockout_tests.py gp_cert_auto_enroll_ext.py gpo.py and kcrypto.py'
|
||
|
)
|
||
|
backup=(
|
||
|
etc/logrotate.d/samba
|
||
|
etc/pam.d/samba
|
||
|
etc/conf.d/samba
|
||
|
)
|
||
|
install=samba.install
|
||
|
|
||
|
_pkgsrc="${srcdir}"/samba-pkg
|
||
|
# Everything that libwbclient and smbclient didn't install goes
|
||
|
# into the samba package...
|
||
|
mv "${_pkgsrc}"/* "${pkgdir}"
|
||
|
rmdir "${_pkgsrc}"
|
||
|
|
||
|
# Make admin scripts look in the right place for the samba python module
|
||
|
for script in bin/samba_dnsupdate bin/samba_kcc bin/samba_spnupdate \
|
||
|
bin/samba_upgradedns bin/samba-tool
|
||
|
do
|
||
|
sed -i "/^sys\.path\.insert/ asys.path.insert(0, '/usr/lib/python${_pyver}/site-packages')" \
|
||
|
"${pkgdir}"/usr/${script}
|
||
|
done
|
||
|
|
||
|
# packaging/wscript_build to use /etc/conf.d
|
||
|
sed -i -e '/^EnvironmentFile/ s/sysconfig/conf.d/' "${pkgdir}"/usr/lib/systemd/system/*.service
|
||
|
install -d -m755 "${pkgdir}"/etc/conf.d
|
||
|
install -m644 "${srcdir}"/samba-${pkgver}/packaging/systemd/samba.sysconfig "${pkgdir}"/etc/conf.d/samba
|
||
|
|
||
|
# create ephemeral dirs via tmpfiles rather than shipping them in package
|
||
|
install -D -m644 "${srcdir}"/samba.conf "${pkgdir}"/usr/lib/tmpfiles.d/samba.conf
|
||
|
# create config dir
|
||
|
install -d -m755 "${pkgdir}"/etc/samba
|
||
|
|
||
|
mkdir -p "${pkgdir}"/etc/samba/private
|
||
|
chmod 700 "${pkgdir}"/etc/samba/private
|
||
|
|
||
|
install -D -m644 "${srcdir}"/samba.logrotate "${pkgdir}"/etc/logrotate.d/samba
|
||
|
install -D -m644 "${srcdir}"/samba.pam "${pkgdir}"/etc/pam.d/samba
|
||
|
|
||
|
# spool directory
|
||
|
install -d -m1777 "${pkgdir}"/var/spool/samba
|
||
|
|
||
|
rm -rf "${pkgdir}"/run
|
||
|
rm -rf "${pkgdir}"/var/run
|
||
|
rm -rf "${pkgdir}"/etc/sysconfig
|
||
|
|
||
|
# copy ldap example
|
||
|
install -D -m644 "${srcdir}"/samba-${pkgver}/examples/LDAP/samba.schema \
|
||
|
"${pkgdir}"/usr/share/doc/samba/examples/LDAP/samba.schema
|
||
|
}
|
||
|
|