Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Feb 2018 01:01:34 +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: r460861 - in head/net-im/mastodon: . files
Message-ID:  <201802040101.w1411YL3046491@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jrm
Date: Sun Feb  4 01:01:34 2018
New Revision: 460861
URL: https://svnweb.freebsd.org/changeset/ports/460861

Log:
  net-im/mastodon: fix issue with assets pre-compile
  
  The assets are generated with a random hex string, so patch files to make
  this part of the build reproducible.
  
  Reported by:	GĂ©rald Niel

Deleted:
  head/net-im/mastodon/files/patch-config_boot.rb
Modified:
  head/net-im/mastodon/Makefile   (contents, props changed)
  head/net-im/mastodon/pkg-plist   (contents, props changed)

Modified: head/net-im/mastodon/Makefile
==============================================================================
--- head/net-im/mastodon/Makefile	Sat Feb  3 23:47:36 2018	(r460860)
+++ head/net-im/mastodon/Makefile	Sun Feb  4 01:01:34 2018	(r460861)
@@ -3,6 +3,7 @@
 PORTNAME=	mastodon
 DISTVERSIONPREFIX=	v
 DISTVERSION=	2.2.0
+PORTREVISION=	1
 CATEGORIES=	net-im www
 
 MAINTAINER=	jrm@FreeBSD.org
