aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch275
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock231
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix878
5 files changed, 1507 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
new file mode 100644
index 000000000000..98213c781a1b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/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)), _x(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)), _x(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/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
new file mode 100644
index 000000000000..beff147c374a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
@@ -0,0 +1,75 @@
+source 'https://rubygems.org'
+
+ruby '>= 2.3.0', '< 2.7.0' if Bundler::VERSION >= '1.12.0'
+gem "bundler", ">= 1.5.0"
+
+gem 'rails', '5.2.4.2'
+gem 'sprockets', '~> 3.7.2' if RUBY_VERSION < '2.5'
+gem "rouge", "~> 3.12.0"
+gem "request_store", "~> 1.4.1"
+gem "mini_mime", "~> 1.0.1"
+gem "actionpack-xml_parser"
+gem "roadie-rails", (RUBY_VERSION < "2.5" ? "~> 1.3.0" : "~> 2.1.0")
+gem "mimemagic"
+gem "mail", "~> 2.7.1"
+gem "csv", "~> 3.1.1"
+gem "nokogiri", "~> 1.10.0"
+gem "i18n", "~> 1.6.0"
+gem "rbpdf", "~> 1.20.0"
+
+# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
+gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
+
+# Optional gem for LDAP authentication
+group :ldap do
+ gem "net-ldap", "~> 0.16.0"
+end
+
+# Optional gem for OpenID authentication
+group :openid do
+ gem "ruby-openid", "~> 2.9.2", :require => "openid"
+ gem "rack-openid"
+end
+
+# Optional gem for exporting the gantt to a PNG file
+group :minimagick do
+ gem "mini_magick", "~> 4.9.5"
+end
+
+# Optional Markdown support, not for JRuby
+group :markdown do
+ gem "redcarpet", "~> 3.5.0"
+end
+
+# Include database gems for the database adapters NixOS supports
+gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw]
+gem "pg", "~> 1.1.4", :platforms => [:mri, :mingw, :x64_mingw]
+
+group :development do
+ gem "yard"
+end
+
+group :test do
+ gem "rails-dom-testing"
+ gem 'mocha', '>= 1.4.0'
+ gem "simplecov", "~> 0.17.0", :require => false
+ gem "ffi", platforms: [:mingw, :x64_mingw, :mswin]
+ # For running system tests
+ gem 'puma', '~> 3.7'
+ gem "capybara", (RUBY_VERSION < "2.4" ? "~> 3.15.1" : "~> 3.25.0")
+ gem "selenium-webdriver"
+ # RuboCop
+ gem 'rubocop', '~> 0.76.0'
+ gem 'rubocop-performance', '~> 1.5.0'
+ gem 'rubocop-rails', '~> 2.3.0'
+end
+
+local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
+if File.exists?(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/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
new file mode 100644
index 000000000000..60aed5e17922
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
@@ -0,0 +1,231 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ actioncable (5.2.4.2)
+ actionpack (= 5.2.4.2)
+ nio4r (~> 2.0)
+ websocket-driver (>= 0.6.1)
+ actionmailer (5.2.4.2)
+ actionpack (= 5.2.4.2)
+ actionview (= 5.2.4.2)
+ activejob (= 5.2.4.2)
+ mail (~> 2.5, >= 2.5.4)
+ rails-dom-testing (~> 2.0)
+ actionpack (5.2.4.2)
+ actionview (= 5.2.4.2)
+ activesupport (= 5.2.4.2)
+ rack (~> 2.0, >= 2.0.8)
+ rack-test (>= 0.6.3)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
+ actionpack-xml_parser (2.0.1)
+ actionpack (>= 5.0)
+ railties (>= 5.0)
+ actionview (5.2.4.2)
+ activesupport (= 5.2.4.2)
+ builder (~> 3.1)
+ erubi (~> 1.4)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
+ activejob (5.2.4.2)
+ activesupport (= 5.2.4.2)
+ globalid (>= 0.3.6)
+ activemodel (5.2.4.2)
+ activesupport (= 5.2.4.2)
+ activerecord (5.2.4.2)
+ activemodel (= 5.2.4.2)
+ activesupport (= 5.2.4.2)
+ arel (>= 9.0)
+ activestorage (5.2.4.2)
+ actionpack (= 5.2.4.2)
+ activerecord (= 5.2.4.2)
+ marcel (~> 0.3.1)
+ activesupport (5.2.4.2)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ arel (9.0.0)
+ ast (2.4.0)
+ builder (3.2.4)
+ capybara (3.25.0)
+ addressable
+ mini_mime (>= 0.1.3)
+ nokogiri (~> 1.8)
+ rack (>= 1.6.0)
+ rack-test (>= 0.6.3)
+ regexp_parser (~> 1.5)
+ xpath (~> 3.2)
+ childprocess (3.0.0)
+ concurrent-ruby (1.1.6)
+ crass (1.0.6)
+ css_parser (1.7.1)
+ addressable
+ csv (3.1.2)
+ docile (1.3.2)
+ erubi (1.9.0)
+ globalid (0.4.2)
+ activesupport (>= 4.2.0)
+ htmlentities (4.3.4)
+ i18n (1.6.0)
+ concurrent-ruby (~> 1.0)
+ jaro_winkler (1.5.4)
+ json (2.3.0)
+ loofah (2.5.0)
+ crass (~> 1.0.2)
+ nokogiri (>= 1.5.9)
+ mail (2.7.1)
+ mini_mime (>= 0.1.1)
+ marcel (0.3.3)
+ mimemagic (~> 0.3.2)
+ method_source (1.0.0)
+ mimemagic (0.3.4)
+ mini_magick (4.9.5)
+ mini_mime (1.0.2)
+ mini_portile2 (2.4.0)
+ minitest (5.14.0)
+ mocha (1.11.2)
+ mysql2 (0.5.3)
+ net-ldap (0.16.2)
+ nio4r (2.5.2)
+ nokogiri (1.10.9)
+ mini_portile2 (~> 2.4.0)
+ parallel (1.19.1)
+ parser (2.7.1.0)
+ ast (~> 2.4.0)
+ pg (1.1.4)
+ public_suffix (4.0.4)
+ puma (3.12.4)
+ rack (2.2.2)
+ rack-openid (1.4.2)
+ rack (>= 1.1.0)
+ ruby-openid (>= 2.1.8)
+ rack-test (1.1.0)
+ rack (>= 1.0, < 3)
+ rails (5.2.4.2)
+ actioncable (= 5.2.4.2)
+ actionmailer (= 5.2.4.2)
+ actionpack (= 5.2.4.2)
+ actionview (= 5.2.4.2)
+ activejob (= 5.2.4.2)
+ activemodel (= 5.2.4.2)
+ activerecord (= 5.2.4.2)
+ activestorage (= 5.2.4.2)
+ activesupport (= 5.2.4.2)
+ bundler (>= 1.3.0)
+ railties (= 5.2.4.2)
+ sprockets-rails (>= 2.0.0)
+ rails-dom-testing (2.0.3)
+ activesupport (>= 4.2.0)
+ nokogiri (>= 1.6)
+ rails-html-sanitizer (1.3.0)
+ loofah (~> 2.3)
+ railties (5.2.4.2)
+ actionpack (= 5.2.4.2)
+ activesupport (= 5.2.4.2)
+ method_source
+ rake (>= 0.8.7)
+ thor (>= 0.19.0, < 2.0)
+ rainbow (3.0.0)
+ rake (13.0.1)
+ rbpdf (1.20.1)
+ htmlentities
+ rbpdf-font (~> 1.19.0)
+ rbpdf-font (1.19.1)
+ redcarpet (3.5.0)
+ regexp_parser (1.7.0)
+ request_store (1.4.1)
+ rack (>= 1.4)
+ roadie (4.0.0)
+ css_parser (~> 1.4)
+ nokogiri (~> 1.8)
+ roadie-rails (2.1.1)
+ railties (>= 5.1, < 6.1)
+ roadie (>= 3.1, < 5.0)
+ rouge (3.12.0)
+ rubocop (0.76.0)
+ jaro_winkler (~> 1.5.1)
+ parallel (~> 1.10)
+ parser (>= 2.6)
+ rainbow (>= 2.2.2, < 4.0)
+ ruby-progressbar (~> 1.7)
+ unicode-display_width (>= 1.4.0, < 1.7)
+ rubocop-performance (1.5.2)
+ rubocop (>= 0.71.0)
+ rubocop-rails (2.3.2)
+ rack (>= 1.1)
+ rubocop (>= 0.72.0)
+ ruby-openid (2.9.2)
+ ruby-progressbar (1.10.1)
+ rubyzip (2.3.0)
+ selenium-webdriver (3.142.7)
+ childprocess (>= 0.5, < 4.0)
+ rubyzip (>= 1.2.2)
+ simplecov (0.17.1)
+ docile (~> 1.1)
+ json (>= 1.8, < 3)
+ simplecov-html (~> 0.10.0)
+ simplecov-html (0.10.2)
+ sprockets (4.0.0)
+ concurrent-ruby (~> 1.0)
+ rack (> 1, < 3)
+ sprockets-rails (3.2.1)
+ actionpack (>= 4.0)
+ activesupport (>= 4.0)
+ sprockets (>= 3.0.0)
+ thor (1.0.1)
+ thread_safe (0.3.6)
+ tzinfo (1.2.7)
+ thread_safe (~> 0.1)
+ unicode-display_width (1.6.1)
+ websocket-driver (0.7.1)
+ websocket-extensions (>= 0.1.0)
+ websocket-extensions (0.1.4)
+ xpath (3.2.0)
+ nokogiri (~> 1.8)
+ yard (0.9.24)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ actionpack-xml_parser
+ bundler (>= 1.5.0)
+ capybara (~> 3.25.0)
+ csv (~> 3.1.1)
+ ffi
+ i18n (~> 1.6.0)
+ mail (~> 2.7.1)
+ mimemagic
+ mini_magick (~> 4.9.5)
+ mini_mime (~> 1.0.1)
+ mocha (>= 1.4.0)
+ mysql2 (~> 0.5.0)
+ net-ldap (~> 0.16.0)
+ nokogiri (~> 1.10.0)
+ pg (~> 1.1.4)
+ puma (~> 3.7)
+ rack-openid
+ rails (= 5.2.4.2)
+ rails-dom-testing
+ rbpdf (~> 1.20.0)
+ redcarpet (~> 3.5.0)
+ request_store (~> 1.4.1)
+ roadie-rails (~> 2.1.0)
+ rouge (~> 3.12.0)
+ rubocop (~> 0.76.0)
+ rubocop-performance (~> 1.5.0)
+ rubocop-rails (~> 2.3.0)
+ ruby-openid (~> 2.9.2)
+ selenium-webdriver
+ simplecov (~> 0.17.0)
+ tzinfo-data
+ yard
+
+RUBY VERSION
+ ruby 2.6.6p146
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/default.nix
new file mode 100644
index 000000000000..defbf9c2aec4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, bundlerEnv, ruby }:
+
+let
+ version = "4.1.1";
+ rubyEnv = bundlerEnv {
+ name = "redmine-env-${version}";
+
+ inherit ruby;
+ gemdir = ./.;
+ groups = [ "development" "ldap" "markdown" "minimagick" "openid" "test" ];
+ };
+in
+ stdenv.mkDerivation rec {
+ pname = "redmine";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
+ sha256 = "1nndy5hz8zvfglxf1f3bsb1pkrfwinfxzkdan1vjs3rkckkszyh5";
+ };
+
+ 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/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
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.redmine.org/";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.aanderse ];
+ license = licenses.gpl2;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
new file mode 100644
index 000000000000..9a4deb7e155a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
@@ -0,0 +1,878 @@
+{
+ actioncable = {
+ dependencies = ["actionpack" "nio4r" "websocket-driver"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q4by8d41n972j8cdcddrwsh7qphcki50xvgm1syrawyck6w1f5v";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ actionmailer = {
+ dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kg2nayy8wmxhfp52217h80yqr0mcg793xw3cjlfg9lkvdh0nb5z";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ actionpack = {
+ dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w1l9i6q9xns4yl41l582pyc5i1xi40yyyq802drm58gwylv3wax";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ actionpack-xml_parser = {
+ dependencies = ["actionpack" "railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ actionview = {
+ dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fp3my6216lb9gp800s46y0404jwfl6xb3j9rvx4zf087497q8lp";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ activejob = {
+ dependencies = ["activesupport" "globalid"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qsvb89rwqrp779mvpn67qbzidg2q6d1fa8kwybvpc93nzb9zpvi";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ activemodel = {
+ dependencies = ["activesupport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jcfdv00kmifj86d0z347nw55q1f8vwzr1aa9jrfnwz47ndi22di";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ activerecord = {
+ dependencies = ["activemodel" "activesupport" "arel"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yaqrh23c8krrjw6rvxv7pvnkpp46nk5aq9z2daby640si4xpmp5";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ activestorage = {
+ dependencies = ["actionpack" "activerecord" "marcel"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d51zp17c9k4brivm8y46rszcz07s5rb75gmkm0dpzg3rz3v38s9";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y1397g5xxinjyxjsdmp8c92yn0y3bd2hl4wbmmrpd08bggy6flc";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ arel = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0";
+ type = "gem";
+ };
+ version = "9.0.0";
+ };
+ ast = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ builder = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ capybara = {
+ dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bq1y3gy98rqgw8z69b42isc2klb75fvlwvpi36vycf1yk0sfmmx";
+ type = "gem";
+ };
+ version = "3.25.0";
+ };
+ childprocess = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ concurrent-ruby = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ 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 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ csv = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00szzw96bqz59r0kaab4p75qb0wq54iahmq37wpdg96bxc8y80f5";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ docile = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+ type = "gem";
+ };
+ version = "1.3.2";
+ };
+ erubi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ globalid = {
+ dependencies = ["activesupport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ htmlentities = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+ type = "gem";
+ };
+ version = "4.3.4";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ jaro_winkler = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
+ type = "gem";
+ };
+ version = "1.5.4";
+ };
+ json = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ loofah = {
+ dependencies = ["crass" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040";
+ type = "gem";
+ };
+ version = "2.5.0";
+ };
+ mail = {
+ dependencies = ["mini_mime"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+ type = "gem";
+ };
+ version = "2.7.1";
+ };
+ marcel = {
+ dependencies = ["mimemagic"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+ type = "gem";
+ };
+ version = "0.3.3";
+ };
+ method_source = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ mimemagic = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0frrfvz52fh4v1sb2xr9pyxhrxm5f7jppqxagpmd7c5ific66l9p";
+ type = "gem";
+ };
+ version = "0.3.4";
+ };
+ mini_magick = {
+ groups = ["minimagick"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qy09qrd5bwh8mkbj514n5vcw9ni73218h9s3zmvbpmdwrnzi8j4";
+ type = "gem";
+ };
+ version = "4.9.5";
+ };
+ mini_mime = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ mini_portile2 = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ minitest = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+ type = "gem";
+ };
+ version = "5.14.0";
+ };
+ mocha = {
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hxmkm8qxd04vwj8mqnpyrf2dwy7g1k9zipdfhl4y71cw7ijm9n4";
+ type = "gem";
+ };
+ version = "1.11.2";
+ };
+ mysql2 = {
+ groups = ["default"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mingw";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d14pcy5m4hjig0zdxnl9in5f4izszc7v9zcczf2gyi5kiyxk8jw";
+ type = "gem";
+ };
+ version = "0.5.3";
+ };
+ net-ldap = {
+ groups = ["ldap"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg";
+ type = "gem";
+ };
+ version = "0.16.2";
+ };
+ nio4r = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c";
+ type = "gem";
+ };
+ version = "2.5.2";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+ type = "gem";
+ };
+ version = "1.10.9";
+ };
+ parallel = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2";
+ type = "gem";
+ };
+ version = "1.19.1";
+ };
+ parser = {
+ dependencies = ["ast"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07awrcwm2xibglrh7qwpj24vwzn9p64m7bmfr9xbrlffaznr0ii7";
+ type = "gem";
+ };
+ version = "2.7.1.0";
+ };
+ pg = {
+ groups = ["default"];
+ platforms = [{
+ engine = "maglev";
+ } {
+ engine = "mingw";
+ } {
+ engine = "mingw";
+ } {
+ engine = "ruby";
+ }];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ public_suffix = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l1kqw75asziwmzrig8rywxswxz8l91sc3pvns02ffsqac1a3wiz";
+ type = "gem";
+ };
+ version = "4.0.4";
+ };
+ puma = {
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mg8yh478mh55pg7pv8z7xyvk35ra98hy61z9lwkfr8fzyyz57zs";
+ type = "gem";
+ };
+ version = "3.12.4";
+ };
+ rack = {
+ groups = ["default" "openid" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ rack-openid = {
+ dependencies = ["rack" "ruby-openid"];
+ groups = ["openid"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc";
+ type = "gem";
+ };
+ version = "1.4.2";
+ };
+ rack-test = {
+ dependencies = ["rack"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ rails = {
+ dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x8k6n4yziwf386prhvr9d9plc9fwv0j8spw2bnmkwhf54v2ias4";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ rails-dom-testing = {
+ dependencies = ["activesupport" "nokogiri"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ rails-html-sanitizer = {
+ dependencies = ["loofah"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ railties = {
+ dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p2rnd1xdqlk19k3m5gd058yzvwjj25k5hwn4km683b5dhylpd16";
+ type = "gem";
+ };
+ version = "5.2.4.2";
+ };
+ rainbow = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ rake = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+ type = "gem";
+ };
+ version = "13.0.1";
+ };
+ rbpdf = {
+ dependencies = ["htmlentities" "rbpdf-font"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sdj8frakpdms820rwlil38h9bh3p24xmwnjrxsjc1p9irc3za71";
+ type = "gem";
+ };
+ version = "1.20.1";
+ };
+ 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 = "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k";
+ type = "gem";
+ };
+ version = "3.5.0";
+ };
+ regexp_parser = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0l2vcj9qffj5b3v9jsyi4k994bdj3rjz7l9ql8x04lndqxfrrrv2";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ request_store = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1963330z03fk382fi8y231ygcbnh86m91dqlp5rh1mwy9ihzzl6d";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ roadie = {
+ dependencies = ["css_parser" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01kld3drqfiih5x8c13cvr6dpvdl7jml0v9bcw4fsy322lax3kn0";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ roadie-rails = {
+ dependencies = ["railties" "roadie"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fmn7kkbpgipjsx65rw7hqa3bwinlqykx5qf1x28ya9ag8v2q0ph";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ rouge = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08fpnxbhqv5sqpnfjasl1ysxafssyq4q1yhcqamqqzmb9czj1czw";
+ type = "gem";
+ };
+ version = "3.12.0";
+ };
+ rubocop = {
+ dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07x51ixlx76y194xsszh5lbkaqakz44ykbrjxg3qaggbs18790q0";
+ type = "gem";
+ };
+ version = "0.76.0";
+ };
+ rubocop-performance = {
+ dependencies = ["rubocop"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fk9nd3b24avgsqp726hy2pl1iyfjrh6jni97wkky6kqy0lq6zq2";
+ type = "gem";
+ };
+ version = "1.5.2";
+ };
+ rubocop-rails = {
+ dependencies = ["rack" "rubocop"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q7ffsq1cjm4m949nh935kjzv4zf1pacnrl00siwh8flhcn3mmjf";
+ type = "gem";
+ };
+ version = "2.3.2";
+ };
+ ruby-openid = {
+ groups = ["openid"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "190p1m0bxd9xkfk1j6cpcv3x5c367g36nsglg4m1fcwqdd13k3kz";
+ type = "gem";
+ };
+ version = "2.9.2";
+ };
+ ruby-progressbar = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+ type = "gem";
+ };
+ version = "1.10.1";
+ };
+ rubyzip = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ selenium-webdriver = {
+ dependencies = ["childprocess" "rubyzip"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0adcvp86dinaqq3nhf8p3m0rl2g6q0a4h52k0i7kdnsg1qz9k86y";
+ type = "gem";
+ };
+ version = "3.142.7";
+ };
+ simplecov = {
+ dependencies = ["docile" "json" "simplecov-html"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1135k46nik05sdab30yxb8264lqiz01c8v000g16cl9pjc4mxrdw";
+ type = "gem";
+ };
+ version = "0.17.1";
+ };
+ simplecov-html = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
+ type = "gem";
+ };
+ version = "0.10.2";
+ };
+ sprockets = {
+ dependencies = ["concurrent-ruby" "rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jm37zpvvm1arxjwrd6am0wrdbfhrhc5y0l4p2i3p11z04bsvgap";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ sprockets-rails = {
+ dependencies = ["actionpack" "activesupport" "sprockets"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ thor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ thread_safe = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ unicode-display_width = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x";
+ type = "gem";
+ };
+ version = "1.6.1";
+ };
+ websocket-driver = {
+ dependencies = ["websocket-extensions"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+ websocket-extensions = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00i624ng1nvkz1yckj3f8yxxp6hi7xaqf40qh9q3hj2n1l9i8g6m";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ 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 = "1g0bw2qcl48fxawrdf68l229508z53mrqisavji2lkxzv4w4j2pp";
+ type = "gem";
+ };
+ version = "0.9.24";
+ };
+} \ No newline at end of file