git: cc7c4a803cd3 - main - www/gitlab: new ports required for 18.7.0

From: Matthias Fechner <mfechner_at_FreeBSD.org>
Date: Fri, 02 Jan 2026 07:12:01 UTC
The branch main has been updated by mfechner:

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

commit cc7c4a803cd3ca6a24bbbd51bbe1667a47884077
Author:     Matthias Fechner <mfechner@FreeBSD.org>
AuthorDate: 2025-12-31 08:50:50 +0000
Commit:     Matthias Fechner <mfechner@FreeBSD.org>
CommitDate: 2026-01-02 06:52:42 +0000

    www/gitlab: new ports required for 18.7.0
---
 devel/Makefile                                     |   4 +
 devel/rubygem-execjs-gitlab/Makefile               |  21 +++
 devel/rubygem-execjs-gitlab/distinfo               |   3 +
 .../files/patch-lib_execjs_runtimes.rb             |  11 ++
 devel/rubygem-execjs-gitlab/pkg-descr              |   1 +
 devel/rubygem-gitlab_query_language/Makefile       |  42 +++++
 .../rubygem-gitlab_query_language/Makefile.crates  |  87 ++++++++++
 devel/rubygem-gitlab_query_language/distinfo       | 177 +++++++++++++++++++++
 devel/rubygem-gitlab_query_language/pkg-descr      |   4 +
 devel/rubygem-gvltools/Makefile                    |  15 ++
 devel/rubygem-gvltools/distinfo                    |   3 +
 devel/rubygem-gvltools/pkg-descr                   |   5 +
 devel/rubygem-state_machines-gitlab/Makefile       |  18 +++
 devel/rubygem-state_machines-gitlab/distinfo       |   3 +
 devel/rubygem-state_machines-gitlab/pkg-descr      |   2 +
 15 files changed, 396 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 923b3d975a3f..65d7ebb7985c 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -7351,6 +7351,7 @@
     SUBDIR += rubygem-excon0
     SUBDIR += rubygem-excon1-gitlab
     SUBDIR += rubygem-execjs
+    SUBDIR += rubygem-execjs-gitlab
     SUBDIR += rubygem-extlib
     SUBDIR += rubygem-extpp
     SUBDIR += rubygem-extras
@@ -7452,6 +7453,7 @@
     SUBDIR += rubygem-gitlab-labkit
     SUBDIR += rubygem-gitlab-license
     SUBDIR += rubygem-gitlab-pygments.rb
+    SUBDIR += rubygem-gitlab_query_language
     SUBDIR += rubygem-gitlab-sdk
     SUBDIR += rubygem-gitlab-security_report_schemas
     SUBDIR += rubygem-gitlab_chronic_duration
@@ -7526,6 +7528,7 @@
     SUBDIR += rubygem-grpc-google-iam-v1
     SUBDIR += rubygem-grpc-google-iam-v1-gitlab
     SUBDIR += rubygem-guess_html_encoding
+    SUBDIR += rubygem-gvltools
     SUBDIR += rubygem-gyoku
     SUBDIR += rubygem-hamster
     SUBDIR += rubygem-hana
@@ -8079,6 +8082,7 @@
     SUBDIR += rubygem-stackprof
     SUBDIR += rubygem-state_machine
     SUBDIR += rubygem-state_machines
+    SUBDIR += rubygem-state_machines-gitlab
     SUBDIR += rubygem-statsd
     SUBDIR += rubygem-statsd-instrument
     SUBDIR += rubygem-statsd-ruby
