Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Mar 2026 05:23:57 +0000
From:      Xin LI <delphij@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 918e8508b436 - main - www/redmine61: Add new port.
Message-ID:  <69b793ed.3012d.442ce92f@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by delphij:

URL: https://cgit.FreeBSD.org/ports/commit/?id=918e8508b4368582e13b37ea541c87c86069d82e

commit 918e8508b4368582e13b37ea541c87c86069d82e
Author:     Xin LI <delphij@FreeBSD.org>
AuthorDate: 2026-03-16 04:41:52 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2026-03-16 05:14:54 +0000

    www/redmine61: Add new port.
---
 www/Makefile                                       |    1 +
 www/redmine61/Makefile                             |  152 ++
 www/redmine61/bsd.redmine.mk                       |   78 +
 www/redmine61/distinfo                             |    3 +
 www/redmine61/files/markdown.rb                    |    1 +
 www/redmine61/files/mini_magick.rb                 |    1 +
 www/redmine61/files/mysql2.rb                      |    2 +
 www/redmine61/files/patch-Gemfile                  |  166 ++
 .../files/patch-config_database.yml.sample         |   39 +
 www/redmine61/files/pg.rb                          |    1 +
 www/redmine61/files/puma.rb                        |    2 +
 www/redmine61/files/redmine.in                     |   40 +
 www/redmine61/files/sql.rb                         |    2 +
 www/redmine61/files/sqlite3.rb                     |    1 +
 www/redmine61/files/trilogy.rb                     |    2 +
 www/redmine61/pkg-descr                            |   21 +
 www/redmine61/pkg-message                          |   29 +
 www/redmine61/pkg-plist                            | 2286 ++++++++++++++++++++
 18 files changed, 2827 insertions(+)

diff --git a/www/Makefile b/www/Makefile
index bb2a817667be..ed2d94e1dfba 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -2033,6 +2033,7 @@
     SUBDIR += reddsaver
     SUBDIR += redmine51
     SUBDIR += redmine60
+    SUBDIR += redmine61
     SUBDIR += rejik
     SUBDIR += remark42
     SUBDIR += reportmagic
