From b8a9c3fbfddca622326c5f072c8f5a35a071f2cf Mon Sep 17 00:00:00 2001 From: aanderse Date: Tue, 5 Feb 2019 06:51:33 -0500 Subject: [PATCH] redmine: 3.4.8 -> 4.0.1 (#55234) * redmine: 3.4.8 -> 4.0.1 * nixos/redmine: update nixos test to run against both redmine 3.x and 4.x series * nixos/redmine: default new installs from 19.03 onward to redmine 4.x series, while keeping existing installs on redmine 3.x series * nixos/redmine: add comment about default redmine package to 19.03 release notes * redmine: add aandersea as a maintainer --- nixos/doc/manual/release-notes/rl-1903.xml | 7 + nixos/modules/services/misc/redmine.nix | 14 +- nixos/tests/redmine.nix | 94 +-- .../version-management/redmine/4.x/Gemfile | 71 ++ .../redmine/4.x/Gemfile.lock | 204 ++++++ .../redmine/4.x/default.nix | 43 ++ .../version-management/redmine/4.x/gemset.nix | 622 ++++++++++++++++++ .../version-management/redmine/default.nix | 2 +- pkgs/top-level/all-packages.nix | 2 + 9 files changed, 1017 insertions(+), 42 deletions(-) create mode 100644 pkgs/applications/version-management/redmine/4.x/Gemfile create mode 100644 pkgs/applications/version-management/redmine/4.x/Gemfile.lock create mode 100644 pkgs/applications/version-management/redmine/4.x/default.nix create mode 100644 pkgs/applications/version-management/redmine/4.x/gemset.nix diff --git a/nixos/doc/manual/release-notes/rl-1903.xml b/nixos/doc/manual/release-notes/rl-1903.xml index eca280afdf18..943b9d2a6081 100644 --- a/nixos/doc/manual/release-notes/rl-1903.xml +++ b/nixos/doc/manual/release-notes/rl-1903.xml @@ -484,6 +484,13 @@ the systemd unit configuration from upstream anymore, the unit is completely configured by the NixOS module now. + + + New installs of NixOS will default to the Redmine 4.x series unless otherwise specified in + services.redmine.package while existing installs of NixOS will default to + the Redmine 3.x series. + + diff --git a/nixos/modules/services/misc/redmine.nix b/nixos/modules/services/misc/redmine.nix index d7250c5f35af..98e9c8953c84 100644 --- a/nixos/modules/services/misc/redmine.nix +++ b/nixos/modules/services/misc/redmine.nix @@ -61,12 +61,20 @@ in description = "Enable the Redmine service."; }; + # default to the 4.x series not forcing major version upgrade of those on the 3.x series package = mkOption { type = types.package; - default = pkgs.redmine; + default = if versionAtLeast config.system.stateVersion "19.03" + then pkgs.redmine_4 + else pkgs.redmine + ; defaultText = "pkgs.redmine"; - description = "Which Redmine package to use."; - example = "pkgs.redmine.override { ruby = pkgs.ruby_2_3; }"; + description = '' + Which Redmine package to use. This defaults to version 3.x if + system.stateVersion < 19.03 and version 4.x + otherwise. + ''; + example = "pkgs.redmine_4.override { ruby = pkgs.ruby_2_4; }"; }; user = mkOption { diff --git a/nixos/tests/redmine.nix b/nixos/tests/redmine.nix index 330f72854cac..ea72a0121d11 100644 --- a/nixos/tests/redmine.nix +++ b/nixos/tests/redmine.nix @@ -1,40 +1,58 @@ -import ./make-test.nix ({ pkgs, lib, ... }: +{ system ? builtins.currentSystem, + config ? {}, + pkgs ? import ../.. { inherit system config; } +}: + +with import ../lib/testing.nix { inherit system pkgs; }; +with pkgs.lib; + +let + redmineTest = package: makeTest { + machine = + { config, pkgs, ... }: + { services.mysql.enable = true; + services.mysql.package = pkgs.mariadb; + services.mysql.ensureDatabases = [ "redmine" ]; + services.mysql.ensureUsers = [ + { name = "redmine"; + ensurePermissions = { "redmine.*" = "ALL PRIVILEGES"; }; + } + ]; + + services.redmine.enable = true; + services.redmine.package = package; + services.redmine.database.socket = "/run/mysqld/mysqld.sock"; + services.redmine.plugins = { + redmine_env_auth = pkgs.fetchurl { + url = https://github.com/Intera/redmine_env_auth/archive/0.7.zip; + sha256 = "1xb8lyarc7mpi86yflnlgyllh9hfwb9z304f19dx409gqpia99sc"; + }; + }; + services.redmine.themes = { + dkuk-redmine_alex_skin = pkgs.fetchurl { + url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip; + sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl"; + }; + }; + }; + + testScript = '' + startAll; + + $machine->waitForUnit('redmine.service'); + $machine->waitForOpenPort('3000'); + $machine->succeed("curl --fail http://localhost:3000/"); + ''; + }; +in { - name = "redmine"; - meta.maintainers = [ lib.maintainers.aanderse ]; + redmine_3 = redmineTest pkgs.redmine // { + name = "redmine_3"; + meta.maintainers = [ maintainers.aanderse ]; + }; - machine = - { config, pkgs, ... }: - { services.mysql.enable = true; - services.mysql.package = pkgs.mariadb; - services.mysql.ensureDatabases = [ "redmine" ]; - services.mysql.ensureUsers = [ - { name = "redmine"; - ensurePermissions = { "redmine.*" = "ALL PRIVILEGES"; }; - } - ]; - - services.redmine.enable = true; - services.redmine.database.socket = "/run/mysqld/mysqld.sock"; - services.redmine.plugins = { - redmine_env_auth = pkgs.fetchurl { - url = https://github.com/Intera/redmine_env_auth/archive/0.6.zip; - sha256 = "0yyr1yjd8gvvh832wdc8m3xfnhhxzk2pk3gm2psg5w9jdvd6skak"; - }; - }; - services.redmine.themes = { - dkuk-redmine_alex_skin = pkgs.fetchurl { - url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip; - sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl"; - }; - }; - }; - - testScript = '' - startAll; - - $machine->waitForUnit('redmine.service'); - $machine->waitForOpenPort('3000'); - $machine->succeed("curl --fail http://localhost:3000/"); - ''; -}) + redmine_4 = redmineTest pkgs.redmine_4 // { + name = "redmine_4"; + meta.maintainers = [ maintainers.aanderse ]; + }; +} diff --git a/pkgs/applications/version-management/redmine/4.x/Gemfile b/pkgs/applications/version-management/redmine/4.x/Gemfile new file mode 100644 index 000000000000..3fd176007abf --- /dev/null +++ b/pkgs/applications/version-management/redmine/4.x/Gemfile @@ -0,0 +1,71 @@ +source 'https://rubygems.org' + +gem "bundler", ">= 1.5.0" + +gem "rails", "5.2.2" +gem "rouge", "~> 3.3.0" +gem "request_store", "1.0.5" +gem "mini_mime", "~> 1.0.1" +gem "actionpack-xml_parser" +gem "roadie-rails", "~> 1.3.0" +gem "mimemagic" +gem "mail", "~> 2.7.1" +gem "csv", "~> 3.0.1" if RUBY_VERSION >= "2.3" && RUBY_VERSION < "2.6" + +gem "nokogiri", (RUBY_VERSION >= "2.3" ? "~> 1.10.0" : "~> 1.9.1") +gem "i18n", "~> 0.7.0" + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin] +gem "rbpdf", "~> 1.19.6" + +# 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.3.0", :require => "openid" + gem "rack-openid" +end + +platforms :mri, :mingw, :x64_mingw do + # Optional gem for exporting the gantt to a PNG file, not supported with jruby + group :rmagick do + gem "rmagick", ">= 2.14.0" + end + + # Optional Markdown support, not for JRuby + group :markdown do + gem "redcarpet", "~> 3.4.0" + end +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" + gem "simplecov", "~> 0.14.1", :require => false + # For running system tests + gem 'puma', '~> 3.7' + gem "capybara", '~> 2.13' + gem "selenium-webdriver" +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/pkgs/applications/version-management/redmine/4.x/Gemfile.lock b/pkgs/applications/version-management/redmine/4.x/Gemfile.lock new file mode 100644 index 000000000000..8c569ddb3227 --- /dev/null +++ b/pkgs/applications/version-management/redmine/4.x/Gemfile.lock @@ -0,0 +1,204 @@ +GEM + remote: https://rubygems.org/ + specs: + actioncable (5.2.2) + actionpack (= 5.2.2) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailer (5.2.2) + actionpack (= 5.2.2) + actionview (= 5.2.2) + activejob (= 5.2.2) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.2.2) + actionview (= 5.2.2) + activesupport (= 5.2.2) + rack (~> 2.0) + 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.2) + activesupport (= 5.2.2) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.2.2) + activesupport (= 5.2.2) + globalid (>= 0.3.6) + activemodel (5.2.2) + activesupport (= 5.2.2) + activerecord (5.2.2) + activemodel (= 5.2.2) + activesupport (= 5.2.2) + arel (>= 9.0) + activestorage (5.2.2) + actionpack (= 5.2.2) + activerecord (= 5.2.2) + marcel (~> 0.3.1) + activesupport (5.2.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + addressable (2.6.0) + public_suffix (>= 2.0.2, < 4.0) + arel (9.0.0) + builder (3.2.3) + capybara (2.18.0) + addressable + mini_mime (>= 0.1.3) + nokogiri (>= 1.3.3) + rack (>= 1.0.0) + rack-test (>= 0.5.4) + xpath (>= 2.0, < 4.0) + childprocess (0.9.0) + ffi (~> 1.0, >= 1.0.11) + concurrent-ruby (1.1.4) + crass (1.0.4) + css_parser (1.6.0) + addressable + csv (3.0.4) + docile (1.1.5) + erubi (1.8.0) + ffi (1.10.0) + globalid (0.4.2) + activesupport (>= 4.2.0) + htmlentities (4.3.4) + i18n (0.7.0) + json (2.1.0) + loofah (2.2.3) + 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) + metaclass (0.0.4) + method_source (0.9.2) + mimemagic (0.3.3) + mini_mime (1.0.1) + mini_portile2 (2.4.0) + minitest (5.11.3) + mocha (1.8.0) + metaclass (~> 0.0.1) + mysql2 (0.5.2) + net-ldap (0.16.1) + nio4r (2.3.1) + nokogiri (1.10.1) + mini_portile2 (~> 2.4.0) + pg (1.1.4) + public_suffix (3.0.3) + puma (3.12.0) + rack (2.0.6) + 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.2) + actioncable (= 5.2.2) + actionmailer (= 5.2.2) + actionpack (= 5.2.2) + actionview (= 5.2.2) + activejob (= 5.2.2) + activemodel (= 5.2.2) + activerecord (= 5.2.2) + activestorage (= 5.2.2) + activesupport (= 5.2.2) + bundler (>= 1.3.0) + railties (= 5.2.2) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.0.4) + loofah (~> 2.2, >= 2.2.2) + railties (5.2.2) + actionpack (= 5.2.2) + activesupport (= 5.2.2) + method_source + rake (>= 0.8.7) + thor (>= 0.19.0, < 2.0) + rake (12.3.2) + rbpdf (1.19.8) + htmlentities + rbpdf-font (~> 1.19.0) + rbpdf-font (1.19.1) + redcarpet (3.4.0) + request_store (1.0.5) + rmagick (2.16.0) + roadie (3.4.0) + css_parser (~> 1.4) + nokogiri (~> 1.5) + roadie-rails (1.3.0) + railties (>= 3.0, < 5.3) + roadie (~> 3.1) + rouge (3.3.0) + ruby-openid (2.3.0) + rubyzip (1.2.2) + selenium-webdriver (3.141.0) + childprocess (~> 0.5) + rubyzip (~> 1.2, >= 1.2.2) + simplecov (0.14.1) + docile (~> 1.1.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.2) + sprockets (3.7.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.1) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + thor (0.20.3) + thread_safe (0.3.6) + tzinfo (1.2.5) + thread_safe (~> 0.1) + websocket-driver (0.7.0) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.3) + xpath (3.2.0) + nokogiri (~> 1.8) + yard (0.9.18) + +PLATFORMS + ruby + +DEPENDENCIES + actionpack-xml_parser + bundler (>= 1.5.0) + capybara (~> 2.13) + csv (~> 3.0.1) + i18n (~> 0.7.0) + mail (~> 2.7.1) + mimemagic + mini_mime (~> 1.0.1) + mocha + 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.2) + rails-dom-testing + rbpdf (~> 1.19.6) + redcarpet (~> 3.4.0) + request_store (= 1.0.5) + rmagick (>= 2.14.0) + roadie-rails (~> 1.3.0) + rouge (~> 3.3.0) + ruby-openid (~> 2.3.0) + selenium-webdriver + simplecov (~> 0.14.1) + tzinfo-data + yard + +BUNDLED WITH + 1.16.3 diff --git a/pkgs/applications/version-management/redmine/4.x/default.nix b/pkgs/applications/version-management/redmine/4.x/default.nix new file mode 100644 index 000000000000..ba9f96f5a30c --- /dev/null +++ b/pkgs/applications/version-management/redmine/4.x/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, bundlerEnv, ruby }: + +let + version = "4.0.1"; + rubyEnv = bundlerEnv { + name = "redmine-env-${version}"; + + inherit ruby; + gemdir = ./.; + groups = [ "ldap" "openid" ]; + }; +in + stdenv.mkDerivation rec { + name = "redmine-${version}"; + + src = fetchurl { + url = "https://www.redmine.org/releases/${name}.tar.gz"; + sha256 = "1zzn9rkh7x1h9f2shcc8qhb693hp0hpah0z53i6gfgg5p8k5hns1"; + }; + + buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ]; + + 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 = http://www.redmine.org/; + platforms = platforms.linux; + maintainers = [ maintainers.garbas maintainers.aanderse ]; + license = licenses.gpl2; + }; + } diff --git a/pkgs/applications/version-management/redmine/4.x/gemset.nix b/pkgs/applications/version-management/redmine/4.x/gemset.nix new file mode 100644 index 000000000000..ce21a58b5564 --- /dev/null +++ b/pkgs/applications/version-management/redmine/4.x/gemset.nix @@ -0,0 +1,622 @@ +{ + actioncable = { + dependencies = ["actionpack" "nio4r" "websocket-driver"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0826k5ch0l03f9yrkxy69aiv039z4qi00lnahw2rzywd2iz6r68x"; + type = "gem"; + }; + version = "5.2.2"; + }; + actionmailer = { + dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sfpb8s95cmkpp9ybyp2c88r55r5llscmmnkfwcwgasz9ncjiq5n"; + type = "gem"; + }; + version = "5.2.2"; + }; + actionpack = { + dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0iwhbqqn0cm39dq040iwq8cfyclqk3kyzwlp5k3j5cz8k2668wws"; + type = "gem"; + }; + version = "5.2.2"; + }; + actionpack-xml_parser = { + dependencies = ["actionpack" "railties"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0"; + type = "gem"; + }; + version = "2.0.1"; + }; + actionview = { + dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lz04drbi1z0xhvb8jnr14pbf505lilr02arahxq7y3mxiz0rs8z"; + type = "gem"; + }; + version = "5.2.2"; + }; + activejob = { + dependencies = ["activesupport" "globalid"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jjkl62x2aprg55x9rpm0h2c82vr2qr989hg3l9r21l01q4822ir"; + type = "gem"; + }; + version = "5.2.2"; + }; + activemodel = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xmwi3mw8g4shbjvkhk72ra3r5jccbdsd4piphqka2y1h8s7sxvi"; + type = "gem"; + }; + version = "5.2.2"; + }; + activerecord = { + dependencies = ["activemodel" "activesupport" "arel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19a0sns6a5wz2wym25lb1dv4lbrrl5sd1n15s5ky2636znmhz30y"; + type = "gem"; + }; + version = "5.2.2"; + }; + activestorage = { + dependencies = ["actionpack" "activerecord" "marcel"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c72837098sw384vk6dmrb2p7q3wx4swnibk6sw9dp4hn1vc4p31"; + type = "gem"; + }; + version = "5.2.2"; + }; + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1iya7vxqwxysr74s7b4z1x19gmnx5advimzip3cbmsd5bd43wfgz"; + type = "gem"; + }; + version = "5.2.2"; + }; + addressable = { + dependencies = ["public_suffix"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l"; + type = "gem"; + }; + version = "2.6.0"; + }; + arel = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0"; + type = "gem"; + }; + version = "9.0.0"; + }; + builder = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1"; + type = "gem"; + }; + version = "3.2.3"; + }; + capybara = { + dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yv77rnsjlvs8qpfn9n5vf1h6b9agxwhxw09gssbiw9zn9j20jh8"; + type = "gem"; + }; + version = "2.18.0"; + }; + childprocess = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p"; + type = "gem"; + }; + version = "0.9.0"; + }; + concurrent-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ixcx9pfissxrga53jbdpza85qd5f6b5nq1sfqa9rnfq82qnlbp1"; + type = "gem"; + }; + version = "1.1.4"; + }; + crass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"; + type = "gem"; + }; + version = "1.0.4"; + }; + css_parser = { + dependencies = ["addressable"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gwvf8mc8gnz4aizfijplv3594998h2j44ydakpzsdmkivs07v61"; + type = "gem"; + }; + version = "1.6.0"; + }; + csv = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19m22vlxddva301z2izvg06hldlc37nyzhin3kjjfcnlbb8imj33"; + type = "gem"; + }; + version = "3.0.4"; + }; + docile = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"; + type = "gem"; + }; + version = "1.1.5"; + }; + erubi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kagnf6ziahj0d781s6ryy6fwqwa3ad4xbzzj84p9m4nv4c2jir1"; + type = "gem"; + }; + version = "1.8.0"; + }; + ffi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p"; + type = "gem"; + }; + version = "1.10.0"; + }; + globalid = { + dependencies = ["activesupport"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"; + type = "gem"; + }; + version = "0.4.2"; + }; + htmlentities = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; + type = "gem"; + }; + version = "4.3.4"; + }; + i18n = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"; + type = "gem"; + }; + version = "0.7.0"; + }; + json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp"; + type = "gem"; + }; + version = "2.1.0"; + }; + loofah = { + dependencies = ["crass" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg"; + type = "gem"; + }; + version = "2.2.3"; + }; + mail = { + dependencies = ["mini_mime"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc"; + type = "gem"; + }; + version = "2.7.1"; + }; + marcel = { + dependencies = ["mimemagic"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx"; + type = "gem"; + }; + version = "0.3.3"; + }; + metaclass = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5"; + type = "gem"; + }; + version = "0.0.4"; + }; + method_source = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq"; + type = "gem"; + }; + version = "0.9.2"; + }; + mimemagic = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw"; + type = "gem"; + }; + version = "0.3.3"; + }; + mini_mime = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3"; + type = "gem"; + }; + version = "1.0.1"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"; + type = "gem"; + }; + version = "2.4.0"; + }; + minitest = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; + type = "gem"; + }; + version = "5.11.3"; + }; + mocha = { + dependencies = ["metaclass"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12aglpiq1h18j5a4rlwvnsvnsi2f3407v5xm59lgcg3ymlyak4al"; + type = "gem"; + }; + version = "1.8.0"; + }; + mysql2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a2kdjgzwh1p2rkcmxaawy6ibi32b04wbdd5d4wr8i342pq76di4"; + type = "gem"; + }; + version = "0.5.2"; + }; + net-ldap = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "016igqz81a8zcwqzp5bbhryqmb2skmyf57ij3nb5z8sxwhw22jgh"; + type = "gem"; + }; + version = "0.16.1"; + }; + nio4r = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr"; + type = "gem"; + }; + version = "2.3.1"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09zll7c6j7xr6wyvh5mm5ncj6pkryp70ybcsxdbw1nyphx5dh184"; + type = "gem"; + }; + version = "1.10.1"; + }; + pg = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy"; + type = "gem"; + }; + version = "1.1.4"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"; + type = "gem"; + }; + version = "3.0.3"; + }; + puma = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq"; + type = "gem"; + }; + version = "3.12.0"; + }; + rack = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm"; + type = "gem"; + }; + version = "2.0.6"; + }; + rack-openid = { + dependencies = ["rack" "ruby-openid"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc"; + type = "gem"; + }; + version = "1.4.2"; + }; + rack-test = { + dependencies = ["rack"]; + 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"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m9cszds68dsiycciiayd3c9g90s2yzn1izkr3gpgqkfw6dmvzyr"; + type = "gem"; + }; + version = "5.2.2"; + }; + rails-dom-testing = { + dependencies = ["activesupport" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; + type = "gem"; + }; + version = "2.0.3"; + }; + rails-html-sanitizer = { + dependencies = ["loofah"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr"; + type = "gem"; + }; + version = "1.0.4"; + }; + railties = { + dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00pnylmbz4c46mxw5lhxi8h39lndfg6fs1hpd0qd6swnjhkqsr1l"; + type = "gem"; + }; + version = "5.2.2"; + }; + rake = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn"; + type = "gem"; + }; + version = "12.3.2"; + }; + rbpdf = { + dependencies = ["htmlentities" "rbpdf-font"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fnhcn4z2zz6ic1yvl5hmhwmkdnybh8f8fnk1ni7bvl2s4ig5195"; + type = "gem"; + }; + version = "1.19.8"; + }; + rbpdf-font = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v"; + type = "gem"; + }; + version = "1.19.1"; + }; + redcarpet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7"; + type = "gem"; + }; + version = "3.4.0"; + }; + request_store = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ky19wb6mpq6dxb81a0h4hnzx7a4ka99n9ay2syi68djbr4bkbbh"; + type = "gem"; + }; + version = "1.0.5"; + }; + rmagick = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m9x15cdlkcb9826s3s2jd97hxf50hln22p94x8hcccxi1lwklq6"; + type = "gem"; + }; + version = "2.16.0"; + }; + roadie = { + dependencies = ["css_parser" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l3s80394yijvz0fsvfkw0azsi9yxsdkxd8lpas0bd7wlndjvmxx"; + type = "gem"; + }; + version = "3.4.0"; + }; + roadie-rails = { + dependencies = ["railties" "roadie"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02km0ama85mkw7kkn6qif86b781pglfdmqrwx5s6hwjlzk16qih3"; + type = "gem"; + }; + version = "1.3.0"; + }; + rouge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql"; + type = "gem"; + }; + version = "3.3.0"; + }; + ruby-openid = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yzaf2c1i88757554wk38rxqmj0xzgmwk2zx7gi98w2zx42d17pn"; + type = "gem"; + }; + version = "2.3.0"; + }; + rubyzip = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj"; + type = "gem"; + }; + version = "1.2.2"; + }; + selenium-webdriver = { + dependencies = ["childprocess" "rubyzip"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "114hv2ajmh6d186v2w887yqakqcxyxq367l0iakrrpvwviknrhfs"; + type = "gem"; + }; + version = "3.141.0"; + }; + simplecov = { + dependencies = ["docile" "json" "simplecov-html"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww"; + type = "gem"; + }; + version = "0.14.1"; + }; + simplecov-html = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn"; + type = "gem"; + }; + version = "0.10.2"; + }; + sprockets = { + dependencies = ["concurrent-ruby" "rack"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; + type = "gem"; + }; + version = "3.7.2"; + }; + sprockets-rails = { + dependencies = ["actionpack" "activesupport" "sprockets"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"; + type = "gem"; + }; + version = "3.2.1"; + }; + thor = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29"; + type = "gem"; + }; + version = "0.20.3"; + }; + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; + type = "gem"; + }; + version = "1.2.5"; + }; + websocket-driver = { + dependencies = ["websocket-extensions"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1551k3fs3kkb3ghqfj3n5lps0ikb9pyrdnzmvgfdxy8574n4g1dn"; + type = "gem"; + }; + version = "0.7.0"; + }; + websocket-extensions = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270"; + type = "gem"; + }; + version = "0.1.3"; + }; + xpath = { + dependencies = ["nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; + type = "gem"; + }; + version = "3.2.0"; + }; + yard = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07fykkfyrwqkfnxx9i5w6adyiadz00h497c516n96rgvs7alc74f"; + type = "gem"; + }; + version = "0.9.18"; + }; +} \ No newline at end of file diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix index 6e5a2dbbdf70..02ae5da0f3f0 100644 --- a/pkgs/applications/version-management/redmine/default.nix +++ b/pkgs/applications/version-management/redmine/default.nix @@ -37,7 +37,7 @@ in meta = with stdenv.lib; { homepage = http://www.redmine.org/; platforms = platforms.linux; - maintainers = [ maintainers.garbas ]; + maintainers = [ maintainers.garbas maintainers.aanderse ]; license = licenses.gpl2; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5578106651f8..5c2ed177d328 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5086,6 +5086,8 @@ in redir = callPackage ../tools/networking/redir { }; redmine = callPackage ../applications/version-management/redmine { ruby = pkgs.ruby_2_4; }; + # failed to build websocket-driver gem with ruby 2.6, so sticking to 2.5 for now + redmine_4 = callPackage ../applications/version-management/redmine/4.x { ruby = pkgs.ruby_2_5; }; redsocks = callPackage ../tools/networking/redsocks { };