# 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>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - fix 32-bit lib packaging
#  - drop zeroc-ice-java due to gradle FTBFS

highmem=1

pkgname=zeroc-ice
pkgver=3.7.4
pkgrel=1
pkgdesc="An object-oriented middleware that provides RPC functionality"
arch=(x86_64)
url="https://zeroc.com"
license=(GPL custom:ice)
makedepends=(bzip2)
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
    java14.patch
)
sha256sums=('57f200bd2916799bce12960e579d9f9e5b6a9801addaf93d97bb4ce15c760a44'
            '957efa66557fe1a9abcc2b6c61e1d63d9880c990cf884f7a2b230ba65dd24426'
            '5fdbb1ed753e84e6b49c529e171af848e74a8890fe485dfe1d2bbec3c198dd90'
            '6da6def608b170b26d13dc4cbe3447b32aa942c629ef43388f801970965ed2c8')

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

prepare() {
  cd "${srcdir}"/ice-${pkgver}
  patch -Np1 -i "${srcdir}"/java14.patch
}

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

package() {
  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

  if [ $CARCH == "aarch64" ]; then
    rm -df "${pkgdir}"/usr/lib/
    mv "${pkgdir}"/usr/lib64/ "${pkgdir}"/usr/lib/
  fi

  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
}