diff --git a/dev-libs/libsignal-ffi/Manifest b/dev-libs/libsignal-ffi/Manifest
new file mode 100644
index 0000000..3cfcc99
--- /dev/null
+++ b/dev-libs/libsignal-ffi/Manifest
@@ -0,0 +1,5 @@
+AUX vendor-config.toml 726 BLAKE2B 01bf8d66c92199545172de2351ad6e447847a5b670e23a56d01d9268439101610df34613017cad1a9dc2c856f7eb44ed3a47f8f35f3a698e1e06d11f75491edb SHA512 913d8e163d3364796cf105eb714cb5182e7a271f3f9a24916415d9a2e61cfef61416913c57c3c63c84bbec8667e96e3de424334dd2af5476faf2289b167fa78d
+DIST libsignal-ffi-0.72.1-vendor.tar.xz 36411120 BLAKE2B d100c512d03f0131c9575a5b10222eacbd6cda4977c3eca312548ac8ab4fe5673333c9a6999c40a776e9f330907466b3fa7fdc979a7e7b4dd1c159fce75eedfa SHA512 e911e684e4a33c8319ed219f038a74d214b2d07681f855575bf2f47230c5079144cb6d1566781302291b4c27b989b011518cf85f2da15abe53659e8713d32351
+DIST libsignal-ffi-0.72.1.gh.tar.gz 2077464 BLAKE2B 787648f746be965b9bef3e9eb519337d5d3c4f8bb329fc83f213efad709f18f406b6d017225edf4afd14ce0760fdd7da877d20af3913250377a622155b285254 SHA512 e7e08e2909080f34a6c9e65065cfd107e922415727dcdaf9b61aa0e9fb91c7906326c233b3bb7e26eb665e6b4a1b771e2af13e58d8f6ea0f79c39306c9a071cf
+EBUILD libsignal-ffi-0.72.1.ebuild 2079 BLAKE2B c17325dc75171c8727f9dadce2583bab3d7928f965635863be0d913592b973010d3e13fbc82381c9920124f248c9998f78b289c8ae1803a7c47f65c1fef1c97b SHA512 e04857349b8a71d4722a6c7e6b46d3d22f367b6ffc2cfa7b5b58f0ed3de61f6b44ddbdd861f325b9130eecba6ce42330b45521a59054967995e858352ad7ac9f
+MISC metadata.xml 465 BLAKE2B 7033371ed6085fb963ab1032513fcc47aca16cb13ca1126b2c63ca92b402286a7314751b2a54f2ea71a79d19687b0fc71a1ca83c6e0efc3ac0c9b2f7479b1c49 SHA512 6471ed95b2ef6f4b6857bd7443d650108025a5a5d1d338fd878166bedeeee0977591a6e52891032cfcaf2b8f0f50605ea5d4849268fa55349559c5eb9f5677ee
diff --git a/dev-libs/libsignal-ffi/files/vendor-config.toml b/dev-libs/libsignal-ffi/files/vendor-config.toml
new file mode 100644
index 0000000..29aafab
--- /dev/null
+++ b/dev-libs/libsignal-ffi/files/vendor-config.toml
@@ -0,0 +1,20 @@
+[source.crates-io]
+replace-with = "vendored-sources"
+
+[source."git+https://github.com/JesperAxelsson/rust-intmap?rev=e7edd6e8fb452506ca2570e91f62b14dc29a950c"]
+git = "https://github.com/JesperAxelsson/rust-intmap"
+rev = "e7edd6e8fb452506ca2570e91f62b14dc29a950c"
+replace-with = "vendored-sources"
+
+[source."git+https://github.com/signalapp/boring?tag=signal-v4.15.0"]
+git = "https://github.com/signalapp/boring"
+tag = "signal-v4.15.0"
+replace-with = "vendored-sources"
+
+[source."git+https://github.com/signalapp/curve25519-dalek?tag=signal-curve25519-4.1.3"]
+git = "https://github.com/signalapp/curve25519-dalek"
+tag = "signal-curve25519-4.1.3"
+replace-with = "vendored-sources"
+
+[source.vendored-sources]
+directory = "vendor"
\ No newline at end of file
diff --git a/dev-libs/libsignal-ffi/libsignal-ffi-0.72.1.ebuild b/dev-libs/libsignal-ffi/libsignal-ffi-0.72.1.ebuild
new file mode 100644
index 0000000..596a15f
--- /dev/null
+++ b/dev-libs/libsignal-ffi/libsignal-ffi-0.72.1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.15.0
+
+EAPI=8
+
+LLVM_COMPAT=( {18..19} )
+RUST_NEEDS_LLVM=1
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [boring-sys]='https://github.com/signalapp/boring;bb42da53b3900aea1936d41decf9403f25c4259c;boring-%commit%/boring-sys'
+ [boring]='https://github.com/signalapp/boring;bb42da53b3900aea1936d41decf9403f25c4259c;boring-%commit%/boring'
+ [curve25519-dalek-derive]='https://github.com/signalapp/curve25519-dalek;7c6d34756355a3566a704da84dce7b1c039a6572;curve25519-dalek-%commit%/curve25519-dalek-derive'
+ [curve25519-dalek]='https://github.com/signalapp/curve25519-dalek;7c6d34756355a3566a704da84dce7b1c039a6572;curve25519-dalek-%commit%/curve25519-dalek'
+ [tokio-boring]='https://github.com/signalapp/boring;bb42da53b3900aea1936d41decf9403f25c4259c;boring-%commit%/tokio-boring'
+)
+
+inherit llvm-r1 cargo
+
+DESCRIPTION="A C ABI library which exposes Signal protocol logic"
+HOMEPAGE="https://github.com/signalapp/libsignal"
+SRC_URI="
+ https://github.com/signalapp/libsignal/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz
+ ${P}-vendor.tar.xz
+"
+S="${WORKDIR}/libsignal-${PV}/rust/bridge/ffi"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+"
+fi
+
+LICENSE="AGPL-3"
+# Dependent crate licenses
+LICENSE+="
+ AGPL-3 Apache-2.0 BSD-2 BSD GPL-3+ ISC MIT MPL-2.0 Unicode-3.0
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ dev-libs/protobuf
+ $(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}')
+"
+
+pkg_setup() {
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+}
+
+src_unpack() {
+ default
+ cargo_gen_config
+ ln -s "${WORKDIR}/vendor/" "${WORKDIR}/libsignal-${PV}/vendor" || die
+ sed -i "${ECARGO_HOME}/config.toml" \
+ -e '/source.crates-io/d' \
+ -e '/replace-with = "gentoo"/d' \
+ -e '/local-registry = "\/nonexistent"/d' \
+ || die
+ cat "${FILESDIR}/vendor-config.toml" >> "${ECARGO_HOME}/config.toml" || die
+}
+
+src_install() {
+ dolib.a "${WORKDIR}/${P/-ffi/}/$(cargo_target_dir)/${PN/-/_}.a"
+}
diff --git a/dev-libs/libsignal-ffi/metadata.xml b/dev-libs/libsignal-ffi/metadata.xml
new file mode 100644
index 0000000..96e7494
--- /dev/null
+++ b/dev-libs/libsignal-ffi/metadata.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ Julien Roy
+ julien@jroy.ca
+
+
+ https://github.com/signalapp/libsignal/issues
+ https://github.com/signalapp/libsignal/releases
+ signalapp/libsignal
+
+
diff --git a/metadata/md5-cache/dev-libs/libsignal-ffi-0.72.1 b/metadata/md5-cache/dev-libs/libsignal-ffi-0.72.1
new file mode 100644
index 0000000..455eb61
--- /dev/null
+++ b/metadata/md5-cache/dev-libs/libsignal-ffi-0.72.1
@@ -0,0 +1,14 @@
+BDEPEND=dev-libs/protobuf llvm_slot_18? ( llvm-core/clang:18 ) llvm_slot_19? ( llvm-core/clang:19 ) llvm_slot_18? ( || ( dev-lang/rust-bin:1.81.0[llvm_slot_18] dev-lang/rust:1.81.0[llvm_slot_18] dev-lang/rust-bin:1.80.1[llvm_slot_18] dev-lang/rust:1.80.1[llvm_slot_18] dev-lang/rust-bin:1.79.0[llvm_slot_18] dev-lang/rust:1.79.0[llvm_slot_18] dev-lang/rust-bin:1.78.0[llvm_slot_18] dev-lang/rust:1.78.0[llvm_slot_18] ) ) llvm_slot_19? ( || ( dev-lang/rust-bin:1.86.0[llvm_slot_19] dev-lang/rust:1.86.0[llvm_slot_19] dev-lang/rust-bin:1.85.1[llvm_slot_19] dev-lang/rust:1.85.1[llvm_slot_19] dev-lang/rust-bin:1.85.0[llvm_slot_19] dev-lang/rust:1.85.0[llvm_slot_19] dev-lang/rust-bin:1.84.1[llvm_slot_19] dev-lang/rust:1.84.1[llvm_slot_19] dev-lang/rust-bin:1.84.0[llvm_slot_19] dev-lang/rust:1.84.0[llvm_slot_19] dev-lang/rust-bin:1.83.0[llvm_slot_19] dev-lang/rust:1.83.0[llvm_slot_19] dev-lang/rust-bin:1.82.0[llvm_slot_19] dev-lang/rust:1.82.0[llvm_slot_19] ) )
+DEFINED_PHASES=compile configure install setup test unpack
+DESCRIPTION=A C ABI library which exposes Signal protocol logic
+EAPI=8
+HOMEPAGE=https://github.com/signalapp/libsignal
+INHERIT=llvm-r1 cargo
+IUSE=+llvm_slot_19 llvm_slot_18 debug
+KEYWORDS=~amd64
+LICENSE=AGPL-3 AGPL-3 Apache-2.0 BSD-2 BSD GPL-3+ ISC MIT MPL-2.0 Unicode-3.0
+REQUIRED_USE=^^ ( llvm_slot_18 llvm_slot_19 )
+SLOT=0
+SRC_URI=https://github.com/signalapp/libsignal/archive/v0.72.1.tar.gz -> libsignal-ffi-0.72.1.gh.tar.gz libsignal-ffi-0.72.1-vendor.tar.xz
+_eclasses_=llvm-utils 64536677f4b4365e25e9b739163bed58 llvm-r1 0bd586d3786517cd63802a520b404dda toolchain-funcs f9d71a6efe9d083aec750dd13968e169 flag-o-matic b892042b2667b8ac69ec8a2571dc290a multiprocessing 1e32df7deee68372153dca65f4a7c21f rust 205f396579fe93ffb2775ef7e36a1b20 rust-toolchain 76468983281b0a7fc167ca224f84ecfd cargo 5da01b45ec362e78575502b4fb82773a
+_md5_=b2b2721a42d2dfc987d24e07798b0e4d
diff --git a/net-im/mautrix-signal/Manifest b/net-im/mautrix-signal/Manifest
new file mode 100644
index 0000000..a121815
--- /dev/null
+++ b/net-im/mautrix-signal/Manifest
@@ -0,0 +1,4 @@
+DIST mautrix-signal-0.7.4-deps.tar.xz 32458020 BLAKE2B 6afa4858922426d973f737eac11528899a07aad453ac46b10218b7ba54e499b6fe1fff194329b5d47c2dafa6f1517684557bd639378b97f3dd632fa1941228b3 SHA512 138c2dbc3a4579af10f7fd27cd3897d012fb8070c69a061b1f0fa6806fca17fbf56e0781e1a9593dd73c5a2f478e7d20deb9fc8f29d578529e5ed5d9813472c5
+DIST mautrix-signal-0.7.4.gh.tar.gz 270059 BLAKE2B a01a47c8456fd60d7275b15427e3aaaec4df89e05934f822e5ad31392fdf2abff4fb58fc907fc07e818a66828243d58b38386a647439aff53eff4b64192ef808 SHA512 9bee450a8c18b75a0b8f9df623f51eb6b6e327a44237ba4e0c74c961ee966a25fa1acdbcabda54100d955d6074582980bbab094f9b086dc51d1b8fcdafb4b0ca
+DIST mautrix-signal-0.7.5-deps.tar.xz 33129936 BLAKE2B c45a108236dd0c055dac7e44ded7fb8ddb031ea0b07a2e1a9230db769dc5928a358b371bdc310e316b53aee536e310c2306f1321b7ef41df8b8fce0e8ca81b75 SHA512 76d96145d2ae83aaaa26fca1510df079aacafe52cc7be3005c93efffea78843507b158962e4d5ea156618e5e392e9cb812e15a95ce1f0fcbd50818bea5b5c2aa
+DIST mautrix-signal-0.7.5.gh.tar.gz 273486 BLAKE2B 6eaaff57f2695cf779c91c1140fb2e11fe3b159201e6492b6ff7246c486520f7be03cb67bf06088dd56bc80239b5188b0180055396b6067ba7985c4f4e507060 SHA512 cd0c237b08e511739e8a33665e131f5a000a7508bf867d6b6059e7ea37d74ab879cc2be6bdee1dd7f195053cb866566a710356a92559a1ac05897b94f80d6b21
diff --git a/net-im/mautrix-signal/files/mautrix-signal.initd b/net-im/mautrix-signal/files/mautrix-signal.initd
new file mode 100644
index 0000000..c59dbd0
--- /dev/null
+++ b/net-im/mautrix-signal/files/mautrix-signal.initd
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+name="mautrix-signal daemon"
+description="A Matrix-Signal puppeting bridge"
+module="mautrix_signal"
+
+pidfile="/run/${RC_SVCNAME}.pid"
+command="/usr/bin/mautrix-signal"
+command_args="-c /etc/mautrix/${module}.yaml -r /var/lib/mautrix/signal/registration.yaml"
+command_background=true
+command_user="mautrix-signal:mautrix"
+
+output_log="/var/log/mautrix/signal/daemon.log"
+error_log="/var/log/mautrix/signal/daemon.log"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -d -m 0755 -o "$command_user" /var/lib/mautrix/signal
+ checkpath -f -m 0644 -o "$command_user" "$output_log"
+}
diff --git a/net-im/mautrix-signal/files/mautrix-signal.service b/net-im/mautrix-signal/files/mautrix-signal.service
new file mode 100644
index 0000000..2f5484f
--- /dev/null
+++ b/net-im/mautrix-signal/files/mautrix-signal.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=A Matrix-Signal puppeting bridge
+After=network.target
+
+[Service]
+User=mautrix-signal
+Group=mautrix
+Restart=always
+ExecStart=/usr/bin/mautrix-signal -c /etc/mautrix/mautrix_signal.yaml -r /var/lib/mautrix/signal/registration.yaml
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/net-im/mautrix-signal/mautrix-signal-0.8.3.ebuild b/net-im/mautrix-signal/mautrix-signal-0.8.3.ebuild
new file mode 100644
index 0000000..429314f
--- /dev/null
+++ b/net-im/mautrix-signal/mautrix-signal-0.8.3.ebuild
@@ -0,0 +1,67 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-module systemd
+
+DESCRIPTION="A Matrix-Signal puppeting bridge"
+HOMEPAGE="https://github.com/mautrix/signal"
+SRC_URI="https://github.com/mautrix/signal/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz
+# https://jroy.ca/dist/${P}-deps.tar.xz
+"
+S="${WORKDIR}/signal-${PV}"
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ acct-user/${PN}
+ dev-libs/olm
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ ~dev-libs/libsignal-ffi-0.64.1
+ dev-libs/olm
+"
+
+src_compile() {
+ ego build "${S}"/cmd/"${PN}"
+}
+
+src_install() {
+ dobin mautrix-signal
+
+ keepdir /var/log/mautrix/signal
+ fowners -R root:mautrix /var/log/mautrix
+ fperms -R 770 /var/log/mautrix
+
+ newinitd "${FILESDIR}/${PN}.initd" "${PN}"
+ systemd_dounit "${FILESDIR}/${PN}.service"
+
+ keepdir /etc/mautrix
+ fowners -R root:mautrix /etc/mautrix
+ fperms -R 770 /etc/mautrix
+}
+
+pkg_postinst() {
+ einfo
+ elog ""
+ elog "Before you can use ${PN}, you must configure it correctly"
+ elog "To generate the configuration file, use the following command:"
+ elog "mautrix-signal -e"
+ elog "Then move the config.yaml file to /etc/mautrix/${PN/-/_}.yaml"
+ elog "Configure the file according to your homeserver"
+ elog "When done, run the following command: emerge --config ${CATEGORY}/${PN}"
+ elog "Then, you must register the bridge with your homeserver"
+ elog "Refer your homeserver's documentation for instructions"
+ elog "The registration file is located at /var/lib/${PN/-/\/}/registration.yaml"
+ elog "Finally, you may start the ${PN} daemon"
+ einfo
+}
+
+pkg_config() {
+ su - "${PN}" -s /bin/sh -c \
+ "/usr/bin/${PN} -c /etc/mautrix/${PN/-/_}.yaml -g -r /var/lib/${PN/-/\/}/registration.yaml"
+}
diff --git a/net-im/mautrix-signal/metadata.xml b/net-im/mautrix-signal/metadata.xml
new file mode 100644
index 0000000..de620b0
--- /dev/null
+++ b/net-im/mautrix-signal/metadata.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ julien@jroy.ca
+ Julien Roy
+
+
+
+ Tulir Asokan
+ tulir@maunium.net
+
+ https://github.com/mautrix/signal/releases
+ https://docs.mau.fi/bridges/python/signal/index.html
+ https://github.com/mautrix/signal/issues
+ mautrix/signal
+ mautrix-signal
+
+