# Maintainer: Sven-Hendrik Haase <svenstaro@gmail.com>
# Contributor: Joe George <joe at externl dot com>
# Contributor: Daniel Spies <ds20150201aur at pskx dot net>
# Contributor: Otto Allmendinger <otto.allmendinger@gmail.com>

pkgname=(zeroc-ice zeroc-ice-java)
pkgbase=zeroc-ice
pkgver=3.7.5
pkgrel=1
pkgdesc="An object-oriented middleware that provides RPC functionality"
arch=(x86_64)
url="https://zeroc.com"
license=('GPL' 'custom:ice')
makedepends=('gradle' 'java-environment')
depends=('mcpp' 'lmdb' 'libedit' 'expat' 'bzip2' 'openssl' 'libxcrypt')
source=("ice-${pkgver}.tar.gz::https://github.com/zeroc-ice/ice/archive/v${pkgver}.tar.gz"
        "ice-packaging-${pkgver}.tar.gz::https://github.com/zeroc-ice/ice-packaging/archive/v${pkgver}.tar.gz"
        zeroc-ice.sysusers
)
sha256sums=('36bf45591a95e6ee7216153d45d8eca05ff00c1da35608f0c400e6ddc8049da9'
            '8cf3a45d609e57f26826449d35eb1c94d074c4b08371779c59dd85184cdec339'
            '5fdbb1ed753e84e6b49c529e171af848e74a8890fe485dfe1d2bbec3c198dd90')

_make_args=(
    "OPTIMIZE=yes"
    "USR_DIR_INSTALL=yes"
    "prefix=/usr"
    "CONFIGS=shared cpp11-shared"
    "SKIP=slice2py"
)

build() {
  cd "${srcdir}"/ice-${pkgver}
  make "${_make_args[@]}" "LANGUAGES=cpp java"
}

package_zeroc-ice() {
  backup=("etc/glacier2router.conf"
          "etc/icegridnode.conf"
          "etc/icegridregistry.conf"
  )

  cd "${srcdir}"/ice-${pkgver}

  make install "${_make_args[@]}" DESTDIR="${pkgdir}" "LANGUAGES=cpp"
  install -Dm644 "${srcdir}"/ice-${pkgver}/ICE_LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE

  rm -f "${pkgdir}"/usr/share/Ice-${pkgver}/LICENSE
  rm -f "${pkgdir}"/usr/share/Ice-${pkgver}/ICE_LICENSE

  rm -df "${pkgdir}"/usr/lib/
  mv "${pkgdir}"/usr/lib64/ "${pkgdir}"/usr/lib/

  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/glacier2router.conf "${pkgdir}"/etc/glacier2router.conf
  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/icegridnode.conf "${pkgdir}"/etc/icegridnode.conf
  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/icegridregistry.conf "${pkgdir}"/etc/icegridregistry.conf

  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/glacier2router.service \
                 "${pkgdir}"/usr/lib/systemd/system/glacier2router.service
  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/icegridnode.service \
                 "${pkgdir}"/usr/lib/systemd/system/icegridnode.service
  install -Dm644 "${srcdir}"/ice-packaging-${pkgver}/ice/rpm/icegridregistry.service \
                 "${pkgdir}"/usr/lib/systemd/system/icegridregistry.service

  mkdir -p "${pkgdir}"/var/lib/ice/icegrid/{node1,registry}
  chown -R 101:101 "${pkgdir}"/var/lib/ice

  install -Dm644 "${srcdir}"/zeroc-ice.sysusers "${pkgdir}"/usr/lib/sysusers.d/$pkgname.conf
}

package_zeroc-ice-java() {
  depends=(zeroc-ice java-environment)

  cd "${srcdir}"/ice-${pkgver}

  export GRADLE_USER_HOME=/tmp
  make install "${_make_args[@]}" DESTDIR="${pkgdir}" "LANGUAGES=java"

  rm -rf "${pkgdir}"/usr/share/ice
}
