diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-09-18 12:11:36 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-09-18 12:11:36 +0100 |
commit | bcd00c826070701606b0ccebf46234dfc792d3e9 (patch) | |
tree | 3aeb69c5dd0a179ff8214b99f8db0aea63953d22 /net-im | |
parent | 7be9edf526114e427a3a44ff8b418fed3ce570aa (diff) |
gentoo auto-resync : 18:09:2024 - 12:11:36
Diffstat (limited to 'net-im')
-rw-r--r-- | net-im/Manifest.gz | bin | 9076 -> 9078 bytes | |||
-rw-r--r-- | net-im/synapse/Manifest | 2 | ||||
-rw-r--r-- | net-im/synapse/synapse-1.115.0.ebuild | 244 | ||||
-rw-r--r-- | net-im/telegram-desktop/Manifest | 2 | ||||
-rw-r--r-- | net-im/telegram-desktop/telegram-desktop-5.5.5.ebuild | 261 |
5 files changed, 509 insertions, 0 deletions
diff --git a/net-im/Manifest.gz b/net-im/Manifest.gz Binary files differindex 84b41a98b4de..df84084ef0e2 100644 --- a/net-im/Manifest.gz +++ b/net-im/Manifest.gz diff --git a/net-im/synapse/Manifest b/net-im/synapse/Manifest index 81eaf78a508f..aae657d2f58f 100644 --- a/net-im/synapse/Manifest +++ b/net-im/synapse/Manifest @@ -73,6 +73,7 @@ DIST syn-2.0.61.crate 257199 BLAKE2B d2133732d9a7f16c47729be1b4c18c05ffdcb9cb139 DIST synapse-1.112.0.gh.tar.gz 8644732 BLAKE2B b50d9313eee37efa87c8cbd197728462c3104b336136cd732c4eef3d17c1d71aaaac7f4dc28099755b67221ac9351e4238fa45fc01581d752eafddad6687e749 SHA512 dc09e37f6581dd2b25c2aaae53294df997e450bfc4c3496929f56d342d354a48f0bfaac2aee154f7e1f53e86f7d078844495290c0fbc6c91efea966f8f6d68ff DIST synapse-1.113.0.gh.tar.gz 8674102 BLAKE2B 2ee2e400b0a759af9a4278cfb6028c8a355d842d8a4f02ba9946f2ff5caba95573c53f33bbbca029a092cfabadfd853d4caaef4e2ad8d218ab89722f3a59d00b SHA512 190e14adb67ec39f63b21623b620fe60047ef49b2ea5515c17d3ff7d1cc990ddb26c4d7a35b65b61b28b5059ad6ff78a90cc3d49efc5b462f6a4240284ebf50f DIST synapse-1.114.0.gh.tar.gz 8697736 BLAKE2B 984cab788fd88ffbb1919b4aad75df741267a1d8752d9fd95a68e7bae75b28993b325fff32d721661607c3d66761f2ba5768ad6f0636f65a23eb4fc9c9e5100e SHA512 14e9abd441d1f67411d7087ca489a52343d7804ba8b575326ec52e128c0a3a0ba533b08ddaf3d31b49ac80d7b79a18e9ccdde581510c69c883d4284ddd4aed4b +DIST synapse-1.115.0.gh.tar.gz 8750060 BLAKE2B 6e5b50b43b690c74b63e1f13b886706f695301e12e4d2c47d6d21bc58919861413914237fe22e77b31c1aa6143df731a7a570063a704a5fd70264ad2902ecd14 SHA512 6ad41f8fa59de6ac13d4cb039d107f4bcce41bcdee51f2347645359baf89437665aad7a27981568c0b8d41732503f68a254414d42158fb65504ff465cbb10669 DIST target-lexicon-0.12.14.crate 25508 BLAKE2B 5ebb6b49e5c3b0057959557651287d4bf5ffe5b499340019ff64d5fc3b64e780e344982e358c94b1b25a20bf0f526a584aeecc704695b50a55cc268dd65edb97 SHA512 3410ecc0faf854f49c41c99f83972960e67065b1e0e78557a7c4996d996109bfd167d2121a019f5256f996c896cd45af032038ab7918fdcc6ee6311693ce951a DIST typenum-1.17.0.crate 42849 BLAKE2B a6d1162050679e2c4ab2467f3a77d301f6861882eb7c9749f31d047f383dd5bd2ed5846ad63eed99ccc04d6ac36cc697a305861e1d65880b4d2ef04ee0a79b94 SHA512 99773d5d9f850c0602db4bb67dd062b0ade6f086e155216f1bb2fb6569461ba7e1b7c2f2af81ea8833bc3bfcf3fe5033edecb7c438adae63f59d3e30cf63a508 DIST ulid-1.1.3.crate 11596 BLAKE2B a079fc34f5af9de89469d1edd5a53c1bc1a0f9bff8ce731c185345fe4067432a121efc6a04ac6cf377fd03c89558067e7d5d52c4b9dfd23e7055ce5af89e84b3 SHA512 a8f6ab3601417e7a46a763bb28722c3770fb0c2dea340c02a8e96d2e3597a304589745c65278c90bbc64f5153501a2a85321386669fda71ad7252ec67dd749df @@ -98,4 +99,5 @@ DIST windows_x86_64_msvc-0.52.5.crate 827905 BLAKE2B fd5dac198bfbf29878cb461a733 EBUILD synapse-1.112.0.ebuild 6407 BLAKE2B 4c79936314867329501e016e5c34fb2ccb0ded433001f26e516dacaf4370cd12f4041b45957df9a7b439a9e3a1c3b86d4b49e90d664efefe19cfdb553033f1f0 SHA512 f5542fa4deb354da7a9659b0645c2793be7fe6ac8f3dd6114b846b6487387f5d791e9a052d70dff02408df239058da325526f5b63b79465b2af6cd4ff23b5cab EBUILD synapse-1.113.0.ebuild 6407 BLAKE2B 47fdf66eb7e1cb7a452c9f07e64d8cc9b4dffbb7626a5134976d6d7c857ad303e24cfe47d222f8911d1821b49ed001f084cc6d7f424e12dd3a7120d170e7a5b4 SHA512 811d79d53d2529683e355fa3608ed194fc915cfd7eaffd79eb15e26d95d85d7a93678e54495fe3f1266f08058bfaea2c93590617b2585056a882a945b7224a03 EBUILD synapse-1.114.0.ebuild 6408 BLAKE2B e32624bcb8e43542ebbf4847a20084605ff0978bb6cb9b8d7a82d86c30455bc5ca01a34dc46ea4c2dbbce649f261e9c4189db0314482bc9e6cb03934635767bf SHA512 86e0db709aecaab3a70e54ca7946f2f0e9a5dd0fd25528ada28db055630ff05f41e47ee6455d856b2e25a6433ee75802365745f5157fe2d99a3c0c08152e301a +EBUILD synapse-1.115.0.ebuild 6408 BLAKE2B ff7e7d344680c615ac0864382f862b2bdcb45fc6709f4cc2ada8ad4f92e82d2bfb07b97b781b7ea20286375aa2fa2e54bc87240312f9818c6fe7b17c91ae1896 SHA512 c98f609c08d4a3b5d0c110c61952bbe8c1c570413263988401ceda9e4b90095194a0ea4c3e2fbc7443661efc3256eb585ca421291ef0d928640d75029c574acc MISC metadata.xml 381 BLAKE2B 8bf85af089213456d20c9d66a4d9788ff209983f8fd98c9fb6cf03e03ab5c12c9d5518ff4d86f5d4fb2a9a1080516f1febfedf5b06b0cb8e101cdc035bb139f4 SHA512 e88fd7f735bc9ca0aced01f49ca539134b297a5c9c5ee633fe3de64626d6f4b4eb547326288abea9c161f2647852c23658dba17265e64254335870450f644307 diff --git a/net-im/synapse/synapse-1.115.0.ebuild b/net-im/synapse/synapse-1.115.0.ebuild new file mode 100644 index 000000000000..80fa2041d2b9 --- /dev/null +++ b/net-im/synapse/synapse-1.115.0.ebuild @@ -0,0 +1,244 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=poetry +PYTHON_COMPAT=( python3_{10..13} ) + +CRATES=" + aho-corasick@1.1.3 + anyhow@1.0.86 + arc-swap@1.7.1 + autocfg@1.3.0 + base64@0.21.7 + bitflags@2.5.0 + blake2@0.10.6 + block-buffer@0.10.4 + bumpalo@3.16.0 + bytes@1.7.1 + cfg-if@1.0.0 + cpufeatures@0.2.12 + crypto-common@0.1.6 + digest@0.10.7 + fnv@1.0.7 + generic-array@0.14.7 + getrandom@0.2.15 + headers-core@0.3.0 + headers@0.4.0 + heck@0.4.1 + hex@0.4.3 + http@1.1.0 + httpdate@1.0.3 + indoc@2.0.5 + itoa@1.0.11 + js-sys@0.3.69 + lazy_static@1.5.0 + libc@0.2.154 + lock_api@0.4.12 + log@0.4.22 + memchr@2.7.2 + memoffset@0.9.1 + mime@0.3.17 + once_cell@1.19.0 + parking_lot@0.12.2 + parking_lot_core@0.9.10 + portable-atomic@1.6.0 + ppv-lite86@0.2.17 + proc-macro2@1.0.82 + pyo3-build-config@0.21.2 + pyo3-ffi@0.21.2 + pyo3-log@0.10.0 + pyo3-macros-backend@0.21.2 + pyo3-macros@0.21.2 + pyo3@0.21.2 + pythonize@0.21.1 + quote@1.0.36 + rand@0.8.5 + rand_chacha@0.3.1 + rand_core@0.6.4 + redox_syscall@0.5.1 + regex-automata@0.4.6 + regex-syntax@0.8.3 + regex@1.10.6 + ryu@1.0.18 + scopeguard@1.2.0 + serde@1.0.209 + serde_derive@1.0.209 + serde_json@1.0.127 + sha1@0.10.6 + sha2@0.10.8 + smallvec@1.13.2 + subtle@2.5.0 + syn@2.0.61 + target-lexicon@0.12.14 + typenum@1.17.0 + ulid@1.1.3 + unicode-ident@1.0.12 + unindent@0.2.3 + version_check@0.9.4 + wasi@0.11.0+wasi-snapshot-preview1 + wasm-bindgen-backend@0.2.92 + wasm-bindgen-macro-support@0.2.92 + wasm-bindgen-macro@0.2.92 + wasm-bindgen-shared@0.2.92 + wasm-bindgen@0.2.92 + web-time@1.1.0 + windows-targets@0.52.5 + windows_aarch64_gnullvm@0.52.5 + windows_aarch64_msvc@0.52.5 + windows_i686_gnu@0.52.5 + windows_i686_gnullvm@0.52.5 + windows_i686_msvc@0.52.5 + windows_x86_64_gnu@0.52.5 + windows_x86_64_gnullvm@0.52.5 + windows_x86_64_msvc@0.52.5 +" + +inherit cargo distutils-r1 multiprocessing optfeature systemd + +DESCRIPTION="Reference implementation of Matrix homeserver" +HOMEPAGE=" + https://matrix.org/ + https://github.com/element-hq/synapse +" +SRC_URI=" + https://github.com/element-hq/${PN}/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz + ${CARGO_CRATE_URIS} +" + +LICENSE="AGPL-3+" +# Dependent crate licenses +LICENSE+=" + Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-DFS-2016 + || ( Apache-2.0 Boost-1.0 ) +" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64" +IUSE="postgres systemd test" +RESTRICT="!test? ( test )" + +DEPEND=" + acct-user/synapse + acct-group/synapse +" +# The dev-python/twisted-24.3.0_p20240628 snapshot available in our tree +# introduces some breaking changes for synapse, +# see https://github.com/element-hq/synapse/issues/17075 +RDEPEND=" + ${DEPEND} + dev-python/attrs[${PYTHON_USEDEP}] + dev-python/bcrypt[${PYTHON_USEDEP}] + dev-python/bleach[${PYTHON_USEDEP}] + >=dev-python/canonicaljson-2[${PYTHON_USEDEP}] + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/ijson[${PYTHON_USEDEP}] + dev-python/immutabledict[${PYTHON_USEDEP}] + >=dev-python/jinja-3.0[${PYTHON_USEDEP}] + dev-python/jsonschema[${PYTHON_USEDEP}] + >=dev-python/matrix-common-1.3.0[${PYTHON_USEDEP}] + dev-python/msgpack[${PYTHON_USEDEP}] + dev-python/netaddr[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/phonenumbers[${PYTHON_USEDEP}] + >=dev-python/pillow-10.0.1[${PYTHON_USEDEP},webp] + dev-python/prometheus-client[${PYTHON_USEDEP}] + dev-python/pyasn1-modules[${PYTHON_USEDEP}] + dev-python/pyasn1[${PYTHON_USEDEP}] + dev-python/pydantic[${PYTHON_USEDEP}] + dev-python/pymacaroons[${PYTHON_USEDEP}] + dev-python/pyopenssl[${PYTHON_USEDEP}] + dev-python/python-multipart[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/service-identity[${PYTHON_USEDEP}] + dev-python/signedjson[${PYTHON_USEDEP}] + dev-python/sortedcontainers[${PYTHON_USEDEP}] + dev-python/treq[${PYTHON_USEDEP}] + dev-python/twisted[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] + dev-python/unpaddedbase64[${PYTHON_USEDEP}] + postgres? ( dev-python/psycopg:2[${PYTHON_USEDEP}] ) + systemd? ( dev-python/python-systemd[${PYTHON_USEDEP}] ) +" +BDEPEND=" + dev-python/setuptools-rust[${PYTHON_USEDEP}] + test? ( + dev-python/hiredis[${PYTHON_USEDEP}] + dev-python/idna[${PYTHON_USEDEP}] + dev-python/parameterized[${PYTHON_USEDEP}] + dev-python/pyicu[${PYTHON_USEDEP}] + dev-python/txredisapi[${PYTHON_USEDEP}] + postgres? ( dev-db/postgresql[server] ) + ) +" + +# Rust extension +QA_FLAGS_IGNORED="usr/lib/python3.*/site-packages/synapse/synapse_rust.abi3.so" + +src_test() { + if use postgres; then + einfo "Preparing postgres test instance" + initdb --pgdata="${T}/pgsql" || die + pg_ctl --wait --pgdata="${T}/pgsql" start \ + --options="-h '' -k '${T}'" || die + createdb --host="${T}" synapse_test || die + + # See https://matrix-org.github.io/synapse/latest/development/contributing_guide.html#running-tests-under-postgresql + local -x SYNAPSE_POSTGRES=1 + local -x SYNAPSE_POSTGRES_HOST="${T}" + fi + + # This remove is necessary otherwise python is not able to locate + # synapse_rust.abi3.so. + rm -rf synapse || die + + nonfatal distutils-r1_src_test + local ret=${?} + + if use postgres; then + einfo "Stopping postgres test instance" + pg_ctl --wait --pgdata="${T}/pgsql" stop || die + fi + + [[ ${ret} -ne 0 ]] && die +} + +python_test() { + "${EPYTHON}" -m twisted.trial -j "$(makeopts_jobs)" tests +} + +src_install() { + distutils-r1_src_install + keepdir /var/{lib,log}/synapse /etc/synapse + fowners synapse:synapse /var/{lib,log}/synapse /etc/synapse + fperms 0750 /var/{lib,log}/synapse /etc/synapse + newinitd "${FILESDIR}/${PN}.initd-r1" "${PN}" + systemd_dounit "${FILESDIR}/synapse.service" +} + +pkg_postinst() { + optfeature "Improve user search for international display names" dev-python/pyicu + optfeature "Redis support" dev-python/txredisapi + optfeature "VoIP relaying on your homeserver with turn" net-im/coturn + + if [[ -z "${REPLACING_VERSIONS}" ]]; then + einfo + elog "In order to generate initial configuration run:" + elog "sudo -u synapse synapse_homeserver \\" + elog " --server-name matrix.domain.tld \\" + elog " --config-path /etc/synapse/homeserver.yaml \\" + elog " --generate-config \\" + elog " --data-directory /var/lib/synapse \\" + elog " --report-stats=no" + einfo + else + einfo + elog "Please refer to upgrade notes if any special steps are required" + elog "to upgrade from the version you currently have installed:" + elog + elog " https://github.com/element-hq/synapse/blob/develop/docs/upgrade.md" + einfo + fi +} diff --git a/net-im/telegram-desktop/Manifest b/net-im/telegram-desktop/Manifest index 59c298315b53..d49c8495c980 100644 --- a/net-im/telegram-desktop/Manifest +++ b/net-im/telegram-desktop/Manifest @@ -7,8 +7,10 @@ DIST tdesktop-5.0.4-full.tar.gz 69462550 BLAKE2B 46e630ea74c6571e41909bab768ff19 DIST tdesktop-5.2.3-full.tar.gz 69745773 BLAKE2B a6811098d2e0f8d0ebc0d7ac4d392981ff600544d31eb38a72b208778a69462d241122f8ff74b3a8b730d7a1221b78febb0ea9f641872992a830d9c805555c39 SHA512 5d5bf1f5c35af11b2adf7db075832e7cca5768c2c5f82d9fc5054b9d45f964a3520eb88864aefc3de593ce1359534b210b1e5d89495819e7386f6ca15fd4a15c DIST tdesktop-5.4.1-full.tar.gz 70056797 BLAKE2B 078a747c51df9ca8a173270b128e5c84439706b6c9d5ecde0fb0c88301f709b01613d2a895e9d1219809093cf3409211e63d8e131abed172c16192763dadc764 SHA512 f86b86c6001b2c214d897821c175f41c53ca44401285909b2b12254634cca821137d61a28c75d79ed757c1ade08873035397aae7c462494c1ab6382501a8072a DIST tdesktop-5.5.1-full.tar.gz 70095171 BLAKE2B 3221defb9df90333434b688e698b7c1ef842dca968049f3cd0cee428da353867cac52a0325fa1006e7d0a11d693c8e5e28b1983b57217ac4c227831cf1052214 SHA512 c8aadf6d2ad739523e714774c1b69be6792f805fb83d7f16a716c688cc800c54c5f13595742bd26d8b84f26342d89e21c668c8a79ed2a0607782a8421a40844a +DIST tdesktop-5.5.5-full.tar.gz 70112426 BLAKE2B 21cdb01d66ea1d1b7479995d790fc44d65248c807dafb25d865970a0d619483ccccd99c8d64b6853d8aa29c78c73010f14e720bf707c918e7c3bb5cb2428dde5 SHA512 88cd526fb02b7b0459cb1bd1b0c57147b2261e57c392d2cb62964015ef6b26e202fba717b35d74201c41becf0a5d78ef4d9d593b5666b3f0a0db646e40bfd1fc EBUILD telegram-desktop-5.0.4.ebuild 8059 BLAKE2B 92eef60b7a4b64525531bc90628337ac1e84d1e1927674db9a706dc8f436b866195f1915f4bd2c7b44bb9bdbc3e5b0dd1809f160669b07eea4a27fb51d13aba1 SHA512 58a4f07be2b04a92f59cbbf3481dda12c624c6038de44963303e401a90e79dfc72c0983c7ee6c81bb3ffd4e7b9d40a95c026fd481b76c3f210455449a8a1b2ba EBUILD telegram-desktop-5.2.3.ebuild 8625 BLAKE2B 883ce12ec143bbae55cd86dce5d7cc318e1bcf13eb1b97bb36bb6752e67e45cdf8113f8d15292078b96a6e1217a00fb853510f0aed82071b21d242da06348c28 SHA512 17e9d5d3fd930ba89a468f3193cfe463ff5eb1b1b9d44753ca7276aab32ce526fbf64fb4b5c7248695c28c260c19ada436be4040d0afd11b03a147cdc36d429c EBUILD telegram-desktop-5.4.1.ebuild 8612 BLAKE2B b7ecef63da852fff43d7a40c6fcdd4cd80351bc3d500f986918f45f363efde4dc292e1a70e54321977014587c35b789be4602b891b28788d0d009141d416be42 SHA512 9f05f1bec2849d8e5299b930ef3579b54392cfeb9f267aae88b9eaadc969d085aff9f3ac15762e6f94b9cd15f1330bfed6c4392786fa6a2f82b9bf49c837d9ec EBUILD telegram-desktop-5.5.1.ebuild 8626 BLAKE2B a9d02a9e4bf4ab88d393aa0b43fe046ec5b37a1fa75c6697a98b05c8ee5c720cd86ed54e9cd88596541847761d0a007110b9a4b0aaaffa9b48df94cceb85087e SHA512 0f977bf5388c35b728b475ec62b7e5a9e81ff0c26bc360073df06a929a8b9c209ed2504f498ab4f3e7a95a337e65b34b6e7345ccf5425dbd60d83a84140b769b +EBUILD telegram-desktop-5.5.5.ebuild 8626 BLAKE2B a9d02a9e4bf4ab88d393aa0b43fe046ec5b37a1fa75c6697a98b05c8ee5c720cd86ed54e9cd88596541847761d0a007110b9a4b0aaaffa9b48df94cceb85087e SHA512 0f977bf5388c35b728b475ec62b7e5a9e81ff0c26bc360073df06a929a8b9c209ed2504f498ab4f3e7a95a337e65b34b6e7345ccf5425dbd60d83a84140b769b MISC metadata.xml 1415 BLAKE2B ff67e288b209502228591761d9a7774a95b52cca610ddcfb4398b1aa6db264d84df36aec1f8f109679cd09d5858c8b8237bbf9fa0643fef4974864c5f9e1e192 SHA512 609618e13e7fd77b17797ca5f3fcd4a4a508f5f13a5a4c4a84e002f0634b44dd231b75a52635b65fbe76aad0e75fa6deb3b366dbff7e54316fe143367f6c0c89 diff --git a/net-im/telegram-desktop/telegram-desktop-5.5.5.ebuild b/net-im/telegram-desktop/telegram-desktop-5.5.5.ebuild new file mode 100644 index 000000000000..98c1b5012cf5 --- /dev/null +++ b/net-im/telegram-desktop/telegram-desktop-5.5.5.ebuild @@ -0,0 +1,261 @@ +# Copyright 2020-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) + +inherit xdg cmake python-any-r1 optfeature flag-o-matic + +DESCRIPTION="Official desktop client for Telegram" +HOMEPAGE="https://desktop.telegram.org https://github.com/telegramdesktop/tdesktop" + +MY_P="tdesktop-${PV}-full" +SRC_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v${PV}/${MY_P}.tar.gz" +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD GPL-3-with-openssl-exception LGPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv" +IUSE="dbus enchant +fonts +jemalloc +libdispatch screencast qt6 qt6-imageformats wayland webkit +X" +REQUIRED_USE=" + qt6-imageformats? ( qt6 ) +" + +KIMAGEFORMATS_RDEPEND=" + media-libs/libavif:= + media-libs/libheif:= + >=media-libs/libjxl-0.8.0:= +" +CDEPEND=" + !net-im/telegram-desktop-bin + app-arch/lz4:= + dev-cpp/abseil-cpp:= + dev-cpp/ada:= + >=dev-cpp/glibmm-2.77:2.68 + dev-libs/glib:2 + dev-libs/openssl:= + dev-libs/protobuf + dev-libs/xxhash + media-libs/libjpeg-turbo:= + ~media-libs/libtgvoip-2.4.4_p20240706 + media-libs/openal + media-libs/opus + media-libs/rnnoise + ~media-libs/tg_owt-0_pre20240804:=[screencast=,X=] + media-video/ffmpeg:=[opus,vpx] + sys-libs/zlib:=[minizip] + !enchant? ( >=app-text/hunspell-1.7:= ) + enchant? ( app-text/enchant:= ) + jemalloc? ( dev-libs/jemalloc:= ) + libdispatch? ( dev-libs/libdispatch ) + !qt6? ( + >=dev-qt/qtcore-5.15:5= + >=dev-qt/qtgui-5.15:5=[dbus?,jpeg,png,wayland?,X?] + >=dev-qt/qtimageformats-5.15:5 + >=dev-qt/qtnetwork-5.15:5[ssl] + >=dev-qt/qtsvg-5.15:5 + >=dev-qt/qtwidgets-5.15:5[png,X?] + kde-frameworks/kcoreaddons:5 + webkit? ( + >=dev-qt/qtdeclarative-5.15:5 + >=dev-qt/qtwayland-5.15:5[compositor(+)] + ) + ) + qt6? ( + >=dev-qt/qtbase-6.5:6=[dbus?,gui,network,opengl,wayland?,widgets,X?] + >=dev-qt/qtimageformats-6.5:6 + >=dev-qt/qtsvg-6.5:6 + webkit? ( + >=dev-qt/qtdeclarative-6.5:6 + >=dev-qt/qtwayland-6.5:6[compositor,qml] + ) + qt6-imageformats? ( + >=dev-qt/qtimageformats-6.5:6= + ${KIMAGEFORMATS_RDEPEND} + ) + ) + X? ( + x11-libs/libxcb:= + x11-libs/xcb-util-keysyms + ) +" +RDEPEND="${CDEPEND} + webkit? ( || ( net-libs/webkit-gtk:4.1 net-libs/webkit-gtk:6 ) ) +" +DEPEND="${CDEPEND} + >=dev-cpp/cppgir-2.0_p20240315 + >=dev-cpp/ms-gsl-4 + dev-cpp/expected-lite + dev-cpp/range-v3 +" +BDEPEND=" + ${PYTHON_DEPS} + >=dev-build/cmake-3.16 + >=dev-cpp/cppgir-2.0_p20240315 + dev-util/gdbus-codegen + virtual/pkgconfig + wayland? ( dev-util/wayland-scanner ) +" + +PATCHES=( + "${FILESDIR}"/tdesktop-4.2.4-jemalloc-only-telegram-r1.patch + "${FILESDIR}"/tdesktop-4.10.0-system-cppgir.patch + "${FILESDIR}"/tdesktop-5.2.2-qt6-no-wayland.patch + "${FILESDIR}"/tdesktop-5.2.2-libdispatch.patch +) + +pkg_pretend() { + if has ccache ${FEATURES}; then + ewarn "ccache does not work with ${PN} out of the box" + ewarn "due to usage of precompiled headers" + ewarn "check bug https://bugs.gentoo.org/715114 for more info" + ewarn + fi +} + +src_prepare() { + # Bundle kde-frameworks/kimageformats for qt6, since it's impossible to + # build in gentoo right now. + if use qt6-imageformats; then + sed -e 's/DESKTOP_APP_USE_PACKAGED_LAZY/TRUE/' -i \ + cmake/external/kimageformats/CMakeLists.txt || die + printf '%s\n' \ + 'Q_IMPORT_PLUGIN(QAVIFPlugin)' \ + 'Q_IMPORT_PLUGIN(HEIFPlugin)' \ + 'Q_IMPORT_PLUGIN(QJpegXLPlugin)' \ + >> cmake/external/qt/qt_static_plugins/qt_static_plugins.cpp || die + fi + # kde-frameworks/kcoreaddons is bundled when using qt6. + + # Happily fail if libraries aren't found... + find -type f \( -name 'CMakeLists.txt' -o -name '*.cmake' \) \ + \! -path './Telegram/lib_webview/CMakeLists.txt' \ + \! -path './cmake/external/expected/CMakeLists.txt' \ + \! -path './cmake/external/kcoreaddons/CMakeLists.txt' \ + \! -path './cmake/external/qt/package.cmake' \ + -print0 | xargs -0 sed -i \ + -e '/pkg_check_modules(/s/[^ ]*)/REQUIRED &/' \ + -e '/find_package(/s/)/ REQUIRED)/' || die + # Make sure to check the excluded files for new + # CMAKE_DISABLE_FIND_PACKAGE entries. + + # Control QtDBus dependency from here, to avoid messing with QtGui. + # QtGui will use find_package to find QtDbus as well, which + # conflicts with the -DCMAKE_DISABLE_FIND_PACKAGE method. + if ! use dbus; then + sed -e '/find_package(Qt[^ ]* OPTIONAL_COMPONENTS/s/DBus *//' \ + -i cmake/external/qt/package.cmake || die + fi + + cmake_src_prepare +} + +src_configure() { + # Having user paths sneak into the build environment through the + # XDG_DATA_DIRS variable causes all sorts of weirdness with cppgir: + # - bug 909038: can't read from flatpak directories (fixed upstream) + # - bug 920819: system-wide directories ignored when variable is set + export XDG_DATA_DIRS="${EPREFIX}/usr/share" + + # Evil flag (bug #919201) + filter-flags -fno-delete-null-pointer-checks + + # The ABI of media-libs/tg_owt breaks if the -DNDEBUG flag doesn't keep + # the same state across both projects. + # See https://bugs.gentoo.org/866055 + append-cppflags '-DNDEBUG' + + # https://github.com/telegramdesktop/tdesktop/issues/17437#issuecomment-1001160398 + use !libdispatch && append-cppflags -DCRL_FORCE_QT + + local qt=$(usex qt6 6 5) + local mycmakeargs=( + -DQT_VERSION_MAJOR=${qt} + + # Override new cmake.eclass defaults (https://bugs.gentoo.org/921939) + # Upstream never tests this any other way + -DCMAKE_DISABLE_PRECOMPILE_HEADERS=OFF + + # Control automagic dependencies on certain packages + ## Header-only lib, some git version. + -DCMAKE_DISABLE_FIND_PACKAGE_tl-expected=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}Quick=$(usex !webkit) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}QuickWidgets=$(usex !webkit) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}WaylandClient=$(usex !wayland) + ## Only used in Telegram/lib_webview/CMakeLists.txt + -DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}WaylandCompositor=$(usex !webkit) + ## KF6CoreAddons is currently unavailable in ::gentoo + -DCMAKE_DISABLE_FIND_PACKAGE_KF${qt}CoreAddons=$(usex qt6) + + -DDESKTOP_APP_USE_LIBDISPATCH=$(usex libdispatch) + -DDESKTOP_APP_DISABLE_X11_INTEGRATION=$(usex !X) + -DDESKTOP_APP_DISABLE_WAYLAND_INTEGRATION=$(usex !wayland) + -DDESKTOP_APP_DISABLE_JEMALLOC=$(usex !jemalloc) + ## Enables enchant and disables hunspell + -DDESKTOP_APP_USE_ENCHANT=$(usex enchant) + ## Use system fonts instead of bundled ones + -DDESKTOP_APP_USE_PACKAGED_FONTS=$(usex !fonts) + ) + + if [[ -n ${MY_TDESKTOP_API_ID} && -n ${MY_TDESKTOP_API_HASH} ]]; then + einfo "Found custom API credentials" + mycmakeargs+=( + -DTDESKTOP_API_ID="${MY_TDESKTOP_API_ID}" + -DTDESKTOP_API_HASH="${MY_TDESKTOP_API_HASH}" + ) + else + # https://github.com/telegramdesktop/tdesktop/blob/dev/snap/snapcraft.yaml + # Building with snapcraft API credentials by default + # Custom API credentials can be obtained here: + # https://github.com/telegramdesktop/tdesktop/blob/dev/docs/api_credentials.md + # After getting credentials you can export variables: + # export MY_TDESKTOP_API_ID="17349"" + # export MY_TDESKTOP_API_HASH="344583e45741c457fe1862106095a5eb" + # and restart the build" + # you can set above variables (without export) in /etc/portage/env/net-im/telegram-desktop + # portage will use custom variable every build automatically + mycmakeargs+=( + -DTDESKTOP_API_ID="611335" + -DTDESKTOP_API_HASH="d524b414d21f4d37f08684c1df41ac9c" + ) + fi + + cmake_src_configure +} + +pkg_postinst() { + xdg_pkg_postinst + if ! use X && ! use screencast; then + ewarn "both the 'X' and 'screencast' USE flags are disabled, screen sharing won't work!" + ewarn + fi + if ! use jemalloc && use elibc_glibc; then + # https://github.com/telegramdesktop/tdesktop/issues/16084 + # https://github.com/desktop-app/cmake_helpers/pull/91#issuecomment-881788003 + ewarn "Disabling USE=jemalloc on glibc systems may cause very high RAM usage!" + ewarn "Do NOT report issues about RAM usage without enabling this flag first." + ewarn + fi + if ! use libdispatch; then + ewarn "Disabling USE=libdispatch may cause performance degradation" + ewarn "due to fallback to poor QThreadPool! Please see" + ewarn "https://github.com/telegramdesktop/tdesktop/wiki/The-Packaged-Building-Mode" + ewarn + fi + if use wayland && ! use qt6; then + ewarn "Wayland-specific integrations have been deprecated with Qt5." + ewarn "The app will continue to function under wayland, but some" + ewarn "functionality may be reduced." + ewarn "These integrations are only supported when built with Qt6." + ewarn + fi + if use qt6 && ! use qt6-imageformats; then + elog "Enable USE=qt6-imageformats for AVIF, HEIF and JpegXL support" + elog + fi + optfeature_header + if ! use qt6; then + optfeature "AVIF, HEIF and JpegXL image support" kde-frameworks/kimageformats[avif,heif,jpegxl] + fi +} |