# Maintainer: George Rawlinson # Contributor: malacology # Contributor: Stefan Husmann pkgname=gotosocial pkgver=0.20.1 pkgrel=11 pkgdesc='ActivityPub social network server written in Golang' arch=(x86_64) url='https://gotosocial.org' license=(AGPL-3.0-only) 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.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=('37200b2c5f238cb86c8b0c7815a5a3754cd8db6fb7eebdf70d817a7e498df682b47d436a077089c241327d9f542ee6d66754c77047c8be16f734cf3e74fcfba1' '2ff5499a31e12733cb20a9261942ed135fbac327d5a836b8955f3e86c009a603cf965440d9dbe6db64b80d0f652ba56faddb0ef398393b72474d8cf6c438ab80' 'b89fad3073e140f17167515b38942e5b5e2bc2aee03c484e1bb7cf6444f86cb1e2a13a60b101e04d22633d348be073ca26cd309da4746e5062c12b4f3ce4b38a' '87edf6e6acee86a621c838a7db32f1c9aab70bc5640f8eae099c5133a2be77ec2f711261d716a6821e4c0414436592170b1ae7a5f652bc8aeab49c8dbd0fedde' '9eadab35be81f9a4676fa9c623cdb7321e53055a3b7b1b2f8795a8c9f2e9059e6d7088b86dd23a85d2b234f8c938575089e7203dadfbdae486211c7f8f1f3ac1') b2sums=('da2a59857da3659e211d92694a4a7d40dceed2f930641d6b749be245b31094c68b8d1f3e561d4a0fc918ed5c32cf45531f92e873db7e931cefdcee6f4696c884' 'ccf672731b88fc6700b0b81737790365e1eea0066bad1bbf6b13dac1e5b42af69063838efca47a6d9c16ee3f6308e2e23b92cf79d4226cd88f8551fb7361649b' '4f65af952441c0f54bb32049a149675e207f8993678423d369c4095c57476464614ac720eccc64d7a93a81268ad7ca41cae75ca7211bd7b78f9035f6e5341f04' '3671911545d15cc21045b37fbe6983c05499e66b8a6a1e1b3eccbb5c2686914c88b090dec0bfe8e2919d8787e5b4c59bfb1e2c292cad30a8b552ab57e91d5fdf' 'b0331e3fdf107bf072c35849155dd7a03d9c0e815a34182f0f108ec30b9a8d3a18b4ba38e24074a81812896c3cbbb189548591549d97fafcee8aef7a76827512') 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" }