# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=krb5
pkgver=1.13.1
pkgrel=0

case $pkgver in
*.*.*) _ver=${pkgver%.*};;
*) _ver=${pkgver};;
esac

pkgdesc="The Kerberos network authentication system"
url="http://web.mit.edu/kerberos/www/"
arch="all"
license="MIT"
depends="krb5-conf"
depends_dev="e2fsprogs-dev"
makedepends="$depends_dev libverto-dev openldap-dev openssl-dev
	keyutils-dev bison flex perl"
install=""
options="suid"
subpackages="$pkgname-dev $pkgname-doc $pkgname-server
	$pkgname-server-ldap:ldap $pkgname-pkinit $pkgname-libs"
source="http://web.mit.edu/kerberos/dist/krb5/${_ver}/krb5-$pkgver-signed.tar
	mit-krb5_krb5-config_LDFLAGS.patch

	krb5kadmind.initd
	krb5kdc.initd
	krb5kpropd.initd
	"

_builddir="$srcdir"/krb5-$pkgver
unpack() {
	default_unpack
	cd "$srcdir"
	tar -zxf krb5-$pkgver.tar.gz
}

prepare() {
	local i
	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"/src
	./configure \
		CPPFLAGS="$CPPFLAGS -fPIC -I/usr/include/et" \
		WARN_CFLAGS= \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--localstatedir=/var/lib \
		--enable-shared \
		--disable-static \
		--disable-rpath \
		--with-system-et \
		--with-system-ss \
		--with-system-verto \
		--without-tcl \
		--with-ldap \
		--with-crypto-impl=openssl \
		|| return 1
	make
}

package() {
	cd "$_builddir"/src
	make install DESTDIR="$pkgdir" || return 1
	mkdir -p "$pkgdir"/usr/share/doc/$pkgname
	mv "$pkgdir"/usr/share/examples "$pkgdir"/usr/share/doc/$pkgname/

	for i in $source; do
		case $i in
		*.initd) install -Dm755 "$srcdir"/$i \
			"$pkgdir"/etc/init.d/${i%.initd};;
		esac
	done
}

server() {
	pkgdesc="The KDC and related programs for Kerberos 5"
	depends="libverto-libev"
	mkdir -p "$subpkgdir"/usr/share \
		"$subpkgdir"/usr/bin \
		"$subpkgdir"/etc/
	install -d "$subpkgdir"/var/lib/krb5kdc || return 1
	mv "$pkgdir"/usr/sbin "$subpkgdir"/usr/ || return 1
	mv "$pkgdir"/etc/init.d "$subpkgdir"/etc/ || return 1
	# used for testing server
	mv "$pkgdir"/usr/bin/sclient "$subpkgdir"/usr/bin/

}

ldap() {
	pkgdesc="The LDAP storage plugin for the Kerberos 5 KDC"
	mkdir -p "$subpkgdir"/usr/lib/krb5/plugins/kdb
	mv "$pkgdir"/usr/lib/krb5/plugins/kdb/kldap.so \
		"$subpkgdir"/usr/lib/krb5/plugins/kdb/ || return 1
	mv "$pkgdir"/usr/lib/libkdb_ldap* \
		 "$subpkgdir"/usr/lib/
}

pkinit() {
	pkgdesc="The PKINIT module for Kerberos 5"
	mkdir -p "$subpkgdir"/usr/lib/krb5/plugins/preauth
	mv "$pkgdir"/usr/lib/krb5/plugins/preauth/pkinit.so \
		"$subpkgdir"/usr/lib/krb5/plugins/preauth/pkinit.so
}

libs() {
	pkgdesc="The shared libraries used by Kerberos 5"
	depends="krb5-conf"
	mkdir -p "$subpkgdir"/usr/
	mv "$pkgdir"/usr/lib "$subpkgdir"/usr/ || return 1
}

md5sums="567586cdf02aa8c842c2fab7a94f3c1f  krb5-1.13.1-signed.tar
c84a0c7d8014e3528524956ffdd1c3e9  mit-krb5_krb5-config_LDFLAGS.patch
29906e70e15025dda8b315d8209cab4c  krb5kadmind.initd
47efe7f24c98316d38ea46ad629b3517  krb5kdc.initd
3e0b8313c1e5bfb7625f35e76a5e53f1  krb5kpropd.initd"
sha256sums="4df629fdf97f362cf81edbf38d613b32b492dd88c876cf3aa1c66562f296663e  krb5-1.13.1-signed.tar
84007c7423f67db7a8b248b9643c49ef25f2d56ce15c2574eb41ecbf51bcd3f2  mit-krb5_krb5-config_LDFLAGS.patch
c7a1ec03472996daaaaf1a4703566113c80f72ee8605d247098a25a13dad1f5f  krb5kadmind.initd
709309dea043aa306c2fcf0960e0993a6db540c220de64cf92d6b85f1cca23c5  krb5kdc.initd
86b15d691e32b331ac756ee368b7364de6ab238dcae5adfed2a00b57d1b64ef4  krb5kpropd.initd"
sha512sums="f26dce8f682bd3fbf38a15df5f91722b573d4df4cc193f7ba8dc369cbbee8f4bc2a72f56513d2cf27697ce8baaf954afe04e3eefc15c2883fa1d5260145aef6e  krb5-1.13.1-signed.tar
5a3782ff17b383f8cd0415fd13538ab56afd788130d6ad640e9f2682b7deaae7f25713ce358058ed771091040dccf62a3bc87e6fd473d505ec189a95debcc801  mit-krb5_krb5-config_LDFLAGS.patch
561af06b4e0f0e130dda345ad934bcdb9984ec00cc38d871df1d3bb3f9e1c7d86f06db5b03229707c88b96ad324e3a2222420f8494aa431002cacea0246b1153  krb5kadmind.initd
d6d0076886ce284fc395fafc2dc253b4b3ee97b2986dea51388d96a1e1294680fb171f475efc7844559e2c6aac44b26678a9255921db9a58dcf2e7164f0aeec5  krb5kdc.initd
f97d33fa977c132a470d95fd539d8e8db018e03f28dbc9d3e04faf78ebb7392196e7d5135f138c2390979bf37b3ae0265e6827f0c17b44b277eb2dfff0a96f77  krb5kpropd.initd"