git: 918e8508b436 - main - www/redmine61: Add new port.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 16 Mar 2026 05:23:57 UTC
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 ***