git: 3d62dc0e1ba6 - main - www/gitlab: major upgrade to 18.0.0

From: Matthias Fechner <mfechner_at_FreeBSD.org>
Date: Mon, 19 May 2025 13:36:18 UTC
The branch main has been updated by mfechner:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3d62dc0e1ba6c904652b316a074227c8fdcb565a

commit 3d62dc0e1ba6c904652b316a074227c8fdcb565a
Author:     Matthias Fechner <mfechner@FreeBSD.org>
AuthorDate: 2025-05-17 13:35:23 +0000
Commit:     Matthias Fechner <mfechner@FreeBSD.org>
CommitDate: 2025-05-19 13:35:48 +0000

    www/gitlab: major upgrade to 18.0.0
    
    Changes:        https://about.gitlab.com/releases/2025/05/15/gitlab-18-0-released/
---
 devel/gitaly/Makefile                              |  2 +-
 devel/gitaly/distinfo                              | 14 ++--
 devel/gitaly/files/patch-Makefile                  | 73 +----------------
 net/gitlab-agent/Makefile                          |  2 +-
 net/gitlab-agent/distinfo                          | 10 +--
 net/rubygem-gitlab-kas-grpc/distinfo               |  6 +-
 textproc/gitlab-elasticsearch-indexer/Makefile     |  2 +-
 textproc/gitlab-elasticsearch-indexer/distinfo     | 10 +--
 www/gitlab-pages/distinfo                          | 10 +--
 www/gitlab-workhorse/distinfo                      | 10 +--
 www/gitlab/Makefile                                | 94 +++++++++++++---------
 www/gitlab/Makefile.common                         |  4 +-
 www/gitlab/distinfo                                | 12 +--
 www/gitlab/files/patch-Gemfile                     | 54 ++++++-------
 www/gitlab/files/patch-config_gitlab.yml.example   | 20 ++---
 .../files/patch-config_initializers_1__settings.rb |  4 +-
 ...ems_gitlab-backup-cli_gitlab-backup-cli.gemspec | 10 +--
 www/gitlab/pkg-message                             |  4 +-
 18 files changed, 140 insertions(+), 201 deletions(-)

diff --git a/devel/gitaly/Makefile b/devel/gitaly/Makefile
index f3cceadd1e83..64bb1010af84 100644
--- a/devel/gitaly/Makefile
+++ b/devel/gitaly/Makefile
@@ -26,7 +26,7 @@ CPE_VENDOR=	gitlab
 USE_GITLAB=	yes
 GL_ACCOUNT=	gitlab-org
 GO_MOD_DIST=	gitlab
-GO_MODULE=	gitlab.com/gitlab-org/gitaly/v17
+GO_MODULE=	gitlab.com/gitlab-org/gitaly/v18
 GL_TUPLE=	gitlab-org:git:v${GITLAB_GIT_VERSION}:_build/_build/deps/git-v${GITLAB_GIT_VERSION_SHORT}
 
 MAKE_ENV=	GOFLAGS="${GO_BUILDFLAGS}"
diff --git a/devel/gitaly/distinfo b/devel/gitaly/distinfo
index 9f439c1c8524..ccb8bd71128c 100644
--- a/devel/gitaly/distinfo
+++ b/devel/gitaly/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1746703448
-SHA256 (go/devel_gitaly/gitaly-v17.11.2/go.mod) = 2e2d5338397f220f0b8c980a4ac083c67d9b2c66f83225d2a7fbff917f631a6c
-SIZE (go/devel_gitaly/gitaly-v17.11.2/go.mod) = 12599
-SHA256 (go/devel_gitaly/gitaly-v17.11.2/gitaly-v17.11.2.tar.bz2) = 33e479735c036118546461315b576529e224c7929e006b6480cc8a03828c2745
-SIZE (go/devel_gitaly/gitaly-v17.11.2/gitaly-v17.11.2.tar.bz2) = 4491005
-SHA256 (go/devel_gitaly/gitaly-v17.11.2/git-v2.49.0.tar.bz2) = 63678e3839f5af667b48cb9d0c37de4b249916dc19aae7c5ce83d07fb3146ecb
-SIZE (go/devel_gitaly/gitaly-v17.11.2/git-v2.49.0.tar.bz2) = 9079092
+TIMESTAMP = 1747297223
+SHA256 (go/devel_gitaly/gitaly-v18.0.0/go.mod) = c01a366ef332898c1a1fd75281459c8d6caea4c59baa4dd4094fb26eb00d2a4b
+SIZE (go/devel_gitaly/gitaly-v18.0.0/go.mod) = 12814
+SHA256 (go/devel_gitaly/gitaly-v18.0.0/gitaly-v18.0.0.tar.bz2) = 6f6b1bd9ee424586ca45a5695d0ef9e08585547f0dae6d790a3c2b3f6aa1bea5
+SIZE (go/devel_gitaly/gitaly-v18.0.0/gitaly-v18.0.0.tar.bz2) = 4512848
+SHA256 (go/devel_gitaly/gitaly-v18.0.0/git-v2.49.0.tar.bz2) = 63678e3839f5af667b48cb9d0c37de4b249916dc19aae7c5ce83d07fb3146ecb
+SIZE (go/devel_gitaly/gitaly-v18.0.0/git-v2.49.0.tar.bz2) = 9079092
diff --git a/devel/gitaly/files/patch-Makefile b/devel/gitaly/files/patch-Makefile
index 6c6e353e2a30..9345aecfdf54 100644
--- a/devel/gitaly/files/patch-Makefile
+++ b/devel/gitaly/files/patch-Makefile
@@ -1,75 +1,6 @@
---- Makefile.orig	2025-04-16 03:58:04 UTC
+--- Makefile.orig	2025-05-14 17:37:06 UTC
 +++ Makefile
