Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 May 2017 21:22:38 +0000 (UTC)
From:      Joseph Mingrone <jrm@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r441815 - in head: . net-im/mastodon net-im/mastodon/files
Message-ID:  <201705262122.v4QLMcSv024890@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jrm
Date: Fri May 26 21:22:38 2017
New Revision: 441815
URL: https://svnweb.freebsd.org/changeset/ports/441815

Log:
  New port, net-im/mastodon: GNU Social-compatible microblogging server
  
  WWW: https://github.com/tootsuite/mastodon
  
  Submitted by:	feld, jrm, mmokhi
  Reviewed by:	bapt, feld, roberto, saper@saper.info, mat, swills
  Approved by:	swills (mentor, implicit)
  Differential Revision:	https://reviews.freebsd.org/D10298

Added:
  head/net-im/mastodon/
  head/net-im/mastodon/Makefile   (contents, props changed)
  head/net-im/mastodon/distinfo   (contents, props changed)
  head/net-im/mastodon/files/
  head/net-im/mastodon/files/900.mastodon.in   (contents, props changed)
  head/net-im/mastodon/files/mastodon_stream.in   (contents, props changed)
  head/net-im/mastodon/files/mastodon_web.in   (contents, props changed)
  head/net-im/mastodon/files/mastodon_workers.in   (contents, props changed)
  head/net-im/mastodon/files/nginx-include.conf.in   (contents, props changed)
  head/net-im/mastodon/files/nginx.conf.in   (contents, props changed)
  head/net-im/mastodon/files/patch-.env.production.sample   (contents, props changed)
  head/net-im/mastodon/files/patch-Gemfile   (contents, props changed)
  head/net-im/mastodon/files/patch-bin_yarn   (contents, props changed)
  head/net-im/mastodon/files/patch-config_boot.rb   (contents, props changed)
  head/net-im/mastodon/files/patch-config_environments_production.rb   (contents, props changed)
  head/net-im/mastodon/files/patch-config_puma.rb   (contents, props changed)
  head/net-im/mastodon/files/patch-config_sidekiq.yml   (contents, props changed)
  head/net-im/mastodon/pkg-descr   (contents, props changed)
  head/net-im/mastodon/pkg-message   (contents, props changed)
  head/net-im/mastodon/pkg-plist   (contents, props changed)
Modified:
  head/GIDs
  head/UIDs

Modified: head/GIDs
==============================================================================
--- head/GIDs	Fri May 26 20:02:44 2017	(r441814)
+++ head/GIDs	Fri May 26 21:22:38 2017	(r441815)
@@ -185,7 +185,7 @@ aprsd:*:240:
 tnc:*:241:
 prosody:*:242:
 # free: 243
-# free: 244
+mastodon:*:244:
 # free: 245
 # free: 246
 fcron:*:247:

Modified: head/UIDs
==============================================================================
--- head/UIDs	Fri May 26 20:02:44 2017	(r441814)
+++ head/UIDs	Fri May 26 21:22:38 2017	(r441815)
@@ -190,7 +190,7 @@ aprsd:*:240:240::0:0:aprsd:/nonexistent:
 tnc:*:241:241::0:0:aprsd:/nonexistent:/bin/sh
 prosody:*:242:242::0:0:Prosody Jabber Server:/nonexistent:/usr/sbin/nologin
 # free: 243
-# free: 244
+mastodon:*:244:244::0:0:Mastodon User:/usr/local/www/mastodon:/bin/sh
 # free: 245
 # free: 246
 fcron:*:247:247::0:0:fcron pseudo-user:/nonexistent:/usr/sbin/nologin

