diff --git a/README.md b/README.md index 49f8476cfd74d9060afbdbf7f239a13c71c9d7b3..e1c8ac872c35656e46771583cf3ff61d0defc55d 100755 --- a/README.md +++ b/README.md @@ -2,4 +2,5 @@ Extra stuff, such as blender, ocp, oolite, nilfs-utils, ricochet. To add the overlay. layman -o https://0xacab.org/emmata/9skunks/raw/master/repo.xml -f -a 9skunks - + or using eselect-repository + eselect repository add 9skunks git https://0xacab.org/emmata/9skunks diff --git a/metadata/md5-cache/www-client/waterfox-g-6.0 b/metadata/md5-cache/www-client/waterfox-g-6.0 new file mode 100644 index 0000000000000000000000000000000000000000..a7d103284dc29c498771279d4097a723c51bd3d7 --- /dev/null +++ b/metadata/md5-cache/www-client/waterfox-g-6.0 @@ -0,0 +1,18 @@ +BDEPEND=|| ( dev-lang/python:3.11[ncurses,sqlite,ssl] dev-lang/python:3.10[ncurses,sqlite,ssl] ) || ( ( sys-devel/clang:16 sys-devel/llvm:16 clang? ( sys-devel/lld:16 virtual/rust:0/llvm-16 pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] ) ) ) ( sys-devel/clang:15 sys-devel/llvm:15 clang? ( sys-devel/lld:15 virtual/rust:0/llvm-15 pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] ) ) ) ) app-alternatives/awk app-arch/unzip app-arch/zip >=dev-util/cbindgen-0.24.3 net-libs/nodejs virtual/pkgconfig !clang? ( >=virtual/rust-1.65 ) amd64? ( >=dev-lang/nasm-2.14 ) x86? ( >=dev-lang/nasm-2.14 ) pgo? ( X? ( sys-devel/gettext x11-base/xorg-server[xvfb] x11-apps/xhost ) !X? ( >=gui-libs/wlroots-0.15.1-r1[tinywl] x11-misc/xkeyboard-config ) ) sys-devel/gnuconfig >=app-portage/elt-patches-20170815 || ( >=sys-devel/automake-1.16.5:1.16 ) >=sys-devel/autoconf-2.13-r7:2.1 >=sys-devel/libtool-2.4.7 +DEFINED_PHASES=compile configure install postinst postrm preinst prepare pretend setup unpack +DEPEND=!www-client/waterfox-g5 screencast? ( media-video/pipewire:= ) selinux? ( sec-policy/selinux-mozilla ) >=app-accessibility/at-spi2-core-2.46.0:2 dev-libs/expat dev-libs/glib:2 dev-libs/libffi:= >=dev-libs/nss-3.90 >=dev-libs/nspr-4.35 media-libs/alsa-lib media-libs/fontconfig media-libs/freetype media-libs/mesa media-video/ffmpeg sys-libs/zlib virtual/freedesktop-icon-theme x11-libs/cairo x11-libs/gdk-pixbuf x11-libs/pango x11-libs/pixman dbus? ( dev-libs/dbus-glib sys-apps/dbus ) jack? ( virtual/jack ) pulseaudio? ( || ( media-libs/libpulse >=media-sound/apulse-0.1.12-r4[sdk] ) ) libproxy? ( net-libs/libproxy ) selinux? ( sec-policy/selinux-mozilla ) sndio? ( >=media-sound/sndio-1.8.0-r1 ) screencast? ( media-video/pipewire:= ) system-av1? ( >=media-libs/dav1d-1.0.0:= >=media-libs/libaom-1.0.0:= ) system-harfbuzz? ( >=media-gfx/graphite2-1.3.13 >=media-libs/harfbuzz-2.8.1:0= ) system-icu? ( >=dev-libs/icu-73.1:= ) system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) system-webp? ( >=media-libs/libwebp-1.1.0:0= ) wayland? ( >=media-libs/libepoxy-1.5.10-r1 x11-libs/gtk+:3[wayland] x11-libs/libxkbcommon[wayland] ) wifi? ( kernel_linux? ( dev-libs/dbus-glib net-misc/networkmanager sys-apps/dbus ) ) X? ( virtual/opengl x11-libs/cairo[X] x11-libs/gtk+:3[X] x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXdamage x11-libs/libXext x11-libs/libXfixes x11-libs/libxkbcommon[X] x11-libs/libXrandr x11-libs/libXtst x11-libs/libxcb:= ) X? ( x11-base/xorg-proto x11-libs/libICE x11-libs/libSM ) !!sys-devel/llvm:0 +DESCRIPTION=Waterfox Web Browser +EAPI=8 +HOMEPAGE=https://www.waterfox.net +IDEPEND=dev-util/desktop-file-utils x11-misc/shared-mime-info +INHERIT=autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm multiprocessing optfeature pax-utils python-any-r1 toolchain-funcs virtualx xdg +IUSE=+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel jack libproxy lto openh264 pgo pulseaudio sndio selinux +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp wayland wifi +X geckodriver +gmp-autoupdate screencast l10n_ar l10n_cs l10n_da l10n_de l10n_el l10n_en-GB l10n_es-ES l10n_es-MX l10n_fr l10n_hu l10n_id l10n_it l10n_ja l10n_ko l10n_lt l10n_nl l10n_nn l10n_pl l10n_pt-BR l10n_pt-PT l10n_ru l10n_sv l10n_th l10n_vi l10n_zh-CN l10n_zh-TW +KEYWORDS=amd64 arm64 ppc64 x86 +LICENSE=MPL-2.0 GPL-2 LGPL-2.1 +RDEPEND=!www-client/waterfox-g5 screencast? ( media-video/pipewire:= ) selinux? ( sec-policy/selinux-mozilla ) >=app-accessibility/at-spi2-core-2.46.0:2 dev-libs/expat dev-libs/glib:2 dev-libs/libffi:= >=dev-libs/nss-3.90 >=dev-libs/nspr-4.35 media-libs/alsa-lib media-libs/fontconfig media-libs/freetype media-libs/mesa media-video/ffmpeg sys-libs/zlib virtual/freedesktop-icon-theme x11-libs/cairo x11-libs/gdk-pixbuf x11-libs/pango x11-libs/pixman dbus? ( dev-libs/dbus-glib sys-apps/dbus ) jack? ( virtual/jack ) pulseaudio? ( || ( media-libs/libpulse >=media-sound/apulse-0.1.12-r4[sdk] ) ) libproxy? ( net-libs/libproxy ) selinux? ( sec-policy/selinux-mozilla ) sndio? ( >=media-sound/sndio-1.8.0-r1 ) screencast? ( media-video/pipewire:= ) system-av1? ( >=media-libs/dav1d-1.0.0:= >=media-libs/libaom-1.0.0:= ) system-harfbuzz? ( >=media-gfx/graphite2-1.3.13 >=media-libs/harfbuzz-2.8.1:0= ) system-icu? ( >=dev-libs/icu-73.1:= ) system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) system-webp? ( >=media-libs/libwebp-1.1.0:0= ) wayland? ( >=media-libs/libepoxy-1.5.10-r1 x11-libs/gtk+:3[wayland] x11-libs/libxkbcommon[wayland] ) wifi? ( kernel_linux? ( dev-libs/dbus-glib net-misc/networkmanager sys-apps/dbus ) ) X? ( virtual/opengl x11-libs/cairo[X] x11-libs/gtk+:3[X] x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXdamage x11-libs/libXext x11-libs/libXfixes x11-libs/libxkbcommon[X] x11-libs/libXrandr x11-libs/libXtst x11-libs/libxcb:= ) hwaccel? ( media-video/libva-utils sys-apps/pciutils ) jack? ( virtual/jack ) openh264? ( media-libs/openh264:*[plugin] ) +REQUIRED_USE=|| ( X wayland ) debug? ( !system-av1 ) pgo? ( lto ) wifi? ( dbus ) +RESTRICT=mirror +SLOT=6 +SRC_URI=https://github.com/WaterfoxCo/Waterfox/archive/refs/tags/G6.0.tar.gz -> waterfox-g-6.0.tar.gz https://dev.gentoo.org/~juippis/mozilla/patchsets/firefox-115esr-patches-06.tar.xz +_eclasses_=gnuconfig b6b3e92f8b8c996400074b5f61a59256 toolchain-funcs 862d337d98edb576796827be2c6b11ca multilib c19072c3cd7ac5cb21de013f7e9832e0 libtool 9d3a9a889a6fa62ae794f817c156491b autotools 6ae9a4347149b19a112caa1182d03bde check-reqs 02ac7654b64f7acc7a8b1a35ad9d6ddc desktop 021728fdc1b03b36357dbc89489e0f0d flag-o-matic be27a904c614cb93ae037762dc69bcc2 xdg-utils baea6080dd821f5562d715887954c9d3 gnome2-utils b0183db3b2e07b18f3b77bffec72e116 linux-info c4f1201b96a8a2c1f3b86cc8b2c71c91 llvm 976dc8267d6a5af8b259cb956b52d51f multiprocessing b4e253ab22cef7b1085e9b67c7a3b730 optfeature 222cb475c5a4f7ae7cfb0bf510a6fe54 pax-utils 91d47e5d20627c717aa878b9167c62a8 python-utils-r1 12aa0037eb004139215ff04894d52b28 python-any-r1 f5169813d1619761b459800587005fd2 virtualx 817571665ee28575da44ee08135089e5 xdg 4a14c5c24f121e7da66e5aab4a168c6e +_md5_=ae4fd1d113f903f3624e83b88dccfa42 diff --git a/www-client/waterfox-g/Manifest b/www-client/waterfox-g/Manifest new file mode 100644 index 0000000000000000000000000000000000000000..69c098b69f4a101a55b3186a72a6d2079077d297 --- /dev/null +++ b/www-client/waterfox-g/Manifest @@ -0,0 +1,18 @@ +AUX disable-auto-update.policy.json 53 BLAKE2B f8df63721191d84d8f1ceec263f63c44fd5dadeae0939baf9a4a6b1852516722b2a3d94b8d403cc7b6c6b525d5236f357ab65a72d716aab1f5bef47800b5a18c SHA512 5ed67bde39175d4d10d50ba5b12063961e725e94948eadb354c0588b30d3f97d2178b66c1af466a6e7bd208ab694227a1391c4141f88d3da1a1178454eba5308 +AUX distribution.ini 130 BLAKE2B b51cc869c88b5b25fd61e8d3ba3aa86663a9847ae49fac99ae808414f4c5729a5a3b5cafb000a3741fee625d0a3ef4cee6eb6a5852395371388408936e1989ad SHA512 27a446f1eebf4cb34eb9d63c7b1efa533c2fa9982f3bb33757b268138a0c69c07c8c02f950de1a6d64dab8c2a979475f624df95fdcd4e7aea6724078c98156c6 +AUX gentoo-default-prefs.js 1692 BLAKE2B 05d588f747488c17d1e935e833760411f99d748edc2195124840a9e8a2751c7d3306e6b57d6cfb830f6920ab8fb0e6e89d2b0cc91968d94daf2f86dbca8c4be6 SHA512 ffe46fb409ddc02a5e1bc6af27c1cbb004ef67df1c42879921f7b42f00991d53366b9d7c0c61e817cd21277c9f5d3f09e0dd51013a6cb2a3490b82ac37fe5359 +AUX gentoo-hwaccel-prefs.js 162 BLAKE2B c5f2dfb727081e2d538c262f12c0cfdda31cbda58c77f4024d820e1d1915203d1fb8ad2671f88ff0eb2b019bbf44079a8b1114e240b74f815680e5c28eccc295 SHA512 f1847f11e7059a83f09c3c7494aadcb04512cdf2ccf6616ebe3ec02fc46de66fd35cf83d81e08013c0e594b73e4dffcb67a32288b6949ce137669715583fd0a4 +AUX gentoo-hwaccel-prefs.js-1 100 BLAKE2B 08be790b58524077a5681cc06e10890b72dc6e8155c9e03e6ef9165035087d4b8cbcac4a6b8997f61db3721895c9247a12171eec7d082fa15e1d5312bf51fbee SHA512 cf5385c793056e66b8853fd641dce2e7804d6878675afd24485487f2201801e1bdd5d27c15cb0d483eb34bfb75e7a21c01f1bbf701cb1c2dfa48f8f6422ed42c +AUX gentoo-hwaccel-prefs.js-r2 265 BLAKE2B ac3053eb15e2dac446337c29184b5ec54fb30b51367b91d149f50ba4d7ffaeea56197053cc0b4515a378f026a7d9a19a715240f5dbd39b193271a9f64575e7b7 SHA512 2a83aebd071e763c63777fbbada46686400aacba628d9990aa0302c3a88a4c4a21eef2bb596a8688046939698a16e443dc18ede707cfc207e60cb72c1094635d +AUX icon/waterfox-g.desktop 8116 BLAKE2B 50b476a1be87bcca0bd6175b7a7f5e67ac5d3f40b0a5a99c2244036a9eea53fb518f59c1d87b18723c4ae6c261bfb692ef0b52c6714402b0a98da4b6867ab977 SHA512 07c9d89babe20fba9531396c9aa2b692aae77606be2b8a750481b6b8f9b3eab320fef313d1ed4b15d3fbc4cd94dfb56b62ce1a3e89ba7143c6aa9acc0f919bf8 +AUX icon/waterfox-g6.desktop 8116 BLAKE2B 50b476a1be87bcca0bd6175b7a7f5e67ac5d3f40b0a5a99c2244036a9eea53fb518f59c1d87b18723c4ae6c261bfb692ef0b52c6714402b0a98da4b6867ab977 SHA512 07c9d89babe20fba9531396c9aa2b692aae77606be2b8a750481b6b8f9b3eab320fef313d1ed4b15d3fbc4cd94dfb56b62ce1a3e89ba7143c6aa9acc0f919bf8 +AUX icon/waterfox-symbolic.svg 135425 BLAKE2B 78c39ecf87e5425f6de3f5b1c02d5594c34ffd6585b47f228af662e2f221be2b912a5747b06f940c5285bd8404c4e9a7c9b13db4d67c9db9fa9ca794706db613 SHA512 5a50b6b56c29a164c0097d33d099fac6d86eaa135ecf14dde6f6b08372fdc461ade540f71ad8fab4c1fd8773e5f452d7c64f6affa950be95727ae28e7576bda6 +AUX waterfox-g-fix_langpack_id.patch 757 BLAKE2B 7709b8fee0ea4e6767dcf6a8710eac3797ad0215a4e46cb3be1022a071c12a363d2c076bd89783267620e4d0b701c04931fd546f9bc6c5b3ec8a33fbab85290f SHA512 83c5d5f5aa85d2337c56c073e96a38f344fcff2cabc4f668c27e01c499e1a320d7d6ebf54caf46cb8209b76d67e211dc7301289f4e14227bb92908059d36609b +AUX waterfox-g.sh 2909 BLAKE2B a49a444c6e002b8a70ab17ee0d1b78893626acfe9289f7ede285e21094a3d33e8ff5b377fd7899cc765725151b4449daf5ae3366d4c30701ad759a7a76eb89b6 SHA512 839ab75c9e7fd2fd89172d0a639815e949c4ced8eb07128ebf3180e51dd213551bce6dbf31904d9eff162f7416593c1259609dd25581c0ca5849f02cbac1e429 +AUX waterfox-g6-fix-gtk-icons.patch 722 BLAKE2B 70e63b8bb628368592237eb837378102614ada500b4543c088e6188f6854d01343917a5638db43efe83a2909f332423592663eeeb938a1af3e3020a754f1320f SHA512 6900d346be35671d0e8f095bdcfe1e1fcb0e67984d8578f11aff6e2581d81f64140568001ffd3361d3f6f1c1732e0ac2e617e302af19699962c569834b85c64f +AUX waterfox-g6.0b1-URLbar_unfuck.patch 19027 BLAKE2B fc39e85405c6e5d7b991bff9561aa50d422e2b03b66ca6e4f9fbd96e3e6046603284570b12682c4cb1ffcbf05d6b30373a3559e16fb084d5f1eaabe53b37f503 SHA512 b4a2e50f557ce3454d423808275e0de74de0911a777f91aafd95549dbdfabc7d696f915a570caf7c781eeeaf99cb6f19810e68116524821c218e87ef5243e887 +AUX waterfox-g6.sh 2860 BLAKE2B 737521e158466adddb54f516d7ef1e9193c5b9a0fe7ec172e9c93e5e33701b5b66232ae6e9432920d3ca873895e9541f28c75c008709303d0ad183cc28f2b58f SHA512 86c7ed015568d1b286992c76cd29df7ae0d4693123ca3d5f80779691ec2383f4166096de364dd795cc750a8b50470c856962963903e1a5d1ee1991d6fffb5ec5 +DIST firefox-115esr-patches-06.tar.xz 14944 BLAKE2B e60a8a32f8c5e6d897e8c3e13d291ffab651937505ce258f031e7e75560c9eb89fce4a22c61872d639e6e1d40244e94761baa1660c2d3d02584ad4cc4778946f SHA512 d9ea1a063df287fa651042c90529b1a1b5ebd5a28735c44b5527cc7dd29678c2f8a9204f007db328371ed6af9613ca7215464c00df5e685c3af4296a22139257 +DIST waterfox-g-6.0.tar.gz 405444628 BLAKE2B d34fa9baf2f576e421f2c174a0a6732fe3d72a49754e6a9f74518e5f3fda088f3c3295ad3a950696d89c0ac5e9918ad4b2970617bb2edc2a4dbd55a6a4ae97b2 SHA512 e64ffd5bc4ffad8be37a820e305d787f426c0c6da603a888e6ba301bae47c34243b11623994531e597b537d556366e760b1172ee498598d3b41c212e347a24c7 +EBUILD waterfox-g-6.0.ebuild 39178 BLAKE2B 6430b593203e15b5f1bb194cd7df0bf2020ba3027ed79899dc558529fcacea67c53268ad0c38c53dba3c95a9c549f1fd61e55141846ad2508275d7720f4ccdad SHA512 ba2cfc55a0c08245fdec4e59edcf8ca538dbd2c827ea3242ac03d4d25ea248a63ab3bddfc77f1985ebd2d1b4b0bb88f8637981cfd8ff17cdfa2eb227036da218 +MISC metadata.xml 2643 BLAKE2B 5ebf91d8eae9a3fc92df955f31c89c4424e136bf8cce1afd687643950f838f861f4ead7104355ac86e2ead0c35aea73ef61b261afeac8efcbad3ab06d7730795 SHA512 b83e200744ac42cc8d891a3a20c83e771ec89af9439b0bd06099db457983d1919e13c4b55372ebe3d58d3bf75929b61f2e4377babd751c2c132aaf580e804d98 diff --git a/www-client/waterfox-g/files/disable-auto-update.policy.json b/www-client/waterfox-g/files/disable-auto-update.policy.json new file mode 100644 index 0000000000000000000000000000000000000000..f36622021fcd5d831092df6f8b8ef14114f77301 --- /dev/null +++ b/www-client/waterfox-g/files/disable-auto-update.policy.json @@ -0,0 +1,5 @@ +{ + "policies": { + "DisableAppUpdate": true + } +} diff --git a/www-client/waterfox-g/files/distribution.ini b/www-client/waterfox-g/files/distribution.ini new file mode 100644 index 0000000000000000000000000000000000000000..e98169a7305afdcfb8efe5a59a82a9da8432ab40 --- /dev/null +++ b/www-client/waterfox-g/files/distribution.ini @@ -0,0 +1,8 @@ +[Global] +id=gentoo +version=1.0 +about=Waterfox for gentoo + +[Preferences] +app.distributor="gentoo" +app.distributor.channel="gentoo" diff --git a/www-client/waterfox-g/files/gentoo-default-prefs.js b/www-client/waterfox-g/files/gentoo-default-prefs.js new file mode 100644 index 0000000000000000000000000000000000000000..ad22ef9e0d988db0091ccfadf064e7a197c6d1bf --- /dev/null +++ b/www-client/waterfox-g/files/gentoo-default-prefs.js @@ -0,0 +1,41 @@ +pref("general.smoothScroll", true); +pref("general.autoScroll", false); +pref("browser.urlbar.hideGoButton", true); +pref("accessibility.typeaheadfind", true); +pref("browser.shell.checkDefaultBrowser", false); +pref("browser.EULA.override", true); +pref("general.useragent.locale", "chrome://global/locale/intl.properties"); +pref("intl.locale.requested", ""); +/* Disable DoH by default */ +pref("network.trr.mode", 5); +/* Disable use of Mozilla Normandy service by default */ +pref("app.normandy.enabled", false); + +// Disable default browser checking +pref("browser.defaultbrowser.notificationbar", false); + +// Don't disable extensions dropped in to a system +// location, or those owned by the application +pref("extensions.autoDisableScopes", 3); + +// Don't display the one-off addon selection dialog when +// upgrading from a version of Waterfox older than 8.0 +pref("extensions.shownSelectionUI", true); + +// Fall back to en-US search plugins if none exist for the current locale +pref("distribution.searchplugins.defaultLocale", "en-US"); + +// Use OS regional settings for date and time +pref("intl.regional_prefs.use_os_locales", true); + +// Use LANG environment variable to choose locale +pref("intl.locale.requested", ""); + +// Re-enable load URL on middle mouse klick +pref("middlemouse.contentLoadURL", true); + +// Disable downloading language packs, cuz Waterfox uses own and they are already included in subpackages +pref("extensions.getAddons.langpacks.url", "", locked); + +// Disable requiring signatures for language packs +pref("extensions.langpacks.signatures.required", false, locked); diff --git a/www-client/waterfox-g/files/gentoo-hwaccel-prefs.js b/www-client/waterfox-g/files/gentoo-hwaccel-prefs.js new file mode 100644 index 0000000000000000000000000000000000000000..a00144a7ad131f037f2c1eceaa546b6e00b84413 --- /dev/null +++ b/www-client/waterfox-g/files/gentoo-hwaccel-prefs.js @@ -0,0 +1,3 @@ +/* Force hardware accelerated rendering due to USE=hwaccel */ +pref("layers.acceleration.force-enabled", true); +pref("webgl.force-enabled", true); diff --git a/www-client/waterfox-g/files/gentoo-hwaccel-prefs.js-1 b/www-client/waterfox-g/files/gentoo-hwaccel-prefs.js-1 new file mode 100644 index 0000000000000000000000000000000000000000..0cb92b046f94d5528eb50b90a2a8161286cd1e0a --- /dev/null +++ b/www-client/waterfox-g/files/gentoo-hwaccel-prefs.js-1 @@ -0,0 +1,2 @@ +pref("layers.acceleration.force-enabled", true); +pref("webgl.force-enabled", true); diff --git a/www-client/waterfox-g/files/gentoo-hwaccel-prefs.js-r2 b/www-client/waterfox-g/files/gentoo-hwaccel-prefs.js-r2 new file mode 100644 index 0000000000000000000000000000000000000000..48025caac3418d533d3cbe349856dd7433629daa --- /dev/null +++ b/www-client/waterfox-g/files/gentoo-hwaccel-prefs.js-r2 @@ -0,0 +1,5 @@ +/* Force hardware accelerated rendering due to USE=hwaccel */ +pref("gfx.webrender.all", true); +pref("layers.acceleration.force-enabled", true); +pref("media.hardware-video-decoding.enabled", true); +pref("webgl.force-enabled", true); diff --git a/www-client/waterfox-g/files/icon/waterfox-g.desktop b/www-client/waterfox-g/files/icon/waterfox-g.desktop new file mode 100644 index 0000000000000000000000000000000000000000..8219e93561f6c68f4748649a7b75a314291562d0 --- /dev/null +++ b/www-client/waterfox-g/files/icon/waterfox-g.desktop @@ -0,0 +1,236 @@ +[Desktop Entry] +Version=1.0 +Name=@NAME@ +GenericName=Web Browser +Comment=Browse the Web +Exec=@EXEC@ %u +Icon=@ICON@ +Terminal=false +Type=Application +MimeType=application/pdf;application/vnd.mozilla.xul+xml;application/xhtml+xml;text/html;text/mml;text/xml;x-scheme-handler/http;x-scheme-handler/https; +StartupNotify=true +Categories=Network;WebBrowser; +Keywords=web;browser;internet; +Actions=new-window;new-private-window;profile-manager-window; + +[Desktop Action new-window] +Name=Open a New Window +Name[ach]=Dirica manyen +Name[af]=Nuwe venster +Name[an]=Nueva finestra +Name[ar]=نافذة جديدة +Name[as]=নতুন উইন্ডো +Name[ast]=Ventana nueva +Name[az]=Yeni Pəncərə +Name[be]=Новае акно +Name[bg]=Нов прозорец +Name[bn_BD]=নতুন উইন্ডো (N) +Name[bn_IN]=নতুন উইন্ডো +Name[br]=Prenestr nevez +Name[brx]=गोदान उइन्ड'(N) +Name[bs]=Novi prozor +Name[ca]=Finestra nova +Name[cak]=K'ak'a' tzuwäch +Name[cs]=Nové okno +Name[cy]=Ffenestr Newydd +Name[da]=Nyt vindue +Name[de]=Neues Fenster +Name[dsb]=Nowe wokno +Name[el]=Νέο παράθυρο +Name[en_GB]=New Window +Name[en_US]=New Window +Name[en_ZA]=New Window +Name[eo]=Nova fenestro +Name[es_AR]=Nueva ventana +Name[es_CL]=Nueva ventana +Name[es_ES]=Nueva ventana +Name[es_MX]=Nueva ventana +Name[et]=Uus aken +Name[eu]=Leiho berria +Name[fa]=پنجره جدید +Name[ff]=Henorde Hesere +Name[fi]=Uusi ikkuna +Name[fr]=Nouvelle fenêtre +Name[fy_NL]=Nij finster +Name[ga_IE]=Fuinneog Nua +Name[gd]=Uinneag ùr +Name[gl]=Nova xanela +Name[gn]=Ovetã pyahu +Name[gu_IN]=નવી વિન્ડો +Name[he]=חלון חדש +Name[hi_IN]=नया विंडो +Name[hr]=Novi prozor +Name[hsb]=Nowe wokno +Name[hu]=Új ablak +Name[hy_AM]=Նոր Պատուհան +Name[id]=Jendela Baru +Name[is]=Nýr gluggi +Name[it]=Nuova finestra +Name[ja]=新しいウィンドウ +Name[ja_JP-mac]=新規ウインドウ +Name[ka]=ახალი ფანჯარა +Name[kk]=Жаңа терезе +Name[km]=បង្អួចថ្មី +Name[kn]=ಹೊಸ ಕಿಟಕಿ +Name[ko]=새 창 +Name[kok]=नवें जनेल +Name[ks]=نئئ وِنڈو +Name[lij]=Neuvo barcon +Name[lo]=ຫນ້າຕ່າງໃຫມ່ +Name[lt]=Naujas langas +Name[ltg]=Jauns lūgs +Name[lv]=Jauns logs +Name[mai]=नव विंडो +Name[mk]=Нов прозорец +Name[ml]=പുതിയ ജാലകം +Name[mr]=नवीन पटल +Name[ms]=Tetingkap Baru +Name[my]=ဝင်းဒိုးအသစ် +Name[nb_NO]=Nytt vindu +Name[ne_NP]=नयाँ सञ्झ्याल +Name[nl]=Nieuw venster +Name[nn_NO]=Nytt vindauge +Name[or]=ନୂତନ ୱିଣ୍ଡୋ +Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ +Name[pl]=Nowe okno +Name[pt_BR]=Nova janela +Name[pt_PT]=Nova janela +Name[rm]=Nova fanestra +Name[ro]=Fereastră nouă +Name[ru]=Новое окно +Name[sat]=नावा विंडो (N) +Name[si]=නව කවුළුවක් +Name[sk]=Nové okno +Name[sl]=Novo okno +Name[son]=Zanfun taaga +Name[sq]=Dritare e Re +Name[sr]=Нови прозор +Name[sv_SE]=Nytt fönster +Name[ta]=புதிய சாளரம் +Name[te]=కొత్త విండో +Name[th]=หน้าต่างใหม่ +Name[tr]=Yeni pencere +Name[tsz]=Eraatarakua jimpani +Name[uk]=Нове вікно +Name[ur]=نیا دریچہ +Name[uz]=Yangi oyna +Name[vi]=Cửa sổ mới +Name[wo]=Palanteer bu bees +Name[xh]=Ifestile entsha +Name[zh_CN]=新建窗口 +Name[zh_TW]=開新視窗 +Exec=@EXEC@ --new-window %u + +[Desktop Action new-private-window] +Name=Open a New Private Window +Name[ach]=Dirica manyen me mung +Name[af]=Nuwe privaatvenster +Name[an]=Nueva finestra privada +Name[ar]=نافذة خاصة جديدة +Name[as]=নতুন ব্যক্তিগত উইন্ডো +Name[ast]=Ventana privada nueva +Name[az]=Yeni Məxfi Pəncərə +Name[be]=Новае акно адасаблення +Name[bg]=Нов прозорец за поверително сърфиране +Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো +Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো +Name[br]=Prenestr merdeiñ prevez nevez +Name[brx]=गोदान प्राइभेट उइन्ड' +Name[bs]=Novi privatni prozor +Name[ca]=Finestra privada nova +Name[cak]=K'ak'a' ichinan tzuwäch +Name[cs]=Nové anonymní okno +Name[cy]=Ffenestr Breifat Newydd +Name[da]=Nyt privat vindue +Name[de]=Neues privates Fenster +Name[dsb]=Nowe priwatne wokno +Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης +Name[en_GB]=New Private Window +Name[en_US]=New Private Window +Name[en_ZA]=New Private Window +Name[eo]=Nova privata fenestro +Name[es_AR]=Nueva ventana privada +Name[es_CL]=Nueva ventana privada +Name[es_ES]=Nueva ventana privada +Name[es_MX]=Nueva ventana privada +Name[et]=Uus privaatne aken +Name[eu]=Leiho pribatu berria +Name[fa]=پنجره ناشناس جدید +Name[ff]=Henorde Suturo Hesere +Name[fi]=Uusi yksityinen ikkuna +Name[fr]=Nouvelle fenêtre de navigation privée +Name[fy_NL]=Nij priveefinster +Name[ga_IE]=Fuinneog Nua Phríobháideach +Name[gd]=Uinneag phrìobhaideach ùr +Name[gl]=Nova xanela privada +Name[gn]=Ovetã ñemi pyahu +Name[gu_IN]=નવી ખાનગી વિન્ડો +Name[he]=חלון פרטי חדש +Name[hi_IN]=नयी निजी विंडो +Name[hr]=Novi privatni prozor +Name[hsb]=Nowe priwatne wokno +Name[hu]=Új privát ablak +Name[hy_AM]=Սկսել Գաղտնի դիտարկում +Name[id]=Jendela Mode Pribadi Baru +Name[is]=Nýr huliðsgluggi +Name[it]=Nuova finestra anonima +Name[ja]=新しいプライベートウィンドウ +Name[ja_JP-mac]=新規プライベートウインドウ +Name[ka]=ახალი პირადი ფანჯარა +Name[kk]=Жаңа жекелік терезе +Name[km]=បង្អួចឯកជនថ្មី +Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ +Name[ko]=새 사생활 보호 모드 +Name[kok]=नवो खाजगी विंडो +Name[ks]=نْو پرایوٹ وینڈو& +Name[lij]=Neuvo barcon privou +Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່ +Name[lt]=Naujas privataus naršymo langas +Name[ltg]=Jauns privatais lūgs +Name[lv]=Jauns privātais logs +Name[mai]=नया निज विंडो (W) +Name[mk]=Нов приватен прозорец +Name[ml]=പുതിയ സ്വകാര്യ ജാലകം +Name[mr]=नवीन वैयक्तिक पटल +Name[ms]=Tetingkap Persendirian Baharu +Name[my]=New Private Window +Name[nb_NO]=Nytt privat vindu +Name[ne_NP]=नयाँ निजी सञ्झ्याल +Name[nl]=Nieuw privévenster +Name[nn_NO]=Nytt privat vindauge +Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ +Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ +Name[pl]=Nowe okno prywatne +Name[pt_BR]=Nova janela privativa +Name[pt_PT]=Nova janela privada +Name[rm]=Nova fanestra privata +Name[ro]=Fereastră privată nouă +Name[ru]=Новое приватное окно +Name[sat]=नावा निजेराक् विंडो (W ) +Name[si]=නව පුද්ගලික කවුළුව (W) +Name[sk]=Nové okno v režime Súkromné prehliadanie +Name[sl]=Novo zasebno okno +Name[son]=Sutura zanfun taaga +Name[sq]=Dritare e Re Private +Name[sr]=Нови приватан прозор +Name[sv_SE]=Nytt privat fönster +Name[ta]=புதிய தனிப்பட்ட சாளரம் +Name[te]=కొత్త ఆంతరంగిక విండో +Name[th]=หน้าต่างส่วนตัวใหม่ +Name[tr]=Yeni gizli pencere +Name[tsz]=Juchiiti eraatarakua jimpani +Name[uk]=Приватне вікно +Name[ur]=نیا نجی دریچہ +Name[uz]=Yangi maxfiy oyna +Name[vi]=Cửa sổ riêng tư mới +Name[wo]=Panlanteeru biir bu bees +Name[xh]=Ifestile yangasese entsha +Name[zh_CN]=新建隐私浏览窗口 +Name[zh_TW]=新增隱私視窗 +Exec=@EXEC@ --private-window %u + +[Desktop Action profile-manager-window] +Name=Open the Profile Manager +Name[de]=Profilverwaltung öffnen +Name[cs]=Správa profilů +Exec=@EXEC@ --ProfileManager diff --git a/www-client/waterfox-g/files/icon/waterfox-g6.desktop b/www-client/waterfox-g/files/icon/waterfox-g6.desktop new file mode 100644 index 0000000000000000000000000000000000000000..8219e93561f6c68f4748649a7b75a314291562d0 --- /dev/null +++ b/www-client/waterfox-g/files/icon/waterfox-g6.desktop @@ -0,0 +1,236 @@ +[Desktop Entry] +Version=1.0 +Name=@NAME@ +GenericName=Web Browser +Comment=Browse the Web +Exec=@EXEC@ %u +Icon=@ICON@ +Terminal=false +Type=Application +MimeType=application/pdf;application/vnd.mozilla.xul+xml;application/xhtml+xml;text/html;text/mml;text/xml;x-scheme-handler/http;x-scheme-handler/https; +StartupNotify=true +Categories=Network;WebBrowser; +Keywords=web;browser;internet; +Actions=new-window;new-private-window;profile-manager-window; + +[Desktop Action new-window] +Name=Open a New Window +Name[ach]=Dirica manyen +Name[af]=Nuwe venster +Name[an]=Nueva finestra +Name[ar]=نافذة جديدة +Name[as]=নতুন উইন্ডো +Name[ast]=Ventana nueva +Name[az]=Yeni Pəncərə +Name[be]=Новае акно +Name[bg]=Нов прозорец +Name[bn_BD]=নতুন উইন্ডো (N) +Name[bn_IN]=নতুন উইন্ডো +Name[br]=Prenestr nevez +Name[brx]=गोदान उइन्ड'(N) +Name[bs]=Novi prozor +Name[ca]=Finestra nova +Name[cak]=K'ak'a' tzuwäch +Name[cs]=Nové okno +Name[cy]=Ffenestr Newydd +Name[da]=Nyt vindue +Name[de]=Neues Fenster +Name[dsb]=Nowe wokno +Name[el]=Νέο παράθυρο +Name[en_GB]=New Window +Name[en_US]=New Window +Name[en_ZA]=New Window +Name[eo]=Nova fenestro +Name[es_AR]=Nueva ventana +Name[es_CL]=Nueva ventana +Name[es_ES]=Nueva ventana +Name[es_MX]=Nueva ventana +Name[et]=Uus aken +Name[eu]=Leiho berria +Name[fa]=پنجره جدید +Name[ff]=Henorde Hesere +Name[fi]=Uusi ikkuna +Name[fr]=Nouvelle fenêtre +Name[fy_NL]=Nij finster +Name[ga_IE]=Fuinneog Nua +Name[gd]=Uinneag ùr +Name[gl]=Nova xanela +Name[gn]=Ovetã pyahu +Name[gu_IN]=નવી વિન્ડો +Name[he]=חלון חדש +Name[hi_IN]=नया विंडो +Name[hr]=Novi prozor +Name[hsb]=Nowe wokno +Name[hu]=Új ablak +Name[hy_AM]=Նոր Պատուհան +Name[id]=Jendela Baru +Name[is]=Nýr gluggi +Name[it]=Nuova finestra +Name[ja]=新しいウィンドウ +Name[ja_JP-mac]=新規ウインドウ +Name[ka]=ახალი ფანჯარა +Name[kk]=Жаңа терезе +Name[km]=បង្អួចថ្មី +Name[kn]=ಹೊಸ ಕಿಟಕಿ +Name[ko]=새 창 +Name[kok]=नवें जनेल +Name[ks]=نئئ وِنڈو +Name[lij]=Neuvo barcon +Name[lo]=ຫນ້າຕ່າງໃຫມ່ +Name[lt]=Naujas langas +Name[ltg]=Jauns lūgs +Name[lv]=Jauns logs +Name[mai]=नव विंडो +Name[mk]=Нов прозорец +Name[ml]=പുതിയ ജാലകം +Name[mr]=नवीन पटल +Name[ms]=Tetingkap Baru +Name[my]=ဝင်းဒိုးအသစ် +Name[nb_NO]=Nytt vindu +Name[ne_NP]=नयाँ सञ्झ्याल +Name[nl]=Nieuw venster +Name[nn_NO]=Nytt vindauge +Name[or]=ନୂତନ ୱିଣ୍ଡୋ +Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ +Name[pl]=Nowe okno +Name[pt_BR]=Nova janela +Name[pt_PT]=Nova janela +Name[rm]=Nova fanestra +Name[ro]=Fereastră nouă +Name[ru]=Новое окно +Name[sat]=नावा विंडो (N) +Name[si]=නව කවුළුවක් +Name[sk]=Nové okno +Name[sl]=Novo okno +Name[son]=Zanfun taaga +Name[sq]=Dritare e Re +Name[sr]=Нови прозор +Name[sv_SE]=Nytt fönster +Name[ta]=புதிய சாளரம் +Name[te]=కొత్త విండో +Name[th]=หน้าต่างใหม่ +Name[tr]=Yeni pencere +Name[tsz]=Eraatarakua jimpani +Name[uk]=Нове вікно +Name[ur]=نیا دریچہ +Name[uz]=Yangi oyna +Name[vi]=Cửa sổ mới +Name[wo]=Palanteer bu bees +Name[xh]=Ifestile entsha +Name[zh_CN]=新建窗口 +Name[zh_TW]=開新視窗 +Exec=@EXEC@ --new-window %u + +[Desktop Action new-private-window] +Name=Open a New Private Window +Name[ach]=Dirica manyen me mung +Name[af]=Nuwe privaatvenster +Name[an]=Nueva finestra privada +Name[ar]=نافذة خاصة جديدة +Name[as]=নতুন ব্যক্তিগত উইন্ডো +Name[ast]=Ventana privada nueva +Name[az]=Yeni Məxfi Pəncərə +Name[be]=Новае акно адасаблення +Name[bg]=Нов прозорец за поверително сърфиране +Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো +Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো +Name[br]=Prenestr merdeiñ prevez nevez +Name[brx]=गोदान प्राइभेट उइन्ड' +Name[bs]=Novi privatni prozor +Name[ca]=Finestra privada nova +Name[cak]=K'ak'a' ichinan tzuwäch +Name[cs]=Nové anonymní okno +Name[cy]=Ffenestr Breifat Newydd +Name[da]=Nyt privat vindue +Name[de]=Neues privates Fenster +Name[dsb]=Nowe priwatne wokno +Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης +Name[en_GB]=New Private Window +Name[en_US]=New Private Window +Name[en_ZA]=New Private Window +Name[eo]=Nova privata fenestro +Name[es_AR]=Nueva ventana privada +Name[es_CL]=Nueva ventana privada +Name[es_ES]=Nueva ventana privada +Name[es_MX]=Nueva ventana privada +Name[et]=Uus privaatne aken +Name[eu]=Leiho pribatu berria +Name[fa]=پنجره ناشناس جدید +Name[ff]=Henorde Suturo Hesere +Name[fi]=Uusi yksityinen ikkuna +Name[fr]=Nouvelle fenêtre de navigation privée +Name[fy_NL]=Nij priveefinster +Name[ga_IE]=Fuinneog Nua Phríobháideach +Name[gd]=Uinneag phrìobhaideach ùr +Name[gl]=Nova xanela privada +Name[gn]=Ovetã ñemi pyahu +Name[gu_IN]=નવી ખાનગી વિન્ડો +Name[he]=חלון פרטי חדש +Name[hi_IN]=नयी निजी विंडो +Name[hr]=Novi privatni prozor +Name[hsb]=Nowe priwatne wokno +Name[hu]=Új privát ablak +Name[hy_AM]=Սկսել Գաղտնի դիտարկում +Name[id]=Jendela Mode Pribadi Baru +Name[is]=Nýr huliðsgluggi +Name[it]=Nuova finestra anonima +Name[ja]=新しいプライベートウィンドウ +Name[ja_JP-mac]=新規プライベートウインドウ +Name[ka]=ახალი პირადი ფანჯარა +Name[kk]=Жаңа жекелік терезе +Name[km]=បង្អួចឯកជនថ្មី +Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ +Name[ko]=새 사생활 보호 모드 +Name[kok]=नवो खाजगी विंडो +Name[ks]=نْو پرایوٹ وینڈو& +Name[lij]=Neuvo barcon privou +Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່ +Name[lt]=Naujas privataus naršymo langas +Name[ltg]=Jauns privatais lūgs +Name[lv]=Jauns privātais logs +Name[mai]=नया निज विंडो (W) +Name[mk]=Нов приватен прозорец +Name[ml]=പുതിയ സ്വകാര്യ ജാലകം +Name[mr]=नवीन वैयक्तिक पटल +Name[ms]=Tetingkap Persendirian Baharu +Name[my]=New Private Window +Name[nb_NO]=Nytt privat vindu +Name[ne_NP]=नयाँ निजी सञ्झ्याल +Name[nl]=Nieuw privévenster +Name[nn_NO]=Nytt privat vindauge +Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ +Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ +Name[pl]=Nowe okno prywatne +Name[pt_BR]=Nova janela privativa +Name[pt_PT]=Nova janela privada +Name[rm]=Nova fanestra privata +Name[ro]=Fereastră privată nouă +Name[ru]=Новое приватное окно +Name[sat]=नावा निजेराक् विंडो (W ) +Name[si]=නව පුද්ගලික කවුළුව (W) +Name[sk]=Nové okno v režime Súkromné prehliadanie +Name[sl]=Novo zasebno okno +Name[son]=Sutura zanfun taaga +Name[sq]=Dritare e Re Private +Name[sr]=Нови приватан прозор +Name[sv_SE]=Nytt privat fönster +Name[ta]=புதிய தனிப்பட்ட சாளரம் +Name[te]=కొత్త ఆంతరంగిక విండో +Name[th]=หน้าต่างส่วนตัวใหม่ +Name[tr]=Yeni gizli pencere +Name[tsz]=Juchiiti eraatarakua jimpani +Name[uk]=Приватне вікно +Name[ur]=نیا نجی دریچہ +Name[uz]=Yangi maxfiy oyna +Name[vi]=Cửa sổ riêng tư mới +Name[wo]=Panlanteeru biir bu bees +Name[xh]=Ifestile yangasese entsha +Name[zh_CN]=新建隐私浏览窗口 +Name[zh_TW]=新增隱私視窗 +Exec=@EXEC@ --private-window %u + +[Desktop Action profile-manager-window] +Name=Open the Profile Manager +Name[de]=Profilverwaltung öffnen +Name[cs]=Správa profilů +Exec=@EXEC@ --ProfileManager diff --git a/www-client/waterfox-g/files/icon/waterfox-symbolic.svg b/www-client/waterfox-g/files/icon/waterfox-symbolic.svg new file mode 100644 index 0000000000000000000000000000000000000000..33954cf2d9299aebcc5a7199f3f19e9094ceaa94 --- /dev/null +++ b/www-client/waterfox-g/files/icon/waterfox-symbolic.svg @@ -0,0 +1,143 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:version="1.0 (4035a4fb49, 2020-05-01)" + sodipodi:docname="waterfox-symbolic.svg" + id="svg39" + version="1.1" + viewBox="0 0 84.259529 79.823181" + height="16" + width="16"> + <metadata + id="metadata45"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Gnome Symbolic Icon Theme</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs43" /> + <sodipodi:namedview + fit-margin-bottom="0" + fit-margin-right="0" + fit-margin-left="0" + fit-margin-top="0" + inkscape:current-layer="svg39" + inkscape:window-maximized="0" + inkscape:window-y="42" + inkscape:window-x="1280" + inkscape:cy="10.703211" + inkscape:cx="138.84143" + inkscape:zoom="2.6860465" + showgrid="false" + id="namedview41" + inkscape:window-height="1158" + inkscape:window-width="1920" + inkscape:pageshadow="2" + inkscape:pageopacity="0" + guidetolerance="10" + gridtolerance="10" + objecttolerance="10" + borderopacity="1" + bordercolor="#666666" + pagecolor="#ffffff" /> + <title + id="title2">Gnome Symbolic Icon Theme</title> + <g + transform="translate(-0.02437175,-0.01323877)" + id="logo"> + <g + fill-rule="nonzero" + fill="#1a65e8" + transform="translate(56.737589,20.047281)" + id="Group"> + <path + id="Path" + d="m 5.3541371,38.903073 v 0 C 0.81891253,36.894563 -1.2293144,31.589598 0.78108747,27.054373 L 10.352719,5.4600473 c 2.00851,-4.53522461 7.313475,-6.5834516 11.848699,-4.57494092 v 0 C 26.736643,2.893617 28.782979,8.1985816 26.774468,12.733806 l -9.571631,21.594326 c -2.010402,4.535225 -7.3134753,6.583452 -11.8486999,4.574941 z" /> + </g> + <g + fill="#04cafe" + transform="translate(36.312057,28.368794)" + id="g13"> + <path + id="path11" + d="m 31.922459,38.904964 c -0.707329,1.626478 -2.632624,3.890308 -4.750828,4.610875 -4.179669,1.804256 -9.130969,0.183452 -11.394799,-3.87896 L 1.1687943,13.41844 C -1.2444444,9.0855792 0.31016549,3.6160757 4.643026,1.2009456 v 0 c 4.3328605,-2.41513 9.802364,-0.85862881 12.215603,3.4742317 L 28.427423,25.441135 c 1.032624,1.471395 2.740426,2.432151 4.673286,2.432151 2.235461,0 4.168322,-1.284161 5.106383,-3.156501 z" /> + </g> + <g + fill-rule="nonzero" + fill="#0484e8" + transform="translate(0,20.047281)" + id="g17"> + <g + id="SVGID_12_-link"> + <path + id="SVGID_12_" + d="m 22.216548,38.897399 v 0 C 26.751773,36.888889 28.8,31.583924 26.789598,27.0487 L 17.217967,5.4543735 C 15.209456,0.91914894 9.9044917,-1.129078 5.3692671,0.87943262 v 0 C 0.83404255,2.8879433 -1.2122931,8.1929078 0.79621749,12.728132 L 10.367849,34.322459 c 2.00851,4.535224 7.313475,6.583451 11.848699,4.57494 z" /> + </g> + </g> + <g + fill="#59e6fe" + transform="translate(55.224586)" + id="SVGID_15_-link"> + <path + id="SVGID_15_" + d="m 4.172104,0.01323877 c 2.2165485,0 4.0113475,1.79669033 4.0113475,4.01134753 0,2.2146572 -1.7966903,4.0113475 -4.0113475,4.0113475 -2.2165484,0 -4.0113475,-1.7966903 -4.0113475,-4.0113475 0,-2.2146572 1.7966903,-4.01134753 4.0113475,-4.01134753 z" /> + </g> + <path + fill="#2ce7ff" + id="path21" + d="M 33.155556,22.123877 C 32.071868,21.728605 29.426005,11.867612 36.54279,5.5413712 c 10.243026,-9.1044918 21.051536,4.1229314 6.479432,9.8080378 -9.696454,3.780615 -8.782979,7.16974 -9.866666,6.774468 z" /> + <g + transform="translate(9.834515,16.264775)" + id="g27"> + <path + fill="#06eeff" + id="path23" + d="m 34.893617,29.52435 c -3.434515,6.316785 -12.480378,22.335697 -12.480378,22.335697 -1.932861,3.47045 -5.825059,5.157447 -9.52435,4.453901 0,0.0019 0,0.0057 0.0019,0.0076 C 10.078487,55.797636 7.5650118,53.942317 6.3186761,51.128132 L 0.01513002,36.938062 c 0.93427896,1.878014 2.88605198,3.158392 5.12529548,3.158392 2.243026,0 4.1834516,-1.293617 5.1158395,-3.177305 0.0076,-0.01702 0.01702,-0.0208 0.02837,-0.01135 C 14.237352,30.017967 20.417967,19.256738 23.156501,14.577778 31.623641,0.10023641 49.291726,-3.3531915 53.741844,3.9281324 56.295035,8.1078014 47.0487,7.1659574 34.893617,29.52435 Z" /> + <path + fill="#c2fffe" + id="path25" + d="m 34.965485,29.46383 c -3.434516,6.316785 -12.480379,22.335697 -12.480379,22.335697 -1.93286,3.470449 -5.825059,5.157447 -9.524349,4.453901 0,0.0019 0,0.0057 0.0019,0.0076 C 10.150355,55.737116 7.6368794,53.881797 6.3905437,51.067612 L 0.10023641,36.868085 c 0.93427899,1.878014 2.87092199,3.167849 5.11016549,3.167849 2.243026,0 4.1834515,-1.293617 5.1158391,-3.177305 0.0076,-0.01702 0.01702,-0.0208 0.02837,-0.01135 C 14.307329,29.957447 20.487943,19.196217 23.226478,14.517258 31.693617,0.03971631 49.361702,-3.4156028 53.81182,3.8676123 56.366903,8.0472813 47.122459,7.1054373 34.965485,29.46383 Z" /> + </g> + <g + fill="#03e7fd" + transform="translate(20.803783,16.832151)" + id="SVGID_21_-link"> + <path + style="display:inline" + id="SVGID_21_" + d="M 5.1120567,12.760284 C 6.086052,13.113948 4.5768322,9.898818 6.9938534,5.2841608 9.56974,0.36879433 2.6212766,-2.5002364 0.45579196,3.0089835 -0.82269503,6.265721 1.0080378,11.266194 5.1120567,12.760284 Z" /> + </g> + <g + transform="translate(10.780142,1.134752)" + opacity="0.45" + id="g34"> + <g + inkscape:label="Bitmap" + id="Bitmap" + opacity="0.8"> + <image + inkscape:label="image31" + style="display:inline" + id="image31" + xlink:href="data:image/png;base64,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" + height="78.615601" + width="64.317734" + y="0.086070925" + x="0.12278014" /> + </g> + </g> + </g> +</svg> diff --git a/www-client/waterfox-g/files/waterfox-g-fix_langpack_id.patch b/www-client/waterfox-g/files/waterfox-g-fix_langpack_id.patch new file mode 100644 index 0000000000000000000000000000000000000000..9c031f08bdd297554c5da468aa2cb3adc20c0694 --- /dev/null +++ b/www-client/waterfox-g/files/waterfox-g-fix_langpack_id.patch @@ -0,0 +1,20 @@ +https://build.opensuse.org/package/view_file/home:hawkeye116477:waterfox/waterfox-g4-kpe/_service:extract_file:fix-langpack-id.patch?expand=1 + +diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in +index 496379c4306f..96b056bd6813 100644 +--- a/browser/locales/Makefile.in ++++ b/browser/locales/Makefile.in +@@ -21,9 +21,9 @@ PWD := $(CURDIR) + ZIP_IN ?= $(ABS_DIST)/$(PACKAGE) + + ifdef MOZ_DEV_EDITION +-MOZ_LANGPACK_EID=langpack-$(AB_CD)@devedition.mozilla.org ++MOZ_LANGPACK_EID=langpack-$(AB_CD)@l10n.waterfox.net + else +-MOZ_LANGPACK_EID=langpack-$(AB_CD)@firefox.mozilla.org ++MOZ_LANGPACK_EID=langpack-$(AB_CD)@l10n.waterfox.net + endif + # For Nightly, we know where to get the builds from to do local repacks + ifdef NIGHTLY_BUILD +-- +2.33.0 diff --git a/www-client/waterfox-g/files/waterfox-g.sh b/www-client/waterfox-g/files/waterfox-g.sh new file mode 100644 index 0000000000000000000000000000000000000000..befa43e2ec8a646ebfd0df1d4fe6b49a43aba768 --- /dev/null +++ b/www-client/waterfox-g/files/waterfox-g.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +## +## Usage: +## +## $ waterfox-g5 +## +## This script is meant to run Mozilla Firefox in Gentoo. + +cmdname=$(basename "$0") + +## +## Variables +## +MOZ_ARCH=$(uname -m) +case ${MOZ_ARCH} in + x86_64|s390x|sparc64) + MOZ_LIB_DIR="@PREFIX@/lib64" + SECONDARY_LIB_DIR="@PREFIX@/lib" + ;; + *) + MOZ_LIB_DIR="@PREFIX@/lib" + SECONDARY_LIB_DIR="@PREFIX@/lib64" + ;; +esac + +MOZ_FIREFOX_FILE="%WATERFOX_NAME%" + +if [[ ! -r ${MOZ_LIB_DIR}/${MOZ_FIREFOX_FILE}/${MOZ_FIREFOX_FILE} ]]; then + if [[ ! -r ${SECONDARY_LIB_DIR}/${MOZ_FIREFOX_FILE}/${MOZ_FIREFOX_FILE} ]]; then + echo "Error: ${MOZ_LIB_DIR}/${MOZ_FIREFOX_FILE}/${MOZ_FIREFOX_FILE} not found" >&2 + if [[ -d ${SECONDARY_LIB_DIR} ]]; then + echo " ${SECONDARY_LIB_DIR}/${MOZ_FIREFOX_FILE}/${MOZ_FIREFOX_FILE} not found" >&2 + fi + exit 1 + fi + MOZ_LIB_DIR="${SECONDARY_LIB_DIR}" +fi +MOZILLA_FIVE_HOME="${MOZ_LIB_DIR}/${MOZ_FIREFOX_FILE}" +MOZ_EXTENSIONS_PROFILE_DIR="${HOME}/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" +MOZ_PROGRAM="${MOZILLA_FIVE_HOME}/${MOZ_FIREFOX_FILE}" + +## +## Enable Wayland backend? +## +if @DEFAULT_WAYLAND@ && [[ -z ${MOZ_DISABLE_WAYLAND} ]]; then + if [[ -n "${WAYLAND_DISPLAY}" ]]; then + export MOZ_ENABLE_WAYLAND=1 + fi +fi + +## +## Use D-Bus remote exclusively when there's Wayland display. +## +if [[ -n "${WAYLAND_DISPLAY}" ]]; then + export MOZ_DBUS_REMOTE=1 +fi + +## +## Make sure that we set the plugin path +## +MOZ_PLUGIN_DIR="plugins" + +if [[ -n "${MOZ_PLUGIN_PATH}" ]]; then + MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR} +else + MOZ_PLUGIN_PATH=${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR} +fi + +if [[ -d "${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}" ]]; then + MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR} +fi + +export MOZ_PLUGIN_PATH + +## +## Set MOZ_APP_LAUNCHER for gnome-session +## +export MOZ_APP_LAUNCHER="@PREFIX@/bin/${cmdname}" + +## +## Disable the GNOME crash dialog, Mozilla has it's own +## +if [[ "${XDG_CURRENT_DESKTOP}" == "GNOME" ]]; then + GNOME_DISABLE_CRASH_DIALOG=1 + export GNOME_DISABLE_CRASH_DIALOG +fi + +## +## Enable Xinput2 (#617344) +## + +# respect user settings +MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2:-auto} + +if [[ ${MOZ_USE_XINPUT2} == auto && -n ${WAYLAND_DISPLAY} ]]; then + # enabling XINPUT2 should be safe for all wayland users + MOZ_USE_XINPUT2=1 +elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == KDE ]]; then + # XINPUT2 is known to cause problems for KWin users + MOZ_USE_XINPUT2=0 +elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == LXQT ]]; then + # LXQt uses KWin + MOZ_USE_XINPUT2=0 +elif [[ ${MOZ_USE_XINPUT2} == auto ]]; then + # should work on Mate, Xfce, FluxBox, OpenBox and all the others ... + MOZ_USE_XINPUT2=1 +fi + +[[ ${MOZ_USE_XINPUT2} != 0 ]] && export MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2} + +# Don't throw "old profile" dialog box. +export MOZ_ALLOW_DOWNGRADE=1 + +# Run the browser +exec ${MOZ_PROGRAM} "${@}" diff --git a/www-client/waterfox-g/files/waterfox-g6-fix-gtk-icons.patch b/www-client/waterfox-g/files/waterfox-g6-fix-gtk-icons.patch new file mode 100644 index 0000000000000000000000000000000000000000..d4220f258c6bc946a982ffdd190ade3b904f8842 --- /dev/null +++ b/www-client/waterfox-g/files/waterfox-g6-fix-gtk-icons.patch @@ -0,0 +1,19 @@ +--- a/browser/installer/package-manifest.in ++++ b/browser/installer/package-manifest.in +@@ -236,16 +236,6 @@ + @RESPATH@/chrome/pdfjs/* + @RESPATH@/chrome/toolkit@JAREXT@ + @RESPATH@/chrome/toolkit.manifest +-#ifdef MOZ_GTK +-@RESPATH@/browser/chrome/icons/default/default16.png +-@RESPATH@/browser/chrome/icons/default/default22.png +-@RESPATH@/browser/chrome/icons/default/default24.png +-@RESPATH@/browser/chrome/icons/default/default32.png +-@RESPATH@/browser/chrome/icons/default/default48.png +-@RESPATH@/browser/chrome/icons/default/default64.png +-@RESPATH@/browser/chrome/icons/default/default128.png +-@RESPATH@/browser/chrome/icons/default/default256.png +-#endif + @RESPATH@/browser/features/* + + ; [DevTools Startup Files] diff --git a/www-client/waterfox-g/files/waterfox-g6.0b1-URLbar_unfuck.patch b/www-client/waterfox-g/files/waterfox-g6.0b1-URLbar_unfuck.patch new file mode 100644 index 0000000000000000000000000000000000000000..91075b4c798498634f870a25f56a312889b73de4 --- /dev/null +++ b/www-client/waterfox-g/files/waterfox-g6.0b1-URLbar_unfuck.patch @@ -0,0 +1,589 @@ +https://bugzilla.mozilla.org/show_bug.cgi?id=333714 +https://bugzilla.mozilla.org/show_bug.cgi?id=1621570 + +So this has been fucked up for Linux users on purpose. Let's hope someone will +do to Marco Bonardo what he deserves for this. + +--- Waterfox-G6.0b1/browser/app/profile/firefox.js ++++ Waterfox-G6.0b1/browser/app/profile/firefox.js +@@ -336,16 +336,27 @@ + #ifdef XP_MACOSX + pref("browser.fullscreen.autohide", false); + #else + pref("browser.fullscreen.autohide", true); + #endif + + pref("browser.overlink-delay", 80); + ++#ifdef UNIX_BUT_NOT_MAC ++ pref("browser.urlbar.clickSelectsAll", false); ++#else ++ pref("browser.urlbar.clickSelectsAll", true); ++#endif ++#ifdef UNIX_BUT_NOT_MAC ++ pref("browser.urlbar.doubleClickSelectsAll", true); ++#else ++ pref("browser.urlbar.doubleClickSelectsAll", false); ++#endif ++ + pref("browser.theme.colorway-closet", true); + + // Whether expired built-in colorways themes that are active or retained + // should be allowed to check for updates and be updated to an AMO hosted + // theme with the same id (as part of preparing to remove from mozilla-central + // all the expired built-in colorways themes, after existing users have been + // migrated to colorways themes hosted on AMO). + pref("browser.theme.colorway-migration", true); +--- Waterfox-G6.0b1/browser/components/search/content/searchbar.js ++++ Waterfox-G6.0b1/browser/components/search/content/searchbar.js +@@ -446,25 +446,26 @@ + this.destroy(); + while (this.firstChild) { + this.firstChild.remove(); + } + } + + /** + * Determines if we should select all the text in the searchbar based on the +- * searchbar state, and whether the selection is empty. ++ * clickSelectsAll pref, searchbar state, and whether the selection is empty. + */ + _maybeSelectAll() { + if ( + !this._preventClickSelectsAll && ++ UrlbarPrefs.get("clickSelectsAll") && + document.activeElement == this._textbox && + this._textbox.selectionStart == this._textbox.selectionEnd + ) { +- this.select(); ++ this._textbox.editor.selectAll(); + } + } + + _setupEventListeners() { + this.addEventListener("click", event => { + this._maybeSelectAll(); + }); + +@@ -559,16 +560,21 @@ + // Hide popup when icon is clicked while popup is open + if (isIconClick && this.textbox.popup.popupOpen) { + this.textbox.popup.closePopup(); + } else if (isIconClick || this._textbox.value) { + // Open the suggestions whenever clicking on the search icon or if there + // is text in the textbox. + this.openSuggestionsPanel(true); + } ++ ++ if (event.detail == 2 && UrlbarPrefs.get("doubleClickSelectsAll")) { ++ this._textbox.editor.selectAll(); ++ event.preventDefault(); ++ } + }); + } + + _setupTextboxEventListeners() { + this.textbox.addEventListener("input", event => { + this.textbox.popup.removeAttribute("showonlysettings"); + }); + +--- Waterfox-G6.0b1/browser/components/urlbar/tests/browser/browser_doubleClickSelectsAll.js ++++ Waterfox-G6.0b1/browser/components/urlbar/tests/browser/browser_doubleClickSelectsAll.js +@@ -0,0 +1,45 @@ ++/* This Source Code Form is subject to the terms of the Mozilla Public ++ * License, v. 2.0. If a copy of the MPL was not distributed with this ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ ++ ++function doubleClick(target) { ++ let promise = BrowserTestUtils.waitForEvent(target, "dblclick"); ++ EventUtils.synthesizeMouseAtCenter( ++ target, ++ { clickCount: 1 }, ++ target.ownerGlobal ++ ); ++ EventUtils.synthesizeMouseAtCenter( ++ target, ++ { clickCount: 2 }, ++ target.ownerGlobal ++ ); ++ return promise; ++} ++ ++add_task(async function() { ++ await SpecialPowers.pushPrefEnv({ ++ set: [ ++ ["browser.urlbar.clickSelectsAll", false], ++ ["browser.urlbar.doubleClickSelectsAll", true], ++ ], ++ }); ++ ++ let url = "about:mozilla"; ++ let win = await BrowserTestUtils.openNewBrowserWindow(); ++ await BrowserTestUtils.openNewForegroundTab({ gBrowser: win.gBrowser, url }); ++ ++ await doubleClick(win.gURLBar.inputField); ++ is( ++ win.gURLBar.selectionStart, ++ 0, ++ "Selection should start at the beginning of the urlbar value" ++ ); ++ is( ++ win.gURLBar.selectionEnd, ++ url.length, ++ "Selection should end at the end of the urlbar value" ++ ); ++ ++ win.close(); ++}); +--- Waterfox-G6.0b1/browser/components/urlbar/tests/browser/browser.ini ++++ Waterfox-G6.0b1/browser/components/urlbar/tests/browser/browser.ini +@@ -110,16 +110,17 @@ + [browser_customizeMode.js] + [browser_cutting.js] + [browser_decode.js] + [browser_delete.js] + [browser_deleteAllText.js] + [browser_display_selectedAction_Extensions.js] + [browser_dns_first_for_single_words.js] + skip-if = verify && os == 'linux' # Bug 1581635 ++[browser_doubleClickSelectsAll.js] + [browser_downArrowKeySearch.js] + https_first_disabled = true + [browser_dragdropURL.js] + [browser_dynamicResults.js] + https_first_disabled = true + support-files = + dynamicResult0.css + dynamicResult1.css +--- Waterfox-G6.0b1/browser/components/urlbar/tests/browser/browser_retainedResultsOnFocus.js ++++ Waterfox-G6.0b1/browser/components/urlbar/tests/browser/browser_retainedResultsOnFocus.js +@@ -66,17 +66,20 @@ + info("Focus with the mouse."); + promiseState = checkPanelStatePersists(win, false); + EventUtils.synthesizeMouseAtCenter(win.gURLBar.inputField, {}, win); + await promiseState; + } + + add_setup(async function () { + await SpecialPowers.pushPrefEnv({ +- set: [["browser.urlbar.autoFill", true]], ++ set: [ ++ ["browser.urlbar.autoFill", true], ++ ["browser.urlbar.clickSelectsAll", true] ++ ], + }); + // Add some history for the empty panel and autofill. + await PlacesTestUtils.addVisits([ + { + uri: "https://example.com/", + transition: PlacesUtils.history.TRANSITIONS.TYPED, + }, + { +--- Waterfox-G6.0b1/browser/components/urlbar/tests/browser/browser_urlbar_selection.js ++++ Waterfox-G6.0b1/browser/components/urlbar/tests/browser/browser_urlbar_selection.js +@@ -57,103 +57,98 @@ + toX, + toY, + { type: "mouseup" }, + target.ownerGlobal + ); + return promise; + } + +-function resetPrimarySelection(val = "") { +- if ( +- Services.clipboard.isClipboardTypeSupported( +- Services.clipboard.kSelectionClipboard +- ) +- ) { +- // Reset the clipboard. +- clipboardHelper.copyStringToClipboard( +- val, +- Services.clipboard.kSelectionClipboard +- ); +- } +-} +- +-function checkPrimarySelection(expectedVal = "") { +- if ( +- Services.clipboard.isClipboardTypeSupported( +- Services.clipboard.kSelectionClipboard +- ) +- ) { +- let primaryAsText = SpecialPowers.getClipboardData( +- "text/plain", +- SpecialPowers.Ci.nsIClipboard.kSelectionClipboard +- ); +- Assert.equal(primaryAsText, expectedVal); +- } +-} +- + add_setup(async function () { ++ SpecialPowers.pushPrefEnv({ ++ set: [["browser.urlbar.clickSelectsAll", true]], ++ }); ++ + // On macOS, we must "warm up" the Urlbar to get the first test to pass. + gURLBar.value = ""; + await click(gURLBar.inputField); + gURLBar.blur(); + }); + + add_task(async function leftClickSelectsAll() { +- resetPrimarySelection(); + gURLBar.value = exampleSearch; + await click(gURLBar.inputField); + Assert.equal( + gURLBar.selectionStart, + 0, + "The entire search term should be selected." + ); + Assert.equal( + gURLBar.selectionEnd, + exampleSearch.length, + "The entire search term should be selected." + ); + gURLBar.blur(); +- checkPrimarySelection(); + }); + + add_task(async function leftClickSelectsUrl() { +- resetPrimarySelection(); + gURLBar.value = exampleUrl; + await click(gURLBar.inputField); + Assert.equal(gURLBar.selectionStart, 0, "The entire url should be selected."); + Assert.equal( + gURLBar.selectionEnd, + exampleUrl.length, + "The entire url should be selected." + ); + gURLBar.blur(); +- checkPrimarySelection(); ++}); ++ ++// Test to ensure that the doubleClickSelectsAll pref does not interfere with ++// single click behaviour (Double CSA itself is tested in ++// urlbar/tests/browser_doubleClickSelectsAll.js). ++add_task(async function bothPrefsEnabled() { ++ Services.prefs.setBoolPref("browser.urlbar.doubleClickSelectsAll", true); ++ gURLBar.value = exampleSearch; ++ await click(gURLBar.inputField); ++ Assert.equal( ++ gURLBar.selectionStart, ++ 0, ++ "The entire search term should be selected." ++ ); ++ Assert.equal( ++ gURLBar.selectionEnd, ++ exampleSearch.length, ++ "The entire search term should be selected." ++ ); ++ gURLBar.blur(); ++ Services.prefs.clearUserPref("browser.urlbar.doubleClickSelectsAll"); + }); + + add_task(async function rightClickSelectsAll() { ++ // The text should be selected even when the pref is disabled. ++ await SpecialPowers.pushPrefEnv({ ++ set: [["browser.urlbar.clickSelectsAll", false]], ++ }); ++ ++ + gURLBar.inputField.focus(); + gURLBar.value = exampleUrl; + + // Remove the selection so the focus() call above doesn't influence the test. + gURLBar.selectionStart = gURLBar.selectionEnd = 0; + +- resetPrimarySelection(); +- + await openContextMenu(gURLBar.inputField); + + Assert.equal(gURLBar.selectionStart, 0, "The entire URL should be selected."); + Assert.equal( + gURLBar.selectionEnd, + exampleUrl.length, + "The entire URL should be selected." + ); + +- checkPrimarySelection(); +- + let contextMenu = gURLBar.querySelector("moz-input-box").menupopup; + + // While the context menu is open, test the "Select All" button. + let contextMenuItem = contextMenu.firstElementChild; + while ( + contextMenuItem.nextElementSibling && + contextMenuItem.getAttribute("cmd") != "cmd_selectAll" + ) { +@@ -181,106 +176,90 @@ + Assert.equal( + gURLBar.selectionEnd, + exampleUrl.length, + "The entire URL should be selected after clicking selectAll button." + ); + + gURLBar.querySelector("moz-input-box").menupopup.hidePopup(); + gURLBar.blur(); +- checkPrimarySelection(gURLBar.value); + await SpecialPowers.popPrefEnv(); + }); + + add_task(async function contextMenuDoesNotCancelSelection() { + gURLBar.inputField.focus(); + gURLBar.value = exampleUrl; + + gURLBar.selectionStart = 3; + gURLBar.selectionEnd = 7; + +- resetPrimarySelection(); +- + await openContextMenu(gURLBar.inputField); + + Assert.equal( + gURLBar.selectionStart, + 3, + "The selection should not have changed." + ); + Assert.equal( + gURLBar.selectionEnd, + 7, + "The selection should not have changed." + ); + + gURLBar.querySelector("moz-input-box").menupopup.hidePopup(); + gURLBar.blur(); +- checkPrimarySelection(); + }); + + add_task(async function dragSelect() { +- resetPrimarySelection(); + gURLBar.value = exampleSearch.repeat(10); + // Drags from an artibrary offset of 30 to test for bug 1562145: that the + // selection does not start at the beginning. + await drag(gURLBar.inputField, 30, 0, 60, 0); + Assert.greater( + gURLBar.selectionStart, + 0, + "Selection should not start at the beginning of the string." + ); + +- let selectedVal = gURLBar.value.substring( +- gURLBar.selectionStart, +- gURLBar.selectionEnd +- ); + gURLBar.blur(); +- checkPrimarySelection(selectedVal); + }); + + /** + * Testing for bug 1571018: that the entire Urlbar isn't selected when the + * Urlbar is dragged following a selectsAll event then a blur. + */ + add_task(async function dragAfterSelectAll() { +- resetPrimarySelection(); + gURLBar.value = exampleSearch.repeat(10); + await click(gURLBar.inputField); + Assert.equal( + gURLBar.selectionStart, + 0, + "The entire search term should be selected." + ); + Assert.equal( + gURLBar.selectionEnd, + exampleSearch.repeat(10).length, + "The entire search term should be selected." + ); + + gURLBar.blur(); +- checkPrimarySelection(); + + // The offset of 30 is arbitrary. + await drag(gURLBar.inputField, 30, 0, 60, 0); + + Assert.notEqual( + gURLBar.selectionStart, + 0, + "Only part of the search term should be selected." + ); + Assert.notEqual( + gURLBar.selectionEnd, + exampleSearch.repeat(10).length, + "Only part of the search term should be selected." + ); +- +- checkPrimarySelection( +- gURLBar.value.substring(gURLBar.selectionStart, gURLBar.selectionEnd) +- ); + }); + + /** + * Testing for bug 1571018: that the entire Urlbar is selected when the Urlbar + * is refocused following a partial text selection then a blur. + */ + add_task(async function selectAllAfterDrag() { + gURLBar.value = exampleSearch; +--- Waterfox-G6.0b1/browser/components/urlbar/UrlbarInput.sys.mjs ++++ Waterfox-G6.0b1/browser/components/urlbar/UrlbarInput.sys.mjs +@@ -3161,26 +3161,29 @@ + if (this.getAttribute("pageproxystate") == "valid") { + this.value = ""; + this.setPageProxyState("invalid", true); + } + } + + /** + * Determines if we should select all the text in the Urlbar based on the +- * Urlbar state, and whether the selection is empty. ++ * clickSelectsAll pref, Urlbar state, and whether the selection is empty. ++ * @param {boolean} [ignoreClickSelectsAllPref] ++ * If true, the browser.urlbar.clickSelectsAll pref will be ignored. + */ +- _maybeSelectAll() { ++ _maybeSelectAll(ignoreClickSelectsAllPref = false) { + if ( + !this._preventClickSelectsAll && ++ (ignoreClickSelectsAllPref || UrlbarPrefs.get("clickSelectsAll")) && + this._compositionState != lazy.UrlbarUtils.COMPOSITION.COMPOSING && + this.document.activeElement == this.inputField && + this.inputField.selectionStart == this.inputField.selectionEnd + ) { +- this.select(); ++ this.editor.selectAll(); + } + } + + // Event handlers below. + + _on_command(event) { + // Something is executing a command, likely causing a focus change. This + // should not be recorded as an abandonment. If the user is selecting a +@@ -3299,17 +3302,19 @@ + _on_contextmenu(event) { + this.addSearchEngineHelper.refreshContextMenu(event); + + // Context menu opened via keyboard shortcut. + if (!event.button) { + return; + } + +- this._maybeSelectAll(); ++ // If the user right clicks, we select all regardless of the value of ++ // the browser.urlbar.clickSelectsAll pref. ++ this._maybeSelectAll(/* ignoreClickSelectsAllPref */ event.button == 2); + } + + _on_focus(event) { + if (!this._hideFocus) { + this.setAttribute("focused", "true"); + } + + // When the search term matches the SERP, the URL bar is in a valid +@@ -3338,17 +3343,17 @@ + this.inputField.value = this._focusUntrimmedValue = + this._untrimmedValue; + } + } + + if (this.focusedViaMousedown) { + this.view.autoOpen({ event }); + } else if (this.inputField.hasAttribute("refocused-by-panel")) { +- this._maybeSelectAll(); ++ this._maybeSelectAll(true); + } + + this._updateUrlTooltip(); + this.formatValue(); + + // Hide popup notifications, to reduce visual noise. + if ( + this.getAttribute("pageproxystate") != "valid" && +@@ -3399,17 +3404,20 @@ + } + + // Clear any previous selection unless we are focused, to ensure it + // doesn't affect drag selection. + if (this.focusedViaMousedown) { + this.inputField.setSelectionRange(0, 0); + } + +- if (event.target.id == SEARCH_BUTTON_ID) { ++ if (event.detail == 2 && UrlbarPrefs.get("doubleClickSelectsAll")) { ++ this.editor.selectAll(); ++ event.preventDefault(); ++ } else if (event.target.id == SEARCH_BUTTON_ID) { + this._preventClickSelectsAll = true; + this.search(lazy.UrlbarTokenizer.RESTRICT.SEARCH); + } else { + // Do not suppress the focus border if we are already focused. If we + // did, we'd hide the focus border briefly then show it again if the + // user has Top Sites disabled, creating a flashing effect. + this.view.autoOpen({ + event, +--- Waterfox-G6.0b1/browser/components/urlbar/UrlbarPrefs.sys.mjs ++++ Waterfox-G6.0b1/browser/components/urlbar/UrlbarPrefs.sys.mjs +@@ -63,16 +63,21 @@ + // autofilled even if the user hasn't actually visited them. + ["autoFill.searchEngines", false], + + // Affects the frecency threshold of the autofill algorithm. The threshold is + // the mean of all origin frecencies plus one standard deviation multiplied by + // this value. See UrlbarProviderPlaces. + ["autoFill.stddevMultiplier", [0.0, "float"]], + ++ // If true, this optimizes for replacing the full URL rather than editing ++ // part of it. This also copies the urlbar value to the selection clipboard ++ // on systems that support it. ++ ["clickSelectsAll", false], ++ + // Whether best match results can be blocked. This pref is a fallback for the + // Nimbus variable `bestMatchBlockingEnabled`. + ["bestMatch.blockingEnabled", true], + + // Whether the best match feature is enabled. + ["bestMatch.enabled", true], + + // Whether to show a link for using the search functionality provided by the +@@ -94,16 +99,21 @@ + // "heuristic" result). We fetch it as fast as possible. + ["delay", 50], + + // Some performance tests disable this because extending the urlbar needs + // layout information that we can't get before the first paint. (Or we could + // but this would mean flushing layout.) + ["disableExtendForTests", false], + ++ // If true, this optimizes for replacing the full URL rather than selecting a ++ // portion of it. This also copies the urlbar value to the selection ++ // clipboard on systems that support it. ++ ["doubleClickSelectsAll", false], ++ + // Ensure we use trailing dots for DNS lookups for single words that could + // be hosts. + ["dnsResolveFullyQualifiedNames", true], + + // Controls when to DNS resolve single word search strings, after they were + // searched for. If the string is resolved as a valid host, show a + // "Did you mean to go to 'host'" prompt. + // 0 - never resolve; 1 - use heuristics (default); 2 - always resolve +--- Waterfox-G6.0b1/modules/libpref/init/all.js ++++ Waterfox-G6.0b1/modules/libpref/init/all.js +@@ -2821,16 +2821,18 @@ + pref("network.protocol-handler.warn-external.file", false); + pref("browser.drag_out_of_frame_style", 1); + + // Middle-mouse handling + pref("middlemouse.paste", true); + pref("middlemouse.openNewWindow", true); + pref("middlemouse.scrollbarPosition", true); + ++ pref("browser.urlbar.clickSelectsAll", false); ++ + // Tab focus model bit field: + // 1 focuses text controls, 2 focuses other form elements, 4 adds links. + // Leave this at the default, 7, to match mozilla1.0-era user expectations. + // pref("accessibility.tabfocus", 1); + + pref("helpers.global_mime_types_file", "/etc/mime.types"); + pref("helpers.global_mailcap_file", "/etc/mailcap"); + pref("helpers.private_mime_types_file", "~/.mime.types"); diff --git a/www-client/waterfox-g/files/waterfox-g6.sh b/www-client/waterfox-g/files/waterfox-g6.sh new file mode 100644 index 0000000000000000000000000000000000000000..0422032850432210a7d4285f0799bd635842b3b9 --- /dev/null +++ b/www-client/waterfox-g/files/waterfox-g6.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +## +## Usage: +## +## $ waterfox-g6 +## +## This script is meant to run Waterfox g6 in Gentoo. + +cmdname=$(basename "$0") + +## +## Variables +## +MOZ_ARCH=$(uname -m) +case ${MOZ_ARCH} in + x86_64|s390x|sparc64) + MOZ_LIB_DIR="@PREFIX@/lib64" + SECONDARY_LIB_DIR="@PREFIX@/lib" + ;; + *) + MOZ_LIB_DIR="@PREFIX@/lib" + SECONDARY_LIB_DIR="@PREFIX@/lib64" + ;; +esac + +MOZ_FIREFOX_FILE="waterfox-g6" + +if [[ ! -r ${MOZ_LIB_DIR}/waterfox-g6/${MOZ_FIREFOX_FILE} ]]; then + if [[ ! -r ${SECONDARY_LIB_DIR}/waterfox-g6/${MOZ_FIREFOX_FILE} ]]; then + echo "Error: ${MOZ_LIB_DIR}/waterfox-g6/${MOZ_FIREFOX_FILE} not found" >&2 + if [[ -d ${SECONDARY_LIB_DIR} ]]; then + echo " ${SECONDARY_LIB_DIR}/waterfox-g6/${MOZ_FIREFOX_FILE} not found" >&2 + fi + exit 1 + fi + MOZ_LIB_DIR="${SECONDARY_LIB_DIR}" +fi +MOZILLA_FIVE_HOME="${MOZ_LIB_DIR}/waterfox-g6" +MOZ_EXTENSIONS_PROFILE_DIR="${HOME}/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" +MOZ_PROGRAM="${MOZILLA_FIVE_HOME}/${MOZ_FIREFOX_FILE}" + +## +## Enable Wayland backend? +## +if @DEFAULT_WAYLAND@ && [[ -z ${MOZ_DISABLE_WAYLAND} ]]; then + if [[ -n "${WAYLAND_DISPLAY}" ]]; then + export MOZ_ENABLE_WAYLAND=1 + fi +fi + +## +## Use D-Bus remote exclusively when there's Wayland display. +## +if [[ -n "${WAYLAND_DISPLAY}" ]]; then + export MOZ_DBUS_REMOTE=1 +fi + +## +## Make sure that we set the plugin path +## +MOZ_PLUGIN_DIR="plugins" + +if [[ -n "${MOZ_PLUGIN_PATH}" ]]; then + MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR} +else + MOZ_PLUGIN_PATH=${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR} +fi + +if [[ -d "${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}" ]]; then + MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR} +fi + +export MOZ_PLUGIN_PATH + +## +## Set MOZ_APP_LAUNCHER for gnome-session +## +export MOZ_APP_LAUNCHER="@PREFIX@/bin/${cmdname}" + +## +## Disable the GNOME crash dialog, Mozilla has its own +## +if [[ "${XDG_CURRENT_DESKTOP}" == "GNOME" ]]; then + GNOME_DISABLE_CRASH_DIALOG=1 + export GNOME_DISABLE_CRASH_DIALOG +fi + +## +## Enable Xinput2 (#617344) +## + +# respect user settings +MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2:-auto} + +if [[ ${MOZ_USE_XINPUT2} == auto && -n ${WAYLAND_DISPLAY} ]]; then + # enabling XINPUT2 should be safe for all wayland users + MOZ_USE_XINPUT2=1 +elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == KDE ]]; then + # XINPUT2 is known to cause problems for KWin users + MOZ_USE_XINPUT2=0 +elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == LXQT ]]; then + # LXQt uses KWin + MOZ_USE_XINPUT2=0 +elif [[ ${MOZ_USE_XINPUT2} == auto ]]; then + # should work on Mate, Xfce, FluxBox, OpenBox and all the others ... + MOZ_USE_XINPUT2=1 +fi + +[[ ${MOZ_USE_XINPUT2} != 0 ]] && export MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2} + +# Don't throw "old profile" dialog box. +export MOZ_ALLOW_DOWNGRADE=1 + +# Run the browser +exec ${MOZ_PROGRAM} "${@}" diff --git a/www-client/waterfox-g/metadata.xml b/www-client/waterfox-g/metadata.xml new file mode 100644 index 0000000000000000000000000000000000000000..bfd068afcf73c450ce39466e1d2ba67738dedd2e --- /dev/null +++ b/www-client/waterfox-g/metadata.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>myau at riseup.net</email> + <name>Myau</name> +</maintainer> +<use> + <flag name="clang">Use Clang compiler instead of GCC</flag> + <flag name="eme-free">Disable EME (DRM plugin) capability at build time</flag> + <flag name="geckodriver">Enable WebDriver support</flag> + <flag name="gmp-autoupdate">Allow Gecko Media Plugins (binary blobs) to be automatically + downloaded and kept up-to-date in user profiles</flag> + <flag name="hwaccel">Force-enable hardware-accelerated rendering (Mozilla bug 594876)</flag> + <flag name="jumbo-build">Enable unified build - combines source files to speed up build process, but requires more memory</flag> + <flag name="libproxy">Enable libproxy support</flag> + <flag name="lto">Enable Link Time Optimization (LTO)</flag> + <flag name="openh264">Use <pkg>media-libs/openh264</pkg> for H264 support + instead of downloading binary blob from Mozilla at runtime</flag> + <flag name="pgo">Add support for profile-guided optimization for faster binaries - this + option will double the compile time</flag> + <flag name="pulseaudio">Add sound server support via media-libs/libpulse (may be PulseAudio or + Pipewire, or apulse if installed)</flag> + <flag name="sndio">Enable support for the <pkg>media-sound/sndio</pkg> backend</flag> + <flag name="system-av1">Use the system-wide <pkg>media-libs/dav1d</pkg> + and <pkg>media-libs/libaom</pkg> library instead of bundled</flag> + <flag name="system-harfbuzz">Use the system-wide <pkg>media-libs/harfbuzz</pkg> + and <pkg>media-gfx/graphite2</pkg> instead of bundled</flag> + <flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg> + instead of bundled</flag> + <flag name="system-jpeg">Use the system-wide <pkg>media-libs/libjpeg-turbo</pkg> + instead of bundled</flag> + <flag name="system-libevent">Use the system-wide <pkg>dev-libs/libevent</pkg> + instead of bundled</flag> + <flag name="system-libvpx">Use the system-wide <pkg>media-libs/libvpx</pkg> + instead of bundled</flag> + <flag name="system-png">Use the system-wide <pkg>media-libs/libpng</pkg> + instead of bundled (requires APNG patches)</flag> + <flag name="system-python-libs">Use system's python site instead of bundled python libraries</flag> + <flag name="system-webp">Use the system-wide <pkg>media-libs/libwebp</pkg> + instead of bundled</flag> + <flag name="wifi">Enable necko-wifi for NetworkManager integration, and access point MAC + address scanning for better precision with opt-in geolocation services</flag> +</use> +</pkgmetadata> diff --git a/www-client/waterfox-g/waterfox-g-6.0.ebuild b/www-client/waterfox-g/waterfox-g-6.0.ebuild new file mode 100644 index 0000000000000000000000000000000000000000..06bd085529ea11496979acb211c718348aa7f750 --- /dev/null +++ b/www-client/waterfox-g/waterfox-g-6.0.ebuild @@ -0,0 +1,1350 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +FIREFOX_PATCHSET="firefox-115esr-patches-06.tar.xz" + +LLVM_MAX_SLOT=16 + +PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_REQ_USE="ncurses,sqlite,ssl" + +WANT_AUTOCONF="2.1" + +VIRTUALX_REQUIRED="manual" +WF_PN="Waterfox" +WF_PV="G${PV/_beta/b}" + +inherit autotools check-reqs desktop flag-o-matic gnome2-utils linux-info llvm multiprocessing optfeature pax-utils python-any-r1 toolchain-funcs virtualx xdg + +WF_SRC_BASE_URI="https://github.com/WaterfoxCo/Waterfox/archive/refs/tags" + +PATCH_URIS=( + https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET} +) + +SRC_URI=" + ${WF_SRC_BASE_URI}/${WF_PV}.tar.gz -> ${P}.tar.gz + ${PATCH_URIS[@]} +" + +DESCRIPTION="Waterfox Web Browser" +HOMEPAGE="https://www.waterfox.net" +KEYWORDS="amd64 arm64 ppc64 x86" +SLOT="6" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +RESTRICT="mirror" + +IUSE="+clang cpu_flags_arm_neon dbus debug eme-free hardened hwaccel" +IUSE+=" jack libproxy lto openh264 pgo pulseaudio sndio selinux" +IUSE+=" +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent +system-libvpx system-png system-python-libs +system-webp" +IUSE+=" wayland wifi +X" + +# Firefox-only IUSE +IUSE+=" geckodriver +gmp-autoupdate screencast" + +REQUIRED_USE="|| ( X wayland ) + debug? ( !system-av1 ) + pgo? ( lto ) + wifi? ( dbus )" + +WATERFOX_ONLY_DEPEND="!www-client/waterfox-g5 + screencast? ( media-video/pipewire:= ) + selinux? ( sec-policy/selinux-mozilla )" +BDEPEND="${PYTHON_DEPS} + || ( + ( + sys-devel/clang:16 + sys-devel/llvm:16 + clang? ( + sys-devel/lld:16 + virtual/rust:0/llvm-16 + pgo? ( =sys-libs/compiler-rt-sanitizers-16*[profile] ) + ) + ) + ( + sys-devel/clang:15 + sys-devel/llvm:15 + clang? ( + sys-devel/lld:15 + virtual/rust:0/llvm-15 + pgo? ( =sys-libs/compiler-rt-sanitizers-15*[profile] ) + ) + ) + ) + app-alternatives/awk + app-arch/unzip + app-arch/zip + >=dev-util/cbindgen-0.24.3 + net-libs/nodejs + virtual/pkgconfig + !clang? ( >=virtual/rust-1.65 ) + amd64? ( >=dev-lang/nasm-2.14 ) + x86? ( >=dev-lang/nasm-2.14 ) + pgo? ( + X? ( + sys-devel/gettext + x11-base/xorg-server[xvfb] + x11-apps/xhost + ) + !X? ( + >=gui-libs/wlroots-0.15.1-r1[tinywl] + x11-misc/xkeyboard-config + ) + )" +COMMON_DEPEND="${WATERFOX_ONLY_DEPEND} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/libffi:= + >=dev-libs/nss-3.90 + >=dev-libs/nspr-4.35 + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/mesa + media-video/ffmpeg + sys-libs/zlib + virtual/freedesktop-icon-theme + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/pango + x11-libs/pixman + dbus? ( + dev-libs/dbus-glib + sys-apps/dbus + ) + jack? ( virtual/jack ) + pulseaudio? ( + || ( + media-libs/libpulse + >=media-sound/apulse-0.1.12-r4[sdk] + ) + ) + libproxy? ( net-libs/libproxy ) + selinux? ( sec-policy/selinux-mozilla ) + sndio? ( >=media-sound/sndio-1.8.0-r1 ) + screencast? ( media-video/pipewire:= ) + system-av1? ( + >=media-libs/dav1d-1.0.0:= + >=media-libs/libaom-1.0.0:= + ) + system-harfbuzz? ( + >=media-gfx/graphite2-1.3.13 + >=media-libs/harfbuzz-2.8.1:0= + ) + system-icu? ( >=dev-libs/icu-73.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.1.12:0=[threads(+)] ) + system-libvpx? ( >=media-libs/libvpx-1.8.2:0=[postproc] ) + system-png? ( >=media-libs/libpng-1.6.35:0=[apng] ) + system-webp? ( >=media-libs/libwebp-1.1.0:0= ) + wayland? ( + >=media-libs/libepoxy-1.5.10-r1 + x11-libs/gtk+:3[wayland] + x11-libs/libxkbcommon[wayland] + ) + wifi? ( + kernel_linux? ( + dev-libs/dbus-glib + net-misc/networkmanager + sys-apps/dbus + ) + ) + X? ( + virtual/opengl + x11-libs/cairo[X] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libxkbcommon[X] + x11-libs/libXrandr + x11-libs/libXtst + x11-libs/libxcb:= + )" +RDEPEND="${COMMON_DEPEND} + hwaccel? ( + media-video/libva-utils + sys-apps/pciutils + ) + jack? ( virtual/jack ) + openh264? ( media-libs/openh264:*[plugin] )" +DEPEND="${COMMON_DEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + )" + +S="${WORKDIR}/Waterfox-${WF_PV}" +MOZ_L10N_SOURCEDIR="${S}/waterfox/browser/locales" + +# Allow MOZ_GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z "${MOZ_GMP_PLUGIN_LIST+set}" ]] ; then + MOZ_GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +llvm_check_deps() { + if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then + einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use clang && ! tc-ld-is-mold ; then + if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then + einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then + einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + + if use pgo ; then + if ! has_version -b "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile]" ; then + einfo "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*[profile] is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 + return 1 + fi + fi + fi + + einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 +} + +# Store languages that actually can be compiled +WF_LANGS=() + +MOZ_LANGS=( + ar cs da de el en-GB en-US es-ES es-MX fr hu + id it ja ko lt nl nn-NO pl pt-BR pt-PT ru + sv-SE th vi zh-CN zh-TW +) + +mozilla_set_globals() { + # https://bugs.gentoo.org/587334 + local MOZ_TOO_REGIONALIZED_FOR_L10N=( + fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO ne-NP nn-NO pa-IN sv-SE + ) + + local lang xflag + for lang in "${MOZ_LANGS[@]}" ; do + # en and en_US are handled internally + if [[ ${lang} == en ]] || [[ ${lang} == en-US ]] ; then + continue + fi + + # strip region subtag if $lang is in the list + if has ${lang} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then + xflag=${lang%%-*} + else + xflag=${lang} + fi + + IUSE+=" l10n_${xflag/[_@]/-}" + + # Store languages that actually can be compiled + WF_LANGS+=( ${xflag} ) + done +} +mozilla_set_globals + +moz_clear_vendor_checksums() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -ne 1 ]] ; then + die "${FUNCNAME} requires exact one argument" + fi + + einfo "Clearing cargo checksums for ${1} ..." + + sed -i \ + -e 's/\("files":{\)[^}]*/\1/' \ + "${S}"/third_party/rust/${1}/.cargo-checksum.json \ + || die +} + +moz_install_xpi() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local DESTDIR=${1} + shift + + insinto "${DESTDIR}" + + local emid xpi_file xpi_tmp_dir + for xpi_file in "${@}" ; do + emid= + xpi_tmp_dir=$(mktemp -d --tmpdir="${T}") + + # Unpack XPI + unzip -qq "${xpi_file}" -d "${xpi_tmp_dir}" || die + + # Determine extension ID + if [[ -f "${xpi_tmp_dir}/install.rdf" ]] ; then + emid=$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${xpi_tmp_dir}/install.rdf") + [[ -z "${emid}" ]] && die "failed to determine extension id from install.rdf" + elif [[ -f "${xpi_tmp_dir}/manifest.json" ]] ; then + emid=$(sed -n -e 's/.*"id": "\([^"]*\)".*/\1/p' "${xpi_tmp_dir}/manifest.json") + [[ -z "${emid}" ]] && die "failed to determine extension id from manifest.json" + else + die "failed to determine extension id" + fi + + einfo "Installing ${emid}.xpi into ${ED}${DESTDIR} ..." + newins "${xpi_file}" "${emid}.xpi" + done +} + +mozconfig_add_options_ac() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_add_options_mk() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 2 ]] ; then + die "${FUNCNAME} requires at least two arguments" + fi + + local reason=${1} + shift + + local option + for option in ${@} ; do + echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG} + done +} + +mozconfig_use_enable() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_enable "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +mozconfig_use_with() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${#} -lt 1 ]] ; then + die "${FUNCNAME} requires at least one arguments" + fi + + local flag=$(use_with "${@}") + mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}" +} + +# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily +# placed here until toolchain-funcs.eclass gets an official support for mold linker. +# Please see: +# https://github.com/gentoo/gentoo/pull/28366 || +# https://github.com/gentoo/gentoo/pull/28355 +tc-ld-is-mold() { + local out + + # Ensure ld output is in English. + local -x LC_ALL=C + + # First check the linker directly. + out=$($(tc-getLD "$@") --version 2>&1) + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # Then see if they're selecting mold via compiler flags. + # Note: We're assuming they're using LDFLAGS to hold the + # options and not CFLAGS/CXXFLAGS. + local base="${T}/test-tc-linker" + cat <<-EOF > "${base}.c" + int main() { return 0; } + EOF + out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) + rm -f "${base}"* + if [[ ${out} == *"mold"* ]] ; then + return 0 + fi + + # No mold here! + return 1 +} + +virtwl() { + debug-print-function ${FUNCNAME} "$@" + + [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument" + [[ -n $XDG_RUNTIME_DIR ]] || die "${FUNCNAME} needs XDG_RUNTIME_DIR to be set; try xdg_environment_reset" + tinywl -h >/dev/null || die 'tinywl -h failed' + + # TODO: don't run addpredict in utility function. WLR_RENDERER=pixman doesn't work + addpredict /dev/dri + local VIRTWL VIRTWL_PID + coproc VIRTWL { WLR_BACKENDS=headless exec tinywl -s 'echo $WAYLAND_DISPLAY; read _; kill $PPID'; } + local -x WAYLAND_DISPLAY + read WAYLAND_DISPLAY <&${VIRTWL[0]} + + debug-print "${FUNCNAME}: $@" + "$@" + local r=$? + + [[ -n $VIRTWL_PID ]] || die "tinywl exited unexpectedly" + exec {VIRTWL[0]}<&- {VIRTWL[1]}>&- + return $r +} + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has usersandbox $FEATURES ; then + die "You must enable usersandbox as X server can not run as root!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6600M" + fi + + check-reqs_pkg_pretend + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + if use pgo ; then + if ! has userpriv ${FEATURES} ; then + eerror "Building ${PN} with USE=pgo and FEATURES=-userpriv is not supported!" + fi + fi + + # Ensure we have enough disk space to compile + if use pgo || use lto || use debug ; then + CHECKREQS_DISK_BUILD="13500M" + else + CHECKREQS_DISK_BUILD="6400M" + fi + + check-reqs_pkg_setup + + llvm_pkg_setup + + if use clang && use lto && tc-ld-is-lld ; then + local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') + [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") + [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" + + local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') + [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") + [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" + + if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then + eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." + eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" + eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" + eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" + eerror " - Build ${CATEGORY}/${PN} without USE=lto" + eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " + eerror " llvm/clang/lld/rust chain depending on your @world updates)" + die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" + fi + fi + + python-any-r1_pkg_setup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset \ + DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XAUTHORITY \ + XDG_CACHE_HOME \ + XDG_SESSION_COOKIE + + # Build system is using /proc/self/oom_score_adj, bug #604394 + addpredict /proc/self/oom_score_adj + + if use pgo ; then + # Update 105.0: "/proc/self/oom_score_adj" isn't enough anymore with pgo, but not sure + # whether that's due to better OOM handling by Firefox (bmo#1771712), or portage + # (PORTAGE_SCHEDULING_POLICY) update... + addpredict /proc + + # May need a wider addpredict when using wayland+pgo. + addpredict /dev/dri + + # Allow access to GPU during PGO run + local ati_cards mesa_cards nvidia_cards render_cards + shopt -s nullglob + + ati_cards=$(echo -n /dev/ati/card* | sed 's/ /:/g') + if [[ -n "${ati_cards}" ]] ; then + addpredict "${ati_cards}" + fi + + mesa_cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if [[ -n "${mesa_cards}" ]] ; then + addpredict "${mesa_cards}" + fi + + nvidia_cards=$(echo -n /dev/nvidia* | sed 's/ /:/g') + if [[ -n "${nvidia_cards}" ]] ; then + addpredict "${nvidia_cards}" + fi + + render_cards=$(echo -n /dev/dri/renderD128* | sed 's/ /:/g') + if [[ -n "${render_cards}" ]] ; then + addpredict "${render_cards}" + fi + + shopt -u nullglob + fi + + if ! mountpoint -q /dev/shm ; then + # If /dev/shm is not available, configure is known to fail with + # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py + ewarn "/dev/shm is not mounted -- expect build failures!" + fi + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_GOOGLE+set}" ]] ; then + MOZ_API_KEY_GOOGLE="AIzaSyDEAOvatFogGaPi0eTgsV_ZlEzx0ObmepsMzfAc" + fi + + if [[ -z "${MOZ_API_KEY_LOCATION+set}" ]] ; then + MOZ_API_KEY_LOCATION="AIzaSyB2h2OuRgGaPicUgy5N-5hsZqiPW6sH3n_rptiQ" + fi + + # Mozilla API keys (see https://location.services.mozilla.com/api) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + if [[ -z "${MOZ_API_KEY_MOZILLA+set}" ]] ; then + MOZ_API_KEY_MOZILLA="edb3d487-3a84-46m0ap1e3-9dfd-92b5efaaa005" + fi + + # Ensure we use C locale when building, bug #746215 + export LC_ALL=C + fi + + CONFIG_CHECK="~SECCOMP" + WARNING_SECCOMP="CONFIG_SECCOMP not set! This system will be unable to play DRM-protected content." + linux-info_pkg_setup +} + +src_unpack() { + default +} + +src_prepare() { + if use lto; then + rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die + fi + + if ! use ppc64; then + rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die + fi + + eapply "${WORKDIR}/firefox-patches" + + + ## Apply additional polynomial-C patchest + elog "Apply Polynomial-C patchset..." + # unfuck URLbar + eapply "${FILESDIR}/${PN}6.0b1-URLbar_unfuck.patch" + eapply "${FILESDIR}/${PN}-fix_langpack_id.patch" + eapply "${FILESDIR}/${PN}6-fix-gtk-icons.patch" + + # [WFX-400] Revert to FF useragent. + echo 'MOZ_APP_UA_NAME="Firefox"' >> "${S}/browser/confvars.sh" + + # Fix Waterfox Version Display + echo "${WF_PV}" > "${S}/browser/config/version_display.txt" + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Make cargo respect MAKEOPTS + export CARGO_BUILD_JOBS="$(makeopts_jobs)" + + # Make LTO respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/build/moz.configure/lto-pgo.configure \ + || die "sed failed to set num_cores" + + # Make ICU respect MAKEOPTS + sed -i \ + -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ + "${S}"/intl/icu_sources_data.py \ + || die "sed failed to set num_cores" + + # sed-in toolchain prefix + sed -i \ + -e "s/objdump/${CHOST}-objdump/" \ + "${S}"/python/mozbuild/mozbuild/configure/check_debug_ranges.py \ + || die "sed failed to set toolchain prefix" + + sed -i \ + -e 's/ccache_stats = None/return None/' \ + "${S}"/python/mozbuild/mozbuild/controller/building.py \ + || die "sed failed to disable ccache stats call" + + einfo "Removing pre-built binaries ..." + + find "${S}"/third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die + + # Create build dir + BUILD_DIR="${WORKDIR}/${PN}_build" + mkdir -p "${BUILD_DIR}" || die + + # Write API keys to disk + echo -n "${MOZ_API_KEY_GOOGLE//gGaPi/}" > "${S}"/api-google.key || die + echo -n "${MOZ_API_KEY_LOCATION//gGaPi/}" > "${S}"/api-location.key || die + echo -n "${MOZ_API_KEY_MOZILLA//m0ap1/}" > "${S}"/api-mozilla.key || die + + # Remove default mozconfig + if [[ -f .mozconfig ]] ; then + rm .mozconfig || die + fi + + xdg_environment_reset + + default +} + +src_configure() { + # Show flags set at the beginning + einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Current CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + local have_switched_compiler= + if use clang; then + # Force clang + einfo "Enforcing the use of clang due to USE=clang ..." + + local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }') + [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}") + [[ -z ${version_clang} ]] && die "Failed to read clang version!" + + if tc-is-gcc; then + have_switched_compiler=yes + fi + + AR=llvm-ar + CC=${CHOST}-clang-${version_clang} + CXX=${CHOST}-clang++-${version_clang} + NM=llvm-nm + RANLIB=llvm-ranlib + + elif ! use clang && ! tc-is-gcc ; then + # Force gcc + have_switched_compiler=yes + einfo "Enforcing the use of gcc due to USE=-clang ..." + AR=gcc-ar + CC=${CHOST}-gcc + CXX=${CHOST}-g++ + NM=gcc-nm + RANLIB=gcc-ranlib + fi + + if [[ -n "${have_switched_compiler}" ]] ; then + # Because we switched active compiler we have to ensure + # that no unsupported flags are set + strip-unsupported-flags + fi + + # Ensure we use correct toolchain + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + export AS="$(tc-getCC) -c" + tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG + + # Pass the correct toolchain paths through cbindgen + if tc-is-cross-compiler ; then + export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}" + fi + + # Set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}${SLOT}" + + # python/mach/mach/mixin/process.py fails to detect SHELL + export SHELL="${EPREFIX}/bin/bash" + + # Set state path + export MOZBUILD_STATE_PATH="${BUILD_DIR}" + + # Set MOZCONFIG + export MOZCONFIG="${S}/.mozconfig" + + # Initialize MOZCONFIG + mozconfig_add_options_ac '' --enable-application=browser + mozconfig_add_options_ac '' --enable-project=browser + + # Set Gentoo defaults + export MOZILLA_OFFICIAL=1 + + mozconfig_add_options_ac 'Gentoo default' \ + --allow-addon-sideload \ + --disable-cargo-incremental \ + --disable-crashreporter \ + --disable-gpsd \ + --disable-install-strip \ + --disable-parental-controls \ + --enable-strip \ + --disable-tests \ + --disable-updater \ + --disable-wmf \ + --enable-legacy-profile-creation \ + --enable-negotiateauth \ + --enable-new-pass-manager \ + --disable-official-branding \ + --enable-release \ + --enable-system-ffi \ + --enable-system-pixman \ + --enable-system-policies \ + --host="${CBUILD:-${CHOST}}" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --prefix="${EPREFIX}/usr" \ + --target="${CHOST}" \ + --without-ccache \ + --without-wasm-sandboxed-libraries \ + --with-intl-api \ + --with-libclang-path="$(llvm-config --libdir)" \ + --with-system-nspr \ + --with-system-nss \ + --with-system-zlib \ + --with-toolchain-prefix="${CHOST}-" \ + --with-unsigned-addon-scopes=app,system \ + --x-includes="${ESYSROOT}/usr/include" \ + --x-libraries="${ESYSROOT}/usr/$(get_libdir)" + + # # Set update channel + # local update_channel=release + # [[ -n ${MOZ_ESR} ]] && update_channel=esr + # mozconfig_add_options_ac '' --update-channel=${update_channel} + + if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then + mozconfig_add_options_ac '' --enable-rust-simd + fi + + # For future keywording: This is currently (97.0) only supported on: + # amd64, arm, arm64 & x86. + # Might want to flip the logic around if Firefox is to support more arches. + # bug 833001, bug 903411#c8 + if use ppc64 || use riscv; then + mozconfig_add_options_ac '' --disable-sandbox + else + mozconfig_add_options_ac '' --enable-sandbox + fi + + # Enable JIT on riscv64 explicitly + # Can be removed once upstream enable it by default in the future. + use riscv && mozconfig_add_options_ac 'Enable JIT for RISC-V 64' --enable-jit + + if [[ -s "${S}/api-google.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-google.key" | md5sum | awk '{ print $1 }') != 709560c02f94b41f9ad2c49207be6c54 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-safebrowsing-api-keyfile="${S}/api-google.key" + else + einfo "Building without Google API key ..." + fi + + if [[ -s "${S}/api-location.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-location.key" | md5sum | awk '{ print $1 }') != ffb7895e35dedf832eb1c5d420ac7420 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-google-location-service-api-keyfile="${S}/api-location.key" + else + einfo "Building without Location API key ..." + fi + + if [[ -s "${S}/api-mozilla.key" ]] ; then + local key_origin="Gentoo default" + if [[ $(cat "${S}/api-mozilla.key" | md5sum | awk '{ print $1 }') != 3927726e9442a8e8fa0e46ccc39caa27 ]] ; then + key_origin="User value" + fi + + mozconfig_add_options_ac "${key_origin}" \ + --with-mozilla-api-keyfile="${S}/api-mozilla.key" + else + einfo "Building without Mozilla API key ..." + fi + + mozconfig_use_with system-av1 + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + mozconfig_use_with system-icu + mozconfig_use_with system-jpeg + mozconfig_use_with system-libevent + mozconfig_use_with system-libvpx + mozconfig_use_with system-png + mozconfig_use_with system-webp + + mozconfig_use_enable dbus + mozconfig_use_enable libproxy + + use eme-free && mozconfig_add_options_ac '+eme-free' --disable-eme + + mozconfig_use_enable geckodriver + + if use hardened ; then + mozconfig_add_options_ac "+hardened" --enable-hardening + append-ldflags "-Wl,-z,relro -Wl,-z,now" + fi + + local myaudiobackends="" + use jack && myaudiobackends+="jack," + use sndio && myaudiobackends+="sndio," + use pulseaudio && myaudiobackends+="pulseaudio," + ! use pulseaudio && myaudiobackends+="alsa," + + mozconfig_add_options_ac '--enable-audio-backends' --enable-audio-backends="${myaudiobackends::-1}" + + mozconfig_use_enable wifi necko-wifi + + if use X && use wayland ; then + mozconfig_add_options_ac '+x11+wayland' --enable-default-toolkit=cairo-gtk3-x11-wayland + elif ! use X && use wayland ; then + mozconfig_add_options_ac '+wayland' --enable-default-toolkit=cairo-gtk3-wayland-only + else + mozconfig_add_options_ac '+x11' --enable-default-toolkit=cairo-gtk3 + fi + + if use lto ; then + if use clang ; then + # Upstream only supports lld or mold when using clang. + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld + fi + + mozconfig_add_options_ac '+lto' --enable-lto=cross + + else + # ThinLTO is currently broken, see bmo#1644409. + # mold does not support gcc+lto combination. + mozconfig_add_options_ac '+lto' --enable-lto=full + mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd + fi + + if use pgo ; then + mozconfig_add_options_ac '+pgo' MOZ_PGO=1 + + if use clang ; then + # Used in build/pgo/profileserver.py + export LLVM_PROFDATA="llvm-profdata" + fi + fi + else + # Avoid auto-magic on linker + if use clang ; then + # lld is upstream's default + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "forcing ld=lld due to USE=clang" --enable-linker=lld + fi + + else + if tc-ld-is-mold ; then + mozconfig_add_options_ac "using ld=mold due to system selection" --enable-linker=mold + else + mozconfig_add_options_ac "linker is set to bfd due to USE=-clang" --enable-linker=bfd + fi + fi + fi + + # LTO flag was handled via configure + filter-lto + + mozconfig_use_enable debug + if use debug ; then + mozconfig_add_options_ac '+debug' --disable-optimize + mozconfig_add_options_ac '+debug' --enable-real-time-tracing + else + mozconfig_add_options_ac 'Gentoo defaults' --disable-real-time-tracing + + if is-flag '-g*' ; then + if use clang ; then + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols=$(get-flag '-g*') + else + mozconfig_add_options_ac 'from CFLAGS' --enable-debug-symbols + fi + else + mozconfig_add_options_ac 'Gentoo default' --disable-debug-symbols + fi + + if is-flag '-O0' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O0 + elif is-flag '-O4' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O4 + elif is-flag '-O3' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O3 + elif is-flag '-O1' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-O1 + elif is-flag '-Os' ; then + mozconfig_add_options_ac "from CFLAGS" --enable-optimize=-Os + else + mozconfig_add_options_ac "Gentoo default" --enable-optimize=-O2 + fi + fi + + # Debug flag was handled via configure + filter-flags '-g*' + + # Optimization flag was handled via configure + filter-flags '-O*' + + # Modifications to better support ARM, bug #553364 + if use cpu_flags_arm_neon ; then + mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon + + if ! tc-is-clang ; then + # thumb options aren't supported when using clang, bug 666966 + mozconfig_add_options_ac '+cpu_flags_arm_neon' \ + --with-thumb=yes \ + --with-thumb-interwork=no + fi + fi + + if [[ ${CHOST} == armv*h* ]] ; then + mozconfig_add_options_ac 'CHOST=armv*h*' --with-float-abi=hard + + if ! use system-libvpx ; then + sed -i \ + -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build \ + || die + fi + fi + + if use clang ; then + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 + # toolkit/moz.configure Elfhack section: target.cpu in ('arm', 'x86', 'x86_64') + local disable_elf_hack= + if use amd64 ; then + disable_elf_hack=yes + elif use x86 ; then + disable_elf_hack=yes + elif use arm ; then + disable_elf_hack=yes + fi + + if [[ -n ${disable_elf_hack} ]] ; then + mozconfig_add_options_ac 'elf-hack is broken when using Clang' --disable-elf-hack + fi + elif tc-is-gcc ; then + if ver_test $(gcc-fullversion) -ge 10 ; then + einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." + append-cxxflags -fno-tree-loop-vectorize + fi + fi + + if use elibc_musl && use arm64 ; then + mozconfig_add_options_ac 'elf-hack is broken when using musl/arm64' --disable-elf-hack + fi + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + if use clang ; then + # Nothing to do + :; + elif use lto ; then + append-ldflags -Wl,--no-keep-memory + else + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + fi + ;; + esac + + if ! use elibc_glibc; then + mozconfig_add_options_ac '!elibc_glibc' --disable-jemalloc + fi + + # Allow elfhack to work in combination with unstripped binaries + # when they would normally be larger than 2GiB. + append-ldflags "-Wl,--compress-debug-sections=zlib" + + # Make revdep-rebuild.sh happy; Also required for musl + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + + # Pass $MAKEOPTS to build system + export MOZ_MAKE_FLAGS="${MAKEOPTS}" + + # Use system's Python environment + export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach + + if use system-python-libs; then + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="system" + else + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none" + fi + + # Disable notification when build system has finished + export MOZ_NOSPAM=1 + + # Portage sets XARGS environment variable to "xargs -r" by default which + # breaks build system's check_prog() function which doesn't support arguments + mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs" + + # Set build dir + mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}" + + export MOZ_INCLUDE_SOURCE_INFO=1 + export MOZ_REQUIRE_SIGNING= + + mozconfig_add_options_ac 'for building locales' --with-l10n-base=${MOZ_L10N_SOURCEDIR} + mozconfig_add_options_ac 'Waterfox' --with-app-name=${PN}${SLOT} + mozconfig_add_options_ac 'Waterfox' --with-app-basename=${WF_PN} + mozconfig_add_options_ac 'Waterfox' --with-branding=waterfox/browser/branding + mozconfig_add_options_ac 'Waterfox' --with-distribution-id=net.waterfox + mozconfig_add_options_ac 'Waterfox' "MOZ_ALLOW_LEGACY_EXTENSIONS=1" + + # Show flags we will use + einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}" + einfo "Build CFLAGS:\t\t${CFLAGS:-no value set}" + einfo "Build CXXFLAGS:\t\t${CXXFLAGS:-no value set}" + einfo "Build LDFLAGS:\t\t${LDFLAGS:-no value set}" + einfo "Build RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}" + + # Handle EXTRA_CONF and show summary + local ac opt hash reason + + # Apply EXTRA_ECONF entries to $MOZCONFIG + if [[ -n ${EXTRA_ECONF} ]] ; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_add_options_ac "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options "${MOZCONFIG}" | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + ./mach configure || die +} + +src_compile() { + local virtx_cmd= + + if tc-ld-is-mold && use lto; then + # increase ulimit with mold+lto, bugs #892641, #907485 + if ! ulimit -n 16384 1>/dev/null 2>&1 ; then + ewarn "Unable to modify ulimits - building with mold+lto might fail due to low ulimit -n resources." + ewarn "Please see bugs #892641 & #907485." + else + ulimit -n 16384 + fi + fi + + if use pgo; then + # Reset and cleanup environment variables used by GNOME/XDG + gnome2_environment_reset + + addpredict /root + + if ! use X; then + virtx_cmd=virtwl + else + virtx_cmd=virtx + fi + fi + + if ! use X; then + local -x GDK_BACKEND=wayland + else + local -x GDK_BACKEND=x11 + fi + + export MOZCONFIG="${S}/.mozconfig" + + ${virtx_cmd} ./mach build --verbose || die + + local loc mymozconfig + for loc in ${LINGUAS} ; do + if has ${loc} "${MOZ_LANGS[@]}" ; then + mymozconfig=".mozconfig_${loc}" + cp .mozconfig ${mymozconfig} || die + sed "/MOZ_OBJDIR/s:=.*#:=${S}/../${P}-${loc}_build #:" \ + -i ${mymozconfig} || die + export MOZCONFIG="${S}/${mymozconfig}" + # returns non-zero exit code so we just die + # later in src_install in case the langpacks + # failed to build + ${virtx_cmd} ./mach build --verbose \ + config/nsinstall langpack-${loc} + fi + done + export MOZCONFIG="${S}/.mozconfig" +} + +src_install() { + # xpcshell is getting called during install + pax-mark m \ + "${BUILD_DIR}"/dist/bin/xpcshell \ + "${BUILD_DIR}"/dist/bin/${PN} \ + "${BUILD_DIR}"/dist/bin/plugin-container + + DESTDIR="${D}" ./mach install || die + + # Remove waterfox-g6-bin if available; do not create symlink. + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" ]] ; then + rm "${ED}${MOZILLA_FIVE_HOME}/${PN}-bin" || die + fi + + # Don't install llvm-symbolizer from sys-devel/llvm package + if [[ -f "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] ; then + rm -v "${ED}${MOZILLA_FIVE_HOME}/llvm-symbolizer" || die + fi + + # Install policy (currently only used to disable application updates) + insinto "${MOZILLA_FIVE_HOME}/distribution" + newins "${FILESDIR}"/distribution.ini distribution.ini + newins "${FILESDIR}"/disable-auto-update.policy.json policies.json + + # Install system-wide preferences + local PREFS_DIR="${MOZILLA_FIVE_HOME}/browser/defaults/preferences" + insinto "${PREFS_DIR}" + newins "${FILESDIR}"/gentoo-default-prefs.js gentoo-prefs.js + + local GENTOO_PREFS="${ED}${PREFS_DIR}/gentoo-prefs.js" + + # Set dictionary path to use system hunspell + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set spellchecker.dictionary_path pref" + pref("spellchecker.dictionary_path", "${EPREFIX}/usr/share/myspell"); + EOF + + # Force hwaccel prefs if USE=hwaccel is enabled + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-r2 \ + >>"${GENTOO_PREFS}" \ + || die "failed to add prefs to force hardware-accelerated rendering to all-gentoo.js" + + if use wayland; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel wayland prefs" + pref("gfx.x11-egl.force-enabled", false); + EOF + else + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set hwaccel x11 prefs" + pref("gfx.x11-egl.force-enabled", true); + EOF + fi + fi + + if ! use gmp-autoupdate ; then + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + einfo "Disabling auto-update for ${plugin} plugin ..." + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to disable autoupdate for ${plugin} media plugin" + pref("media.${plugin}.autoupdate", false); + EOF + done + fi + + # Force the graphite pref if USE=system-harfbuzz is enabled, since the pref cannot disable it + if use system-harfbuzz ; then + cat >>"${GENTOO_PREFS}" <<-EOF || die "failed to set gfx.font_rendering.graphite.enabled pref" + sticky_pref("gfx.font_rendering.graphite.enabled", true); + EOF + fi + + # Install language packs + local langpacks=( $(find "${S}"/../${P}-*_build/dist/linux-*/xpi -type f -name '*.xpi') ) + if [[ -n "${langpacks}" ]] ; then + moz_install_xpi "${MOZILLA_FIVE_HOME}/distribution/extensions" "${langpacks[@]}" + fi + + # Install geckodriver + if use geckodriver ; then + einfo "Installing geckodriver into ${ED}${MOZILLA_FIVE_HOME} ..." + pax-mark m "${BUILD_DIR}"/dist/bin/geckodriver + exeinto "${MOZILLA_FIVE_HOME}" + doexe "${BUILD_DIR}"/dist/bin/geckodriver + + dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver + fi + + # Install icons + local icon_srcdir="${S}/waterfox/browser/branding" + local icon_symbolic_file="${FILESDIR}/icon/waterfox-symbolic.svg" + + insinto /usr/share/icons/hicolor/symbolic/apps + newins "${icon_symbolic_file}" ${PN}${SLOT}-symbolic.svg + + local icon size + for icon in "${icon_srcdir}"/default*.png ; do + size=${icon%.png} + size=${size##*/default} + + if [[ ${size} -eq 48 ]] ; then + newicon "${icon}" ${PN}${SLOT}.png + fi + + newicon -s ${size} "${icon}" ${PN}${SLOT}.png + done + + # Install menu + local app_name="Waterfox G${SLOT}" + local desktop_file="${FILESDIR}/icon/${PN}.desktop" + local desktop_filename="${PN}${SLOT}.desktop" + local exec_command="${PN}${SLOT}" + local icon="${PN}" + local name="Waterfox ${WF_PV}" + local use_wayland="false" + + if use wayland ; then + use_wayland="true" + fi + + cp "${desktop_file}" "${T}/${PN}.desktop-template" || die + + sed -i \ + -e "s:@NAME@:${app_name}:" \ + -e "s:@EXEC@:${exec_command}:" \ + -e "s:@ICON@:${icon}:" \ + "${T}/${PN}.desktop-template" \ + || die + + newmenu "${T}/${PN}.desktop-template" "${desktop_filename}" + + rm "${T}/${PN}.desktop-template" || die + + # Install wrapper script + [[ -e "${ED}/usr/bin/${PN}" ]] && rm "${ED}/usr/bin/${PN}" + sed "s@%WATERFOX_NAME%@${PN}${SLOT}@" "${FILESDIR}/${PN}".sh \ + > ${T}/${PN}.sh || die + newbin "${T}/${PN}".sh ${PN}${SLOT} + + # Update wrapper + sed -i \ + -e "s:@PREFIX@:${EPREFIX}/usr:" \ + -e "s:@MOZ_FIVE_HOME@:${MOZILLA_FIVE_HOME}:" \ + -e "s:@APULSELIB_DIR@:${apulselib}:" \ + -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ + "${ED}/usr/bin/${PN}${SLOT}" \ + || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # If the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # does not need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + einfo "APULSE found; Generating library symlinks for sound support ..." + local lib + pushd "${ED}${MOZILLA_FIVE_HOME}" &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # A quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if [[ ! -L ${lib##*/} ]] ; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if ! use gmp-autoupdate ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${MOZ_GMP_PLUGIN_LIST[@]}" ; do + elog "\t ${plugin}" + done + elog + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.12-r4" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + elog + fi + + local show_doh_information + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + # New install; Tell user that DoH is disabled by default + show_doh_information=yes + fi + + if [[ -n "${show_doh_information}" ]] ; then + elog + elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" + elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" + elog "DNS traffic to Cloudflare by default is not a good idea and applications" + elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" + elog "(\"Off by choice\") by default." + elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." + fi + + # bug 835078 + if use hwaccel && has_version "x11-drivers/xf86-video-nouveau"; then + ewarn "You have nouveau drivers installed in your system and 'hwaccel' " + ewarn "enabled for Waterfox. Nouveau / your GPU might not support the " + ewarn "required EGL, so either disable 'hwaccel' or try the workaround " + ewarn "explained in https://bugs.gentoo.org/835078#c5 if Waterfox crashes." + fi + + if ! has_version "sys-libs/glibc"; then + elog + elog "glibc not found! You won't be able to play DRM content." + elog "See Gentoo bug #910309 or upstream bug #1843683." + elog + fi +}