diff options
author | Aaron Andersen <aaron@fosslib.net> | 2024-04-01 18:17:17 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-01 18:17:17 +0000 |
commit | 98f2a766ef16f9159259ff024db2e03183ba9368 (patch) | |
tree | c8df0689746f3f79aa6588926996881440f41a0a /pkgs/by-name/re | |
parent | d41453cf4d753ff8807f1c5d7835b26f4ab5eb6b (diff) | |
parent | 187a5f88dc3f2cc04610a19a6780b33134197a90 (diff) |
Merge pull request #298740 from felixsinger/pkgs/redmine/rework
redmine: Rework module and update package
Diffstat (limited to 'pkgs/by-name/re')
-rw-r--r-- | pkgs/by-name/re/redmine/0001-python3.patch | 275 | ||||
-rw-r--r-- | pkgs/by-name/re/redmine/Gemfile | 101 | ||||
-rw-r--r-- | pkgs/by-name/re/redmine/Gemfile.lock | 323 | ||||
-rw-r--r-- | pkgs/by-name/re/redmine/gemset.nix | 1179 | ||||
-rw-r--r-- | pkgs/by-name/re/redmine/package.nix | 53 | ||||
-rwxr-xr-x | pkgs/by-name/re/redmine/update.sh | 19 |
6 files changed, 1950 insertions, 0 deletions
diff --git a/pkgs/by-name/re/redmine/0001-python3.patch b/pkgs/by-name/re/redmine/0001-python3.patch new file mode 100644 index 0000000000000..c88645b85a281 --- /dev/null +++ b/pkgs/by-name/re/redmine/0001-python3.patch @@ -0,0 +1,275 @@ +--- a/lib/redmine/scm/adapters/mercurial/redminehelper.py ++++ b/lib/redmine/scm/adapters/mercurial/redminehelper.py +@@ -45,17 +45,20 @@ Output example of rhmanifest:: + </repository> + </rhmanifest> + """ +-import re, time, cgi, urllib ++import re, time, html, urllib + from mercurial import cmdutil, commands, node, error, hg, registrar + + cmdtable = {} + command = registrar.command(cmdtable) if hasattr(registrar, 'command') else cmdutil.command(cmdtable) + +-_x = cgi.escape +-_u = lambda s: cgi.escape(urllib.quote(s)) ++_x = lambda s: html.escape(s.decode('utf-8')).encode('utf-8') ++_u = lambda s: html.escape(urllib.parse.quote(s)).encode('utf-8') ++ ++def unquoteplus(*args, **kwargs): ++ return urllib.parse.unquote_to_bytes(*args, **kwargs).replace(b'+', b' ') + + def _changectx(repo, rev): +- if isinstance(rev, str): ++ if isinstance(rev, bytes): + rev = repo.lookup(rev) + if hasattr(repo, 'changectx'): + return repo.changectx(rev) +@@ -70,10 +73,10 @@ def _tip(ui, repo): + except TypeError: # Mercurial < 1.1 + return repo.changelog.count() - 1 + tipctx = _changectx(repo, tiprev()) +- ui.write('<tip revision="%d" node="%s"/>\n' ++ ui.write(b'<tip revision="%d" node="%s"/>\n' + % (tipctx.rev(), _x(node.hex(tipctx.node())))) + +-_SPECIAL_TAGS = ('tip',) ++_SPECIAL_TAGS = (b'tip',) + + def _tags(ui, repo): + # see mercurial/commands.py:tags +@@ -84,7 +87,7 @@ def _tags(ui, repo): + r = repo.changelog.rev(n) + except error.LookupError: + continue +- ui.write('<tag revision="%d" node="%s" name="%s"/>\n' ++ ui.write(b'<tag revision="%d" node="%s" name="%s"/>\n' + % (r, _x(node.hex(n)), _u(t))) + + def _branches(ui, repo): +@@ -104,136 +107,148 @@ def _branches(ui, repo): + return repo.branchheads(branch) + def lookup(rev, n): + try: +- return repo.lookup(rev) ++ return repo.lookup(str(rev).encode('utf-8')) + except RuntimeError: + return n + for t, n, r in sorted(iterbranches(), key=lambda e: e[2], reverse=True): + if lookup(r, n) in branchheads(t): +- ui.write('<branch revision="%d" node="%s" name="%s"/>\n' ++ ui.write(b'<branch revision="%d" node="%s" name="%s"/>\n' + % (r, _x(node.hex(n)), _u(t))) + + def _manifest(ui, repo, path, rev): + ctx = _changectx(repo, rev) +- ui.write('<manifest revision="%d" path="%s">\n' ++ ui.write(b'<manifest revision="%d" path="%s">\n' + % (ctx.rev(), _u(path))) + + known = set() +- pathprefix = (path.rstrip('/') + '/').lstrip('/') ++ pathprefix = (path.decode('utf-8').rstrip('/') + '/').lstrip('/') + for f, n in sorted(ctx.manifest().iteritems(), key=lambda e: e[0]): +- if not f.startswith(pathprefix): ++ fstr = f.decode('utf-8') ++ if not fstr.startswith(pathprefix): + continue +- name = re.sub(r'/.*', '/', f[len(pathprefix):]) ++ name = re.sub(r'/.*', '/', fstr[len(pathprefix):]) + if name in known: + continue + known.add(name) + + if name.endswith('/'): +- ui.write('<dir name="%s"/>\n' ++ ui.write(b'<dir name="%s"/>\n' + % _x(urllib.quote(name[:-1]))) + else: + fctx = repo.filectx(f, fileid=n) + tm, tzoffset = fctx.date() +- ui.write('<file name="%s" revision="%d" node="%s" ' +- 'time="%d" size="%d"/>\n' ++ ui.write(b'<file name="%s" revision="%d" node="%s" ' ++ b'time="%d" size="%d"/>\n' + % (_u(name), fctx.rev(), _x(node.hex(fctx.node())), + tm, fctx.size(), )) + +- ui.write('</manifest>\n') ++ ui.write(b'</manifest>\n') + +-@command('rhannotate', +- [('r', 'rev', '', 'revision'), +- ('u', 'user', None, 'list the author (long with -v)'), +- ('n', 'number', None, 'list the revision number (default)'), +- ('c', 'changeset', None, 'list the changeset'), ++@command(b'rhannotate', ++ [(b'r', b'rev', b'', b'revision'), ++ (b'u', b'user', None, b'list the author (long with -v)'), ++ (b'n', b'number', None, b'list the revision number (default)'), ++ (b'c', b'changeset', None, b'list the changeset'), + ], +- 'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...') ++ b'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...') + def rhannotate(ui, repo, *pats, **opts): +- rev = urllib.unquote_plus(opts.pop('rev', None)) ++ rev = unquoteplus(opts.pop('rev', b'')) + opts['rev'] = rev +- return commands.annotate(ui, repo, *map(urllib.unquote_plus, pats), **opts) ++ return commands.annotate(ui, repo, *map(unquoteplus, pats), **opts) + +-@command('rhcat', +- [('r', 'rev', '', 'revision')], +- 'hg rhcat ([-r REV] ...) FILE...') ++@command(b'rhcat', ++ [(b'r', b'rev', b'', b'revision')], ++ b'hg rhcat ([-r REV] ...) FILE...') + def rhcat(ui, repo, file1, *pats, **opts): +- rev = urllib.unquote_plus(opts.pop('rev', None)) ++ rev = unquoteplus(opts.pop('rev', b'')) + opts['rev'] = rev +- return commands.cat(ui, repo, urllib.unquote_plus(file1), *map(urllib.unquote_plus, pats), **opts) ++ return commands.cat(ui, repo, unquoteplus(file1), *map(unquoteplus, pats), **opts) + +-@command('rhdiff', +- [('r', 'rev', [], 'revision'), +- ('c', 'change', '', 'change made by revision')], +- 'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...') ++@command(b'rhdiff', ++ [(b'r', b'rev', [], b'revision'), ++ (b'c', b'change', b'', b'change made by revision')], ++ b'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...') + def rhdiff(ui, repo, *pats, **opts): + """diff repository (or selected files)""" + change = opts.pop('change', None) + if change: # add -c option for Mercurial<1.1 + base = _changectx(repo, change).parents()[0].rev() +- opts['rev'] = [str(base), change] ++ opts['rev'] = [base, change] + opts['nodates'] = True +- return commands.diff(ui, repo, *map(urllib.unquote_plus, pats), **opts) +- +-@command('rhlog', +- [ +- ('r', 'rev', [], 'show the specified revision'), +- ('b', 'branch', [], +- 'show changesets within the given named branch'), +- ('l', 'limit', '', +- 'limit number of changes displayed'), +- ('d', 'date', '', +- 'show revisions matching date spec'), +- ('u', 'user', [], +- 'revisions committed by user'), +- ('', 'from', '', +- ''), +- ('', 'to', '', +- ''), +- ('', 'rhbranch', '', +- ''), +- ('', 'template', '', +- 'display with template')], +- 'hg rhlog [OPTION]... [FILE]') ++ return commands.diff(ui, repo, *map(unquoteplus, pats), **opts) ++ ++@command(b'rhlog', ++ [ ++ (b'r', b'rev', [], b'show the specified revision'), ++ (b'b', b'branch', [], ++ b'show changesets within the given named branch'), ++ (b'l', b'limit', b'', ++ b'limit number of changes displayed'), ++ (b'd', b'date', b'', ++ b'show revisions matching date spec'), ++ (b'u', b'user', [], ++ b'revisions committed by user'), ++ (b'', b'from', b'', ++ b''), ++ (b'', b'to', b'', ++ b''), ++ (b'', b'rhbranch', b'', ++ b''), ++ (b'', b'template', b'', ++ b'display with template')], ++ b'hg rhlog [OPTION]... [FILE]') ++ + def rhlog(ui, repo, *pats, **opts): + rev = opts.pop('rev') + bra0 = opts.pop('branch') +- from_rev = urllib.unquote_plus(opts.pop('from', None)) +- to_rev = urllib.unquote_plus(opts.pop('to' , None)) +- bra = urllib.unquote_plus(opts.pop('rhbranch', None)) +- from_rev = from_rev.replace('"', '\\"') +- to_rev = to_rev.replace('"', '\\"') +- if hg.util.version() >= '1.6': +- opts['rev'] = ['"%s":"%s"' % (from_rev, to_rev)] ++ from_rev = unquoteplus(opts.pop('from', b'')) ++ to_rev = unquoteplus(opts.pop('to' , b'')) ++ bra = unquoteplus(opts.pop('rhbranch', b'')) ++ from_rev = from_rev.replace(b'"', b'\\"') ++ to_rev = to_rev.replace(b'"', b'\\"') ++ if (from_rev != b'') or (to_rev != b''): ++ if from_rev != b'': ++ quotefrom = b'"%s"' % (from_rev) ++ else: ++ quotefrom = from_rev ++ if to_rev != b'': ++ quoteto = b'"%s"' % (to_rev) ++ else: ++ quoteto = to_rev ++ opts['rev'] = [b'%s:%s' % (quotefrom, quoteto)] + else: +- opts['rev'] = ['%s:%s' % (from_rev, to_rev)] +- opts['branch'] = [bra] +- return commands.log(ui, repo, *map(urllib.unquote_plus, pats), **opts) +- +-@command('rhmanifest', +- [('r', 'rev', '', 'show the specified revision')], +- 'hg rhmanifest [-r REV] [PATH]') +-def rhmanifest(ui, repo, path='', **opts): ++ opts['rev'] = rev ++ if (bra != b''): ++ opts['branch'] = [bra] ++ return commands.log(ui, repo, *map(unquoteplus, pats), **opts) ++ ++ ++@command(b'rhmanifest', ++ [(b'r', b'rev', b'', b'show the specified revision')], ++ b'hg rhmanifest -r REV [PATH]') ++def rhmanifest(ui, repo, path=b'', **opts): + """output the sub-manifest of the specified directory""" +- ui.write('<?xml version="1.0"?>\n') +- ui.write('<rhmanifest>\n') +- ui.write('<repository root="%s">\n' % _u(repo.root)) ++ ui.write(b'<?xml version="1.0"?>\n') ++ ui.write(b'<rhmanifest>\n') ++ ui.write(b'<repository root="%s">\n' % _u(repo.root)) + try: +- _manifest(ui, repo, urllib.unquote_plus(path), urllib.unquote_plus(opts.get('rev'))) ++ _manifest(ui, repo, unquoteplus(path), unquoteplus(opts.get('rev'))) + finally: +- ui.write('</repository>\n') +- ui.write('</rhmanifest>\n') ++ ui.write(b'</repository>\n') ++ ui.write(b'</rhmanifest>\n') + +-@command('rhsummary',[], 'hg rhsummary') ++@command(b'rhsummary',[], b'hg rhsummary') + def rhsummary(ui, repo, **opts): + """output the summary of the repository""" +- ui.write('<?xml version="1.0"?>\n') +- ui.write('<rhsummary>\n') +- ui.write('<repository root="%s">\n' % _u(repo.root)) ++ ui.write(b'<?xml version="1.0"?>\n') ++ ui.write(b'<rhsummary>\n') ++ ui.write(b'<repository root="%s">\n' % _u(repo.root)) + try: + _tip(ui, repo) + _tags(ui, repo) + _branches(ui, repo) + # TODO: bookmarks in core (Mercurial>=1.8) + finally: +- ui.write('</repository>\n') +- ui.write('</rhsummary>\n') ++ ui.write(b'</repository>\n') ++ ui.write(b'</rhsummary>\n') + diff --git a/pkgs/by-name/re/redmine/Gemfile b/pkgs/by-name/re/redmine/Gemfile new file mode 100644 index 0000000000000..e29e240c75b72 --- /dev/null +++ b/pkgs/by-name/re/redmine/Gemfile @@ -0,0 +1,101 @@ +source 'https://rubygems.org' + +ruby '>= 2.7.0', '< 3.3.0' + +gem 'rails', '6.1.7.7' +gem 'rouge', '~> 4.2.0' +gem 'request_store', '~> 1.5.0' +gem 'mini_mime', '~> 1.1.0' +gem "actionpack-xml_parser" +gem 'roadie-rails', '~> 3.1.0' +gem 'marcel' +gem 'mail', '~> 2.8.1' +gem 'nokogiri', '~> 1.15.2' +gem 'i18n', '~> 1.14.1' +gem 'rbpdf', '~> 1.21.3' +gem 'addressable' +gem 'rubyzip', '~> 2.3.0' + +# Ruby Standard Gems +gem 'csv', '~> 3.2.6' +gem 'net-imap', '~> 0.3.4' +gem 'net-pop', '~> 0.1.2' +gem 'net-smtp', '~> 0.3.3' +gem 'rexml', require: false if Gem.ruby_version >= Gem::Version.new('3.0') + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin] + +# TOTP-based 2-factor authentication +gem 'rotp', '>= 5.0.0' +gem 'rqrcode' + +# HTML pipeline and sanitization +gem "html-pipeline", "~> 2.13.2" +gem "sanitize", "~> 6.0" + +# Optional gem for LDAP authentication +group :ldap do + gem 'net-ldap', '~> 0.17.0' +end + +# Optional gem for exporting the gantt to a PNG file +group :minimagick do + gem 'mini_magick', '~> 4.12.0' +end + +# Optional Markdown support +group :markdown do + gem 'redcarpet', '~> 3.6.0' +end + +# Optional CommonMark support, not for JRuby +group :common_mark do + gem "commonmarker", '~> 0.23.8' + gem 'deckar01-task_list', '2.3.2' +end + +# Include database gems for the database adapters NixOS supports +require 'erb' +require 'yaml' +gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw] +gem "with_advisory_lock" +gem 'pg', '~> 1.5.3', :platforms => [:mri, :mingw, :x64_mingw] +gem 'sqlite3', '~> 1.6.0', :platforms => [:mri, :mingw, :x64_mingw] + +group :development do + gem 'listen', '~> 3.3' + gem "yard" +end + +group :test do + gem "rails-dom-testing" + gem 'mocha', '>= 2.0.1' + gem 'simplecov', '~> 0.22.0', :require => false + gem "ffi", platforms: [:mri, :mingw, :x64_mingw, :mswin] + # For running system tests + gem 'puma' + gem "capybara", ">= 3.39" + if Gem.ruby_version < Gem::Version.new('3.0') + gem "selenium-webdriver", "<= 4.9.0" + gem "webdrivers", require: false + else + gem "selenium-webdriver", ">= 4.11.0" + end + # RuboCop + gem 'rubocop', '~> 1.57.0', require: false + gem 'rubocop-performance', '~> 1.19.0', require: false + gem 'rubocop-rails', '~> 2.22.1', require: false +end + +gem "webrick" + +local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local") +if File.exist?(local_gemfile) + eval_gemfile local_gemfile +end + +# Load plugins' Gemfiles +Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file| + eval_gemfile file +end diff --git a/pkgs/by-name/re/redmine/Gemfile.lock b/pkgs/by-name/re/redmine/Gemfile.lock new file mode 100644 index 0000000000000..c1600850c9a73 --- /dev/null +++ b/pkgs/by-name/re/redmine/Gemfile.lock @@ -0,0 +1,323 @@ +GEM + remote: https://rubygems.org/ + specs: + actioncable (6.1.7.7) + actionpack (= 6.1.7.7) + activesupport (= 6.1.7.7) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (6.1.7.7) + actionpack (= 6.1.7.7) + activejob (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) + mail (>= 2.7.1) + actionmailer (6.1.7.7) + actionpack (= 6.1.7.7) + actionview (= 6.1.7.7) + activejob (= 6.1.7.7) + activesupport (= 6.1.7.7) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (6.1.7.7) + actionview (= 6.1.7.7) + activesupport (= 6.1.7.7) + rack (~> 2.0, >= 2.0.9) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actionpack-xml_parser (2.0.1) + actionpack (>= 5.0) + railties (>= 5.0) + actiontext (6.1.7.7) + actionpack (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) + nokogiri (>= 1.8.5) + actionview (6.1.7.7) + activesupport (= 6.1.7.7) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (6.1.7.7) + activesupport (= 6.1.7.7) + globalid (>= 0.3.6) + activemodel (6.1.7.7) + activesupport (= 6.1.7.7) + activerecord (6.1.7.7) + activemodel (= 6.1.7.7) + activesupport (= 6.1.7.7) + activestorage (6.1.7.7) + actionpack (= 6.1.7.7) + activejob (= 6.1.7.7) + activerecord (= 6.1.7.7) + activesupport (= 6.1.7.7) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (6.1.7.7) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) + ast (2.4.2) + base64 (0.2.0) + builder (3.2.4) + capybara (3.40.0) + addressable + matrix + mini_mime (>= 0.1.3) + nokogiri (~> 1.11) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + chunky_png (1.4.0) + commonmarker (0.23.10) + concurrent-ruby (1.2.3) + crass (1.0.6) + css_parser (1.16.0) + addressable + csv (3.2.9) + date (3.3.4) + deckar01-task_list (2.3.2) + html-pipeline + docile (1.4.0) + erubi (1.12.0) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + html-pipeline (2.13.2) + activesupport (>= 2) + nokogiri (>= 1.4) + htmlentities (4.3.4) + i18n (1.14.4) + concurrent-ruby (~> 1.0) + json (2.7.1) + language_server-protocol (3.17.0.3) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + matrix (0.4.2) + method_source (1.0.0) + mini_magick (4.12.0) + mini_mime (1.1.5) + mini_portile2 (2.8.5) + minitest (5.22.3) + mocha (2.1.0) + ruby2_keywords (>= 0.0.5) + mysql2 (0.5.6) + net-imap (0.3.7) + date + net-protocol + net-ldap (0.17.1) + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.3.4) + net-protocol + nio4r (2.7.1) + nokogiri (1.15.6) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + parallel (1.24.0) + parser (3.3.0.5) + ast (~> 2.4.1) + racc + pg (1.5.6) + public_suffix (5.0.4) + puma (6.4.2) + nio4r (~> 2.0) + racc (1.7.3) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (6.1.7.7) + actioncable (= 6.1.7.7) + actionmailbox (= 6.1.7.7) + actionmailer (= 6.1.7.7) + actionpack (= 6.1.7.7) + actiontext (= 6.1.7.7) + actionview (= 6.1.7.7) + activejob (= 6.1.7.7) + activemodel (= 6.1.7.7) + activerecord (= 6.1.7.7) + activestorage (= 6.1.7.7) + activesupport (= 6.1.7.7) + bundler (>= 1.15.0) + railties (= 6.1.7.7) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (6.1.7.7) + actionpack (= 6.1.7.7) + activesupport (= 6.1.7.7) + method_source + rake (>= 12.2) + thor (~> 1.0) + rainbow (3.1.1) + rake (13.1.0) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rbpdf (1.21.3) + htmlentities + rbpdf-font (~> 1.19.0) + rbpdf-font (1.19.1) + redcarpet (3.6.0) + regexp_parser (2.9.0) + request_store (1.5.1) + rack (>= 1.4) + rexml (3.2.6) + roadie (5.2.1) + css_parser (~> 1.4) + nokogiri (~> 1.15) + roadie-rails (3.1.0) + railties (>= 5.1, < 8.0) + roadie (~> 5.0) + rotp (6.3.0) + rouge (4.2.1) + rqrcode (2.2.0) + chunky_png (~> 1.0) + rqrcode_core (~> 1.0) + rqrcode_core (1.2.0) + rubocop (1.57.2) + json (~> 2.3) + language_server-protocol (>= 3.17.0) + parallel (~> 1.10) + parser (>= 3.2.2.4) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.1, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.31.2) + parser (>= 3.3.0.4) + rubocop-performance (1.19.1) + rubocop (>= 1.7.0, < 2.0) + rubocop-ast (>= 0.4.0) + rubocop-rails (2.22.2) + activesupport (>= 4.2.0) + rack (>= 1.1) + rubocop (>= 1.33.0, < 2.0) + rubocop-ast (>= 1.30.0, < 2.0) + ruby-progressbar (1.13.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + sanitize (6.1.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + selenium-webdriver (4.18.1) + base64 (~> 0.2) + rexml (~> 3.2, >= 3.2.5) + rubyzip (>= 1.2.2, < 3.0) + websocket (~> 1.0) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + sprockets (4.2.1) + concurrent-ruby (~> 1.0) + rack (>= 2.2.4, < 4) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + sqlite3 (1.6.9) + mini_portile2 (~> 2.8.0) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + webrick (1.8.1) + websocket (1.2.10) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + with_advisory_lock (5.1.0) + activerecord (>= 6.1) + zeitwerk (>= 2.6) + xpath (3.2.0) + nokogiri (~> 1.8) + yard (0.9.36) + zeitwerk (2.6.13) + +PLATFORMS + ruby + +DEPENDENCIES + actionpack-xml_parser + addressable + capybara (>= 3.39) + commonmarker (~> 0.23.8) + csv (~> 3.2.6) + deckar01-task_list (= 2.3.2) + ffi + html-pipeline (~> 2.13.2) + i18n (~> 1.14.1) + listen (~> 3.3) + mail (~> 2.8.1) + marcel + mini_magick (~> 4.12.0) + mini_mime (~> 1.1.0) + mocha (>= 2.0.1) + mysql2 (~> 0.5.0) + net-imap (~> 0.3.4) + net-ldap (~> 0.17.0) + net-pop (~> 0.1.2) + net-smtp (~> 0.3.3) + nokogiri (~> 1.15.2) + pg (~> 1.5.3) + puma + rails (= 6.1.7.7) + rails-dom-testing + rbpdf (~> 1.21.3) + redcarpet (~> 3.6.0) + request_store (~> 1.5.0) + rexml + roadie-rails (~> 3.1.0) + rotp (>= 5.0.0) + rouge (~> 4.2.0) + rqrcode + rubocop (~> 1.57.0) + rubocop-performance (~> 1.19.0) + rubocop-rails (~> 2.22.1) + rubyzip (~> 2.3.0) + sanitize (~> 6.0) + selenium-webdriver (>= 4.11.0) + simplecov (~> 0.22.0) + sqlite3 (~> 1.6.0) + tzinfo-data + webrick + with_advisory_lock + yard + +RUBY VERSION + ruby 3.1.4p223 + +BUNDLED WITH + 2.4.22 diff --git a/pkgs/by-name/re/redmine/gemset.nix b/pkgs/by-name/re/redmine/gemset.nix new file mode 100644 index 0000000000000..10c5de5ed7e2e --- /dev/null +++ b/pkgs/by-name/re/redmine/gemset.nix @@ -0,0 +1,1179 @@ +{ + actioncable = { + dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1br4vjv1si1gvhh8p96r95crljqwbx3nlzbkkdqg21xq8f9106kl"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + actionmailbox = { + dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i21621aiv233pa8fp1pvibwgbzzdddp0bx44qqn16yca6z35zrj"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + actionmailer = { + dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0irkj00z2mzsvbrpdl8sd08k04hz5lhvy8rfkzhx2sqq5x1n155a"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + actionpack = { + dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15jp9a1mgz8xjm618s8g69d70w19nn2svav4fhz3aarjwfbkvwj7"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + actionpack-xml_parser = { + dependencies = ["actionpack" "railties"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0"; + type = "gem"; + }; + version = "2.0.1"; + }; + actiontext = { + dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hjm6vapqq1f7addwl71qwzn72lnmq686ypnbyhd873hqlnzangf"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + actionview = { + dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hkdqf299dx8bgvgpgknf37kcbprqgq0iy8xdipww6pmbbc45bwk"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + activejob = { + dependencies = ["activesupport" "globalid"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06rp7kks22wrc55vric8yh0kg137jsiwd62jimdiqhh9bp48jbbm"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + activemodel = { + dependencies = ["activesupport"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zz32997k2fsyd0fzrh8f79yjr6hv3i4j9wykkxncl02j8dhrkay"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + activerecord = { + dependencies = ["activemodel" "activesupport"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qzymgyrvw2k32ldabp2jr0zgp6z9w8smyb946qgvs9zfs4n2qnn"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + activestorage = { + dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12i033l3m41vr3qs7msy4p88a6pglx9vnsh5nakp0b6abf6mv5mk"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"]; + groups = ["common_mark" "default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r2i9b0pm0b1dy8fc7kyls1g7f0bcnyq53v825rykibzdqfqdfgp"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + addressable = { + dependencies = ["public_suffix"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr"; + type = "gem"; + }; + version = "2.8.6"; + }; + ast = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y"; + type = "gem"; + }; + version = "2.4.2"; + }; + base64 = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g"; + type = "gem"; + }; + version = "0.2.0"; + }; + builder = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"; + type = "gem"; + }; + version = "3.2.4"; + }; + capybara = { + dependencies = ["addressable" "matrix" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vxfah83j6zpw3v5hic0j70h519nvmix2hbszmjwm8cfawhagns2"; + type = "gem"; + }; + version = "3.40.0"; + }; + chunky_png = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9"; + type = "gem"; + }; + version = "1.4.0"; + }; + commonmarker = { + groups = ["common_mark"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lb5slzbqrca49h0gaifg82xky5r7i9xgm4560pin1xl5fp15lzx"; + type = "gem"; + }; + version = "0.23.10"; + }; + concurrent-ruby = { + groups = ["common_mark" "default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2"; + type = "gem"; + }; + version = "1.2.3"; + }; + crass = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw"; + type = "gem"; + }; + version = "1.0.6"; + }; + css_parser = { + dependencies = ["addressable"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18mii41bbl106rn940ah8v3xclj4yrxxa0bwlwp546244n9b83zp"; + type = "gem"; + }; + version = "1.16.0"; + }; + csv = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fp986v5xfpzcj9v3dyvdd26fcnmbbzjwcp66pz34hv6g86z66a9"; + type = "gem"; + }; + version = "3.2.9"; + }; + date = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp"; + type = "gem"; + }; + version = "3.3.4"; + }; + deckar01-task_list = { + dependencies = ["html-pipeline"]; + groups = ["common_mark"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01c8vv0xwbhlyhiagj93b1hlm2n0rmj4sw62nbc0jhyj90jhj6as"; + type = "gem"; + }; + version = "2.3.2"; + }; + docile = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lxqxgq71rqwj1lpl9q1mbhhhhhhdkkj7my341f2889pwayk85sz"; + type = "gem"; + }; + version = "1.4.0"; + }; + erubi = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7"; + type = "gem"; + }; + version = "1.12.0"; + }; + ffi = { + groups = ["default" "development" "test"]; + platforms = [{ + engine = "maglev"; + } { + engine = "mingw"; + } { + engine = "mingw"; + } { + engine = "mswin"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd"; + type = "gem"; + }; + version = "1.16.3"; + }; + globalid = { + dependencies = ["activesupport"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sbw6b66r7cwdx3jhs46s4lr991969hvigkjpbdl7y3i31qpdgvh"; + type = "gem"; + }; + version = "1.2.1"; + }; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; + groups = ["common_mark" "default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00xqmlny1b4ixff8sk0rkl4wcgwqc6v93qv8l3rn8d1dppvq7pm1"; + type = "gem"; + }; + version = "2.13.2"; + }; + htmlentities = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; + type = "gem"; + }; + version = "4.3.4"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + groups = ["common_mark" "default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7"; + type = "gem"; + }; + version = "1.14.4"; + }; + json = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq"; + type = "gem"; + }; + version = "2.7.1"; + }; + language_server-protocol = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x"; + type = "gem"; + }; + version = "3.17.0.3"; + }; + listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rwwsmvq79qwzl6324yc53py02kbrcww35si720490z5w0j497nv"; + type = "gem"; + }; + version = "3.9.0"; + }; + loofah = { + dependencies = ["crass" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh"; + type = "gem"; + }; + version = "2.22.0"; + }; + mail = { + dependencies = ["mini_mime" "net-imap" "net-pop" "net-smtp"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bf9pysw1jfgynv692hhaycfxa8ckay1gjw5hz3madrbrynryfzc"; + type = "gem"; + }; + version = "2.8.1"; + }; + marcel = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "190n2mk8m1l708kr88fh6mip9sdsh339d2s6sgrik3sbnvz4jmhd"; + type = "gem"; + }; + version = "1.0.4"; + }; + matrix = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h2cgkpzkh3dd0flnnwfq6f3nl2b1zff9lvqz8xs853ssv5kq23i"; + type = "gem"; + }; + version = "0.4.2"; + }; + method_source = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp"; + type = "gem"; + }; + version = "1.0.0"; + }; + mini_magick = { + groups = ["minimagick"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0slh78f9z6n0l1i2km7m48yz7l4fjrk88sj1f4mh1wb39sl2yc37"; + type = "gem"; + }; + version = "4.12.0"; + }; + mini_mime = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6"; + type = "gem"; + }; + version = "1.1.5"; + }; + mini_portile2 = { + groups = ["common_mark" "default" "test"]; + platforms = [{ + engine = "maglev"; + } { + engine = "mingw"; + } { + engine = "mingw"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs"; + type = "gem"; + }; + version = "2.8.5"; + }; + minitest = { + groups = ["common_mark" "default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a"; + type = "gem"; + }; + version = "5.22.3"; + }; + mocha = { + dependencies = ["ruby2_keywords"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lsll8iba8612dypk718l9kx73m9syiscb2rhciljys1krc5g1zr"; + type = "gem"; + }; + version = "2.1.0"; + }; + mysql2 = { + groups = ["default"]; + platforms = [{ + engine = "maglev"; + } { + engine = "mingw"; + } { + engine = "mingw"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cysv1wdfdbizwkd0d9s16s832khdwv31pgp01mw2g3bbpa4gx3h"; + type = "gem"; + }; + version = "0.5.6"; + }; + net-imap = { + dependencies = ["date" "net-protocol"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lf7wqg7czhaj51qsnmn28j7jmcxhkh3m28rl1cjrqsgjxhwj7r3"; + type = "gem"; + }; + version = "0.3.7"; + }; + net-ldap = { + groups = ["ldap"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ycw0qsw3hap8svakl0i30jkj0ffd4lpyrn17a1j0w8mz5ainmsj"; + type = "gem"; + }; + version = "0.17.1"; + }; + net-pop = { + dependencies = ["net-protocol"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wyz41jd4zpjn0v1xsf9j778qx1vfrl24yc20cpmph8k42c4x2w4"; + type = "gem"; + }; + version = "0.1.2"; + }; + net-protocol = { + dependencies = ["timeout"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa"; + type = "gem"; + }; + version = "0.2.2"; + }; + net-smtp = { + dependencies = ["net-protocol"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hwiqplhi29kfjl8jm0rhl51qv6wmxfynl4qap1dhv9xdwc4bm1x"; + type = "gem"; + }; + version = "0.3.4"; + }; + nio4r = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15iwbiij52x6jhdbl0rkcldnhfndmsy0sbnsygkr9vhskfqrp72m"; + type = "gem"; + }; + version = "2.7.1"; + }; + nokogiri = { + dependencies = ["mini_portile2" "racc"]; + groups = ["common_mark" "default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "023f2j0q8makgmmfj4pv2fhwgcbh9y8s678za1cb68ry9fdpkkkh"; + type = "gem"; + }; + version = "1.15.6"; + }; + parallel = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15wkxrg1sj3n1h2g8jcrn7gcapwcgxr659ypjf75z1ipkgxqxwsv"; + type = "gem"; + }; + version = "1.24.0"; + }; + parser = { + dependencies = ["ast" "racc"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11r6kp8wam0nkfvnwyc1fmvky102r1vcfr84vi2p1a2wa0z32j3p"; + type = "gem"; + }; + version = "3.3.0.5"; + }; + pg = { + groups = ["default"]; + platforms = [{ + engine = "maglev"; + } { + engine = "mingw"; + } { + engine = "mingw"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "071b55bhsz7mivlnp2kv0a11msnl7xg5awvk8mlflpl270javhsb"; + type = "gem"; + }; + version = "1.5.6"; + }; + public_suffix = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m"; + type = "gem"; + }; + version = "5.0.4"; + }; + puma = { + dependencies = ["nio4r"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i2vaww6qcazj0ywva1plmjnj6rk23b01szswc5jhcq7s2cikd1y"; + type = "gem"; + }; + version = "6.4.2"; + }; + racc = { + groups = ["common_mark" "default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp"; + type = "gem"; + }; + version = "1.7.3"; + }; + rack = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hj0rkw2z9r1lcg2wlrcld2n3phwrcgqcp7qd1g9a7hwgalh2qzx"; + type = "gem"; + }; + version = "2.2.9"; + }; + rack-test = { + dependencies = ["rack"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c"; + type = "gem"; + }; + version = "2.1.0"; + }; + rails = { + dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jqp5fggkxbjm4rhsywa7j5rvwkzp6gbaa1mg4k8zxrbfczhxwwl"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + rails-dom-testing = { + dependencies = ["activesupport" "minitest" "nokogiri"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5"; + type = "gem"; + }; + version = "2.2.0"; + }; + rails-html-sanitizer = { + dependencies = ["loofah" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pm4z853nyz1bhhqr7fzl44alnx4bjachcr6rh6qjj375sfz3sc6"; + type = "gem"; + }; + version = "1.6.0"; + }; + railties = { + dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07qxgrd92yq0cckrmzx54glvjdd1xx87xysgvaqd75hn50klp8ip"; + type = "gem"; + }; + version = "6.1.7.7"; + }; + rainbow = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503"; + type = "gem"; + }; + version = "3.1.1"; + }; + rake = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy"; + type = "gem"; + }; + version = "13.1.0"; + }; + rb-fsevent = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zmf31rnpm8553lqwibvv3kkx0v7majm1f341xbxc0bk5sbhp423"; + type = "gem"; + }; + version = "0.11.2"; + }; + rb-inotify = { + dependencies = ["ffi"]; + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"; + type = "gem"; + }; + version = "0.10.1"; + }; + rbpdf = { + dependencies = ["htmlentities" "rbpdf-font"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rb6zqx79fzi0gqdq8xbhp87yp1ldfmzh0kng6fph84qhmzs990n"; + type = "gem"; + }; + version = "1.21.3"; + }; + rbpdf-font = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v"; + type = "gem"; + }; + version = "1.19.1"; + }; + redcarpet = { + groups = ["markdown"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sg9sbf9pm91l7lac7fs4silabyn0vflxwaa2x3lrzsm0ff8ilca"; + type = "gem"; + }; + version = "3.6.0"; + }; + regexp_parser = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ndxm0xnv27p4gv6xynk6q41irckj76q1jsqpysd9h6f86hhp841"; + type = "gem"; + }; + version = "2.9.0"; + }; + request_store = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13ppgmsbrqah08j06bybd3cddv6dml79yzyjn7r8j1src78h98h7"; + type = "gem"; + }; + version = "1.5.1"; + }; + rexml = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0"; + type = "gem"; + }; + version = "3.2.6"; + }; + roadie = { + dependencies = ["css_parser" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mh1a0m0i0xrm20nry4d3gf0q5kbmm5lp15n52r93gcjwwfgd974"; + type = "gem"; + }; + version = "5.2.1"; + }; + roadie-rails = { + dependencies = ["railties" "roadie"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08fycjfbg9rqksk3bch8qv76g7acd1jbxy2y68lsqz1gxfky2ias"; + type = "gem"; + }; + version = "3.1.0"; + }; + rotp = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m48hv6wpmmm6cjr6q92q78h1i610riml19k5h1dil2yws3h1m3m"; + type = "gem"; + }; + version = "6.3.0"; + }; + rouge = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zd1pdldi6h8x27dqim7cy8m69xr01aw5c8k1zhkz497n4np6wgk"; + type = "gem"; + }; + version = "4.2.1"; + }; + rqrcode = { + dependencies = ["chunky_png" "rqrcode_core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hggzz8i1l62pkkiybhiqv6ypxw7q844sddrrbbfczjcnj5sivi3"; + type = "gem"; + }; + version = "2.2.0"; + }; + rqrcode_core = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06ld6386hbdhy5h0k09axmgn424kavpc8f27k1vjhknjhbf8jjfg"; + type = "gem"; + }; + version = "1.2.0"; + }; + rubocop = { + dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06qnp5zs233j4f59yyqrg8al6hr9n4a7vcdg3p31v0np8bz9srwg"; + type = "gem"; + }; + version = "1.57.2"; + }; + rubocop-ast = { + dependencies = ["parser"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v3q8n48w8h809rqbgzihkikr4g3xk72m1na7s97jdsmjjq6y83w"; + type = "gem"; + }; + version = "1.31.2"; + }; + rubocop-performance = { + dependencies = ["rubocop" "rubocop-ast"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pzsrnjmrachdjxzl9jpw47cydicn3408vgdg3a4bss4v5r42rjj"; + type = "gem"; + }; + version = "1.19.1"; + }; + rubocop-rails = { + dependencies = ["activesupport" "rack" "rubocop" "rubocop-ast"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ym0h2w97b8c2h6zl44m22lzg253qkmim0ali32aiy58ddvbj0mm"; + type = "gem"; + }; + version = "2.22.2"; + }; + ruby-progressbar = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40"; + type = "gem"; + }; + version = "1.13.0"; + }; + ruby2_keywords = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz"; + type = "gem"; + }; + version = "0.0.5"; + }; + rubyzip = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz"; + type = "gem"; + }; + version = "2.3.2"; + }; + sanitize = { + dependencies = ["crass" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wsw05y0h1ln3x2kvcw26fs9ivryb4xbjrb4hsk2pishkhydkz4j"; + type = "gem"; + }; + version = "6.1.0"; + }; + selenium-webdriver = { + dependencies = ["base64" "rexml" "rubyzip" "websocket"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1asysih4l1mv24wqxrbnz0c0454kw3dhqaj6nsa8pyn9fjjdms5b"; + type = "gem"; + }; + version = "4.18.1"; + }; + simplecov = { + dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py"; + type = "gem"; + }; + version = "0.22.0"; + }; + simplecov-html = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb"; + type = "gem"; + }; + version = "0.12.3"; + }; + simplecov_json_formatter = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j"; + type = "gem"; + }; + version = "0.1.4"; + }; + sprockets = { + dependencies = ["concurrent-ruby" "rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15rzfzd9dca4v0mr0bbhsbwhygl0k9l24iqqlx0fijig5zfi66wm"; + type = "gem"; + }; + version = "4.2.1"; + }; + sprockets-rails = { + dependencies = ["actionpack" "activesupport" "sprockets"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b9i14qb27zs56hlcc2hf139l0ghbqnjpmfi0054dxycaxvk5min"; + type = "gem"; + }; + version = "3.4.2"; + }; + sqlite3 = { + dependencies = ["mini_portile2"]; + groups = ["default"]; + platforms = [{ + engine = "maglev"; + } { + engine = "mingw"; + } { + engine = "mingw"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08irz5llz31im8pmkk5k0kw433jyyji1qa98xkdmpphncdjr38am"; + type = "gem"; + }; + version = "1.6.9"; + }; + thor = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps"; + type = "gem"; + }; + version = "1.3.1"; + }; + timeout = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg"; + type = "gem"; + }; + version = "0.4.1"; + }; + tzinfo = { + dependencies = ["concurrent-ruby"]; + groups = ["common_mark" "default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd"; + type = "gem"; + }; + version = "2.0.6"; + }; + unicode-display_width = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky"; + type = "gem"; + }; + version = "2.5.0"; + }; + webrick = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r"; + type = "gem"; + }; + version = "1.8.1"; + }; + websocket = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a4zc8d0d91c3xqwapda3j3zgpfwdbj76hkb69xn6qvfkfks9h9c"; + type = "gem"; + }; + version = "1.2.10"; + }; + websocket-driver = { + dependencies = ["websocket-extensions"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nyh873w4lvahcl8kzbjfca26656d5c6z3md4sbqg5y1gfz0157n"; + type = "gem"; + }; + version = "0.7.6"; + }; + websocket-extensions = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw"; + type = "gem"; + }; + version = "0.1.5"; + }; + with_advisory_lock = { + dependencies = ["activerecord" "zeitwerk"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mzy29advrdczf88j2ffvck4kf8sfhxn07sym9ciq9rv061cv4h6"; + type = "gem"; + }; + version = "5.1.0"; + }; + xpath = { + dependencies = ["nokogiri"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; + type = "gem"; + }; + version = "3.2.0"; + }; + yard = { + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r0b8w58p7gy06wph1qdjv2p087hfnmhd9jk23vjdj803dn761am"; + type = "gem"; + }; + version = "0.9.36"; + }; + zeitwerk = { + groups = ["common_mark" "default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m67qmsak3x8ixs8rb971azl3l7wapri65pmbf5z886h46q63f1d"; + type = "gem"; + }; + version = "2.6.13"; + }; +} diff --git a/pkgs/by-name/re/redmine/package.nix b/pkgs/by-name/re/redmine/package.nix new file mode 100644 index 0000000000000..9329c0a111e68 --- /dev/null +++ b/pkgs/by-name/re/redmine/package.nix @@ -0,0 +1,53 @@ +{ lib, stdenv, fetchurl, bundlerEnv, ruby, makeWrapper, nixosTests }: + +let + version = "5.1.2"; + rubyEnv = bundlerEnv { + name = "redmine-env-${version}"; + + inherit ruby; + gemdir = ./.; + groups = [ "development" "ldap" "markdown" "common_mark" "minimagick" "test" ]; + }; +in + stdenv.mkDerivation rec { + pname = "redmine"; + inherit version; + + src = fetchurl { + url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz"; + hash = "sha256-JsDKCpqu4c65g4Jb8SZsmbCFC/ATwXhxP1o7AIABISM="; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ]; + + # taken from https://www.redmine.org/issues/33784 + # can be dropped when the upstream bug is closed and the fix is present in the upstream release + patches = [ ./0001-python3.patch ]; + + buildPhase = '' + mv config config.dist + mv public/themes public/themes.dist + ''; + + installPhase = '' + mkdir -p $out/bin $out/share + cp -r . $out/share/redmine + for i in config files log plugins public/plugin_assets public/themes tmp; do + rm -rf $out/share/redmine/$i + ln -fs /run/redmine/$i $out/share/redmine/$i + done + + makeWrapper ${rubyEnv.wrappedRuby}/bin/ruby $out/bin/rdm-mailhandler.rb --add-flags $out/share/redmine/extra/mail_handler/rdm-mailhandler.rb + ''; + + passthru.tests.redmine = nixosTests.redmine; + + meta = with lib; { + homepage = "https://www.redmine.org/"; + platforms = platforms.linux; + maintainers = with maintainers; [ aanderse felixsinger megheaiulian ]; + license = licenses.gpl2; + }; + } diff --git a/pkgs/by-name/re/redmine/update.sh b/pkgs/by-name/re/redmine/update.sh new file mode 100755 index 0000000000000..3c4d842735cfd --- /dev/null +++ b/pkgs/by-name/re/redmine/update.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env nix-shell +#!nix-shell --pure -i bash -p cacert bundix bundler + +# Do these steps before running this script: +# 1. Copy Gemfile from new Redmine version to this folder +# 2. Manually modify the database lines in Gemfile (diff the two files, it's obvious) + +pkg_dir="$(dirname "$0")" +cd ${pkg_dir} + +for file in "gemset.nix" "Gemfile.lock"; do + if [ -f ${file} ]; then + rm ${file} + fi +done + +bundle lock --add-platform ruby +bundle lock --remove-platform x86_64-linux +bundix -l |