# Maintainer: George Rawlinson # Contributor: malacology # Contributor: Stefan Husmann pkgname=gotosocial-balki _pkgname=gotosocial pkgver=0.21.2 pkgrel=1 pkgdesc='ActivityPub social network server written in Golang' arch=(x86_64) url='https://gotosocial.org' license=(AGPL-3.0-only) provides=(gotosocial) conflicts=(gotosocial) depends=(glibc) makedepends=(git go yarn nodejs go-swagger) options=(!lto) backup=( etc/gotosocial/config.yaml etc/gotosocial/template/2fa.tmpl etc/gotosocial/template/404.tmpl etc/gotosocial/template/about.tmpl etc/gotosocial/template/authorize-interaction.tmpl etc/gotosocial/template/authorize.tmpl etc/gotosocial/template/confirm-email.tmpl etc/gotosocial/template/confirmed-email.tmpl etc/gotosocial/template/domain-allowlist.tmpl etc/gotosocial/template/domain-blocklist.tmpl etc/gotosocial/template/email_confirm.tmpl etc/gotosocial/template/email_new_report.tmpl etc/gotosocial/template/email_new_signup.tmpl etc/gotosocial/template/email_report_closed.tmpl etc/gotosocial/template/email_reset.tmpl etc/gotosocial/template/email_signup_approved.tmpl etc/gotosocial/template/email_signup_rejected.tmpl etc/gotosocial/template/email_test.tmpl etc/gotosocial/template/error.tmpl etc/gotosocial/template/finalize.tmpl etc/gotosocial/template/index.tmpl etc/gotosocial/template/index_register.tmpl etc/gotosocial/template/index_what_is_this.tmpl etc/gotosocial/template/login-info.tmpl etc/gotosocial/template/login_button.tmpl etc/gotosocial/template/maintenance.tmpl etc/gotosocial/template/oob.tmpl etc/gotosocial/template/page.tmpl etc/gotosocial/template/page_footer.tmpl etc/gotosocial/template/page_header.tmpl etc/gotosocial/template/page_ogmeta.tmpl etc/gotosocial/template/page_stylesheets.tmpl etc/gotosocial/template/profile-gallery.tmpl etc/gotosocial/template/profile.tmpl etc/gotosocial/template/profile_about_user.tmpl etc/gotosocial/template/profile_fields.tmpl etc/gotosocial/template/profile_header.tmpl etc/gotosocial/template/settings.tmpl etc/gotosocial/template/sign-in.tmpl etc/gotosocial/template/sign-up.tmpl etc/gotosocial/template/signed-up.tmpl etc/gotosocial/template/status.tmpl etc/gotosocial/template/status_attachment.tmpl etc/gotosocial/template/status_attributes.tmpl etc/gotosocial/template/status_header.tmpl etc/gotosocial/template/status_info.tmpl etc/gotosocial/template/status_poll.tmpl etc/gotosocial/template/tag.tmpl etc/gotosocial/template/thread.tmpl ) source=( "$_pkgname::git+https://codeberg.org/superseriousbusiness/gotosocial#tag=v$pkgver" sysusers.conf tmpfiles.conf use-fhs-directories.patch modded.patch ) sha512sums=('ec78c9456193ed764a9cc77d006d7b2f76a27f86bc4e448bd14772a668f09023a2f3246aa810c55ef977b9d1867d177ac52153973cac09a06110cd146529f3ae' '2ff5499a31e12733cb20a9261942ed135fbac327d5a836b8955f3e86c009a603cf965440d9dbe6db64b80d0f652ba56faddb0ef398393b72474d8cf6c438ab80' 'b89fad3073e140f17167515b38942e5b5e2bc2aee03c484e1bb7cf6444f86cb1e2a13a60b101e04d22633d348be073ca26cd309da4746e5062c12b4f3ce4b38a' '87edf6e6acee86a621c838a7db32f1c9aab70bc5640f8eae099c5133a2be77ec2f711261d716a6821e4c0414436592170b1ae7a5f652bc8aeab49c8dbd0fedde' 'ca9d02f595691f870322504284d06e94de976e372c7cef13efd8bb0082d77e13d62c569d0dde46202e46aa29fea253d71e66d596480679ed158a8b5e194b2856') b2sums=('8861be165f1852d44fde73c6b9d5da8e18c40a21501e665f4ec9a7fb37e0a12303afd970b4f3e605def5858ba100b933ba454c17d195a77e2538910574ac911d' 'ccf672731b88fc6700b0b81737790365e1eea0066bad1bbf6b13dac1e5b42af69063838efca47a6d9c16ee3f6308e2e23b92cf79d4226cd88f8551fb7361649b' '4f65af952441c0f54bb32049a149675e207f8993678423d369c4095c57476464614ac720eccc64d7a93a81268ad7ca41cae75ca7211bd7b78f9035f6e5341f04' '3671911545d15cc21045b37fbe6983c05499e66b8a6a1e1b3eccbb5c2686914c88b090dec0bfe8e2919d8787e5b4c59bfb1e2c292cad30a8b552ab57e91d5fdf' 'db6f1b8d3719b4f4d32b8aa8f4fd1b4baf0793e10a38f803545b18996a43543ef0f748b48cbe5ba366f9b7471871bd60e5ecdff129c936b4e79b8203db4be4d9') prepare() { cd "$_pkgname" # create directory for build output mkdir build patch -p1 -i "$srcdir/modded.patch" # download dependencies export GOPATH="${srcdir}" go mod download # use FHS directories patch -p1 -i "$srcdir/use-fhs-directories.patch" } build() { cd "$_pkgname" # set Go flags export CGO_CPPFLAGS="${CPPFLAGS}" export CGO_CFLAGS="${CFLAGS}" export CGO_CXXFLAGS="${CXXFLAGS}" export GOPATH="${srcdir}" # generate up-to-date swagger.yaml swagger generate spec --scan-models --exclude-deps -o web/assets/swagger.yaml sed -e "s/REPLACE_ME/$pkgver/" -i web/assets/swagger.yaml go build -v \ -buildmode=pie \ -mod=readonly \ -modcacherw \ -ldflags "-compressdwarf=false \ -linkmode external \ -extldflags '${LDFLAGS}' \ -X main.Version=$pkgver" \ -o build \ ./cmd/... # generate web assets yarn --cwd ./web/source install --frozen-lockfile yarn --cwd ./web/source ts-patch install yarn --cwd ./web/source build } package() { # systemd integration install -vDm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/$_pkgname.conf" install -vDm644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/$_pkgname.conf" install -vDm644 "$_pkgname/example/$_pkgname.service" -t "$pkgdir/usr/lib/systemd/system" cd "$_pkgname" # binary install -vDm755 -t "$pkgdir/usr/bin" "build/$_pkgname" # configuration install -vDm640 -t "$pkgdir/etc/$_pkgname" example/config.yaml # web frontend install -vd "$pkgdir/usr/share/$_pkgname" cp -vr web/assets/* "$pkgdir/usr/share/$_pkgname" cp -vr web/template "$pkgdir/etc/$_pkgname" }