-@@ -151,7 +151,7 @@ GIT_VERSION ?=
- # GIT_VERSION_x_xx defines versions for each instance of bundled Git we ship. When a new
- # major version is added, be sure to update GIT_PACKED_EXECUTABLES, the *-bundled-git targets,
- # and add new targets under the "# These targets build specific releases of Git." section.
--GIT_VERSION_2_48 ?= v2.48.1.gl1
-+#GIT_VERSION_2_48 ?= v2.48.1.gl1
- GIT_VERSION_2_49 ?= v2.49.0.gl1
- #
- # OVERRIDE_GIT_VERSION allows you to specify a custom semver value to be reported by the
-@@ -163,7 +163,7 @@ ifeq (${GIT_VERSION:default=},)
- ifeq (${GIT_VERSION:default=},)
- 	# GIT_VERSION should be overridden to the default version of bundled Git. This is only
- 	# necessary until https://gitlab.com/gitlab-org/gitaly/-/issues/6195 is complete.
--    override GIT_VERSION := ${GIT_VERSION_2_48}
-+    override GIT_VERSION := ${GIT_VERSION_2_49}
-     # When GIT_VERSION is not explicitly set, we default to bundled Git.
- 	export WITH_BUNDLED_GIT = YesPlease
- else
-@@ -259,8 +259,7 @@ BUILD_GEM_NAME ?= gitaly
- BUILD_GEM_NAME ?= gitaly
- 
- # Git binaries that are eventually embedded into the Gitaly binary.
--GIT_PACKED_EXECUTABLES       = $(addprefix ${BUILD_DIR}/bin/gitaly-, $(addsuffix -v2.48, ${GIT_EXECUTABLES})) \
--                               $(addprefix ${BUILD_DIR}/bin/gitaly-, $(addsuffix -v2.49, ${GIT_EXECUTABLES}))
-+GIT_PACKED_EXECUTABLES       = $(addprefix ${BUILD_DIR}/bin/gitaly-, $(addsuffix -v2.49, ${GIT_EXECUTABLES}))
- 
- # All executables provided by Gitaly.
- GITALY_EXECUTABLES           = $(addprefix ${BUILD_DIR}/bin/,$(notdir $(shell find ${SOURCE_DIR}/cmd -mindepth 1 -maxdepth 1 -type d -print)))
-@@ -349,15 +348,13 @@ install: build
- 
- .PHONY: build-bundled-git
- ## Build bundled Git binaries.
--build-bundled-git: build-bundled-git-v2.48 build-bundled-git-v2.49
--build-bundled-git-v2.48: $(patsubst %,${BUILD_DIR}/bin/gitaly-%-v2.48,${GIT_EXECUTABLES})
-+build-bundled-git: build-bundled-git-v2.49
- build-bundled-git-v2.49: $(patsubst %,${BUILD_DIR}/bin/gitaly-%-v2.49,${GIT_EXECUTABLES})
- 
- .PHONY: install-bundled-git
- ## Install bundled Git binaries. The target directory can be modified by
- ## setting PREFIX and DESTDIR.
--install-bundled-git: install-bundled-git-v2.48 install-bundled-git-v2.49
--install-bundled-git-v2.48: $(patsubst %,${INSTALL_DEST_DIR}/gitaly-%-v2.48,${GIT_EXECUTABLES})
-+install-bundled-git: install-bundled-git-v2.49
- install-bundled-git-v2.49: $(patsubst %,${INSTALL_DEST_DIR}/gitaly-%-v2.49,${GIT_EXECUTABLES})
- 
- ifdef WITH_BUNDLED_GIT
-@@ -679,17 +676,17 @@ ${DEPENDENCY_DIR}/git-distribution/build/git: ${DEPEND
- 	${Q}touch $@
- 
- # These targets build specific releases of Git.
--${BUILD_DIR}/bin/gitaly-%-v2.48: override GIT_VERSION = ${GIT_VERSION_2_48}
-+#${BUILD_DIR}/bin/gitaly-%-v2.48: override GIT_VERSION = ${GIT_VERSION_2_48}
- ${BUILD_DIR}/bin/gitaly-%-v2.49: override GIT_VERSION = ${GIT_VERSION_2_49}
- 
- ifdef USE_MESON
--${BUILD_DIR}/bin/gitaly-%-v2.48: ${DEPENDENCY_DIR}/git-v2.48/build/% | ${BUILD_DIR}/bin
--	${Q}install $< $@
-+#${BUILD_DIR}/bin/gitaly-%-v2.48: ${DEPENDENCY_DIR}/git-v2.48/build/% | ${BUILD_DIR}/bin
-+#	${Q}install $< $@
- ${BUILD_DIR}/bin/gitaly-%-v2.49: ${DEPENDENCY_DIR}/git-v2.49/build/% | ${BUILD_DIR}/bin
- 	${Q}install $< $@
- else
--${BUILD_DIR}/bin/gitaly-%-v2.48: ${DEPENDENCY_DIR}/git-v2.48/% | ${BUILD_DIR}/bin
--	${Q}install $< $@
-+#${BUILD_DIR}/bin/gitaly-%-v2.48: ${DEPENDENCY_DIR}/git-v2.48/% | ${BUILD_DIR}/bin
-+#	${Q}install $< $@
- ${BUILD_DIR}/bin/gitaly-%-v2.49: ${DEPENDENCY_DIR}/git-v2.49/% | ${BUILD_DIR}/bin
- 	${Q}install $< $@
- endif
-@@ -726,12 +723,12 @@ ${DEPENDENCY_DIR}/git-%/Makefile: ${DEPENDENCY_DIR}/gi
+@@ -717,12 +717,12 @@ ${DEPENDENCY_DIR}/git-%/Makefile: ${DEPENDENCY_DIR}/gi
  # otherwise try to rebuild all targets depending on it whenever we build
  # something else. We thus depend on the Makefile instead.
  ${DEPENDENCY_DIR}/git-%/Makefile: ${DEPENDENCY_DIR}/git-%.version
diff --git a/net/gitlab-agent/Makefile b/net/gitlab-agent/Makefile
index 9442fc9d92d4..8aae2990842e 100644
--- a/net/gitlab-agent/Makefile
+++ b/net/gitlab-agent/Makefile
@@ -15,7 +15,7 @@ BUILD_DEPENDS=	git>=0:devel/git \
 		golangci-lint>=0:devel/golangci-lint
 
 USES=		go:modules,1.23
-GO_MODULE=	gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v17
+GO_MODULE=	gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18
 
 _BUILD_DATE=	$$(date -u "+%Y-%m-%d-%H%M UTC")
 GO_TARGET=     ./cmd/kas
diff --git a/net/gitlab-agent/distinfo b/net/gitlab-agent/distinfo
index f0ad922f0408..8a8b5d5f9007 100644
--- a/net/gitlab-agent/distinfo
+++ b/net/gitlab-agent/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1746703450
-SHA256 (go/net_gitlab-agent/gitlab-agent-v17.11.2/v17.11.2.mod) = 6c36855cd351c829e5b19c5aa99876db58a2b4bd7b934e05497e7777faa64f8f
-SIZE (go/net_gitlab-agent/gitlab-agent-v17.11.2/v17.11.2.mod) = 9293
-SHA256 (go/net_gitlab-agent/gitlab-agent-v17.11.2/v17.11.2.zip) = 08c74935d6a0ba77a11eade2b3ca11c20bf3f8619dae652e1e286757dfdaa654
-SIZE (go/net_gitlab-agent/gitlab-agent-v17.11.2/v17.11.2.zip) = 1555390
+TIMESTAMP = 1747297291
+SHA256 (go/net_gitlab-agent/gitlab-agent-v18.0.0/v18.0.0.mod) = 0c2121b2efd0904b758621ebeefb6d8ac0a504c59ec144b7b59fc05ab4a73ae8
+SIZE (go/net_gitlab-agent/gitlab-agent-v18.0.0/v18.0.0.mod) = 9417
+SHA256 (go/net_gitlab-agent/gitlab-agent-v18.0.0/v18.0.0.zip) = c94d69eeffe74fcbc3301ef65026033b55f34d9b1b4f57a753b4cd1f53f694e6
+SIZE (go/net_gitlab-agent/gitlab-agent-v18.0.0/v18.0.0.zip) = 1606160
diff --git a/net/rubygem-gitlab-kas-grpc/distinfo b/net/rubygem-gitlab-kas-grpc/distinfo
index f9d7101dc764..0c29dc280488 100644
--- a/net/rubygem-gitlab-kas-grpc/distinfo
+++ b/net/rubygem-gitlab-kas-grpc/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1746703509
-SHA256 (rubygem/gitlab-kas-grpc-17.11.2.gem) = f2b9054dcf636346e89549e9478a684a38bf03bf853332e84154ec3a9856ae1c
-SIZE (rubygem/gitlab-kas-grpc-17.11.2.gem) = 10752
+TIMESTAMP = 1747297312
+SHA256 (rubygem/gitlab-kas-grpc-18.0.0.gem) = 48956943a9a314561970eff65bcb2619df39d52e9469ae91c410e65042365e43
+SIZE (rubygem/gitlab-kas-grpc-18.0.0.gem) = 10752
diff --git a/textproc/gitlab-elasticsearch-indexer/Makefile b/textproc/gitlab-elasticsearch-indexer/Makefile
index 37234cf0c907..bee6b6d7f027 100644
--- a/textproc/gitlab-elasticsearch-indexer/Makefile
+++ b/textproc/gitlab-elasticsearch-indexer/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	gitlab-elasticsearch-indexer
-PORTVERSION=	5.5.0
+PORTVERSION=	5.5.1
 DISTVERSIONPREFIX=	v
 CATEGORIES=	textproc
 
diff --git a/textproc/gitlab-elasticsearch-indexer/distinfo b/textproc/gitlab-elasticsearch-indexer/distinfo
index a0a3b323c8ed..bc2d4d260d5c 100644
--- a/textproc/gitlab-elasticsearch-indexer/distinfo
+++ b/textproc/gitlab-elasticsearch-indexer/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1744780212
-SHA256 (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.0/go.mod) = f37adcaa570698fc1a3eb860586c4eae8cd265aa58c16784c7643d89d4c13350
-SIZE (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.0/go.mod) = 5509
-SHA256 (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.0/gitlab-elasticsearch-indexer-v5.5.0.tar.bz2) = f6258d0596bd0942e2ab8dbbdf3808040dd9c98bce75ef8d6d50b80bb1b9cd46
-SIZE (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.0/gitlab-elasticsearch-indexer-v5.5.0.tar.bz2) = 79334
+TIMESTAMP = 1747460912
+SHA256 (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.1/go.mod) = 8068957d1b33fc14f4bf77e4807fd89c7b3f57ccc88a093269c94bfc38479d5c
+SIZE (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.1/go.mod) = 5509
+SHA256 (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.1/gitlab-elasticsearch-indexer-v5.5.1.tar.bz2) = 8757d4e7f2bffe36a5538a7ca3769e958aeb3e76c6a360281c8c0f603ae695e5
+SIZE (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.1/gitlab-elasticsearch-indexer-v5.5.1.tar.bz2) = 90188
diff --git a/www/gitlab-pages/distinfo b/www/gitlab-pages/distinfo
index 053a191e267d..6f87e2d492e8 100644
--- a/www/gitlab-pages/distinfo
+++ b/www/gitlab-pages/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1746703453
-SHA256 (go/www_gitlab-pages/gitlab-pages-v17.11.2/go.mod) = b83da7e72c96e7faf9b45df5ea511c394c921e0a377adec8673636f904354f99
-SIZE (go/www_gitlab-pages/gitlab-pages-v17.11.2/go.mod) = 3435
-SHA256 (go/www_gitlab-pages/gitlab-pages-v17.11.2/gitlab-pages-v17.11.2.tar.bz2) = a6d2e709921db3e1e68cab33e90c6e8ae161bf6cdaa13cf2772a0a15db2636f4
-SIZE (go/www_gitlab-pages/gitlab-pages-v17.11.2/gitlab-pages-v17.11.2.tar.bz2) = 233507
+TIMESTAMP = 1747297293
+SHA256 (go/www_gitlab-pages/gitlab-pages-v18.0.0/go.mod) = 5d3bf245e8a23b85bf8d20e164da233946fce66407fc882c9eef3146a36bb266
+SIZE (go/www_gitlab-pages/gitlab-pages-v18.0.0/go.mod) = 3435
+SHA256 (go/www_gitlab-pages/gitlab-pages-v18.0.0/gitlab-pages-v18.0.0.tar.bz2) = ec76aac2b7b3c3bd915eac21156f50e36ecc214f51caf9c125c69567227eab5a
+SIZE (go/www_gitlab-pages/gitlab-pages-v18.0.0/gitlab-pages-v18.0.0.tar.bz2) = 234324
diff --git a/www/gitlab-workhorse/distinfo b/www/gitlab-workhorse/distinfo
index 0c0f519aee02..ce8234510990 100644
--- a/www/gitlab-workhorse/distinfo
+++ b/www/gitlab-workhorse/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1746703509
-SHA256 (go/www_gitlab-workhorse/gitlab-foss-v17.11.2/go.mod) = 4fea0d1f76f8078f7dc8f7b3350f05e288764e289460476fdddbc9d0d5e1bdb5
-SIZE (go/www_gitlab-workhorse/gitlab-foss-v17.11.2/go.mod) = 9201
-SHA256 (go/www_gitlab-workhorse/gitlab-foss-v17.11.2/gitlab-foss-v17.11.2.tar.bz2) = cca1c17742e83a3449b262980ce6522c713eeb9f50dcba4bb831d4e3b32b8ca6
-SIZE (go/www_gitlab-workhorse/gitlab-foss-v17.11.2/gitlab-foss-v17.11.2.tar.bz2) = 127999225
+TIMESTAMP = 1747297312
+SHA256 (go/www_gitlab-workhorse/gitlab-foss-v18.0.0/go.mod) = 8dbcbe08dbde6db18015e8e2cd84a67a5da908501eb5d6c6d7111fe2e63d27c6
+SIZE (go/www_gitlab-workhorse/gitlab-foss-v18.0.0/go.mod) = 9144
+SHA256 (go/www_gitlab-workhorse/gitlab-foss-v18.0.0/gitlab-foss-v18.0.0.tar.bz2) = 17e3c1df51b242b74ebd45ccb5ba8e0d3ca63dc63db16084d586a9dd36d79b05
+SIZE (go/www_gitlab-workhorse/gitlab-foss-v18.0.0/gitlab-foss-v18.0.0.tar.bz2) = 116971580
diff --git a/www/gitlab/Makefile b/www/gitlab/Makefile
index 061574162fe2..8e5a9710dc85 100644
--- a/www/gitlab/Makefile
+++ b/www/gitlab/Makefile
@@ -27,8 +27,9 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 # mail/rubygem-net-smtp is required as ruby 3.1 removed it
 # textproc/rubygem-psych3 is required as ruby 3.1 applied an update to psych 4.0 which has breaking changes
 # mail/rubygem-net-pop is required as ruby 3.1 removed it
+#gitlab-zoekt-indexer>=0.16.0:textproc/gitlab-zoekt-indexer
 MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
-	gitlab-elasticsearch-indexer>=5.5.0:textproc/gitlab-elasticsearch-indexer \
+	gitlab-elasticsearch-indexer>=5.5.1:textproc/gitlab-elasticsearch-indexer \
 	gitlab-agent>=${GITLAB_VERSION}:net/gitlab-agent \
 	gitlab-pages>=${GITLAB_VERSION}:www/gitlab-pages \
 	gitlab-shell>=14.41.0:devel/gitlab-shell \
@@ -41,17 +42,17 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-net-smtp>=0:mail/rubygem-net-smtp \
 	rubygem-psych3>=3.1<4:textproc/rubygem-psych3 \
 	rubygem-net-pop>=0:mail/rubygem-net-pop \
-	rubygem-rails70>=7.0.8.7<7.1:www/rubygem-rails70 \
+	rubygem-rails-gitlab>=7.1.5.1<7.2:www/rubygem-rails-gitlab \
 	rubygem-mutex_m>=0.3<1:devel/rubygem-mutex_m \
 	rubygem-drb>=2.2.1<3:devel/rubygem-drb \
 	rubygem-bootsnap>=1.18.3<1.19:devel/rubygem-bootsnap \
 	rubygem-ffi>=1.17.1<2:devel/rubygem-ffi \
 	rubygem-openssl>=3.2.0<4:security/rubygem-openssl \
 	rubygem-gitlab-secret_detection>=0.23.0<1:security/rubygem-gitlab-secret_detection \
-	rubygem-responders-rails70>=3.0<4.0:www/rubygem-responders-rails70 \
+	rubygem-responders-rails-gitlab>=3.0<4.0:www/rubygem-responders-rails-gitlab \
 	rubygem-sprockets3>=3.7.0<3.8:devel/rubygem-sprockets3 \
-	rubygem-sprockets-rails-rails70>=3.5.2<3.6:devel/rubygem-sprockets-rails-rails70 \
-	rubygem-view_component-rails70>=3.21.0<3.22:devel/rubygem-view_component-rails70 \
+	rubygem-sprockets-rails-rails-gitlab>=3.5.2<3.6:devel/rubygem-sprockets-rails-rails-gitlab \
+	rubygem-view_component-rails-gitlab>=3.21.0<3.22:devel/rubygem-view_component-rails-gitlab \
 	rubygem-pg>=1.5.9<1.6:databases/rubygem-pg \
 	rubygem-rugged>=1.6<2:devel/rubygem-rugged \
 	rubygem-faraday-gitlab>=2<3:www/rubygem-faraday-gitlab \
@@ -59,10 +60,10 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-logger-gitlab>=1.6.0<1.7:devel/rubygem-logger-gitlab \
 	rubygem-marginalia>=1.11.1<1.12:databases/rubygem-marginalia \
 	rubygem-declarative_policy>=1.1.0<1.2:security/rubygem-declarative_policy \
-	rubygem-coverband>=6.1.4<6.1.5:www/rubygem-coverband \
-	rubygem-devise-rails70>=4.9.3<4.10:devel/rubygem-devise-rails70 \
+	rubygem-coverband>=6.1.5<6.1.6:www/rubygem-coverband \
+	rubygem-devise-rails-gitlab>=4.9.3<4.10:devel/rubygem-devise-rails-gitlab \
 	rubygem-bcrypt>=3.1.20<3.2:security/rubygem-bcrypt \
-	rubygem-doorkeeper-rails70>=5.8.1<6:security/rubygem-doorkeeper-rails70 \
+	rubygem-doorkeeper-rails-gitlab>=5.8.1<6:security/rubygem-doorkeeper-rails-gitlab \
 	rubygem-doorkeeper-openid_connect>=1.8.11<2:security/rubygem-doorkeeper-openid_connect \
 	rubygem-doorkeeper-device_authorization_grant>=1.0.0<1.1:security/rubygem-doorkeeper-device_authorization_grant \
 	rubygem-rexml>=3.4.1<3.5:textproc/rubygem-rexml \
@@ -85,7 +86,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-recaptcha>=5.12<6.0:devel/rubygem-recaptcha \
 	rubygem-akismet>=3.0<4.0:devel/rubygem-akismet \
 	rubygem-invisible_captcha>=2.1.0<2.2.0:graphics/rubygem-invisible_captcha \
-	rubygem-devise-two-factor41-rails70>=4.1.1<4.2:security/rubygem-devise-two-factor41-rails70 \
+	rubygem-devise-two-factor-rails-gitlab>=4.1.1<4.2:security/rubygem-devise-two-factor-rails-gitlab \
 	rubygem-rqrcode-gitlab>=2.2.0<3:www/rubygem-rqrcode-gitlab \
 	rubygem-validates_hostname>=1.0.13<1.1.0:dns/rubygem-validates_hostname \
 	rubygem-rubyzip>=2.3.2<2.4:archivers/rubygem-rubyzip \
@@ -105,10 +106,12 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-apollo_upload_server>=2.1.6<2.2:net/rubygem-apollo_upload_server \
 	rubygem-ffaker>=2.24.0<3:devel/rubygem-ffaker \
 	rubygem-hashie>=5.0.0<5.1:devel/rubygem-hashie \
-	rubygem-kaminari-rails70>=1.2.2<1.3:www/rubygem-kaminari-rails70 \
+	rubygem-kaminari-rails-gitlab>=1.2.2<1.3:www/rubygem-kaminari-rails-gitlab \
 	rubygem-hamlit>=2.15.0<2.16:www/rubygem-hamlit \
 	rubygem-carrierwave1>=1.3.4<2.0:www/rubygem-carrierwave1 \
 	rubygem-mini_magick4>=4.12<5:graphics/rubygem-mini_magick4 \
+	rubygem-prawn>=0:print/rubygem-prawn \
+	rubygem-prawn-svg>=0:print/rubygem-prawn-svg \
 	rubygem-fog-aws328>=3.26<4:net/rubygem-fog-aws328 \
 	rubygem-fog-core210>=2.1.0<2.1.1:devel/rubygem-fog-core210 \
 	rubygem-fog-google-gitlab>=1.24.1<1.25:net/rubygem-fog-google-gitlab \
@@ -134,9 +137,9 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-elasticsearch-model-gitlab>=7.2<8:textproc/rubygem-elasticsearch-model-gitlab \
 	rubygem-elasticsearch-rails7>=7.2<8:textproc/rubygem-elasticsearch-rails7 \
 	rubygem-elasticsearch-api-gitlab>=7.17.11<7.18:textproc/rubygem-elasticsearch-api-gitlab \
-	rubygem-aws-sdk-core-gitlab>=3.215.0<3.216:devel/rubygem-aws-sdk-core-gitlab \
+	rubygem-aws-sdk-core-gitlab>=3.223.0<3.224:devel/rubygem-aws-sdk-core-gitlab \
 	rubygem-aws-sdk-cloudformation-gitlab>=1<2:devel/rubygem-aws-sdk-cloudformation-gitlab \
-	rubygem-aws-sdk-s3-gitlab>=1.177.0<1.178:devel/rubygem-aws-sdk-s3-gitlab \
+	rubygem-aws-sdk-s3-gitlab>=1.185.0<1.186:devel/rubygem-aws-sdk-s3-gitlab \
 	rubygem-faraday-typhoeus-gitlab>=1.1<2:www/rubygem-faraday-typhoeus-gitlab \
 	rubygem-faraday_middleware-aws-sigv4-gitlab>=1.0.1<1.1:devel/rubygem-faraday_middleware-aws-sigv4-gitlab \
 	rubygem-typhoeus>=1.4.0<1.5:www/rubygem-typhoeus \
@@ -156,7 +159,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-rouge-gitlab>=4.5.1<4.6:textproc/rubygem-rouge-gitlab \
 	rubygem-truncato>=0.7.13<0.8.0:textproc/rubygem-truncato \
 	rubygem-nokogiri>=1.18.7<2:textproc/rubygem-nokogiri \
-	rubygem-gitlab-glfm-markdown>=0.0.29<0.1:textproc/rubygem-gitlab-glfm-markdown \
+	rubygem-gitlab-glfm-markdown>=0.0.30<0.1:textproc/rubygem-gitlab-glfm-markdown \
 	rubygem-tanuki_emoji>=0.13<1:graphics/rubygem-tanuki_emoji \
 	rubygem-unicode-emoji>=4.0.4<5:devel/rubygem-unicode-emoji \
 	rubygem-icalendar-gitlab>=2.10.3<2.11:devel/rubygem-icalendar-gitlab \
@@ -167,20 +170,20 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-sd_notify>=0.1.1<0.2:devel/rubygem-sd_notify \
 	rubygem-state_machines-activerecord08>=0.8.0<0.9.0:databases/rubygem-state_machines-activerecord08 \
 	rubygem-sidekiq-gitlab>=7.3.9:devel/rubygem-sidekiq-gitlab \
-	rubygem-sidekiq-cron-rails70>=1.12.0<1.13:devel/rubygem-sidekiq-cron-rails70 \
+	rubygem-sidekiq-cron-rails-gitlab>=1.12.0<1.13:devel/rubygem-sidekiq-cron-rails-gitlab \
 	rubygem-fugit>=1.11.1<1.12:devel/rubygem-fugit \
 	rubygem-httparty-gitlab>=0.22.0<0.23:www/rubygem-httparty-gitlab \
 	rubygem-rainbow>=3.1.1<4.0:devel/rubygem-rainbow \
 	rubygem-ruby-progressbar>=1.11<2:devel/rubygem-ruby-progressbar \
 	rubygem-re2>=2.15.0<3:devel/rubygem-re2 \
-	rubygem-semver_dialects>=3.6.0<4:devel/rubygem-semver_dialects \
+	rubygem-semver_dialects>=3.7.0<4:devel/rubygem-semver_dialects \
 	rubygem-version_sorter>=2.3<3:textproc/rubygem-version_sorter \
 	rubygem-js_regex>=3.8<4.0:textproc/rubygem-js_regex \
 	rubygem-device_detector>=0:devel/rubygem-device_detector \
 	rubygem-redis>=5.4.0<5.5:databases/rubygem-redis \
 	rubygem-redis-clustering>=5.4.0<5.5:databases/rubygem-redis-clustering \
 	rubygem-connection_pool>=2.5.0<3.0:net/rubygem-connection_pool \
-	rubygem-redis-actionpack-rails70>=5.5.0<5.6:databases/rubygem-redis-actionpack-rails70 \
+	rubygem-redis-actionpack-rails-gitlab>=5.5.0<5.6:databases/rubygem-redis-actionpack-rails-gitlab \
 	rubygem-discordrb-webhooks>=3.5<4.0:net-im/rubygem-discordrb-webhooks \
 	rubygem-jira-ruby>=2.3.0<2.4:devel/rubygem-jira-ruby \
 	rubygem-atlassian-jwt>=0.2.1<0.3.0:www/rubygem-atlassian-jwt \
@@ -199,29 +202,29 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-gitlab-chronic>=0.10.6<0.11.0:devel/rubygem-gitlab-chronic \
 	rubygem-gitlab_chronic_duration>=0.12<1:devel/rubygem-gitlab_chronic_duration \
 	rubygem-rack-proxy>=0.7.7<0.8.0:www/rubygem-rack-proxy \
-	rubygem-cssbundling-rails-rails70>=1.4.3<1.5:www/rubygem-cssbundling-rails-rails70 \
+	rubygem-cssbundling-rails-rails-gitlab>=1.4.3<1.5:www/rubygem-cssbundling-rails-rails-gitlab \
 	rubygem-terser>=1.0.2<1.0.3:textproc/rubygem-terser \
 	rubygem-addressable>=2.8<3:www/rubygem-addressable \
-	rubygem-gon-rails70>=6.4.0<6.5:www/rubygem-gon-rails70 \
+	rubygem-gon-rails-gitlab>=6.4.0<6.5:www/rubygem-gon-rails-gitlab \
 	rubygem-request_store>=1.7.0<1.8:devel/rubygem-request_store \
 	rubygem-base32>=0.3.4<0.4.0:converters/rubygem-base32 \
 	rubygem-gitlab-license>=2.6<3:devel/rubygem-gitlab-license \
 	rubygem-rack-attack>=6.7.0<6.8:www/rubygem-rack-attack \
-	rubygem-sentry-ruby>=5.22.0<5.23:devel/rubygem-sentry-ruby \
-	rubygem-sentry-rails>=5.22.0<5.23:devel/rubygem-sentry-rails \
-	rubygem-sentry-sidekiq>=5.22.0<5.23:devel/rubygem-sentry-sidekiq \
+	rubygem-sentry-ruby>=5.23.0<5.24:devel/rubygem-sentry-ruby \
+	rubygem-sentry-rails>=5.23.0<5.24:devel/rubygem-sentry-rails \
+	rubygem-sentry-sidekiq>=5.23.0<5.24:devel/rubygem-sentry-sidekiq \
 	rubygem-pg_query>=6.1.0<6.2:databases/rubygem-pg_query \
-	rubygem-premailer-rails-rails70>=1.12.0<1.13:mail/rubygem-premailer-rails-rails70 \
+	rubygem-premailer-rails-rails-gitlab>=1.12.0<1.13:mail/rubygem-premailer-rails-rails-gitlab \
 	rubygem-gitlab-labkit>=0.37.0<0.38:devel/rubygem-gitlab-labkit \
 	rubygem-thrift>=0.16.0:devel/rubygem-thrift \
-	rubygem-rails-i18n-rails70>=7.0.9<8:devel/rubygem-rails-i18n-rails70 \
+	rubygem-rails-i18n-rails-gitlab>=7.0.9<8:devel/rubygem-rails-i18n-rails-gitlab \
 	rubygem-gettext_i18n_rails>=1.13.0<1.14:devel/rubygem-gettext_i18n_rails \
 	rubygem-gettext>=3.5.1<4:devel/rubygem-gettext \
 	rubygem-batch-loader>=2.0.5<2.1:devel/rubygem-batch-loader \
 	rubygem-tty-prompt>=0.23<1:devel/rubygem-tty-prompt \
-	rubygem-peek-rails70>=1.1<2.0:devel/rubygem-peek-rails70 \
+	rubygem-peek-rails-gitlab>=1.1<2.0:devel/rubygem-peek-rails-gitlab \
 	rubygem-snowplow-tracker>=0.8.0<1:devel/rubygem-snowplow-tracker \
-	rubygem-webrick>=1.8.2<1.10:www/rubygem-webrick \
+	rubygem-webrick>=1.9.0<1.10:www/rubygem-webrick \
 	rubygem-prometheus-client-mmap>=1.2.9<1.3:devel/rubygem-prometheus-client-mmap \
 	rubygem-async-gitlab>=2.23.1<2.24:devel/rubygem-async-gitlab \
 	rubygem-gitlab-security_report_schemas>=0.1.2.min15.0.0.max15.2.1<0.1.2.min15.0.0.max15.2.2:devel/rubygem-gitlab-security_report_schemas \
@@ -250,7 +253,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-opentelemetry-instrumentation-sidekiq>=0.25.7:devel/rubygem-opentelemetry-instrumentation-sidekiq \
 	rubygem-warning>=1.5.0<1.6:devel/rubygem-warning \
 	rubygem-git>=1.19.1<2:devel/rubygem-git \
-	rubygem-gitlab-dangerfiles>=4.8.1<4.9:devel/rubygem-gitlab-dangerfiles \
+	rubygem-gitlab-dangerfiles>=4.9.0<4.10:devel/rubygem-gitlab-dangerfiles \
 	rubygem-license_finder-gitlab>=7.2.1<8:devel/rubygem-license_finder-gitlab \
 	rubygem-rspec>=3.0<4:devel/rubygem-rspec \
 	rubygem-octokit-gitlab>=9.0<10:net/rubygem-octokit-gitlab \
@@ -263,7 +266,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-memory_profiler>=1.0<2.0:devel/rubygem-memory_profiler \
 	rubygem-activerecord-explain-analyze>=0.1<1.0:databases/rubygem-activerecord-explain-analyze \
 	rubygem-oauth2-gitlab>=2.0<3:net/rubygem-oauth2-gitlab \
-	rubygem-health_check-rails70>=3.0<4:devel/rubygem-health_check-rails70 \
+	rubygem-health_check-rails-gitlab>=3.0<4:devel/rubygem-health_check-rails-gitlab \
 	rubygem-vmstat>=2.3.1<2.4.0:sysutils/rubygem-vmstat \
 	rubygem-sys-filesystem14>=1.4.3<1.5:sysutils/rubygem-sys-filesystem14 \
 	rubygem-net-ntp>0:net/rubygem-net-ntp \
@@ -275,13 +278,13 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-google-protobuf3>=3.25.6<4:devel/rubygem-google-protobuf3 \
 	rubygem-toml-rb>=2.2.0<3:www/rubygem-toml-rb \
 	rubygem-flipper-gitlab>=0.28.0<0.29:devel/rubygem-flipper-gitlab \
-	rubygem-flipper-active_record-rails70>=0.28.0<0.29:databases/rubygem-flipper-active_record-rails70 \
-	rubygem-flipper-active_support_cache_store-rails70>=0.28.0<0.29:devel/rubygem-flipper-active_support_cache_store-rails70 \
+	rubygem-flipper-active_record-rails-gitlab>=0.28.0<0.29:databases/rubygem-flipper-active_record-rails-gitlab \
+	rubygem-flipper-active_support_cache_store-rails-gitlab>=0.28.0<0.29:devel/rubygem-flipper-active_support_cache_store-rails-gitlab \
 	rubygem-unleash>=3.2.2<3.3:devel/rubygem-unleash \
 	rubygem-gitlab-experiment>=0.9.1<0.10:devel/rubygem-gitlab-experiment \
-	rubygem-lograge-rails70>=0.11.2<1.0:www/rubygem-lograge-rails70 \
+	rubygem-lograge-rails-gitlab>=0.11.2<1.0:www/rubygem-lograge-rails-gitlab \
 	rubygem-grape_logging>=1.8.4<2.0:devel/rubygem-grape_logging \
-	rubygem-gitlab-net-dns>=0.10.0<0.11:dns/rubygem-gitlab-net-dns \
+	rubygem-gitlab-net-dns>=0.12.0<0.13:dns/rubygem-gitlab-net-dns \
 	rubygem-countries>=4.1.3<4.2.0:devel/rubygem-countries \
 	rubygem-retriable>=3.1.2<3.2.0:devel/rubygem-retriable \
 	rubygem-lru_redux>0:devel/rubygem-lru_redux \
@@ -289,7 +292,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-lockbox>=1.3.0<1.4:security/rubygem-lockbox \
 	rubygem-valid_email>=0.1<1:mail/rubygem-valid_email \
 	rubygem-jsonb_accessor>=1.4<2:www/rubygem-jsonb_accessor \
-	rubygem-json-gitlab>=2.10.2<2.11:devel/rubygem-json-gitlab \
+	rubygem-json>=2.11.2<2.12:devel/rubygem-json \
 	rubygem-json_schemer>=2.3.0<2.4:devel/rubygem-json_schemer \
 	rubygem-oj>=3.16.0<3.17:devel/rubygem-oj \
 	rubygem-oj-introspect>=0.8<1:devel/rubygem-oj-introspect \
@@ -298,10 +301,10 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-webauthn>=3.0<4:security/rubygem-webauthn \
 	rubygem-ipaddress>=0.8.3<0.9:net/rubygem-ipaddress \
 	rubygem-parslet1>=1.8<2:textproc/rubygem-parslet1 \
-	rubygem-ed25519>=1.3.0<1.4:security/rubygem-ed25519 \
+	rubygem-ed25519>=1.4.0<1.5:security/rubygem-ed25519 \
 	rubygem-cvss-suite>=3.3.0<3.4:security/rubygem-cvss-suite \
 	rubygem-arr-pm>=0.0.12<0.1:devel/rubygem-arr-pm \
-	rubygem-devfile>=0.4.3<0.5:net/rubygem-devfile \
+	rubygem-devfile>=0.4.4<0.5:net/rubygem-devfile \
 	rubygem-CFPropertyList-gitlab>=3.0.7<3.1:devel/rubygem-CFPropertyList-gitlab \
 	rubygem-app_store_connect>=0:net/rubygem-app_store_connect \
 	rubygem-telesignenterprise>=2.2<3:devel/rubygem-telesignenterprise \
@@ -311,9 +314,9 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-uri-gitlab>=0.13.2<0.13.3:net/rubygem-uri-gitlab \
 	rubygem-duo_api>=1.4<2:security/rubygem-duo_api \
 	rubygem-gitlab-sdk>=0.3.0<0.4:devel/rubygem-gitlab-sdk \
-	rubygem-paper_trail>=15.0<16:devel/rubygem-paper_trail \
+	rubygem-paper_trail>=16.0<17:devel/rubygem-paper_trail \
 	rubygem-i18n_data>=0.13.1<1:devel/rubygem-i18n_data \
-	rubygem-gitlab-cloud-connector>=1.5<2:security/rubygem-gitlab-cloud-connector \
+	rubygem-gitlab-cloud-connector>=1.11<2:security/rubygem-gitlab-cloud-connector \
 	rubygem-google-cloud-profiler-v2>=0.3<1:textproc/rubygem-google-cloud-profiler-v2 \
 	rubygem-parallel>=1.26.3<2:sysutils/rubygem-parallel \
 	rubygem-google-cloud-storage_transfer-gitlab>=1.2.0<1.3:net/rubygem-google-cloud-storage_transfer-gitlab \
@@ -488,8 +491,6 @@ post-install:
 	@${ECHO_CMD} "@dir ${WWWDIR_REL}/qa/qa/specs/features/api/2_plan" >> ${TMPPLIST}
 	@${ECHO_CMD} "@dir ${WWWDIR_REL}/qa/qa/specs/features/api/4_verify" >> ${TMPPLIST}
 	@${ECHO_CMD} "@dir ${WWWDIR_REL}/qa/qa/specs/features/api/5_package" >> ${TMPPLIST}
-	@${ECHO_CMD} "@dir ${WWWDIR_REL}/qa/qa/specs/features/api/6_release" >> ${TMPPLIST}
-	@${ECHO_CMD} "@dir ${WWWDIR_REL}/qa/qa/specs/features/api/7_configure" >> ${TMPPLIST}
 	@${ECHO_CMD} "@dir ${WWWDIR_REL}/qa/qa/specs/features/api/8_monitor" >> ${TMPPLIST}
 	@${ECHO_CMD} "@dir ${WWWDIR_REL}/qa/qa/specs/features/browser_ui/5_package" >> ${TMPPLIST}
 	@${ECHO_CMD} "@dir ${WWWDIR_REL}/qa/qa/specs/features/browser_ui/8_monitor" >> ${TMPPLIST}
@@ -534,9 +535,7 @@ post-install:
 	@${ECHO_CMD} "@dir(,,744) ${WWWDIR_REL}/gems/gitlab-backup-cli/tmp" >> ${TMPPLIST}
 	@${ECHO_CMD} "@dir(,,744) ${WWWDIR_REL}/qa/qa/specs/features/ee/api/4_verify" >> ${TMPPLIST}
 	@${ECHO_CMD} "@dir(,,744) ${WWWDIR_REL}/qa/qa/specs/features/ee/api/5_package" >> ${TMPPLIST}
-	@${ECHO_CMD} "@dir(,,744) ${WWWDIR_REL}/qa/qa/specs/features/ee/api/6_release" >> ${TMPPLIST}
 	@${ECHO_CMD} "@dir(,,744) ${WWWDIR_REL}/qa/qa/specs/features/ee/api/8_monitor" >> ${TMPPLIST}
-	@${ECHO_CMD} "@dir(,,744) ${WWWDIR_REL}/qa/qa/specs/features/ee/browser_ui/7_configure" >> ${TMPPLIST}
 .endif
 
 .if !defined(_GITLAB_MAKESUM_GUARD)
@@ -550,6 +549,21 @@ makesum:
 	(cd ../../www/gitlab-pages && ${MAKE} makesum)
 	(cd ../../www/gitlab-workhorse && ${MAKE} makesum)
 	(cd ../../net/rubygem-gitlab-kas-grpc && ${MAKE} makesum)
+	(cd ../../www/rubygem-rails-gitlab && ${MAKE} makesum)
+	(cd ../../www/rubygem-actioncable-gitlab && ${MAKE} makesum)
+	(cd ../../mail/rubygem-actionmailbox-gitlab && ${MAKE} makesum)
+	(cd ../../mail/rubygem-actionmailer-gitlab && ${MAKE} makesum)
+	(cd ../../www/rubygem-actionpack-gitlab && ${MAKE} makesum)
+	(cd ../../textproc/rubygem-actiontext-gitlab && ${MAKE} makesum)
+	(cd ../../devel/rubygem-actionview-gitlab && ${MAKE} makesum)
+	(cd ../../devel/rubygem-activejob-gitlab && ${MAKE} makesum)
+	(cd ../../databases/rubygem-activemodel-gitlab && ${MAKE} makesum)
+	(cd ../../databases/rubygem-activerecord-gitlab && ${MAKE} makesum)
+	(cd ../../net/rubygem-activestorage-gitlab && ${MAKE} makesum)
+	(cd ../../devel/rubygem-activesupport-gitlab && ${MAKE} makesum)
+	(cd ../../www/rubygem-railties-gitlab && ${MAKE} makesum)
+	(cd ../../databases/rubygem-globalid-rails-gitlab && ${MAKE} makesum)
+	(cd ../../www/rubygem-responders-rails-gitlab && ${MAKE} makesum)
 
 .endif
 
diff --git a/www/gitlab/Makefile.common b/www/gitlab/Makefile.common
index 17ce8d8b1a3f..9e0f66298ff7 100644
--- a/www/gitlab/Makefile.common
+++ b/www/gitlab/Makefile.common
@@ -1,5 +1,5 @@
-GITLAB_VERSION=		17.11.2
-GITLAB_PORTREVISION=	1
+GITLAB_VERSION=		18.0.0
+GITLAB_PORTREVISION=	0
 
 # Git version gitaly should use (from gitlab mirror)
 # Find current tag from Makefile and .gitlab-ci.yaml
diff --git a/www/gitlab/distinfo b/www/gitlab/distinfo
index 481d3318a987..3c1c169ae9a0 100644
--- a/www/gitlab/distinfo
+++ b/www/gitlab/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1746703370
-SHA256 (gitlab-foss-v17.11.2.tar.bz2) = cca1c17742e83a3449b262980ce6522c713eeb9f50dcba4bb831d4e3b32b8ca6
-SIZE (gitlab-foss-v17.11.2.tar.bz2) = 127999225
-TIMESTAMP = 1746703439
-SHA256 (gitlab-v17.11.2-ee.tar.bz2) = 972e2fd9d5dcc6de5472fe720e369a2a3be9eb3c27208d6e82b2e9135bbd0b41
-SIZE (gitlab-v17.11.2-ee.tar.bz2) = 142504844
+TIMESTAMP = 1747397695
+SHA256 (gitlab-foss-v18.0.0.tar.bz2) = 17e3c1df51b242b74ebd45ccb5ba8e0d3ca63dc63db16084d586a9dd36d79b05
+SIZE (gitlab-foss-v18.0.0.tar.bz2) = 116971580
+TIMESTAMP = 1747397696
+SHA256 (gitlab-v18.0.0-ee.tar.bz2) = 190b986c8b73f4252bf0750536577251019102d35493236feec4e8dc19865ef6
+SIZE (gitlab-v18.0.0-ee.tar.bz2) = 131774611
diff --git a/www/gitlab/files/patch-Gemfile b/www/gitlab/files/patch-Gemfile
index 408e873e25c9..fff952d72391 100644
--- a/www/gitlab/files/patch-Gemfile
+++ b/www/gitlab/files/patch-Gemfile
@@ -1,6 +1,6 @@
---- Gemfile.orig	2025-05-07 09:41:59 UTC
+--- Gemfile.orig	2025-05-14 17:45:50 UTC
 +++ Gemfile
-@@ -168,8 +168,8 @@ gem 'rack-cors', '~> 2.0.1', require: 'rack/cors', fea
+@@ -160,8 +160,8 @@ gem 'rack-cors', '~> 2.0.1', require: 'rack/cors', fea
  gem 'rack-cors', '~> 2.0.1', require: 'rack/cors', feature_category: :shared
  
  # GraphQL API
@@ -11,7 +11,7 @@
  gem 'apollo_upload_server', '~> 2.1.6', feature_category: :api
  
  # Cells
-@@ -220,7 +220,7 @@ gem 'google-cloud-storage', '~> 1.45.0', feature_categ
+@@ -216,7 +216,7 @@ gem 'google-cloud-storage', '~> 1.45.0', feature_categ
  gem 'google-apis-storage_v1', '~> 0.29', feature_category: :shared
  gem 'google-cloud-storage', '~> 1.45.0', feature_category: :shared
  # We need >= 0.11.1 because that's when match_glob support is added to list_objects
@@ -20,7 +20,7 @@
  gem 'google-apis-compute_v1', '~> 0.57.0', feature_category: :shared
  gem 'google-apis-container_v1', '~> 0.43.0', feature_category: :shared
  gem 'google-apis-container_v1beta1', '~> 0.43.0', feature_category: :shared
-@@ -231,7 +231,7 @@ gem 'google-apis-androidpublisher_v3', '~> 0.34.0', fe
+@@ -227,7 +227,7 @@ gem 'google-apis-androidpublisher_v3', '~> 0.34.0', fe
  gem 'google-apis-sqladmin_v1beta4', '~> 0.41.0', feature_category: :shared
  gem 'google-apis-androidpublisher_v3', '~> 0.34.0', feature_category: :shared
  
@@ -29,7 +29,7 @@
  gem 'google-cloud-artifact_registry-v1', '~> 0.11.0', feature_category: :shared
  gem 'google-cloud-compute-v1', '~> 2.6.0', feature_category: :shared
  
-@@ -287,7 +287,7 @@ group :puma do
+@@ -283,7 +283,7 @@ group :puma do
  gem 'rack-timeout', '~> 0.7.0', require: 'rack/timeout/base', feature_category: :shared
  
  group :puma do
@@ -38,7 +38,7 @@
    gem 'sd_notify', '~> 0.1.0', require: false, feature_category: :shared
  end
  
-@@ -295,7 +295,7 @@ gem 'state_machines-activerecord', '~> 0.8.0', feature
+@@ -291,7 +291,7 @@ gem 'state_machines-activerecord', '~> 0.8.0', feature
  gem 'state_machines-activerecord', '~> 0.8.0', feature_category: :shared
  
  # Background jobs
@@ -47,23 +47,16 @@
  gem 'sidekiq-cron', '~> 1.12.0', feature_category: :scalability
  gem 'gitlab-sidekiq-fetcher',
    path: 'vendor/gems/sidekiq-reliable-fetch',
-@@ -433,7 +433,7 @@ gem 'snowplow-tracker', '~> 0.8.0', feature_category: 
- gem 'snowplow-tracker', '~> 0.8.0', feature_category: :product_analytics
- 
- # Metrics
--gem 'webrick', '~> 1.8.1', require: false, feature_category: :shared
-+gem 'webrick', '~> 1.8', require: false, feature_category: :shared
- gem 'prometheus-client-mmap', '~> 1.2.8', require: 'prometheus/client', feature_category: :shared
- 
- # Event-driven reactor for Ruby
-@@ -475,140 +475,15 @@ gem 'warning', '~> 1.5.0', feature_category: :shared
+@@ -471,143 +471,15 @@ gem 'warning', '~> 1.5.0', feature_category: :shared
  
  gem 'warning', '~> 1.5.0', feature_category: :shared
  
 -group :development do
 -  gem 'lefthook', '~> 1.11.0', require: false, feature_category: :tooling
 -  gem 'rubocop', feature_category: :tooling
--  gem 'solargraph', '~> 0.47.2', require: false, feature_category: :shared
+-
+-  gem 'solargraph', '~> 0.54.0', require: false, feature_category: :shared
+-  gem 'solargraph-rspec', '~> 0.5.1', require: false, feature_category: :shared
 -
 -  gem 'letter_opener_web', '~> 3.0.0', feature_category: :shared
 -  gem 'lookbook', '~> 2.3', feature_category: :shared
@@ -90,9 +83,9 @@
 -end
 -
 -group :development, :test do
--  gem 'deprecation_toolkit', '~> 1.5.1', require: false, feature_category: :shared
+-  gem 'deprecation_toolkit', '~> 2.2.3', require: false, feature_category: :shared
 -  gem 'bullet', '~> 7.2.0', feature_category: :shared
--  gem 'parser', '= 3.3.7.1', feature_category: :shared
+-  gem 'parser', '= 3.3.8.0', feature_category: :shared
 -  gem 'pry-byebug', feature_category: :shared
 -  gem 'pry-rails', '~> 0.3.9', feature_category: :shared
 -  gem 'pry-shell', '~> 0.6.4', feature_category: :shared
@@ -120,7 +113,7 @@
 -  gem 'influxdb-client', '~> 3.1', require: false, feature_category: :tooling
 -
 -  gem 'knapsack', '~> 4.0.0', feature_category: :tooling
--  gem 'crystalball', '~> 0.7.0', require: false, feature_category: :tooling
+-  gem 'gitlab-crystalball', '~> 0.7.2', require: false, feature_category: :tooling
 -  gem 'test_file_finder', '~> 0.3.1', feature_category: :tooling
 -
 -  gem 'simple_po_parser', '~> 1.1.6', require: false, feature_category: :shared
@@ -144,7 +137,7 @@
 -end
 -
  group :development, :test, :danger do
-   gem 'gitlab-dangerfiles', '~> 4.8.0', require: false, feature_category: :tooling
+   gem 'gitlab-dangerfiles', '~> 4.9.0', require: false, feature_category: :tooling
  end
  
 -group :development, :test, :coverage do
@@ -187,17 +180,18 @@
 -  gem 'rspec_junit_formatter', feature_category: :shared
 -  gem 'guard-rspec', feature_category: :shared
 -  gem 'axe-core-rspec', '~> 4.10.0', feature_category: :tooling
+-  gem 'state_machines-rspec', '~> 0.6', feature_category: :shared
 -
 -  # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
 -  gem 'derailed_benchmarks', require: false, feature_category: :shared
 -
--  gem 'gitlab_quality-test_tooling', '~> 2.8.0', require: false, feature_category: :tooling
+-  gem 'gitlab_quality-test_tooling', '~> 2.10.0', require: false, feature_category: :tooling
 -end
 -
  gem 'octokit', '~> 9.0', feature_category: :importers
  # Needed by octokit: https://github.com/octokit/octokit.rb/pull/1688
  gem 'faraday-multipart', '~> 1.0', feature_category: :importers
-@@ -643,16 +518,16 @@ gem 'spamcheck', '~> 1.3.0', feature_category: :inside
+@@ -642,16 +514,16 @@ gem 'spamcheck', '~> 1.3.0', feature_category: :inside
  gem 'spamcheck', '~> 1.3.0', feature_category: :insider_threat
  
  # Gitaly GRPC protocol definitions
@@ -205,8 +199,8 @@
 +gem 'gitaly', '~> 17.8', feature_category: :gitaly
  
  # KAS GRPC protocol definitions
--gem 'gitlab-kas-grpc', '~> 17.9.0.pre.rc2', feature_category: :deployment_management
-+gem 'gitlab-kas-grpc', '~> 17.9', feature_category: :deployment_management
+-gem 'gitlab-kas-grpc', '~> 17.11.0', feature_category: :deployment_management
++gem 'gitlab-kas-grpc', '~> 18.0', feature_category: :deployment_management
  
  # Lock the version before issues below are resolved:
  # https://gitlab.com/gitlab-org/gitlab/-/issues/473169#note_2028352939
@@ -217,8 +211,8 @@
  
  gem 'google-protobuf', '~> 3.25', '>= 3.25.3', feature_category: :shared
  
-@@ -673,7 +548,7 @@ gem 'gitlab-net-dns', '~> 0.10.0', feature_category: :
- gem 'gitlab-net-dns', '~> 0.10.0', feature_category: :shared
+@@ -672,7 +544,7 @@ gem 'gitlab-net-dns', '~> 0.12.0', feature_category: :
+ gem 'gitlab-net-dns', '~> 0.12.0', feature_category: :shared
  
  # Countries list
 -gem 'countries', '~> 4.0.0', feature_category: :shared
@@ -226,7 +220,7 @@
  
  gem 'retriable', '~> 3.1.2', feature_category: :shared
  
-@@ -754,10 +629,15 @@ gem 'duo_api', '~> 1.3', feature_category: :system_acc
+@@ -753,10 +625,15 @@ gem 'duo_api', '~> 1.3', feature_category: :system_acc
  
  gem 'duo_api', '~> 1.3', feature_category: :system_access
  
@@ -237,9 +231,9 @@
 +
  gem 'gitlab-sdk', '~> 0.3.0', feature_category: :application_instrumentation
  
- gem 'paper_trail', '~> 15.0', feature_category: :shared
+ gem 'paper_trail', '~> 16.0', feature_category: :shared
  
 -gem "i18n_data", "~> 0.13.1", feature_category: :system_access
 +gem "i18n_data", "~> 0.13", feature_category: :system_access
  
- gem "gitlab-cloud-connector", "~> 1.5", require: 'gitlab/cloud_connector', feature_category: :cloud_connector
+ gem "gitlab-cloud-connector", "~> 1.11", require: 'gitlab/cloud_connector', feature_category: :cloud_connector
diff --git a/www/gitlab/files/patch-config_gitlab.yml.example b/www/gitlab/files/patch-config_gitlab.yml.example
index 09cb658db5d2..3ace91d53c65 100644
--- a/www/gitlab/files/patch-config_gitlab.yml.example
+++ b/www/gitlab/files/patch-config_gitlab.yml.example
@@ -1,6 +1,6 @@
---- config/gitlab.yml.example.orig	2025-04-16 04:05:48 UTC
+--- config/gitlab.yml.example.orig	2025-05-14 17:45:50 UTC
 +++ config/gitlab.yml.example
-@@ -484,7 +484,7 @@ production: &base
+@@ -489,7 +489,7 @@ production: &base
    ## GitLab Pages
    pages:
      enabled: false
@@ -9,7 +9,7 @@
      # The location where pages are stored (default: shared/pages).
      # path: shared/pages
  
-@@ -494,9 +494,9 @@ production: &base
+@@ -499,9 +499,9 @@ production: &base
      host: example.com
      port: 80 # Set to 443 if you serve the pages with HTTPS
      https: false # Set to true if you serve the pages with HTTPS
@@ -22,7 +22,7 @@
  
      # File that contains the shared secret key for verifying access for gitlab-pages.
      # Default is '.gitlab_pages_secret' relative to Rails.root (i.e. root of the GitLab app).
-@@ -1227,13 +1227,13 @@ production: &base
+@@ -1233,13 +1233,13 @@ production: &base
    repositories:
      storages: # You must have at least a `default` storage path.
        default:
@@ -38,7 +38,7 @@
      # archive_permissions: 0640 # Permissions for the resulting backup.tar file (default: 0600)
      # keep_time: 604800   # default: 0 (forever) (in seconds)
      # pg_schema: public     # default: nil, it means that all schemas will be backed up
-@@ -1268,12 +1268,12 @@ production: &base
+@@ -1274,12 +1274,12 @@ production: &base
  
    ## GitLab Shell settings
    gitlab_shell:
@@ -54,7 +54,7 @@
  
      # Git over HTTP
      upload_pack: true
-@@ -1288,7 +1288,7 @@ production: &base
+@@ -1294,7 +1294,7 @@ production: &base
    workhorse:
      # File that contains the secret key for verifying access for gitlab-workhorse.
      # Default is '.gitlab_workhorse_secret' relative to Rails.root (i.e. root of the GitLab app).
@@ -63,7 +63,7 @@
  
    cell:
      # enabled: false
-@@ -1306,7 +1306,7 @@ production: &base
+@@ -1312,7 +1312,7 @@ production: &base
      # enabled: true
      # File that contains the secret key for verifying access for gitlab-kas.
      # Default is '.gitlab_kas_secret' relative to Rails.root (i.e. root of the GitLab app).
@@ -72,7 +72,7 @@
  
      # The URL to the external KAS API (used by the Kubernetes agents)
      # external_url: wss://kas.example.com
-@@ -1333,13 +1333,13 @@ production: &base
+@@ -1339,13 +1339,13 @@ production: &base
  
    ## GitLab Elasticsearch settings
    elasticsearch:
@@ -88,7 +88,7 @@
  
    ## Webpack settings
    # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running
-@@ -1360,18 +1360,18 @@ production: &base
+@@ -1366,18 +1366,18 @@ production: &base
  
      # Sidekiq exporter is a dedicated Prometheus metrics server optionally running alongside Sidekiq.
      sidekiq_exporter:
@@ -114,7 +114,7 @@
  
      # Web exporter is a dedicated Prometheus metrics server optionally running alongside Puma.
      web_exporter:
-@@ -1598,13 +1598,13 @@ test:
+@@ -1604,13 +1604,13 @@ test:
          gitaly_address: unix:tmp/tests/gitaly/praefect.socket
  
    gitaly:
diff --git a/www/gitlab/files/patch-config_initializers_1__settings.rb b/www/gitlab/files/patch-config_initializers_1__settings.rb
index 2c8adc9a51e9..6a3c4491eb22 100644
--- a/www/gitlab/files/patch-config_initializers_1__settings.rb
+++ b/www/gitlab/files/patch-config_initializers_1__settings.rb
@@ -1,6 +1,6 @@
---- config/initializers/1_settings.rb.orig	2025-03-19 10:41:02 UTC
+--- config/initializers/1_settings.rb.orig	2025-05-14 17:45:50 UTC
 +++ config/initializers/1_settings.rb
-@@ -215,11 +215,7 @@ Settings.gitlab['ssh_user'] ||= Settings.gitlab.user
+@@ -216,11 +216,7 @@ Settings.gitlab['ssh_user'] ||= Settings.gitlab.user
  Settings.gitlab['user'] ||= 'git'
  # External configuration may cause the ssh user to differ from the GitLab user
  Settings.gitlab['ssh_user'] ||= Settings.gitlab.user
diff --git a/www/gitlab/files/patch-gems_gitlab-backup-cli_gitlab-backup-cli.gemspec b/www/gitlab/files/patch-gems_gitlab-backup-cli_gitlab-backup-cli.gemspec
index 7346dbb850eb..9844d39df8d4 100644
--- a/www/gitlab/files/patch-gems_gitlab-backup-cli_gitlab-backup-cli.gemspec
+++ b/www/gitlab/files/patch-gems_gitlab-backup-cli_gitlab-backup-cli.gemspec
@@ -1,15 +1,15 @@
---- gems/gitlab-backup-cli/gitlab-backup-cli.gemspec.orig	2025-03-19 10:41:02 UTC
+--- gems/gitlab-backup-cli/gitlab-backup-cli.gemspec.orig	2025-05-14 17:45:50 UTC
 +++ gems/gitlab-backup-cli/gitlab-backup-cli.gemspec
-@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
- 
+@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
    spec.add_dependency "activerecord", ">= 7"
    spec.add_dependency "activesupport", ">= 7"
+   spec.add_dependency "bigdecimal", "~> 3.1"
 -  spec.add_dependency "googleauth", "~> 1.8.1" # https://gitlab.com/gitlab-org/gitlab/-/issues/449019
 +  spec.add_dependency "googleauth", "~> 1.8" # https://gitlab.com/gitlab-org/gitlab/-/issues/449019
    spec.add_dependency "google-cloud-storage_transfer", "~> 1.2.0"
+   spec.add_dependency "mutex_m", "~> 0.3"
    spec.add_dependency "pg", "~> 1.5.6"
-   spec.add_dependency "rainbow", "~> 3.0"
-@@ -38,11 +38,11 @@ Gem::Specification.new do |spec|
+@@ -40,11 +40,11 @@ Gem::Specification.new do |spec|
    spec.add_dependency "concurrent-ruby", "~> 1.1"
    spec.add_dependency "faraday", "~> 2"
    spec.add_dependency "google-protobuf", "~> 3.25", ">= 3.25.3"
diff --git a/www/gitlab/pkg-message b/www/gitlab/pkg-message
index 6428be5f3115..59992ca06610 100644
--- a/www/gitlab/pkg-message
+++ b/www/gitlab/pkg-message
@@ -6,7 +6,7 @@ Gitlab was installed successfully.
 You now need to set up the various components of Gitlab, so please
 follow the instructions in the guide at:
 
-https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/install/17.11-freebsd.md
+https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/install/18.0-freebsd.md
 EOM
   type: install
 }
@@ -20,7 +20,7 @@ EOM
 If you just installed an major upgrade of GitLab, for example you
 switched from 17.9.x to 17.10.x, please follow the instructions in the guide at:
 
-https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/update/17.10-17.11-freebsd.md
+https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/update/17.11-18.0-freebsd.md
 
 If you just installed an minor upgrade of GitLab please follow
 the instructions in the guide at: