# Copyright 2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit desktop optfeature toolchain-funcs xdg DESCRIPTION="The Mullvad Browser is developed to minimize tracking and fingerprinting." HOMEPAGE="https://github.com/mullvad/mullvad-browser/ https://mullvad.net/" SRC_URI="https://github.com/mullvad/mullvad-browser/releases/download/${PV}/mullvad-browser-linux-x86_64-${PV}.tar.xz -> ${P}.tar.xz" S="${WORKDIR}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="-* ~amd64" IUSE="X" RDEPEND=" app-accessibility/at-spi2-core app-misc/mime-types dev-libs/dbus-glib dev-libs/glib dev-libs/nspr dev-libs/nss gui-libs/gtk media-libs/alsa-lib media-libs/fontconfig media-libs/freetype media-video/ffmpeg sys-apps/dbus x11-libs/cairo x11-themes/hicolor-icon-theme x11-libs/libX11 x11-libs/libxcb x11-libs/libXcomposite x11-libs/libXcursor x11-libs/libXdamage x11-libs/libXfixes x11-libs/libXi x11-libs/libXrandr x11-libs/libXrender x11-libs/libXt x11-libs/libXtst " QA_PREBUILT="*" src_install() { # Install profiles to home dir touch mullvad-browser/Browser/is-packaged-app || die # Fix desktop file vars sed -i \ -e 's|Name=.*|Name=Mullvad Browser|g' \ -e 's|Exec=.*|Exec=/opt/mullvad-browser/Browser/start-mullvad-browser --detach|g' \ -e 's|Icon=.*|Icon=mullvad-browser|g' \ mullvad-browser/start-mullvad-browser.desktop || die # Install shim for X11. Browser doesn't seem to launch without it, see upstream issue: # https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/40565 # # The X11 shim below does not affect the browser's fingerprint or functionality. if use X ; then echo "#include void gdk_wayland_display_get_wl_compositor() { abort(); } void gdk_wayland_device_get_wl_pointer() { abort(); } void gdk_wayland_window_get_wl_surface() { abort(); } void gdk_wayland_display_get_wl_display() { abort(); }" > X11shim.c || die $(tc-getCC) -shared -o mullvad-browser/X11shim.so X11shim.c || die sed -i '1a export LD_PRELOAD=/opt/mullvad-browser/X11shim.so' mullvad-browser/Browser/start-mullvad-browser || die fi insinto /opt/ doins -r mullvad-browser dosym ../../opt/mullvad-browser/Browser/start-mullvad-browser /usr/bin/${PN} domenu mullvad-browser/start-mullvad-browser.desktop local x for x in 16 32 48 64 128; do newicon -s ${x} mullvad-browser/Browser/browser/chrome/icons/default/default${x}.png mullvad-browser.png done fperms 755 /opt/mullvad-browser/Browser/abicheck fperms +x /opt/mullvad-browser/Browser/start-mullvad-browser fperms +x /opt/mullvad-browser/Browser/mullvadbrowser fperms +x /opt/mullvad-browser/Browser/mullvadbrowser.real } pkg_postinst() { xdg_pkg_postinst optfeature "wayland screensharing support" sys-apps/xdg-desktop-portal }