diff --git a/www/redmine60/Makefile b/www/redmine60/Makefile index f6c90fb30ac6..62fa2b7bf2c8 100644 --- a/www/redmine60/Makefile +++ b/www/redmine60/Makefile @@ -1,141 +1,141 @@ PORTNAME= redmine PORTVERSION= 6.0.8 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= www MASTER_SITES= https://www.redmine.org/releases/ PKGNAMESUFFIX= 60 # mikael@FreeBSD.org also have full maintainership MAINTAINER= delphij@FreeBSD.org COMMENT= Flexible project management web application WWW= https://www.redmine.org/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/doc/COPYING RUN_DEPENDS= rubygem-actionpack-xml_parser-rails72>=0:textproc/rubygem-actionpack-xml_parser-rails72 \ rubygem-addressable>0:www/rubygem-addressable \ rubygem-bundler>=1.12.0:sysutils/rubygem-bundler \ rubygem-cgi>=0:www/rubygem-cgi \ rubygem-csv>=3.2.6:devel/rubygem-csv \ rubygem-debug>=0:devel/rubygem-debug \ rubygem-erb>0:devel/rubygem-erb \ rubygem-globalid-rails72>0:databases/rubygem-globalid-rails72 \ rubygem-i18n>=1.14.1:devel/rubygem-i18n \ rubygem-mail>=2.8.1:mail/rubygem-mail \ rubygem-marcel>0:devel/rubygem-marcel \ rubygem-mini_mime>=1.1.0:mail/rubygem-mini_mime \ rubygem-mini_portile2>=2.8.2:devel/rubygem-mini_portile2 \ rubygem-mocha>=0.5.3:devel/rubygem-mocha \ rubygem-net-imap>=0.3.4:mail/rubygem-net-imap \ rubygem-net-ldap>=0.19.0:net/rubygem-net-ldap \ rubygem-net-pop>=0.1.2:mail/rubygem-net-pop \ rubygem-net-smtp>=0.3.3:mail/rubygem-net-smtp \ rubygem-nokogiri>=1.18.3:textproc/rubygem-nokogiri \ rubygem-rails72>=7.2.2:www/rubygem-rails72 \ rubygem-rbpdf>=1.21.4:print/rubygem-rbpdf \ rubygem-request_store15>=1.5.1:devel/rubygem-request_store15 \ rubygem-roadie-rails-rails72>=3.2.0:mail/rubygem-roadie-rails-rails72 \ rubygem-rotp>=5.0.0:devel/rubygem-rotp \ rubygem-rouge>=4.5.0:textproc/rubygem-rouge \ rubygem-rqrcode>0:www/rubygem-rqrcode \ rubygem-rubocop-performance>=0:devel/rubygem-rubocop-performance \ rubygem-rubocop-rails>0:devel/rubygem-rubocop-rails \ rubygem-rubocop>0<2:devel/rubygem-rubocop \ rubygem-rubyzip>2.3.0:archivers/rubygem-rubyzip \ rubygem-simplecov>0:devel/rubygem-simplecov \ rubygem-svg_sprite>=0:graphics/rubygem-svg_sprite \ rubygem-yard>=0:textproc/rubygem-yard # Per https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264638#c9 # to be removed if https://www.redmine.org/issues/37394 is fixed RUN_DEPENDS+= rubygem-commonmarker0>=0.23.8:textproc/rubygem-commonmarker0 \ rubygem-deckar01-task_list>=2.3.2:www/rubygem-deckar01-task_list \ rubygem-html-pipeline>=2.13.2:textproc/rubygem-html-pipeline \ rubygem-redcarpet>=3.6.0:textproc/rubygem-redcarpet \ rubygem-sanitize>=6.0:textproc/rubygem-sanitize USES= cpe ruby NO_ARCH= yes NO_BUILD= yes SUB_LIST= RUBY_SUFFIX=${RUBY_SUFFIX} USERS= ${WWWOWN} GROUPS= ${WWWGRP} PLIST_SUB= WWWOWN=${WWWOWN} WWWGRP=${WWWGRP} OPTIONS_DEFINE= PUMA MARKDOWN RMAGIC OPTIONS_DEFAULT=MYSQL MARKDOWN PUMA RMAGIC OPTIONS_SINGLE= DB OPTIONS_SINGLE_DB= MYSQL PGSQL SQLITE SQL NO_OPTIONS_SORT= yes OPTIONS_SUB= yes MARKDOWN_DESC= Enable Markdown support MYSQL_DESC= MySQL database support (via mysql2 rubygem) PGSQL_DESC= Postgres database support (via pg rubygem) PUMA_DESC= Use Puma WEB server RMAGIC_DESC= Enable Gantt charts support SQLITE_DESC= Sqlite3 database support (Not for production!) SQL_DESC= SQL Server requires manual (non-port) gem install MARKDOWN_RUN_DEPENDS= rubygem-redcarpet>=3.5.1:textproc/rubygem-redcarpet MYSQL_RUN_DEPENDS= rubygem-mysql2>=0.5.0:databases/rubygem-mysql2 \ rubygem-with_advisory_lock61>0:devel/rubygem-with_advisory_lock61 PGSQL_RUN_DEPENDS= rubygem-pg>=1.5.3:databases/rubygem-pg PUMA_RUN_DEPENDS= rubygem-puma>=6.5.0:www/rubygem-puma \ rubygem-rb-kqueue>=0.2:devel/rubygem-rb-kqueue PUMA_SUB_LIST= WWWOWN=${WWWOWN} WWWGRP=${WWWGRP} PUMA_VARS= USE_RC_SUBR=redmine -RMAGIC_RUN_DEPENDS= rubygem-mini_magick4>=4.11.0:graphics/rubygem-mini_magick4 +RMAGIC_RUN_DEPENDS= rubygem-mini_magick>=5.0.1:graphics/rubygem-mini_magick SQLITE_RUN_DEPENDS= rubygem-sqlite3>=1.7.0:databases/rubygem-sqlite3 .include post-extract: @${RM} -r ${WRKSRC}/.hgignore ${WRKSRC}/.gitignore ${WRKSRC}/.github \ ${WRKSRC}/files/delete.me ${WRKSRC}/log/delete.me @${MV} ${WRKSRC}/config/settings.yml ${WRKSRC}/config/settings.yml.sample @${MV} ${WRKSRC}/config/database.yml.example ${WRKSRC}/config/database.yml.sample Xpost-patch: @${RM} ${WRKSRC}/Gemfile.orig do-install: ${MKDIR} ${STAGEDIR}${WWWDIR} ${MKDIR} ${STAGEDIR}${WWWDIR}/bundler.d ${MKDIR} ${STAGEDIR}${WWWDIR}/log ${MKDIR} ${STAGEDIR}${WWWDIR}/public/assets ${MKDIR} ${STAGEDIR}${WWWDIR}/tmp/pdf # https://www.redmine.org/issues/37394 ${CP} ${FILESDIR}/commonmark.rb ${STAGEDIR}${WWWDIR}/bundler.d cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR} ${TOUCH} ${STAGEDIR}${WWWDIR}/Gemfile.lock do-install-MYSQL-on: ${CP} ${FILESDIR}/mysql.rb ${STAGEDIR}${WWWDIR}/bundler.d do-install-PGSQL-on: ${CP} ${FILESDIR}/pg.rb ${STAGEDIR}${WWWDIR}/bundler.d do-install-SQLITE-on: ${CP} ${FILESDIR}/sqlite3.rb ${STAGEDIR}${WWWDIR}/bundler.d do-install-SQL-on: ${CP} ${FILESDIR}/sql.rb ${STAGEDIR}${WWWDIR}/bundler.d do-install-MARKDOWN-on: ${CP} ${FILESDIR}/markdown.rb ${STAGEDIR}${WWWDIR}/bundler.d do-install-RMAGIC-on: ${CP} ${FILESDIR}/mini_magick.rb ${STAGEDIR}${WWWDIR}/bundler.d do-install-PUMA-on: ${CP} ${FILESDIR}/puma.rb ${STAGEDIR}${WWWDIR}/bundler.d post-install: (cd ${STAGEDIR}${WWWDIR} && ${RM} Gemfile.lock && bundle install --local) ${RM} ${STAGEDIR}${WWWDIR}/package.json \ ${STAGEDIR}${WWWDIR}/yarn.lock .include diff --git a/www/redmine60/files/commonmark.rb b/www/redmine60/files/commonmark.rb index 45c9b6df5d0a..a42837199fc0 100644 --- a/www/redmine60/files/commonmark.rb +++ b/www/redmine60/files/commonmark.rb @@ -1,2 +1,3 @@ gem "commonmarker", ">= 0.23.8" -gem "deckar01-task_list", ">=2.3.2" +gem 'deckar01-task_list', ">= 2.3.2" + diff --git a/www/redmine60/files/mini_magick.rb b/www/redmine60/files/mini_magick.rb index 5e3d7b1cacd6..f3d604deae41 100644 --- a/www/redmine60/files/mini_magick.rb +++ b/www/redmine60/files/mini_magick.rb @@ -1 +1 @@ -gem "mini_magick", ">= 4.12.0" +gem "mini_magick", ">= 5.0.1" diff --git a/www/redmine60/files/patch-Gemfile b/www/redmine60/files/patch-Gemfile index 1235b3201d52..e230d7d9be70 100644 --- a/www/redmine60/files/patch-Gemfile +++ b/www/redmine60/files/patch-Gemfile @@ -1,85 +1,147 @@ --- Gemfile.orig 2026-01-06 02:25:03 UTC +++ Gemfile @@ -1,27 +1,27 @@ source 'https://rubygems.org' source 'https://rubygems.org' -ruby '>= 3.1.0', '< 3.4.0' +ruby '>= 3.1.0', '< 4.0.0' -gem 'rails', '7.2.3' +gem 'rails', '~> 7.2.3' gem 'rouge', '~> 4.5' gem 'mini_mime', '~> 1.1.0' gem "actionpack-xml_parser" -gem 'roadie-rails', '~> 3.2.0' +gem 'roadie-rails', '>= 3.2.0' gem 'marcel' gem 'mail', '~> 2.8.1' -gem 'nokogiri', '~> 1.18.3' +gem 'nokogiri', '>= 1.18.3' gem 'i18n', '~> 1.14.1' gem 'rbpdf', '~> 1.21.4' gem 'addressable' -gem 'rubyzip', '~> 2.3.0' -gem 'propshaft', '~> 1.1.0' +gem 'rubyzip', '>= 2.3.0' +gem 'propshaft', '>= 1.1.0' gem 'rack', '>= 3.1.3' # Ruby Standard Gems -gem 'csv', '~> 3.2.8' -gem 'net-imap', '~> 0.4.20' -gem 'net-pop', '~> 0.1.2' -gem 'net-smtp', '~> 0.4.0' +gem 'csv', '>= 3.2.8' +gem 'net-imap', '>= 0.4.20' +gem 'net-pop', '>= 0.1.2' +gem 'net-smtp', '>= 0.4.0' # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin] -@@ -31,23 +31,23 @@ gem 'rqrcode' +@@ -31,94 +31,14 @@ gem 'rqrcode' gem 'rqrcode' # HTML pipeline and sanitization -gem "html-pipeline", "~> 2.13.2" -gem "sanitize", "~> 6.0" +gem "html-pipeline", "~> 2.14.0" +gem "sanitize", ">= 6.0" # Optional gem for LDAP authentication group :ldap do - gem 'net-ldap', '~> 0.17.0' + gem 'net-ldap', '>= 0.19' end - # Optional gem for exporting the gantt to a PNG file - group :minimagick do +-# Optional gem for exporting the gantt to a PNG file +-group :minimagick do - gem 'mini_magick', '~> 5.0.1' -+ gem 'mini_magick', '~> 4.13.0' - end - - # Optional CommonMark support, not for JRuby - group :common_mark do - gem "commonmarker", '~> 0.23.8' +-end +- +-# Optional CommonMark support, not for JRuby +-group :common_mark do +- gem "commonmarker", '~> 0.23.8' - gem 'deckar01-task_list', '2.3.2' -+ gem 'deckar01-task_list', '2.3.4' - end - - # Include database gems for the adapters found in the database -@@ -110,11 +110,10 @@ group :test do - gem "capybara", ">= 3.39" - gem 'selenium-webdriver', '>= 4.11.0' - # RuboCop +-end +- +-# Include database gems for the adapters found in the database +-# configuration file +-database_file = File.join(File.dirname(__FILE__), "config/database.yml") +-if File.exist?(database_file) +- database_config = File.read(database_file) +- +- # Requiring libraries in a Gemfile may cause Bundler warnings or +- # unexpected behavior, especially if multiple gem versions are available. +- # So, process database.yml through ERB only if it contains ERB syntax +- # in the adapter setting. See https://www.redmine.org/issues/41749. +- if database_config.match?(/^ *adapter: *<%=/) +- require 'erb' +- database_config = ERB.new(database_config).result +- end +- +- adapters = database_config.scan(/^ *adapter: *(.*)/).flatten.uniq +- if adapters.any? +- adapters.each do |adapter| +- case adapter.strip +- when /mysql2/ +- gem 'mysql2', '~> 0.5.0' +- gem "with_advisory_lock" +- when /postgresql/ +- gem 'pg', '~> 1.5.3' +- when /sqlite3/ +- gem 'sqlite3', '~> 1.7.0' +- when /sqlserver/ +- gem 'tiny_tds', '~> 2.1.2' +- gem 'activerecord-sqlserver-adapter', '~> 7.2.0' +- else +- warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems") +- end +- end +- else +- warn("No adapter found in config/database.yml, please configure it first") +- end +-else +- warn("Please configure your config/database.yml first") +-end +- +-group :development, :test do +- gem 'debug' +-end +- +-group :development do +- gem 'listen', '~> 3.3' +- gem 'yard', require: false +- gem 'svg_sprite', require: false +-end +- +-group :test do +- gem "rails-dom-testing", '>= 2.3.0' +- gem 'mocha', '>= 2.0.1' +- gem 'simplecov', '~> 0.22.0', :require => false +- gem "ffi", platforms: [:mingw, :x64_mingw, :mswin] +- # For running system tests +- gem 'puma' +- gem "capybara", ">= 3.39" +- gem 'selenium-webdriver', '>= 4.11.0' +- # RuboCop - gem 'rubocop', '~> 1.68.0', require: false - gem 'rubocop-ast', '~> 1.40.0', require: false - gem 'rubocop-performance', '~> 1.22.0', require: false - gem 'rubocop-rails', '~> 2.27.0', require: false - gem 'bundle-audit', require: false -+ gem 'rubocop', '>= 1.68.0', require: false -+ gem 'rubocop-ast', '>= 1.40.0', require: false -+ gem 'rubocop-performance', '>= 1.22.0', require: false -+ gem 'rubocop-rails', '>= 2.27.0', require: false - # `bin/rails test` fails at startup with minitest >= 6.0 - gem 'minitest', '< 6.0' +- # `bin/rails test` fails at startup with minitest >= 6.0 +- gem 'minitest', '< 6.0' +-end +- + local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local") + if File.exist?(local_gemfile) + eval_gemfile local_gemfile +@@ -127,4 +47,8 @@ Dir.glob File.expand_path("../plugins/*/{Gemfile,Plugi + # Load plugins' Gemfiles + Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file| + eval_gemfile file ++end ++ ++Dir["#{File.dirname(__FILE__)}/bundler.d/*.rb"].each do |bundle|0 ++ self.instance_eval(Bundler.read_file(bundle)) end diff --git a/www/redmine60/files/redmine.in b/www/redmine60/files/redmine.in index 9c9ed9636db7..d1c7e0bbd0a7 100644 --- a/www/redmine60/files/redmine.in +++ b/www/redmine60/files/redmine.in @@ -1,38 +1,38 @@ #!/bin/sh # PROVIDE: redmine # REQUIRE: LOGIN # KEYWORD: shutdown # Add the following line to /etc/rc.conf[.local] to enable redmine # # redmine_enable (bool): Set to "NO" by default. # Set it to "YES" to enable redmine. # redmine_args (str): Custom additional arguments to be passed # to redmine. # redmine_user (str): User account to run puma with. (default: %%WWWOWN%%) # redmine_group (str): Group to run puma with. (default: %%WWWGRP%%) . /etc/rc.subr name="redmine" rcvar=redmine_enable pidfile="%%WWWDIR%%/tmp/pids/puma.pid" load_rc_config $name # add /usr/local/bin to path export PATH=$PATH:%%PREFIX%%/bin # set defaults : ${redmine_args="--bind tcp://0.0.0.0:3000 -e production"} : ${redmine_enable="NO"} : ${redmine_user="%%WWWOWN%%"} : ${redmine_group="%%WWWGRP%%"} command=/usr/sbin/daemon -command_args="-c -f -P ${pidfile} -S \ +command_args="-c -f -P ${pidfile} -T ${name} -t ${name} -S \ %%PREFIX%%/bin/puma --dir %%WWWDIR%% --no-config ${redmine_args}" run_rc_command "$1"