# Maintainer: Christian Hesse <mail@eworm.de>
# Maintainer: T.J. Townsend <blakkheim@archlinux.org>

pkgname=rsync
pkgver=3.3.0
pkgrel=1.1
pkgdesc='A fast and versatile file copying tool for remote and local files'
url='https://rsync.samba.org/'
license=('GPL3')
ncxfat_depends=('acl' 'libacl.so' 'openssl' 'zlib')
ncxfat_optdepends=('python: for rrsync')
ncxfab_makedepends=('git' 'autoconf' 'automake' 'libtool')
ncxfat_makedepends=(glibc gcc binutils openssl)
backup=('$MPKG_BACKUPETCPATH/etc/rsyncd.conf')
validpgpkeys=('0048C8B026D4C96F0E589C2F6C859FB14B96A8C5') # Wayne Davison <wayned@users.sourceforge.net>
source=("git+https://github.com/WayneD/rsync#tag=v${pkgver}?signed"
        'rsyncd.conf')
sha256sums=('110fff983288a09e4cedc754ea8f6cecb5c3d7a7a3c8291cc979be93b5c6b777'
            '733ccb571721433c3a6262c58b658253ca6553bec79c2bdd0011810bb4f2156b')

# https://github.com/RsyncProject/rsync/issues/589
_backports=(
	b1863002a72007b262a5478d8cd05b20f9bbf87d
	64bca681f316803419ae1aa1f692b950d8004685	
)

_reverts=(
)

prepare() {
  cd rsync

  local _c
  for _c in "${_backports[@]}"; do
    if [[ $_c == *..* ]]; then
      git log --oneline --reverse "${_c}"
    else
      git log --oneline -1 "${_c}"
    fi
    git cherry-pick -n -m1 "${_c}"
  done
  for _c in "${_reverts[@]}"; do
    git log --oneline -1 "${_c}"
    git revert -n "${_c}"
  done
}

build() {
  cd rsync

  ./configure \
    --build=$MPKG_BUILDMACHINE --host=$MPKG_TARGETMACHINE \
    --prefix=$MPKG_USRPATH \
    --enable-md2man=no \
    --enable-lz4=no \
    --enable-zstd=no \
    --enable-xxhash=no \
    --enable-ipv6 \
    --disable-debug \
    --with-rrsync=no \
    --with-included-popt=yes \
    --with-included-zlib=no
  make
}

check() {
  cd rsync

  # check for IPv6 support
  # https://gitlab.archlinux.org/archlinux/packaging/packages/rsync/-/commit/8936e33b245da170e7b5488b4ca35727ac9c4b68
  if rsync -V | grep -q 'no IPv6'; then
    echo 'Built without IPv6 support!' >&2
    exit 1
  fi

  # make test
}

package() {
  cd rsync

  make DESTDIR="$pkgdir" install
  install -Dm0644 ../rsyncd.conf "$pkgdir/etc/rsyncd.conf"
  install -Dm0644 packaging/systemd/rsync.service "$pkgdir/usr/lib/systemd/system/rsyncd.service"
  install -Dm0644 packaging/systemd/rsync.socket "$pkgdir/usr/lib/systemd/system/rsyncd.socket"
  install -Dm0644 packaging/systemd/rsync@.service "$pkgdir/usr/lib/systemd/system/rsyncd@.service"
}
