febuild/net-im/vesktop-bin/vesktop-bin-1.5.1.ebuild
2024-04-17 00:25:39 +02:00

114 lines
2.8 KiB
Bash

# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_PN="${PN%-bin}"
MY_PN="${MY_PN^}"
CHROMIUM_LANGS="
af am ar bg bn ca cs da de el en-GB en-US es es-419 et fa fi fil fr gu he hi
hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv
sw ta te th tr uk ur vi zh-CN zh-TW
"
inherit chromium-2 desktop linux-info unpacker xdg wrapper
DESCRIPTION="A standalone Electron app that loads Discord & Vencord"
HOMEPAGE="https://vencord.dev https://github.com/Vencord/Vesktop"
SRC_URI="
amd64? ( https://github.com/Vencord/${MY_PN}/releases/download/v${PV}/${PN%-bin}_${PV}_amd64.deb )
arm64? ( https://github.com/Vencord/${MY_PN}/releases/download/v${PV}/${PN%-bin}_${PV}_arm64.deb )
"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="-* ~amd64 ~arm64"
IUSE="+wayland"
RDEPEND="
x11-libs/libnotify
x11-misc/xdg-utils
"
BDEPENDS="
$(unpacker_src_uri_depends)
"
DESTDIR="/opt/${MY_PN}"
QA_PREBUILT="*"
CONFIG_CHECK="~USER_NS"
src_unpack() {
mkdir "${S}"
cd "${S}"
unpacker ${A}
}
src_prepare() {
default
# cleanup languages
pushd "opt/${MY_PN}/locales/" >/dev/null || die "location change for language cleanup failed"
chromium_remove_language_paks
popd >/dev/null || die "location reset for language cleanup failed"
# point desktop file to wrapper
sed -i -e "/Exec=/s:${DESTDIR%/}:/usr/bin:" \
"usr/share/applications/${PN%-bin}.desktop" || die "sed failed"
}
src_configure() {
default
chromium_suid_sandbox_check_kernel_config
}
src_install() {
# install desktop stuff
for size in 16 32 48 64 128 256 512 1024; do
doicon -s "${size}" "usr/share/icons/hicolor/${size}x${size}/apps/${PN%-bin}.png"
done
domenu usr/share/applications/${PN%-bin}.desktop
# install the rest
pushd "opt/${MY_PN}" >/dev/null || die "changing dirs failed"
# executables
exeinto "${DESTDIR}"
doexe chrome-sandbox \
libEGL.so \
libffmpeg.so \
libGLESv2.so \
libvk_swiftshader.so \
libvulkan.so.1 \
"${PN%-bin}"
# regular files
insinto "${DESTDIR}"
doins chrome_100_percent.pak \
chrome_200_percent.pak \
icudtl.dat \
LICENSE.electron.txt \
LICENSES.chromium.html \
resources.pak \
snapshot_blob.bin \
v8_context_snapshot.bin \
vk_swiftshader_icd.json
doins -r locales resources
# Chrome-sandbox requires the setuid bit to be specifically set.
# see https://github.com/electron/electron/issues/17972
fowners root "${DESTDIR}/chrome-sandbox"
fperms 4711 "${DESTDIR}/chrome-sandbox"
# Crashpad is included in the package once in a while and when it does, it must be installed.
# See #903616 and #890595
[[ -x chrome_crashpad_handler ]] && doexe chrome_crashpad_handler
popd >/dev/null || die "changing dirs failed"
# install wrapper, optionally enable ozone via USE wayland
make_wrapper "${PN%-bin}" "${DESTDIR}/${PN%-bin} $(usev wayland --ozone-platform-hint=auto)"
}