# Maintainer: Sébastien Luttringer

pkgname=backuppc
pkgver=4.3.1
_xsver=0.59
_rbpcver=3.1.2.1
pkgrel=2
pkgdesc='Enterprise-grade system for backing up Linux, Windows and MacOS PCs'
url='https://github.com/backuppc/backuppc/'
license=('GPL2')
arch=('x86_64')
makedepends=('git')
depends=('glibc' 'popt' 'perl' 'par2cmdline' 'perl-archive-zip' 'perl-io-dirent'
         'perl-file-listing' 'perl-time-modules' 'perl-cgi' 'perl-xml-rss'
         'smtp-forwarder')
optdepends=('openssh: ssh transfert support'
            'rsync: rsync transfert support'
            'smbclient: smb/cifs transfert support'
            'rrdtool: graphs of the pool usage ')
source=("https://github.com/backuppc/backuppc/releases/download/$pkgver/BackupPC-$pkgver.tar.gz"
        "https://github.com/backuppc/backuppc-xs/releases/download/${_xsver}/BackupPC-XS-${_xsver}.tar.gz"
        "https://github.com/backuppc/rsync-bpc/releases/download/${_rbpcver}/rsync-bpc-${_rbpcver}.tar.gz"
        "$pkgname.service"
        "$pkgname.sysusers"
        "$pkgname.tmpfiles"
        "$pkgname.profile.sh"
        "$pkgname.profile.csh"
        "$pkgname.httpd")
install=$pkgname.install
backup=("etc/$pkgname/config.pl"
        "etc/$pkgname/hosts"
        "etc/httpd/conf/extra/$pkgname.conf"
        "etc/$pkgname/$pkgname.users")
md5sums=('7d686f965be4e6fd6c4a34569ff53e00'
         '1f64d8ced0095435849a7e771f025d84'
         '7749b21b46db4e6a74120c8687a5944c'
         '9d798d275eb737bcfd035d5277b6b4ce'
         'd90840387358e5dd230cace0b2d6b53a'
         'bda3ec3f4c75521c6869279eb16af2f8'
         '67a939aa63740c52d12bbdca72d37891'
         'ef09e4dae5b4197998f5c3a74e0ec86d'
         '99e641c4f3ba4fbcc53e046ce7290ad5')

prepare() {
  cd BackupPC-$pkgver
  # apply patch from the source array (should be a pacman feature)
  local filename
  for filename in "${source[@]}"; do
    if [[ "$filename" =~ \.patch$ ]]; then
      msg2 "Applying patch ${filename##*/}"
      patch -p1 -N -i "$srcdir/${filename##*/}"
    fi
  done
  :
}

build() {
  msg2 'rsync-bpc'
  cd "$srcdir"/rsync-bpc-$_rbpcver
  ./configure --prefix=/usr/share/backuppc
  make
}

package() {
  msg2 'rsync-bpc'
  cd "$srcdir"/rsync-bpc-$_rbpcver
  make install DESTDIR="$pkgdir"

  msg2 'backuppc-xs'
  cd "$srcdir"/BackupPC-XS-$_xsver
  perl Makefile.PL INSTALLDIRS=vendor
  make -j1 # parallel build fail
  make install DESTDIR="$pkgdir"

  msg2 'backuppc'
  cd "$srcdir"/BackupPC-$pkgver
  export PERLLIB=$(echo "$pkgdir"/usr/lib/perl5/*/vendor_perl/)
  perl configure.pl \
    --batch \
    --no-set-perms \
    --uid-ignore \
    --hostname __HOSTNAME__ \
    --compress-level 5 \
    --backuppc-user=backuppc \
    --dest-dir "$pkgdir" \
    --fhs \
    --install-dir /usr/share/$pkgname \
    --config-dir /etc/$pkgname \
    --cgi-dir /usr/share/$pkgname/cgi-bin \
    --html-dir /usr/share/$pkgname/html \
    --html-dir-url /backuppc \
    --data-dir /var/lib/$pkgname \
    --log-dir /var/log/$pkgname \
    --run-dir /run/$pkgname \
    --bin-path rsync_bpc=/usr/share/backuppc/bin/rsync_bpc \
    --bin-path smbclient=/usr/bin/smbclient \
    --bin-path nmblookup=/usr/bin/nmblookup \
    --bin-path rsync=/usr/bin/rsync \
    --bin-path ssh=/usr/bin/ssh \
    --bin-path sendmail=/usr/bin/sendmail \
    --bin-path ping=/usr/bin/ping \
    --bin-path ping6=/usr/bin/ping \
    --bin-path rrdtool=/usr/bin/rrdtool \
    --
  cd "$srcdir"
  # systemd
  install -D -m 644 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service"
  install -D -m 644 $pkgname.sysusers "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
  install -D -m 644 $pkgname.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
  # install shell profiles
  install -D -m 755 $pkgname.profile.sh "$pkgdir/etc/profile.d/$pkgname.sh"
  install -D -m 755 $pkgname.profile.csh "$pkgdir/etc/profile.d/$pkgname.csh"
  # install apache http
  install -D -m 644 $pkgname.httpd "$pkgdir/etc/httpd/conf/extra/$pkgname.conf"
  install -D -m 640 /dev/null "$pkgdir/etc/$pkgname/$pkgname.users"
  # set correct permissions
  cd "$pkgdir"
  chown 126:126 -R etc/$pkgname
  chown 126:126 -R var/{log,lib}/$pkgname
  chmod 755 etc
  chmod 755 -R var usr/share/$pkgname/{cgi-,}bin
  chmod 750 var/log/$pkgname etc/$pkgname
  chmod 750 -R var/lib/$pkgname
  chmod 640 etc/$pkgname/{config.pl,hosts}
  # no /run
  rm -rv "$pkgdir"/run
  # no core_perl directory
  rm -rv "$pkgdir"/usr/lib/perl5/*/core_perl
}

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