Added: head/net-im/mastodon/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/Makefile	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,112 @@
+# $FreeBSD$
+
+PORTNAME=	mastodon
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.4rc4
+CATEGORIES=	net-im www
+
+MAINTAINER=	jrm@FreeBSD.org
+COMMENT=	GNU Social-compatible microblogging server
+
+LICENSE=	AGPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+RUN_DEPENDS=	ffmpeg>0:multimedia/ffmpeg \
+		libpqtypes>1.5.0:databases/libpqtypes
+
+# Dependencies below match Gemfile layout
+RUN_DEPENDS+=	rubygem-pkg-config>=1.2.0:devel/rubygem-pkg-config
+
+RUN_DEPENDS+=	rubygem-puma>0:www/rubygem-puma \
+		rubygem-rails50>0:www/rubygem-rails50 \
+		rubygem-uglifier>0:www/rubygem-uglifier
+
+RUN_DEPENDS+=	rubygem-hamlit-rails-rails50>0:www/rubygem-hamlit-rails-rails50 \
+		rubygem-pg>0:databases/rubygem-pg \
+		rubygem-pghero-rails50>0:databases/rubygem-pghero-rails50 \
+		rubygem-dotenv-rails-rails50>0:misc/rubygem-dotenv-rails-rails50 \
+
+RUN_DEPENDS+=	rubygem-aws-sdk>0:devel/rubygem-aws-sdk \
+		rubygem-paperclip-rails50>0:devel/rubygem-paperclip-rails50 \
+		rubygem-paperclip-av-transcoder-rails50>0:multimedia/rubygem-paperclip-av-transcoder-rails50
+
+RUN_DEPENDS+=	rubygem-addressable>0:www/rubygem-addressable \
+		rubygem-cld3>0:textproc/rubygem-cld3 \
+		rubygem-devise-rails50>0:devel/rubygem-devise-rails50 \
+		rubygem-devise-two-factor-rails50>0:security/rubygem-devise-two-factor-rails50 \
+		rubygem-doorkeeper-rails50>0:security/rubygem-doorkeeper-rails50 \
+		rubygem-fast_blank>0:devel/rubygem-fast_blank \
+		rubygem-goldfinger>0:www/rubygem-goldfinger \
+		rubygem-hiredis>0:databases/rubygem-hiredis \
+		rubygem-redis-namespace>0:databases/rubygem-redis-namespace \
+		rubygem-htmlentities>0:textproc/rubygem-htmlentities \
+		rubygem-http>0:www/rubygem-http \
+		rubygem-http_accept_language>0:devel/rubygem-http_accept_language \
+		rubygem-httplog>0:sysutils/rubygem-httplog \
+		rubygem-kaminari-rails50>0:www/rubygem-kaminari-rails50 \
+		rubygem-link_header>0:www/rubygem-link_header \
+		rubygem-nokogiri>0:textproc/rubygem-nokogiri \
+		rubygem-oj>0:devel/rubygem-oj \
+		rubygem-ostatus2>0:www/rubygem-ostatus2 \
+		rubygem-ox>0:textproc/rubygem-ox \
+		rubygem-rabl-rails50>0:devel/rubygem-rabl-rails50 \
+		rubygem-rack-attack>0:www/rubygem-rack-attack \
+		rubygem-rack-cors>0:www/rubygem-rack-cors \
+		rubygem-rack-timeout>0:www/rubygem-rack-timeout \
+		rubygem-rails-i18n-rails50>0:devel/rubygem-rails-i18n-rails50 \
+		rubygem-rails-settings-cached-rails50>0:www/rubygem-rails-settings-cached-rails50 \
+		rubygem-redis>0:databases/rubygem-redis \
+		rubygem-rqrcode>0:www/rubygem-rqrcode \
+		rubygem-ruby-oembed>0:www/rubygem-ruby-oembed \
+		textproc/rubygem-sanitize>0:textproc/rubygem-sanitize \
+		rubygem-sidekiq>0:devel/rubygem-sidekiq \
+		rubygem-sidekiq-scheduler>0:devel/rubygem-sidekiq-scheduler \
+		rubygem-sidekiq-unique-jobs>0:devel/rubygem-sidekiq-unique-jobs \
+		rubygem-simple-navigation-rails50>0:devel/rubygem-simple-navigation-rails50 \
+		rubygem-simple_form-rails50>0:devel/rubygem-simple_form-rails50 \
+		rubygem-sprockets-rails-rails50>0:devel/rubygem-sprockets-rails-rails50 \
+		rubygem-statsd-instrument>0:devel/rubygem-statsd-instrument \
+		rubygem-twitter-text>0:textproc/rubygem-twitter-text \
+		rubygem-tzinfo-data>0:devel/rubygem-tzinfo-data \
+		rubygem-webpacker-rails50>0:devel/rubygem-webpacker-rails50
+
+RUN_DEPENDS+=	rubygem-lograge-rails50>0:www/rubygem-lograge-rails50 \
+		rubygem-redis-rails-rails50>0:www/rubygem-redis-rails-rails50
+
+USES=		gnome pgsql shebangfix
+USE_GITHUB=	yes
+GH_ACCOUNT=	tootsuite
+USE_GNOME=	libxml2 libxslt
+USE_RC_SUBR=	mastodon_stream mastodon_web mastodon_workers
+USE_RUBY=	yes
+
+SHEBANG_FILES=	bin/*
+
+USERS=		${PORTNAME}
+GROUPS=		${PORTNAME}
+
+NO_ARCH=	yes
+NO_BUILD=	yes
+
+SUB_LIST+=	RAKE="${LOCALBASE}/bin/rake" RUBY="${RUBY_NAME}"
+SUB_FILES=	900.mastodon nginx.conf nginx-include.conf
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' \
+		${WRKSRC}/bin/yarn \
+		${WRKSRC}/config/environments/production.rb
+
+do-install:
+	${RM} ${WRKSRC}/Gemfile.lock \
+		${WRKSRC}/lib/tasks/auto_annotate_models.rake
+	${MKDIR} ${STAGEDIR}${LOCALBASE}/etc/periodic/daily \
+		${STAGEDIR}${WWWDIR} ${STAGEDIR}/var/log/mastodon
+	${INSTALL_SCRIPT} ${WRKDIR}/900.mastodon \
+		${STAGEDIR}${LOCALBASE}/etc/periodic/daily
+	${INSTALL_DATA} ${WRKDIR}/nginx.conf \
+		${STAGEDIR}${WWWDIR}/nginx.conf.sample
+	${INSTALL_DATA} ${WRKDIR}/nginx-include.conf \
+		${STAGEDIR}${WWWDIR}/nginx-include.conf.sample
+	(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR})
+
+.include <bsd.port.mk>

Added: head/net-im/mastodon/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/distinfo	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1495804238
+SHA256 (tootsuite-mastodon-v1.4rc4_GH0.tar.gz) = da61920f8604b1ccc9042bee0adea2e002ab334c7d90181f41606c1db8da930f
+SIZE (tootsuite-mastodon-v1.4rc4_GH0.tar.gz) = 9999246

Added: head/net-im/mastodon/files/900.mastodon.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/900.mastodon.in	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# daily_mastodon="YES"
+#
+# These are daily tasks to ensure that Mastodon runs smoothly.
+#
+# Feed clear: Removes timelines of users who haven't signed in lately, which
+# saves RAM and improves message distribution. This is required to be run
+# periodically so that when they login again the regeneration process will
+# trigger.
+#
+# Media clear: Remove media attachments that have not been assigned to any status
+# for longer than a day.
+#
+# Users clear: Clear timelines of inactive users.
+#
+# Push refresh: Resubscribes PuSH for expiring remote users. This should be run
+# quite often as the expiration time depends on the particular hub of the remote
+# user.
+#
+
+if [ -r /etc/defaults/periodic.conf ]; then
+    . /etc/defaults/periodic.conf
+    source_periodic_confs
+fi
+
+rc=0
+
+case "$daily_mastodon_enable" in
+    [Yy][Ee][Ss])
+        cd %%WWWDIR%% && %%RAKE%% mastodon:daily RAILS_ENV=production LOG_LEVEL=warn
+        rc=$?;;
+    *)  rc=0;;
+esac
+
+exit $rc

Added: head/net-im/mastodon/files/mastodon_stream.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/mastodon_stream.in	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,34 @@
+#! /bin/sh
+
+# PROVIDE: mastodon_stream
+# REQUIRE: LOGIN postgresql nginx redis
+# KEYWORD: shutdown
+
+#
+# Add the following line to /etc/rc.conf to enable the Mastodon streaming
+# service.
+#
+#  mastodon_stream_enable="YES"
+
+. /etc/rc.subr
+
+name=mastodon_stream
+rcvar="${name}_enable"
+
+load_rc_config "$name"
+
+: ${mastodon_stream_enable:="NO"}
+: ${mastodon_stream_port="4000"}
+
+mastodon_stream_chdir="%%WWWDIR%%"
+mastodon_stream_env="HOME=%%WWWDIR%% \
+NODE_ENV=production \
+PORT=\"${mastodon_stream_port}\" \
+USER=mastodon"
+mastodon_stream_user="mastodon"
+
+command="%%PREFIX%%/bin/node"
+command_args="%%WWWDIR%%/node_modules/.bin/babel-node ./streaming/index.js \
+>> /var/log/mastodon/${name}.log 2>&1 &"
+
+run_rc_command "$1"

Added: head/net-im/mastodon/files/mastodon_web.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/mastodon_web.in	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,40 @@
+#! /bin/sh
+
+# PROVIDE: mastodon_web
+# REQUIRE: LOGIN postgresql nginx redis
+# KEYWORD: shutdown
+
+#
+# Add the following line to /etc/rc.conf to enable the Mastodon web server.
+#
+#  mastodon_web_enable="YES"
+
+. /etc/rc.subr
+
+name=mastodon_web
+rcvar="${name}_enable"
+
+load_rc_config "$name"
+
+: ${mastodon_web_enable:="NO"}
+
+: ${mastodon_web_concurrency:="2"}
+: ${mastodon_web_loglevel:="error"}
+: ${mastodon_web_port:="3000"}
+: ${mastodon_web_threads:="5"}
+
+mastodon_web_chdir="%%WWWDIR%%"
+mastodon_web_env="MAX_THREADS=\"${mastodon_web_threads}\" \
+PORT=\"${mastodon_web_port}\" \
+RAILS_ENV=production \
+RAILS_LOG_LEVEL=\"${mastodon_web_loglevel}\" \
+WEB_CONCURRENCY=\"${mastodon_web_concurrency}\""
+mastodon_web_user="mastodon"
+pidfile="%%WWWDIR%%/tmp/${name}.pid"
+procname="%%RUBY%%:"
+
+command="%%PREFIX%%/bin/puma"
+command_flags="-C config/puma.rb"
+command_args=">> /var/log/mastodon/${name}.log 2>&1 &"
+
+run_rc_command "$1"

Added: head/net-im/mastodon/files/mastodon_workers.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/mastodon_workers.in	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,37 @@
+#! /bin/sh
+
+# PROVIDE: mastodon_workers
+# REQUIRE: LOGIN postgresql nginx redis
+# KEYWORD: shutdown
+
+#
+# Add the following line to /etc/rc.conf to enable the Mastodon background
+# workers.
+#
+#  mastodon_workers_enable="YES"
+
+. /etc/rc.subr
+
+name=mastodon_workers
+rcvar="${name}_enable"
+
+load_rc_config "$name"
+
+: ${mastodon_workers_enable:="NO"}
+: ${mastodon_workers_loglevel:="error"}
+: ${mastodon_workers_dbpool:="5"}
+: ${mastodon_workers_threads:="5"}
+
+mastodon_workers_chdir="%%WWWDIR%%"
+mastodon_workers_env="DB_POOL=\"${mastodon_workers_dbpool}\" \
+RAILS_ENV=production \
+RAILS_LOG_LEVEL=\"${mastodon_workers_loglevel}\""
+mastodon_workers_user="mastodon"
+pidfile="%%WWWDIR%%/tmp/${name}.pid"
+procname="%%RUBY%%:"
+
+command="%%PREFIX%%/bin/sidekiq"
+command_flags="-c ${mastodon_workers_threads} -q default -q mailers -q pull -q push"
+command_args=">> /var/log/mastodon/${name}.log 2>&1 &"
+
+run_rc_command "$1"

Added: head/net-im/mastodon/files/nginx-include.conf.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/nginx-include.conf.in	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,82 @@
+map $http_upgrade $connection_upgrade {
+    default upgrade;
+    ''      close;
+}
+
+server {
+    listen 80;
+    listen 443 ssl http2;
+    # listen [::]:443 ssl http2;
+    server_name example.com;
+
+    ssl_protocols TLSv1.2;
+    ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
+    ssl_prefer_server_ciphers on;
+    ssl_session_cache shared:SSL:10m;
+    ssl_certificate %%PREFIX%%/etc/dehydrated/certs/example.com/fullchain.pem;
+    ssl_certificate_key %%PREFIX%%/etc/dehydrated/certs/example.com/privkey.pem;
+    ssl_dhparam %%PREFIX%%/etc/dehydrated/certs/dhparam.pem;
+    keepalive_timeout    70;
+    sendfile             on;
+    client_max_body_size 0;
+
+    root %%WWWDIR%%/public;
+
+    gzip on;
+    gzip_disable "msie6";
+    gzip_vary on;
+    gzip_proxied any;
+    gzip_comp_level 6;
+    gzip_buffers 16 8k;
+    gzip_http_version 1.1;
+    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
+
+    add_header Strict-Transport-Security "max-age=31536000";
+    add_header Content-Security-Policy "style-src 'self' 'unsafe-inline'; script-src 'self'; object-src 'self'; img-src data: https:; media-src data: https:; connect-src 'self' wss://example.com; upgrade-insecure-requests";
+
+    location / {
+        try_files $uri @proxy;
+    }
+
+    location ~ ^/(packs|system/media_attachments/files|system/accounts/avatars) {
+        add_header Cache-Control "public, max-age=31536000, immutable";
+        try_files $uri @proxy;
+    }
+
+    location @proxy {
+        proxy_set_header Host $host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header X-Forwarded-Proto https;
+        proxy_set_header Proxy "";
+        proxy_pass_header Server;
+
+        proxy_pass http://127.0.0.1:3000;
+        proxy_buffering off;
+        proxy_redirect off;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection $connection_upgrade;
+
+        tcp_nodelay on;
+    }
+
+    location /api/v1/streaming {
+        proxy_set_header Host $host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header X-Forwarded-Proto https;
+        proxy_set_header Proxy "";
+
+        proxy_pass http://localhost:4000;
+        proxy_buffering off;
+        proxy_redirect off;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection $connection_upgrade;
+
+        tcp_nodelay on;
+    }
+
+    error_page 500 501 502 503 504 /500.html;
+}

Added: head/net-im/mastodon/files/nginx.conf.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/nginx.conf.in	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,25 @@
+worker_processes 2;
+error_log /var/log/httpd-error.log;
+user www www;
+
+events
+{
+    worker_connections 1024;
+}
+
+http
+{
+    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+    '$status $body_bytes_sent "$http_referer" '
+    '"$http_user_agent" "$http_x_forwarded_for"';
+    access_log /var/log/httpd-access.log;
+    default_type application/octet-stream;
+    include %%PREFIX%%/etc/nginx/mime.types;
+    index index.html
+    keepalive_timeout 65;
+    gzip on;
+    sendfile on;
+
+    include %%WWWDIR%%/nginx-include.conf;
+
+}

Added: head/net-im/mastodon/files/patch-.env.production.sample
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/patch-.env.production.sample	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,42 @@
+--- .env.production.sample.orig	2017-05-26 12:16:04 UTC
++++ .env.production.sample
+@@ -1,11 +1,11 @@
+ # Service dependencies
+ # You may set REDIS_URL instead for more advanced options
+-REDIS_HOST=redis
++REDIS_HOST=localhost
+ REDIS_PORT=6379
+ # You may set DATABASE_URL instead for more advanced options
+-DB_HOST=db
+-DB_USER=postgres
+-DB_NAME=postgres
++DB_HOST=localhost
++DB_USER=mastodon
++DB_NAME=mastodon_production
+ DB_PASS=
+ DB_PORT=5432
+ 
+@@ -47,16 +47,16 @@ OTP_SECRET=
+ # If you want to use an SMTP server without authentication (e.g local Postfix relay)
+ # then set SMTP_AUTH_METHOD and SMTP_OPENSSL_VERIFY_MODE to 'none' and 
+ # *comment* SMTP_LOGIN and SMTP_PASSWORD (leaving them blank is not enough).
+-SMTP_SERVER=smtp.mailgun.org
+-SMTP_PORT=587
+-SMTP_LOGIN=
+-SMTP_PASSWORD=
+-SMTP_FROM_ADDRESS=notifications@example.com
++#SMTP_SERVER=smtp.mailgun.org
++#SMTP_PORT=587
++#SMTP_LOGIN=
++#SMTP_PASSWORD=
++SMTP_FROM_ADDRESS=mastodon@example.com
+ #SMTP_DOMAIN= # defaults to LOCAL_DOMAIN
+ #SMTP_DELIVERY_METHOD=smtp # delivery method can also be sendmail
+-#SMTP_AUTH_METHOD=plain
++SMTP_AUTH_METHOD=none
+ #SMTP_CA_FILE=/etc/ssl/certs/ca-certificates.crt
+-#SMTP_OPENSSL_VERIFY_MODE=peer
++SMTP_OPENSSL_VERIFY_MODE=none
+ #SMTP_ENABLE_STARTTLS_AUTO=true
+ 
+ 

Added: head/net-im/mastodon/files/patch-Gemfile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/patch-Gemfile	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,55 @@
+--- Gemfile.orig	2017-05-20 21:11:45 UTC
++++ Gemfile
+@@ -19,7 +19,6 @@ gem 'paperclip', '~> 5.1'
+ gem 'paperclip-av-transcoder', '~> 0.6'
+ 
+ gem 'addressable', '~> 2.5'
+-gem 'bootsnap'
+ gem 'cld3', '~> 3.1'
+ gem 'devise', '~> 4.2'
+ gem 'devise-two-factor', '~> 3.0'
+@@ -59,44 +58,6 @@ gem 'twitter-text', '~> 1.14'
+ gem 'tzinfo-data', '~> 1.2017'
+ gem 'webpacker', '~> 1.2'
+ 
+-group :development, :test do
+-  gem 'fabrication', '~> 2.16'
+-  gem 'fuubar', '~> 2.2'
+-  gem 'i18n-tasks', '~> 0.9', require: false
+-  gem 'pry-rails', '~> 0.3'
+-  gem 'rspec-rails', '~> 3.6'
+-end
+-
+-group :test do
+-  gem 'capybara', '~> 2.14'
+-  gem 'faker', '~> 1.7'
+-  gem 'microformats2', '~> 3.0'
+-  gem 'rails-controller-testing', '~> 1.0'
+-  gem 'rspec-sidekiq', '~> 3.0'
+-  gem 'simplecov', '~> 0.14', require: false
+-  gem 'webmock', '~> 3.0'
+-  gem 'parallel_tests', '~> 2.14'
+-end
+-
+-group :development do
+-  gem 'active_record_query_trace', '~> 1.5'
+-  gem 'annotate', '~> 2.7'
+-  gem 'better_errors', '~> 2.1'
+-  gem 'binding_of_caller', '~> 0.7'
+-  gem 'bullet', '~> 5.5'
+-  gem 'letter_opener', '~> 1.4'
+-  gem 'letter_opener_web', '~> 1.3'
+-  gem 'rubocop', '~> 0.48', require: false
+-  gem 'brakeman', '~> 3.6', require: false
+-  gem 'bundler-audit', '~> 0.5', require: false
+-  gem 'scss_lint', '~> 0.53', require: false
+-
+-  gem 'capistrano', '~> 3.8'
+-  gem 'capistrano-rails', '~> 1.2'
+-  gem 'capistrano-rbenv', '~> 2.1'
+-  gem 'capistrano-yarn', '~> 2.0'
+-end
+-
+ group :production do
+   gem 'lograge', '~> 0.5'
+   gem 'redis-rails', '~> 5.0'

Added: head/net-im/mastodon/files/patch-bin_yarn
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/patch-bin_yarn	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,11 @@
+--- bin/yarn.orig	2017-05-25 22:16:48 UTC
++++ bin/yarn
+@@ -2,7 +2,7 @@
+ VENDOR_PATH = File.expand_path('..', __dir__)
+ Dir.chdir(VENDOR_PATH) do
+   begin
+-    exec "yarnpkg #{ARGV.join(" ")}"
++    exec "%%PREFIX%%/bin/yarn #{ARGV.join(" ")}"
+   rescue Errno::ENOENT
+     $stderr.puts "Yarn executable was not detected in the system."
+     $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"

Added: head/net-im/mastodon/files/patch-config_boot.rb
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/patch-config_boot.rb	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,27 @@
+--- config/boot.rb.orig	2017-05-20 22:05:08 UTC
++++ config/boot.rb
+@@ -1,14 +1,14 @@
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
+ 
+ require 'bundler/setup' # Set up gems listed in the Gemfile.
+-require 'bootsnap'
++#require 'bootsnap'
+ 
+-Bootsnap.setup(
+-  cache_dir:            'tmp/cache',
+-  development_mode:     ENV['RAILS_ENV'] == 'development',
+-  load_path_cache:      true,
+-  autoload_paths_cache: true,
+-  disable_trace:        true,
+-  compile_cache_iseq:   false,
+-  compile_cache_yaml:   false
+-)
++# Bootsnap.setup(
++#   cache_dir:            'tmp/cache',
++#   development_mode:     ENV['RAILS_ENV'] == 'development',
++#   load_path_cache:      true,
++#   autoload_paths_cache: true,
++#   disable_trace:        true,
++#   compile_cache_iseq:   false,
++#   compile_cache_yaml:   false
++# )

Added: head/net-im/mastodon/files/patch-config_environments_production.rb
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/patch-config_environments_production.rb	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,12 @@
+--- config/environments/production.rb.orig	2017-05-24 01:40:57 UTC
++++ config/environments/production.rb
+@@ -104,4 +104,9 @@ Rails.application.configure do
+     'X-Content-Type-Options' => 'nosniff',
+     'X-XSS-Protection'       => '1; mode=block',
+   }
++
++  # Paperclip config:
++  Paperclip.options[:image_magick_path] = "%%PREFIX%%/bin"
++  Paperclip.options[:command_path] = "%%PREFIX%%/bin"
++
+ end

Added: head/net-im/mastodon/files/patch-config_puma.rb
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/patch-config_puma.rb	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,11 @@
+--- config/puma.rb.orig	2017-05-22 21:15:56 UTC
++++ config/puma.rb
+@@ -1,6 +1,8 @@
+ threads_count = ENV.fetch('MAX_THREADS') { 5 }.to_i
+ threads threads_count, threads_count
+ 
++pidfile 'tmp/mastodon_web.pid'
++
+ if ENV['SOCKET'] then
+   bind 'unix://' + ENV['SOCKET']
+ else

Added: head/net-im/mastodon/files/patch-config_sidekiq.yml
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/files/patch-config_sidekiq.yml	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,7 @@
+--- config/sidekiq.yml.orig	2017-05-22 21:30:15 UTC
++++ config/sidekiq.yml
+@@ -15,3 +15,4 @@
+   feed_cleanup_scheduler:
+     cron: '0 0 * * *'
+     class: Scheduler::FeedCleanupScheduler
++:pidfile: tmp/mastodon_workers.pid

Added: head/net-im/mastodon/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/pkg-descr	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,8 @@
+Mastodon is an alternative implementation of GNU social, a free,
+open-source social network.  It is a decentralized alternative to
+commercial platforms based on ActivityStreams, Webfinger, PubsubHubbub
+and Salmon.  The project focuses on creating a clean REST API and a good
+user interface.  Ruby on Rails is used for the back-end, while React.js
+and Redux are used for the dynamic front-end.
+
+WWW: https://github.com/tootsuite/mastodon

Added: head/net-im/mastodon/pkg-message
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/pkg-message	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,6 @@
+########################################################
+
+Visit the URL below to get started with Mastodon.
+http://ftfl.ca/blog/2017-05-23-mastodon-freebsd.html
+
+########################################################

Added: head/net-im/mastodon/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/mastodon/pkg-plist	Fri May 26 21:22:38 2017	(r441815)
@@ -0,0 +1,5315 @@
+@owner mastodon
+@group mastodon
+etc/periodic/daily/900.mastodon
+@dir /var/log/mastodon
+@dir %%WWWDIR%%
+@dir %%WWWDIR%%/app
+@dir %%WWWDIR%%/app/assets
+@dir %%WWWDIR%%/app/assets/stylesheets
+@dir %%WWWDIR%%/app/controllers
+@dir %%WWWDIR%%/app/controllers/admin
+@dir %%WWWDIR%%/app/controllers/api
+@dir %%WWWDIR%%/app/controllers/api/activitypub
+@dir %%WWWDIR%%/app/controllers/api/v1
+@dir %%WWWDIR%%/app/controllers/api/web
+@dir %%WWWDIR%%/app/controllers/auth
+@dir %%WWWDIR%%/app/controllers/concerns
+@dir %%WWWDIR%%/app/controllers/oauth
+@dir %%WWWDIR%%/app/controllers/settings
+@dir %%WWWDIR%%/app/controllers/settings/exports
+@dir %%WWWDIR%%/app/controllers/settings/two_factor_authentication
+@dir %%WWWDIR%%/app/controllers/well_known
+@dir %%WWWDIR%%/app/helpers
+@dir %%WWWDIR%%/app/helpers/admin
+@dir %%WWWDIR%%/app/javascript
+@dir %%WWWDIR%%/app/javascript/fonts
+@dir %%WWWDIR%%/app/javascript/fonts/montserrat
+@dir %%WWWDIR%%/app/javascript/fonts/roboto
+@dir %%WWWDIR%%/app/javascript/fonts/roboto-mono
+@dir %%WWWDIR%%/app/javascript/images
+@dir %%WWWDIR%%/app/javascript/mastodon
+@dir %%WWWDIR%%/app/javascript/mastodon/actions
+@dir %%WWWDIR%%/app/javascript/mastodon/components
+@dir %%WWWDIR%%/app/javascript/mastodon/containers
+@dir %%WWWDIR%%/app/javascript/mastodon/features
+@dir %%WWWDIR%%/app/javascript/mastodon/features/account
+@dir %%WWWDIR%%/app/javascript/mastodon/features/account/components
+@dir %%WWWDIR%%/app/javascript/mastodon/features/account_gallery
+@dir %%WWWDIR%%/app/javascript/mastodon/features/account_gallery/components
+@dir %%WWWDIR%%/app/javascript/mastodon/features/account_timeline
+@dir %%WWWDIR%%/app/javascript/mastodon/features/account_timeline/components
+@dir %%WWWDIR%%/app/javascript/mastodon/features/account_timeline/containers
+@dir %%WWWDIR%%/app/javascript/mastodon/features/blocks
+@dir %%WWWDIR%%/app/javascript/mastodon/features/community_timeline
+@dir %%WWWDIR%%/app/javascript/mastodon/features/compose
+@dir %%WWWDIR%%/app/javascript/mastodon/features/compose/components
+@dir %%WWWDIR%%/app/javascript/mastodon/features/compose/containers
+@dir %%WWWDIR%%/app/javascript/mastodon/features/favourited_statuses
+@dir %%WWWDIR%%/app/javascript/mastodon/features/favourites
+@dir %%WWWDIR%%/app/javascript/mastodon/features/follow_requests
+@dir %%WWWDIR%%/app/javascript/mastodon/features/follow_requests/components
+@dir %%WWWDIR%%/app/javascript/mastodon/features/follow_requests/containers
+@dir %%WWWDIR%%/app/javascript/mastodon/features/followers
+@dir %%WWWDIR%%/app/javascript/mastodon/features/following
+@dir %%WWWDIR%%/app/javascript/mastodon/features/generic_not_found
+@dir %%WWWDIR%%/app/javascript/mastodon/features/getting_started
+@dir %%WWWDIR%%/app/javascript/mastodon/features/hashtag_timeline
+@dir %%WWWDIR%%/app/javascript/mastodon/features/home_timeline
+@dir %%WWWDIR%%/app/javascript/mastodon/features/home_timeline/components
+@dir %%WWWDIR%%/app/javascript/mastodon/features/home_timeline/containers
+@dir %%WWWDIR%%/app/javascript/mastodon/features/mutes
+@dir %%WWWDIR%%/app/javascript/mastodon/features/notifications
+@dir %%WWWDIR%%/app/javascript/mastodon/features/notifications/components
+@dir %%WWWDIR%%/app/javascript/mastodon/features/notifications/containers
+@dir %%WWWDIR%%/app/javascript/mastodon/features/public_timeline
+@dir %%WWWDIR%%/app/javascript/mastodon/features/reblogs
+@dir %%WWWDIR%%/app/javascript/mastodon/features/report
+@dir %%WWWDIR%%/app/javascript/mastodon/features/report/components
+@dir %%WWWDIR%%/app/javascript/mastodon/features/report/containers
+@dir %%WWWDIR%%/app/javascript/mastodon/features/status
+@dir %%WWWDIR%%/app/javascript/mastodon/features/status/components
+@dir %%WWWDIR%%/app/javascript/mastodon/features/status/containers
+@dir %%WWWDIR%%/app/javascript/mastodon/features/ui
+@dir %%WWWDIR%%/app/javascript/mastodon/features/ui/components
+@dir %%WWWDIR%%/app/javascript/mastodon/features/ui/containers
+@dir %%WWWDIR%%/app/javascript/mastodon/locales
+@dir %%WWWDIR%%/app/javascript/mastodon/locales/locale-data
+@dir %%WWWDIR%%/app/javascript/mastodon/middleware
+@dir %%WWWDIR%%/app/javascript/mastodon/reducers
+@dir %%WWWDIR%%/app/javascript/mastodon/selectors
+@dir %%WWWDIR%%/app/javascript/mastodon/store
+@dir %%WWWDIR%%/app/javascript/packs
+@dir %%WWWDIR%%/app/javascript/styles
+@dir %%WWWDIR%%/app/javascript/styles/fonts
+@dir %%WWWDIR%%/app/lib
+@dir %%WWWDIR%%/app/lib/settings
+@dir %%WWWDIR%%/app/mailers
+@dir %%WWWDIR%%/app/models
+@dir %%WWWDIR%%/app/models/concerns
+@dir %%WWWDIR%%/app/models/form
+@dir %%WWWDIR%%/app/models/web
+@dir %%WWWDIR%%/app/presenters
+@dir %%WWWDIR%%/app/services
+@dir %%WWWDIR%%/app/services/concerns
+@dir %%WWWDIR%%/app/services/pubsubhubbub
+@dir %%WWWDIR%%/app/validators
+@dir %%WWWDIR%%/app/views
+@dir %%WWWDIR%%/app/views/about
+@dir %%WWWDIR%%/app/views/accounts
+@dir %%WWWDIR%%/app/views/activitypub
+@dir %%WWWDIR%%/app/views/activitypub/types
+@dir %%WWWDIR%%/app/views/admin
+@dir %%WWWDIR%%/app/views/admin/accounts
+@dir %%WWWDIR%%/app/views/admin/domain_blocks
+@dir %%WWWDIR%%/app/views/admin/instances
+@dir %%WWWDIR%%/app/views/admin/pubsubhubbub
+@dir %%WWWDIR%%/app/views/admin/reports
+@dir %%WWWDIR%%/app/views/admin/settings
+@dir %%WWWDIR%%/app/views/api
+@dir %%WWWDIR%%/app/views/api/activitypub
+@dir %%WWWDIR%%/app/views/api/activitypub/activities
+@dir %%WWWDIR%%/app/views/api/activitypub/notes
+@dir %%WWWDIR%%/app/views/api/activitypub/outbox
+@dir %%WWWDIR%%/app/views/api/oembed
+@dir %%WWWDIR%%/app/views/api/v1
+@dir %%WWWDIR%%/app/views/api/v1/accounts
+@dir %%WWWDIR%%/app/views/api/v1/apps
+@dir %%WWWDIR%%/app/views/api/v1/blocks
+@dir %%WWWDIR%%/app/views/api/v1/favourites
+@dir %%WWWDIR%%/app/views/api/v1/follow_requests
+@dir %%WWWDIR%%/app/views/api/v1/follows
+@dir %%WWWDIR%%/app/views/api/v1/instances
+@dir %%WWWDIR%%/app/views/api/v1/media
+@dir %%WWWDIR%%/app/views/api/v1/mutes
+@dir %%WWWDIR%%/app/views/api/v1/notifications
+@dir %%WWWDIR%%/app/views/api/v1/reports
+@dir %%WWWDIR%%/app/views/api/v1/search
+@dir %%WWWDIR%%/app/views/api/v1/statuses
+@dir %%WWWDIR%%/app/views/api/v1/timelines
+@dir %%WWWDIR%%/app/views/application
+@dir %%WWWDIR%%/app/views/auth
+@dir %%WWWDIR%%/app/views/auth/confirmations
+@dir %%WWWDIR%%/app/views/auth/passwords
+@dir %%WWWDIR%%/app/views/auth/registrations
+@dir %%WWWDIR%%/app/views/auth/sessions
+@dir %%WWWDIR%%/app/views/auth/shared
+@dir %%WWWDIR%%/app/views/authorize_follows
+@dir %%WWWDIR%%/app/views/errors
+@dir %%WWWDIR%%/app/views/follower_accounts
+@dir %%WWWDIR%%/app/views/following_accounts
+@dir %%WWWDIR%%/app/views/home
+@dir %%WWWDIR%%/app/views/kaminari
+@dir %%WWWDIR%%/app/views/layouts
+@dir %%WWWDIR%%/app/views/notification_mailer
+@dir %%WWWDIR%%/app/views/oauth
+@dir %%WWWDIR%%/app/views/oauth/authorizations
+@dir %%WWWDIR%%/app/views/oauth/authorized_applications
+@dir %%WWWDIR%%/app/views/remote_follow
+@dir %%WWWDIR%%/app/views/settings
+@dir %%WWWDIR%%/app/views/settings/exports
+@dir %%WWWDIR%%/app/views/settings/follower_domains
+@dir %%WWWDIR%%/app/views/settings/imports
+@dir %%WWWDIR%%/app/views/settings/preferences
+@dir %%WWWDIR%%/app/views/settings/profiles
+@dir %%WWWDIR%%/app/views/settings/shared
+@dir %%WWWDIR%%/app/views/settings/two_factor_authentication
+@dir %%WWWDIR%%/app/views/settings/two_factor_authentication/confirmations
+@dir %%WWWDIR%%/app/views/settings/two_factor_authentication/recovery_codes
+@dir %%WWWDIR%%/app/views/settings/two_factor_authentications
+@dir %%WWWDIR%%/app/views/shared
+@dir %%WWWDIR%%/app/views/stream_entries
+@dir %%WWWDIR%%/app/views/tags
+@dir %%WWWDIR%%/app/views/user_mailer
+@dir %%WWWDIR%%/app/views/well_known
+@dir %%WWWDIR%%/app/views/well_known/host_meta
+@dir %%WWWDIR%%/app/views/well_known/webfinger
+@dir %%WWWDIR%%/app/workers
+@dir %%WWWDIR%%/app/workers/admin
+@dir %%WWWDIR%%/app/workers/pubsubhubbub
+@dir %%WWWDIR%%/app/workers/scheduler
+@dir %%WWWDIR%%/bin
+@dir %%WWWDIR%%/config
+@dir %%WWWDIR%%/config/environments
+@dir %%WWWDIR%%/config/initializers
+@dir %%WWWDIR%%/config/locales
+@dir %%WWWDIR%%/config/webpack
+@dir %%WWWDIR%%/config/webpack/loaders
+@dir %%WWWDIR%%/db
+@dir %%WWWDIR%%/db/migrate
+@dir %%WWWDIR%%/docs
+@dir %%WWWDIR%%/docs/Contributing-to-Mastodon
+@dir %%WWWDIR%%/docs/Running-Mastodon
+@dir %%WWWDIR%%/docs/Using-Mastodon
+@dir %%WWWDIR%%/docs/Using-the-API
+@dir %%WWWDIR%%/lib
+@dir %%WWWDIR%%/lib/assets
+@dir %%WWWDIR%%/lib/mastodon
+@dir %%WWWDIR%%/lib/paperclip
+@dir %%WWWDIR%%/lib/tasks
+@dir %%WWWDIR%%/lib/templates
+@dir %%WWWDIR%%/lib/templates/haml
+@dir %%WWWDIR%%/lib/templates/haml/scaffold
+@dir %%WWWDIR%%/log
+@dir %%WWWDIR%%/nanobox
+@dir %%WWWDIR%%/public
+@dir %%WWWDIR%%/public/avatars
+@dir %%WWWDIR%%/public/avatars/original
+@dir %%WWWDIR%%/public/emoji
+@dir %%WWWDIR%%/public/headers
+@dir %%WWWDIR%%/public/headers/original
+@dir %%WWWDIR%%/public/sounds
+@dir %%WWWDIR%%/spec
+@dir %%WWWDIR%%/spec/controllers
+@dir %%WWWDIR%%/spec/controllers/admin
+@dir %%WWWDIR%%/spec/controllers/api
+@dir %%WWWDIR%%/spec/controllers/api/activitypub
+@dir %%WWWDIR%%/spec/controllers/api/v1
+@dir %%WWWDIR%%/spec/controllers/auth
+@dir %%WWWDIR%%/spec/controllers/concerns
+@dir %%WWWDIR%%/spec/controllers/oauth
+@dir %%WWWDIR%%/spec/controllers/settings
+@dir %%WWWDIR%%/spec/controllers/settings/exports
+@dir %%WWWDIR%%/spec/controllers/settings/two_factor_authentication
+@dir %%WWWDIR%%/spec/controllers/well_known
+@dir %%WWWDIR%%/spec/fabricators
+@dir %%WWWDIR%%/spec/features
+@dir %%WWWDIR%%/spec/fixtures
+@dir %%WWWDIR%%/spec/fixtures/files
+@dir %%WWWDIR%%/spec/fixtures/push
+@dir %%WWWDIR%%/spec/fixtures/requests
+@dir %%WWWDIR%%/spec/fixtures/salmon
+@dir %%WWWDIR%%/spec/fixtures/xml
+@dir %%WWWDIR%%/spec/helpers
+@dir %%WWWDIR%%/spec/helpers/admin
+@dir %%WWWDIR%%/spec/javascript
+@dir %%WWWDIR%%/spec/javascript/components
+@dir %%WWWDIR%%/spec/javascript/components/features
+@dir %%WWWDIR%%/spec/javascript/components/features/ui
+@dir %%WWWDIR%%/spec/javascript/components/features/ui/components
+@dir %%WWWDIR%%/spec/lib
+@dir %%WWWDIR%%/spec/mailers
+@dir %%WWWDIR%%/spec/mailers/previews
+@dir %%WWWDIR%%/spec/models
+@dir %%WWWDIR%%/spec/models/web
+@dir %%WWWDIR%%/spec/presenters
+@dir %%WWWDIR%%/spec/requests
+@dir %%WWWDIR%%/spec/routing
+@dir %%WWWDIR%%/spec/services
+@dir %%WWWDIR%%/spec/services/pubsubhubbub
+@dir %%WWWDIR%%/spec/support
+@dir %%WWWDIR%%/spec/support/matchers
+@dir %%WWWDIR%%/spec/support/matchers/model
+@dir %%WWWDIR%%/spec/views
+@dir %%WWWDIR%%/spec/views/about
+@dir %%WWWDIR%%/spec/views/stream_entries
+@dir %%WWWDIR%%/spec/workers
+@dir %%WWWDIR%%/spec/workers/pubsubhubbub
+@dir %%WWWDIR%%/spec/workers/scheduler
+@dir %%WWWDIR%%/storybook
+@dir %%WWWDIR%%/storybook/stories
+@dir %%WWWDIR%%/streaming
+@dir %%WWWDIR%%/vendor
+@dir %%WWWDIR%%/vendor/assets
+@dir %%WWWDIR%%/vendor/assets/javascripts
+@dir %%WWWDIR%%/vendor/assets/stylesheets
+@sample %%WWWDIR%%/.env.production.sample
+@sample %%WWWDIR%%/nginx.conf.sample
+@sample %%WWWDIR%%/nginx-include.conf.sample
+%%WWWDIR%%/.babelrc
+%%WWWDIR%%/.buildpacks
+%%WWWDIR%%/.codeclimate.yml
+%%WWWDIR%%/.dockerignore
+%%WWWDIR%%/.editorconfig
+%%WWWDIR%%/.env.nanobox
+%%WWWDIR%%/.env.test
+%%WWWDIR%%/.env.vagrant
+%%WWWDIR%%/.eslintignore
+%%WWWDIR%%/.eslintrc.yml
+%%WWWDIR%%/.foreman
+%%WWWDIR%%/.haml-lint.yml
+%%WWWDIR%%/.nanoignore
+%%WWWDIR%%/.nvmrc
+%%WWWDIR%%/.postcssrc.yml
+%%WWWDIR%%/.profile
+%%WWWDIR%%/.rspec
+%%WWWDIR%%/.rubocop.yml
+%%WWWDIR%%/.ruby-version
+%%WWWDIR%%/.scss-lint.yml
+%%WWWDIR%%/.slugignore
+%%WWWDIR%%/.travis.yml
+%%WWWDIR%%/Aptfile
+%%WWWDIR%%/CONTRIBUTING.md
+%%WWWDIR%%/Capfile
+%%WWWDIR%%/Dockerfile
+%%WWWDIR%%/Gemfile
+%%WWWDIR%%/ISSUE_TEMPLATE.md
+%%WWWDIR%%/LICENSE
+%%WWWDIR%%/Procfile
+%%WWWDIR%%/Procfile.dev
+%%WWWDIR%%/README.md
+%%WWWDIR%%/Rakefile
+%%WWWDIR%%/Vagrantfile
+%%WWWDIR%%/app.json
+%%WWWDIR%%/app/assets/stylesheets/.gitkeep
+%%WWWDIR%%/app/controllers/about_controller.rb
+%%WWWDIR%%/app/controllers/account_follow_controller.rb
+%%WWWDIR%%/app/controllers/account_unfollow_controller.rb
+%%WWWDIR%%/app/controllers/accounts_controller.rb
+%%WWWDIR%%/app/controllers/admin/accounts_controller.rb
+%%WWWDIR%%/app/controllers/admin/base_controller.rb
+%%WWWDIR%%/app/controllers/admin/confirmations_controller.rb
+%%WWWDIR%%/app/controllers/admin/domain_blocks_controller.rb
+%%WWWDIR%%/app/controllers/admin/instances_controller.rb
+%%WWWDIR%%/app/controllers/admin/pubsubhubbub_controller.rb
+%%WWWDIR%%/app/controllers/admin/reported_statuses_controller.rb
+%%WWWDIR%%/app/controllers/admin/reports_controller.rb
+%%WWWDIR%%/app/controllers/admin/resets_controller.rb
+%%WWWDIR%%/app/controllers/admin/settings_controller.rb
+%%WWWDIR%%/app/controllers/admin/silences_controller.rb
+%%WWWDIR%%/app/controllers/admin/suspensions_controller.rb
+%%WWWDIR%%/app/controllers/admin/two_factor_authentications_controller.rb
+%%WWWDIR%%/app/controllers/api/activitypub/activities_controller.rb
+%%WWWDIR%%/app/controllers/api/activitypub/notes_controller.rb
+%%WWWDIR%%/app/controllers/api/activitypub/outbox_controller.rb
+%%WWWDIR%%/app/controllers/api/oembed_controller.rb
+%%WWWDIR%%/app/controllers/api/push_controller.rb
+%%WWWDIR%%/app/controllers/api/salmon_controller.rb
+%%WWWDIR%%/app/controllers/api/subscriptions_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/accounts_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/apps_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/blocks_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/domain_blocks_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/favourites_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/follow_requests_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/follows_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/instances_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/media_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/mutes_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/notifications_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/reports_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/search_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/statuses_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/timelines/base_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/timelines/home_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/timelines/public_controller.rb
+%%WWWDIR%%/app/controllers/api/v1/timelines/tag_controller.rb
+%%WWWDIR%%/app/controllers/api/web/settings_controller.rb
+%%WWWDIR%%/app/controllers/api_controller.rb
+%%WWWDIR%%/app/controllers/application_controller.rb
+%%WWWDIR%%/app/controllers/auth/confirmations_controller.rb
+%%WWWDIR%%/app/controllers/auth/passwords_controller.rb
+%%WWWDIR%%/app/controllers/auth/registrations_controller.rb
+%%WWWDIR%%/app/controllers/auth/sessions_controller.rb
+%%WWWDIR%%/app/controllers/authorize_follows_controller.rb
+%%WWWDIR%%/app/controllers/concerns/account_controller_concern.rb
+%%WWWDIR%%/app/controllers/concerns/localized.rb
+%%WWWDIR%%/app/controllers/concerns/obfuscate_filename.rb
+%%WWWDIR%%/app/controllers/concerns/user_tracking_concern.rb
+%%WWWDIR%%/app/controllers/follower_accounts_controller.rb
+%%WWWDIR%%/app/controllers/following_accounts_controller.rb
+%%WWWDIR%%/app/controllers/home_controller.rb
+%%WWWDIR%%/app/controllers/media_controller.rb
+%%WWWDIR%%/app/controllers/oauth/authorizations_controller.rb
+%%WWWDIR%%/app/controllers/oauth/authorized_applications_controller.rb
+%%WWWDIR%%/app/controllers/remote_follow_controller.rb
+%%WWWDIR%%/app/controllers/settings/exports/base_controller.rb
+%%WWWDIR%%/app/controllers/settings/exports/blocked_accounts_controller.rb
+%%WWWDIR%%/app/controllers/settings/exports/following_accounts_controller.rb
+%%WWWDIR%%/app/controllers/settings/exports/muted_accounts_controller.rb
+%%WWWDIR%%/app/controllers/settings/exports_controller.rb
+%%WWWDIR%%/app/controllers/settings/follower_domains_controller.rb
+%%WWWDIR%%/app/controllers/settings/imports_controller.rb
+%%WWWDIR%%/app/controllers/settings/preferences_controller.rb
+%%WWWDIR%%/app/controllers/settings/profiles_controller.rb
+%%WWWDIR%%/app/controllers/settings/two_factor_authentication/confirmations_controller.rb
+%%WWWDIR%%/app/controllers/settings/two_factor_authentication/recovery_codes_controller.rb
+%%WWWDIR%%/app/controllers/settings/two_factor_authentications_controller.rb
+%%WWWDIR%%/app/controllers/statuses_controller.rb
+%%WWWDIR%%/app/controllers/stream_entries_controller.rb
+%%WWWDIR%%/app/controllers/tags_controller.rb
+%%WWWDIR%%/app/controllers/well_known/host_meta_controller.rb
+%%WWWDIR%%/app/controllers/well_known/webfinger_controller.rb
+%%WWWDIR%%/app/helpers/activitystreams2_builder_helper.rb
+%%WWWDIR%%/app/helpers/admin/filter_helper.rb
+%%WWWDIR%%/app/helpers/application_helper.rb

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705262122.v4QLMcSv024890>