commit: 02441cd7f343307c659c8b1240a92bb5f10ddb35 Author: Itai Ferber <itai <AT> itaiferber <DOT> net> AuthorDate: Tue Jul 16 02:37:17 2024 +0000 Commit: Itai Ferber <itai <AT> itaiferber <DOT> net> CommitDate: Tue Jul 16 02:37:17 2024 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=02441cd7
app-misc/via: new package, add 3.0.0 Signed-off-by: Itai Ferber <itai <AT> itaiferber.net> app-misc/via/Manifest | 1 + app-misc/via/metadata.xml | 8 +++++ app-misc/via/via-3.0.0.ebuild | 73 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+) diff --git a/app-misc/via/Manifest b/app-misc/via/Manifest new file mode 100644 index 000000000..7ab1fab35 --- /dev/null +++ b/app-misc/via/Manifest @@ -0,0 +1 @@ +DIST via-3.0.0.AppImage 96599478 BLAKE2B 4b39ba089749713c870608fd18aced435cf617beaf4577bd95de404876ad0ebf14d9a257b53c326033746fcc1acab477401e411d75a99f34453c5770d9abbafb SHA512 cf88b62466bdcdbe73877a37fc6a3ba401567519a62b1005c4e602f7e5f38df0fab05c0f7e368a9e92fddb135b068d069f385d5d932d13534c7c9cb253fbaac0 diff --git a/app-misc/via/metadata.xml b/app-misc/via/metadata.xml new file mode 100644 index 000000000..ddf05e23e --- /dev/null +++ b/app-misc/via/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer needed --> + <upstream> + <remote-id type="github">the-via/releases</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-misc/via/via-3.0.0.ebuild b/app-misc/via/via-3.0.0.ebuild new file mode 100644 index 000000000..f22f9e449 --- /dev/null +++ b/app-misc/via/via-3.0.0.ebuild @@ -0,0 +1,73 @@ +# 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}" +}
