diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/version-management/redmine')
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 |