# Copyright 2026 Nadeŭka # Distributed under the terms of the GNU General Public License v2 # Based on www-client/firefox-bin-152.0.7 EAPI=8 : ${WMCLASS:='zen'} : ${MOZ_APP_ARGS:='--name=zen-bin'} [[ -v MOZ_GMP_PLUGIN_LIST ]] || MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) inherit desktop linux-info optfeature pax-utils xdg DESCRIPTION='Firefox-based browser with advanced UI customization' HOMEPAGE=' https://zen-browser.app https://github.com/zen-browser/desktop ' BASE_URI=https://github.com/zen-browser/desktop/releases/download/${PV}/zen.linux SRC_URI=" amd64? ( ${BASE_URI}-x86_64.tar.xz -> ${P}-amd64.tar.xz ) arm64? ( ${BASE_URI}-aarch64.tar.xz -> ${P}-arm64.tar.xz ) " S="${WORKDIR}"/zen LICENSE='MPL-2.0 GPL-2 LGPL-2.1' SLOT=0 KEYWORDS=amd64 IUSE='+gmp-autoupdate wayland' RESTRICT=strip QA_PREBUILT="opt/${PN}/*" RDEPEND=' || ( media-libs/libpulse media-sound/apulse ) >=app-accessibility/at-spi2-core-2.46.0:2 >=dev-libs/glib-2.26:2 >=media-libs/freetype-2.4.10 >=x11-libs/cairo-1.10[X] >=x11-libs/gtk+-3.11:3[X,wayland?] media-libs/alsa-lib media-libs/fontconfig media-video/ffmpeg sys-apps/dbus virtual/freedesktop-icon-theme x11-libs/gdk-pixbuf:2 x11-libs/libX11 x11-libs/libxcb x11-libs/libXcomposite x11-libs/libXcursor x11-libs/libXdamage x11-libs/libXext x11-libs/libXfixes x11-libs/libXi x11-libs/libXrandr x11-libs/libXrender ' pkg_setup() { CONFIG_CHECK='~SECCOMP' WARNING_SECCOMP='CONFIG_SECCOMP not set! DRM-protected content will not work' linux-info_pkg_setup } src_install() { local dest=/opt/${PN} ## /opt dodir "${dest}" cp -a . "${ED}${dest}" || die touch "${ED}${dest}"/is-packaged-app || die ## wrapper / bins cp "${FILESDIR}"/${PN} "${T}" || die local exports=MOZ_APP_LAUNCHER if has_version -r media-sound/apulse[-sdk]; then echo -n "LD_LIBRARY_PATH=\"${EPREFIX}/usr/$(get_libdir)" >> "${T}"/${PN} || die echo '/apulse${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"' >> "${T}"/${PN} || die exports+=' LD_LIBRARY_PATH' fi cat >> "${T}"/${PN} <<-EOF || die MOZ_APP_LAUNCHER='${EPREFIX}/usr/bin/${PN}' export ${exports} exec '${dest}/${PN}' ${MOZ_APP_ARGS} "\$@" EOF dobin "${T}"/${PN} ## configs insinto "${dest}"/distribution doins "${FILESDIR}"/policies.json cp "${FILESDIR}"/maintainer-prefs.js "${T}" || die if ! use gmp-autoupdate; then local plugin for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}"; do echo "pref(\"media.${plugin}.autoupdate\", false);" >> "${T}"/maintainer-prefs.js || die done fi insinto "${dest}"/browser/defaults/pref doins "${T}"/maintainer-prefs.js ## desktop sed \ -e "s|@MOZ_APP_EXEC@|${EPREFIX}/usr/bin/${PN}|g" \ -e "s|@WMCLASS@|${WMCLASS}|g" \ "${FILESDIR}"/${PN}.desktop > "${T}"/${PN}.desktop || die domenu "${T}"/${PN}.desktop ## icons local icon size for icon in browser/chrome/icons/default/default*.png; do size=${icon##*/default} newicon -s "${size%.png}" "${icon}" ${PN}.png done ## docs einstalldocs ## permissions & security pax-mark m "${ED}${dest}"/{zen,zen-bin,glxtest,pingsender,updater,vaapitest} } pkg_postinst() { xdg_pkg_postinst use gmp-autoupdate || elog "USE='-gmp-autoupdate' disabled auto-updates for: ${MOZ_GMP_PLUGIN_LIST[*]}" optfeature 'desktop integration' sys-apps/xdg-desktop-portal optfeature 'fallback mouse cursor theme e.g. on WMs' gnome-base/gsettings-desktop-schemas optfeature 'location detection via Wi-Fi' net-misc/networkmanager optfeature 'pdf and web pages printing' net-print/cups optfeature 'speech synthesis (text-to-speech) support' app-accessibility/speech-dispatcher use wayland && optfeature 'wayland screen sharing' media-video/pipewire }