# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 CHROMIUM_VERSION="150" CHROMIUM_LANGS=" af am ar bg bn ca ca-valencia cs da de de-CH el en-GB en-US eo es es-419 es-PE et fa fi fil fr fy gd gu he hi hr hu id io it ja jbo kab kmr kn ko lt lv ml mr ms nb nl nn pl pt-BR pt-PT ro ru sc sk sl sr sv sw ta te th tr uk ur vi zh-CN zh-TW " inherit chromium-2 desktop linux-info toolchain-funcs unpacker xdg VIVALDI_PN="${PN/%vivaldi/vivaldi-stable}" VIVALDI_HOME="opt/${PN}" DESCRIPTION="A browser for our friends" HOMEPAGE="https://vivaldi.com/" if [[ ${PV} = *_p* ]]; then DEB_REV="${PV#*_p}" else DEB_REV=1 fi VIVALDI_BASE_URI="https://downloads.vivaldi.com/${VIVALDI_PN#vivaldi-}/${VIVALDI_PN}_${PV%_p*}-${DEB_REV}_" SRC_URI=" amd64? ( ${VIVALDI_BASE_URI}amd64.deb ) arm64? ( ${VIVALDI_BASE_URI}arm64.deb ) " S="${WORKDIR}" LICENSE="Vivaldi" SLOT="0" KEYWORDS="-* amd64 arm64" IUSE="ffmpeg-chromium gtk proprietary-codecs qt6 widevine" RESTRICT="bindist mirror" RDEPEND=" >=app-accessibility/at-spi2-core-2.46.0:2 dev-libs/expat dev-libs/glib:2 dev-libs/nspr dev-libs/nss media-libs/alsa-lib media-libs/mesa[gbm(+)] net-print/cups sys-apps/dbus x11-libs/cairo x11-libs/libdrm x11-libs/libX11 x11-libs/libxcb x11-libs/libXcomposite x11-libs/libXdamage x11-libs/libXext x11-libs/libXfixes x11-libs/libxkbcommon x11-libs/libXrandr x11-libs/pango gtk? ( gui-libs/gtk:4 x11-libs/gtk+:3 ) proprietary-codecs? ( !ffmpeg-chromium? ( media-video/ffmpeg:0/61.63.63[chromium] ) ffmpeg-chromium? ( media-video/ffmpeg-chromium:${CHROMIUM_VERSION} ) ) qt6? ( dev-qt/qtbase:6[gui,widgets] ) widevine? ( www-plugins/chrome-binary-plugins ) " QA_PREBUILT="*" CONFIG_CHECK="~CPU_FREQ" src_unpack() { unpack_deb ${A} } src_prepare() { # Rename docs directory to our needs. mv usr/share/doc/{${VIVALDI_PN},${PF}}/ || die # Decompress the docs. gunzip usr/share/doc/${PF}/changelog.gz || die # The appdata directory is deprecated. mv usr/share/{appdata,metainfo}/ || die # Remove cron job for updating from Debian repos. rm etc/cron.daily/${PN} ${VIVALDI_HOME}/cron/${PN} || die rmdir etc/{cron.daily/,} ${VIVALDI_HOME}/cron/ || die # Remove scripts that will most likely break things. rm -vf ${VIVALDI_HOME}/update-ffmpeg || die pushd ${VIVALDI_HOME}/locales > /dev/null || die rm ja-KS.pak ja-KS_*.pak || die # No flag for Kansai as not in IETF list. chromium_remove_language_paks popd > /dev/null || die if use proprietary-codecs; then einfo Bundled $($(tc-getSTRINGS) ${VIVALDI_HOME}/libffmpeg.so | grep -m1 "^FFmpeg version ") rm ${VIVALDI_HOME}/libffmpeg.so || die fi # Qt5 is obsolete now. rm ${VIVALDI_HOME}/libqt5_shim.so || die if ! use qt6; then rm ${VIVALDI_HOME}/libqt6_shim.so || die fi eapply_user } src_install() { mv */ "${D}" || die dosym ../../${VIVALDI_HOME}/${PN} /usr/bin/${VIVALDI_PN} fperms 4711 /${VIVALDI_HOME}/vivaldi-sandbox local logo size for logo in "${ED}"/${VIVALDI_HOME}/product_logo_*.png; do size=${logo##*_} size=${size%.*} newicon -s "${size}" "${logo}" ${PN}.png done if use proprietary-codecs; then dosym ../../usr/$(get_libdir)/chromium/libffmpeg.so$(usex ffmpeg-chromium .${CHROMIUM_VERSION} "") \ /${VIVALDI_HOME}/libffmpeg.so.$(ver_cut 1-2) fi if use widevine; then dosym ../../usr/$(get_libdir)/chromium-browser/WidevineCdm \ /${VIVALDI_HOME}/WidevineCdm fi case ${PN} in vivaldi) dosym ${VIVALDI_PN} /usr/bin/${PN} ;; vivaldi-snapshot) dosym ${PN} /${VIVALDI_HOME}/vivaldi ;; esac }