# Maintainer: Antoine Martin (ayakael) # Contributor: Antoine Martin (ayakael) pkgname=mastodon pkgver=4.0.0_rc2 _gittag=4.0.0rc2 pkgrel=0 pkgdesc="Self-hosted social media and network server based on ActivityPub and OStatus" arch="all" url="https://github.com/tootsuite/mastodon" license="AGPL-3.0-only" _ruby_duplicate=" ruby-addressable ruby-builder ruby-charlock_holmes ruby-concurrent-ruby ruby-erubi ruby-ffi ruby-i18n ruby-minitest ruby-multi_json ruby-net-imap ruby-net-ldap ruby-net-pop ruby-net-smtp ruby-nokogiri ruby-ox ruby-pg ruby-posix-spawn ruby-public_suffix ruby-rake ruby-rexml ruby-thor ruby-unf_ext " [ "$CARCH" = "armhf" ] && _ruby_duplicate="${_ruby_duplicate/ruby-ox/}" [ "$CARCH" = "armv7" ] && _ruby_duplicate="${_ruby_duplicate/ruby-ox/}" depends=" ffmpeg gcompat imagemagick nodejs npm protobuf redis ruby ruby-bigdecimal ruby-bundler ruby-etc ruby-io-console ruby-irb ruby-json yarn $_ruby_duplicate " makedepends=" gnu-libiconv-dev icu-dev libffi-dev libidn-dev libxml2-dev libxslt-dev openssl-dev postgresql-dev protobuf-dev ruby-dev ruby-rdoc yaml-dev zlib-dev " install=" $pkgname.pre-install $pkgname.post-upgrade " source=" mastodon-$_gittag.tar.gz::https://github.com/tootsuite/mastodon/archive/v$_gittag.tar.gz mastodon-web.initd mastodon-sidekiq.initd mastodon-streaming.initd 0001-ruby-3.1-support.patch " subpackages="$pkgname-openrc" options="!check" # No test suite builddir="$srcdir"/$pkgname-$_gittag prepare() { default_prepare # Allow use of any bundler sed -i -e '/BUNDLED/,+1d' Gemfile.lock # Allow use of higher Node versions sed -i 's/"node": .*"/"node": ">=14.15"/' package.json mkdir -p "$srcdir"/gem-cache } build() { pwd bundle config build.nokogiri --use-system-libraries --with-iconv-lib=/usr/lib --with-iconv-include=/usr/include bundle config set deployment 'false' bundle config set without 'development test' bundle config set no-cache 'true' bundle install -j"$(getconf _NPROCESSORS_ONLN)" export NODE_OPTIONS="--openssl-legacy-provider" yarn install --pure-lockfile --ignore-engines RAILS_ENV='production' OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder bundle exec rails assets:precompile } package() { # directory creation install -dm 755 \ "$pkgdir"/usr/share/webapps \ "$pkgdir"/etc/init.d cp -a "$builddir" "$pkgdir"/usr/share/webapps/mastodon # Put the config file in /etc and link to it touch "$pkgdir"/etc/mastodon.conf ln -s /etc/mastodon.conf "$pkgdir"/usr/share/webapps/mastodon/.env.production ln -s /usr/bin/node "$pkgdir"/usr/share/webapps/mastodon/node install -Dm 755 "$srcdir"/*.initd "$pkgdir"/etc/init.d/ for i in $_ruby_duplicate; do rm -R "$pkgdir"/usr/share/webapps/mastodon/vendor/bundle/ruby/*/gems/${i/ruby-/}* done # Removing all prebuilt artifacts rm -R "$pkgdir"/usr/share/webapps/mastodon/node_modules/*/prebuilds 2>&1 || true } sha512sums=" dcde85a48b08216cffe99a13f5bdc5908b24c539e4bd4259c6d63a710e2377414e708d9be9a0cd4754c1c6168a7140beabd40b093935ffba0417888dda44499c mastodon-4.0.0rc2.tar.gz 9e77061fbdebe90492398f8089a7d2612ff4b6e70b5462dd67330b66d9788cb0133eab38c372b1f27a7214aacdd9f7f70381d4ecc6e92c8c38d794404ae0f840 mastodon-web.initd 06ebff4b4f51e0c7122db9ed175958fbcadf7e25d1d33c4cfd43992865b1ba183dbe6b4c8c244575f30a45a72d7d4ea3d887c597060e9cf2203bb00ae1a7ac79 mastodon-sidekiq.initd eb8af0188c49b3507f9eedf54baf9d848f11288ce475963bde70686a1e5ff8960d32560771479651597703728bf0c8663a7bd068ccd8d32b620eba442a9a8ff1 mastodon-streaming.initd 6582b938342979268ef4226a13ac5605df66a69204507c62ff8b440b0f685998c3daeb8be02a05bc4ab48e17c157660071b7f3c5cb4257b967c371c6f7a8d3f1 0001-ruby-3.1-support.patch "