Install this version:
emerge -a =net-vpn/ivpn-ui-3.15.13
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =net-vpn/ivpn-ui-3.15.13
Or alternatively:
emerge --autounmask-write -a =net-vpn/ivpn-ui-3.15.13
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 3.15.13 | 8 | ~amd64 | 0 |
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop
ELECTRON_VERSION=42.2.0
DESCRIPTION="Official IVPN desktop GUI"
HOMEPAGE="https://www.ivpn.net/ https://github.com/ivpn/desktop-app"
SRC_URI="https://github.com/ivpn/desktop-app/archive/v${PV}.tar.gz -> ivpn-${PV}.tar.gz
https://github.com/FlyingWaffleDev/gentoo-ivpn-deps/releases/download/ivpn-${PV}/${P}-npm-deps.tar.xz
amd64? ( https://github.com/electron/electron/releases/download/v${ELECTRON_VERSION}/electron-v${ELECTRON_VERSION}-linux-x64.zip )"
S="${WORKDIR}/desktop-app-${PV}/ui"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="mirror strip"
RDEPEND="!net-vpn/ivpn-ui-bin
~net-vpn/ivpn-${PV}
app-accessibility/at-spi2-core:2
dev-libs/expat
dev-libs/glib:2
dev-libs/nspr
dev-libs/nss
media-libs/alsa-lib
media-libs/mesa
net-print/cups
sys-apps/dbus
virtual/libudev
x11-libs/cairo
x11-libs/gtk+:3
x11-libs/libX11
x11-libs/libXcomposite
x11-libs/libXdamage
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXrandr
x11-libs/libxcb
x11-libs/libxkbcommon
x11-libs/pango"
BDEPEND="app-arch/unzip
>=net-libs/nodejs-22.12.0[npm]"
QA_PREBUILT="opt/ivpn/ui/bin/*"
src_unpack() {
unpack "ivpn-${PV}.tar.gz" "${P}-npm-deps.tar.xz"
}
src_compile() {
local electron_dist="${T}/electron-dist"
local npm_args=(
--audit=false
--color=false
--fund=false
--ignore-scripts
--offline
--progress=false
--cache "${WORKDIR}/npm-cache"
)
export ELECTRON_BUILDER_CACHE="${T}/electron-builder-cache"
export NO_UPDATE_NOTIFIER=1
export npm_config_cache="${WORKDIR}/npm-cache"
export npm_config_offline=true
export npm_config_update_notifier=false
npm ci "${npm_args[@]}" || die "npm ci failed"
npm run build || die "UI compilation failed"
mkdir "${electron_dist}" || die
cp "${DISTDIR}/electron-v${ELECTRON_VERSION}-linux-x64.zip" \
"${electron_dist}/" || die
./node_modules/.bin/electron-builder \
--linux dir \
--x64 \
--config electron-builder.config.js \
--config.electronDist="${electron_dist}" \
--publish never || die "Electron packaging failed"
}
src_install() {
insinto /opt/ivpn/ui/bin
doins -r dist/linux-unpacked/.
fperms 0755 /opt/ivpn/ui/bin/{ivpn-ui,chrome-sandbox,chrome_crashpad_handler}
insinto /opt/ivpn/ui
doins References/Linux/ui/ivpnicon.svg
domenu References/Linux/ui/IVPN.desktop
}
!net-vpn/ivpn-ui-bin ~net-vpn/ivpn-3.15.13 app-accessibility/at-spi2-core:2 dev-libs/expat dev-libs/glib:2 dev-libs/nspr dev-libs/nss media-libs/alsa-lib media-libs/mesa net-print/cups sys-apps/dbus virtual/libudev x11-libs/cairo x11-libs/gtk+:3 x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXdamage x11-libs/libXext x11-libs/libXfixes x11-libs/libXrandr x11-libs/libxcb x11-libs/libxkbcommon x11-libs/pango
app-arch/unzip >=net-libs/nodejs-22.12.0[npm]
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | electron-v42.2.0-linux-x64.zip | 119043564 bytes | https://github.com/electron/electron/releases/download/v42.2.0/electron-v42.2.0-linux-x64.zip |
| DIST | ivpn-3.15.13.tar.gz | 12478305 bytes | https://github.com/ivpn/desktop-app/archive/v3.15.13.tar.gz |
| DIST | ivpn-ui-3.15.13-npm-deps.tar.xz | 127444068 bytes | https://github.com/FlyingWaffleDev/gentoo-ivpn-deps/releases/download/ivpn-3.15.13/ivpn-ui-3.15.13-npm-deps.tar.xz |