Files
guru/app-misc/via/via-3.0.0.ebuild
Itai Ferber 02441cd7f3 app-misc/via: new package, add 3.0.0
Signed-off-by: Itai Ferber <itai@itaiferber.net>
2024-07-15 22:37:17 -04:00

74 lines
1.9 KiB
Bash

# Copyright 2024 Gentoo Authors
EAPI=8
inherit desktop
DESCRIPTION="GUI configurator for supported QMK-based keyboards"
HOMEPAGE="https://caniusevia.com"
SRC_URI="amd64? (
https://github.com/the-via/releases/releases/download/v${PV}/${P}-linux.AppImage
-> ${P}.AppImage
)"
S="${WORKDIR}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="bindist mirror test strip"
# These dependencies were extracted from the shared libraries required by the
# via-nativia executable; it's not clear whether these are all _actually_
# required, or whether the list is extensive because the executable is an
# Electron app.
RDEPEND="
app-accessibility/at-spi2-core
dev-libs/expat
dev-libs/glib
dev-libs/nspr
dev-libs/nss
media-libs/alsa-lib
media-libs/mesa
sys-apps/dbus
x11-libs/cairo
x11-libs/gtk+
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
"
src_unpack() {
# The AppImage is self-contained so we'll install it as a binary directly,
# but it also contains a `.desktop` file and app icons that we want; we can
# move it into "${S}", and also extract its contents into there.
mkdir -p "${S}" \
&& mv "${DISTDIR}/${P}.AppImage" "${S}" \
&& chmod +x "${S}/${P}.AppImage" \
&& pushd "${S}" \
&& "${S}/${P}.AppImage" --appimage-extract \
&& popd \
|| die
}
src_install() {
newbin "${S}/${P}.AppImage" via
for size in 16 24 32 48 64 96 128 256 512 1024; do
doicon -s "${size}" "${S}/squashfs-root/usr/share/icons/hicolor/${size}x${size}/apps/via-nativia.png"
done
# The inner `.desktop` file points to an internal binary; we can use the
# file but point it to the installed binary path.
local menu_path="${S}/squashfs-root/via-nativia.desktop"
sed -i '' -e 's|^Exec=.*$|Exec=/usr/bin/via|' "${menu_path}"
domenu "${menu_path}"
}