# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.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.2
pkgrel=1
pkgdesc="An object-oriented middleware that provides RPC functionality"
arch=(x86_64)
url="https://zeroc.com"
license=(GPL custom:ice)
makedepends=(bzip2 gradle java-environment)
depends=(mcpp lmdb)
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=('e329a24abf94a4772a58a0fe61af4e707743a272c854552eef3d7833099f40f9'
            '4a1aa0bfe3b2ec8ca9b834cbf3b1300fc48e25ccffe82a7a1b6d2f46644ba0bc'
            '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() {
  makedepends=(gradle 'java-environment=8')
  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
}
