description="SMB Fileserver and AD Domain server"
url="https://www.samba.org"

packager="spiky <spiky@nutyx.org>"
contributors="Pierre,Greg,Tnut"

makedepends=(acl pam perl-yapp jansson rustc rpcsvc-proto libtirpc
             docbook-xsl avahi gnutls libgpg-error popt talloc
             python icu cups kerberos libcap openldap tdb perl-json)
run=(samba.lib)

name=samba
version=4.17.4
release=2

runyx_version=20201011

PKGMK_GROUPS=(lib man devel service doc)

source=(https://downloads.tuxfamily.org/nutyx/files/runyx-${runyx_version}.tar.xz
	https://download.samba.org/pub/samba/stable/$name-$version.tar.gz)

build() {
cd $name-$version

sed -r 's/nss_(setpw|endpw|setgr|endgr)ent/my_&/' \
    -i nsswitch/nsstest.c

python3 -m venv pyvenv &&
./pyvenv/bin/pip3 install cryptography pyasn1 iso8601

echo "^samba4.rpc.echo.*on.*ncacn_np.*with.*object.*nt4_dc" >> selftest/knownfail

PYTHON=$PWD/pyvenv/bin/python           \
CFLAGS+=" -I/usr/include/tirpc"         \
LDFLAGS+=" -ltirpc"                     \
./configure                             \
    --prefix=/usr                       \
    --sysconfdir=/etc                   \
    --localstatedir=/var                \
    --with-piddir=/run/samba            \
    --with-pammodulesdir=/lib/security  \
    --without-ad-dc                     \
    --enable-fhs                        \
    --bundled-libraries=!tdb,!talloc,!pytalloc-util \
    --enable-selftest

make

make DESTDIR=$PKG install

install -d $PKG/lib
mv -v $PKG/usr/lib/libnss_win{s,bind}.so*   $PKG/lib
ln -v -sf /lib/libnss_winbind.so.2 $PKG/usr/lib/libnss_winbind.so
ln -v -sf /lib/libnss_wins.so.2    $PKG/usr/lib/libnss_wins.so
   
install -v -m644 examples/smb.conf.default $PKG/etc/samba/smb.conf.default

mkdir -pv $PKG/etc/openldap/schema
install -v -m644 examples/LDAP/README \
$PKG/etc/openldap/schema/README.LDAP

install -v -m644 examples/LDAP/samba* \
$PKG/etc/openldap/schema

install -v -m755 examples/LDAP/{get*,ol*} \
$PKG/etc/openldap/schema


#  cups 
cd $PKG/usr/lib/
install -d cups/backend
ln -v -sf /usr/bin/smbspool $PKG/usr/lib/cups/backend/smb

# Part of tdb

_ARCH="x86_64"
[ "$PKGMK_ARCH" = "i686" ] && _ARCH=i386
rm $PKG/usr/lib/python3.11/site-packages/_tdb_text.py
rm $PKG/usr/lib/python3.11/site-packages/tdb.cpython-311-${_ARCH}-linux-gnu.so

# service
cd $SRC/runyx-${runyx_version}
make DESTDIR=$PKG install-sysv-samba
make DESTDIR=$PKG install-sysv-winbindd
sed -i s@install-samba@install-sysd-samba@ services/sysd/Makefile
make DESTDIR=$PKG install-sysd-samba
make DESTDIR=$PKG install-sysd-winbindd
make DESTDIR=$PKG install-runyx-samba
make DESTDIR=$PKG install-runyx-winbindd
}

service() {
cd $PKG
bsdtar -cf \
$PKGMK_PACKAGE_DIR/$name.service${PKGMK_BUILDVER}${PKGMK_ARCH}.cards.tar \
lib/{systemd,init} etc/{init,rc.d}

rm -r etc/{rc.d,init}
rm -r lib/{init,systemd}
}

lib() {
cd $PKG
bsdtar -cf \
$PKGMK_PACKAGE_DIR/$name.lib${PKGMK_BUILDVER}${PKGMK_ARCH}.cards.tar \
usr/lib/lib* usr/lib/samba/lib* \
usr/bin/{smbclient,rpcclient,smbspool,smbtree,smbcacls,\
smbcquotas,smbget,net,nmblookup,smbtar}

rm usr/lib/lib*
rm usr/lib/samba/lib*
rm usr/bin/{smbclient,rpcclient,smbspool,smbtree,smbcacls,\
smbcquotas,smbget,net,nmblookup,smbtar}
rm -d /usr/lib|| true
rm -d usr/bin || true
}
devel() {
cd $PKG
bsdtar -cf \
$PKGMK_PACKAGE_DIR/$name.devel${PKGMK_BUILDVER}any.cards.tar \
usr/lib/pkgconfig usr/include

rm -r usr/{include,lib/pkgconfig}
rm -d usr/include || true
rm -d usr/lib || true
}
uptodate() {
local ext url name LINX
LYNX="lynx -read_timeout=20 -dump -listonly -nonumbers "
ext=".tar.gz"
url="https://download.samba.org/pub/samba/stable"
name="samba-"
$LYNX $url/?C=N\;O=A|grep "$ext$"|grep "$url/$name"|sed "s@$ext\$@@"|sed "s@$url/$name@@"|tail -1
}
