# Maintainer: Natanael Copa pkgname=samba pkgver=4.1.3 pkgrel=2 pkgdesc="Tools to access a server's filespace and printers via SMB" url="http://www.samba.org" arch="all" license="GPL3" subpackages="$pkgname-dev $pkgname-doc $pkgname-common $pkgname-initscript libsmbclient $pkgname-client $pkgname-dc $pkgname-dc-libs:_dc_libs $pkgname-winbind libwbclient $pkgname-winbind-clients:_winbind_clients $pkgname-winbind-krb5-locator:_winbind_krb5_locator $pkgname-pidl py-$pkgname:_py $pkgname-test:_test $pkgname-libs-py:_libs_py $pkgname-libs" depends="$pkgname-initscript $pkgname-client" # note that heimdal is required (over mit krb5) for AD DC functionality makedepends="popt-dev ncurses-dev openldap-dev heimdal-dev e2fsprogs-dev libiconv-dev talloc-dev tdb-dev ldb-dev cups-dev python-dev libcap-dev tevent-dev iniparser-dev perl subunit-dev" source="http://us1.samba.org/samba/ftp/stable/samba-$pkgver.tar.gz fix-libreplace.patch musl-fix-headers.patch samba.initd samba.confd samba.logrotate " pkggroups="winbind" _builddir="$srcdir"/samba-$pkgver prepare() { cd "$_builddir" for i in $source; do case $i in *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; esac done } build() { cd "$_builddir" local _jobs=$JOBS if [ -z "$_jobs" ]; then _jobs=$(awk '/^core id/ {n++} END{print n}' /proc/cpuinfo) fi ./configure --prefix=/usr \ --jobs=${_jobs:-2} \ --sysconfdir=/etc/samba \ --with-configdir=/etc/samba \ --localstatedir=/var \ --enable-fhs \ --with-lockdir=/var/cache/samba \ --with-piddir=/var/run/samba \ --with-logfilebase=/var/log/samba \ --without-pam \ --with-ads \ --with-shared-modules=idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2,pdb_tdbsam,pdb_ldap,pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4,auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4 \ --enable-cups \ --without-gettext \ --bundled-libraries=NONE,ntdb \ || return 1 make || return 1 } package() { cd "$_builddir" make DESTDIR="$pkgdir" install install -d "$pkgdir"/var/log/samba \ "$pkgdir"/usr/share/doc/samba \ || return 1 install -D packaging/RHEL/setup/smbusers "$pkgdir"/etc/samba/smbusers \ || return 1 install -m 0744 packaging/printing/smbprint "$pkgdir"/usr/bin/smbprint \ || return 1 install -Dm644 "$srcdir"/samba.logrotate "$pkgdir"/etc/logrotate.d/samba } initscript() { pkgdesc="Init script for Samba" depends="" install -Dm755 $srcdir/samba.initd "$subpkgdir"/etc/init.d/samba install -Dm644 $srcdir/samba.confd "$subpkgdir"/etc/conf.d/samba } _mv_files() { local i for i in "$@"; do mkdir -p "$subpkgdir"/${i%/*} mv "$pkgdir"/$i "$subpkgdir"/$i || return 1 done } common() { pkgdesc="Samba common files for both client an servers" depends= # we have moved libnetapi to samba-common replaces="winbind samba" cd "$pkgdir" _mv_files \ usr/bin/net \ usr/bin/pdbedit \ usr/bin/profiles \ usr/bin/smbcontrol \ usr/bin/testparm \ usr/share/samba/codepages \ usr/lib/libnetapi.so.* \ var/run/samba \ var/cache/samba \ var/log/samba \ || return 1 install -d -m 700 "$subpkgdir"/var/lib/samba/private } # common-libs is an attempt to avoid libpython dependency for libsmbclient _libs_py() { pkgdesc="Libraries that require libpython" replaces="samba-libs" depends= cd "$pkgdir" _mv_files \ usr/lib/samba/libsamba-net.so \ usr/lib/samba/libsamba_python.so \ || return 1 return 0 } libsmbclient() { pkgdesc="The SMB client library" replaces="samba" depends= cd "$pkgdir" _mv_files \ usr/lib/libsmbclient.so.* \ usr/lib/libsmbsharemodes.so.* \ || return 1 } client() { pkgdesc="Samba client program" replaces="samba" depends= cd "$pkgdir" _mv_files \ usr/bin/cifsdd \ usr/bin/dbwrap_tool \ usr/bin/nmblookup \ usr/bin/nmblookup4 \ usr/bin/oLschema2ldif \ usr/bin/regdiff \ usr/bin/regpatch \ usr/bin/regshell \ usr/bin/regtree \ usr/bin/rpcclient \ usr/bin/sharesec \ usr/bin/smbcacls \ usr/bin/smbclient \ usr/bin/smbclient4 \ usr/bin/smbcquotas \ usr/bin/smbget \ usr/bin/smbpasswd \ usr/bin/smbprint \ usr/bin/smbspool \ usr/bin/smbta-util \ usr/bin/smbtar \ usr/bin/smbtree \ || return 1 } dc() { pkgdesc="Samba AD Domain Controller" depends= cd "$pkgdir" _mv_files \ usr/bin/samba-tool \ usr/sbin/samba* \ usr/lib/samba/ldb \ usr/lib/samba/libpac.so \ usr/lib/samba/gensec \ usr/lib/samba/bind9/dlz_bind9.so \ usr/lib/mit_samba.so \ || return 1 install -d -m 0755 "$subpkgdir"/var/lib/samba/sysvol || return 1 } _dc_libs() { pkgdesc="Samba AD Domain Controller libraries" depends= cd "$pkgdir" _mv_files \ usr/lib/samba/bind9/dlz_bind9_9.so \ usr/lib/samba/libprocess_model.so \ usr/lib/samba/libservice.so \ usr/lib/samba/service \ usr/lib/samba/libdsdb-module.so \ usr/lib/samba/libntvfs.so \ usr/lib/samba/libposix_eadb.so \ usr/lib/libdcerpc-server.so.* \ || return 1 } winbind() { pkgdesc="Samba user and group resolver" depends= install="winbind.pre-install winbind.pre-upgrade winbind.post-install winbind.post-upgrade" replaces="winbind" cd "$pkgdir" _mv_files \ usr/sbin/winbindd \ usr/lib/samba/idmap \ usr/lib/samba/nss_info \ usr/lib/samba/libidmap.so \ || return 1 install -d -g winbind -m 750 \ "$subpkgdir"/var/cache/samba/winbindd_privileged } libwbclient() { pkgdesc="Samba winbind client libraries" depends= # we have moved libwbclient from samba-common replaces="samba-common winbind" cd "$pkgdir" _mv_files \ usr/lib/libwbclient.so.* \ usr/lib/samba/libwinbind-client.so \ || return 1 } _winbind_clients() { pkgdesc="Samba winbind clients" replaces="winbind" depends= cd "$pkgdir" _mv_files \ usr/bin/ntlm_auth \ usr/bin/wbinfo \ usr/lib/libnss_winbind.so* \ usr/lib/libnss_wins.so* \ || return 1 } _winbind_krb5_locator() { pkgdesc="Samba winbind krb5 locator" depends= cd "$pkgdir" _mv_files \ usr/lib/winbind_krb5_locator.so \ || return 1 } pidl() { pkgdesc="Perl IDL compiler" depends= mkdir -p "$subpkgdir"/usr/share mv "$pkgdir"/usr/share/perl* "$subpkgdir"/usr/share/ } _py() { pkgdesc="Samba python libraries" depends= mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/ } _test() { pkgdesc="Samba server and client testing tools" depends= mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib/samba mv "$pkgdir"/usr/bin/*test \ "$pkgdir"/usr/bin/ndrdump \ "$pkgdir"/usr/bin/smbtorture \ "$subpkgdir"/usr/bin/ || return 1 mv "$pkgdir"/usr/lib/libtorture.so.* \ "$subpkgdir"/usr/lib/ || return 1 mv "$pkgdir"/usr/lib/samba/*torture* \ "$subpkgdir"/usr/lib/samba/ || return 1 } libs() { pkgdesc="Samba libraries" depends= cd "$pkgdir" _mv_files \ usr/lib/lib*.so.* \ usr/lib/samba/lib* \ || return 1 } md5sums="a5dbfe87f4cb3d9d91e15e5df99a59a1 samba-4.1.3.tar.gz b8c06c1a37bce8a7feea3b6896483da0 fix-libreplace.patch 2386589c1e2cbcf95b644554b8a2f4d1 musl-fix-headers.patch 044c756d3c33c2d610c40bcd76cfb75c samba.initd c150433426e18261e6e3eed3930e1a76 samba.confd b7cafabfb4fa5b3ab5f2e857d8d1c733 samba.logrotate" sha256sums="71da208d412b8d15ee26d2a76b2247df357242177d995fe5d9320355432e24db samba-4.1.3.tar.gz 13617f691c648b44867c1a76d8be7c185021e8a8f3b695f8689a9f6244e65827 fix-libreplace.patch 0cf7e4eadf442422434d2b0fb43193f3a79f2887e32432f12cb6aed1941e807a musl-fix-headers.patch 86646cb845aababd9e8655994379526f03327a2cc33b489c3a7dea83ab689c8f samba.initd 1d12f98a7727967b04eb123109b34cfffef320822dc0e8059286b6e3394c3fc0 samba.confd 4c2b7d529126b2fc4f62fb09d99e49a87632d723a2d9d289a61e37dd84145be1 samba.logrotate" sha512sums="c3e08df4e23c02ab759e819809ac8b146972508bbbbfc666e47ac180dea75dde85564e839aa4935e43f9b894bdf650fd3ed36463e70e9065c6e1c745142984d5 samba-4.1.3.tar.gz 4adbbeb75de6c55199e10f284e741ee252f403b7809251caf4baf378669770be01d469b23e12f8119ed5dca5080dd45bda1b5b78cc7a791be44c1eb6fb8c0fa2 fix-libreplace.patch 8d2e1be5f020d0558917f328770b289d0a41836616952d0d3208cecd457df3649f1357a2d35dc54123559ab6a1b720f3189286c65cee90b02ccbae7d676ae383 musl-fix-headers.patch 59d05252b8ebbe6ba6a419edc86b66b9541d0bac9dbe810cccb20e64f6044e2900cc6c0979e077741ed00fbbf2d51f9184c83715013299782707b44e39aa99b1 samba.initd 4faf581ecef3ec38319e3c4ab6d3995c51fd7ba83180dc5553a2ff4dfb92efadb43030c543292130c4ed0c281dc0972c6973d52d48062c5edb39bb1c4bbb6dd6 samba.confd f88ebe59ca3a9e9b77dd5993c13ef3e73a838efb8ed858088b464a330132d662f33e25c27819e38835389dee23057a3951de11bae1eef55db8ff5e1ec6760053 samba.logrotate"