@@ -11,82 +12,82 @@ COMMENT=	GNU Social-compatible microblogging server
 LICENSE=	AGPLv3
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-BUILD_DEPENDS=	yarn>:www/yarn \
+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-core1>=1.45:devel/rubygem-fog-core1 \
-		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-bootsnap>=0:devel/rubygem-bootsnap \
-		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.4: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.1: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-http>=3.0:www/rubygem-http \
-		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-premailer-rails-rails5>=0:mail/rubygem-premailer-rails-rails5 \
-		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>=4.0: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-progressbar>=1.4:devel/rubygem-progressbar \
-		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-text1>=1.14:textproc/rubygem-twitter-text1 \
-		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 \
+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-core1>=1.45:devel/rubygem-fog-core1\
+		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-bootsnap>=0:devel/rubygem-bootsnap\
+		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.4: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.1: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-http>=3.0:www/rubygem-http\
+		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-premailer-rails-rails5>=0:mail/rubygem-premailer-rails-rails5\
+		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>=4.0: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-progressbar>=1.4:devel/rubygem-progressbar\
+		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-text1>=1.14:textproc/rubygem-twitter-text1\
+		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
@@ -100,18 +101,18 @@ 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}
-
+PLIST_SUB=	NODE_ABI=${NODE_ABI}\
+		RUBY_SUFFIX=
 SHEBANG_FILES=	bin/*
-
 USERS=		${PORTNAME}
 GROUPS=		${PORTNAME}
-
 SUB_LIST+=	RAKE="${LOCALBASE}/bin/rake" RUBY="${RUBY_NAME}"
 SUB_FILES=	nginx.conf nginx-include.conf
+X=		00000000000000000000000000000000
+XX=		0000000000000000000000000000000000000000000000000000000000000000
 
 post-patch:
-	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' \
+	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|'\
 		${WRKSRC}/config/environments/production.rb
 
 do-build:
@@ -119,42 +120,56 @@ do-build:
 	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)
-	(cd ${WRKSRC} && \
-		NODE_ENV=production \
-		./node_modules/.bin/webpack --config config/webpack/production.js)
+	(cd ${WRKSRC};\
+		HOME=${WRKSRC_mn} yarn --offline;\
+		SECRET_KEY_BASE=x RAILS_ENV=production rails assets:precompile;\
+		${REINPLACE_CMD} -e\
+		"s|^  cache_dir:.*|  cache_dir: '/var/cache/mastodon',|"\
+		${WRKSRC}/config/boot.rb)
+	(cd ${WRKSRC}/public/assets &&\
+		${MV} .sprockets-manifest-*.json .sprockets-manifest-${X}.json &&\
+		${MV} doorkeeper/application-*.css doorkeeper/application-${XX}.css &&\
+		${MV} doorkeeper/application-*.css.gz doorkeeper/application-${XX}.css.gz &&\
+		${MV} doorkeeper/admin/application-*.css doorkeeper/admin/application-${XX}.css &&\
+		${MV} doorkeeper/admin/application-*.css.gz doorkeeper/admin/application-${XX}.css.gz &&\
+		${MV} pghero/application-*.css pghero/application-${XX}.css &&\
+		${MV} pghero/application-*.css.gz pghero/application-${XX}.css.gz &&\
+		${MV} pghero/application-*.js pghero/application-${XX}.js &&\
+		${MV} pghero/application-*.js.gz pghero/application-${XX}.js.gz &&\
+		${MV} pghero/favicon-*.png pghero/favicon-${XX}.png)
+	${REINPLACE_CMD} -e 's|application-[0-9A-Za-z]\{64\}|application-${XX}|g'\
+		${WRKSRC}/public/assets/.sprockets-manifest-${X}.json
+	${REINPLACE_CMD} -e 's|"digest":"[0-9A-Za-z]\{64\}"|"digest":"${XX}"|g'\
+		${WRKSRC}/public/assets/.sprockets-manifest-${X}.json
 
 do-install:
-	@${RM} -r ${WRKSRC}/node_modules/emoji* \
-		${WRKSRC}/node_modules/*/man \
-		${WRKSRC}/node_modules/*/node_modules \
-		${WRKSRC}/node_modules/node-sass \
+	@${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 \
+	@${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}/var/cache/${PORTNAME} \
-		${STAGEDIR}/var/log/${PORTNAME} \
+	${MKDIR} ${STAGEDIR}${WWWDIR} ${STAGEDIR}/var/cache/${PORTNAME}\
+		${STAGEDIR}/var/log/${PORTNAME}\
 		${STAGEDIR}/var/run/${PORTNAME}
-	${INSTALL_DATA} ${WRKDIR}/nginx.conf \
+	${INSTALL_DATA} ${WRKDIR}/nginx.conf\
 		${STAGEDIR}${WWWDIR}/nginx.conf.sample
-	${INSTALL_DATA} ${WRKDIR}/nginx-include.conf \
+	${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 \
+	${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" \
+	(cd ${WRKSRC} && ${COPYTREE_SHARE}\
+		"app bin config db lib log node_modules public spec streaming vendor"\
 		${STAGEDIR}${WWWDIR})
 
 .include <bsd.port.pre.mk>

Modified: head/net-im/mastodon/pkg-plist
==============================================================================
--- head/net-im/mastodon/pkg-plist	Sat Feb  3 23:47:36 2018	(r460860)
+++ head/net-im/mastodon/pkg-plist	Sun Feb  4 01:01:34 2018	(r460861)
@@ -1945,6 +1945,9 @@
 @dir %%WWWDIR%%/node_modules/yargs/locales
 @dir %%WWWDIR%%/public
 @dir %%WWWDIR%%/public/assets
+@dir %%WWWDIR%%/public/assets/pghero
+@dir %%WWWDIR%%/public/assets/doorkeeper
+@dir %%WWWDIR%%/public/assets/doorkeeper/admin
 @dir %%WWWDIR%%/public/avatars
 @dir %%WWWDIR%%/public/avatars/original
 @dir %%WWWDIR%%/public/emoji
@@ -16060,6 +16063,17 @@
 %%WWWDIR%%/public/500.html
 %%WWWDIR%%/public/android-chrome-192x192.png
 %%WWWDIR%%/public/apple-touch-icon.png
+%%WWWDIR%%/public/assets/.sprockets-manifest-00000000000000000000000000000000.json
+%%WWWDIR%%/public/assets/500.html
+%%WWWDIR%%/public/assets/doorkeeper/admin/application-0000000000000000000000000000000000000000000000000000000000000000.css
+%%WWWDIR%%/public/assets/doorkeeper/admin/application-0000000000000000000000000000000000000000000000000000000000000000.css.gz
+%%WWWDIR%%/public/assets/doorkeeper/application-0000000000000000000000000000000000000000000000000000000000000000.css
+%%WWWDIR%%/public/assets/doorkeeper/application-0000000000000000000000000000000000000000000000000000000000000000.css.gz
+%%WWWDIR%%/public/assets/pghero/application-0000000000000000000000000000000000000000000000000000000000000000.js
+%%WWWDIR%%/public/assets/pghero/application-0000000000000000000000000000000000000000000000000000000000000000.js.gz
+%%WWWDIR%%/public/assets/pghero/application-0000000000000000000000000000000000000000000000000000000000000000.css
+%%WWWDIR%%/public/assets/pghero/application-0000000000000000000000000000000000000000000000000000000000000000.css.gz
+%%WWWDIR%%/public/assets/pghero/favicon-0000000000000000000000000000000000000000000000000000000000000000.png
 %%WWWDIR%%/public/assets/sw.js
 %%WWWDIR%%/public/avatars/original/missing.png
 %%WWWDIR%%/public/badge.png



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