diff --git a/www/redmine61/Makefile b/www/redmine61/Makefile
new file mode 100644
index 000000000000..3da2b66c529d
--- /dev/null
+++ b/www/redmine61/Makefile
@@ -0,0 +1,152 @@
+PORTNAME=	redmine
+PORTVERSION=	6.1.1
+CATEGORIES=	www
+MASTER_SITES=	https://www.redmine.org/releases/
+PKGNAMESUFFIX=	61
+
+# 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-bcrypt>=3.0<4:security/rubygem-bcrypt \
+		rubygem-bullet-rails72>0:devel/rubygem-bullet-rails72 \
+		rubygem-bundle-audit>0:sysutils/rubygem-bundle-audit \
+		rubygem-bundler>=1.12.0:sysutils/rubygem-bundler \
+		rubygem-cgi>=0:www/rubygem-cgi \
+		rubygem-commonmarker>=2.3.0:textproc/rubygem-commonmarker \
+		rubygem-csv>=3.3.2:devel/rubygem-csv \
+		rubygem-debug>=0:devel/rubygem-debug \
+		rubygem-doorkeeper-rails72>=5.8.2:security/rubygem-doorkeeper-rails72 \
+		rubygem-doorkeeper-i18n-rails72>=5.2:security/rubygem-doorkeeper-i18n-rails72 \
+		rubygem-erb>0:devel/rubygem-erb \
+		rubygem-globalid-rails72>0:databases/rubygem-globalid-rails72 \
+		rubygem-html-pipeline>=2.13.2:textproc/rubygem-html-pipeline \
+		rubygem-i18n>=1.14.1:devel/rubygem-i18n \
+		rubygem-importmap-rails-rails72>=2.0:www/rubygem-importmap-rails-rails72 \
+		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>=2.0.1:devel/rubygem-mocha \
+		rubygem-net-imap>=0.5.7: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.5.0:mail/rubygem-net-smtp \
+		rubygem-nokogiri>=1.18.3:textproc/rubygem-nokogiri \
+		rubygem-oauth2>2.0<3:net/rubygem-oauth2 \
+		rubygem-propshaft-rails72>=1.1.0:www/rubygem-propshaft-rails72 \
+		rubygem-rack>=3.1.3:www/rubygem-rack \
+		rubygem-rails-dom-testing-rails72>=2.2<3:textproc/rubygem-rails-dom-testing-rails72 \
+		rubygem-rails72>=7.2.3:www/rubygem-rails72 \
+		rubygem-rbpdf>=1.21.4:print/rubygem-rbpdf \
+		rubygem-requestjs-rails-rails72>=0.0.13:www/rubygem-requestjs-rails-rails72 \
+		rubygem-request_store15>=1.5.1:devel/rubygem-request_store15 \
+		rubygem-rest-client>0:www/rubygem-rest-client \
+		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.4.0:archivers/rubygem-rubyzip \
+		rubygem-sanitize>=6.0:textproc/rubygem-sanitize \
+		rubygem-simplecov>0:devel/rubygem-simplecov \
+		rubygem-stimulus-rails-rails72>=1.3:www/rubygem-stimulus-rails-rails72 \
+		rubygem-svg_sprite>=0:graphics/rubygem-svg_sprite \
+		rubygem-yard>=0:textproc/rubygem-yard
+
+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=TRILOGY MARKDOWN PUMA RMAGIC
+OPTIONS_SINGLE=	DB
+OPTIONS_SINGLE_DB=	TRILOGY MYSQL2 PGSQL SQLITE SQL
+NO_OPTIONS_SORT=	yes
+OPTIONS_SUB=	yes
+MARKDOWN_DESC=	Enable Markdown support
+TRILOGY_DESC=	MySQL database support (via trilogy rubygem, preferred)
+MYSQL2_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
+TRILOGY_RUN_DEPENDS=	rubygem-trilogy>=2.9.0:databases/rubygem-trilogy \
+			rubygem-with_advisory_lock61>0:devel/rubygem-with_advisory_lock61
+MYSQL2_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_magick>=5.0.1:graphics/rubygem-mini_magick
+SQLITE_RUN_DEPENDS=	rubygem-sqlite3>=2.5.0:databases/rubygem-sqlite3
+
+.include <bsd.port.options.mk>
+
+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
+
+post-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
+
+	cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR}
+	${TOUCH} ${STAGEDIR}${WWWDIR}/Gemfile.lock
+
+do-install-TRILOGY-on:
+	${CP} ${FILESDIR}/trilogy.rb ${STAGEDIR}${WWWDIR}/bundler.d
+
+do-install-MYSQL2-on:
+	${CP} ${FILESDIR}/mysql2.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 <bsd.port.mk>
diff --git a/www/redmine61/bsd.redmine.mk b/www/redmine61/bsd.redmine.mk
new file mode 100644
index 000000000000..c1b95aa2f62a
--- /dev/null
+++ b/www/redmine61/bsd.redmine.mk
@@ -0,0 +1,78 @@
+# Module that simplifies installation of Redmine plugins.
+#
+# Date created:                      2010-09-12
+# Whom:                              Eygene Ryabinkin <rea-fbsd@codelabs.ru>
+#
+# We're assuming standard plugin installation sequence that is described
+# in the https://www.redmine.org/projects/redmine/wiki/Plugins
+#
+# Basically, we need the following variables to be defined:
+# - REDMINE_PLUGIN_NAME: the name of the plugin;
+# - WWWDIR: the location of the Redmine installation;
+#   the default value is ${PREFIX}/www/redmine;
+#   the directory must lie under ${PREFIX} or such configuration
+#   will be IGNORE'd;
+# - WRKSRC must be set to the root directory of the plugin contents:
+#   we will copy all objects in this directory to the plugin's
+#   destination directory, excluding all files named *.orig.
+#
+# PLIST will be generated automatically, there is no need to worry
+# about it.  But if you will need to use your own (even the standard
+# packaging list in ${PORTDIR}/pkg-plist), set the variable PLIST
+# pointing to that file.
+#
+# You can override the target 'do-build', but in this case, you should
+# remember that the target named 'redmine-plugin-plist' does the
+# automated generation of the PLIST: use it if you need.
+#
+#
+# Here is an example of a simple Makefile for Redmine plugin:
+# {{{
+# PORTNAME=	me-the-plugin
+# PORTVERSION=	1.0
+# CATEGORIES=	www
+# MASTER_SITES=	http://cool.org.name/some/path/
+#
+# MAINTAINER=	you@your.org
+# COMMENT=	Another cool plugin for Redmine
+#
+# REDMINE_PLUGIN_NAME=	redmine_http_auth
+#
+# .include "${.CURDIR}/../../www/redmine/bsd.redmine.mk"
+# }}}
+
+PKGNAMEPREFIX?=	redmine61-
+
+RUN_DEPENDS+=	redmine61>0:www/redmine61
+
+USE_RUBY=	yes
+.if !defined(PLIST)
+PLIST=		${WRKDIR}/PLIST
+_GEN_PLIST=	YesPlease
+.endif
+
+WWWDIR?=	${PREFIX}/www/redmine
+WWWDIR_REL=	${WWWDIR:S|^${PREFIX}/||}
+
+.if ${WWWDIR_REL} == ${WWWDIR}
+IGNORE=		WWWDIR is not a child of PREFIX (${PREFIX})
+.endif
+
+.if !defined(do-build)
+do-build: redmine-plugin-plist
+	@${DO_NADA}
+.endif
+
+redmine-plugin-plist:
+.if defined(_GEN_PLIST)
+	cd ${WRKSRC} && ${FIND} . -type f | ${GREP} -v '\.orig$$' | ${SED} -e's|^\.|${WWWDIR_REL}/plugins/${REDMINE_PLUGIN_NAME}|' >> ${PLIST}
+	cd ${WRKSRC} && ${FIND} -d . -empty -type d | ${SED} -e's|^\.|@dir ${WWWDIR_REL}/plugins/${REDMINE_PLUGIN_NAME}|' >> ${PLIST}
+.else
+	@${DO_NADA}
+.endif
+
+do-install:
+	${MKDIR} "${STAGEDIR}${WWWDIR}/plugins/${REDMINE_PLUGIN_NAME}"
+	${TAR} -C "${WRKSRC}" -cf - --exclude '*.orig' . | ${TAR} -C "${STAGEDIR}${WWWDIR}/plugins/${REDMINE_PLUGIN_NAME}" -xf -
+
+.include <bsd.port.mk>
diff --git a/www/redmine61/distinfo b/www/redmine61/distinfo
new file mode 100644
index 000000000000..5c9c6eddaea1
--- /dev/null
+++ b/www/redmine61/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1771992428
+SHA256 (redmine-6.1.1.tar.gz) = 1f2e6dd0697062fc733701f88b5041dc0dfc6b536255eb7902f21fb0970e603e
+SIZE (redmine-6.1.1.tar.gz) = 4148785
diff --git a/www/redmine61/files/markdown.rb b/www/redmine61/files/markdown.rb
new file mode 100644
index 000000000000..8dcfe1a66a58
--- /dev/null
+++ b/www/redmine61/files/markdown.rb
@@ -0,0 +1 @@
+gem "redcarpet"
diff --git a/www/redmine61/files/mini_magick.rb b/www/redmine61/files/mini_magick.rb
new file mode 100644
index 000000000000..64cc343e149c
--- /dev/null
+++ b/www/redmine61/files/mini_magick.rb
@@ -0,0 +1 @@
+gem "mini_magick", ">= 5.2.0"
diff --git a/www/redmine61/files/mysql2.rb b/www/redmine61/files/mysql2.rb
new file mode 100644
index 000000000000..96a5878e3567
--- /dev/null
+++ b/www/redmine61/files/mysql2.rb
@@ -0,0 +1,2 @@
+gem "mysql2", ">= 0.5.0"
+gem "with_advisory_lock"
diff --git a/www/redmine61/files/patch-Gemfile b/www/redmine61/files/patch-Gemfile
new file mode 100644
index 000000000000..0b8ce1443436
--- /dev/null
+++ b/www/redmine61/files/patch-Gemfile
@@ -0,0 +1,166 @@
+--- Gemfile.orig	2026-01-06 02:25:05 UTC
++++ Gemfile
+@@ -1,34 +1,34 @@ source 'https://rubygems.org'
+ source 'https://rubygems.org'
+ 
+-ruby '>= 3.2.0', '< 3.5.0'
++ruby '>= 3.2.0', '< 4.0.0'
+ 
+-gem 'rails', '7.2.3'
+-gem 'rouge', '~> 4.5'
+-gem 'mini_mime', '~> 1.1.0'
++gem 'rails', '>= 7.2.3'
++gem 'rouge', '>= 4.5'
++gem 'mini_mime', '>= 1.1.0'
+ gem "actionpack-xml_parser"
+-gem 'roadie-rails', '~> 3.3.0'
++gem 'roadie-rails', '>= 3.3.0'
+ gem 'marcel'
+-gem 'mail', '~> 2.8.1'
+-gem 'nokogiri', '~> 1.18.3'
+-gem 'i18n', '~> 1.14.1'
+-gem 'rbpdf', '~> 1.21.4'
++gem 'mail', '>= 2.8.1'
++gem 'nokogiri', '>= 1.18.3'
++gem 'i18n', '>= 1.14.1'
++gem 'rbpdf', '>= 1.21.4'
+ gem 'addressable'
+-gem 'rubyzip', '~> 2.4.0'
+-gem 'propshaft', '~> 1.1.0'
++gem 'rubyzip', '>= 2.4.0'
++gem 'propshaft', '>= 1.1.0'
+ gem 'rack', '>= 3.1.3'
+-gem "stimulus-rails", "~> 1.3"
+-gem "importmap-rails", "~> 2.0"
+-gem 'commonmarker', '~> 2.3.0'
+-gem "doorkeeper", "~> 5.8.2"
++gem "stimulus-rails", ">= 1.3"
++gem "importmap-rails", ">= 2.0"
++gem 'commonmarker', '>= 2.3.0'
++gem "doorkeeper", ">= 5.8.2"
+ gem "bcrypt", require: false
+-gem "doorkeeper-i18n", "~> 5.2"
+-gem "requestjs-rails", "~> 0.0.13"
++gem "doorkeeper-i18n", ">= 5.2"
++gem "requestjs-rails", ">= 0.0.13"
+ 
+ #  Ruby Standard Gems
+-gem 'csv', '~> 3.3.2'
+-gem 'net-imap', '~> 0.5.7'
+-gem 'net-pop', '~> 0.1.2'
+-gem 'net-smtp', '~> 0.5.0'
++gem 'csv', '>= 3.3.2'
++gem 'net-imap', '>= 0.5.7'
++gem 'net-pop', '>= 0.1.2'
++gem 'net-smtp', '>= 0.5.0'
+ 
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
+ gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
+@@ -38,94 +38,19 @@ gem 'rqrcode'
+ gem 'rqrcode'
+ 
+ # HTML pipeline and sanitization
+-gem "html-pipeline", "~> 2.13.2"
+-gem "sanitize", "~> 6.0"
++gem "html-pipeline", ">= 2.13.2"
++gem "sanitize", ">= 6.0"
+ 
+ # Optional gem for LDAP authentication
+ group :ldap do
+-  gem 'net-ldap', '~> 0.17.0'
++  gem 'net-ldap', '>= 0.17.0'
+ end
+ 
+ # Optional gem for exporting the gantt to a PNG file
+ group :minimagick do
+-  gem 'mini_magick', '~> 5.2.0'
++  gem 'mini_magick', '>= 5.2.0'
+ 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 /trilogy/
+-        gem 'trilogy', '~> 2.9.0'
+-        gem "with_advisory_lock"
+-      when /postgresql/
+-        gem 'pg', '~> 1.5.3'
+-      when /sqlite3/
+-        gem 'sqlite3', '~> 2.5.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
+-  gem 'bullet'
+-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.76.0', require: false
+-  gem 'rubocop-performance', '~> 1.25.0', require: false
+-  gem 'rubocop-rails', '~> 2.32.0', require: false
+-  gem 'bundle-audit', require: false
+-  # for testing oauth provider capabilities
+-  gem 'oauth2'
+-  gem 'rest-client'
+-  # Lock minitest to 5.x until a Rails release includes support for minitest 6.0
+-  gem 'minitest', '~> 5.27'
+-end
+-
+ local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
+ if File.exist?(local_gemfile)
+   eval_gemfile local_gemfile
+@@ -134,4 +59,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|
++  self.instance_eval(Bundler.read_file(bundle))
+ end
diff --git a/www/redmine61/files/patch-config_database.yml.sample b/www/redmine61/files/patch-config_database.yml.sample
new file mode 100644
index 000000000000..699fc55dec3b
--- /dev/null
+++ b/www/redmine61/files/patch-config_database.yml.sample
@@ -0,0 +1,39 @@
+--- config/database.yml.sample.orig	2026-02-25 04:33:47 UTC
++++ config/database.yml.sample
+@@ -1,7 +1,12 @@
+ # Default setup is given for MySQL 5.7.7 or later.
+ # Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end.
+ # Line indentation must be 2 spaces (no tabs).
++# Delete/comment all non-installed adapter entries
+ 
++# WARNING: Changing database adapter requires manually reinstalling the bundle
++# or rebuilding/reinstalling the port with corrected OPTIONS.
++
++# Uses default port of 3306, can be specified with 'port:'
+ production:
+   adapter: mysql2
+   # You can also use "trilogy", an adapter for MySQL-compatible servers.
+@@ -47,12 +52,15 @@ test:
+     transaction_isolation: "READ-COMMITTED"
+ 
+ # PostgreSQL configuration example
++# Uses default port of 5432, can be specified with 'port:'
++# Uses default schema of public, can be specified with 'schema_search_path:'
+ #production:
+ #  adapter: postgresql
+ #  database: redmine
+ #  host: localhost
+ #  username: postgres
+ #  password: "postgres"
++#  encoding: utf8
+ 
+ # SQLite3 configuration example
+ #production:
+@@ -60,6 +68,7 @@ test:
+ #  database: db/redmine.sqlite3
+ 
+ # SQL Server configuration example
++# Uses default port of 1433, can be specified with 'port:'
+ #production:
+ #  adapter: sqlserver
+ #  database: redmine
diff --git a/www/redmine61/files/pg.rb b/www/redmine61/files/pg.rb
new file mode 100644
index 000000000000..285a2c538eb8
--- /dev/null
+++ b/www/redmine61/files/pg.rb
@@ -0,0 +1 @@
+gem "pg", ">= 1.5.3"
diff --git a/www/redmine61/files/puma.rb b/www/redmine61/files/puma.rb
new file mode 100644
index 000000000000..ffefbef54030
--- /dev/null
+++ b/www/redmine61/files/puma.rb
@@ -0,0 +1,2 @@
+gem "puma"
+gem "rb-kqueue", ">= 0.2"
diff --git a/www/redmine61/files/redmine.in b/www/redmine61/files/redmine.in
new file mode 100644
index 000000000000..2288bf9665f3
--- /dev/null
+++ b/www/redmine61/files/redmine.in
@@ -0,0 +1,40 @@
+#!/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 puma.
+# 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://127.0.0.1:3000 -e production"}
+# To use a UNIX socket instead, set in rc.conf:
+# redmine_args="--bind unix:///var/run/redmine/puma.sock -e production"
+: ${redmine_enable="NO"}
+: ${redmine_user="%%WWWOWN%%"}
+: ${redmine_group="%%WWWGRP%%"}
+
+command=/usr/sbin/daemon
+command_args="-c -f -P ${pidfile} -T ${name} -t ${name} -S \
+	%%PREFIX%%/bin/puma --dir %%WWWDIR%% --no-config ${redmine_args}"
+
+run_rc_command "$1"
diff --git a/www/redmine61/files/sql.rb b/www/redmine61/files/sql.rb
new file mode 100644
index 000000000000..4ff532c14267
--- /dev/null
+++ b/www/redmine61/files/sql.rb
@@ -0,0 +1,2 @@
+gem "tiny_tds", ">= 2.1.2"
+gem "activerecord-sqlserver-adapter", ">= 7.2.0"
diff --git a/www/redmine61/files/sqlite3.rb b/www/redmine61/files/sqlite3.rb
new file mode 100644
index 000000000000..0ffdcb74f0b4
--- /dev/null
+++ b/www/redmine61/files/sqlite3.rb
@@ -0,0 +1 @@
+gem "sqlite3", ">= 2.5.0"
diff --git a/www/redmine61/files/trilogy.rb b/www/redmine61/files/trilogy.rb
new file mode 100644
index 000000000000..b9551275ae95
--- /dev/null
+++ b/www/redmine61/files/trilogy.rb
@@ -0,0 +1,2 @@
+gem "trilogy", ">= 2.9.0"
+gem "with_advisory_lock"
diff --git a/www/redmine61/pkg-descr b/www/redmine61/pkg-descr
new file mode 100644
index 000000000000..05b0f6fb97a9
--- /dev/null
+++ b/www/redmine61/pkg-descr
@@ -0,0 +1,21 @@
+Redmine is a flexible project management web application
+written using Ruby on Rails framework, it is cross-platform
+and cross-database.
+
+Feature Overview:
+* Multiple projects support
+* Flexible role based access control
+* Flexible issue tracking system
+* Gantt chart and calendar
+* News, documents & files management
+* Feeds & email notifications
+* Per project wiki
+* Per project forums
+* Time tracking
+* Custom fields for issues, time-entries, projects and users
+* SCM integration (SVN, CVS, Git, Mercurial, Bazaar and Darcs)
+* Issue creation via email
+* Multiple LDAP authentication support
+* User self-registration support
+* Multilanguage support
+* Multiple databases support
diff --git a/www/redmine61/pkg-message b/www/redmine61/pkg-message
new file mode 100644
index 000000000000..44c39973b129
--- /dev/null
+++ b/www/redmine61/pkg-message
@@ -0,0 +1,29 @@
+[
+{ type: install
+  message: <<EOM
+Redmine was installed.
+
+You now need to setup your Redmine installation so
+please have a look at the Installation Guide.
+
+Steps 1, 4 and 8 were completed by the pkg install. Step 10
+is accomplished using the rc script. The other steps must be
+completed manually.
+
+SQL Server users must manually install needed ruby gems.
+
+https://www.redmine.org/projects/redmine/wiki/RedmineInstall
+
+If you are upgrading please read the Upgrading Guide
+before starting the new version.
+
+https://www.redmine.org/projects/redmine/wiki/RedmineUpgrade
+
+For users upgrading from Redmine 5.x to 6.x, please note that
+the default web server has changed from Thin to Puma.
+Existing redmine_flags should be moved to redmine_args with
+appropriate changes.
+
+EOM
+}
+]
diff --git a/www/redmine61/pkg-plist b/www/redmine61/pkg-plist
new file mode 100644
index 000000000000..e103271e6999
--- /dev/null
+++ b/www/redmine61/pkg-plist
@@ -0,0 +1,2286 @@
+@owner %%WWWOWN%%
+@group %%WWWGRP%%
+%%MARKDOWN%%%%WWWDIR%%/bundler.d/markdown.rb
+%%PGSQL%%%%WWWDIR%%/bundler.d/pg.rb
+%%PUMA%%%%WWWDIR%%/bundler.d/puma.rb
+%%RMAGIC%%%%WWWDIR%%/bundler.d/mini_magick.rb
+%%MYSQL2%%%%WWWDIR%%/bundler.d/mysql2.rb
+%%SQL%%%%WWWDIR%%/bundler.d/sql.rb
+%%SQLITE%%%%WWWDIR%%/bundler.d/sqlite3.rb
+%%TRILOGY%%%%WWWDIR%%/bundler.d/trilogy.rb
+%%WWWDIR%%/.rubocop.yml
+%%WWWDIR%%/.rubocop_todo.yml
+%%WWWDIR%%/.stylelintignore
+%%WWWDIR%%/.stylelintrc
+%%WWWDIR%%/CONTRIBUTING.md
+%%WWWDIR%%/Gemfile
+%%WWWDIR%%/Gemfile.lock
+%%WWWDIR%%/LICENSE.txt
+%%WWWDIR%%/README.rdoc
+%%WWWDIR%%/Rakefile
+%%WWWDIR%%/app/assets/fonts/NotoSans-Bold.woff2
+%%WWWDIR%%/app/assets/fonts/NotoSans-BoldItalic.woff2
+%%WWWDIR%%/app/assets/fonts/NotoSans-Italic.woff2
+%%WWWDIR%%/app/assets/fonts/NotoSans-Regular.woff2
+%%WWWDIR%%/app/assets/fonts/OFL.txt
+%%WWWDIR%%/app/assets/images/3_bullets.png
+%%WWWDIR%%/app/assets/images/add.png
+%%WWWDIR%%/app/assets/images/anonymous.png
+%%WWWDIR%%/app/assets/images/arrow_down.png
+%%WWWDIR%%/app/assets/images/arrow_left.png
+%%WWWDIR%%/app/assets/images/arrow_right.png
+%%WWWDIR%%/app/assets/images/arrow_up.png
+%%WWWDIR%%/app/assets/images/attachment.png
+%%WWWDIR%%/app/assets/images/bullet_add.png
+%%WWWDIR%%/app/assets/images/bullet_black.png
+%%WWWDIR%%/app/assets/images/bullet_blue.png
+%%WWWDIR%%/app/assets/images/bullet_delete.png
+%%WWWDIR%%/app/assets/images/bullet_diamond.png
+%%WWWDIR%%/app/assets/images/bullet_end.png
+%%WWWDIR%%/app/assets/images/bullet_go.png
+%%WWWDIR%%/app/assets/images/bullet_orange.png
+%%WWWDIR%%/app/assets/images/bullet_purple.png
+%%WWWDIR%%/app/assets/images/bullet_toggle_minus.png
+%%WWWDIR%%/app/assets/images/bullet_toggle_plus.png
+%%WWWDIR%%/app/assets/images/calendar.png
+%%WWWDIR%%/app/assets/images/cancel.png
+%%WWWDIR%%/app/assets/images/changeset.png
+%%WWWDIR%%/app/assets/images/chevron-down.svg
+%%WWWDIR%%/app/assets/images/chevron-right-idnt.svg
+%%WWWDIR%%/app/assets/images/close.png
+%%WWWDIR%%/app/assets/images/close_hl.png
+%%WWWDIR%%/app/assets/images/comment.png
+%%WWWDIR%%/app/assets/images/comments.png
+%%WWWDIR%%/app/assets/images/copy.png
+%%WWWDIR%%/app/assets/images/copy_link.png
+%%WWWDIR%%/app/assets/images/database_go.png
+%%WWWDIR%%/app/assets/images/database_key.png
+%%WWWDIR%%/app/assets/images/delete.png
+%%WWWDIR%%/app/assets/images/document.png
+%%WWWDIR%%/app/assets/images/download.png
+%%WWWDIR%%/app/assets/images/duplicate.png
+%%WWWDIR%%/app/assets/images/edit.png
+%%WWWDIR%%/app/assets/images/email.png
+%%WWWDIR%%/app/assets/images/email_add.png
+%%WWWDIR%%/app/assets/images/email_disabled.png
+%%WWWDIR%%/app/assets/images/exclamation.png
+%%WWWDIR%%/app/assets/images/external.png
+%%WWWDIR%%/app/assets/images/false.png
+%%WWWDIR%%/app/assets/images/fav.png
+%%WWWDIR%%/app/assets/images/fav_off.png
+%%WWWDIR%%/app/assets/images/favicon.ico
+%%WWWDIR%%/app/assets/images/feed.png
+%%WWWDIR%%/app/assets/images/files/c.png
+%%WWWDIR%%/app/assets/images/files/csharp.png
+%%WWWDIR%%/app/assets/images/files/css.png
+%%WWWDIR%%/app/assets/images/files/default.png
+%%WWWDIR%%/app/assets/images/files/html.png
+%%WWWDIR%%/app/assets/images/files/image.png
+%%WWWDIR%%/app/assets/images/files/java.png
+%%WWWDIR%%/app/assets/images/files/js.png
+%%WWWDIR%%/app/assets/images/files/pdf.png
+%%WWWDIR%%/app/assets/images/files/php.png
+%%WWWDIR%%/app/assets/images/files/ruby.png
+%%WWWDIR%%/app/assets/images/files/text.png
+%%WWWDIR%%/app/assets/images/files/xml.png
+%%WWWDIR%%/app/assets/images/files/zip.png
+%%WWWDIR%%/app/assets/images/folder.png
+%%WWWDIR%%/app/assets/images/folder_open.png
+%%WWWDIR%%/app/assets/images/folder_open_add.png
+%%WWWDIR%%/app/assets/images/folder_open_orange.png
+%%WWWDIR%%/app/assets/images/group.png
+%%WWWDIR%%/app/assets/images/help.png
+%%WWWDIR%%/app/assets/images/history.png
+%%WWWDIR%%/app/assets/images/hourglass-empty.svg
+%%WWWDIR%%/app/assets/images/hourglass.png
+%%WWWDIR%%/app/assets/images/icons.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/bold.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_bq.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_bq_remove.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_code.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_del.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_em.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_h1.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_h2.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_h3.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_img.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_ins.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_link.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_ol.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_pre.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_precode.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_strong.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_table.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_tl.png
+%%WWWDIR%%/app/assets/images/jstoolbar/bt_ul.png
+%%WWWDIR%%/app/assets/images/jstoolbar/checklist.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/code.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/h1.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/h2.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/h3.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/help.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/image.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/indent-decrease.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/indent-increase.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/italic.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/letter-c.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/list-check.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/list-numbers.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/list.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/strikethrough.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/table.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/underline.svg
+%%WWWDIR%%/app/assets/images/jstoolbar/wiki_link.svg
+%%WWWDIR%%/app/assets/images/lightning.png
+%%WWWDIR%%/app/assets/images/link.png
+%%WWWDIR%%/app/assets/images/link_break.png
+%%WWWDIR%%/app/assets/images/loading.gif
+%%WWWDIR%%/app/assets/images/locked.png
+%%WWWDIR%%/app/assets/images/magnifier.png
+%%WWWDIR%%/app/assets/images/message.png
+%%WWWDIR%%/app/assets/images/milestone_done.png
+%%WWWDIR%%/app/assets/images/milestone_late.png
+%%WWWDIR%%/app/assets/images/milestone_todo.png
+%%WWWDIR%%/app/assets/images/move.png
+%%WWWDIR%%/app/assets/images/news.png
+%%WWWDIR%%/app/assets/images/package.png
+%%WWWDIR%%/app/assets/images/plugin.png
+%%WWWDIR%%/app/assets/images/project_marker.png
+%%WWWDIR%%/app/assets/images/projects.png
+%%WWWDIR%%/app/assets/images/reload.png
+%%WWWDIR%%/app/assets/images/reorder.png
+%%WWWDIR%%/app/assets/images/report.png
+%%WWWDIR%%/app/assets/images/save.png
+%%WWWDIR%%/app/assets/images/search.svg
+%%WWWDIR%%/app/assets/images/server_key.png
+%%WWWDIR%%/app/assets/images/sort_asc.png
+%%WWWDIR%%/app/assets/images/sort_desc.png
+%%WWWDIR%%/app/assets/images/stats.png
+%%WWWDIR%%/app/assets/images/table_multiple.png
+%%WWWDIR%%/app/assets/images/tag_blue.png
+%%WWWDIR%%/app/assets/images/tag_blue_add.png
+%%WWWDIR%%/app/assets/images/tag_blue_delete.png
+%%WWWDIR%%/app/assets/images/task_done.png
+%%WWWDIR%%/app/assets/images/task_late.png
+%%WWWDIR%%/app/assets/images/task_parent_end.png
+%%WWWDIR%%/app/assets/images/task_todo.png
+%%WWWDIR%%/app/assets/images/text_list_bullets.png
+%%WWWDIR%%/app/assets/images/textfield.png
+%%WWWDIR%%/app/assets/images/textfield_key.png
+%%WWWDIR%%/app/assets/images/ticket.png
+%%WWWDIR%%/app/assets/images/ticket_checked.png
+%%WWWDIR%%/app/assets/images/ticket_edit.png
+%%WWWDIR%%/app/assets/images/ticket_go.png
+%%WWWDIR%%/app/assets/images/ticket_note.png
+%%WWWDIR%%/app/assets/images/time.png
+%%WWWDIR%%/app/assets/images/time_add.png
+%%WWWDIR%%/app/assets/images/toggle_check.png
+%%WWWDIR%%/app/assets/images/transparent.png
+%%WWWDIR%%/app/assets/images/true.png
+%%WWWDIR%%/app/assets/images/unlock.png
+%%WWWDIR%%/app/assets/images/user.png
+%%WWWDIR%%/app/assets/images/version_marker.png
+%%WWWDIR%%/app/assets/images/warning.png
+%%WWWDIR%%/app/assets/images/wiki_edit.png
+%%WWWDIR%%/app/assets/images/zoom_in.png
+%%WWWDIR%%/app/assets/images/zoom_out.png
+%%WWWDIR%%/app/assets/javascripts/application-legacy.js
+%%WWWDIR%%/app/assets/javascripts/attachments.js
+%%WWWDIR%%/app/assets/javascripts/chart.min.js
+%%WWWDIR%%/app/assets/javascripts/context_menu.js
+%%WWWDIR%%/app/assets/javascripts/gantt.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-ar.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-az.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-bg.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-bs.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-ca.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-cs.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-da.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-de.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-el.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-en-GB.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-es.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-et.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-eu.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-fa.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-fi.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-fr.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-gl.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-he.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-hr.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-hu.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-id.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-it.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-ja.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-ko.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-lt.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-lv.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-mk.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-nl.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-no.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-pl.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-pt-BR.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-pt.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-ro.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-ru.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-sk.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-sl.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-sq.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-sr.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-sv.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-th.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-tr.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-uk.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-vi.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-zh-CN.js
+%%WWWDIR%%/app/assets/javascripts/i18n/datepicker-zh-TW.js
+%%WWWDIR%%/app/assets/javascripts/jquery-3.7.1-ui-1.13.3.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/common_mark.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/jstoolbar.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-ar.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-az.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-bg.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-bs.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-ca.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-cs.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-da.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-de.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-en-gb.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-en.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-es-pa.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-es.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-et.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-eu.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-fa.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-fi.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-fr.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-gl.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-he.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-hr.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-hu.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-id.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-it.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-ja.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-ko.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-lt.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-lv.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-mk.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-mn.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-nl.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-no.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-pl.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-pt-br.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-pt.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-ro.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-ru.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-sk.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-sl.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-sq.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-sr-yu.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-sr.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-sv.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-ta-in.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-th.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-tr.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-uk.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-vi.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-zh-tw.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/lang/jstoolbar-zh.js
+%%WWWDIR%%/app/assets/javascripts/jstoolbar/textile.js
+%%WWWDIR%%/app/assets/javascripts/project_identifier.js
+%%WWWDIR%%/app/assets/javascripts/raphael.js
+%%WWWDIR%%/app/assets/javascripts/repository_navigation.js
+%%WWWDIR%%/app/assets/javascripts/responsive.js
+%%WWWDIR%%/app/assets/javascripts/revision_graph.js
+%%WWWDIR%%/app/assets/javascripts/tablesort-5.2.1.min.js
+%%WWWDIR%%/app/assets/javascripts/tablesort-5.2.1.number.min.js
+%%WWWDIR%%/app/assets/javascripts/tribute-5.1.3.min.js
+%%WWWDIR%%/app/assets/javascripts/tribute.min.js.map
+%%WWWDIR%%/app/assets/stylesheets/application.css
+%%WWWDIR%%/app/assets/stylesheets/context_menu.css
+%%WWWDIR%%/app/assets/stylesheets/context_menu_rtl.css
*** 1985 LINES SKIPPED ***


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69b793ed.3012d.442ce92f>