diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix index 76d892b16815..20d7ec90dcc9 100644 --- a/nixos/modules/services/misc/gitlab.nix +++ b/nixos/modules/services/misc/gitlab.nix @@ -143,6 +143,7 @@ let GITLAB_PATH = "${cfg.packages.gitlab}/share/gitlab/"; GITLAB_STATE_PATH = "${cfg.statePath}"; GITLAB_UPLOADS_PATH = "${cfg.statePath}/uploads"; + SCHEMA = "${cfg.statePath}/db/schema.rb"; GITLAB_LOG_PATH = "${cfg.statePath}/log"; GITLAB_SHELL_PATH = "${cfg.packages.gitlab-shell}"; GITLAB_SHELL_CONFIG_PATH = "${cfg.statePath}/shell/config.yml"; @@ -566,6 +567,7 @@ in { mkdir -p ${cfg.statePath}/tmp/pids mkdir -p ${cfg.statePath}/tmp/sockets mkdir -p ${cfg.statePath}/shell + mkdir -p ${cfg.statePath}/db rm -rf ${cfg.statePath}/config ${cfg.statePath}/shell/hooks mkdir -p ${cfg.statePath}/config @@ -588,6 +590,7 @@ in { touch ${gitlabEnv.HOME}/.ssh/authorized_keys chown -R ${cfg.user}:${cfg.group} ${gitlabEnv.HOME}/ + cp -rf ${cfg.packages.gitlab}/share/gitlab/db/* ${cfg.statePath}/db cp -rf ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config ${optionalString cfg.smtp.enable '' ln -sf ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb diff --git a/pkgs/applications/version-management/gitlab/Gemfile b/pkgs/applications/version-management/gitlab/Gemfile index 916314f42f93..880ed483c346 100644 --- a/pkgs/applications/version-management/gitlab/Gemfile +++ b/pkgs/applications/version-management/gitlab/Gemfile @@ -12,7 +12,7 @@ gem 'sprockets', '~> 3.7.0' gem 'default_value_for', '~> 3.0.0' # Supported DBs -gem 'mysql2', '~> 0.4.5', group: :mysql +gem 'mysql2', '~> 0.4.10', group: :mysql gem 'pg', '~> 0.18.2', group: :postgres gem 'rugged', '~> 0.26.0' @@ -69,7 +69,15 @@ gem 'net-ldap' # Git Wiki # Required manually in config/initializers/gollum.rb to control load order +# Before updating this gem, check if +# https://github.com/gollum/gollum-lib/pull/292 has been merged. +# If it has, then remove the monkey patch for update_page, rename_page and raw_data_in_committer +# in config/initializers/gollum.rb gem 'gollum-lib', '~> 4.2', require: false + +# Before updating this gem, check if +# https://github.com/gollum/rugged_adapter/pull/28 has been merged. +# If it has, then remove the monkey patch for tree_entry in config/initializers/gollum.rb gem 'gollum-rugged_adapter', '~> 0.4.4', require: false # Language detection @@ -78,7 +86,7 @@ gem 'github-linguist', '~> 4.7.0', require: 'linguist' # API gem 'grape', '~> 1.0' gem 'grape-entity', '~> 0.6.0' -gem 'rack-cors', '~> 0.4.0', require: 'rack/cors' +gem 'rack-cors', '~> 1.0.0', require: 'rack/cors' # Disable strong_params so that Mash does not respond to :permitted? gem 'hashie-forbidden_attributes' @@ -111,7 +119,7 @@ gem 'google-api-client', '~> 0.13.6' gem 'unf', '~> 0.1.4' # Seed data -gem 'seed-fu', '2.3.6' # Upgrade to > 2.3.7 once https://github.com/mbleigh/seed-fu/issues/123 is solved +gem 'seed-fu', '~> 2.3.7' # Markdown and HTML processing gem 'html-pipeline', '~> 1.11.0' @@ -128,7 +136,7 @@ gem 'asciidoctor-plantuml', '0.0.7' gem 'rouge', '~> 2.0' gem 'truncato', '~> 0.7.9' gem 'bootstrap_form', '~> 2.7.0' -gem 'nokogiri', '~> 1.8.1' +gem 'nokogiri', '~> 1.8.2' # Diffs gem 'diffy', '~> 3.1.0' @@ -229,6 +237,9 @@ gem 'charlock_holmes', '~> 0.7.5' # Faster JSON gem 'oj', '~> 2.17.4' +# Faster blank +gem 'fast_blank' + # Parse time & duration gem 'chronic', '~> 0.10.2' gem 'chronic_duration', '~> 0.10.6' @@ -263,7 +274,7 @@ gem 'gettext_i18n_rails', '~> 1.8.0' gem 'gettext_i18n_rails_js', '~> 1.2.0' gem 'gettext', '~> 3.2.2', require: false, group: :development -gem 'batch-loader' +gem 'batch-loader', '~> 1.2.1' # Perf bar gem 'peek', '~> 1.0.1' @@ -283,7 +294,7 @@ group :metrics do gem 'influxdb', '~> 0.2', require: false # Prometheus - gem 'prometheus-client-mmap', '~> 0.7.0.beta43' + gem 'prometheus-client-mmap', '~> 0.9.1' gem 'raindrops', '~> 0.18' end @@ -311,14 +322,14 @@ group :development, :test do gem 'fuubar', '~> 2.2.0' gem 'database_cleaner', '~> 1.5.0' - gem 'factory_girl_rails', '~> 4.7.0' + gem 'factory_bot_rails', '~> 4.8.2' gem 'rspec-rails', '~> 3.6.0' gem 'rspec-retry', '~> 0.4.5' gem 'spinach-rails', '~> 0.2.1' gem 'spinach-rerun-reporter', '~> 0.0.2' gem 'rspec_profiling', '~> 0.0.5' gem 'rspec-set', '~> 0.1.3' - gem 'rspec-parameterized' + gem 'rspec-parameterized', require: false # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) gem 'minitest', '~> 5.7.0' @@ -334,13 +345,15 @@ group :development, :test do gem 'spring-commands-rspec', '~> 1.0.4' gem 'spring-commands-spinach', '~> 1.1.0' - gem 'rubocop', '~> 0.49.1', require: false - gem 'rubocop-rspec', '~> 1.15.1', require: false - gem 'rubocop-gitlab-security', '~> 0.1.0', require: false - gem 'scss_lint', '~> 0.54.0', require: false + gem 'gitlab-styles', '~> 2.3', require: false + # Pin these dependencies, otherwise a new rule could break the CI pipelines + gem 'rubocop', '~> 0.52.1' + gem 'rubocop-rspec', '~> 1.22.1' + + gem 'scss_lint', '~> 0.56.0', require: false gem 'haml_lint', '~> 0.26.0', require: false gem 'simplecov', '~> 0.14.0', require: false - gem 'flay', '~> 2.8.0', require: false + gem 'flay', '~> 2.10.0', require: false gem 'bundler-audit', '~> 0.5.0', require: false gem 'benchmark-ips', '~> 2.3.0', require: false @@ -379,9 +392,6 @@ gem 'ruby-prof', '~> 0.16.2' # OAuth gem 'oauth2', '~> 1.4' -# Soft deletion -gem 'paranoia', '~> 2.3.1' - # Health check gem 'health_check', '~> 2.6.0' @@ -400,16 +410,20 @@ group :ed25519 do end # Gitaly GRPC client -gem 'gitaly-proto', '~> 0.59.0', require: 'gitaly' +gem 'gitaly-proto', '~> 0.84.0', require: 'gitaly' +# Locked until https://github.com/google/protobuf/issues/4210 is closed +gem 'google-protobuf', '= 3.5.1' gem 'toml-rb', '~> 0.3.15', require: false # Feature toggles -gem 'flipper', '~> 0.10.2' -gem 'flipper-active_record', '~> 0.10.2' +gem 'flipper', '~> 0.11.0' +gem 'flipper-active_record', '~> 0.11.0' +gem 'flipper-active_support_cache_store', '~> 0.11.0' # Structured logging gem 'lograge', '~> 0.5' gem 'grape_logging', '~> 1.7' -gem 'activerecord-nulldb-adapter' +# Asset synchronization +gem 'asset_sync', '~> 2.2.0' diff --git a/pkgs/applications/version-management/gitlab/Gemfile.lock b/pkgs/applications/version-management/gitlab/Gemfile.lock index c8915e9172c5..22c4fc0ef280 100644 --- a/pkgs/applications/version-management/gitlab/Gemfile.lock +++ b/pkgs/applications/version-management/gitlab/Gemfile.lock @@ -33,8 +33,6 @@ GEM activemodel (= 4.2.10) activesupport (= 4.2.10) arel (~> 6.0) - activerecord-nulldb-adapter (0.3.7) - activerecord (>= 2.0.0) activerecord_sane_schema_dumper (0.2) rails (>= 4, < 5) activesupport (4.2.10) @@ -60,6 +58,11 @@ GEM asciidoctor (1.5.3) asciidoctor-plantuml (0.0.7) asciidoctor (~> 1.5) + asset_sync (2.2.0) + activemodel (>= 4.1.0) + fog-core + mime-types (>= 2.99) + unf ast (2.3.0) atomic (1.1.99) attr_encrypted (3.0.3) @@ -75,7 +78,7 @@ GEM thread_safe (~> 0.3, >= 0.3.1) babosa (1.0.2) base32 (0.3.2) - batch-loader (1.1.1) + batch-loader (1.2.1) bcrypt (3.1.11) bcrypt_pbkdf (1.0.0) benchmark-ips (2.3.0) @@ -192,10 +195,10 @@ GEM excon (0.57.1) execjs (2.6.0) expression_parser (0.9.0) - factory_girl (4.7.0) + factory_bot (4.8.2) activesupport (>= 3.0.0) - factory_girl_rails (4.7.0) - factory_girl (~> 4.7.0) + factory_bot_rails (4.8.2) + factory_bot (~> 4.8.2) railties (>= 3.0.0) faraday (0.12.2) multipart-post (>= 1.2, < 3) @@ -204,18 +207,22 @@ GEM faraday_middleware-multi_json (0.0.6) faraday_middleware multi_json + fast_blank (1.0.0) fast_gettext (1.4.0) ffaker (2.4.0) ffi (1.9.18) - flay (2.8.1) + flay (2.10.0) erubis (~> 2.7.0) path_expander (~> 1.0) ruby_parser (~> 3.0) sexp_processor (~> 4.0) - flipper (0.10.2) - flipper-active_record (0.10.2) + flipper (0.11.0) + flipper-active_record (0.11.0) activerecord (>= 3.2, < 6) - flipper (~> 0.10.2) + flipper (~> 0.11.0) + flipper-active_support_cache_store (0.11.0) + activesupport (>= 3.2, < 6) + flipper (~> 0.11.0) flowdock (0.7.1) httparty (~> 0.7) multi_json @@ -278,7 +285,7 @@ GEM po_to_json (>= 1.0.0) rails (>= 3.2.0) gherkin-ruby (0.3.2) - gitaly-proto (0.59.0) + gitaly-proto (0.84.0) google-protobuf (~> 3.1) grpc (~> 1.0) github-linguist (4.7.6) @@ -297,6 +304,10 @@ GEM mime-types (>= 1.16) posix-spawn (~> 0.3) gitlab-markup (1.6.3) + gitlab-styles (2.3.2) + rubocop (~> 0.51) + rubocop-gitlab-security (~> 0.1.0) + rubocop-rspec (~> 1.19) gitlab_omniauth-ldap (2.0.4) net-ldap (~> 0.16) omniauth (~> 1.3) @@ -329,7 +340,9 @@ GEM mime-types (~> 3.0) representable (~> 3.0) retriable (>= 2.0, < 4.0) - google-protobuf (3.4.1.1) + google-protobuf (3.5.1) + googleapis-common-protos-types (1.0.1) + google-protobuf (~> 3.0) googleauth (0.5.3) faraday (~> 0.12) jwt (~> 1.4) @@ -356,9 +369,10 @@ GEM rake grape_logging (1.7.0) grape - grpc (1.4.5) + grpc (1.8.3) google-protobuf (~> 3.1) - googleauth (~> 0.5.1) + googleapis-common-protos-types (~> 1.0.0) + googleauth (>= 0.5.1, < 0.7) haml (4.0.7) tilt haml_lint (0.26.0) @@ -495,11 +509,11 @@ GEM mustermann (1.0.0) mustermann-grape (1.0.0) mustermann (~> 1.0.0) - mysql2 (0.4.5) + mysql2 (0.4.10) net-ldap (0.16.0) net-ssh (4.1.0) netrc (0.11.0) - nokogiri (1.8.1) + nokogiri (1.8.2) mini_portile2 (~> 2.3.0) numerizer (0.1.1) oauth (0.5.1) @@ -569,14 +583,12 @@ GEM rubypants (~> 0.2) orm_adapter (0.5.0) os (0.9.6) - parallel (1.12.0) - paranoia (2.3.1) - activerecord (>= 4.0, < 5.2) + parallel (1.12.1) parser (2.4.0.2) ast (~> 2.3) parslet (1.5.0) blankslate (~> 2.0) - path_expander (1.0.1) + path_expander (1.0.2) peek (1.0.1) concurrent-ruby (>= 0.9.0) concurrent-ruby-ext (>= 0.9.0) @@ -624,7 +636,7 @@ GEM parser unparser procto (0.0.3) - prometheus-client-mmap (0.7.0.beta43) + prometheus-client-mmap (0.9.1) pry (0.10.4) coderay (~> 1.1.0) method_source (~> 0.8.1) @@ -641,7 +653,7 @@ GEM rack (>= 0.4) rack-attack (4.4.1) rack - rack-cors (0.4.0) + rack-cors (1.0.2) rack-oauth2 (1.2.3) activesupport (>= 2.3) attr_required (>= 0.0.5) @@ -685,6 +697,9 @@ GEM rake raindrops (0.18.0) rake (12.3.0) + rb-fsevent (0.10.2) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) rblineprof (0.3.6) debugger-ruby_core_source (~> 1.3) rbnacl (4.0.2) @@ -698,7 +713,7 @@ GEM json recursive-open-struct (1.0.0) redcarpet (3.4.0) - redis (3.3.3) + redis (3.3.5) redis-actionpack (5.0.2) actionpack (>= 4.0, < 6) redis-rack (>= 1, < 3) @@ -771,21 +786,21 @@ GEM pg rails sqlite3 - rubocop (0.49.1) + rubocop (0.52.1) parallel (~> 1.10) - parser (>= 2.3.3.1, < 3.0) + parser (>= 2.4.0.2, < 3.0) powerpack (~> 0.1) - rainbow (>= 1.99.1, < 3.0) + rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (~> 1.0, >= 1.0.1) - rubocop-gitlab-security (0.1.0) - rubocop (>= 0.47.1) - rubocop-rspec (1.15.1) - rubocop (>= 0.42.0) + rubocop-gitlab-security (0.1.1) + rubocop (>= 0.51) + rubocop-rspec (1.22.1) + rubocop (>= 0.52.1) ruby-fogbugz (0.2.1) crack (~> 0.4) ruby-prof (0.16.2) - ruby-progressbar (1.8.1) + ruby-progressbar (1.9.0) ruby-saml (1.4.1) nokogiri (>= 1.5.10) ruby_parser (3.9.0) @@ -799,7 +814,11 @@ GEM safe_yaml (1.0.4) sanitize (2.1.0) nokogiri (>= 1.4.4) - sass (3.4.22) + sass (3.5.5) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) sass-rails (5.0.6) railties (>= 4.0.0, < 6) sass (~> 3.1) @@ -809,11 +828,11 @@ GEM sawyer (0.8.1) addressable (>= 2.3.5, < 2.6) faraday (~> 0.8, < 1.0) - scss_lint (0.54.0) + scss_lint (0.56.0) rake (>= 0.9, < 13) - sass (~> 3.4.20) + sass (~> 3.5.3) securecompare (1.0.0) - seed-fu (2.3.6) + seed-fu (2.3.7) activerecord (>= 3.1) activesupport (>= 3.1) select2-rails (3.5.9.3) @@ -829,11 +848,11 @@ GEM rack shoulda-matchers (3.1.2) activesupport (>= 4.0.0) - sidekiq (5.0.4) + sidekiq (5.0.5) concurrent-ruby (~> 1.0) connection_pool (~> 2.2, >= 2.2.0) rack-protection (>= 1.5.0) - redis (~> 3.3, >= 3.3.3) + redis (>= 3.3.4, < 5) sidekiq-cron (0.6.0) rufus-scheduler (>= 3.3.0) sidekiq (>= 4.2.1) @@ -969,7 +988,6 @@ PLATFORMS DEPENDENCIES RedCloth (~> 4.3.2) ace-rails-ap (~> 4.1.0) - activerecord-nulldb-adapter activerecord_sane_schema_dumper (= 0.2) acts-as-taggable-on (~> 4.0) addressable (~> 2.5.2) @@ -978,11 +996,12 @@ DEPENDENCIES asana (~> 0.6.0) asciidoctor (~> 1.5.2) asciidoctor-plantuml (= 0.0.7) + asset_sync (~> 2.2.0) attr_encrypted (~> 3.0.0) awesome_print (~> 1.2.0) babosa (~> 1.0.2) base32 (~> 0.3.0) - batch-loader + batch-loader (~> 1.2.1) bcrypt_pbkdf (~> 1.0) benchmark-ips (~> 2.3.0) better_errors (~> 2.1.0) @@ -1014,12 +1033,14 @@ DEPENDENCIES dropzonejs-rails (~> 0.7.1) email_reply_trimmer (~> 0.1) email_spec (~> 1.6.0) - factory_girl_rails (~> 4.7.0) + factory_bot_rails (~> 4.8.2) faraday (~> 0.12) + fast_blank ffaker (~> 2.4) - flay (~> 2.8.0) - flipper (~> 0.10.2) - flipper-active_record (~> 0.10.2) + flay (~> 2.10.0) + flipper (~> 0.11.0) + flipper-active_record (~> 0.11.0) + flipper-active_support_cache_store (~> 0.11.0) fog-aliyun (~> 0.2.0) fog-aws (~> 1.4) fog-core (~> 1.44) @@ -1035,15 +1056,17 @@ DEPENDENCIES gettext (~> 3.2.2) gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails_js (~> 1.2.0) - gitaly-proto (~> 0.59.0) + gitaly-proto (~> 0.84.0) github-linguist (~> 4.7.0) gitlab-flowdock-git-hook (~> 1.0.1) gitlab-markup (~> 1.6.2) + gitlab-styles (~> 2.3) gitlab_omniauth-ldap (~> 2.0.4) gollum-lib (~> 4.2) gollum-rugged_adapter (~> 0.4.4) gon (~> 6.1.0) google-api-client (~> 0.13.6) + google-protobuf (= 3.5.1) gpgme grape (~> 1.0) grape-entity (~> 0.6.0) @@ -1075,10 +1098,10 @@ DEPENDENCIES method_source (~> 0.8) minitest (~> 5.7.0) mousetrap-rails (~> 1.4.6) - mysql2 (~> 0.4.5) + mysql2 (~> 0.4.10) net-ldap net-ssh (~> 4.1.0) - nokogiri (~> 1.8.1) + nokogiri (~> 1.8.2) oauth2 (~> 1.4) octokit (~> 4.6.2) oj (~> 2.17.4) @@ -1098,7 +1121,6 @@ DEPENDENCIES omniauth-twitter (~> 1.2.0) omniauth_crowd (~> 2.2.0) org-ruby (~> 0.9.12) - paranoia (~> 2.3.1) peek (~> 1.0.1) peek-gc (~> 0.0.2) peek-host (~> 1.0.0) @@ -1110,11 +1132,11 @@ DEPENDENCIES peek-sidekiq (~> 1.0.3) pg (~> 0.18.2) premailer-rails (~> 1.9.7) - prometheus-client-mmap (~> 0.7.0.beta43) + prometheus-client-mmap (~> 0.9.1) pry-byebug (~> 3.4.1) pry-rails (~> 0.3.4) rack-attack (~> 4.4.1) - rack-cors (~> 0.4.0) + rack-cors (~> 1.0.0) rack-oauth2 (~> 1.2.1) rack-proxy (~> 0.6.0) rails (= 4.2.10) @@ -1141,9 +1163,8 @@ DEPENDENCIES rspec-retry (~> 0.4.5) rspec-set (~> 0.1.3) rspec_profiling (~> 0.0.5) - rubocop (~> 0.49.1) - rubocop-gitlab-security (~> 0.1.0) - rubocop-rspec (~> 1.15.1) + rubocop (~> 0.52.1) + rubocop-rspec (~> 1.22.1) ruby-fogbugz (~> 0.2.1) ruby-prof (~> 0.16.2) ruby_parser (~> 3.8) @@ -1151,8 +1172,8 @@ DEPENDENCIES rugged (~> 0.26.0) sanitize (~> 2.0) sass-rails (~> 5.0.6) - scss_lint (~> 0.54.0) - seed-fu (= 2.3.6) + scss_lint (~> 0.56.0) + seed-fu (~> 2.3.7) select2-rails (~> 3.5.9) selenium-webdriver (~> 3.5) sentry-raven (~> 2.5.3) @@ -1194,4 +1215,4 @@ DEPENDENCIES wikicloth (= 0.8.1) BUNDLED WITH - 1.16.0 + 1.16.1 diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix index d13e61395827..0d736188f084 100644 --- a/pkgs/applications/version-management/gitlab/default.nix +++ b/pkgs/applications/version-management/gitlab/default.nix @@ -18,11 +18,11 @@ let }; }; - version = "10.3.4"; + version = "10.5.4"; gitlabDeb = fetchurl { url = "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/jessie/gitlab-ce_${version}-ce.0_amd64.deb/download"; - sha256 = "0b6508hcahvhfpxyrqs05kz9a7c1wv658asm6a7ccish6hnwcica"; + sha256 = "1fsz2rdfcb1a2a2jwl8009r8ldi1rg8rj07751lgwy52jdp1ihka"; }; in @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { owner = "gitlabhq"; repo = "gitlabhq"; rev = "v${version}"; - sha256 = "0cvp4wwkc04qffsq738867j31igwzj7zlmahdl24yddbmpa5x8r1"; + sha256 = "1glvqzbspaw88nwmgpxvkz52a4pz3wp3h5xs1f9kc32k2vh384nz"; }; buildInputs = [ diff --git a/pkgs/applications/version-management/gitlab/gemset.nix b/pkgs/applications/version-management/gitlab/gemset.nix index fe861e143046..68d6e7304df1 100644 --- a/pkgs/applications/version-management/gitlab/gemset.nix +++ b/pkgs/applications/version-management/gitlab/gemset.nix @@ -69,15 +69,6 @@ }; version = "4.2.10"; }; - activerecord-nulldb-adapter = { - dependencies = ["activerecord"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1dxk26drn3s0mpyk8ir30k1pg5fqndrnsdjkkncn0acylq4ja27z"; - type = "gem"; - }; - version = "0.3.7"; - }; activerecord_sane_schema_dumper = { dependencies = ["rails"]; source = { @@ -173,6 +164,15 @@ }; version = "0.0.7"; }; + asset_sync = { + dependencies = ["activemodel" "fog-core" "mime-types" "unf"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "044nqqnbib1bpld33j5jxcql06d6fr6zmhq8hlm69zqd0xd509p0"; + type = "gem"; + }; + version = "2.2.0"; + }; ast = { source = { remotes = ["https://rubygems.org"]; @@ -251,10 +251,10 @@ batch-loader = { source = { remotes = ["https://rubygems.org"]; - sha256 = "1w4ysjfh74612wsgdnnaq3xqw25hzsr6ajb5syiv1ix7fi15y8bv"; + sha256 = "1nvmwzn8q6dkp2n8wz47z7gldj3yrj7h6syy0cwrkzi19bfvxba2"; type = "gem"; }; - version = "1.1.1"; + version = "1.2.1"; }; bcrypt = { source = { @@ -803,23 +803,23 @@ }; version = "0.9.0"; }; - factory_girl = { + factory_bot = { dependencies = ["activesupport"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "1xzl4z9z390fsnyxp10c9if2n46zan3n6zwwpfnwc33crv4s410i"; + sha256 = "0r975ba6y0mcy3aya099gpnjn5gf1h6fbw8f3smmjay5zvin3nwx"; type = "gem"; }; - version = "4.7.0"; + version = "4.8.2"; }; - factory_girl_rails = { - dependencies = ["factory_girl" "railties"]; + factory_bot_rails = { + dependencies = ["factory_bot" "railties"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "0hzpirb33xdqaz44i1mbcfv0icjrghhgaz747llcfsflljd4pa4r"; + sha256 = "0cdbp12ih2w77l331frv8gv6bv9dinn1663dy1jn0gb9ss1hwvs2"; type = "gem"; }; - version = "4.7.0"; + version = "4.8.2"; }; faraday = { dependencies = ["multipart-post"]; @@ -848,6 +848,14 @@ }; version = "0.0.6"; }; + fast_blank = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56"; + type = "gem"; + }; + version = "1.0.0"; + }; fast_gettext = { source = { remotes = ["https://rubygems.org"]; @@ -876,27 +884,36 @@ dependencies = ["erubis" "path_expander" "ruby_parser" "sexp_processor"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "1x563gyx292ka3awps6h6hmswqf71zdxnzw0pfv6p2mhd2zwxaba"; + sha256 = "0rzggr9w6z2jvs3mv0bp7d64yjivpp93ww9g4j9azzcfjqnh9hn3"; type = "gem"; }; - version = "2.8.1"; + version = "2.10.0"; }; flipper = { source = { remotes = ["https://rubygems.org"]; - sha256 = "1gbvd4j0rkr7qc3mnjdw4r9p6lffnwv7rvm1cyr8a0avjky34n8p"; + sha256 = "0j3zn54x0a6vvjmyhggl992df7zpcrhzv9ibr6af5gkcx502pg87"; type = "gem"; }; - version = "0.10.2"; + version = "0.11.0"; }; flipper-active_record = { dependencies = ["activerecord" "flipper"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "053lq791z8bf3xv6kb14nq3yrzjpmlyhzq3kvys978dc8yw78ld7"; + sha256 = "0bm1wh1nrl6zbrcqk1nyqbrpddd5fvi72jyqv1j7y2df5sqwfj91"; type = "gem"; }; - version = "0.10.2"; + version = "0.11.0"; + }; + flipper-active_support_cache_store = { + dependencies = ["activesupport" "flipper"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18w11dmby55cyd4azic1nsb7h632y6nx3ka8ndlrd1g6g28afvfb"; + type = "gem"; + }; + version = "0.11.0"; }; flowdock = { dependencies = ["httparty" "multi_json"]; @@ -1088,10 +1105,10 @@ dependencies = ["google-protobuf" "grpc"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "0s86126iqhbmkix6zs357ixlc1syyxmwk2blaimsav7f0x9swy82"; + sha256 = "05ql75gbcw8px03y4pjvbnfy272mh68777f4m3sfajr1jjjp4lw8"; type = "gem"; }; - version = "0.59.0"; + version = "0.84.0"; }; github-linguist = { dependencies = ["charlock_holmes" "escape_utils" "mime-types" "rugged"]; @@ -1136,6 +1153,15 @@ }; version = "1.6.3"; }; + gitlab-styles = { + dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-rspec"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m0ihbp7kjis03pcdx5310j7nzsxh22hfailnz0j467zab9jiap0"; + type = "gem"; + }; + version = "2.3.2"; + }; gitlab_omniauth-ldap = { dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"]; source = { @@ -1202,10 +1228,19 @@ google-protobuf = { source = { remotes = ["https://rubygems.org"]; - sha256 = "1l9b2f4msp1gkay2mqjbjs7kfhchf916zh1y365singiysrwn2i6"; + sha256 = "0s8ijd9wdrkqwsb6nasrsv7f9i5im2nyax7f7jlb5y9vh8nl98qi"; type = "gem"; }; - version = "3.4.1.1"; + version = "3.5.1"; + }; + googleapis-common-protos-types = { + dependencies = ["google-protobuf"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yf10s7w8wpa49hc86z7z2fkn9yz7j2njz0n8xmqb24ji090z4ck"; + type = "gem"; + }; + version = "1.0.1"; }; googleauth = { dependencies = ["faraday" "jwt" "logging" "memoist" "multi_json" "os" "signet"]; @@ -1262,13 +1297,13 @@ version = "1.7.0"; }; grpc = { - dependencies = ["google-protobuf" "googleauth"]; + dependencies = ["google-protobuf" "googleapis-common-protos-types" "googleauth"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "1zhci260088zlghpaz6ania1blz1dd7lgklsjnqk1vcymhpr6b38"; + sha256 = "0fpbxzqacmc78m7whbv3vyfsfyk3cnfbppsy4789mwrlnbnfnp1j"; type = "gem"; }; - version = "1.4.5"; + version = "1.8.3"; }; haml = { dependencies = ["tilt"]; @@ -1803,10 +1838,10 @@ mysql2 = { source = { remotes = ["https://rubygems.org"]; - sha256 = "1kh96xp396swyaddz5l2zqjxi3cvyqv62scak9b3f98j14ynfscl"; + sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq"; type = "gem"; }; - version = "0.4.5"; + version = "0.4.10"; }; net-ldap = { source = { @@ -1836,10 +1871,10 @@ dependencies = ["mini_portile2"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "105xh2zkr8nsyfaj2izaisarpnkrrl9000y3nyflg9cbzrfxv021"; + sha256 = "05fm3xh462glvs0rwnfmc1spmgl4ljg2giifynbmwwqvl42zaaiq"; type = "gem"; }; - version = "1.8.1"; + version = "1.8.2"; }; numerizer = { source = { @@ -2073,19 +2108,10 @@ parallel = { source = { remotes = ["https://rubygems.org"]; - sha256 = "0qv2yj4sxr36ga6xdxvbq9h05hn10bwcbkqv6j6q1fiixhsdnnzd"; + sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67"; type = "gem"; }; - version = "1.12.0"; - }; - paranoia = { - dependencies = ["activerecord"]; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1ibdga0a0px8rf82qnmgm59z3z4s27r11i2i24087f0yh8z8bd7z"; - type = "gem"; - }; - version = "2.3.1"; + version = "1.12.1"; }; parser = { dependencies = ["ast"]; @@ -2108,10 +2134,10 @@ path_expander = { source = { remotes = ["https://rubygems.org"]; - sha256 = "0hklnfb0br6mx6l25zknz2zj6r152i0jiy6fn6ki220x0l5m2h59"; + sha256 = "0wsymhprfjazdkmfv02kski3iwjjkciwxqjg9brh56sbymcgk34a"; type = "gem"; }; - version = "1.0.1"; + version = "1.0.2"; }; peek = { dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "railties"]; @@ -2265,10 +2291,10 @@ prometheus-client-mmap = { source = { remotes = ["https://rubygems.org"]; - sha256 = "1wpk9zfbr7c1asvnq1v6jmc3ydbl8y17v24cj4vyhy3nkpds0cij"; + sha256 = "1p3xkk9zal95di5v999mk7sq02fk0fimg633ixvhvv70ph6c8dhn"; type = "gem"; }; - version = "0.7.0.beta43"; + version = "0.9.1"; }; pry = { dependencies = ["coderay" "method_source" "slop"]; @@ -2342,10 +2368,10 @@ rack-cors = { source = { remotes = ["https://rubygems.org"]; - sha256 = "1sz9d9gjmv2vjl3hddzk269hb1k215k8sp37gicphx82h3chk1kw"; + sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013"; type = "gem"; }; - version = "0.4.0"; + version = "1.0.2"; }; rack-oauth2 = { dependencies = ["activesupport" "attr_required" "httpclient" "multi_json" "rack"]; @@ -2462,6 +2488,23 @@ }; version = "12.3.0"; }; + rb-fsevent = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf"; + type = "gem"; + }; + version = "0.10.2"; + }; + rb-inotify = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71"; + type = "gem"; + }; + version = "0.9.10"; + }; rblineprof = { dependencies = ["debugger-ruby_core_source"]; source = { @@ -2542,10 +2585,10 @@ redis = { source = { remotes = ["https://rubygems.org"]; - sha256 = "0kdj7511l6kqvqmaiw7kw604c83pk6f4b540gdsq1bf7yxm6qx6g"; + sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv"; type = "gem"; }; - version = "3.3.3"; + version = "3.3.5"; }; redis-actionpack = { dependencies = ["actionpack" "redis-rack" "redis-store"]; @@ -2778,28 +2821,28 @@ dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "1mqyylfzch0967w7nfnqza84sqhljijd9y4bnq8hcmrscch75cxw"; + sha256 = "0d22rr1jnjfkw10rbnqb8plyd7kzf553nm3sbv14xil65s4mkijf"; type = "gem"; }; - version = "0.49.1"; + version = "0.52.1"; }; rubocop-gitlab-security = { dependencies = ["rubocop"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "0aw9qmyc6xj6fi0jxp8m4apk358rd91z492ragn6jp4rghkqj5cy"; + sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln"; type = "gem"; }; - version = "0.1.0"; + version = "0.1.1"; }; rubocop-rspec = { dependencies = ["rubocop"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "16qgakivl2vqbx82fm78999cximbb10jbz3ix1ga4a2rns5xxlf3"; + sha256 = "18rd3w2q07vkfdk9nl8apkpyjfw1478qg82zgfnd4hn3r40jkbcx"; type = "gem"; }; - version = "1.15.1"; + version = "1.22.1"; }; ruby-fogbugz = { dependencies = ["crack"]; @@ -2821,10 +2864,10 @@ ruby-progressbar = { source = { remotes = ["https://rubygems.org"]; - sha256 = "1qzc7s7r21bd7ah06kskajc2bjzkr9y0v5q48y0xwh2l55axgplm"; + sha256 = "1igh1xivf5h5g3y5m9b4i4j2mhz2r43kngh4ww3q1r80ch21nbfk"; type = "gem"; }; - version = "1.8.1"; + version = "1.9.0"; }; ruby-saml = { dependencies = ["nokogiri"]; @@ -2903,12 +2946,22 @@ version = "2.1.0"; }; sass = { + dependencies = ["sass-listen"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "0dkj6v26fkg1g0majqswwmhxva7cd6p3psrhdlx93qal72dssywy"; + sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v"; type = "gem"; }; - version = "3.4.22"; + version = "3.5.5"; + }; + sass-listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"; + type = "gem"; + }; + version = "4.0.0"; }; sass-rails = { dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"]; @@ -2932,10 +2985,10 @@ dependencies = ["rake" "sass"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "01lwbrz7637j79jkm6yaq4wsd4cqgzn0r74whn85v7j9dir73l98"; + sha256 = "01bfkrjn1i0hfg1ifwn1rs7vqwdbdw158krwr5fm6iasd9zgl10g"; type = "gem"; }; - version = "0.54.0"; + version = "0.56.0"; }; securecompare = { source = { @@ -2949,10 +3002,10 @@ dependencies = ["activerecord" "activesupport"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "1nkp1pvkdydclbl2v4qf9cixmiycvlqnrgxd61sv9r85spb01z3p"; + sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi"; type = "gem"; }; - version = "2.3.6"; + version = "2.3.7"; }; select2-rails = { dependencies = ["thor"]; @@ -3019,10 +3072,10 @@ dependencies = ["concurrent-ruby" "connection_pool" "rack-protection" "redis"]; source = { remotes = ["https://rubygems.org"]; - sha256 = "0nazi3a9aq7c7cxk749qz9ilp7dv39r9n3zsbjg4frc96bb85s9w"; + sha256 = "0mmmv6k4l5rd74zw4xmwsadi0pbbcyzk1cm73zd8fzwra6nfz7sh"; type = "gem"; }; - version = "5.0.4"; + version = "5.0.5"; }; sidekiq-cron = { dependencies = ["rufus-scheduler" "sidekiq"]; @@ -3537,4 +3590,4 @@ }; version = "2.1.0"; }; -} +} \ No newline at end of file diff --git a/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch index acc615c63ca5..7a2bfea0c109 100644 --- a/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch +++ b/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch @@ -1,8 +1,8 @@ diff --git a/config/environments/production.rb b/config/environments/production.rb -index c5cbfcf64c..e40f10e25f 100644 +index c5cbfcf64c..4d01f6fab8 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb -@@ -70,14 +70,16 @@ Rails.application.configure do +@@ -70,10 +70,10 @@ Rails.application.configure do config.action_mailer.delivery_method = :sendmail # Defaults to: @@ -11,23 +11,17 @@ index c5cbfcf64c..e40f10e25f 100644 - # # arguments: '-i -t' - # # } + config.action_mailer.sendmail_settings = { -+ location: '/run/wrappers/bin/sendmail', ++ location: '/usr/sbin/sendmail', + arguments: '-i -t' + } config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true - config.eager_load = true - - config.allow_concurrency = false -+ -+ config.active_record.dump_schema_after_migration = false - end diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example -index 0b33783869..cd4e41d9bd 100644 +index bd696a7f2c..44e3863736 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example -@@ -574,7 +574,7 @@ production: &base +@@ -590,7 +590,7 @@ production: &base # CAUTION! # Use the default values unless you really know what you are doing git: @@ -37,10 +31,10 @@ index 0b33783869..cd4e41d9bd 100644 ## Webpack settings # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb -index 8ddf8e4d2e..559cf9adf7 100644 +index 0bea8a4f4b..290248547b 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb -@@ -252,7 +252,7 @@ Settings.gitlab['user'] ||= 'git' +@@ -255,7 +255,7 @@ Settings.gitlab['user'] ||= 'git' Settings.gitlab['user_home'] ||= begin Etc.getpwnam(Settings.gitlab['user']).dir rescue ArgumentError # no user configured @@ -49,7 +43,7 @@ index 8ddf8e4d2e..559cf9adf7 100644 end Settings.gitlab['time_zone'] ||= nil Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil? -@@ -491,7 +491,7 @@ Settings.backup['upload']['storage_class'] ||= nil +@@ -507,7 +507,7 @@ Settings.backup['upload']['storage_class'] ||= nil # Git # Settings['git'] ||= Settingslogic.new({}) @@ -58,29 +52,42 @@ index 8ddf8e4d2e..559cf9adf7 100644 # Important: keep the satellites.path setting until GitLab 9.0 at # least. This setting is fed to 'rm -rf' in +diff --git a/lib/api/api.rb b/lib/api/api.rb +index e953f3d2ec..3a8d9f076b 100644 +--- a/lib/api/api.rb ++++ b/lib/api/api.rb +@@ -2,7 +2,7 @@ module API + class API < Grape::API + include APIGuard + +- LOG_FILENAME = Rails.root.join("log", "api_json.log") ++ LOG_FILENAME = File.join(ENV["GITLAB_LOG_PATH"], "api_json.log") + + NO_SLASH_URL_PART_REGEX = %r{[^/]+} + PROJECT_ENDPOINT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb -index 59b21149a9..4f4a39a06c 100644 +index a42e312b5d..ccaab9229e 100644 --- a/lib/gitlab/logger.rb +++ b/lib/gitlab/logger.rb -@@ -26,7 +26,7 @@ +@@ -26,7 +26,7 @@ module Gitlab end def self.full_log_path - Rails.root.join("log", file_name) -+ File.join(ENV["GITLAB_LOG_PATH"], file_name) ++ File.join(ENV["GITLAB_LOG_PATH"], file_name) end def self.cache_key diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb -index b5f4124052..f72c556983 100644 +index 7d7400bdab..cb25211d44 100644 --- a/lib/gitlab/uploads_transfer.rb +++ b/lib/gitlab/uploads_transfer.rb @@ -1,7 +1,7 @@ module Gitlab class UploadsTransfer < ProjectTransfer def root_dir -- File.join(CarrierWave.root, FileUploader.base_dir) -+ ENV['GITLAB_UPLOADS_PATH'] || File.join(CarrierWave.root, FileUploader.base_dir) +- FileUploader.root ++ ENV['GITLAB_UPLOADS_PATH'] || FileUploader.root end end end @@ -98,7 +105,7 @@ index 3e0c436d6e..28cefc5514 100644 end end diff --git a/lib/system_check/app/uploads_directory_exists_check.rb b/lib/system_check/app/uploads_directory_exists_check.rb -index 7026d0ba07..6d88b8b9fb 100644 +index 7026d0ba07..c56e1f7ed9 100644 --- a/lib/system_check/app/uploads_directory_exists_check.rb +++ b/lib/system_check/app/uploads_directory_exists_check.rb @@ -4,12 +4,13 @@ module SystemCheck @@ -113,7 +120,7 @@ index 7026d0ba07..6d88b8b9fb 100644 + uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads') try_fixing_it( - "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads" -+ "sudo -u #{gitlab_user} mkdir #{uploads_dir}" ++ "sudo -u #{gitlab_user} mkdir #{uploads_dir}" ) for_more_information( see_installation_guide_section 'GitLab' @@ -143,14 +150,3 @@ index b276a81eac..070e3ebd81 100644 end end end ---- a/lib/api/api.rb 1970-01-01 01:00:01.000000000 +0100 -+++ b/lib/api/api.rb 2017-09-28 19:37:24.953605705 +0200 -@@ -2,7 +2,7 @@ - class API < Grape::API - include APIGuard - -- LOG_FILENAME = Rails.root.join("log", "api_json.log") -+ LOG_FILENAME = File.join(ENV["GITLAB_LOG_PATH"], "api_json.log") - - use GrapeLogging::Middleware::RequestLogger, - logger: Logger.new(LOG_FILENAME),