# Maintainer: George Rawlinson # Contributor: malacology # Contributor: Stefan Husmann pkgname=gotosocial pkgver=0.20.0 pkgrel=1 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://github.com/superseriousbusiness/gotosocial#tag=v$pkgver" sysusers.conf tmpfiles.conf use-fhs-directories.patch ) sha512sums=('5097ec57eb6aea0c3796ad21ff31a259c145b70948c9037db9f4cdcf089a7e8432479e409b28fd4e7f309b73badbefca52577a0f7079c66a89e6930c1d845d45' '2ff5499a31e12733cb20a9261942ed135fbac327d5a836b8955f3e86c009a603cf965440d9dbe6db64b80d0f652ba56faddb0ef398393b72474d8cf6c438ab80' 'b89fad3073e140f17167515b38942e5b5e2bc2aee03c484e1bb7cf6444f86cb1e2a13a60b101e04d22633d348be073ca26cd309da4746e5062c12b4f3ce4b38a' '87edf6e6acee86a621c838a7db32f1c9aab70bc5640f8eae099c5133a2be77ec2f711261d716a6821e4c0414436592170b1ae7a5f652bc8aeab49c8dbd0fedde') b2sums=('8dc259fe61b3f5235d37f6d61126866b6b41a3bba0e5eb837fd9eac451ed3ea392059d5546123bd2d3be31bfdd5e08f7c5bf26b9858faac65cae50c143a3db49' 'ccf672731b88fc6700b0b81737790365e1eea0066bad1bbf6b13dac1e5b42af69063838efca47a6d9c16ee3f6308e2e23b92cf79d4226cd88f8551fb7361649b' '4f65af952441c0f54bb32049a149675e207f8993678423d369c4095c57476464614ac720eccc64d7a93a81268ad7ca41cae75ca7211bd7b78f9035f6e5341f04' '3671911545d15cc21045b37fbe6983c05499e66b8a6a1e1b3eccbb5c2686914c88b090dec0bfe8e2919d8787e5b4c59bfb1e2c292cad30a8b552ab57e91d5fdf') prepare() { cd "$pkgname" # create directory for build output mkdir build # 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" }