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 + +