# Contributor: Phillip Smith <fukawi2@NO-SPAM.gmail.com>
pkgname=amanda
pkgver=3.2.2
pkgrel=1
pkgdesc="Advanced Maryland Automatic Network Disk Archiver"
arch=('i686' 'x86_64')
license=('custom')
depends=('perl>=5.6.0' 'glib2>=2.2.0' 'gawk' 'gnuplot' 'tar>=1.12' 'xinetd')
optdepends=('dump: for creating backups in dump format' 'samba: for backing up Windows hosts')
install="$pkgname.install"
url="http://www.amanda.org"
source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
        "xinetd.$pkgname")
md5sums=('4d5a5efcdcf01947a89323cd62d8fb6e'
         '910c9823073148c576b14d4a71bc6458')

build() {
  # the amanda user and group are required to build
  if [ -z `egrep '^amanda' /etc/passwd` ]; then
    msg "Adding user/group amanda (temporarily)"
    groupadd -g 112 amanda || return 1
    useradd -u 112 -g amanda -G storage,disk -m -d /var/amanda -s /bin/bash -c "Amanda Backup Daemon"  amanda || return 1
    cleanup=1
  else
    cleanup=0
  fi
  
  cd $srcdir/$pkgname-$pkgver
  
	./configure --prefix=/usr \
    --with-configdir=/etc/amanda \
    --with-gnutar-listdir=/var/amanda/gnutar-lists \
    --mandir=/usr/share/man \
		--with-user=amanda \
    --with-group=amanda \
    --without-ipv6 \
    --with-ssh-security \
    --htmldir=/srv/http/docs/$pkgname || return 1

	make || return 1
	
  if [ $cleanup -eq 1 ]; then
    msg "Removing user/group amanda"
    userdel -r amanda
  fi
}

package() {
  _amandauser='amanda'
  _devgroup='disk'
  _amandahosts='var/amanda/.amandahosts'
  _amandadates='var/amanda/amandates'
  _amandadumpdates='var/amanda/dumpdates'
  _amandagnutarlists='var/amanda/gnutar-lists'
  
  # the amanda user and group are required to package
  if [ -z `egrep '^amanda' /etc/passwd` ]; then
    msg "Adding user/group amanda (temporarily)"
    groupadd -g 112 amanda || return 1
    useradd -u 112 -g amanda -G storage,disk -m -d /var/amanda -s /bin/bash -c "Amanda Backup Daemon"  amanda || return 1
    cleanup=1
  else
    cleanup=0
  fi
  
  cd $srcdir/$pkgname-$pkgver || return 1
  
  # Install the compiled output
  make DESTDIR=$pkgdir install || return 1
  
  # Install configuration examples
  mkdir -p $pkgdir/etc/$pkgname/ || return 1
  cp -r example $pkgdir/etc/$pkgname/ || return 1
  
  # Install xinetd configuration
  mkdir -p $pkgdir/etc/xinetd.d/ || return 1
  cp $srcdir/xinetd.$pkgname $pkgdir/etc/xinetd.d/$pkgname || return 1
  
  # Create some files
  mkdir -p $pkgdir/var/$pkgname/ || return 1
  chmod 700 $pkgdir/var/$pkgname/ || return 1
  chown -R $_amandauser:$_devgroup $pkgdir/var/$pkgname || return 1

  touch $pkgdir/$_amandahosts || return 1
  chown $_amandauser:$_devgroup $pkgdir/$_amandahosts || return 1
  chmod 600 $pkgdir/$_amandahosts || return 1
  cat > $pkgdir/var/$pkgname/.amandahosts << EOT
# This is where amanda works out what remote connections to allow in the format
# of <host> <username> <command>
#
# server1.example.com   amanda  amdump
EOT
  
  touch $pkgdir/$_amandadates || return 1
  chown $_amandauser:$_devgroup $pkgdir/$_amandadates || return 1
  
  touch $pkgdir/$_amandadumpdates || return 1
  chown $_amandauser:$_devgroup $pkgdir/$_amandadumpdates || return 1
  chmod 664 $pkgdir/$_amandadumpdates || return 1

  mkdir -p $pkgdir/$_amandagnutarlists || return 1
  chown -R $_amandauser:$_devgroup $pkgdir/$_amandagnutarlists || return 1

  # Fix permissions
  chown -R $_amandauser:$_devgroup $pkgdir/etc/$pkgname/ || return 1
  
  # Install the licence
  install -Dm444 COPYRIGHT $pkgdir/usr/share/licences/$pkgname/COPYRIGHT || return 1

  # Cleanup
  rm -Rf $pkgdir/usr/share/amanda/example/ || return 1
  if [ $cleanup -eq 1 ]; then
    msg "Removing user/group amanda"
    userdel -r amanda
  fi
}

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