# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DESCRIPTION="Cross-platform application development framework" HOMEPAGE="https://www.electronjs.org/ https://github.com/electron/electron" DL_URL="https://github.com/PF4Public/gentoo-overlay/releases/download/${PV}" SRC_URI=" amd64? ( ${DL_URL}/x86-64.tar.bz2 -> ${PF}-x86-64.tar.bz2 )" S="${WORKDIR}" QA_PREBUILT="*" LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL" LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0" LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl" SLOT="$(ver_cut 1)/$(ver_cut 2-)" KEYWORDS="amd64" RESTRICT="mirror" RDEPEND=" app-arch/bzip2:= dev-libs/expat:= net-misc/curl[ssl] sys-apps/dbus:= media-libs/flac:= sys-libs/zlib:=[minizip] >=app-accessibility/at-spi2-core-2.46.0:2 media-libs/mesa:=[X,gbm(+)] >=net-print/cups-1.3.11:= virtual/udev x11-libs/cairo:= x11-libs/gdk-pixbuf:2 x11-libs/pango:= x11-libs/libnotify >=dev-libs/libxml2-2.12.4:=[icu] dev-libs/nspr:= >=dev-libs/nss-3.26:= dev-libs/libxslt:= media-libs/fontconfig:= >=media-libs/freetype-2.11.0-r1:= media-libs/libjpeg-turbo:= media-libs/libpng:= >=media-libs/libwebp-0.4.0:= >=media-libs/openh264-2.6.0:= >=media-libs/alsa-lib-1.0.19:= media-video/pipewire:= || ( media-libs/libpulse >=media-sound/apulse-0.1.9 ) sys-apps/pciutils:= >=media-libs/libva-2.7:=[X] || ( x11-libs/gtk+:3[X] gui-libs/gtk:4[X] ) virtual/ttf-fonts x11-base/xorg-proto:= x11-libs/libX11:= x11-libs/libXcomposite:= x11-libs/libXcursor:= x11-libs/libXdamage:= x11-libs/libXext:= x11-libs/libXfixes:= >=x11-libs/libXi-1.6.0:= x11-libs/libXrandr:= x11-libs/libXrender:= x11-libs/libXtst:= x11-libs/libxcb:= x11-libs/libxshmfence:= x11-libs/libxkbcommon:= dev-libs/glib:2 " src_install() { # The archive is the installed file tree of dev-util/electron: # usr/$(get_libdir)/electron-/ runtime # usr/bin/electron- launcher (not installed: it is # only meaningful on PATH under # /usr/bin, which /opt is not) # usr/include/electron-/node/ node headers # Re-root the runtime and headers under /opt/electron-/. local mymajor="${PV%%.*}" local myopt="/opt/electron-${mymajor}" mkdir -p "${ED}/${myopt}" || die cp -a "${WORKDIR}/usr/$(get_libdir)/electron-${mymajor}/." "${ED}/${myopt}/" || die # Node headers mkdir -p "${ED}/${myopt}/include" || die cp -a "${WORKDIR}/usr/include/electron-${mymajor}/node" \ "${ED}/${myopt}/include/node" || die # Provide a /usr/bin entry point so electron-config can select this # prebuilt runtime. Mirrors dev-lang/rust-bin's /usr/bin/rustc-bin- # helper symlinks: the link points straight at the /opt runtime binary, # and electron-config symlinks /usr/bin/electron to it when selected. dosym "../../opt/electron-${mymajor}/electron" \ "/usr/bin/electron-bin-${mymajor}" }