From 6197c8529813b07da2b346c125142854c35e900d Mon Sep 17 00:00:00 2001 From: j-bauer Date: Thu, 22 Aug 2024 11:48:43 +0200 Subject: [PATCH] Patch fix 17.3 (#29) * Adding patches for GL-version 17.3 * Adding actual new patch for 17.3. * add support for 17.3.1 & LFS patches --------- Co-authored-by: Julian Weidhase --- scripts/17.3.0-ee.0/patch.sh | 16 +++++++++ .../17.3.0-ee.0/patches/_head.html.haml.patch | 9 +++++ scripts/17.3.0-ee.0/patches/add-arc-js.sh | 19 ++++++++++ .../17.3.0-ee.0/patches/lfs_token.rb.patch | 11 ++++++ .../patches/project_template.rb.patch | 10 ++++++ .../17.3.0-ee.0/patches/show.html.haml.patch | 35 +++++++++++++++++++ scripts/17.3.1-ee.0/patch.sh | 16 +++++++++ .../17.3.1-ee.0/patches/_head.html.haml.patch | 9 +++++ scripts/17.3.1-ee.0/patches/add-arc-js.sh | 19 ++++++++++ ...rwave_s3_encryption_headers_patch.rb.patch | 11 ++++++ .../patches/direct_upload.rb.patch | 19 ++++++++++ .../17.3.1-ee.0/patches/lfs_token.rb.patch | 11 ++++++ .../patches/project_template.rb.patch | 10 ++++++ .../17.3.1-ee.0/patches/show.html.haml.patch | 35 +++++++++++++++++++ scripts/latest | 2 +- 15 files changed, 231 insertions(+), 1 deletion(-) create mode 100755 scripts/17.3.0-ee.0/patch.sh create mode 100644 scripts/17.3.0-ee.0/patches/_head.html.haml.patch create mode 100755 scripts/17.3.0-ee.0/patches/add-arc-js.sh create mode 100644 scripts/17.3.0-ee.0/patches/lfs_token.rb.patch create mode 100644 scripts/17.3.0-ee.0/patches/project_template.rb.patch create mode 100644 scripts/17.3.0-ee.0/patches/show.html.haml.patch create mode 100755 scripts/17.3.1-ee.0/patch.sh create mode 100644 scripts/17.3.1-ee.0/patches/_head.html.haml.patch create mode 100755 scripts/17.3.1-ee.0/patches/add-arc-js.sh create mode 100644 scripts/17.3.1-ee.0/patches/carrierwave_s3_encryption_headers_patch.rb.patch create mode 100644 scripts/17.3.1-ee.0/patches/direct_upload.rb.patch create mode 100644 scripts/17.3.1-ee.0/patches/lfs_token.rb.patch create mode 100644 scripts/17.3.1-ee.0/patches/project_template.rb.patch create mode 100644 scripts/17.3.1-ee.0/patches/show.html.haml.patch diff --git a/scripts/17.3.0-ee.0/patch.sh b/scripts/17.3.0-ee.0/patch.sh new file mode 100755 index 0000000..c22d5b0 --- /dev/null +++ b/scripts/17.3.0-ee.0/patch.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +set -ex + +find /opt/gitlab/embedded/service/gitlab-rails/app/views/profiles/ +ls -la /opt/gitlab/embedded/service/gitlab-rails/app/views/profiles/accounts/show.html.haml +ls -la /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/project_template.rb + +for patch in /scripts/patches/*.patch; do + patch -p0 < "$patch" +done + + +for script in /scripts/patches/*.sh; do + "$script" +done diff --git a/scripts/17.3.0-ee.0/patches/_head.html.haml.patch b/scripts/17.3.0-ee.0/patches/_head.html.haml.patch new file mode 100644 index 0000000..1120248 --- /dev/null +++ b/scripts/17.3.0-ee.0/patches/_head.html.haml.patch @@ -0,0 +1,9 @@ +--- /opt/gitlab/embedded/service/gitlab-rails/app/views/explore/projects/_head.html.haml 2024-01-17 13:51:44.978361699 +0000 ++++ /opt/gitlab/embedded/service/gitlab-rails/app/views/explore/projects/_head.html.haml 2024-01-17 13:51:14.477881902 +0000 +@@ -1,5 +1,5 @@ + - breadcrumb_title _("Projects") +-- page_title _("Explore projects") ++- page_title _("Explore ARCs") + + = render_dashboard_ultimate_trial(current_user) + diff --git a/scripts/17.3.0-ee.0/patches/add-arc-js.sh b/scripts/17.3.0-ee.0/patches/add-arc-js.sh new file mode 100755 index 0000000..f9c6bd7 --- /dev/null +++ b/scripts/17.3.0-ee.0/patches/add-arc-js.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +set -e + +set -- /opt/gitlab/embedded/service/gitlab-rails/public/assets/webpack/pages.projects.imports.new.*.chunk.js + +# exit if above's glob matches nothing or more than 1 file +[ -e "$1" ] && [ "$#" = "1" ] + +# the mighty "patch" +sed -Ei.bak \ + 's/sample:(\{text:Object\([^)]+\))/arc:\1("ProjectTemplates|ARC"),icon:".template-option .icon-gitlab_logo"},&/' \ + "$1" + +# needs to be gzip'ed too +gzip -kf "$1" + +# print diffs to see what was done +diff -u "$1" "${1}.bak" || true diff --git a/scripts/17.3.0-ee.0/patches/lfs_token.rb.patch b/scripts/17.3.0-ee.0/patches/lfs_token.rb.patch new file mode 100644 index 0000000..8836591 --- /dev/null +++ b/scripts/17.3.0-ee.0/patches/lfs_token.rb.patch @@ -0,0 +1,11 @@ +--- /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/lfs_token.rb 2023-04-04 15:32:49.679168014 +0200 ++++ /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/lfs_token.rb 2023-04-04 12:52:34.978437027 +0200 +@@ -14,7 +14,7 @@ + + include LfsTokenHelper + +- DEFAULT_EXPIRE_TIME = 7200 # Default value 2 hours ++ DEFAULT_EXPIRE_TIME = 86400 # Default value was 2 hours (=7200) + + attr_accessor :actor + diff --git a/scripts/17.3.0-ee.0/patches/project_template.rb.patch b/scripts/17.3.0-ee.0/patches/project_template.rb.patch new file mode 100644 index 0000000..6cc1ed5 --- /dev/null +++ b/scripts/17.3.0-ee.0/patches/project_template.rb.patch @@ -0,0 +1,10 @@ +--- /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/project_template.rb 2023-04-04 15:34:11.873379730 +0200 ++++ /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/project_template.rb 2023-04-04 12:52:34.981770257 +0200 +@@ -53,6 +53,7 @@ + # rubocop:disable Metrics/AbcSize + def localized_templates_table + [ ++ ProjectTemplate.new('arc', 'ARC', _('Includes DataPLANT ARC structure'), 'https://gitlab.com/gitlab-org/project-templates/rails', '/assets/dataplant-arc.png'), + ProjectTemplate.new('rails', 'Ruby on Rails', _('Includes an MVC structure, Gemfile, Rakefile, along with many others, to help you get started'), 'https://gitlab.com/gitlab-org/project-templates/rails', 'illustrations/logos/rails.svg'), + ProjectTemplate.new('spring', 'Spring', _('Includes an MVC structure, mvnw and pom.xml to help you get started'), 'https://gitlab.com/gitlab-org/project-templates/spring', 'illustrations/logos/spring.svg'), + ProjectTemplate.new('express', 'NodeJS Express', _('Includes an MVC structure to help you get started'), 'https://gitlab.com/gitlab-org/project-templates/express', 'illustrations/logos/express.svg'), diff --git a/scripts/17.3.0-ee.0/patches/show.html.haml.patch b/scripts/17.3.0-ee.0/patches/show.html.haml.patch new file mode 100644 index 0000000..a0b707a --- /dev/null +++ b/scripts/17.3.0-ee.0/patches/show.html.haml.patch @@ -0,0 +1,35 @@ +--- /opt/gitlab/embedded/service/gitlab-rails/app/views/profiles/accounts/show.html.haml 2024-08-14 11:35:05.000000000 +0000 ++++ /opt/gitlab/embedded/service/gitlab-rails/app/views/profiles/accounts/show.html.haml 2024-08-19 10:54:58.134629851 +0000 +@@ -8,32 +8,6 @@ + - c.with_body do + = s_('Profiles|Some options are unavailable for LDAP accounts') + +-- if params[:two_factor_auth_enabled_successfully] +- = render Pajamas::AlertComponent.new(variant: :success, +- alert_options: { class: 'gl-my-5' }, +- close_button_options: { class: 'js-close-2fa-enabled-success-alert' }) do |c| +- - c.with_body do +- = html_escape(_('You have set up 2FA for your account! If you lose access to your 2FA device, you can use your recovery codes to access your account. Alternatively, if you upload an SSH key, you can %{anchorOpen}use that key to generate additional recovery codes%{anchorClose}.')) % { anchorOpen: ''.html_safe % { href: help_page_path('user/profile/account/two_factor_authentication_troubleshooting', anchor: 'generate-new-recovery-codes-using-ssh') }, anchorClose: ''.html_safe } +- +-.settings-section.js-search-settings-section +- .settings-sticky-header +- .settings-sticky-header-inner +- %h4.gl-my-0 +- = s_('Profiles|Two-factor authentication') +- %p.gl-text-secondary +- = s_("Profiles|Increase your account's security by enabling two-factor authentication (2FA).") +- %div +- %p +- %span.gl-font-bold +- #{_('Status')}: +- #{current_user.two_factor_enabled? ? _('Enabled') : _('Disabled')} +- - if current_user.two_factor_enabled? +- = render Pajamas::ButtonComponent.new(variant: :confirm, href: profile_two_factor_auth_path) do +- = _('Manage two-factor authentication') +- - else +- = render Pajamas::ButtonComponent.new(variant: :confirm, href: profile_two_factor_auth_path, button_options: { data: { testid: 'enable-2fa-button' }}) do +- = _('Enable two-factor authentication') +- + - if display_providers_on_profile? + .settings-section.js-search-settings-section + .settings-sticky-header diff --git a/scripts/17.3.1-ee.0/patch.sh b/scripts/17.3.1-ee.0/patch.sh new file mode 100755 index 0000000..c22d5b0 --- /dev/null +++ b/scripts/17.3.1-ee.0/patch.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +set -ex + +find /opt/gitlab/embedded/service/gitlab-rails/app/views/profiles/ +ls -la /opt/gitlab/embedded/service/gitlab-rails/app/views/profiles/accounts/show.html.haml +ls -la /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/project_template.rb + +for patch in /scripts/patches/*.patch; do + patch -p0 < "$patch" +done + + +for script in /scripts/patches/*.sh; do + "$script" +done diff --git a/scripts/17.3.1-ee.0/patches/_head.html.haml.patch b/scripts/17.3.1-ee.0/patches/_head.html.haml.patch new file mode 100644 index 0000000..1120248 --- /dev/null +++ b/scripts/17.3.1-ee.0/patches/_head.html.haml.patch @@ -0,0 +1,9 @@ +--- /opt/gitlab/embedded/service/gitlab-rails/app/views/explore/projects/_head.html.haml 2024-01-17 13:51:44.978361699 +0000 ++++ /opt/gitlab/embedded/service/gitlab-rails/app/views/explore/projects/_head.html.haml 2024-01-17 13:51:14.477881902 +0000 +@@ -1,5 +1,5 @@ + - breadcrumb_title _("Projects") +-- page_title _("Explore projects") ++- page_title _("Explore ARCs") + + = render_dashboard_ultimate_trial(current_user) + diff --git a/scripts/17.3.1-ee.0/patches/add-arc-js.sh b/scripts/17.3.1-ee.0/patches/add-arc-js.sh new file mode 100755 index 0000000..f9c6bd7 --- /dev/null +++ b/scripts/17.3.1-ee.0/patches/add-arc-js.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +set -e + +set -- /opt/gitlab/embedded/service/gitlab-rails/public/assets/webpack/pages.projects.imports.new.*.chunk.js + +# exit if above's glob matches nothing or more than 1 file +[ -e "$1" ] && [ "$#" = "1" ] + +# the mighty "patch" +sed -Ei.bak \ + 's/sample:(\{text:Object\([^)]+\))/arc:\1("ProjectTemplates|ARC"),icon:".template-option .icon-gitlab_logo"},&/' \ + "$1" + +# needs to be gzip'ed too +gzip -kf "$1" + +# print diffs to see what was done +diff -u "$1" "${1}.bak" || true diff --git a/scripts/17.3.1-ee.0/patches/carrierwave_s3_encryption_headers_patch.rb.patch b/scripts/17.3.1-ee.0/patches/carrierwave_s3_encryption_headers_patch.rb.patch new file mode 100644 index 0000000..d1345bd --- /dev/null +++ b/scripts/17.3.1-ee.0/patches/carrierwave_s3_encryption_headers_patch.rb.patch @@ -0,0 +1,11 @@ +--- /opt/gitlab/embedded/service/gitlab-rails/config/initializers/carrierwave_s3_encryption_headers_patch.rb 2024-07-10 10:16:24.201574831 +0000 ++++ /opt/gitlab/embedded/service/gitlab-rails/config/initializers/carrierwave_s3_encryption_headers_patch.rb 2024-07-10 10:16:57.405284779 +0000 +@@ -25,7 +25,7 @@ + if ::Feature.enabled?(:s3_multithreaded_uploads, type: :ops) && fog_provider == 'AWS' + # AWS SDK uses 10 threads by default and a multipart chunk size of 10 MB + file.concurrency = 10 +- file.multipart_chunk_size = 10485760 ++ file.multipart_chunk_size = 10485760 / 10 * 1024 # 1 GiB + file.copy(@uploader.fog_directory, new_path, copy_to_options) + else + # Some Fog providers may issue a GET request (https://github.com/fog/fog-google/issues/512) diff --git a/scripts/17.3.1-ee.0/patches/direct_upload.rb.patch b/scripts/17.3.1-ee.0/patches/direct_upload.rb.patch new file mode 100644 index 0000000..5457f2a --- /dev/null +++ b/scripts/17.3.1-ee.0/patches/direct_upload.rb.patch @@ -0,0 +1,19 @@ +--- /opt/gitlab/embedded/service/gitlab-rails/lib/object_storage/direct_upload.rb 2024-07-10 10:14:00.134830913 +0000 ++++ /opt/gitlab/embedded/service/gitlab-rails/lib/object_storage/direct_upload.rb 2024-08-21 15:01:53.519335954 +0000 +@@ -16,7 +16,7 @@ + class DirectUpload + include Gitlab::Utils::StrongMemoize + +- TIMEOUT = 4.hours ++ TIMEOUT = 48.hours + EXPIRE_OFFSET = 15.minutes + + MAXIMUM_MULTIPART_PARTS = 100 +@@ -133,6 +133,7 @@ + end + + def use_workhorse_s3_client? ++ return false + return false unless config.use_iam_profile? || config.consolidated_settings? + # The Golang AWS SDK does not support V2 signatures + return false unless credentials.fetch(:aws_signature_version, 4).to_i >= 4 diff --git a/scripts/17.3.1-ee.0/patches/lfs_token.rb.patch b/scripts/17.3.1-ee.0/patches/lfs_token.rb.patch new file mode 100644 index 0000000..8836591 --- /dev/null +++ b/scripts/17.3.1-ee.0/patches/lfs_token.rb.patch @@ -0,0 +1,11 @@ +--- /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/lfs_token.rb 2023-04-04 15:32:49.679168014 +0200 ++++ /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/lfs_token.rb 2023-04-04 12:52:34.978437027 +0200 +@@ -14,7 +14,7 @@ + + include LfsTokenHelper + +- DEFAULT_EXPIRE_TIME = 7200 # Default value 2 hours ++ DEFAULT_EXPIRE_TIME = 86400 # Default value was 2 hours (=7200) + + attr_accessor :actor + diff --git a/scripts/17.3.1-ee.0/patches/project_template.rb.patch b/scripts/17.3.1-ee.0/patches/project_template.rb.patch new file mode 100644 index 0000000..6cc1ed5 --- /dev/null +++ b/scripts/17.3.1-ee.0/patches/project_template.rb.patch @@ -0,0 +1,10 @@ +--- /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/project_template.rb 2023-04-04 15:34:11.873379730 +0200 ++++ /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/project_template.rb 2023-04-04 12:52:34.981770257 +0200 +@@ -53,6 +53,7 @@ + # rubocop:disable Metrics/AbcSize + def localized_templates_table + [ ++ ProjectTemplate.new('arc', 'ARC', _('Includes DataPLANT ARC structure'), 'https://gitlab.com/gitlab-org/project-templates/rails', '/assets/dataplant-arc.png'), + ProjectTemplate.new('rails', 'Ruby on Rails', _('Includes an MVC structure, Gemfile, Rakefile, along with many others, to help you get started'), 'https://gitlab.com/gitlab-org/project-templates/rails', 'illustrations/logos/rails.svg'), + ProjectTemplate.new('spring', 'Spring', _('Includes an MVC structure, mvnw and pom.xml to help you get started'), 'https://gitlab.com/gitlab-org/project-templates/spring', 'illustrations/logos/spring.svg'), + ProjectTemplate.new('express', 'NodeJS Express', _('Includes an MVC structure to help you get started'), 'https://gitlab.com/gitlab-org/project-templates/express', 'illustrations/logos/express.svg'), diff --git a/scripts/17.3.1-ee.0/patches/show.html.haml.patch b/scripts/17.3.1-ee.0/patches/show.html.haml.patch new file mode 100644 index 0000000..a0b707a --- /dev/null +++ b/scripts/17.3.1-ee.0/patches/show.html.haml.patch @@ -0,0 +1,35 @@ +--- /opt/gitlab/embedded/service/gitlab-rails/app/views/profiles/accounts/show.html.haml 2024-08-14 11:35:05.000000000 +0000 ++++ /opt/gitlab/embedded/service/gitlab-rails/app/views/profiles/accounts/show.html.haml 2024-08-19 10:54:58.134629851 +0000 +@@ -8,32 +8,6 @@ + - c.with_body do + = s_('Profiles|Some options are unavailable for LDAP accounts') + +-- if params[:two_factor_auth_enabled_successfully] +- = render Pajamas::AlertComponent.new(variant: :success, +- alert_options: { class: 'gl-my-5' }, +- close_button_options: { class: 'js-close-2fa-enabled-success-alert' }) do |c| +- - c.with_body do +- = html_escape(_('You have set up 2FA for your account! If you lose access to your 2FA device, you can use your recovery codes to access your account. Alternatively, if you upload an SSH key, you can %{anchorOpen}use that key to generate additional recovery codes%{anchorClose}.')) % { anchorOpen: ''.html_safe % { href: help_page_path('user/profile/account/two_factor_authentication_troubleshooting', anchor: 'generate-new-recovery-codes-using-ssh') }, anchorClose: ''.html_safe } +- +-.settings-section.js-search-settings-section +- .settings-sticky-header +- .settings-sticky-header-inner +- %h4.gl-my-0 +- = s_('Profiles|Two-factor authentication') +- %p.gl-text-secondary +- = s_("Profiles|Increase your account's security by enabling two-factor authentication (2FA).") +- %div +- %p +- %span.gl-font-bold +- #{_('Status')}: +- #{current_user.two_factor_enabled? ? _('Enabled') : _('Disabled')} +- - if current_user.two_factor_enabled? +- = render Pajamas::ButtonComponent.new(variant: :confirm, href: profile_two_factor_auth_path) do +- = _('Manage two-factor authentication') +- - else +- = render Pajamas::ButtonComponent.new(variant: :confirm, href: profile_two_factor_auth_path, button_options: { data: { testid: 'enable-2fa-button' }}) do +- = _('Enable two-factor authentication') +- + - if display_providers_on_profile? + .settings-section.js-search-settings-section + .settings-sticky-header diff --git a/scripts/latest b/scripts/latest index 6f43417..304592b 120000 --- a/scripts/latest +++ b/scripts/latest @@ -1 +1 @@ -17.2.1-ee.0 \ No newline at end of file +17.3.1-ee.0 \ No newline at end of file