# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Oleksandr Natalenko <oleksandr@natalenko.name>
# Contributor: Andrew Lewis <nerf@judo.za.org>
# Contributor: mezcal

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - remove dependency on hyperscan (x86 only)
#  - set -DENABLE_HYPERSCAN=OFF, -DENABLE_LTO=OFF

pkgname=rspamd
pkgver=2.7
pkgrel=2
epoch=
pkgdesc='Fast, free and open-source spam filtering system'
arch=(x86_64)
url=https://rspamd.com
license=(BSD)
depends=(
  file
  glib2
  glibc
  icu
  jemalloc
  libevent
  libsodium
  luajit
  openblas
  openssl
  pcre
  sqlite
  zlib
)
makedepends=(
  cmake
  git
  ninja
  perl
  ragel
)
optdepends=('redis: Redis cache and data storage')
backup=(
  etc/rspamd/actions.conf
  etc/rspamd/cgp.inc
  etc/rspamd/common.conf
  etc/rspamd/composites.conf
  etc/rspamd/groups.conf
  etc/rspamd/logging.inc
  etc/rspamd/maps.d/dmarc_whitelist.inc
  etc/rspamd/maps.d/maillist.inc
  etc/rspamd/maps.d/mid.inc
  etc/rspamd/maps.d/mime_types.inc
  etc/rspamd/maps.d/redirectors.inc
  etc/rspamd/maps.d/spf_dkim_whitelist.inc
  etc/rspamd/maps.d/surbl-whitelist.inc
  etc/rspamd/metrics.conf
  etc/rspamd/modules.conf
  etc/rspamd/modules.d/antivirus.conf
  etc/rspamd/modules.d/arc.conf
  etc/rspamd/modules.d/asn.conf
  etc/rspamd/modules.d/chartable.conf
  etc/rspamd/modules.d/clickhouse.conf
  etc/rspamd/modules.d/dcc.conf
  etc/rspamd/modules.d/dkim.conf
  etc/rspamd/modules.d/dkim_signing.conf
  etc/rspamd/modules.d/dmarc.conf
  etc/rspamd/modules.d/elastic.conf
  etc/rspamd/modules.d/emails.conf
  etc/rspamd/modules.d/external_services.conf
  etc/rspamd/modules.d/force_actions.conf
  etc/rspamd/modules.d/forged_recipients.conf
  etc/rspamd/modules.d/fuzzy_check.conf
  etc/rspamd/modules.d/greylist.conf
  etc/rspamd/modules.d/hfilter.conf
  etc/rspamd/modules.d/history_redis.conf
  etc/rspamd/modules.d/http_headers.conf
  etc/rspamd/modules.d/maillist.conf
  etc/rspamd/modules.d/metadata_exporter.conf
  etc/rspamd/modules.d/metric_exporter.conf
  etc/rspamd/modules.d/mid.conf
  etc/rspamd/modules.d/milter_headers.conf
  etc/rspamd/modules.d/mime_types.conf
  etc/rspamd/modules.d/multimap.conf
  etc/rspamd/modules.d/mx_check.conf
  etc/rspamd/modules.d/neural.conf
  etc/rspamd/modules.d/once_received.conf
  etc/rspamd/modules.d/p0f.conf
  etc/rspamd/modules.d/phishing.conf
  etc/rspamd/modules.d/ratelimit.conf
  etc/rspamd/modules.d/rbl.conf
  etc/rspamd/modules.d/redis.conf
  etc/rspamd/modules.d/regexp.conf
  etc/rspamd/modules.d/replies.conf
  etc/rspamd/modules.d/reputation.conf
  etc/rspamd/modules.d/rspamd_update.conf
  etc/rspamd/modules.d/spamassassin.conf
  etc/rspamd/modules.d/spamtrap.conf
  etc/rspamd/modules.d/spf.conf
  etc/rspamd/modules.d/surbl.conf
  etc/rspamd/modules.d/trie.conf
  etc/rspamd/modules.d/url_redirector.conf
  etc/rspamd/modules.d/whitelist.conf
  etc/rspamd/options.inc
  etc/rspamd/rspamd.conf
  etc/rspamd/scores.d/fuzzy_group.conf
  etc/rspamd/scores.d/headers_group.conf
  etc/rspamd/scores.d/hfilter_group.conf
  etc/rspamd/scores.d/mime_types_group.conf
  etc/rspamd/scores.d/mua_group.conf
  etc/rspamd/scores.d/phishing_group.conf
  etc/rspamd/scores.d/policies_group.conf
  etc/rspamd/scores.d/rbl_group.conf
  etc/rspamd/scores.d/statistics_group.conf
  etc/rspamd/scores.d/subject_group.conf
  etc/rspamd/scores.d/surbl_group.conf
  etc/rspamd/scores.d/whitelist_group.conf
  etc/rspamd/settings.conf
  etc/rspamd/statistic.conf
  etc/rspamd/worker-controller.inc
  etc/rspamd/worker-fuzzy.inc
  etc/rspamd/worker-normal.inc
  etc/rspamd/worker-proxy.inc
)
install=rspamd.install
_tag=4c56c1210dac78be727fc07d1c29c140034e4b19
source=(
  git+https://github.com/rspamd/rspamd.git#tag=${_tag}
  rspamd.tmpfiles
  rspamd.sysusers
  rspamd.logrotate
)
b2sums=('SKIP'
        '6b1b4220444d382d01fe981acf51580c397363a873507fdb508fd5109adae2609c03e629ecdd6e48c13f068d0c3530be4d0fb55b3084c33522619dd29f70a40c'
        '5b4db27d87158609519bb0e59700ac627d447e4627b70600a70638f81a39361ad416c4784dafc392e9f9bc7b69211587ae64cbab7bec98668e75df5c4fba46ea'
        '25c2253c7ecd9fba215cb6a1df93d76fab98e98ffeec380f828d7a612a78e0c4822dacc838ca37c2ceec452e54e7fc06c4c4df3290c8a6e8ee5ae869bbbb449e')

pkgver() {
  cd rspamd

  git describe --tags
}

prepare() {
  cd rspamd

  sed 's/_rspamd/rspamd/g' -i rspamd.service
}

build() {
  cmake -S rspamd -B build -G Ninja \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCONFDIR=/etc/rspamd \
    -DDBDIR=/var/lib/rspamd \
    -DLOGDIR=/var/log/rspamd \
    -DRUNDIR=/run/rspamd \
    -DRSPAMD_USER=rspamd \
    -DNO_SHARED=ON \
    -DWANT_SYSTEMD_UNITS=ON \
    -DENABLE_HYPERSCAN=OFF \
    -DENABLE_JEMALLOC=ON \
    -DENABLE_OPTIMIZATION=ON \
    -DENABLE_LTO=OFF
  cmake --build build
}

package() {
  DESTDIR="${pkgdir}" cmake --build build --target install

  install -Dm 644 rspamd/LICENSE.md -t "${pkgdir}"/usr/share/licenses/rspamd
  install -Dm 644 rspamd.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/rspamd.conf
  install -Dm 644 rspamd.sysusers "${pkgdir}"/usr/lib/sysusers.d/rspamd.conf
  install -Dm 644 rspamd.logrotate "${pkgdir}"/etc/logrotate.d/rspamd
}

# vim: ts=2 sw=2 et: