summaryrefslogtreecommitdiff
path: root/dev-crystal
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
commitbfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch)
tree0d7a74b4463ee387f9cf9368ceb1b757f694f72a /dev-crystal
parentf716a9fe6455d39eef01e718aae68dae61c19704 (diff)
downloadbaldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'dev-crystal')
-rw-r--r--dev-crystal/athena-negotiation/Manifest2
-rw-r--r--dev-crystal/athena-negotiation/athena-negotiation-0.1.5-r1.ebuild22
-rw-r--r--dev-crystal/athena-negotiation/athena-negotiation-0.2.0-r1.ebuild22
-rw-r--r--dev-crystal/athena-negotiation/metadata.xml13
-rw-r--r--dev-crystal/athena-spec/Manifest3
-rw-r--r--dev-crystal/athena-spec/athena-spec-0.3.11-r1.ebuild19
-rw-r--r--dev-crystal/athena-spec/athena-spec-0.4.0-r1.ebuild27
-rw-r--r--dev-crystal/athena-spec/athena-spec-0.4.1.ebuild27
-rw-r--r--dev-crystal/athena-spec/metadata.xml13
-rw-r--r--dev-crystal/backtracer/Manifest2
-rw-r--r--dev-crystal/backtracer/backtracer-1.2.2-r1.ebuild16
-rw-r--r--dev-crystal/backtracer/backtracer-1.2.4-r1.ebuild16
-rw-r--r--dev-crystal/backtracer/metadata.xml12
-rw-r--r--dev-crystal/crystal-db/Manifest2
-rw-r--r--dev-crystal/crystal-db/crystal-db-0.13.1-r1.ebuild16
-rw-r--r--dev-crystal/crystal-db/crystal-db-0.14.0-r1.ebuild16
-rw-r--r--dev-crystal/crystal-db/metadata.xml12
-rw-r--r--dev-crystal/crystal-fnv/Manifest1
-rw-r--r--dev-crystal/crystal-fnv/crystal-fnv-0.1.3-r1.ebuild14
-rw-r--r--dev-crystal/crystal-fnv/metadata.xml12
-rw-r--r--dev-crystal/crystal-html5/Manifest2
-rw-r--r--dev-crystal/crystal-html5/crystal-html5-0.5.0-r1.ebuild16
-rw-r--r--dev-crystal/crystal-html5/crystal-html5-0.5.1.ebuild16
-rw-r--r--dev-crystal/crystal-html5/metadata.xml12
-rw-r--r--dev-crystal/crystal-pg/Manifest2
-rw-r--r--dev-crystal/crystal-pg/crystal-pg-0.28.0-r1.ebuild34
-rw-r--r--dev-crystal/crystal-pg/crystal-pg-0.29.0-r2.ebuild34
-rw-r--r--dev-crystal/crystal-pg/metadata.xml8
-rw-r--r--dev-crystal/crystal-sqlite3/Manifest2
-rw-r--r--dev-crystal/crystal-sqlite3/crystal-sqlite3-0.21.0-r1.ebuild21
-rw-r--r--dev-crystal/crystal-sqlite3/crystal-sqlite3-0.22.0-r1.ebuild23
-rw-r--r--dev-crystal/crystal-sqlite3/files/crystal-sqlite3-0.22.0-fix-uri-parsing.patch35
-rw-r--r--dev-crystal/crystal-sqlite3/metadata.xml19
-rw-r--r--dev-crystal/crystal-xpath2/Manifest1
-rw-r--r--dev-crystal/crystal-xpath2/crystal-xpath2-0.1.3-r1.ebuild16
-rw-r--r--dev-crystal/crystal-xpath2/metadata.xml12
-rw-r--r--dev-crystal/crystar/Manifest2
-rw-r--r--dev-crystal/crystar/crystar-0.3.1-r1.ebuild14
-rw-r--r--dev-crystal/crystar/crystar-0.4.0-r1.ebuild14
-rw-r--r--dev-crystal/crystar/metadata.xml12
-rw-r--r--dev-crystal/exception_page/Manifest2
-rw-r--r--dev-crystal/exception_page/exception_page-0.4.1-r1.ebuild30
-rw-r--r--dev-crystal/exception_page/exception_page-0.5.0-r1.ebuild29
-rw-r--r--dev-crystal/exception_page/metadata.xml16
-rw-r--r--dev-crystal/habitat/Manifest1
-rw-r--r--dev-crystal/habitat/habitat-0.4.9-r1.ebuild16
-rw-r--r--dev-crystal/habitat/metadata.xml12
-rw-r--r--dev-crystal/http_proxy/Manifest1
-rw-r--r--dev-crystal/http_proxy/http_proxy-0.12.0-r1.ebuild35
-rw-r--r--dev-crystal/http_proxy/metadata.xml15
-rw-r--r--dev-crystal/kemal/Manifest3
-rw-r--r--dev-crystal/kemal/kemal-1.7.3-r1.ebuild29
-rw-r--r--dev-crystal/kemal/kemal-1.8.0.ebuild29
-rw-r--r--dev-crystal/kemal/kemal-1.9.0.ebuild29
-rw-r--r--dev-crystal/kemal/metadata.xml12
-rw-r--r--dev-crystal/lucky_flow/Manifest1
-rw-r--r--dev-crystal/lucky_flow/lucky_flow-0.10.1-r1.ebuild26
-rw-r--r--dev-crystal/lucky_flow/metadata.xml12
-rw-r--r--dev-crystal/protodec/Manifest1
-rw-r--r--dev-crystal/protodec/metadata.xml15
-rw-r--r--dev-crystal/protodec/protodec-0.1.5-r2.ebuild35
-rw-r--r--dev-crystal/protodec/protodec-0.1.5-r3.ebuild35
-rw-r--r--dev-crystal/radix/Manifest1
-rw-r--r--dev-crystal/radix/metadata.xml12
-rw-r--r--dev-crystal/radix/radix-0.4.1-r1.ebuild16
-rw-r--r--dev-crystal/selenium/Manifest2
-rw-r--r--dev-crystal/selenium/metadata.xml15
-rw-r--r--dev-crystal/selenium/selenium-0.12.0-r1.ebuild37
-rw-r--r--dev-crystal/selenium/selenium-0.12.1-r1.ebuild38
-rw-r--r--dev-crystal/spectator/Manifest2
-rw-r--r--dev-crystal/spectator/metadata.xml16
-rw-r--r--dev-crystal/spectator/spectator-0.12.1-r1.ebuild42
-rw-r--r--dev-crystal/spectator/spectator-0.12.2-r1.ebuild51
-rw-r--r--dev-crystal/webdrivers/Manifest1
-rw-r--r--dev-crystal/webdrivers/metadata.xml15
-rw-r--r--dev-crystal/webdrivers/webdrivers-0.4.3-r2.ebuild31
-rw-r--r--dev-crystal/webless/Manifest2
-rw-r--r--dev-crystal/webless/metadata.xml15
-rw-r--r--dev-crystal/webless/webless-0.1.0-r1.ebuild22
-rw-r--r--dev-crystal/webless/webless-0.2.0-r1.ebuild22
-rw-r--r--dev-crystal/webmock/Manifest1
-rw-r--r--dev-crystal/webmock/files/webmock-0.14.0-fix-tests.patch43
-rw-r--r--dev-crystal/webmock/metadata.xml11
-rw-r--r--dev-crystal/webmock/webmock-0.14.0-r1.ebuild20
84 files changed, 1361 insertions, 0 deletions
diff --git a/dev-crystal/athena-negotiation/Manifest b/dev-crystal/athena-negotiation/Manifest
new file mode 100644
index 000000000000..5b2efd7bbb56
--- /dev/null
+++ b/dev-crystal/athena-negotiation/Manifest
@@ -0,0 +1,2 @@
+DIST athena-negotiation-0.1.5.tar.gz 11068 BLAKE2B 87153adda08a204247859091466e7e80bdd0e46fa7f940b372f433487ee96b20da566c6fb2f9a2248cc8212f08a09d4be5f151e6328af47d2f93b72fb799d44e SHA512 7b14d99abd4702f4ea1b20c12d9c2b38044febb698772f06e4954924a81ec69f3330c5d8024fa5f95a4fe232b0e18991701002bef5865f241f7b0d66d5da9a0b
+DIST athena-negotiation-0.2.0.tar.gz 11452 BLAKE2B 70212836007336213a5612f83db15c428ddfbef71fd1755b6a95bd9c96ff00fd5d6f1be10598d5d23d7ef6314f71f7395542a22eaecb8ec78ffa8775ebf175aa SHA512 1a60c457c916b06cb241b77948daf4baeaaa5c562e386982b25b07397435fb4cb953088df658a795ceab1c44432c86c050a912cc104c0648dcad2b631af888e0
diff --git a/dev-crystal/athena-negotiation/athena-negotiation-0.1.5-r1.ebuild b/dev-crystal/athena-negotiation/athena-negotiation-0.1.5-r1.ebuild
new file mode 100644
index 000000000000..9ae7366d0473
--- /dev/null
+++ b/dev-crystal/athena-negotiation/athena-negotiation-0.1.5-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+MY_PN="${PN#athena-}"
+DESCRIPTION="Framework agnostic content negotiation library"
+HOMEPAGE="https://github.com/athena-framework/negotiation"
+SRC_URI="https://github.com/athena-framework/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="test? ( dev-crystal/athena-spec )"
+
+DOCS=( {CHANGELOG,CONTRIBUTING,README}.md )
diff --git a/dev-crystal/athena-negotiation/athena-negotiation-0.2.0-r1.ebuild b/dev-crystal/athena-negotiation/athena-negotiation-0.2.0-r1.ebuild
new file mode 100644
index 000000000000..1f0d8007081c
--- /dev/null
+++ b/dev-crystal/athena-negotiation/athena-negotiation-0.2.0-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+MY_PN="${PN#athena-}"
+DESCRIPTION="Framework agnostic content negotiation library"
+HOMEPAGE="https://github.com/athena-framework/negotiation"
+SRC_URI="https://github.com/athena-framework/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="test? ( dev-crystal/athena-spec )"
+
+DOCS=( {CHANGELOG,CONTRIBUTING,README}.md )
diff --git a/dev-crystal/athena-negotiation/metadata.xml b/dev-crystal/athena-negotiation/metadata.xml
new file mode 100644
index 000000000000..8a6d62348ed2
--- /dev/null
+++ b/dev-crystal/athena-negotiation/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>George Dietrich</name>
+ <email>george@dietrich.app</email>
+ </maintainer>
+ <doc>https://athenaframework.org/Negotiation/</doc>
+ <remote-id type="github">athena-framework/negotiation</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/athena-spec/Manifest b/dev-crystal/athena-spec/Manifest
new file mode 100644
index 000000000000..38cbb78f6e6b
--- /dev/null
+++ b/dev-crystal/athena-spec/Manifest
@@ -0,0 +1,3 @@
+DIST athena-spec-0.3.11.tar.gz 12038 BLAKE2B 74badcebfe8bc8acf294c1655ddea2a84a47f0e3a82c7e37f77340ea6558d3f42211dc3016af0ff14689da98dee9e854b95eca2c9a91b856f3c7cd12fb2bcadc SHA512 4b07bf3d871638e24815db309d4c606a51a3cc6616f74ea60aab758463fd2fbc165f82e0bda9f850d9570245e6bb5cfea945923f2928bb404c8ef3a8cea35fc1
+DIST athena-spec-0.4.0.tar.gz 12728 BLAKE2B 8ed608bb734240f7a435541859cea39a57cc448d36ac2387b1ec39ef25f24e652990d46952f0048e6afabb9b8264b359921521d5087134e9740bceebd06d9278 SHA512 6733eb49a684b557cbfeb0f6593cfd334bbbb38aae83a3ce9c4093d164c5c588be19288adb36f7597be00069a11041cba38a6d9b10e3e441acb57a447a31c655
+DIST athena-spec-0.4.1.tar.gz 13161 BLAKE2B 416ea18f9ed290c65b57deb54b189ffe394619ab818669d34f6c760ec0b642d21d5c3d2c4635bb941c8534ea8da98dd34a6bcf50686a6e94cc0b769f3033c2fa SHA512 8041a1e1082301dc85c42fc6da1a7f6cac767f33cb95e1d4da11994b4593daf99495ccacac6d8d38518908ada66d7feb8b1904ede12c749a9ac1a036ff453fe0
diff --git a/dev-crystal/athena-spec/athena-spec-0.3.11-r1.ebuild b/dev-crystal/athena-spec/athena-spec-0.3.11-r1.ebuild
new file mode 100644
index 000000000000..8946e12fa9fc
--- /dev/null
+++ b/dev-crystal/athena-spec/athena-spec-0.3.11-r1.ebuild
@@ -0,0 +1,19 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+MY_PN="${PN#athena-}"
+DESCRIPTION="Common/helpful Spec compliant testing utilities"
+HOMEPAGE="
+ https://github.com/athena-framework/spec
+ https://athenaframework.org/Spec/
+"
+SRC_URI="https://github.com/athena-framework/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
diff --git a/dev-crystal/athena-spec/athena-spec-0.4.0-r1.ebuild b/dev-crystal/athena-spec/athena-spec-0.4.0-r1.ebuild
new file mode 100644
index 000000000000..8c9c112144d1
--- /dev/null
+++ b/dev-crystal/athena-spec/athena-spec-0.4.0-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRYSTAL_MIN_VER="1.17"
+inherit shards
+
+MY_PN="${PN#athena-}"
+DESCRIPTION="Common/helpful Spec compliant testing utilities"
+HOMEPAGE="
+ https://github.com/athena-framework/spec
+ https://athenaframework.org/Spec/
+"
+SRC_URI="https://github.com/athena-framework/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+src_test() {
+ # Error: Invalid option: --link-flags=<...>
+ local -x CRYSTAL_OPTS=
+
+ shards_src_test
+}
diff --git a/dev-crystal/athena-spec/athena-spec-0.4.1.ebuild b/dev-crystal/athena-spec/athena-spec-0.4.1.ebuild
new file mode 100644
index 000000000000..96f85cf0e5d1
--- /dev/null
+++ b/dev-crystal/athena-spec/athena-spec-0.4.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRYSTAL_MIN_VER="1.17"
+inherit shards
+
+MY_PN="${PN#athena-}"
+DESCRIPTION="Common/helpful Spec compliant testing utilities"
+HOMEPAGE="
+ https://github.com/athena-framework/spec
+ https://athenaframework.org/Spec/
+"
+SRC_URI="https://github.com/athena-framework/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+src_test() {
+ # Error: Invalid option: --link-flags=<...>
+ local -x CRYSTAL_OPTS=
+
+ shards_src_test
+}
diff --git a/dev-crystal/athena-spec/metadata.xml b/dev-crystal/athena-spec/metadata.xml
new file mode 100644
index 000000000000..3580ecc951a9
--- /dev/null
+++ b/dev-crystal/athena-spec/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>George Dietrich</name>
+ <email>george@dietrich.app</email>
+ </maintainer>
+ <doc>https://athenaframework.org/Spec/</doc>
+ <remote-id type="github">athena-framework/spec</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/backtracer/Manifest b/dev-crystal/backtracer/Manifest
new file mode 100644
index 000000000000..c1f2f9785f52
--- /dev/null
+++ b/dev-crystal/backtracer/Manifest
@@ -0,0 +1,2 @@
+DIST backtracer-1.2.2.tar.gz 8864 BLAKE2B cfe5ed7b8648847b3a6536ecbfb89bb5a5cb264cb52afeb977fe9141960528b027b8aefb33f3ba97e506793b0b8ffcd0f7d61eede5cd1f1129b5b7829391e49b SHA512 97a9f75d3ec82ea83b242e8236d8aeff1cb4f555d1460950ba96c8d2b436caae9f0d8e3b74e810f789ea7d9032115074d818519c621601ad670f7a18bf878cff
+DIST backtracer-1.2.4.tar.gz 8940 BLAKE2B b6ebb720631752390048bbfcd0ba46f54fc4212e7cf93b4a837c18e8d2e5f43f73dff91f175709ad5ff9854613cd15e30a45708b00eeb919cba9edef817f9b57 SHA512 a19b453da1acad4f92a6dfdf43f316174db8c4e2725610846e0768c5ae28887e55a84f9a56fcebc70872a154e4e3da195c816999f73861634fa1930829eec8ac
diff --git a/dev-crystal/backtracer/backtracer-1.2.2-r1.ebuild b/dev-crystal/backtracer/backtracer-1.2.2-r1.ebuild
new file mode 100644
index 000000000000..5943d5bbd715
--- /dev/null
+++ b/dev-crystal/backtracer/backtracer-1.2.2-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+MY_PN="${PN}.cr"
+DESCRIPTION="Crystal shard aiming to assist with parsing backtraces into a structured form"
+HOMEPAGE="https://github.com/Sija/backtracer.cr"
+SRC_URI="https://github.com/Sija/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
diff --git a/dev-crystal/backtracer/backtracer-1.2.4-r1.ebuild b/dev-crystal/backtracer/backtracer-1.2.4-r1.ebuild
new file mode 100644
index 000000000000..e7db372ffcef
--- /dev/null
+++ b/dev-crystal/backtracer/backtracer-1.2.4-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+MY_PN="${PN}.cr"
+DESCRIPTION="Crystal shard aiming to assist with parsing backtraces into a structured form"
+HOMEPAGE="https://github.com/Sija/backtracer.cr"
+SRC_URI="https://github.com/Sija/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
diff --git a/dev-crystal/backtracer/metadata.xml b/dev-crystal/backtracer/metadata.xml
new file mode 100644
index 000000000000..db238128d21d
--- /dev/null
+++ b/dev-crystal/backtracer/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Sijawusz Pur Rahnama</name>
+ <email>sija@sija.pl</email>
+ </maintainer>
+ <remote-id type="github">Sija/backtracer.cr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/crystal-db/Manifest b/dev-crystal/crystal-db/Manifest
new file mode 100644
index 000000000000..cb767ba46fd0
--- /dev/null
+++ b/dev-crystal/crystal-db/Manifest
@@ -0,0 +1,2 @@
+DIST crystal-db-0.13.1.tar.gz 40745 BLAKE2B 3a3afe3bc60a7d2fb91ef31a5ea6d2b94bb27ee093f244ec59f908306ef125f9e5085c7de6da09c580fcd667e6ffda093053908685630f190b3f2ed9f662f589 SHA512 78d263271670eb5422e7d3d219cc895e4d508893f79800b34e46a0072bb2b3bee715bbfb588227ebcbaa4cd528810e42d6654ae92d146eeac0f19d3131847d3d
+DIST crystal-db-0.14.0.tar.gz 40900 BLAKE2B cbd063b69dd8e48daceee3c62743c9fd605fb39ae3d889eba1282a435c21ea5ef85a13187ed90fe0b4a042410cae2d50169a981814cac2ce0fe7700378f91386 SHA512 8bb52744a20a38f0c5e52f8fba59ff212ba14bf19784f05e87798e38238c5e82353042c02e225b6e4391ab4a46a02ea7ab752330e89db1a11e56cc93849b123d
diff --git a/dev-crystal/crystal-db/crystal-db-0.13.1-r1.ebuild b/dev-crystal/crystal-db/crystal-db-0.13.1-r1.ebuild
new file mode 100644
index 000000000000..20a72392990c
--- /dev/null
+++ b/dev-crystal/crystal-db/crystal-db-0.13.1-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Common DB API for Crystal"
+HOMEPAGE="https://github.com/crystal-lang/crystal-db"
+SRC_URI="https://github.com/crystal-lang/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=( {CHANGELOG,README}.md )
diff --git a/dev-crystal/crystal-db/crystal-db-0.14.0-r1.ebuild b/dev-crystal/crystal-db/crystal-db-0.14.0-r1.ebuild
new file mode 100644
index 000000000000..61eed151edcc
--- /dev/null
+++ b/dev-crystal/crystal-db/crystal-db-0.14.0-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Common DB API for Crystal"
+HOMEPAGE="https://github.com/crystal-lang/crystal-db"
+SRC_URI="https://github.com/crystal-lang/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=( {CHANGELOG,README}.md )
diff --git a/dev-crystal/crystal-db/metadata.xml b/dev-crystal/crystal-db/metadata.xml
new file mode 100644
index 000000000000..3366f89185ef
--- /dev/null
+++ b/dev-crystal/crystal-db/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Brian J. Cardiff</name>
+ <email>bcardiff@manas.tech</email>
+ </maintainer>
+ <remote-id type="github">crystal-lang/crystal-db</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/crystal-fnv/Manifest b/dev-crystal/crystal-fnv/Manifest
new file mode 100644
index 000000000000..d538c5f8f5db
--- /dev/null
+++ b/dev-crystal/crystal-fnv/Manifest
@@ -0,0 +1 @@
+DIST crystal-fnv-0.1.3.tar.gz 3741 BLAKE2B d42d7116a680bf46a5216f391f29b22036a98b134c9ad0820ed5f3e75a918a1186111928f20876a92946e54494f5da41db58604a320b26b834c57e59b97dd915 SHA512 406838d26a59269f2ff3ae4890d2bab1905ddb81ad6b4073a5e7a3cb24c582f12147c95bf01e5049f34c9e1a774a757f2b25a8ac2f190ad380dc74b590ff6f94
diff --git a/dev-crystal/crystal-fnv/crystal-fnv-0.1.3-r1.ebuild b/dev-crystal/crystal-fnv/crystal-fnv-0.1.3-r1.ebuild
new file mode 100644
index 000000000000..95c61ab33951
--- /dev/null
+++ b/dev-crystal/crystal-fnv/crystal-fnv-0.1.3-r1.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Crystal Implementation of Fowler–Noll–Vo hash"
+HOMEPAGE="https://github.com/naqvis/crystal-fnv"
+SRC_URI="https://github.com/naqvis/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
diff --git a/dev-crystal/crystal-fnv/metadata.xml b/dev-crystal/crystal-fnv/metadata.xml
new file mode 100644
index 000000000000..7fb752031650
--- /dev/null
+++ b/dev-crystal/crystal-fnv/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Ali Naqvi</name>
+ <email>syed.alinaqvi@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">naqvis/crystal-fnv</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/crystal-html5/Manifest b/dev-crystal/crystal-html5/Manifest
new file mode 100644
index 000000000000..620176e91d88
--- /dev/null
+++ b/dev-crystal/crystal-html5/Manifest
@@ -0,0 +1,2 @@
+DIST crystal-html5-0.5.0.tar.gz 129298 BLAKE2B f76d155224e1fe4da2da1156cef49ba0ec20659ca20a6e41ae299f50083ed3c8f032569bbf9129a19f1b87c81be62cfba145b86aa2a714403e409086ea81d39a SHA512 72b8f4e506e60f6b60c7d883e38407137437e02138e3f6f7a5f7ffb98e393af1e0e67a2b630a24e67175b09b4b868e3d636a9b7f9420259f93532553269e9a9e
+DIST crystal-html5-0.5.1.tar.gz 130203 BLAKE2B 6082d8f8d27514b17564fc2835665062a967ad8b469eac8cfeb73c9cad037ff8fe0eea309b0c95c18a3f5cc226015c944955eb88ffcf4a967a5828dff321b717 SHA512 d89e53600d844f58c493af872efd1d011766cfaced9a4191d2c18a4051486f0a1279331ab90fb4e388ccafcce5ef204cc6ff27f38fbf91f54ce4f420d4abb5be
diff --git a/dev-crystal/crystal-html5/crystal-html5-0.5.0-r1.ebuild b/dev-crystal/crystal-html5/crystal-html5-0.5.0-r1.ebuild
new file mode 100644
index 000000000000..852885801f72
--- /dev/null
+++ b/dev-crystal/crystal-html5/crystal-html5-0.5.0-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Pure Crystal implementation of an HTML5-compliant Tokenizer and Parser"
+HOMEPAGE="https://github.com/naqvis/crystal-html5"
+SRC_URI="https://github.com/naqvis/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="dev-crystal/crystal-xpath2"
diff --git a/dev-crystal/crystal-html5/crystal-html5-0.5.1.ebuild b/dev-crystal/crystal-html5/crystal-html5-0.5.1.ebuild
new file mode 100644
index 000000000000..4845ffd63fb4
--- /dev/null
+++ b/dev-crystal/crystal-html5/crystal-html5-0.5.1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Pure Crystal implementation of an HTML5-compliant Tokenizer and Parser"
+HOMEPAGE="https://github.com/naqvis/crystal-html5"
+SRC_URI="https://github.com/naqvis/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="dev-crystal/crystal-xpath2"
diff --git a/dev-crystal/crystal-html5/metadata.xml b/dev-crystal/crystal-html5/metadata.xml
new file mode 100644
index 000000000000..b6e5f38c40f6
--- /dev/null
+++ b/dev-crystal/crystal-html5/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Ali Naqvi</name>
+ <email>syed.alinaqvi@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">naqvis/crystal-html5</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/crystal-pg/Manifest b/dev-crystal/crystal-pg/Manifest
new file mode 100644
index 000000000000..6555d53243ff
--- /dev/null
+++ b/dev-crystal/crystal-pg/Manifest
@@ -0,0 +1,2 @@
+DIST crystal-pg-0.28.0.tar.gz 44534 BLAKE2B 69f3c50e77c928055bc66ef46b729052e6c0df69a80c310bf576ed75d51a5f3a93ebb4faa10c47c8a64dc4f46fcecf2b5b82e9812d5b6839ba5f6888cf5e5bd9 SHA512 34358bc203b78fcbe3828d086dbf31b09b94e465f5c179c6a35186f2f5d42a65cd362ef75860e93eb3252699cc22787f798e09484f2e20d1284db6a384721a78
+DIST crystal-pg-0.29.0.tar.gz 45580 BLAKE2B 7f6a544466556a397b76aebb85d75d0ce269efda61129d55b61be29c14360da6cf3c4b6d8d127309f0e3dc6b21caf436a14cef1fd69e58a309d117d450b71811 SHA512 99a2cea26d51f2b3ca4b056d7e9673c7b1b75e72be1baf92a6f9377e04d52a62e23c5ce29486b7e430685a478f3e463ccbd985e491bc9f23b89241b633bfe609
diff --git a/dev-crystal/crystal-pg/crystal-pg-0.28.0-r1.ebuild b/dev-crystal/crystal-pg/crystal-pg-0.28.0-r1.ebuild
new file mode 100644
index 000000000000..8bbdc3de2993
--- /dev/null
+++ b/dev-crystal/crystal-pg/crystal-pg-0.28.0-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+declare -Ag DAEMONS_REQ_USE=(
+ [postgresql]="xml"
+)
+inherit daemons shards
+
+DESCRIPTION="A native, non-blocking Postgres driver for Crystal"
+HOMEPAGE="https://github.com/will/crystal-pg"
+SRC_URI="https://github.com/will/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-crystal/crystal-db-0.13.0
+ <dev-crystal/crystal-db-0.14.0
+"
+
+DOCS=( CHANGELOG CONTRIBUTORS {CONTRIBUTING,README}.md )
+
+daemons_enable postgresql test
+
+src_test() {
+ daemons_start postgresql --host 127.0.0.1
+ local -x DATABASE_URL="${POSTGRESQL_URL:?}"
+
+ shards_src_test
+ daemons_stop postgresql
+}
diff --git a/dev-crystal/crystal-pg/crystal-pg-0.29.0-r2.ebuild b/dev-crystal/crystal-pg/crystal-pg-0.29.0-r2.ebuild
new file mode 100644
index 000000000000..9e9dc49c9888
--- /dev/null
+++ b/dev-crystal/crystal-pg/crystal-pg-0.29.0-r2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+declare -Ag DAEMONS_REQ_USE=(
+ [postgresql]="xml"
+)
+inherit daemons shards
+
+DESCRIPTION="A native, non-blocking Postgres driver for Crystal"
+HOMEPAGE="https://github.com/will/crystal-pg"
+SRC_URI="https://github.com/will/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-crystal/crystal-db-0.13.0
+ <dev-crystal/crystal-db-0.15.0
+"
+
+DOCS=( CHANGELOG CONTRIBUTORS {CONTRIBUTING,README}.md )
+
+daemons_enable postgresql test
+
+src_test() {
+ daemons_start postgresql --host 127.0.0.1
+ local -x DATABASE_URL="${POSTGRESQL_URL:?}"
+
+ shards_src_test
+ daemons_stop postgresql
+}
diff --git a/dev-crystal/crystal-pg/metadata.xml b/dev-crystal/crystal-pg/metadata.xml
new file mode 100644
index 000000000000..3d0e294d2fcc
--- /dev/null
+++ b/dev-crystal/crystal-pg/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="github">will/crystal-pg</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/crystal-sqlite3/Manifest b/dev-crystal/crystal-sqlite3/Manifest
new file mode 100644
index 000000000000..27938a63c471
--- /dev/null
+++ b/dev-crystal/crystal-sqlite3/Manifest
@@ -0,0 +1,2 @@
+DIST crystal-sqlite3-0.21.0.tar.gz 12284 BLAKE2B a6943a30d00a8ec47860121f2878ce9274aab100bfe6a8a82aadbcdd71f0b4eef1943fa29e6d86bb2807ccfe6294136d5422b797086078d5c3196b9e63fd3f89 SHA512 a11b70e714c19762a4344383b95b3106be05cf9f51f9a4491e1bfda37c7fff0c178bec366fc86845db903a597e2c6a4eeb288c2c365f0b8752345f761bc68759
+DIST crystal-sqlite3-0.22.0.tar.gz 13720 BLAKE2B 1590d872b98a38a2df8a8753306e70e653e4cb52ae536457e567230b58e8c42ab61afd6f7292072f3d69a8346818317b243fad4999e1a55af4244f0ced29e9be SHA512 b2e8cfd88ec0870bc712ece7e8e95eade37101ab02226b73aaa6f0151a7aae7bbb19fe3b517ccf2e23ffdb9e267ae1871e67463c55f220ef7e79bf867bd3f258
diff --git a/dev-crystal/crystal-sqlite3/crystal-sqlite3-0.21.0-r1.ebuild b/dev-crystal/crystal-sqlite3/crystal-sqlite3-0.21.0-r1.ebuild
new file mode 100644
index 000000000000..5e62b9421679
--- /dev/null
+++ b/dev-crystal/crystal-sqlite3/crystal-sqlite3-0.21.0-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="SQLite3 bindings for Crystal"
+HOMEPAGE="https://github.com/crystal-lang/crystal-sqlite3"
+SRC_URI="https://github.com/crystal-lang/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-crystal/crystal-db-0.13.0
+ <dev-crystal/crystal-db-0.14.0
+"
+
+DOCS=( {CHANGELOG,README}.md )
diff --git a/dev-crystal/crystal-sqlite3/crystal-sqlite3-0.22.0-r1.ebuild b/dev-crystal/crystal-sqlite3/crystal-sqlite3-0.22.0-r1.ebuild
new file mode 100644
index 000000000000..594ba230614a
--- /dev/null
+++ b/dev-crystal/crystal-sqlite3/crystal-sqlite3-0.22.0-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="SQLite3 bindings for Crystal"
+HOMEPAGE="https://github.com/crystal-lang/crystal-sqlite3"
+SRC_URI="https://github.com/crystal-lang/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-crystal/crystal-db-0.13.0
+ <dev-crystal/crystal-db-0.15.0
+"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.22.0-fix-uri-parsing.patch )
+
+DOCS=( {CHANGELOG,README}.md )
diff --git a/dev-crystal/crystal-sqlite3/files/crystal-sqlite3-0.22.0-fix-uri-parsing.patch b/dev-crystal/crystal-sqlite3/files/crystal-sqlite3-0.22.0-fix-uri-parsing.patch
new file mode 100644
index 000000000000..eec58d962bfa
--- /dev/null
+++ b/dev-crystal/crystal-sqlite3/files/crystal-sqlite3-0.22.0-fix-uri-parsing.patch
@@ -0,0 +1,35 @@
+From f4e94b042ab64cf6558086b812e7fd56780cd4de Mon Sep 17 00:00:00 2001
+From: "Brian J. Cardiff" <bcardiff@gmail.com>
+Date: Thu, 16 Oct 2025 16:57:41 -0300
+Subject: [PATCH] Use URI#hostname to avoid interpreting :memory: as [:memory:]
+ (#105)
+
+---
+ src/sqlite3/connection.cr | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/sqlite3/connection.cr b/src/sqlite3/connection.cr
+index 750776f..948715e 100644
+--- a/src/sqlite3/connection.cr
++++ b/src/sqlite3/connection.cr
+@@ -12,7 +12,7 @@ class SQLite3::Connection < DB::Connection
+ params = HTTP::Params.parse(uri.query || "")
+
+ Options.new(
+- filename: URI.decode_www_form((uri.host || "") + uri.path),
++ filename: URI.decode_www_form((uri.hostname || "") + uri.path),
+ # pragmas
+ busy_timeout: params.fetch("busy_timeout", default.busy_timeout),
+ cache_size: params.fetch("cache_size", default.cache_size),
+@@ -56,7 +56,7 @@ class SQLite3::Connection < DB::Connection
+ end
+
+ def self.filename(uri : URI)
+- URI.decode_www_form((uri.host || "") + uri.path)
++ URI.decode_www_form((uri.hostname || "") + uri.path)
+ end
+
+ def build_prepared_statement(query) : Statement
+--
+2.51.2
+
diff --git a/dev-crystal/crystal-sqlite3/metadata.xml b/dev-crystal/crystal-sqlite3/metadata.xml
new file mode 100644
index 000000000000..ec659df1e895
--- /dev/null
+++ b/dev-crystal/crystal-sqlite3/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <name>Ary Borenszweig</name>
+ <email>aborenszweig@manas.tech</email>
+ </maintainer>
+ <maintainer>
+ <name>Brian J. Cardiff</name>
+ <email>bcardiff@manas.tech</email>
+ </maintainer>
+ <remote-id type="github">crystal-lang/crystal-sqlite3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/crystal-xpath2/Manifest b/dev-crystal/crystal-xpath2/Manifest
new file mode 100644
index 000000000000..482ab0ab7c40
--- /dev/null
+++ b/dev-crystal/crystal-xpath2/Manifest
@@ -0,0 +1 @@
+DIST crystal-xpath2-0.1.3.tar.gz 23933 BLAKE2B de970b43640489680965bdb0fc6d2e5fee8b9bb75d18e61c11089ad40f397b3c9e4963b2ca29a85049e3a1b0b0f291e32c2b0a321c729aac42bb730b848ab75f SHA512 3c57fb97d17bbff168e1a5904c2e629bb97114c31a4cd80d1347d7d804ebcdba3506b3243be303f42aa042936c667e918beadd10fced19175160e3921604cf09
diff --git a/dev-crystal/crystal-xpath2/crystal-xpath2-0.1.3-r1.ebuild b/dev-crystal/crystal-xpath2/crystal-xpath2-0.1.3-r1.ebuild
new file mode 100644
index 000000000000..82289a0a1f58
--- /dev/null
+++ b/dev-crystal/crystal-xpath2/crystal-xpath2-0.1.3-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="XPath implementation in Crystal"
+HOMEPAGE="https://github.com/naqvis/crystal-xpath2"
+SRC_URI="https://github.com/naqvis/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="dev-crystal/crystal-fnv"
diff --git a/dev-crystal/crystal-xpath2/metadata.xml b/dev-crystal/crystal-xpath2/metadata.xml
new file mode 100644
index 000000000000..f0b664099d65
--- /dev/null
+++ b/dev-crystal/crystal-xpath2/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Ali Naqvi</name>
+ <email>syed.alinaqvi@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">naqvis/crystal-xpath2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/crystar/Manifest b/dev-crystal/crystar/Manifest
new file mode 100644
index 000000000000..fc141f22d0e7
--- /dev/null
+++ b/dev-crystal/crystar/Manifest
@@ -0,0 +1,2 @@
+DIST crystar-0.3.1.tar.gz 110500 BLAKE2B 0d2b3ecfc41a72e6a6c1dd5ab169b889318f28c8600b3ee0868c50db0c6ebe2754f0e5447ad5fb6904e487356b649db3391bfd852f2d71a1f4bedda199f70051 SHA512 73462bc246ae8338625c9cc6c99da5000235f6c52214d80e6b104c5543f1e3dd5f3571013073f821d935e176d4e1445a5cc0b1d8b41628fb69932a160a739c65
+DIST crystar-0.4.0.tar.gz 110585 BLAKE2B 22e0ddaa77b6f7df17943ba9a0045e4be99bf1c492b23b0949c2ec8493768cc447b02f52bb6618ee8cf286650780d3c86013c241008ecbbaa22d7d071d4ddf3f SHA512 bd004ba9d3135f03c91ddce4752a8240d04b82225d740d851d145ce4994ef8645384c2fb1acab39fe2a462ba3ba7aebbdbfe89eb7d16af2ca5ecf0d4476f7b80
diff --git a/dev-crystal/crystar/crystar-0.3.1-r1.ebuild b/dev-crystal/crystar/crystar-0.3.1-r1.ebuild
new file mode 100644
index 000000000000..fa9a1cd4338b
--- /dev/null
+++ b/dev-crystal/crystar/crystar-0.3.1-r1.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Crystal language Tar Module implements access to tar archives"
+HOMEPAGE="https://github.com/naqvis/crystar"
+SRC_URI="https://github.com/naqvis/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
diff --git a/dev-crystal/crystar/crystar-0.4.0-r1.ebuild b/dev-crystal/crystar/crystar-0.4.0-r1.ebuild
new file mode 100644
index 000000000000..fa9a1cd4338b
--- /dev/null
+++ b/dev-crystal/crystar/crystar-0.4.0-r1.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Crystal language Tar Module implements access to tar archives"
+HOMEPAGE="https://github.com/naqvis/crystar"
+SRC_URI="https://github.com/naqvis/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
diff --git a/dev-crystal/crystar/metadata.xml b/dev-crystal/crystar/metadata.xml
new file mode 100644
index 000000000000..66815a29c047
--- /dev/null
+++ b/dev-crystal/crystar/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Ali Naqvi</name>
+ <email>syed.alinaqvi@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">naqvis/crystar</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/exception_page/Manifest b/dev-crystal/exception_page/Manifest
new file mode 100644
index 000000000000..2dbf5ad13d78
--- /dev/null
+++ b/dev-crystal/exception_page/Manifest
@@ -0,0 +1,2 @@
+DIST exception_page-0.4.1.tar.gz 11378 BLAKE2B 24c2e2be2d64085677bd095f9e8b336c01583d36235c17856d973a460e19c5feb1873806f8681d2affea163c11446a49760030f5a08369187a6773eb436cb958 SHA512 de90afe8c87bd231802d99c05072fb8955100eeceadf46d61339b2117494fa89693f699e8cdd16a03d40212605483d83aba4e7d97845ec596bcf06ecd9107f88
+DIST exception_page-0.5.0.tar.gz 11463 BLAKE2B 295f1d15192dd6dfd55081d38853e23aeb124afd19fb0a572e809aac59c6b2e3b302cdde290db0ed6534ab32310ee662ab9f955419d2dc7012d3babd469dd613 SHA512 c40ae9c220f1090dee384162fae0932d0c24388d615136ad076f5d06e289d47354b61760e24638cb0dc1c92aeb538a6f0e1958322e5d8ed780ece0e275d1e4fc
diff --git a/dev-crystal/exception_page/exception_page-0.4.1-r1.ebuild b/dev-crystal/exception_page/exception_page-0.4.1-r1.ebuild
new file mode 100644
index 000000000000..75396b2f5eda
--- /dev/null
+++ b/dev-crystal/exception_page/exception_page-0.4.1-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="A library for displaying exceptional exception pages for easier debugging"
+HOMEPAGE="https://github.com/crystal-loot/exception_page"
+SRC_URI="https://github.com/crystal-loot/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-crystal/backtracer"
+BDEPEND="
+ test? (
+ dev-crystal/lucky_flow
+ )
+"
+
+src_prepare() {
+ default
+
+ # test error, related to lucky_flow ('be_on_page' method)
+ rm spec/exception_page_spec.cr || die
+}
diff --git a/dev-crystal/exception_page/exception_page-0.5.0-r1.ebuild b/dev-crystal/exception_page/exception_page-0.5.0-r1.ebuild
new file mode 100644
index 000000000000..73e8ed6e3731
--- /dev/null
+++ b/dev-crystal/exception_page/exception_page-0.5.0-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="A library for displaying exceptional exception pages for easier debugging"
+HOMEPAGE="https://github.com/crystal-loot/exception_page"
+SRC_URI="https://github.com/crystal-loot/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-crystal/backtracer"
+BDEPEND="
+ test? (
+ dev-crystal/lucky_flow
+ )
+"
+
+src_test() {
+ # Passing '--debug' option is required for a test that checks if
+ # code frames are displayed.
+ crystal_spec --debug
+}
diff --git a/dev-crystal/exception_page/metadata.xml b/dev-crystal/exception_page/metadata.xml
new file mode 100644
index 000000000000..3f63aec71a85
--- /dev/null
+++ b/dev-crystal/exception_page/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Paul Smith</name>
+ <email>paulcsmith0218@gmail.com</email>
+ </maintainer>
+ <maintainer>
+ <name>Sijawusz Pur Rahnama</name>
+ <email>sija@sija.pl</email>
+ </maintainer>
+ <remote-id type="github">crystal-loot/exception_page</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/habitat/Manifest b/dev-crystal/habitat/Manifest
new file mode 100644
index 000000000000..686bbdc7059c
--- /dev/null
+++ b/dev-crystal/habitat/Manifest
@@ -0,0 +1 @@
+DIST habitat-0.4.9.tar.gz 10471 BLAKE2B ec616cea421b713997ee294fe8c6c56cf7b4b6d780fe3a29d444f6d7b3d501c73da17c6b533810698cdab05ff2c7baf64f4aa7cd0b85998bceab27d0529b59f7 SHA512 fcef7c0c2175338c24f687f4f1ab4f715d48c4021d1144b159b35f29aa17a54b6efbfe1d79d67b2ca45c3da6f97e3993991ca17f8e7cd4ae7f819695db04b67e
diff --git a/dev-crystal/habitat/habitat-0.4.9-r1.ebuild b/dev-crystal/habitat/habitat-0.4.9-r1.ebuild
new file mode 100644
index 000000000000..35bfd492b1c5
--- /dev/null
+++ b/dev-crystal/habitat/habitat-0.4.9-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Easily configure settings for Crystal projects"
+HOMEPAGE="https://github.com/luckyframework/habitat"
+SRC_URI="https://github.com/luckyframework/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=( {CODE_OF_CONDUCT,CONTRIBUTING,README}.md )
diff --git a/dev-crystal/habitat/metadata.xml b/dev-crystal/habitat/metadata.xml
new file mode 100644
index 000000000000..edd77b86be65
--- /dev/null
+++ b/dev-crystal/habitat/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Paul Smith</name>
+ <email>paulcsmith0218@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">luckyframework/habitat</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/http_proxy/Manifest b/dev-crystal/http_proxy/Manifest
new file mode 100644
index 000000000000..cd60b4fb6652
--- /dev/null
+++ b/dev-crystal/http_proxy/Manifest
@@ -0,0 +1 @@
+DIST http_proxy-0.12.0.tar.gz 8780 BLAKE2B 949c60613cb763f37b27d3a6b9c375726d563333f7400205dc55bc1faba3b0850c237d73d296fd731c32c16358674aa096664240262db93412fd00aeebefbdff SHA512 7f051f7badb94e99dee27eee016144152330a5d3c0d87b6cf91d07bb633c5b6aad5cab55c69fa6753f9c94247f8510a401d3c56f70b7f7582695a41fb9c0f2ce
diff --git a/dev-crystal/http_proxy/http_proxy-0.12.0-r1.ebuild b/dev-crystal/http_proxy/http_proxy-0.12.0-r1.ebuild
new file mode 100644
index 000000000000..4ed45232ef1a
--- /dev/null
+++ b/dev-crystal/http_proxy/http_proxy-0.12.0-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="HTTP Proxy server and client written in Crystal"
+HOMEPAGE="https://github.com/mamantoha/http_proxy"
+SRC_URI="https://github.com/mamantoha/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DOCS=( {CHANGELOG,README}.md )
+
+DEPEND="
+ test? ( dev-crystal/webmock )
+"
+
+src_test() {
+ # Only run tests that don't need net.
+ # Upstream issue: https://github.com/mamantoha/http_proxy/issues/38
+ crystal_spec \
+ "${S}"/spec/client_spec.cr:5 \
+ "${S}"/spec/client_spec.cr:13 \
+ "${S}"/spec/client_spec.cr:21 \
+ "${S}"/spec/client_spec.cr:53 \
+ "${S}"/spec/client_spec.cr:101 \
+ "${S}"/spec/server_spec.cr:5 \
+ "${S}"/spec/server_spec.cr:10
+}
diff --git a/dev-crystal/http_proxy/metadata.xml b/dev-crystal/http_proxy/metadata.xml
new file mode 100644
index 000000000000..bf7421a344f1
--- /dev/null
+++ b/dev-crystal/http_proxy/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Julien Roy</name>
+ <email>julien@jroy.ca</email>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <name>Anton Maminov</name>
+ <email>anton.maminov@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">mamantoha/http_proxy</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/kemal/Manifest b/dev-crystal/kemal/Manifest
new file mode 100644
index 000000000000..d731e18b3148
--- /dev/null
+++ b/dev-crystal/kemal/Manifest
@@ -0,0 +1,3 @@
+DIST kemal-1.7.3.tar.gz 60094 BLAKE2B 80fa5b8c96faa6185296b86e99561e87da28a142828fa3d831cab1106fdb01d513c2c0cb49d47da70cb7d4983c6bf251a28621313e80cc4f8ab9f8df635176d6 SHA512 e65700aa65cc0160ea76aee16465b06225884b2be8aa6944bd89666e169794d3e264275b76b1864763df8bb601f7ef38c40847e29738917ec91de436539f4b3a
+DIST kemal-1.8.0.tar.gz 62020 BLAKE2B 09af0dd42927a6b00a50a51d3a5f475874e2d3241111e2754627e74aef85032a5aff056173f380355bc5af764a5f4d0a9271e70b7a01760b276a7f5f1fdf782a SHA512 87ea50b23fbc599b01f4f36e97f77f83af4ae806068f2a809b31b1a6e0eacfe145737371d6253c575f37f692ce9aa5efe012192ee08af69d74a7e36f0523bce4
+DIST kemal-1.9.0.tar.gz 62634 BLAKE2B 17b55b605b99bb75fe8901589bee75b6d2e2e5a73de4a11850dcd2bd645153ae5398fe4977109bd3e16a4a9f47bd1f130278669ad2eca9d285b3eb16df4e1bed SHA512 fc74a0365e9c063dcd591f576927f644ab9e9636c73618027248d55d8c401e6aa3995093e6a306a1a542c2e41e21aee25bccc5c97492f78d1f3d40b418904f14
diff --git a/dev-crystal/kemal/kemal-1.7.3-r1.ebuild b/dev-crystal/kemal/kemal-1.7.3-r1.ebuild
new file mode 100644
index 000000000000..84390fa4a5b4
--- /dev/null
+++ b/dev-crystal/kemal/kemal-1.7.3-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Lightning Fast, Super Simple web framework"
+HOMEPAGE="
+ https://kemalcr.com/
+ https://github.com/kemalcr/kemal
+"
+SRC_URI="https://github.com/kemalcr/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-crystal/exception_page
+ dev-crystal/radix
+"
+
+src_test() {
+ # conflicts with spec/run_spec.cr
+ local -x CRYSTAL_OPTS=
+
+ shards_src_test
+}
diff --git a/dev-crystal/kemal/kemal-1.8.0.ebuild b/dev-crystal/kemal/kemal-1.8.0.ebuild
new file mode 100644
index 000000000000..84390fa4a5b4
--- /dev/null
+++ b/dev-crystal/kemal/kemal-1.8.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Lightning Fast, Super Simple web framework"
+HOMEPAGE="
+ https://kemalcr.com/
+ https://github.com/kemalcr/kemal
+"
+SRC_URI="https://github.com/kemalcr/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-crystal/exception_page
+ dev-crystal/radix
+"
+
+src_test() {
+ # conflicts with spec/run_spec.cr
+ local -x CRYSTAL_OPTS=
+
+ shards_src_test
+}
diff --git a/dev-crystal/kemal/kemal-1.9.0.ebuild b/dev-crystal/kemal/kemal-1.9.0.ebuild
new file mode 100644
index 000000000000..4efe231e5e6b
--- /dev/null
+++ b/dev-crystal/kemal/kemal-1.9.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Lightning Fast, Super Simple web framework"
+HOMEPAGE="
+ https://kemalcr.com/
+ https://github.com/kemalcr/kemal
+"
+SRC_URI="https://github.com/kemalcr/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-crystal/exception_page
+ dev-crystal/radix
+"
+
+src_test() {
+ # conflicts with spec/run_spec.cr
+ local -x CRYSTAL_OPTS=
+
+ shards_src_test
+}
diff --git a/dev-crystal/kemal/metadata.xml b/dev-crystal/kemal/metadata.xml
new file mode 100644
index 000000000000..0ef93382ac29
--- /dev/null
+++ b/dev-crystal/kemal/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Serdar Dogruyol</name>
+ <email>dogruyolserdar@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">kemalcr/kemal</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/lucky_flow/Manifest b/dev-crystal/lucky_flow/Manifest
new file mode 100644
index 000000000000..5690f23591e3
--- /dev/null
+++ b/dev-crystal/lucky_flow/Manifest
@@ -0,0 +1 @@
+DIST lucky_flow-0.10.1.tar.gz 17554 BLAKE2B 2908f876dbe400b19f2ab9d8234b698dd88f95b3b88ba9e6bf4b0a0335f7815563e3927b2ac5b45a4617ed7593c745db4ceb98b467cc5ea3809b6f447e71b9dd SHA512 bce03d831fee15b960747f378eff9f0ce70a5cf13c71887eaace48c91344a90eacfb3004af0a1b1f915e859c4ec3ed5a90ea0ce3f989e6bd9af6e39557003b62
diff --git a/dev-crystal/lucky_flow/lucky_flow-0.10.1-r1.ebuild b/dev-crystal/lucky_flow/lucky_flow-0.10.1-r1.ebuild
new file mode 100644
index 000000000000..fb402306fa85
--- /dev/null
+++ b/dev-crystal/lucky_flow/lucky_flow-0.10.1-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="LuckyFlow is a library for testing user flows in the browser"
+HOMEPAGE="https://github.com/luckyframework/lucky_flow"
+SRC_URI="https://github.com/luckyframework/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-crystal/crystal-html5
+ >=dev-crystal/habitat-0.4.9
+ dev-crystal/selenium
+ dev-crystal/webdrivers
+ >=dev-crystal/webless-0.2.0
+"
+
+src_test() {
+ shards_src_test --tag "~headless_chrome" --tag "~headless_firefox"
+}
diff --git a/dev-crystal/lucky_flow/metadata.xml b/dev-crystal/lucky_flow/metadata.xml
new file mode 100644
index 000000000000..dcb655eeda51
--- /dev/null
+++ b/dev-crystal/lucky_flow/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Paul Smith</name>
+ <email>paulcsmith0218@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">luckyframework/lucky_flow</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/protodec/Manifest b/dev-crystal/protodec/Manifest
new file mode 100644
index 000000000000..29399c990779
--- /dev/null
+++ b/dev-crystal/protodec/Manifest
@@ -0,0 +1 @@
+DIST protodec-0.1.5.tar.gz 18246 BLAKE2B ba2a95f07ddc0d94c9b1c66d59d624d5aaf62bbb1bd20c294329d67e9d9b11048f565ca33f3fc7e54c7ee857453249dfa2bccc91d5c1e22caf87ba25355a2557 SHA512 6235864397bd90a482be4bd19736982da9d60a4229b3256224d9985fa70a0529aaaeeb3fb5285d692e3a5441895c09b37e887cec4f125726935e6764a047bb46
diff --git a/dev-crystal/protodec/metadata.xml b/dev-crystal/protodec/metadata.xml
new file mode 100644
index 000000000000..ca8e2935a260
--- /dev/null
+++ b/dev-crystal/protodec/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <name>Omar Roth</name>
+ <email>omarroth@protonmail.com</email>
+ </maintainer>
+ <remote-id type="github">iv-org/protodec</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/protodec/protodec-0.1.5-r2.ebuild b/dev-crystal/protodec/protodec-0.1.5-r2.ebuild
new file mode 100644
index 000000000000..90f97c8d259d
--- /dev/null
+++ b/dev-crystal/protodec/protodec-0.1.5-r2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Command-line tool to encode and decode arbitrary protobuf data"
+HOMEPAGE="https://github.com/iv-org/protodec"
+SRC_URI="https://github.com/iv-org/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-libs/boehm-gc
+ dev-libs/libevent:=
+ dev-libs/libpcre2:=
+"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+
+ sed -i src/protodec.cr \
+ -e 's/\(CURRENT_BRANCH \) = .*/\1 = "master"/' \
+ -e 's/\(CURRENT_COMMIT \) = .*/\1 = "gentoo"/' \
+ -e "s/\(CURRENT_VERSION\) = .*/\1 = \"v${PV}\"/" || die
+}
+
+src_install() {
+ dobin protodec
+ shards_src_install
+}
diff --git a/dev-crystal/protodec/protodec-0.1.5-r3.ebuild b/dev-crystal/protodec/protodec-0.1.5-r3.ebuild
new file mode 100644
index 000000000000..90f97c8d259d
--- /dev/null
+++ b/dev-crystal/protodec/protodec-0.1.5-r3.ebuild
@@ -0,0 +1,35 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Command-line tool to encode and decode arbitrary protobuf data"
+HOMEPAGE="https://github.com/iv-org/protodec"
+SRC_URI="https://github.com/iv-org/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-libs/boehm-gc
+ dev-libs/libevent:=
+ dev-libs/libpcre2:=
+"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+
+ sed -i src/protodec.cr \
+ -e 's/\(CURRENT_BRANCH \) = .*/\1 = "master"/' \
+ -e 's/\(CURRENT_COMMIT \) = .*/\1 = "gentoo"/' \
+ -e "s/\(CURRENT_VERSION\) = .*/\1 = \"v${PV}\"/" || die
+}
+
+src_install() {
+ dobin protodec
+ shards_src_install
+}
diff --git a/dev-crystal/radix/Manifest b/dev-crystal/radix/Manifest
new file mode 100644
index 000000000000..d1b603ea394d
--- /dev/null
+++ b/dev-crystal/radix/Manifest
@@ -0,0 +1 @@
+DIST radix-0.4.1.tar.gz 13847 BLAKE2B bed0aa74d8672a96fdab27aa97186c0577283d16562bcde111a530a687a15ea95db379ee0044a15bcacd22d1438b027a1b6e63a1fb7bb1d8031405197aefbbd5 SHA512 3e4d6fc4a7d500496dcd750f7044189290845057bb2490a241b1d2b80789a3ccdb77e914c79c505db904282ae08d3729d8681426b348c73e82dcdd6662efa51e
diff --git a/dev-crystal/radix/metadata.xml b/dev-crystal/radix/metadata.xml
new file mode 100644
index 000000000000..09d66c22b6ed
--- /dev/null
+++ b/dev-crystal/radix/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <name>Luis Lavena</name>
+ <email>luislavena@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">luislavena/radix</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/radix/radix-0.4.1-r1.ebuild b/dev-crystal/radix/radix-0.4.1-r1.ebuild
new file mode 100644
index 000000000000..89edab28add8
--- /dev/null
+++ b/dev-crystal/radix/radix-0.4.1-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Radix tree implementation for Crystal language"
+HOMEPAGE="https://github.com/luislavena/radix"
+SRC_URI="https://github.com/luislavena/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=( {CHANGELOG,README}.md )
diff --git a/dev-crystal/selenium/Manifest b/dev-crystal/selenium/Manifest
new file mode 100644
index 000000000000..871db7058d8d
--- /dev/null
+++ b/dev-crystal/selenium/Manifest
@@ -0,0 +1,2 @@
+DIST selenium-0.12.0.tar.gz 19117 BLAKE2B 071bec550a262076b44368fcee29086b7e578394de965b8fe52b9910e63742b334ccee76da9ea21f39dbeff192678087f3b9f7dbf30c7531e0471280e922231a SHA512 86abefb770feb451f9f454eb982fd073e4df87b8630dd53be385d5beeae9c1261c52f6a949935a3a4a0776d5c93992bbe253b245f7024ed8ca93fd8b5ed0e3b6
+DIST selenium-0.12.1.tar.gz 19720 BLAKE2B f5ef7659036de72bdc0eff5bf69018502a5e79098dde75f3d5b35201a4dda474e89680d91b858c36e477f7cc52e50762fc3ed6e565cb6c47d2aa24c7993d2213 SHA512 d8db492f29f555fec420371496cdfd2c1891dd247d2d271b83dcf8b7ceca868c98cee3a73764cd8c26667cfbe17c1119e19013d2394076e64dd502695a3bb45c
diff --git a/dev-crystal/selenium/metadata.xml b/dev-crystal/selenium/metadata.xml
new file mode 100644
index 000000000000..5689599b43fc
--- /dev/null
+++ b/dev-crystal/selenium/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <name>Matthew McGarvey</name>
+ <email>matthewmcgarvey14@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">crystal-loot/selenium.cr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/selenium/selenium-0.12.0-r1.ebuild b/dev-crystal/selenium/selenium-0.12.0-r1.ebuild
new file mode 100644
index 000000000000..4f9b7c7cb9e7
--- /dev/null
+++ b/dev-crystal/selenium/selenium-0.12.0-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+MY_PN="${PN}.cr"
+DESCRIPTION="Selenium library for Crystal"
+HOMEPAGE="
+ https://matthewmcgarvey.github.io/selenium.cr/
+ https://github.com/matthewmcgarvey/selenium.cr
+"
+SRC_URI="https://github.com/matthewmcgarvey/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+BDEPEND="
+ test? (
+ dev-crystal/webdrivers
+ || (
+ www-client/firefox:*
+ www-client/firefox-bin:*
+ )
+ )
+"
+
+src_test() {
+ local -x SELENIUM_BROWSER=firefox
+ ecrystal spec --tag "~firefox"
+}
diff --git a/dev-crystal/selenium/selenium-0.12.1-r1.ebuild b/dev-crystal/selenium/selenium-0.12.1-r1.ebuild
new file mode 100644
index 000000000000..f9edf2eb844b
--- /dev/null
+++ b/dev-crystal/selenium/selenium-0.12.1-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+MY_PN="${PN}.cr"
+DESCRIPTION="Selenium library for Crystal"
+HOMEPAGE="
+ https://crystal-loot.github.io/selenium.cr/
+ https://github.com/crystal-loot/selenium.cr
+"
+SRC_URI="https://github.com/crystal-loot/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+RESTRICT="test"
+PROPERTIES="test_network"
+
+BDEPEND="
+ test? (
+ dev-crystal/webdrivers
+ || (
+ www-client/firefox:*
+ www-client/firefox-bin:*
+ )
+ )
+"
+
+src_test() {
+ local -x SELENIUM_BROWSER=firefox
+ ecrystal spec --tag "~firefox"
+}
diff --git a/dev-crystal/spectator/Manifest b/dev-crystal/spectator/Manifest
new file mode 100644
index 000000000000..400b38789b94
--- /dev/null
+++ b/dev-crystal/spectator/Manifest
@@ -0,0 +1,2 @@
+DIST spectator-0.12.1.tar.gz 156923 BLAKE2B a36c18c339d4cf295fd64433daf5d9c642858598dcd91e7adfe57f813e0e2a3adfaca7b42968b95eb332541e666b32d2b1a02931e0b68b7280d20b26a5d3e276 SHA512 f003e79608c5e4dd5965de446698e7bcb8049bc45185cbd7bfcb0a6523a77ca68d8d875b7985c1efce5533630845a9eb929c3aa26ec190f5613e5b450824f7d6
+DIST spectator-v0.12.2.tar.bz2 119342 BLAKE2B c677ffa18bb1e8b672d2a0e51cb3fd50eecc9262dc34a1a73b0dfa6056c9278443ae0a6bf30ab538b6c7e4014ee116f0b06659455b7a0fc7d73c38481d333484 SHA512 d2f5ca5d7f461263a3f4f58b3de5efd9c51fc00ede0add74254d2f90d3ddacc4474bf4b280b9d11b7dca31203bc3f4696a305ce374781712fb8ef420df726c4c
diff --git a/dev-crystal/spectator/metadata.xml b/dev-crystal/spectator/metadata.xml
new file mode 100644
index 000000000000..2f8c8da4d01c
--- /dev/null
+++ b/dev-crystal/spectator/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <name>Michael Miller</name>
+ <email>icy.arctic.fox@gmail.com</email>
+ </maintainer>
+ <remote-id type="github">icy-arctic-fox/spectator</remote-id>
+ <remote-id type="gitlab">arctic-fox/spectator</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/spectator/spectator-0.12.1-r1.ebuild b/dev-crystal/spectator/spectator-0.12.1-r1.ebuild
new file mode 100644
index 000000000000..949b583c334e
--- /dev/null
+++ b/dev-crystal/spectator/spectator-0.12.1-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="Feature-rich testing framework for Crystal inspired by RSpec"
+HOMEPAGE="https://github.com/icy-arctic-fox/spectator"
+SRC_URI="https://github.com/icy-arctic-fox/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=( {ARCHITECTURE,CHANGELOG,CONTRIBUTING,README}.md )
+
+src_prepare() {
+ default
+
+ # remove a test that might fail to build (bug 945172)
+ rm spec/issues/github_issue_48_spec.cr || die
+}
+
+src_test() {
+ # adopted from .gitlab-ci.yml
+ shards_src_test spec/matchers/ spec/spectator/*.cr
+ shards_src_test spec/docs/
+ shards_src_test spec/features/
+ shards_src_test spec/issues/
+ shards_src_test spec/rspec/
+
+ # Build failure
+ #shards_src_test spec/spectator/dsl/
+
+ # Compile each test individually, because otherwise
+ # up to 3G of RAM is eaten by compilation.
+ local t
+ for t in spec/spectator/mocks/*; do
+ shards_src_test "${t}"
+ done
+}
diff --git a/dev-crystal/spectator/spectator-0.12.2-r1.ebuild b/dev-crystal/spectator/spectator-0.12.2-r1.ebuild
new file mode 100644
index 000000000000..3129ecc66c8d
--- /dev/null
+++ b/dev-crystal/spectator/spectator-0.12.2-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+MY_P="${PN}-v${PV}"
+DESCRIPTION="Feature-rich testing framework for Crystal inspired by RSpec"
+HOMEPAGE="https://gitlab.com/arctic-fox/spectator"
+SRC_URI="https://gitlab.com/arctic-fox/${PN}/-/archive/v${PV}/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# broken tests
+RESTRICT="test"
+
+DOCS=( {ARCHITECTURE,CHANGELOG,CONTRIBUTING,README}.md )
+
+src_prepare() {
+ default
+
+ local tests_to_remove=(
+ # bug #945172
+ spec/issues/github_issue_48_spec.cr
+ )
+
+ rm "${tests_to_remove[@]}" || die
+}
+
+src_test() {
+ # adopted from .gitlab-ci.yml
+ shards_src_test spec/matchers/ spec/spectator/*.cr
+ shards_src_test spec/docs/
+ shards_src_test spec/features/
+ shards_src_test spec/issues/
+ shards_src_test spec/rspec/
+
+ # Build failure
+ #shards_src_test spec/spectator/dsl/
+
+ # Compile each test individually, because otherwise
+ # up to 3G of RAM are eaten by compilation.
+ local t
+ for t in spec/spectator/mocks/*; do
+ shards_src_test "${t}"
+ done
+}
diff --git a/dev-crystal/webdrivers/Manifest b/dev-crystal/webdrivers/Manifest
new file mode 100644
index 000000000000..08e782dbe5b9
--- /dev/null
+++ b/dev-crystal/webdrivers/Manifest
@@ -0,0 +1 @@
+DIST webdrivers-0.4.3.tar.gz 7512 BLAKE2B 447e0ab917d96ef79d982a9ceb4cf70c5cd4714437f183012e91b55a7e63a64a3fb4769cfc85d078c558750981248ec9e6b8724117409c220330e1fcab0e61f6 SHA512 7d46c7592cae01119fc0c8367a55284ce12750f3dc9643eb95ac106926561b798adb4e42b2042f4977b5d7e09d834da58f4b21ae5df2993f76b20d869d526556
diff --git a/dev-crystal/webdrivers/metadata.xml b/dev-crystal/webdrivers/metadata.xml
new file mode 100644
index 000000000000..36e7b7745651
--- /dev/null
+++ b/dev-crystal/webdrivers/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">crystal-loot/webdrivers.cr</remote-id>
+ <maintainer>
+ <name>Matthew McGarvey</name>
+ <email>matthewmcgarvey14@gmail.com</email>
+ </maintainer>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/webdrivers/webdrivers-0.4.3-r2.ebuild b/dev-crystal/webdrivers/webdrivers-0.4.3-r2.ebuild
new file mode 100644
index 000000000000..7c0e23a46499
--- /dev/null
+++ b/dev-crystal/webdrivers/webdrivers-0.4.3-r2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+MY_PN="${PN}.cr"
+DESCRIPTION="Helps manage drivers for Selenium, such as the Chromedriver"
+HOMEPAGE="https://github.com/crystal-loot/webdrivers.cr"
+SRC_URI="https://github.com/crystal-loot/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-crystal/crystar
+ >=dev-crystal/habitat-0.4.9
+"
+
+src_prepare() {
+ default
+
+ # remove tests that use network
+ rm \
+ spec/webdrivers/chromedriver_spec.cr \
+ spec/webdrivers/geckodriver_spec.cr \
+ spec/webdrivers/chrome/driver_remote_version_finder_spec.cr || die
+}
diff --git a/dev-crystal/webless/Manifest b/dev-crystal/webless/Manifest
new file mode 100644
index 000000000000..002d08851914
--- /dev/null
+++ b/dev-crystal/webless/Manifest
@@ -0,0 +1,2 @@
+DIST webless-0.1.0.tar.gz 5524 BLAKE2B 2ab486ea7e1fc8b7d7d2137057532d8aa07ac6f44277039d25c75a7d856d1fdd1f330433e3ef3ac50bfd1b26edfd834efc2f6cd2c2509d7b022ffdb62c185bf2 SHA512 81465db690f416f3f16a390a8e3fc80f943a86d16dc82a04be227db2a787738de16a071655fc99227f2ed9e4ea0ffddf1251064abeaccbcf2d341c19fb080a33
+DIST webless-0.2.0.tar.gz 6135 BLAKE2B 7f3720f810835e2b17dfe22c112d4d47e0184703a81a932e99135a10107c34a05cf39896c1cb51da17a139e4ffa101f3f67f6faee24952f45863bec5aa2d761d SHA512 1a772ca7d13ddccee2ce9bcd0123f7066d990441d4c8bf6b146b76b085d4394e14d860cf5e5407a07d90f684f92b679ee5d8f3a97c8ad916b5382d0f71078ead
diff --git a/dev-crystal/webless/metadata.xml b/dev-crystal/webless/metadata.xml
new file mode 100644
index 000000000000..8e9c3bdd94f7
--- /dev/null
+++ b/dev-crystal/webless/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">crystal-loot/webless</remote-id>
+ <maintainer>
+ <name>matthewmcgarvey</name>
+ <email>matthewmcgarvey14@gmail.com</email>
+ </maintainer>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/webless/webless-0.1.0-r1.ebuild b/dev-crystal/webless/webless-0.1.0-r1.ebuild
new file mode 100644
index 000000000000..778e8dfea99b
--- /dev/null
+++ b/dev-crystal/webless/webless-0.1.0-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="HTTP::Client for testing HTTP::Handlers directly and maintaining cookies"
+HOMEPAGE="https://github.com/matthewmcgarvey/webless"
+SRC_URI="https://github.com/matthewmcgarvey/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-crystal/spectator
+ )
+"
diff --git a/dev-crystal/webless/webless-0.2.0-r1.ebuild b/dev-crystal/webless/webless-0.2.0-r1.ebuild
new file mode 100644
index 000000000000..5122ffc0fdee
--- /dev/null
+++ b/dev-crystal/webless/webless-0.2.0-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+DESCRIPTION="HTTP::Client for testing HTTP::Handlers directly and maintaining cookies"
+HOMEPAGE="https://github.com/crystal-loot/webless"
+SRC_URI="https://github.com/crystal-loot/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-crystal/spectator
+ )
+"
diff --git a/dev-crystal/webmock/Manifest b/dev-crystal/webmock/Manifest
new file mode 100644
index 000000000000..eef159bee2aa
--- /dev/null
+++ b/dev-crystal/webmock/Manifest
@@ -0,0 +1 @@
+DIST webmock-0.14.0.tar.gz 7222 BLAKE2B 2b2f3d352f58fb12bf0aeb23c55318f33ed01958ae82d6bff978518ccb854c55c13c80e6c84a95345030f5aa05445e297d9475987743a12d4ddb7abc118b828f SHA512 fddc32ee30821bdae5aedc0feb4b51507f1d1d9fb4e3e820973df42e6a7a22b767c2b885cd6ae32a4d5cd189fd8d39cb5fd43feb24885b37b3e858e399a3b8a6
diff --git a/dev-crystal/webmock/files/webmock-0.14.0-fix-tests.patch b/dev-crystal/webmock/files/webmock-0.14.0-fix-tests.patch
new file mode 100644
index 000000000000..6914d9b2e6b6
--- /dev/null
+++ b/dev-crystal/webmock/files/webmock-0.14.0-fix-tests.patch
@@ -0,0 +1,43 @@
+From fde6b20d5b80401a967e044b1a3e80ee391bed60 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Johannes=20M=C3=BCller?= <straightshoota@gmail.com>
+Date: Thu, 27 Mar 2025 18:57:18 +0100
+Subject: [PATCH] Fix using URL path in specs (#52)
+
+The specs were wrongly using the fully qualified URL as request resource.
+
+This does no longer work with crystal-lang/crystal#15499 (expected to be released in Crystal 1.16).
+---
+ spec/webmock_spec.cr | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/spec/webmock_spec.cr b/spec/webmock_spec.cr
+index 3f11f24..c8509f9 100644
+--- a/spec/webmock_spec.cr
++++ b/spec/webmock_spec.cr
+@@ -379,9 +379,8 @@ describe WebMock do
+ to_return(body: "")
+ MSG
+ expect_raises WebMock::NetConnectNotAllowedError, error_msg do
+- url = "https://www.example.com/"
+- request = HTTP::Request.new("GET", url)
+- uri = URI.parse(url)
++ uri = URI.parse("https://www.example.com/")
++ request = HTTP::Request.new("GET", uri.path)
+ HTTP::Client.new(uri).exec(request)
+ end
+ end
+@@ -398,9 +397,8 @@ describe WebMock do
+ MSG
+ WebMock.wrap do
+ expect_raises WebMock::NetConnectNotAllowedError, error_msg do
+- url = "https://www.example.com/test"
+- request = HTTP::Request.new("GET", url)
+- uri = URI.parse(url)
++ uri = URI.parse("https://www.example.com/test")
++ request = HTTP::Request.new("GET", uri.path)
+ HTTP::Client.new(uri).exec(request)
+ end
+ end
+--
+2.51.2
+
diff --git a/dev-crystal/webmock/metadata.xml b/dev-crystal/webmock/metadata.xml
new file mode 100644
index 000000000000..0f0a1ee52cf4
--- /dev/null
+++ b/dev-crystal/webmock/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Julien Roy</name>
+ <email>julien@jroy.ca</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">manastech/webmock.cr</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-crystal/webmock/webmock-0.14.0-r1.ebuild b/dev-crystal/webmock/webmock-0.14.0-r1.ebuild
new file mode 100644
index 000000000000..fa578d9652fb
--- /dev/null
+++ b/dev-crystal/webmock/webmock-0.14.0-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shards
+
+MY_PN="${PN}.cr"
+DESCRIPTION="Mock HTTP client"
+HOMEPAGE="https://github.com/manastech/webmock.cr"
+SRC_URI="https://github.com/manastech/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.14.0-fix-tests.patch )
+
+DOCS=( README.md )