# Maintainer: Bruno Pagani <archange@archlinux.org>
# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Frederik Schwan <frederik dot schwan at linux dot com>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - reduce go garbage collection memory usage with GOGC=50
#  - don't check repo signature until author puts his keys on keyservers

pkgname=gitea
pkgver=1.9.5
pkgrel=1
pkgdesc="Painless self-hosted Git service. Community managed fork of Gogs."
arch=(x86_64)
url="https://gitea.io"
license=(MIT)
depends=(git)
makedepends=(go-pie)
optdepends=(
  'mariadb: MariaDB support'
  'memcached: MemCached support'
  'openssh: GIT over SSH support'
  'pam: Authentication via PAM support'
  'postgresql: PostgreSQL support'
  'redis: Redis support'
  'sqlite: SQLite support'
)
backup=('etc/gitea/app.ini')
_tag=4bc18582031a1376f29416a735cfb94fbb4688f5 # git rev-parse v${pkgver}
source=("git+https://github.com/go-gitea/gitea.git#tag=${_tag}"
        gitea.tmpfiles
        gitea.service
        gitea.sysusers
        gitea-arch-defaults.patch)
sha256sums=('SKIP'
            '1521fd7edc3830c695698ffe9835709f1408040b5ec989f07410972c894fa8ba'
            '7789b3f6699b9e111fa080226047cdc765e55ff49a3f72aac989c11c06c3e7e0'
            '2abc51ccd0086bb996194bb7fb241a3f26d84f518417c872b66a3db8970da7e4'
            '5eb47d104acd2e4f8c83bfc27c77b98fcfabcab492ffb2c91675062ecd1706ad')
validpgpkeys=(8C4033A23895237CB27D52D9D9B5613BEB813F99  # Matti Ranta <matti@mdranta.net> old RSA2048, retrieved from https://github.com/techknowlogick.gpg
              B56E3C7437A49E136862F5DE9D8A57ADAA232E95  # Matti Ranta <matti@mdranta.net> new RSA4096, retrieved from https://github.com/techknowlogick.gpg
              ED810FD31FBE67F406ED71BDD4F1E9B6493ED946  # Jonas Franz <info@jonasfranz.software>
              9C5BCD799B3CDB124147A748E0DDFEC24C48784C) # Lauris Bukšis-Haberkorns <lauris@nix.lv> 

prepare() {
  cd ${pkgname}
  # Change some defaults for ArchLinux
  patch -Np1 -i ../gitea-arch-defaults.patch
  # Fetch dependency using go mod
  make vendor
}

build() {
  cd ${pkgname}
  export GOGC=50
  make generate
  EXTRA_GOFLAGS="-trimpath" \
  LDFLAGS="-linkmode external -extldflags \"${LDFLAGS}\" -X \"code.gitea.io/gitea/modules/setting.AppWorkPath=/var/lib/gitea/\""
  make GOFLAGS="-v" TAGS="bindata sqlite pam" build
}

package() {
  install -Dm755 ${pkgname}/${pkgname} -t "${pkgdir}"/usr/bin/
  install -Dm644 ${pkgname}/LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}/
  install -Dm644 ${pkgname}.service -t "${pkgdir}"/usr/lib/systemd/system/
  install -Dm644 ${pkgname}.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/${pkgname}.conf
  install -Dm644 ${pkgname}.sysusers "${pkgdir}"/usr/lib/sysusers.d/${pkgname}.conf
  install -D ${pkgname}/custom/conf/app.ini.sample "${pkgdir}"/etc/gitea/app.ini
}