# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>

#
### Attention: remove old pkg before building - it links against itself! ###
#

pkgname=heimdal
pkgver=1.2.1
pkgrel=1
pkgdesc="Implementation of Kerberos V5 libraries"
arch=('i686' 'x86_64')
url="http://www.h5l.org/"
license=('custom')
depends=('db>=4.8' 'openssl' 'e2fsprogs' 'sqlite3')
backup=('etc/krb5.conf')
options=('!libtool' '!emptydirs')
install="$pkgname.install"
source=("http://www.h5l.org/dist/src/${pkgname}-${pkgver}.tar.gz"
      	'001_all_heimdal-no_libedit.patch'
      	'002_all_heimal-fPIC.patch'
        '003_all_heimdal-rxapps.patch'
      	'005_all_heimdal-suid_fix.patch'
      	'012_all_heimdal-berkdb.patch'
      	'013_all_heimdal-pthread-lib.patch'
      	'014_all_heimdal-path.patch'
      	'022_all_heimdal-as-needed.patch'
      	'heimdal-system_sqlite.patch'
      	'heimdal-r23235-kb5-libwind_la.patch'
      	'heimdal-r23238-kb5_locl_h-wind_h.patch'
      	'heimdal-autoconf-2.64.patch'
      	'rc.heimdal-kdc'
      	'rc.kadmind'
      	'rc.kpasswd')
md5sums=('6e5028077e2a6b101a4a72801ba71b9e'
         '98e28f11f906c967aac22d6184102c9e'
         '6d5571bdedba2e2423b90bccdbac2c0a'
         '2feec3924ee5230b54175b4d4000c872'
         '45aeb207f360f9f4e9e0fabc8bfeecbc'
         '56f5d10d0ec40f2fda82ef144ffac1e0'
         '1b8665b771c4eb6b56ea8582c96e56e3'
         '8208ae8c0b6ff5ab4f64af1693e9e396'
         'd7649e078c87d2ca997080f0deb527c0'
         '949a389ebe7652861b2e178a7e0f1ed9'
         '072f6b2550693adb30117394b1dd354e'
         '7b4537b0e8bde95214211091e55eacf5'
         '9d1d39c3506474bf8258a364700e716c'
         'e59650992b9541a30dfce727a194f6e0'
         '1f2f86a67bbfddb7af581d35fdca9627'
         'f8f1eca95b9d3f2b4ebf2417b71b81cf')

build() {
  #[ -e /usr/lib/libasn1.so ] && echo "## remove old heimdal pkg first ##" && return 1
  
  cd $srcdir/$pkgname-$pkgver
  
  patch -Np0 -i $srcdir/001_all_heimdal-no_libedit.patch || return 1
  patch -Np0 -i $srcdir/002_all_heimal-fPIC.patch || return 1
  patch -Np0 -i $srcdir/003_all_heimdal-rxapps.patch || return 1
  patch -Np0 -i $srcdir/005_all_heimdal-suid_fix.patch || return 1
  patch -Np1 -i $srcdir/012_all_heimdal-berkdb.patch || return 1
  patch -Np1 -i $srcdir/013_all_heimdal-pthread-lib.patch || return 1
  patch -Np0 -i $srcdir/014_all_heimdal-path.patch || return 1
  patch -Np0 -i $srcdir/022_all_heimdal-as-needed.patch || return 1
  patch -Np0 -i $srcdir/heimdal-system_sqlite.patch || return 1
  patch -Np2 -i $srcdir/heimdal-r23235-kb5-libwind_la.patch || return 1
  patch -Np2 -i $srcdir/heimdal-r23238-kb5_locl_h-wind_h.patch || return 1
  patch -Np0 -i $srcdir/heimdal-autoconf-2.64.patch || return 1
  
  sed \
    -e 's|var/heimdal|var/lib/heimdal|g' \
    -i configure.in \
    -i doc/setup.texi \
    -i doc/heimdal.info \
    -i kadmin/kadmind.8 \
    -i kdc/kdc.8 \
    -i lib/hdb/hdb.h \
    -i lib/krb5/krb5.conf.5 \
    -i lib/krb5/krb5.conf.cat5
  
  libtoolize --force || return 1
  aclocal -I cf || return 1
  autoconf || return 1
  automake || return 1
  
  export LDFLAGS="${LDFLAGS} -Wl,--as-needed"
  ./configure \
    --prefix=/usr \
    --enable-shared=yes \
    --without-x \
    --sysconfdir=/etc \
    --mandir=/usr/share/man \
    --datadir=/var/lib/heimdal \
    --localstatedir=/var/lib/heimdal \
    --with-openssl=/usr \
    --with-readline-lib=/usr/lib \
    --with-readline-include=/usr/include/readline \
    --libexecdir=/usr/sbin || return 1
	
  make || return 1
}

package() {
  cd $srcdir/$pkgname-$pkgver
  
  make DESTDIR=$pkgdir install || return 1
  
  # Remove editline, we use libreadline. This library is broken anyways, so nobody misses it after removal
  rm $pkgdir/usr/lib/libeditline.* || return 1
  rm $pkgdir/usr/include/editline.h || return 1
  rm $pkgdir/usr/share/man/man3/editline.* || return 1
  
  # Rename daemons and their manpages
  for i in telnetd ftpd rshd ; do
    mv $pkgdir/usr/share/man/man8/$i.8 $pkgdir/usr/share/man/man8/k$i.8 || return 1
    mv $pkgdir/usr/sbin/$i $pkgdir/usr/sbin/k$i || return 1
  done
  
  # Rename clients and their manpages
  for i in rcp rsh telnet ftp su login ; do
    if [ -f $pkgdir/usr/share/man/man1/$i.1 ] ; then
      mv $pkgdir/usr/share/man/man1/$i.1 $pkgdir/usr/share/man/man1/k$i.1 || return 1
    fi
    mv $pkgdir/usr/bin/$i $pkgdir/usr/bin/k$i || return 1
  done
  rm -rf $pkgdir/usr/share/man/cat{1,3,5,8}
  
  # Arch could be a KDC too
  install -d $pkgdir/etc/rc.d || return 1
  install -m644 $srcdir/heimdal-$pkgver/krb5.conf $pkgdir/etc/ || return 1
  for i in heimdal-kdc kadmind kpasswd ; do
    install -m755 $srcdir/rc.$i $pkgdir/etc/rc.d/$i || return 1
  done
  
  # Remove conflicts 
  rm $pkgdir/usr/share/man/man5/ftpusers.5*		# man-pages
  
  # Install the license
  install -d $pkgdir/usr/share/licenses/$pkgname/ || return 1
  install -m644 $srcdir/$pkgname-$pkgver/LICENSE $pkgdir/usr/share/licenses/$pkgname/ || return 1
}

# vim:set ts=2 sw=2 et:
