diff options
| -rw-r--r-- | net-im/element-desktop/Manifest | 8 | ||||
| -rw-r--r-- | net-im/element-desktop/element-desktop-1.12.18.ebuild | 235 | ||||
| -rw-r--r-- | net-im/element-desktop/element-desktop-1.12.20.ebuild | 235 | ||||
| -rw-r--r-- | net-im/element-desktop/element-desktop-1.12.3.ebuild | 114 | ||||
| -rw-r--r-- | net-im/element-desktop/element-desktop-1.12.6.ebuild | 119 | ||||
| -rw-r--r-- | net-im/element-desktop/element-desktop-1.12.7.ebuild | 131 | ||||
| -rw-r--r-- | net-im/element-desktop/element-desktop-9999.ebuild | 235 | ||||
| -rw-r--r-- | net-im/element-desktop/files/read_flags_file | 16 | ||||
| -rw-r--r-- | net-im/element-desktop/metadata.xml | 13 |
9 files changed, 376 insertions, 730 deletions
diff --git a/net-im/element-desktop/Manifest b/net-im/element-desktop/Manifest index 606c4f82d4cb..e71c350f7680 100644 --- a/net-im/element-desktop/Manifest +++ b/net-im/element-desktop/Manifest @@ -1,2 +1,6 @@ -DIST element-web-1.12.18.tar.gz 30676321 BLAKE2B 5fabb5e33e34310e9133221f544b4098faae81d225219a045c73e99b9b7ee8414d798f1c5c111a4ab09a7f182d0bea3acbc1a0fc627c5e579e662b9b57b23791 SHA512 5528e7a0c1a6b98b4079323412ffd57bf7accd3cea044cb2f1cb73bbed97fb184d7409423de3d91f4d66a75552a11ae5ba2caf6199cea7ee847af728dcf3f628 -DIST element-web-1.12.20.tar.gz 31121069 BLAKE2B bc9d036e07abc65e81ed8099002cdd7b2fda811d0d6c6624fe48b34f9da2e001a39c9eb3df2dfb8df8604ad65ed3721032b7c74619411bc2b7b25523b8e42b2e SHA512 abd5d8fe96b4579a5070598e4f677f06f9810f31bc019e0168b33444e116dba665066039c573d423fd3408e53928139eb167ad18c4edd68e4b6b295aea996c78 +DIST element-desktop-1.12.3.tar.gz 3155645 BLAKE2B 0bad577b47fd6b77ece3d6712170d7f2b765188d1b35e1cc0d627aa188494637267443963a4ea831fd7ac93046d6e9ae9cae8cd8a8d93147889df9983a11a60d SHA512 f302907165a35f4a4f069f5aec6bc28edeba3d09c75f483c818e3930ceb4e838e5bb91ad9d42019a11a661d6e656da3c1ff25507cbb281c69183aac7d499e882 +DIST element-desktop-1.12.6.tar.gz 3167063 BLAKE2B 94762a2336896e8cbd1be3115ba1b0ec2c4621f7786f6a3b84c1d992143bb4a33d2b4e01e5c2b557181f09b280a34117c0130ebd179bb909667ffe4244b609ba SHA512 556e43330d4f36d7569ad657c974b1c08bc7140f8fae0f0fdc6e1c797d163b407f04ef1448ed0b1dcb7b9ae8be170509cccf7ea8df2641beacd379d2d2928f9f +DIST element-desktop-1.12.7.tar.gz 3168015 BLAKE2B d58d4d9507755ff692215d29dbd5b527e314333f82bce8eb7911b8382a06813c24b1e8f786e96a7fecee1f2f427845b6a2254ffc45f0d4527d18086c50319a53 SHA512 1c914ed46607818ab3286c0bdb279d3d5765e6d72c5dffb18d5bef7080a93294eefa74a1125d13f4e0784cc2c67e3ab2c9cbf265d42085c1424c1f0e537e7f79 +DIST element-web-1.12.3.tar.gz 24197114 BLAKE2B fc4d5789167d861be92c5600bbbf6965d55208f4654f6d219cc1360b56e33d7ded90ea5b8430abf195cb06fff5e5003c2116c47d78950cb3a4a4ba2af2091b7c SHA512 b845ff71ca39d7ae4dca9bb55e821bfdf911b12de5d012ba55d598f3287046fb2b525bce608925a9fa8fa7d39a4ceed9b4213d5d1c1d0c9e6b9b72154c9a35a5 +DIST element-web-1.12.6.tar.gz 24467930 BLAKE2B 240f32dbba7d4d173a3bf7f7602b0913b8acb1835ba4ae1690622422de71e28678a12b6f42edb81ac86ec274e979618fba3674ac760000317982589aab93fa68 SHA512 5ddef6cbf2948b36c12d6eaeeffbdf56c09d217b87b73638374459ad412d70fe7ab2d55beb42e752be4ace952923c266f0c5b3a1443f836f1e6f311a7f2f7645 +DIST element-web-1.12.7.tar.gz 24583616 BLAKE2B fbda62604e3d0b8a6e56a6346c296602090a44a10a86ccdb36c6877bc83e51995eecde4e001bae232e29e05aab607027a9b0d2a938bb7c6bd4cf9e1132c0d556 SHA512 2433af8b01f7b3ea6152a0778e7e1502f7fc2c678dcaad0af8147aa34235b3a9453617b611e2fd8bece511600518a8b512823dd79cf7f8b8d8284b649ba52fb1 diff --git a/net-im/element-desktop/element-desktop-1.12.18.ebuild b/net-im/element-desktop/element-desktop-1.12.18.ebuild deleted file mode 100644 index 3f5f9116edd0..000000000000 --- a/net-im/element-desktop/element-desktop-1.12.18.ebuild +++ /dev/null @@ -1,235 +0,0 @@ -# Copyright 2009-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) - -inherit desktop flag-o-matic multilib python-any-r1 xdg-utils - -DESCRIPTION="A glossy Matrix collaboration client for desktop" -HOMEPAGE="https://element.io/" -LICENSE="Apache-2.0" -SLOT="0" -SRC_URI="" -REPO="https://github.com/element-hq/element-web" -ELECTRON_SLOT_DEFAULT="42" -#ELEMENT_COMMIT_ID="ae245c9b1f06e79cec4829f8cd1555206b0ec8f2" -# IUSE="electron-40 electron-41 electron-42 native-modules" -IUSE="native-modules" - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="${REPO}.git" - EGIT_BRANCH="develop" - DOWNLOAD="" - IUSE+=" +build-online" -else - IUSE+=" +build-online" - KEYWORDS="amd64 ~arm64 ~ppc64 ~x86" - DOWNLOAD="${REPO}/archive/" - if [ -z "$ELEMENT_COMMIT_ID" ] - then - DOWNLOAD+="v${PV}.tar.gz -> element-web-${PV}.tar.gz" - S="${WORKDIR}/element-web-${PV}" - else - DOWNLOAD+="${ELEMENT_COMMIT_ID}.tar.gz -> element-web-${ELEMENT_COMMIT_ID}.tar.gz" - S="${WORKDIR}/element-web-${ELEMENT_COMMIT_ID}" - fi -fi - -SRC_URI+="${DOWNLOAD}" - -RESTRICT="mirror build-online? ( network-sandbox )" -REQUIRED_USE=" - native-modules? ( build-online ) -" - -COMMON_DEPEND=" - ~net-im/element-web-${PV} - native-modules? ( dev-db/sqlcipher ) - dev-util/electron:${ELECTRON_SLOT_DEFAULT} -" - # electron-40? ( dev-util/electron:40 ) - # electron-41? ( dev-util/electron:41 ) - # electron-42? ( dev-util/electron:42 ) - # !electron-40? ( - # !electron-41? ( - # !electron-42? ( - # ) ) ) - -RDEPEND="${COMMON_DEPEND} -" -DEPEND="${COMMON_DEPEND} -" - -BDEPEND=" - ${PYTHON_DEPS} - $(python_gen_any_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') - native-modules? ( || ( dev-lang/rust dev-lang/rust-bin ) ) - net-libs/nodejs[corepack] -" - -python_check_deps() { - python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" -} - -#TODO: net-im/element-web -> runtime/buildtime dep - -src_unpack() { - # if use electron-41; then - # export ELECTRON_SLOT=41 - # elif use electron-40; then - # export ELECTRON_SLOT=40 - # elif use electron-42; then - # export ELECTRON_SLOT=42 - # else - export ELECTRON_SLOT=$ELECTRON_SLOT_DEFAULT - # fi - if [ -z "$ELEMENT_COMMIT_ID" ] - then - if [ -f "${DISTDIR}/element-web-${PV}.tar.gz" ]; then - unpack "element-web-${PV}.tar.gz" || die - else - git-r3_src_unpack - fi - else - unpack "element-web-${ELEMENT_COMMIT_ID}.tar.gz" || die - fi -} - -src_compile() { - # # OLD_PATH=$PATH - # PATH="/usr/$(get_libdir)/electron-${ELECTRON_SLOT}/node_modules/npm/bin/node-gyp-bin:$PATH" - # PATH="/usr/$(get_libdir)/electron-${ELECTRON_SLOT}/node_modules/npm/bin:$PATH" - # PATH="/usr/$(get_libdir)/electron-${ELECTRON_SLOT}:$PATH" - # PATH="${S}/node_modules/.bin:$PATH"; - # export PATH - # export CFLAGS="${CFLAGS} -I/usr/include/electron-${ELECTRON_SLOT}/node" - # export CPPFLAGS="${CPPFLAGS} -I/usr/include/electron-${ELECTRON_SLOT}/node" - export ELECTRON_SKIP_BINARY_DOWNLOAD=1 - # yarn config set disable-self-update-check true || die - # yarn config set nodedir /usr/include/electron-${ELECTRON_SLOT}/node || die - # # #! Until electron-builder >=22.11.5 - # # yarn config set ignore-engines true || die - - sed -i 's/electron-builder install-app-deps/true/' apps/desktop/package.json || die - - # if ! use build-online; then - # ONLINE_OFFLINE="--offline --frozen-lockfile" - # yarn config set yarn-offline-mirror "${DISTDIR}" || die - # fi - - einfo "Removing playwright from dependencies" - sed -i '/playwright":/d' apps/desktop/package.json || die - - # einfo "Removing sentry from dependencies" - # sed -i '/@sentry/d' apps/desktop/package.json || die - # sed -i '/@sentry/d' apps/desktop/src/electron-main.ts || die - # sed -i '/configureSentry()/d' apps/desktop/src/electron-main.ts || die - - einfo "Installing node_modules" - # sed -i 's/linkWorkspacePackages.*/linkWorkspacePackages: false/' pnpm-workspace.yaml || die - pnpm install --no-frozen-lockfile || die - - cd apps/desktop - if use native-modules; then - pnpm run build:native || die - fi - - script -c "pnpm run build" /dev/null || die - # pnpm install --no-frozen-lockfile || die - # ../../node_modules/.bin/tsc || die - # node scripts/copy-res.ts || die - - # # Electron-Builder doesn't support ppc64 due to using precompiled binaries - # if ! use ppc64; then - # einfo "Editing ElectronFramework.js" - # sed -i 's/return unpack(options, createDownloadOpts.*$/return true;/' \ - # node_modules/app-builder-lib/out/electron/ElectronFramework.js || die - # sed -i 's/return beforeCopyExtraFiles(options);$/return true;/' \ - # node_modules/app-builder-lib/out/electron/ElectronFramework.js || die - - # #!Error: With electron's node: "Unknown argument" electron/electron#25379 - # #!Error: With electron's node: "Invalid package app.asar" - # /usr/bin/node node_modules/.bin/electron-builder --dir || die - # else - # einfo "Manually preparing app.asar" - # local distdir="dist/linux-unpacked/resources" - # mkdir -p ${distdir}/node_modules || die - # cp -r lib ${distdir} || die - # # Copying yarn.lock allows freezing versions to the build versions - # cp package.json ${distdir} || die - # pushd ${distdir} &> /dev/null || die - # pnpm install --no-frozen-lockfile || die - # popd &> /dev/null || die - # # rm ${distdir}/yarn.lock || die - # if use native-modules; then - # cp -r .hak/hakModules/matrix-seshat ${distdir}/node_modules/ || die - # fi - - # einfo "Creating archive" - # /usr/bin/node node_modules/@electron/asar/bin/asar.mjs pack ${distdir} ${distdir}/app.asar \ - # --unpack-dir '{**/Release,**/matrix-seshat}' || die - # # Remove unarchived copies of files (they are still in app.asar) - # rm -r ${distdir}/node_modules || die - # rm -r ${distdir}/lib || die - - # cp -r build ${distdir} || die - # fi - - #cp -r /usr/share/element-web webapp - #rm -f webapp/config.json - #cp -f /etc/element-web/config.json webapp/config.json - #node node_modules/.bin/asar p webapp webapp.asar - #node node_modules/.bin/asar l webapp.asar - - # export PATH=${OLD_PATH} - - # #! Fail in CI - # if [ ! -z "${NODIE}" ]; then - # die "Fail in CI" - # fi -} - -src_install() { - cd apps/desktop - - insinto "/usr/$(get_libdir)/element-desktop" - - doins -r dist/linux-unpacked/resources/* - dosym ../../share/element-web /usr/$(get_libdir)/element-desktop/webapp - - exeinto "/usr/$(get_libdir)/element-desktop" - cp "${FILESDIR}/read_flags_file" dist/linux-unpacked/resources/element-desktop - sed -i "s|@ELECTRON@|element-desktop|" dist/linux-unpacked/resources/element-desktop - - echo "\"/usr/$(get_libdir)/electron-${ELECTRON_SLOT}/electron\" \ -/usr/$(get_libdir)/element-desktop/app.asar \"\${flags[@]}\" \"\$@\"" >> dist/linux-unpacked/resources/element-desktop - doexe dist/linux-unpacked/resources/element-desktop - dosym "/usr/$(get_libdir)/element-desktop/element-desktop" /usr/bin/element-desktop - - # # Install icons - # local branding size - # for size in 16 24 48 64 96 128 256 512 ; do - # newicon -s ${size} "build/icons/${size}x${size}.png" \ - # element-desktop.png - # done - - newicon build/icon.png element-desktop.png - - make_desktop_entry "/usr/bin/element-desktop" Element \ - "element-desktop" "Network;Chat" -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update -} diff --git a/net-im/element-desktop/element-desktop-1.12.20.ebuild b/net-im/element-desktop/element-desktop-1.12.20.ebuild deleted file mode 100644 index 1f54691cdcc9..000000000000 --- a/net-im/element-desktop/element-desktop-1.12.20.ebuild +++ /dev/null @@ -1,235 +0,0 @@ -# Copyright 2009-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) - -inherit desktop flag-o-matic multilib python-any-r1 xdg-utils - -DESCRIPTION="A glossy Matrix collaboration client for desktop" -HOMEPAGE="https://element.io/" -LICENSE="Apache-2.0" -SLOT="0" -SRC_URI="" -REPO="https://github.com/element-hq/element-web" -ELECTRON_SLOT_DEFAULT="42" -#ELEMENT_COMMIT_ID="ae245c9b1f06e79cec4829f8cd1555206b0ec8f2" -# IUSE="electron-40 electron-41 electron-42 native-modules" -IUSE="native-modules" - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="${REPO}.git" - EGIT_BRANCH="develop" - DOWNLOAD="" - IUSE+=" +build-online" -else - IUSE+=" +build-online" - # KEYWORDS="amd64 ~arm64 ~ppc64 ~x86" - DOWNLOAD="${REPO}/archive/" - if [ -z "$ELEMENT_COMMIT_ID" ] - then - DOWNLOAD+="v${PV}.tar.gz -> element-web-${PV}.tar.gz" - S="${WORKDIR}/element-web-${PV}" - else - DOWNLOAD+="${ELEMENT_COMMIT_ID}.tar.gz -> element-web-${ELEMENT_COMMIT_ID}.tar.gz" - S="${WORKDIR}/element-web-${ELEMENT_COMMIT_ID}" - fi -fi - -SRC_URI+="${DOWNLOAD}" - -RESTRICT="mirror build-online? ( network-sandbox )" -REQUIRED_USE=" - native-modules? ( build-online ) -" - -COMMON_DEPEND=" - ~net-im/element-web-${PV} - native-modules? ( dev-db/sqlcipher ) - dev-util/electron:${ELECTRON_SLOT_DEFAULT} -" - # electron-40? ( dev-util/electron:40 ) - # electron-41? ( dev-util/electron:41 ) - # electron-42? ( dev-util/electron:42 ) - # !electron-40? ( - # !electron-41? ( - # !electron-42? ( - # ) ) ) - -RDEPEND="${COMMON_DEPEND} -" -DEPEND="${COMMON_DEPEND} -" - -BDEPEND=" - ${PYTHON_DEPS} - $(python_gen_any_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') - native-modules? ( || ( dev-lang/rust dev-lang/rust-bin ) ) - net-libs/nodejs[corepack] -" - -python_check_deps() { - python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" -} - -#TODO: net-im/element-web -> runtime/buildtime dep - -src_unpack() { - # if use electron-41; then - # export ELECTRON_SLOT=41 - # elif use electron-40; then - # export ELECTRON_SLOT=40 - # elif use electron-42; then - # export ELECTRON_SLOT=42 - # else - export ELECTRON_SLOT=$ELECTRON_SLOT_DEFAULT - # fi - if [ -z "$ELEMENT_COMMIT_ID" ] - then - if [ -f "${DISTDIR}/element-web-${PV}.tar.gz" ]; then - unpack "element-web-${PV}.tar.gz" || die - else - git-r3_src_unpack - fi - else - unpack "element-web-${ELEMENT_COMMIT_ID}.tar.gz" || die - fi -} - -src_compile() { - # # OLD_PATH=$PATH - # PATH="/usr/$(get_libdir)/electron-${ELECTRON_SLOT}/node_modules/npm/bin/node-gyp-bin:$PATH" - # PATH="/usr/$(get_libdir)/electron-${ELECTRON_SLOT}/node_modules/npm/bin:$PATH" - # PATH="/usr/$(get_libdir)/electron-${ELECTRON_SLOT}:$PATH" - # PATH="${S}/node_modules/.bin:$PATH"; - # export PATH - # export CFLAGS="${CFLAGS} -I/usr/include/electron-${ELECTRON_SLOT}/node" - # export CPPFLAGS="${CPPFLAGS} -I/usr/include/electron-${ELECTRON_SLOT}/node" - export ELECTRON_SKIP_BINARY_DOWNLOAD=1 - # yarn config set disable-self-update-check true || die - # yarn config set nodedir /usr/include/electron-${ELECTRON_SLOT}/node || die - # # #! Until electron-builder >=22.11.5 - # # yarn config set ignore-engines true || die - - sed -i 's/electron-builder install-app-deps/true/' apps/desktop/package.json || die - - # if ! use build-online; then - # ONLINE_OFFLINE="--offline --frozen-lockfile" - # yarn config set yarn-offline-mirror "${DISTDIR}" || die - # fi - - einfo "Removing playwright from dependencies" - sed -i '/playwright":/d' apps/desktop/package.json || die - - # einfo "Removing sentry from dependencies" - # sed -i '/@sentry/d' apps/desktop/package.json || die - # sed -i '/@sentry/d' apps/desktop/src/electron-main.ts || die - # sed -i '/configureSentry()/d' apps/desktop/src/electron-main.ts || die - - einfo "Installing node_modules" - # sed -i 's/linkWorkspacePackages.*/linkWorkspacePackages: false/' pnpm-workspace.yaml || die - pnpm install --no-frozen-lockfile || die - - cd apps/desktop - if use native-modules; then - pnpm run build:native || die - fi - - script -c "pnpm run build" /dev/null || die - # pnpm install --no-frozen-lockfile || die - # ../../node_modules/.bin/tsc || die - # node scripts/copy-res.ts || die - - # # Electron-Builder doesn't support ppc64 due to using precompiled binaries - # if ! use ppc64; then - # einfo "Editing ElectronFramework.js" - # sed -i 's/return unpack(options, createDownloadOpts.*$/return true;/' \ - # node_modules/app-builder-lib/out/electron/ElectronFramework.js || die - # sed -i 's/return beforeCopyExtraFiles(options);$/return true;/' \ - # node_modules/app-builder-lib/out/electron/ElectronFramework.js || die - - # #!Error: With electron's node: "Unknown argument" electron/electron#25379 - # #!Error: With electron's node: "Invalid package app.asar" - # /usr/bin/node node_modules/.bin/electron-builder --dir || die - # else - # einfo "Manually preparing app.asar" - # local distdir="dist/linux-unpacked/resources" - # mkdir -p ${distdir}/node_modules || die - # cp -r lib ${distdir} || die - # # Copying yarn.lock allows freezing versions to the build versions - # cp package.json ${distdir} || die - # pushd ${distdir} &> /dev/null || die - # pnpm install --no-frozen-lockfile || die - # popd &> /dev/null || die - # # rm ${distdir}/yarn.lock || die - # if use native-modules; then - # cp -r .hak/hakModules/matrix-seshat ${distdir}/node_modules/ || die - # fi - - # einfo "Creating archive" - # /usr/bin/node node_modules/@electron/asar/bin/asar.mjs pack ${distdir} ${distdir}/app.asar \ - # --unpack-dir '{**/Release,**/matrix-seshat}' || die - # # Remove unarchived copies of files (they are still in app.asar) - # rm -r ${distdir}/node_modules || die - # rm -r ${distdir}/lib || die - - # cp -r build ${distdir} || die - # fi - - #cp -r /usr/share/element-web webapp - #rm -f webapp/config.json - #cp -f /etc/element-web/config.json webapp/config.json - #node node_modules/.bin/asar p webapp webapp.asar - #node node_modules/.bin/asar l webapp.asar - - # export PATH=${OLD_PATH} - - # #! Fail in CI - # if [ ! -z "${NODIE}" ]; then - # die "Fail in CI" - # fi -} - -src_install() { - cd apps/desktop - - insinto "/usr/$(get_libdir)/element-desktop" - - doins -r dist/linux-unpacked/resources/* - dosym ../../share/element-web /usr/$(get_libdir)/element-desktop/webapp - - exeinto "/usr/$(get_libdir)/element-desktop" - cp "${FILESDIR}/read_flags_file" dist/linux-unpacked/resources/element-desktop - sed -i "s|@ELECTRON@|element-desktop|" dist/linux-unpacked/resources/element-desktop - - echo "\"/usr/$(get_libdir)/electron-${ELECTRON_SLOT}/electron\" \ -/usr/$(get_libdir)/element-desktop/app.asar \"\${flags[@]}\" \"\$@\"" >> dist/linux-unpacked/resources/element-desktop - doexe dist/linux-unpacked/resources/element-desktop - dosym "/usr/$(get_libdir)/element-desktop/element-desktop" /usr/bin/element-desktop - - # # Install icons - # local branding size - # for size in 16 24 48 64 96 128 256 512 ; do - # newicon -s ${size} "build/icons/${size}x${size}.png" \ - # element-desktop.png - # done - - newicon build/icon.png element-desktop.png - - make_desktop_entry "/usr/bin/element-desktop" Element \ - "element-desktop" "Network;Chat" -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update -} diff --git a/net-im/element-desktop/element-desktop-1.12.3.ebuild b/net-im/element-desktop/element-desktop-1.12.3.ebuild new file mode 100644 index 000000000000..9ba6b200b494 --- /dev/null +++ b/net-im/element-desktop/element-desktop-1.12.3.ebuild @@ -0,0 +1,114 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit unpacker rust xdg + +DESCRIPTION="A glossy Matrix collaboration client for desktop" +HOMEPAGE="https://element.io" +SRC_URI="https://github.com/element-hq/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/element-hq/element-web/archive/v${PV}.tar.gz -> element-web-${PV}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+emoji" + +RESTRICT="network-sandbox" #The setup script needs internet connection, including for yarn install + +RDEPEND=" + !net-im/element-desktop-bin + >=app-accessibility/at-spi2-core-2.46.0 + app-crypt/libsecret + dev-db/sqlcipher + dev-libs/expat + dev-libs/nspr + dev-libs/nss + media-libs/alsa-lib + media-libs/mesa + net-libs/nodejs + net-print/cups + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/libdrm + x11-libs/libxcb + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXtst + x11-libs/libXScrnSaver + x11-libs/pango + emoji? ( media-fonts/noto-emoji ) +" +DEPEND="${RDEPEND}" +BDEPEND="sys-apps/yarn" + +QA_PREBUILT=" + opt/Element/resources/app.asar.unpacked/node_modules/keytar-forked/build/Release/keytar.node + opt/Element/chrome-sandbox + opt/Element/libEGL.so + opt/Element/chrome_crashpad_handler + opt/Element/resources/app.asar.unpacked/node_modules/matrix-seshat/index.node + opt/Element/element-desktop + opt/Element/libffmpeg.so + opt/Element/libvulkan.so.1 + opt/Element/libGLESv2.so + opt/Element/libvk_swiftshader.so +" + +ELEMENT_WEB_S="${WORKDIR}/element-web-${PV}" + +pkg_setup() { + rust_pkg_setup +} + +src_prepare() { + default + pushd "${ELEMENT_WEB_S}" >/dev/null || die + yarn install || die + cp config.sample.json config.json || die + popd >/dev/null || die + + yarn install || die +} + +src_compile() { + pushd "${ELEMENT_WEB_S}" >/dev/null || die + yarn build || die + popd >/dev/null || die + + ln -s "${ELEMENT_WEB_S}"/webapp ./ || die + yarn build:native || die + # Use sed to temporarily fix upstream bug in app-builder-lib https://github.com/electron-userland/electron-builder/issues/9355 + sed -i 's/else if (isCi) {/else if (isCi.isCI) {/' node_modules/app-builder-lib/out/publish/PublishManager.js || die + yarn build || die +} + +src_install() { + unpack dist/${PN}_${PV}_amd64.deb + tar -xvf data.tar.xz || die + + ./node_modules/@electron/universal/node_modules/@electron/asar/bin/asar.js p webapp opt/Element/resources/webapp.asar || die + mv -n usr/share/doc/${PN} usr/share/doc/${PF} || die + gunzip usr/share/doc/${PF}/changelog.gz || die + + insinto / + doins -r usr + doins -r opt + local f + for f in ${QA_PREBUILT}; do + fperms +x "/${f}" + done + fperms u+s /opt/Element/chrome-sandbox + + dosym ../../opt/Element/${PN} /usr/bin/${PN} + dosym ${PN} /usr/bin/riot-desktop +} diff --git a/net-im/element-desktop/element-desktop-1.12.6.ebuild b/net-im/element-desktop/element-desktop-1.12.6.ebuild new file mode 100644 index 000000000000..a207e1e2a67a --- /dev/null +++ b/net-im/element-desktop/element-desktop-1.12.6.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit unpacker rust xdg + +DESCRIPTION="A glossy Matrix collaboration client for desktop" +HOMEPAGE="https://element.io" +SRC_URI="https://github.com/element-hq/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/element-hq/element-web/archive/v${PV}.tar.gz -> element-web-${PV}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+emoji keyring" + +RESTRICT="network-sandbox" #The setup script needs internet connection, including for yarn install + +RDEPEND=" + !net-im/element-desktop-bin + >=app-accessibility/at-spi2-core-2.46.0 + app-crypt/libsecret + dev-db/sqlcipher + dev-libs/expat + dev-libs/nspr + dev-libs/nss + media-libs/alsa-lib + media-libs/mesa + net-libs/nodejs + net-print/cups + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/libdrm + x11-libs/libxcb + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXtst + x11-libs/libXScrnSaver + x11-libs/pango + emoji? ( media-fonts/noto-emoji ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + sys-apps/yarn + >=net-libs/nodejs-22.18.0 +" + +QA_PREBUILT=" + opt/Element/resources/app.asar.unpacked/node_modules/keytar-forked/build/Release/keytar.node + opt/Element/chrome-sandbox + opt/Element/libEGL.so + opt/Element/chrome_crashpad_handler + opt/Element/resources/app.asar.unpacked/node_modules/matrix-seshat/index.node + opt/Element/element-desktop + opt/Element/libffmpeg.so + opt/Element/libvulkan.so.1 + opt/Element/libGLESv2.so + opt/Element/libvk_swiftshader.so +" + +ELEMENT_WEB_S="${WORKDIR}/element-web-${PV}" + +pkg_setup() { + rust_pkg_setup +} + +src_prepare() { + default + pushd "${ELEMENT_WEB_S}" >/dev/null || die + yarn install || die + cp config.sample.json config.json || die + popd >/dev/null || die + + yarn install || die +} + +src_compile() { + pushd "${ELEMENT_WEB_S}" >/dev/null || die + yarn build || die + popd >/dev/null || die + + ln -s "${ELEMENT_WEB_S}"/webapp ./ || die + yarn build:native || die + # Use sed to temporarily fix upstream bug in app-builder-lib https://github.com/electron-userland/electron-builder/issues/9355 + sed -i 's/else if (isCi) {/else if (isCi.isCI) {/' node_modules/app-builder-lib/out/publish/PublishManager.js || die + yarn build || die +} + +src_install() { + unpack dist/${PN}_${PV}_amd64.deb + tar -xvf data.tar.xz || die + + ./node_modules/@electron/universal/node_modules/@electron/asar/bin/asar.js p webapp opt/Element/resources/webapp.asar || die + mv -n usr/share/doc/${PN} usr/share/doc/${PF} || die + gunzip usr/share/doc/${PF}/changelog.gz || die + + insinto / + doins -r usr + doins -r opt + local f + for f in ${QA_PREBUILT}; do + fperms +x "/${f}" + done + fperms u+s /opt/Element/chrome-sandbox + + dosym ../../opt/Element/${PN} /usr/bin/${PN} + dosym ${PN} /usr/bin/riot-desktop +} diff --git a/net-im/element-desktop/element-desktop-1.12.7.ebuild b/net-im/element-desktop/element-desktop-1.12.7.ebuild new file mode 100644 index 000000000000..737ad13c7e4a --- /dev/null +++ b/net-im/element-desktop/element-desktop-1.12.7.ebuild @@ -0,0 +1,131 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit unpacker rust xdg + +DESCRIPTION="A glossy Matrix collaboration client for desktop" +HOMEPAGE="https://element.io" +SRC_URI="https://github.com/element-hq/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/element-hq/element-web/archive/v${PV}.tar.gz -> element-web-${PV}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+emoji keyring" + +RESTRICT="network-sandbox" #The setup script needs internet connection, including for yarn install + +RDEPEND=" + !net-im/element-desktop-bin + >=app-accessibility/at-spi2-core-2.46.0 + app-crypt/libsecret + dev-db/sqlcipher + dev-libs/expat + dev-libs/nspr + dev-libs/nss + media-libs/alsa-lib + media-libs/mesa + net-libs/nodejs + net-print/cups + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/libdrm + x11-libs/libxcb + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXcursor + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXtst + x11-libs/libXScrnSaver + x11-libs/pango + emoji? ( media-fonts/noto-emoji ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + sys-apps/yarn + >=net-libs/nodejs-22.18.0 +" + +QA_PREBUILT=" + opt/Element/chrome-sandbox + opt/Element/libEGL.so + opt/Element/chrome_crashpad_handler + opt/Element/resources/app.asar.unpacked/node_modules/matrix-seshat/index.node + opt/Element/element-desktop + opt/Element/libffmpeg.so + opt/Element/libvulkan.so.1 + opt/Element/libGLESv2.so + opt/Element/libvk_swiftshader.so +" + +ELEMENT_WEB_S="${WORKDIR}/element-web-${PV}" + +pkg_setup() { + rust_pkg_setup +} + +src_prepare() { + default + pushd "${ELEMENT_WEB_S}" >/dev/null || die + yarn install || die + cp config.sample.json config.json || die + popd >/dev/null || die + + yarn install || die +} + +src_compile() { + pushd "${ELEMENT_WEB_S}" >/dev/null || die + yarn build || die + popd >/dev/null || die + + ln -s "${ELEMENT_WEB_S}"/webapp ./ || die + yarn build:native || die + # Use sed to temporarily fix upstream bug in app-builder-lib https://github.com/electron-userland/electron-builder/issues/9355 + sed -i 's/else if (isCi) {/else if (isCi.isCI) {/' node_modules/app-builder-lib/out/publish/PublishManager.js || die + yarn build || die +} + +src_test() { + pushd "${ELEMENT_WEB_S}" >/dev/null || die + yarn test || die + popd >/dev/null || die + + # Right now I can't figure out how to run playwright + # under virtx so this test is commented out + # Help will be appreciated, need to tell the browser + # to run without a proper gpu support + #virtx dbus-launch npx playwright test --ignore-snapshots --reporter html +} + + +src_install() { + unpack dist/${PN}_${PV}_amd64.deb + tar -xvf data.tar.xz || die + + ./node_modules/@electron/universal/node_modules/@electron/asar/bin/asar.js p webapp opt/Element/resources/webapp.asar || die + mv -n usr/share/doc/${PN} usr/share/doc/${PF} || die + gunzip usr/share/doc/${PF}/changelog.gz || die + + insinto / + doins -r usr + doins -r opt + local f + for f in ${QA_PREBUILT}; do + fperms +x "/${f}" + done + fperms u+s /opt/Element/chrome-sandbox + + dosym ../../opt/Element/${PN} /usr/bin/${PN} + dosym ${PN} /usr/bin/riot-desktop +} diff --git a/net-im/element-desktop/element-desktop-9999.ebuild b/net-im/element-desktop/element-desktop-9999.ebuild deleted file mode 100644 index 60798777ce30..000000000000 --- a/net-im/element-desktop/element-desktop-9999.ebuild +++ /dev/null @@ -1,235 +0,0 @@ -# Copyright 2009-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) - -inherit desktop flag-o-matic multilib python-any-r1 xdg-utils - -DESCRIPTION="A glossy Matrix collaboration client for desktop" -HOMEPAGE="https://element.io/" -LICENSE="Apache-2.0" -SLOT="0" -SRC_URI="" -REPO="https://github.com/element-hq/element-web" -ELECTRON_SLOT_DEFAULT="42" -#ELEMENT_COMMIT_ID="ae245c9b1f06e79cec4829f8cd1555206b0ec8f2" -# IUSE="electron-40 electron-41 electron-42 native-modules" -IUSE="native-modules" - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="${REPO}.git" - EGIT_BRANCH="develop" - DOWNLOAD="" - IUSE+=" +build-online" -else - IUSE+=" +build-online" - # KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" - DOWNLOAD="${REPO}/archive/" - if [ -z "$ELEMENT_COMMIT_ID" ] - then - DOWNLOAD+="v${PV}.tar.gz -> element-web-${PV}.tar.gz" - S="${WORKDIR}/element-web-${PV}" - else - DOWNLOAD+="${ELEMENT_COMMIT_ID}.tar.gz -> element-web-${ELEMENT_COMMIT_ID}.tar.gz" - S="${WORKDIR}/element-web-${ELEMENT_COMMIT_ID}" - fi -fi - -SRC_URI+="${DOWNLOAD}" - -RESTRICT="mirror build-online? ( network-sandbox )" -REQUIRED_USE=" - native-modules? ( build-online ) -" - -COMMON_DEPEND=" - ~net-im/element-web-${PV} - native-modules? ( dev-db/sqlcipher ) - dev-util/electron:${ELECTRON_SLOT_DEFAULT} -" - # electron-40? ( dev-util/electron:40 ) - # electron-41? ( dev-util/electron:41 ) - # electron-42? ( dev-util/electron:42 ) - # !electron-40? ( - # !electron-41? ( - # !electron-42? ( - # ) ) ) - -RDEPEND="${COMMON_DEPEND} -" -DEPEND="${COMMON_DEPEND} -" - -BDEPEND=" - ${PYTHON_DEPS} - $(python_gen_any_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') - native-modules? ( || ( dev-lang/rust dev-lang/rust-bin ) ) - net-libs/nodejs[corepack] -" - -python_check_deps() { - python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" -} - -#TODO: net-im/element-web -> runtime/buildtime dep - -src_unpack() { - # if use electron-41; then - # export ELECTRON_SLOT=41 - # elif use electron-40; then - # export ELECTRON_SLOT=40 - # elif use electron-42; then - # export ELECTRON_SLOT=42 - # else - export ELECTRON_SLOT=$ELECTRON_SLOT_DEFAULT - # fi - if [ -z "$ELEMENT_COMMIT_ID" ] - then - if [ -f "${DISTDIR}/element-web-${PV}.tar.gz" ]; then - unpack "element-web-${PV}.tar.gz" || die - else - git-r3_src_unpack - fi - else - unpack "element-web-${ELEMENT_COMMIT_ID}.tar.gz" || die - fi -} - -src_compile() { - # # OLD_PATH=$PATH - # PATH="/usr/$(get_libdir)/electron-${ELECTRON_SLOT}/node_modules/npm/bin/node-gyp-bin:$PATH" - # PATH="/usr/$(get_libdir)/electron-${ELECTRON_SLOT}/node_modules/npm/bin:$PATH" - # PATH="/usr/$(get_libdir)/electron-${ELECTRON_SLOT}:$PATH" - # PATH="${S}/node_modules/.bin:$PATH"; - # export PATH - # export CFLAGS="${CFLAGS} -I/usr/include/electron-${ELECTRON_SLOT}/node" - # export CPPFLAGS="${CPPFLAGS} -I/usr/include/electron-${ELECTRON_SLOT}/node" - export ELECTRON_SKIP_BINARY_DOWNLOAD=1 - # yarn config set disable-self-update-check true || die - # yarn config set nodedir /usr/include/electron-${ELECTRON_SLOT}/node || die - # # #! Until electron-builder >=22.11.5 - # # yarn config set ignore-engines true || die - - sed -i 's/electron-builder install-app-deps/true/' apps/desktop/package.json || die - - # if ! use build-online; then - # ONLINE_OFFLINE="--offline --frozen-lockfile" - # yarn config set yarn-offline-mirror "${DISTDIR}" || die - # fi - - einfo "Removing playwright from dependencies" - sed -i '/playwright":/d' apps/desktop/package.json || die - - # einfo "Removing sentry from dependencies" - # sed -i '/@sentry/d' apps/desktop/package.json || die - # sed -i '/@sentry/d' apps/desktop/src/electron-main.ts || die - # sed -i '/configureSentry()/d' apps/desktop/src/electron-main.ts || die - - einfo "Installing node_modules" - # sed -i 's/linkWorkspacePackages.*/linkWorkspacePackages: false/' pnpm-workspace.yaml || die - pnpm install --no-frozen-lockfile || die - - cd apps/desktop - if use native-modules; then - pnpm run build:native || die - fi - - script -c "pnpm run build" /dev/null || die - # pnpm install --no-frozen-lockfile || die - # ../../node_modules/.bin/tsc || die - # node scripts/copy-res.ts || die - - # # Electron-Builder doesn't support ppc64 due to using precompiled binaries - # if ! use ppc64; then - # einfo "Editing ElectronFramework.js" - # sed -i 's/return unpack(options, createDownloadOpts.*$/return true;/' \ - # node_modules/app-builder-lib/out/electron/ElectronFramework.js || die - # sed -i 's/return beforeCopyExtraFiles(options);$/return true;/' \ - # node_modules/app-builder-lib/out/electron/ElectronFramework.js || die - - # #!Error: With electron's node: "Unknown argument" electron/electron#25379 - # #!Error: With electron's node: "Invalid package app.asar" - # /usr/bin/node node_modules/.bin/electron-builder --dir || die - # else - # einfo "Manually preparing app.asar" - # local distdir="dist/linux-unpacked/resources" - # mkdir -p ${distdir}/node_modules || die - # cp -r lib ${distdir} || die - # # Copying yarn.lock allows freezing versions to the build versions - # cp package.json ${distdir} || die - # pushd ${distdir} &> /dev/null || die - # pnpm install --no-frozen-lockfile || die - # popd &> /dev/null || die - # # rm ${distdir}/yarn.lock || die - # if use native-modules; then - # cp -r .hak/hakModules/matrix-seshat ${distdir}/node_modules/ || die - # fi - - # einfo "Creating archive" - # /usr/bin/node node_modules/@electron/asar/bin/asar.mjs pack ${distdir} ${distdir}/app.asar \ - # --unpack-dir '{**/Release,**/matrix-seshat}' || die - # # Remove unarchived copies of files (they are still in app.asar) - # rm -r ${distdir}/node_modules || die - # rm -r ${distdir}/lib || die - - # cp -r build ${distdir} || die - # fi - - #cp -r /usr/share/element-web webapp - #rm -f webapp/config.json - #cp -f /etc/element-web/config.json webapp/config.json - #node node_modules/.bin/asar p webapp webapp.asar - #node node_modules/.bin/asar l webapp.asar - - # export PATH=${OLD_PATH} - - # #! Fail in CI - # if [ ! -z "${NODIE}" ]; then - # die "Fail in CI" - # fi -} - -src_install() { - cd apps/desktop - - insinto "/usr/$(get_libdir)/element-desktop" - - doins -r dist/linux-unpacked/resources/* - dosym ../../share/element-web /usr/$(get_libdir)/element-desktop/webapp - - exeinto "/usr/$(get_libdir)/element-desktop" - cp "${FILESDIR}/read_flags_file" dist/linux-unpacked/resources/element-desktop - sed -i "s|@ELECTRON@|element-desktop|" dist/linux-unpacked/resources/element-desktop - - echo "\"/usr/$(get_libdir)/electron-${ELECTRON_SLOT}/electron\" \ -/usr/$(get_libdir)/element-desktop/app.asar \"\${flags[@]}\" \"\$@\"" >> dist/linux-unpacked/resources/element-desktop - doexe dist/linux-unpacked/resources/element-desktop - dosym "/usr/$(get_libdir)/element-desktop/element-desktop" /usr/bin/element-desktop - - # # Install icons - # local branding size - # for size in 16 24 48 64 96 128 256 512 ; do - # newicon -s ${size} "build/icons/${size}x${size}.png" \ - # element-desktop.png - # done - - newicon build/icon.png element-desktop.png - - make_desktop_entry "/usr/bin/element-desktop" Element \ - "element-desktop" "Network;Chat" -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update -} diff --git a/net-im/element-desktop/files/read_flags_file b/net-im/element-desktop/files/read_flags_file deleted file mode 100644 index 3c618689ec57..000000000000 --- a/net-im/element-desktop/files/read_flags_file +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env sh - -name=@ELECTRON@ -flags_file="${XDG_CONFIG_HOME:-$HOME/.config}/${name}-flags.conf" - -declare -a flags - -if [[ -f "${flags_file}" ]]; then - mapfile -t < "${flags_file}" -fi - -for line in "${MAPFILE[@]}"; do - if [[ ! "${line}" =~ ^[[:space:]]*#.* ]]; then - flags+=("${line}") - fi -done diff --git a/net-im/element-desktop/metadata.xml b/net-im/element-desktop/metadata.xml index 7fdf004fde08..d56de587fe4a 100644 --- a/net-im/element-desktop/metadata.xml +++ b/net-im/element-desktop/metadata.xml @@ -1,16 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>PF4Public@users.noreply.github.com</email> + <email>filip@kszczot.pl</email> + <name>Filip Kszczot</name> </maintainer> <upstream> - <remote-id type="github">vector-im/element-desktop</remote-id> + <bugs-to>https://github.com/element-hq/element-web/issues</bugs-to> + <remote-id type="github">element-hq/element-web</remote-id> </upstream> - <longdescription>A glossy Matrix collaboration client for desktop</longdescription> <use> - <flag name="build-online">Disable network-sandbox and open Pandora's box!</flag> - <!-- <flag name="electron-42">Build against electron-42 instead of the default one</flag> --> - <flag name="native-modules">Build native modules (for searching in encrypted rooms and secure storage)</flag> + <flag name="emoji">Use <pkg>media-fonts/noto-emoji</pkg> for displaying emoji</flag> </use> </pkgmetadata> |
