This commit is contained in:
Mario Fetka
2024-12-28 18:22:25 +01:00
parent e119aa44fa
commit 6eb3029362
15 changed files with 270 additions and 9 deletions

View File

@@ -0,0 +1,83 @@
# Copyright 2020-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit optfeature unpacker xdg
MY_PN="${PN/-bin}"
DESCRIPTION="A glossy Matrix collaboration client for desktop (binary package)"
HOMEPAGE="https://element.io"
SRC_URI="https://packages.element.io/debian/pool/main/e/element-desktop/${MY_PN}_${PV}_amd64.deb"
S="${WORKDIR}"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64"
RESTRICT="splitdebug"
RDEPEND="
>=app-accessibility/at-spi2-core-2.46.0:2
app-crypt/libsecret
dev-db/sqlcipher
dev-libs/expat
dev-libs/glib:2
dev-libs/nettle
dev-libs/nspr
dev-libs/nss
media-libs/alsa-lib
media-libs/mesa
net-print/cups
sys-apps/dbus
x11-libs/cairo
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3
x11-libs/libX11
x11-libs/libXcomposite
x11-libs/libXdamage
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXrandr
x11-libs/libdrm
x11-libs/libxcb
x11-libs/libxkbcommon
x11-libs/pango"
QA_PREBUILT="opt/Element/chrome-sandbox
opt/Element/chrome_crashpad_handler
opt/Element/element-desktop
opt/Element/libEGL.so
opt/Element/libGLESv2.so
opt/Element/libffmpeg.so
opt/Element/libvk_swiftshader.so
opt/Element/libvulkan.so.1
opt/Element/resources/app.asar.unpacked/node_modules/matrix-seshat/index.node
opt/Element/resources/app.asar.unpacked/node_modules/keytar/build/Release/keytar.node"
src_prepare() {
default
rm opt/Element/{LICENSE.electron.txt,LICENSES.chromium.html} || die
}
src_install() {
mv usr/share/doc/${MY_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/${MY_PN} /usr/bin/${MY_PN}
dosym ${MY_PN} /usr/bin/riot-desktop
}
pkg_postinst() {
xdg_pkg_postinst
optfeature "emojis" media-fonts/noto-emoji
}

View File

@@ -0,0 +1,80 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop xdg multilib-build
DESCRIPTION="Skype extracted from snap package without using snap crap."
HOMEPAGE="https://snapcraft.io/skype"
# fetch snap dl url from:
# curl -H 'Snap-Device-Series: 16' http://api.snapcraft.io/v2/snaps/info/skype | jq
# "url": "https://api.snapcraft.io/api/v1/snaps/download/QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV_333.snap"
# },
# "revision": 333, => patch level (_p)
# "version": "8.114.0.214" => version
SRC_URI="https://api.snapcraft.io/api/v1/snaps/download/QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV_${PV/#*_p/}.snap -> ${P}.snap"
S="${WORKDIR}/squashfs-root/usr/share/${PN}/"
LICENSE="Skype-TOS MIT MIT-with-advertising BSD-1 BSD-2 BSD Apache-2.0 Boost-1.0 ISC CC-BY-SA-3.0 CC0-1.0 openssl ZLIB APSL-2 icu Artistic-2 LGPL-2.1"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="system-ffmpeg system-mesa"
QA_PREBUILT="*"
BDEPEND="sys-fs/squashfs-tools[lzo]"
DEPEND="
app-accessibility/at-spi2-core:2[${MULTILIB_USEDEP}]
dev-libs/nspr[${MULTILIB_USEDEP}]
dev-libs/nss[${MULTILIB_USEDEP}]
media-libs/alsa-lib[${MULTILIB_USEDEP}]
media-libs/freetype:2[${MULTILIB_USEDEP}]
media-gfx/graphite2[${MULTILIB_USEDEP}]
net-print/cups[${MULTILIB_USEDEP}]
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/pango[${MULTILIB_USEDEP}]
system-ffmpeg? ( >=media-video/ffmpeg-6[chromium] )
system-mesa? ( media-libs/mesa[vulkan] )
"
src_unpack() {
unsquashfs "${DISTDIR}"/${P}.snap
}
src_install() {
dodir /opt/${PN}
cp -a . "${ED}"/opt/${PN} || die
if use system-ffmpeg; then
rm "${ED}/opt/${PN}/libffmpeg.so" || die
dosym "../../usr/$(get_libdir)/chromium/libffmpeg.so" "opt/${PN}/libffmpeg.so" || die
elog "Using system ffmpeg. This is experimental and may lead to crashes."
fi
if use system-mesa; then
rm "${ED}/opt/${PN}/libEGL.so" || die
rm "${ED}/opt/${PN}/libGLESv2.so" || die
rm "${ED}/opt/${PN}/libvulkan.so.1" || die
rm "${ED}/opt/${PN}/libvk_swiftshader.so" || die
rm "${ED}/opt/${PN}/vk_swiftshader_icd.json" || die
elog "Using system mesa. This is experimental and may lead to crashes."
fi
# install wrapper reading /etc/chromium/* for CHROME_FLAGS
exeinto /opt/${PN}
doexe "${FILESDIR}/${PN}.sh"
# remove chrome-sandbox binary, users should use kernel namespaces
# https://bugs.gentoo.org/692692#c18
rm "${ED}"/opt/${PN}/chrome-sandbox || die
dosym ../../opt/${PN}/${PN}.sh /usr/bin/${PN}
newicon -s scalable "${FILESDIR}/${PN}.svg" ${PN}.svg
make_desktop_entry "${EPREFIX}"/opt/${PN}/${PN}.sh "Skype" \
${PN} "Network;Chat;InstantMessaging;" \
"MimeType=x-scheme-handler/skype;"
}