diff options
author | jrm <jrm@FreeBSD.org> | 2018-02-04 09:01:34 +0800 |
---|---|---|
committer | jrm <jrm@FreeBSD.org> | 2018-02-04 09:01:34 +0800 |
commit | e07bf415948eb8ddd37407911577f17a747bc0a2 (patch) | |
tree | e09615433a01134db583a35e4739dce102dec384 /net-im | |
parent | b5740494dd2581562e17e13d9cc9b47299bcbd0d (diff) | |
download | freebsd-ports-gnome-e07bf415948eb8ddd37407911577f17a747bc0a2.tar.gz freebsd-ports-gnome-e07bf415948eb8ddd37407911577f17a747bc0a2.tar.zst freebsd-ports-gnome-e07bf415948eb8ddd37407911577f17a747bc0a2.zip |
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
Diffstat (limited to 'net-im')
-rw-r--r-- | net-im/mastodon/Makefile | 223 | ||||
-rw-r--r-- | net-im/mastodon/files/patch-config_boot.rb | 11 | ||||
-rw-r--r-- | net-im/mastodon/pkg-plist | 14 |
3 files changed, 133 insertions, 115 deletions
diff --git a/net-im/mastodon/Makefile b/net-im/mastodon/Makefile index 87a4dc26e3aa..43ea4e4ec6e5 100644 --- a/net-im/mastodon/Makefile +++ b/net-im/mastodon/Makefile @@ -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> diff --git a/net-im/mastodon/files/patch-config_boot.rb b/net-im/mastodon/files/patch-config_boot.rb deleted file mode 100644 index 86243892b5eb..000000000000 --- a/net-im/mastodon/files/patch-config_boot.rb +++ /dev/null @@ -1,11 +0,0 @@ ---- config/boot.rb.orig 2018-01-24 12:29:46 UTC -+++ config/boot.rb -@@ -4,7 +4,7 @@ require 'bundler/setup' # Set up gems li - require 'bootsnap' - - Bootsnap.setup( -- cache_dir: 'tmp/cache', -+ cache_dir: '/var/cache/mastodon', - development_mode: ENV['RAILS_ENV'] == 'development', - load_path_cache: true, - autoload_paths_cache: true, diff --git a/net-im/mastodon/pkg-plist b/net-im/mastodon/pkg-plist index 76dd26c39e8f..093161e6ca5e 100644 --- a/net-im/mastodon/pkg-plist +++ b/net-im/mastodon/pkg-plist @@ -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 |