diff --git a/devel/rubygem-execjs-gitlab/Makefile b/devel/rubygem-execjs-gitlab/Makefile
new file mode 100644
index 000000000000..7cda9ad1171f
--- /dev/null
+++ b/devel/rubygem-execjs-gitlab/Makefile
@@ -0,0 +1,21 @@
+PORTNAME=	execjs
+PORTVERSION=	2.10.0
+CATEGORIES=	devel rubygems
+MASTER_SITES=	RG
+PKGNAMESUFFIX=	-gitlab
+
+MAINTAINER=	mfechner@FreeBSD.org
+COMMENT=	ExecJS lets you run JavaScript code from Ruby
+WWW=		https://github.com/rails/execjs
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/MIT-LICENSE
+
+USES=		gem nodejs:run,20
+
+NO_ARCH=	yes
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/lib/execjs/runtimes.rb
+
+.include <bsd.port.mk>
diff --git a/devel/rubygem-execjs-gitlab/distinfo b/devel/rubygem-execjs-gitlab/distinfo
new file mode 100644
index 000000000000..79ea0d1ab9a5
--- /dev/null
+++ b/devel/rubygem-execjs-gitlab/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1729927053
+SHA256 (rubygem/execjs-2.10.0.gem) = 6bcb8be8f0052ff9d370b65d1c080f2406656e150452a0abdb185a133048450d
+SIZE (rubygem/execjs-2.10.0.gem) = 18944
diff --git a/devel/rubygem-execjs-gitlab/files/patch-lib_execjs_runtimes.rb b/devel/rubygem-execjs-gitlab/files/patch-lib_execjs_runtimes.rb
new file mode 100644
index 000000000000..718a1c098e82
--- /dev/null
+++ b/devel/rubygem-execjs-gitlab/files/patch-lib_execjs_runtimes.rb
@@ -0,0 +1,11 @@
+--- lib/execjs/runtimes.rb.orig	2021-06-28 15:24:59 UTC
++++ lib/execjs/runtimes.rb
+@@ -17,7 +17,7 @@ module ExecJS
+ 
+     Node = ExternalRuntime.new(
+       name:        "Node.js (V8)",
+-      command:     ["node", "nodejs"],
++      command:     ["%%LOCALBASE%%/bin/node", "node", "nodejs"],
+       runner_path: ExecJS.root + "/support/node_runner.js",
+       encoding:    'UTF-8'
+     )
diff --git a/devel/rubygem-execjs-gitlab/pkg-descr b/devel/rubygem-execjs-gitlab/pkg-descr
new file mode 100644
index 000000000000..b40d86c8f043
--- /dev/null
+++ b/devel/rubygem-execjs-gitlab/pkg-descr
@@ -0,0 +1 @@
+ExecJS lets you run JavaScript code from Ruby.
diff --git a/devel/rubygem-gitlab_query_language/Makefile b/devel/rubygem-gitlab_query_language/Makefile
new file mode 100644
index 000000000000..5bd345c68b5c
--- /dev/null
+++ b/devel/rubygem-gitlab_query_language/Makefile
@@ -0,0 +1,42 @@
+PORTNAME=	gitlab_query_language
+PORTVERSION=	0.20.11
+CATEGORIES=	devel rubygems
+
+MAINTAINER=	mfechner@FreeBSD.org
+COMMENT=	Library  to compile GitLab Query Language (GLQL) queries to GraphQL
+WWW=		https://gitlab.com/gitlab-org/glql/-/tree/main/glql_rb
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+RUN_DEPENDS=	rubygem-rb_sys>=0.9.91<0.10:lang/rubygem-rb_sys
+
+USES=		cargo gem gmake llvm:build
+
+# Required to be able to build the rust library the gem uses
+GEMFILES:=	${DISTNAME}.gem
+DISTFILES+=	${DISTNAME}.gem
+GEMS_SKIP_SUBDIR=	1
+CARGO_VENDOR_DIR=	${WRKSRC}/ext/gitlab_query_language/cargo-crates
+CARGO_CARGOTOML=	${WRKSRC}/ext/gitlab_query_language/Cargo.toml
+CARGO_BUILD=	no
+CARGO_INSTALL=	no
+CARGO_ENV+=	CARGO_NET_OFFLINE=true
+GEM_ENV+=	MAKE=gmake \
+		${CARGO_ENV}
+
+# update the crates file with:
+# make makesum
+# make clean extract
+# make cargo-crates > Makefile.crates
+# make makesum
+
+post-extract:
+	# change the gitlab external cargo (glql) to use already vendored local path
+	@${MKDIR} ${WRKSRC}/ext/gitlab_query_language/vendor
+	@${CP} -a ${WRKDIR}/glql-* ${WRKSRC}/ext/gitlab_query_language/vendor/glql
+	@${SED} -i '' \
+		-e 's|glql = { git = .* }|glql = { path = "${WRKSRC}/ext/gitlab_query_language/vendor/glql" }|' \
+		${WRKSRC}/ext/gitlab_query_language/Cargo.toml
+
+.include <bsd.port.mk>
diff --git a/devel/rubygem-gitlab_query_language/Makefile.crates b/devel/rubygem-gitlab_query_language/Makefile.crates
new file mode 100644
index 000000000000..258ec224131a
--- /dev/null
+++ b/devel/rubygem-gitlab_query_language/Makefile.crates
@@ -0,0 +1,87 @@
+CARGO_CRATES=	aho-corasick-1.1.3 \
+		android_system_properties-0.1.5 \
+		arraydeque-0.5.1 \
+		autocfg-1.5.0 \
+		bindgen-0.69.5 \
+		bitflags-2.10.0 \
+		block-buffer-0.10.4 \
+		bumpalo-3.19.0 \
+		bytes-1.10.1 \
+		cc-1.2.43 \
+		cexpr-0.6.0 \
+		cfg-if-1.0.4 \
+		chrono-0.4.42 \
+		clang-sys-1.8.1 \
+		combine-4.6.7 \
+		core-foundation-sys-0.8.7 \
+		cpufeatures-0.2.17 \
+		crypto-common-0.1.6 \
+		digest-0.10.7 \
+		either-1.15.0 \
+		encoding_rs-0.8.35 \
+		equivalent-1.0.2 \
+		find-msvc-tools-0.1.4 \
+		foldhash-0.1.5 \
+		generic-array-0.14.9 \
+		glob-0.3.3 \
+		graphql-parser-0.4.1 \
+		hashbrown-0.15.5 \
+		hashbrown-0.16.0 \
+		hashlink-0.10.0 \
+		heck-0.5.0 \
+		iana-time-zone-0.1.64 \
+		iana-time-zone-haiku-0.1.2 \
+		indexmap-2.12.0 \
+		itertools-0.12.1 \
+		itoa-1.0.15 \
+		js-sys-0.3.81 \
+		lazy_static-1.5.0 \
+		lazycell-1.3.0 \
+		libc-0.2.177 \
+		libloading-0.8.9 \
+		log-0.4.28 \
+		magnus-0.6.4 \
+		magnus-macros-0.6.0 \
+		memchr-2.7.6 \
+		minimal-lexical-0.2.1 \
+		nom-7.1.3 \
+		num-traits-0.2.19 \
+		once_cell-1.21.3 \
+		proc-macro2-1.0.103 \
+		quote-1.0.41 \
+		rb-sys-0.9.117 \
+		rb-sys-build-0.9.117 \
+		rb-sys-env-0.1.2 \
+		regex-1.12.2 \
+		regex-automata-0.4.13 \
+		regex-syntax-0.8.8 \
+		rustc-hash-1.1.0 \
+		rustversion-1.0.22 \
+		ryu-1.0.20 \
+		seq-macro-0.3.6 \
+		serde-1.0.228 \
+		serde_core-1.0.228 \
+		serde_derive-1.0.228 \
+		serde_json-1.0.145 \
+		sha2-0.10.9 \
+		shell-words-1.1.0 \
+		shlex-1.3.0 \
+		syn-2.0.108 \
+		thiserror-1.0.69 \
+		thiserror-impl-1.0.69 \
+		typenum-1.19.0 \
+		unicode-ident-1.0.20 \
+		version_check-0.9.5 \
+		wasm-bindgen-0.2.104 \
+		wasm-bindgen-backend-0.2.104 \
+		wasm-bindgen-macro-0.2.104 \
+		wasm-bindgen-macro-support-0.2.104 \
+		wasm-bindgen-shared-0.2.104 \
+		windows-core-0.62.2 \
+		windows-implement-0.60.2 \
+		windows-interface-0.59.3 \
+		windows-link-0.2.1 \
+		windows-result-0.4.1 \
+		windows-strings-0.5.1 \
+		yaml-rust2-0.10.4 \
+		glql@git+https://gitlab.com/gitlab-org/glql.git?tag=v0.20.11\#504291b82a035931b5c03976ee900d052b9684f9
diff --git a/devel/rubygem-gitlab_query_language/distinfo b/devel/rubygem-gitlab_query_language/distinfo
new file mode 100644
index 000000000000..4e9db08d2095
--- /dev/null
+++ b/devel/rubygem-gitlab_query_language/distinfo
@@ -0,0 +1,177 @@
+TIMESTAMP = 1766903575
+SHA256 (gitlab_query_language-0.20.11.gem) = 1e80fa321f01940a00313f7fe42dcf74d2203dc564fe2d9becf5e0337c355419
+SIZE (gitlab_query_language-0.20.11.gem) = 13824
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
+SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
+SHA256 (rust/crates/arraydeque-0.5.1.crate) = 7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236
+SIZE (rust/crates/arraydeque-0.5.1.crate) = 17671
+SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
+SIZE (rust/crates/autocfg-1.5.0.crate) = 18729
+SHA256 (rust/crates/bindgen-0.69.5.crate) = 271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088
+SIZE (rust/crates/bindgen-0.69.5.crate) = 221128
+SHA256 (rust/crates/bitflags-2.10.0.crate) = 812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3
+SIZE (rust/crates/bitflags-2.10.0.crate) = 48427
+SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
+SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538
+SHA256 (rust/crates/bumpalo-3.19.0.crate) = 46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43
+SIZE (rust/crates/bumpalo-3.19.0.crate) = 96414
+SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a
+SIZE (rust/crates/bytes-1.10.1.crate) = 76779
+SHA256 (rust/crates/cc-1.2.43.crate) = 739eb0f94557554b3ca9a86d2d37bebd49c5e6d0c1d2bda35ba5bdac830befc2
+SIZE (rust/crates/cc-1.2.43.crate) = 91384
+SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766
+SIZE (rust/crates/cexpr-0.6.0.crate) = 17966
+SHA256 (rust/crates/cfg-if-1.0.4.crate) = 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801
+SIZE (rust/crates/cfg-if-1.0.4.crate) = 9360
+SHA256 (rust/crates/chrono-0.4.42.crate) = 145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2
+SIZE (rust/crates/chrono-0.4.42.crate) = 238174
+SHA256 (rust/crates/clang-sys-1.8.1.crate) = 0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4
+SIZE (rust/crates/clang-sys-1.8.1.crate) = 44009
+SHA256 (rust/crates/combine-4.6.7.crate) = ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd
+SIZE (rust/crates/combine-4.6.7.crate) = 134808
+SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
+SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
+SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280
+SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466
+SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3
+SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
+SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292
+SIZE (rust/crates/digest-0.10.7.crate) = 19557
+SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
+SIZE (rust/crates/either-1.15.0.crate) = 20114
+SHA256 (rust/crates/encoding_rs-0.8.35.crate) = 75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3
+SIZE (rust/crates/encoding_rs-0.8.35.crate) = 1381050
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/find-msvc-tools-0.1.4.crate) = 52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127
+SIZE (rust/crates/find-msvc-tools-0.1.4.crate) = 30817
+SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2
+SIZE (rust/crates/foldhash-0.1.5.crate) = 21901
+SHA256 (rust/crates/generic-array-0.14.9.crate) = 4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2
+SIZE (rust/crates/generic-array-0.14.9.crate) = 17439
+SHA256 (rust/crates/glob-0.3.3.crate) = 0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280
+SIZE (rust/crates/glob-0.3.3.crate) = 22861
+SHA256 (rust/crates/graphql-parser-0.4.1.crate) = 7a818c0d883d7c0801df27be910917750932be279c7bc82dc541b8769425f409
+SIZE (rust/crates/graphql-parser-0.4.1.crate) = 36118
+SHA256 (rust/crates/hashbrown-0.15.5.crate) = 9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1
+SIZE (rust/crates/hashbrown-0.15.5.crate) = 140908
+SHA256 (rust/crates/hashbrown-0.16.0.crate) = 5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d
+SIZE (rust/crates/hashbrown-0.16.0.crate) = 141708
+SHA256 (rust/crates/hashlink-0.10.0.crate) = 7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1
+SIZE (rust/crates/hashlink-0.10.0.crate) = 29402
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/iana-time-zone-0.1.64.crate) = 33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb
+SIZE (rust/crates/iana-time-zone-0.1.64.crate) = 33152
+SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f
+SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185
+SHA256 (rust/crates/indexmap-2.12.0.crate) = 6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f
+SIZE (rust/crates/indexmap-2.12.0.crate) = 100446
+SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569
+SIZE (rust/crates/itertools-0.12.1.crate) = 137761
+SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
+SIZE (rust/crates/itoa-1.0.15.crate) = 11231
+SHA256 (rust/crates/js-sys-0.3.81.crate) = ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305
+SIZE (rust/crates/js-sys-0.3.81.crate) = 56399
+SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
+SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
+SHA256 (rust/crates/lazycell-1.3.0.crate) = 830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55
+SIZE (rust/crates/lazycell-1.3.0.crate) = 12502
+SHA256 (rust/crates/libc-0.2.177.crate) = 2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976
+SIZE (rust/crates/libc-0.2.177.crate) = 792045
+SHA256 (rust/crates/libloading-0.8.9.crate) = d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55
+SIZE (rust/crates/libloading-0.8.9.crate) = 30222
+SHA256 (rust/crates/log-0.4.28.crate) = 34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432
+SIZE (rust/crates/log-0.4.28.crate) = 51131
+SHA256 (rust/crates/magnus-0.6.4.crate) = b1597ef40aa8c36be098249e82c9a20cf7199278ac1c1a1a995eeead6a184479
+SIZE (rust/crates/magnus-0.6.4.crate) = 170454
+SHA256 (rust/crates/magnus-macros-0.6.0.crate) = 5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3
+SIZE (rust/crates/magnus-macros-0.6.0.crate) = 6642
+SHA256 (rust/crates/memchr-2.7.6.crate) = f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273
+SIZE (rust/crates/memchr-2.7.6.crate) = 97616
+SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
+SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
+SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
+SIZE (rust/crates/nom-7.1.3.crate) = 117570
+SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
+SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/proc-macro2-1.0.103.crate) = 5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8
+SIZE (rust/crates/proc-macro2-1.0.103.crate) = 60024
+SHA256 (rust/crates/quote-1.0.41.crate) = ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1
+SIZE (rust/crates/quote-1.0.41.crate) = 31408
+SHA256 (rust/crates/rb-sys-0.9.117.crate) = f900d1ce4629a2ebffaf5de74bd8f9c1188d4c5ed406df02f97e22f77a006f44
+SIZE (rust/crates/rb-sys-0.9.117.crate) = 28664
+SHA256 (rust/crates/rb-sys-build-0.9.117.crate) = ef1e9c857028f631056bcd6d88cec390c751e343ce2223ddb26d23eb4a151d59
+SIZE (rust/crates/rb-sys-build-0.9.117.crate) = 24740
+SHA256 (rust/crates/rb-sys-env-0.1.2.crate) = a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb
+SIZE (rust/crates/rb-sys-env-0.1.2.crate) = 9203
+SHA256 (rust/crates/regex-1.12.2.crate) = 843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4
+SIZE (rust/crates/regex-1.12.2.crate) = 163843
+SHA256 (rust/crates/regex-automata-0.4.13.crate) = 5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c
+SIZE (rust/crates/regex-automata-0.4.13.crate) = 625250
+SHA256 (rust/crates/regex-syntax-0.8.8.crate) = 7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58
+SIZE (rust/crates/regex-syntax-0.8.8.crate) = 359141
+SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2
+SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331
+SHA256 (rust/crates/rustversion-1.0.22.crate) = b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d
+SIZE (rust/crates/rustversion-1.0.22.crate) = 21096
+SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
+SIZE (rust/crates/ryu-1.0.20.crate) = 48738
+SHA256 (rust/crates/seq-macro-0.3.6.crate) = 1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc
+SIZE (rust/crates/seq-macro-0.3.6.crate) = 16031
+SHA256 (rust/crates/serde-1.0.228.crate) = 9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e
+SIZE (rust/crates/serde-1.0.228.crate) = 83652
+SHA256 (rust/crates/serde_core-1.0.228.crate) = 41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad
+SIZE (rust/crates/serde_core-1.0.228.crate) = 63111
+SHA256 (rust/crates/serde_derive-1.0.228.crate) = d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79
+SIZE (rust/crates/serde_derive-1.0.228.crate) = 59605
+SHA256 (rust/crates/serde_json-1.0.145.crate) = 402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c
+SIZE (rust/crates/serde_json-1.0.145.crate) = 155748
+SHA256 (rust/crates/sha2-0.10.9.crate) = a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283
+SIZE (rust/crates/sha2-0.10.9.crate) = 29271
+SHA256 (rust/crates/shell-words-1.1.0.crate) = 24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde
+SIZE (rust/crates/shell-words-1.1.0.crate) = 9871
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/syn-2.0.108.crate) = da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917
+SIZE (rust/crates/syn-2.0.108.crate) = 301754
+SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
+SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
+SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
+SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
+SHA256 (rust/crates/typenum-1.19.0.crate) = 562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb
+SIZE (rust/crates/typenum-1.19.0.crate) = 76414
+SHA256 (rust/crates/unicode-ident-1.0.20.crate) = 462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06
+SIZE (rust/crates/unicode-ident-1.0.20.crate) = 47416
+SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
+SIZE (rust/crates/version_check-0.9.5.crate) = 15554
+SHA256 (rust/crates/wasm-bindgen-0.2.104.crate) = c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d
+SIZE (rust/crates/wasm-bindgen-0.2.104.crate) = 47345
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.104.crate) = 671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19
+SIZE (rust/crates/wasm-bindgen-backend-0.2.104.crate) = 32230
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.104.crate) = 7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119
+SIZE (rust/crates/wasm-bindgen-macro-0.2.104.crate) = 9390
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.104.crate) = 9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.104.crate) = 26411
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.104.crate) = bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1
+SIZE (rust/crates/wasm-bindgen-shared-0.2.104.crate) = 9057
+SHA256 (rust/crates/windows-core-0.62.2.crate) = b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb
+SIZE (rust/crates/windows-core-0.62.2.crate) = 36932
+SHA256 (rust/crates/windows-implement-0.60.2.crate) = 053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf
+SIZE (rust/crates/windows-implement-0.60.2.crate) = 15325
+SHA256 (rust/crates/windows-interface-0.59.3.crate) = 3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358
+SIZE (rust/crates/windows-interface-0.59.3.crate) = 11809
+SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5
+SIZE (rust/crates/windows-link-0.2.1.crate) = 6133
+SHA256 (rust/crates/windows-result-0.4.1.crate) = 7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5
+SIZE (rust/crates/windows-result-0.4.1.crate) = 13381
+SHA256 (rust/crates/windows-strings-0.5.1.crate) = 7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091
+SIZE (rust/crates/windows-strings-0.5.1.crate) = 13966
+SHA256 (rust/crates/yaml-rust2-0.10.4.crate) = 2462ea039c445496d8793d052e13787f2b90e750b833afee748e601c17621ed9
+SIZE (rust/crates/yaml-rust2-0.10.4.crate) = 76453
+SHA256 (gitlab-org-glql-v0.20.11_GL0.tar.gz) = 4815efdd9ea0415a123fb3639e449ee50dae0e75e1962276235d67e253078728
+SIZE (gitlab-org-glql-v0.20.11_GL0.tar.gz) = 257124
diff --git a/devel/rubygem-gitlab_query_language/pkg-descr b/devel/rubygem-gitlab_query_language/pkg-descr
new file mode 100644
index 000000000000..62ca9f3930da
--- /dev/null
+++ b/devel/rubygem-gitlab_query_language/pkg-descr
@@ -0,0 +1,4 @@
+Ruby bindings for the GitLab Query Language (GLQL) compiler.
+
+This gem provides a native Ruby interface to compile GLQL queries into GraphQL,
+powered by Rust through native extensions.
diff --git a/devel/rubygem-gvltools/Makefile b/devel/rubygem-gvltools/Makefile
new file mode 100644
index 000000000000..24ae38bfe8c4
--- /dev/null
+++ b/devel/rubygem-gvltools/Makefile
@@ -0,0 +1,15 @@
+PORTNAME=	gvltools
+PORTVERSION=	0.4.0
+CATEGORIES=	devel rubygems
+MASTER_SITES=	RG
+
+MAINTAINER=	mfechner@FreeBSD.org
+COMMENT=	Set of GVL instrumentation tools
+WWW=		https://github.com/Shopify/gvltools
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+USES=		gem
+
+.include <bsd.port.mk>
diff --git a/devel/rubygem-gvltools/distinfo b/devel/rubygem-gvltools/distinfo
new file mode 100644
index 000000000000..ded5d74b8591
--- /dev/null
+++ b/devel/rubygem-gvltools/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1766207903
+SHA256 (rubygem/gvltools-0.4.0.gem) = dc602bff42931a2b985bd4f27bafeae728fa61bed014aaafdb9e7c246616965e
+SIZE (rubygem/gvltools-0.4.0.gem) = 11776
diff --git a/devel/rubygem-gvltools/pkg-descr b/devel/rubygem-gvltools/pkg-descr
new file mode 100644
index 000000000000..5b85af2b56b0
--- /dev/null
+++ b/devel/rubygem-gvltools/pkg-descr
@@ -0,0 +1,5 @@
+Set of GVL instrumentation tools
+
+GVLTools uses the GVL instrumentation API added in Ruby 3.2.0.
+To make it easier to use, on older Rubies the gem will install and expose the
+same methods, but they won't have any effect and all metrics will report 0.
diff --git a/devel/rubygem-state_machines-gitlab/Makefile b/devel/rubygem-state_machines-gitlab/Makefile
new file mode 100644
index 000000000000..4ad7bc105a0c
--- /dev/null
+++ b/devel/rubygem-state_machines-gitlab/Makefile
@@ -0,0 +1,18 @@
+PORTNAME=	state_machines
+PORTVERSION=	0.100.0
+CATEGORIES=	devel rubygems
+MASTER_SITES=	RG
+PKGNAMESUFFIX=	-gitlab
+
+MAINTAINER=	mfechner@FreeBSD.org
+COMMENT=	Support for creating state machines for attributes on any Ruby class
+WWW=		https://github.com/state-machines/state_machines
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+USES=		gem
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/devel/rubygem-state_machines-gitlab/distinfo b/devel/rubygem-state_machines-gitlab/distinfo
new file mode 100644
index 000000000000..3c34e85cbf37
--- /dev/null
+++ b/devel/rubygem-state_machines-gitlab/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1766724979
+SHA256 (rubygem/state_machines-0.100.0.gem) = dfabe6b3f6a0577bf14cd308dc01a9066452d2a2cae80e86f55aa4001737dcb6
+SIZE (rubygem/state_machines-0.100.0.gem) = 87040
diff --git a/devel/rubygem-state_machines-gitlab/pkg-descr b/devel/rubygem-state_machines-gitlab/pkg-descr
new file mode 100644
index 000000000000..81c2f6c35559
--- /dev/null
+++ b/devel/rubygem-state_machines-gitlab/pkg-descr
@@ -0,0 +1,2 @@
+State Machines adds support for creating state machines for attributes on any
+Ruby class.