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

pkgname=gitea
pkgver=1.15.0
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 nodejs npm)
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=e4a8fcb2bf14a794380611d64e84ce1c16d75894 # git rev-parse v${pkgver}
source=("git+https://github.com/go-gitea/gitea.git#tag=${_tag}?signed"
        gitea.tmpfiles
        gitea.service
        gitea.sysusers
        gitea-arch-defaults.patch)
b2sums=('SKIP'
        'a22cb9bd9b62d9e9e87d5e75815d6199c41e0bf79d9cf67ae8ebd414e4b96c5960e61b8c6088a7726772a6298dc10b0d3bd82b0daceac26a9f2cd8cb2e5d43b4'
        'df5e52aae66dd28e9234db052ad8776fbf5d3773f1d732f627b258ee9a568df3b8751f31e1c81676cba7e94ae4aa5b4bfb6831d09e240359b4ed027f74e5b17a'
        '4ed38b85d9745de91c0bb275441d1df5251de660822ac959d0850ded51947528c067c0eab535380ba12c5831600b16c967f36a22050376fae511e82964291c23'
        'e1fd4d7a150bf8b52124f13fb01a24fa982edb9037a2edf9606e63788fffcdbf3e52cb386af65e4ed1b21dafe8b9978b9d14f355bb625c80860a8285e634e93d')
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>
  D8F9672D77C0BB60A024C23EDFDE60A0093EB926  # Lauris Bukšis-Haberkorns <lauris@nix.lv> new RSA4096
  BA66F67FD73F7058D712D308C3B7C91B632F738A  # Lunny Xiao <xiaolunwen@gmail.com>, retrieved from https://github.com/lunny.gpg
  B5F0915813554C32C1D599C2C99B82E40B027BAE  # '6543' <6543@obermui.de>
)

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

pkgver() {
  cd ${pkgname}
  git describe --tags | sed 's/^v//'
}

build() {
  cd ${pkgname}
  export CGO_CPPFLAGS="${CPPFLAGS}"
  export CGO_CFLAGS="${CFLAGS}"
  export CGO_CXXFLAGS="${CXXFLAGS}"
  export CGO_LDFLAGS="${LDFLAGS}"
  export EXTRA_GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
  export LDFLAGS="-X 'code.gitea.io/gitea/modules/setting.AppWorkPath=/var/lib/gitea/'"
  export TAGS="bindata sqlite sqlite_unlock_notify pam"
  make -j1
}

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.example.ini "${pkgdir}"/etc/gitea/app.ini
}
