2b0d860033
Upstream changes: https://github.com/tootsuite/mastodon/releases/tag/v2.1.0
160 lines
6.6 KiB
Makefile
160 lines
6.6 KiB
Makefile
# $FreeBSD$
|
|
|
|
PORTNAME= mastodon
|
|
DISTVERSIONPREFIX= v
|
|
DISTVERSION= 2.1.0
|
|
PORTREVISION= 0
|
|
CATEGORIES= net-im www
|
|
|
|
MAINTAINER= jrm@FreeBSD.org
|
|
COMMENT= GNU Social-compatible microblogging server
|
|
|
|
LICENSE= AGPLv3
|
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
|
|
BUILD_DEPENDS= yarn>:www/yarn \
|
|
${BR_DEPENDS}
|
|
LIB_DEPENDS= libidn2.so:dns/libidn2
|
|
RUN_DEPENDS= ${BR_DEPENDS}
|
|
|
|
BR_DEPENDS= ffmpeg>0:multimedia/ffmpeg \
|
|
libpqtypes>1.5.0:databases/libpqtypes \
|
|
rubygem-pkg-config>=1.2.3:devel/rubygem-pkg-config \
|
|
rubygem-puma>=3.10:www/rubygem-puma \
|
|
rubygem-rails5>=5.1.4:www/rubygem-rails5 \
|
|
rubygem-uglifier>=3.2.0:www/rubygem-uglifier \
|
|
rubygem-hamlit-rails-rails5>=0.2.0:www/rubygem-hamlit-rails-rails5 \
|
|
rubygem-pg>=0.21.0:databases/rubygem-pg \
|
|
rubygem-pghero-rails5>=2.0.0:databases/rubygem-pghero-rails5 \
|
|
rubygem-dotenv-rails-rails5>=2.2:misc/rubygem-dotenv-rails-rails5 \
|
|
rubygem-aws-sdk>=2.10:devel/rubygem-aws-sdk \
|
|
rubygem-fog-core>=1.45:devel/rubygem-fog-core \
|
|
rubygem-fog-local>=0.4:net/rubygem-fog-local \
|
|
rubygem-fog-openstack>=0.1:net/rubygem-fog-openstack \
|
|
rubygem-paperclip-rails5>=5.1.0:devel/rubygem-paperclip-rails5 \
|
|
rubygem-paperclip-av-transcoder>=0.6:multimedia/rubygem-paperclip-av-transcoder \
|
|
rubygem-active_model_serializers>=0.10:databases/rubygem-active_model_serializers \
|
|
rubygem-addressable>=2.5:www/rubygem-addressable \
|
|
rubygem-browser>=2.4.0:www/rubygem-browser \
|
|
rubygem-charlock_holmes>=0.7.5:textproc/rubygem-charlock_holmes \
|
|
rubygem-iso-639>=0.2.8:textproc/rubygem-iso-639 \
|
|
rubygem-cld3>=3.2.0:textproc/rubygem-cld3 \
|
|
rubygem-devise-rails5>=4.2:devel/rubygem-devise-rails5 \
|
|
rubygem-devise-two-factor-rails5>=3.0:security/rubygem-devise-two-factor-rails5 \
|
|
rubygem-doorkeeper-rails5>=4.2:security/rubygem-doorkeeper-rails5 \
|
|
rubygem-fast_blank>=1.0:devel/rubygem-fast_blank \
|
|
rubygem-goldfinger>=2.0:www/rubygem-goldfinger \
|
|
rubygem-hiredis>=0.6:databases/rubygem-hiredis \
|
|
rubygem-redis-namespace>=1.5:databases/rubygem-redis-namespace \
|
|
rubygem-htmlentities>=4.3:textproc/rubygem-htmlentities \
|
|
rubygem-http2>=2.2:www/rubygem-http2 \
|
|
rubygem-http_accept_language>=2.1:devel/rubygem-http_accept_language \
|
|
rubygem-httplog>=0.99:sysutils/rubygem-httplog \
|
|
rubygem-idn-ruby>=0.1.0:dns/rubygem-idn-ruby \
|
|
rubygem-kaminari-rails5>=1.1:www/rubygem-kaminari-rails5 \
|
|
rubygem-link_header>=0.0.8:www/rubygem-link_header \
|
|
rubygem-mime-types>=3.1:misc/rubygem-mime-types \
|
|
rubygem-nokogiri>=1.8:textproc/rubygem-nokogiri \
|
|
rubygem-nsa-rails5>=0.2:devel/rubygem-nsa-rails5 \
|
|
rubygem-oj>=3.3:devel/rubygem-oj \
|
|
rubygem-ostatus2>=2.0:www/rubygem-ostatus2 \
|
|
rubygem-ox>=2.8:textproc/rubygem-ox \
|
|
rubygem-pundit>=1.1:security/rubygem-pundit \
|
|
rubygem-rack-attack>=5.0:www/rubygem-rack-attack \
|
|
rubygem-rack-cors0>=0.4:www/rubygem-rack-cors0 \
|
|
rubygem-rack-timeout>=0.4:www/rubygem-rack-timeout \
|
|
rubygem-rails-i18n>=5.0:devel/rubygem-rails-i18n \
|
|
rubygem-rails-settings-cached-rails5>=0.6:www/rubygem-rails-settings-cached-rails5 \
|
|
rubygem-redis>=3.3:databases/rubygem-redis \
|
|
rubygem-mario-redis-lock>=1.2:databases/rubygem-mario-redis-lock \
|
|
rubygem-rqrcode>=0.10:www/rubygem-rqrcode \
|
|
rubygem-ruby-oembed>=0.12:www/rubygem-ruby-oembed \
|
|
rubygem-sanitize>=4.4:textproc/rubygem-sanitize \
|
|
rubygem-sidekiq>=5.0:devel/rubygem-sidekiq \
|
|
rubygem-sidekiq-scheduler>=2.1:devel/rubygem-sidekiq-scheduler \
|
|
rubygem-sidekiq-unique-jobs>=5.0:devel/rubygem-sidekiq-unique-jobs \
|
|
rubygem-sidekiq-bulk-rails5>=0.1.1:devel/rubygem-sidekiq-bulk-rails5 \
|
|
rubygem-simple-navigation>=4.0:devel/rubygem-simple-navigation \
|
|
rubygem-simple_form-rails5>=3.4:devel/rubygem-simple_form-rails5 \
|
|
rubygem-sprockets-rails-rails5>=3.2:devel/rubygem-sprockets-rails-rails5 \
|
|
rubygem-strong_migrations>=0.1.9:devel/rubygem-strong_migrations \
|
|
rubygem-twitter-text>=1.14:textproc/rubygem-twitter-text \
|
|
rubygem-tzinfo-data>=1.2017:devel/rubygem-tzinfo-data \
|
|
rubygem-webpacker-rails5>=3.0:devel/rubygem-webpacker-rails5 \
|
|
rubygem-webpush>=0.3.2_1:security/rubygem-webpush \
|
|
rubygem-json-ld-preloaded>=2.2.1:converters/rubygem-json-ld-preloaded \
|
|
rubygem-rdf-normalize>=0.3.1:www/rubygem-rdf-normalize \
|
|
rubygem-lograge-rails5>=0.7:www/rubygem-lograge-rails5 \
|
|
rubygem-redis-rails-rails5>=5.0.2:www/rubygem-redis-rails-rails5
|
|
|
|
USES= gmake gnome pgsql python:build,2 shebangfix
|
|
USE_GITHUB= yes
|
|
GH_ACCOUNT= tootsuite jehops:mn
|
|
GH_PROJECT= mastodon_node:mn
|
|
GH_TAGNAME= 2.1.0:mn
|
|
USE_GNOME= libxml2 libxslt
|
|
USE_RC_SUBR= mastodon_stream mastodon_web mastodon_workers
|
|
USE_RUBY= yes
|
|
|
|
NODE_BIN= ${LOCALBASE}/bin/node
|
|
NODE_ABI= ${NODE_VER:C/v4.*/46/:C/v6.*/48/:C/v8.*/57/:C/v9.*/59/}
|
|
PLIST_SUB= NODE_ABI=${NODE_ABI}
|
|
|
|
SHEBANG_FILES= bin/*
|
|
|
|
USERS= ${PORTNAME}
|
|
GROUPS= ${PORTNAME}
|
|
|
|
SUB_LIST+= RAKE="${LOCALBASE}/bin/rake" RUBY="${RUBY_NAME}"
|
|
SUB_FILES= nginx.conf nginx-include.conf
|
|
|
|
post-patch:
|
|
@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' \
|
|
${WRKSRC}/config/environments/production.rb
|
|
|
|
do-build:
|
|
@${RM} ${WRKSRC}/Gemfile.lock
|
|
HOME=${WRKSRC_mn} yarn config set yarn-offline-mirror ${WRKSRC_mn} --offline
|
|
HOME=${WRKSRC_mn} yarn config set nodedir ${LOCALBASE} --offline
|
|
@${CP} ${FILESDIR}/yarn.lock.in ${WRKSRC}/yarn.lock
|
|
(cd ${WRKSRC} && HOME=${WRKSRC_mn} yarn --offline)
|
|
(cd ${WRKSRC} && \
|
|
NODE_ENV=production RAILS_ENV=production \
|
|
./node_modules/.bin/webpack --config config/webpack/production.js)
|
|
|
|
do-install:
|
|
@${RM} -r ${WRKSRC}/node_modules/emoji* \
|
|
${WRKSRC}/node_modules/*/man \
|
|
${WRKSRC}/node_modules/*/node_modules \
|
|
${WRKSRC}/node_modules/node-sass \
|
|
${WRKSRC}/node_modules/uws/build
|
|
@${RM} ${WRKSRC}/Gemfile.lock \
|
|
${WRKSRC}/lib/tasks/auto_annotate_models.rake \
|
|
${WRKSRC}/node_modules/uws/uws_darwin_* \
|
|
${WRKSRC}/node_modules/uws/uws_linux_* \
|
|
${WRKSRC}/node_modules/uws/uws_win32_* \
|
|
${WRKSRC}/node_modules/stringz/coverage/lcov.info \
|
|
${WRKSRC}/node_modules/.bin/node-sass \
|
|
${WRKSRC}/node_modules/uws/build_log.txt
|
|
${STRIP_CMD} ${WRKSRC}/node_modules/uws/uws_freebsd_${NODE_ABI}.node
|
|
${MKDIR} ${STAGEDIR}${WWWDIR} ${STAGEDIR}${WWWDIR}/tmp \
|
|
${STAGEDIR}/var/log/mastodon
|
|
${INSTALL_DATA} ${WRKDIR}/nginx.conf \
|
|
${STAGEDIR}${WWWDIR}/nginx.conf.sample
|
|
${INSTALL_DATA} ${WRKDIR}/nginx-include.conf \
|
|
${STAGEDIR}${WWWDIR}/nginx-include.conf.sample
|
|
${INSTALL_DATA} ${WRKSRC}/.env.production.sample ${WRKSRC}/app.json \
|
|
${WRKSRC}/config.ru ${WRKSRC}/Gemfile ${WRKSRC}/LICENSE \
|
|
${WRKSRC}/package.json ${WRKSRC}/Rakefile \
|
|
${STAGEDIR}${WWWDIR}
|
|
(cd ${WRKSRC} && ${COPYTREE_SHARE} \
|
|
"app bin config db lib log node_modules public spec streaming vendor" \
|
|
${STAGEDIR}${WWWDIR})
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if exists(${NODE_BIN})
|
|
NODE_VER!= ${NODE_BIN} -v
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|