diff --git a/README.md b/README.md
index 622ba03..f0e71ba 100644
--- a/README.md
+++ b/README.md
@@ -1,18 +1,18 @@
-
+
-
+
-
-
+
+
-
+
-
+
@@ -28,6 +28,24 @@ A quick guide on how to test ebuilds will follow.
Mostly to have fun.
+## For whom?
+
+src_prepare overlay was based on a concept of [GURU](https://wiki.gentoo.org/wiki/Project:GURU) with the following exceptions:
+- easier to get access to the master branch
+- main contact with the src_prepare project is via [Matrix](https://matrix.to/#/#src_prepare:matrix.org)
+- main git repo is hosted on [Gitlab](https://gitlab.com/src_prepare/src_prepare-overlay) with [Github](https://github.com/xgqt/src_prepare-overlay) and [Codeberg](https://codeberg.org/src_prepare/src_prepare-overlay) mirrors
+- more freedom in creating ebuilds
+- no requirement for GPG keys
+- no requirement for private info
+
+src_prepare project doesn't want to overtake the GURU project, the course that the GURU project takes is more professional, src_prepare overlay is more open for ebuilds:
+- binary packages from upstream
+- from inexperienced users
+- from software created by the src_prepare project itself
+- live ebuilds
+- programs that run under WINE (or other emulators)
+
+
## Adding the overlay
### Official list
diff --git a/app-office/onlyoffice-bin/Manifest b/app-office/onlyoffice-bin/Manifest
index 24ed869..5a13c74 100644
--- a/app-office/onlyoffice-bin/Manifest
+++ b/app-office/onlyoffice-bin/Manifest
@@ -1,2 +1,3 @@
DIST ONLYOFFICE-DesktopEditors-5.4.2_amd64.deb 163646374 BLAKE2B 19824eb921cd4262e5eb8f3b6bd70472e33d67badadc3d748ab325d90f980413c8e48e776058ebd23de804ca95bc6c87f70bc24bf53756ce0aa2417c9702db67 SHA512 2b85119722d9ba0d4112a2782d365e3eb29e3bce868b6dc68547caf14e2d4df6e4bcd94da2b31670b9574874f13b8a65a3d84aa2e58ce0eeea1f1b1a6aca6888
DIST ONLYOFFICE-DesktopEditors-5.5.1_amd64.deb 179305960 BLAKE2B 7d1e50b6a9fec1e2bd37ccf3988b35f908f752fb1925b1eccb2a9f113d8d50929cbd10bc9aed7f8b3f1315ee903bd8a4f78d9876bd8ddc25e6eefcc027c956fd SHA512 8a87eba1ed160b8ae89c949db427614a282e54b525562476ef7145a4d141b56723fd967b7171cd16aaa2d99922080c7c6ca2baa90d3823564885241c48ae97ea
+DIST ONLYOFFICE-DesktopEditors-5.6.0_amd64.deb 180022552 BLAKE2B 841c1876f8d6713dcd1102e37989d4908cfe889f247e887f71b231810f35d0fb974177dfaa083c12276b56f318307c02cd411a40a73eba383915c9ccbb7129e7 SHA512 6a757d547d5bcd7b4c6e112fdb67d308d0e26e75d5e13fdea0767e2a5778f4cafd71821cc950cf191bcc4c91d7d5c32c0e7e935709b8572a19ac5937e05141c3
diff --git a/app-office/onlyoffice-bin/files/fixshellsyntax.patch b/app-office/onlyoffice-bin/files/fixshellsyntax.patch
new file mode 100644
index 0000000..9349e0c
--- /dev/null
+++ b/app-office/onlyoffice-bin/files/fixshellsyntax.patch
@@ -0,0 +1,13 @@
+diff --git a/usr/bin/onlyoffice-desktopeditors b/usr/bin/onlyoffice-desktopeditors
+index 6fa731f..16e7b41 100755
+--- a/usr/bin/onlyoffice-desktopeditors
++++ b/usr/bin/onlyoffice-desktopeditors
+@@ -68,7 +68,7 @@ set_names_ru() {
+ }
+
+ check_templates() {
+- if [ $1 != "--new-document-templates" ]; then
++ if [ "$1" != "--new-document-templates" ]; then
+ return 0
+ fi
+
diff --git a/app-office/onlyoffice-bin/onlyoffice-bin-5.6.0.ebuild b/app-office/onlyoffice-bin/onlyoffice-bin-5.6.0.ebuild
new file mode 100644
index 0000000..b7b72f7
--- /dev/null
+++ b/app-office/onlyoffice-bin/onlyoffice-bin-5.6.0.ebuild
@@ -0,0 +1,116 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop gnome2-utils multilib unpacker xdg-utils
+
+MY_PN="ONLYOFFICE-DesktopEditors"
+MY_P="${MY_PN}-${PVR//r}"
+
+DESCRIPTION="onlyoffice is an office productivity suite (binary version)"
+HOMEPAGE="https://www.onlyoffice.com/"
+
+KEYWORDS="~amd64"
+
+SRC_URI="
+ amd64? (
+ https://github.com/ONLYOFFICE/DesktopEditors/releases/download/${MY_P}/${PN/bin/desktopeditors}_amd64.deb -> ${MY_P}_amd64.deb
+ )
+"
+
+SLOT="0"
+RESTRICT="mirror strip"
+LICENSE="AGPL-3"
+IUSE=""
+
+DEPEND="
+ app-arch/bzip2
+ dev-libs/expat
+ dev-libs/glib:2
+ dev-libs/libffi
+ dev-libs/libxml2:2
+ dev-libs/nss
+ dev-libs/atk
+ dev-qt/qtgui:5
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtmultimedia:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtsvg:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtopengl:5
+ media-libs/fontconfig:1.0
+ media-libs/freetype:2
+ media-libs/glu
+ media-libs/gst-plugins-base
+ media-libs/gstreamer
+ net-misc/curl
+ virtual/opengl
+ media-libs/tiff
+ sys-apps/util-linux
+ sys-libs/zlib
+ x11-libs/libdrm
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libxcb
+ x11-libs/libXdamage
+ x11-libs/libXdmcp
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrender
+ x11-libs/libXxf86vm
+ media-libs/libmng
+ media-fonts/dejavu
+ media-fonts/crosextrafonts-carlito
+ net-print/cups
+ net-misc/wget
+ x11-libs/cairo
+ x11-libs/gtk+:2
+"
+RDEPEND="
+ ${DEPEND}
+ dev-db/sqlite:3
+ net-libs/libcurl-gnutls
+ !app-office/onlyoffice
+"
+
+PATCHES=( "${FILESDIR}/fixshellsyntax.patch" )
+
+S="${WORKDIR}"
+
+src_unpack(){
+ unpack_deb ${A}
+}
+
+src_install() {
+ mkdir -p "${D}"
+ cp -r . "${D}"
+ local res
+ for res in 16 24 32 48 64 128 256; do
+ doicon -s ${res} opt/onlyoffice/desktopeditors/asc-de-${res}.png
+ done
+ dosym "${EPREFIX}/usr/$(get_libdir)/libcurl-gnutls.so.4" "${EPREFIX}/opt/onlyoffice/desktopeditors/libcurl-gnutls.so.4"
+}
+
+pkg_preinst(){
+ gnome2_gconf_savelist
+ xdg_environment_reset
+}
+
+pkg_postinst() {
+ gnome2_gconf_install
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_gconf_uninstall
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ xdg_icon_cache_update
+}
diff --git a/app-text/pandoc-bin/Manifest b/app-text/pandoc-bin/Manifest
new file mode 100644
index 0000000..c38728f
--- /dev/null
+++ b/app-text/pandoc-bin/Manifest
@@ -0,0 +1 @@
+DIST pandoc-2.10.1-linux-amd64.tar.gz 24738243 BLAKE2B b139274bbce6c8ee57ab9a29d6bd1bab23b543a8e93841dfa2f5640b944a5e927360517d9e9f840c73a6ca1455d678ef780577279f9cea34ea985ba2298de2c9 SHA512 5de8bcdf4c008e4521432cd4af86e7b8f6e309b8373a43b8d51b91825a1cc7e05fd59c24ef606b5ea92403383c9c5cb565f3c5f4335148b30cd4bc92211a7b83
diff --git a/app-text/pandoc-bin/metadata.xml b/app-text/pandoc-bin/metadata.xml
new file mode 100644
index 0000000..0e026d7
--- /dev/null
+++ b/app-text/pandoc-bin/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ xgqt@protonmail.com
+ Maciej Barć
+
+
+ jgm/pandoc
+
+
diff --git a/app-text/pandoc-bin/pandoc-bin-2.10.1.ebuild b/app-text/pandoc-bin/pandoc-bin-2.10.1.ebuild
new file mode 100644
index 0000000..8037086
--- /dev/null
+++ b/app-text/pandoc-bin/pandoc-bin-2.10.1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_PN="${PN//-bin/}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Universal markup converter"
+HOMEPAGE="https://pandoc.org"
+SRC_URI="https://github.com/jgm/${MY_PN}/releases/download/${PV}/${MY_P}-linux-amd64.tar.gz"
+
+RESTRICT="mirror bindist"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* ~amd64"
+IUSE=""
+
+RDEPEND="
+ !app-text/${MY_PN}
+"
+
+S="${WORKDIR}/${MY_P}"
+
+QA_PRESTRIPPED="
+ usr/bin/${MY_PN}
+ usr/bin/${MY_PN}-citeproc
+"
+
+src_unpack() {
+ default
+
+ # manpages are gzipped
+ find . -name "*.gz" | xargs gunzip
+}
+
+src_install() {
+ cd "${S}/bin" || die
+ dobin "${MY_PN}"
+ dobin "${MY_PN}-citeproc"
+
+ cd "${S}/share/man/man1" || die
+ doman "${MY_PN}.1"
+ doman "${MY_PN}-citeproc.1"
+}
diff --git a/www-client/palemoon/palemoon-28.12.0.ebuild b/www-client/palemoon/palemoon-28.12.0.ebuild
new file mode 100644
index 0000000..5088662
--- /dev/null
+++ b/www-client/palemoon/palemoon-28.12.0.ebuild
@@ -0,0 +1,253 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+GCC_SUPPORTED_VERSIONS="4.9 5.4 7.3 8.2 8.3 9.2 9.3"
+PYTHON_COMPAT=( python2_7 )
+REQUIRED_BUILDSPACE='9G'
+
+inherit palemoon-v1 git-r3 flag-o-matic pax-utils python-any-r1
+
+DESCRIPTION="Pale Moon Web Browser"
+HOMEPAGE="https://www.palemoon.org/"
+
+if [[ "${PV}" == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/MoonchildProductions/Pale-Moon.git"
+ KEYWORDS=""
+else
+ EGIT_REPO_URI="https://github.com/MoonchildProductions/Pale-Moon.git"
+ EGIT_COMMIT="${PV}_Release"
+ KEYWORDS="~amd64"
+fi
+
+RESTRICT="mirror"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+SLOT="0"
+IUSE="
+ cpu_flags_x86_sse
+ cpu_flags_x86_sse2
+ dbus
+ +devtools
+ debug
+ gnome
+ -gtk2
+ +gtk3
+ jemalloc
+ pulseaudio
+ -necko-wifi
+ official-branding
+ +optimize
+ threads
+ -valgrind
+"
+REQUIRED_USE="
+ optimize? (
+ !debug
+ )
+ jemalloc? (
+ !valgrind
+ )
+ ^^ (
+ gtk2
+ gtk3
+ )
+ necko-wifi? (
+ dbus
+ )
+"
+
+DEPEND="
+ ${PYTHON_DEPS}
+ >=dev-lang/perl-5.6
+ >=sys-devel/autoconf-2.13:2.1
+ dev-lang/yasm
+"
+RDEPEND="
+ app-arch/zip
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ virtual/ffmpeg[x264]
+ x11-libs/libXt
+ dbus? (
+ >=sys-apps/dbus-0.60
+ >=dev-libs/dbus-glib-0.60
+ )
+ gnome? (
+ gnome-base/gconf
+ )
+ gtk2? (
+ >=x11-libs/gtk+-2.18.0:2
+ )
+ gtk3? (
+ >=x11-libs/gtk+-3.4.0:3
+ )
+ necko-wifi? (
+ net-wireless/wireless-tools
+ )
+ pulseaudio? (
+ media-sound/pulseaudio
+ )
+ valgrind? (
+ dev-util/valgrind
+ )
+ optimize? (
+ sys-libs/glibc
+ )
+"
+
+src_prepare() {
+
+ # Ensure that our plugins dir is enabled by default:
+ sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" \
+ "${S}/platform/xpcom/io/nsAppFileLocationProvider.cpp" \
+ || die "sed failed to replace plugin path for 32bit!"
+ sed -i -e "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" \
+ "${S}/platform/xpcom/io/nsAppFileLocationProvider.cpp" \
+ || die "sed failed to replace plugin path for 64bit!"
+
+ default
+}
+
+src_configure() {
+
+ # Does not build with -fno-common
+ filter-flags -fno-common
+ append-flags -fcommon
+
+ # Basic configuration:
+ mozconfig_init
+
+ mozconfig_disable updater install-strip accessibility
+
+ if use official-branding; then
+ official-branding_warning
+ mozconfig_enable official-branding
+ fi
+
+ if use optimize; then
+ O='-O2'
+ if use cpu_flags_x86_sse && use cpu_flags_x86_sse2; then
+ O="${O} -msse2 -mfpmath=sse"
+ fi
+ mozconfig_enable "optimize=\"${O}\""
+ filter-flags '-O*' '-msse2' '-mfpmath=sse'
+ else
+ mozconfig_disable optimize
+ fi
+
+ if use threads; then
+ mozconfig_with pthreads
+ fi
+
+ if use debug; then
+ mozconfig_var MOZ_DEBUG_SYMBOLS 1
+ mozconfig_enable "debug-symbols=\"-gdwarf-2\""
+ fi
+
+ if use jemalloc; then
+ mozconfig_enable jemalloc
+ fi
+
+ if use valgrind; then
+ mozconfig_enable valgrind
+ fi
+
+ if ! use dbus; then
+ mozconfig_disable dbus
+ fi
+
+ if ! use gnome; then
+ mozconfig_disable gconf
+ fi
+
+ if use gtk2; then
+ mozconfig_enable default-toolkit=\"cairo-gtk2\"
+ fi
+
+ if use gtk3; then
+ mozconfig_enable default-toolkit=\"cairo-gtk3\"
+ fi
+
+ if ! use necko-wifi; then
+ mozconfig_disable necko-wifi
+ fi
+
+ if ! use pulseaudio; then
+ mozconfig_disable pulseaudio
+ fi
+
+ if use devtools; then
+ mozconfig_enable devtools
+ fi
+
+ # Enabling this causes xpcshell to hang during the packaging process,
+ # so disabling it until the cause can be tracked down. It most likely
+ # has something to do with the sandbox since the issue goes away when
+ # building with FEATURES="-sandbox -usersandbox".
+ mozconfig_disable precompiled-startupcache
+
+ # Mainly to prevent system's NSS/NSPR from taking precedence over
+ # the built-in ones:
+ append-ldflags -Wl,-rpath="${EPREFIX}/usr/$(get_libdir)/palemoon"
+
+ export MOZBUILD_STATE_PATH="${WORKDIR}/mach_state"
+ mozconfig_var PYTHON "$(which python2)"
+ mozconfig_var AUTOCONF "$(which autoconf-2.13)"
+ mozconfig_var MOZ_MAKE_FLAGS "\"${MAKEOPTS}\""
+
+ # Shorten obj dir to limit some errors linked to the path size hitting
+ # a kernel limit (127 chars):
+ mozconfig_var MOZ_OBJDIR "@TOPSRCDIR@/o"
+
+ # Disable mach notifications, which also cause sandbox access violations:
+ export MOZ_NOSPAM=1
+}
+
+src_compile() {
+
+ # Prevents portage from setting its own XARGS which messes with the
+ # Pale Moon build system checks:
+ # See: https://gitweb.gentoo.org/proj/portage.git/tree/bin/isolated-functions.sh
+ XARGS="$(which xargs)"
+ export XARGS
+
+ python2 "${S}/platform/mach" build || die
+}
+
+src_install() {
+
+ # obj_dir changes depending on arch, compiler, etc:
+ local obj_dir="$(echo */config.log)"
+ obj_dir="${obj_dir%/*}"
+
+ # Disable MPROTECT for startup cache creation:
+ pax-mark m "${obj_dir}"/dist/bin/xpcshell
+
+ # Set the backspace behaviour to be consistent with the other platforms:
+ set_pref "browser.backspace_action" 0
+
+ # Gotta create the package, unpack it and manually install the files
+ # from there not to miss anything (e.g. the statusbar extension):
+ einfo "Creating the package..."
+ python2 "${S}/platform/mach" mozpackage || die
+ local extracted_dir="${T}/package"
+ mkdir -p "${extracted_dir}"
+ cd "${extracted_dir}"
+ einfo "Extracting the package..."
+ find "${S}/${obj_dir}/dist/" -name "*.bz2" -printf "${S}/${obj_dir}/dist/%P" | xargs tar xjpf || die
+ einfo "Installing the package..."
+ local dest_libdir="/usr/$(get_libdir)"
+ mkdir -p "${D}/${dest_libdir}"
+ cp -rL "${PN}" "${D}/${dest_libdir}"
+ dosym "${dest_libdir}/${PN}/${PN}" "/usr/bin/${PN}"
+ einfo "Done installing the package."
+
+ # Until JIT-less builds are supported,
+ # also disable MPROTECT on the main executable:
+ pax-mark m "${D}/${dest_libdir}/${PN}/"{palemoon,palemoon-bin,plugin-container}
+
+ # Install icons and .desktop for menu entry:
+ install_branding_files
+}
diff --git a/www-client/palemoon/palemoon-9999.ebuild b/www-client/palemoon/palemoon-9999.ebuild
index 7c8954a..5088662 100644
--- a/www-client/palemoon/palemoon-9999.ebuild
+++ b/www-client/palemoon/palemoon-9999.ebuild
@@ -33,7 +33,7 @@ IUSE="
gnome
-gtk2
+gtk3
- +jemalloc
+ jemalloc
pulseaudio
-necko-wifi
official-branding
diff --git a/www-client/waterfox/Manifest b/www-client/waterfox/Manifest
index 461f50d..8eda102 100644
--- a/www-client/waterfox/Manifest
+++ b/www-client/waterfox/Manifest
@@ -1,3 +1,4 @@
DIST firefox-56.0-patches-07.tar.xz 12696 BLAKE2B 60fe9e4aee235bebd1ceeeca9f455b5129368e3b83a1a7487e912d28642f2c67f0041f10333f05ce5a17b8b0db05e33730c972038e72c0250551194316a6dfa6 SHA512 b7f1b32b8dc563b2c0c6b12eb1698fbd145c9b45597ef0f46159888e1c792f944c92cd1c1e3d0a5b36a3cf3cdc2f7ae9e8c537adbbfa6a1ce293311d3956a2d2
DIST waterfox-2020.05.tar.gz 409604600 BLAKE2B 2ba76eea8623c27c9bfa4baa182a89c5f6734c107082032cf49a4f3bdda340b3d65c54337553908f8cf8657d9da515d3fa6d3536b4d5ff869092582a85de7e0b SHA512 50bc6c8f2d8a1c9d529c75b466413343a1475fca3b5177067b01f4de19c22a437f549824d19f97b49f0383c146f728a2ebd296daeb0c354c3a3d9ca0db86346f
DIST waterfox-2020.07.1.tar.gz 410117026 BLAKE2B 5c2a54caa27c3dec323c1f66110e288ab84b45b6001eb78ff3623d992d1cea3ea4b6378e1c18e0618ace9f049d341c987cc25231a6d10bec2f3f4df96d20bfe5 SHA512 28c111de097e165fe9e80d20f92e68ef095a10fd136bc906c1ec75ebf4af0aacb31e6f10d74222438014f5d579d68c773cae6e7aedfb78e869fb8d26372d569e
+DIST waterfox-2020.07.2.tar.gz 410119190 BLAKE2B dded02d62a61e664ddf1a24fbfecf7381d5a26dd0360e2fb0844aae79a815e02046fcb997c4e2f355f853a6b5432402c97ed6d45a5fe515707c631345edc2cb2 SHA512 9a554067a9b19d06d6fd3d20f9743d484138130516dd099d0656f4b0a911cbab8c38e0286fd7c0ed66aefebf6c3f1af609c09f4c7fead77278b69f14794bb6d4
diff --git a/www-client/waterfox/waterfox-2020.07.2.ebuild b/www-client/waterfox/waterfox-2020.07.2.ebuild
new file mode 100644
index 0000000..d6c8b9d
--- /dev/null
+++ b/www-client/waterfox/waterfox-2020.07.2.ebuild
@@ -0,0 +1,410 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+VIRTUALX_REQUIRED="pgo"
+WANT_AUTOCONF="2.1"
+MOZ_ESR=""
+
+# This list can be updated with scripts/get_langs.sh from the mozilla overlay
+MOZ_LANGS=( ach af an ar as ast az bg bn-BD bn-IN br bs ca cak cs cy da de dsb
+el en en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE
+gd gl gn gu-IN he hi-IN hr hsb hu hy-AM id is it ja ka kab kk km kn ko lij lt lv
+mai mk ml mr ms nb-NO nl nn-NO or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq
+sr sv-SE ta te th tr uk uz vi xh zh-CN zh-TW )
+
+# Patch version
+PATCH="firefox-56.0-patches-07"
+#PATCH="waterfox-2019.12-patches-01"
+MOZ_HTTP_URI="https://github.com/MrAlex94/Waterfox/archive"
+#MOZ_LANGPACK_HTTP_URI="https://github.com/MrAlex94/www.waterfoxproject.org"
+
+MOZCONFIG_OPTIONAL_WIFI=1
+
+inherit check-reqs eapi7-ver flag-o-matic toolchain-funcs eutils gnome2-utils \
+ mozconfig-v6.56 pax-utils xdg-utils autotools virtualx
+
+MY_PV="${PV}-classic"
+
+DESCRIPTION="Waterfox Web Browser"
+HOMEPAGE="http://www.waterfoxproject.org"
+
+RESTRICT="
+ !test? ( test )
+ mirror
+"
+LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="
+ +gmp-autoupdate
+ eme-free
+ hardened
+ hwaccel
+ jack
+ nsplugin
+ pgo
+ selinux
+ test
+"
+
+PATCH_URIS=( https://dev.gentoo.org/~{anarchy,axs,polynomial-c}/mozilla/patchsets/${PATCH}.tar.xz )
+
+SRC_URI="
+ ${MOZ_HTTP_URI}/${MY_PV}.tar.gz -> ${P}.tar.gz
+ ${PATCH_URIS[@]}
+"
+
+ASM_DEPEND="
+ >=dev-lang/yasm-1.1
+"
+RDEPEND="
+ >=dev-libs/nss-3.32.1
+ >=dev-libs/nspr-4.16
+ jack? (
+ virtual/jack
+ )
+ selinux? (
+ sec-policy/selinux-mozilla
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ virtual/rust
+ pgo? (
+ >=sys-devel/gcc-4.5
+ )
+ amd64? (
+ ${ASM_DEPEND} virtual/opengl
+ )
+ x86? (
+ ${ASM_DEPEND} virtual/opengl
+ )
+"
+
+S="${WORKDIR}/${PN^}-${MY_PV}"
+
+QA_PRESTRIPPED="usr/lib*/${PN}/waterfox"
+
+BUILD_OBJ_DIR="${S}/wf"
+
+# allow GMP_PLUGIN_LIST to be set in an eclass or
+# overridden in the enviromnent (advanced hackers only)
+if [[ -z ${GMP_PLUGIN_LIST} ]]; then
+ GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm )
+fi
+
+pkg_setup() {
+ moz_pkgsetup
+
+ # 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 \
+ XDG_SESSION_COOKIE \
+ XAUTHORITY
+
+ if use pgo; then
+ einfo
+ ewarn "You will do a double build for profile guided optimization."
+ ewarn "This will result in your build taking at least twice as long as before."
+ fi
+}
+
+pkg_pretend() {
+ # Ensure we have enough disk space to compile
+ if use pgo || use debug || use test ; then
+ CHECKREQS_DISK_BUILD="8G"
+ else
+ CHECKREQS_DISK_BUILD="4G"
+ fi
+ check-reqs_pkg_setup
+}
+
+src_prepare() {
+ local patch_exclude=(
+ 1000_gentoo_install_dir.patch
+ 2001_system_harfbuzz.patch
+ 2002_system_graphite2.patch
+ )
+
+ local mpatch
+ for mpatch in ${patch_exclude[@]} ; do
+ if [[ -f "${FILESDIR}"/${mpatch} ]] ; then
+ cp "${FILESDIR}"/${mpatch} \
+ "${WORKDIR}"/firefox/ || die
+ else
+ rm "${WORKDIR}"/firefox/${mpatch} || die
+ fi
+ done
+
+ # Apply our patches
+ eapply "${WORKDIR}/firefox"
+
+ #eapply "${FILESDIR}/${P}-classic-version.patch"
+
+ # Enable gnomebreakpad
+ if use debug ; then
+ sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \
+ "${S}"/build/unix/run-mozilla.sh || die "sed failed!"
+ fi
+
+ # Drop -Wl,--as-needed related manipulation for ia64 as it causes ld sefgaults, bug #582432
+ if use ia64 ; then
+ sed -i \
+ -e '/^OS_LIBS += no_as_needed/d' \
+ -e '/^OS_LIBS += as_needed/d' \
+ "${S}"/widget/gtk/mozgtk/gtk2/moz.build \
+ "${S}"/widget/gtk/mozgtk/gtk3/moz.build \
+ || die "sed failed to drop --as-needed for ia64"
+ fi
+
+ # Ensure that our plugins dir is enabled as default
+ sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" \
+ "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 32bit!"
+ sed -i -e "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" \
+ "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 64bit!"
+
+ # Fix sandbox violations during make clean, bug 372817
+ sed -e "s:\(/no-such-file\):${T}\1:g" \
+ -i "${S}"/config/rules.mk \
+ -i "${S}"/nsprpub/configure{.in,} \
+ || die
+
+ # Don't exit with error when some libs are missing which we have in
+ # system.
+ sed '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' \
+ -i "${S}"/browser/installer/Makefile.in || die
+
+ # Don't error out when there's no files to be removed:
+ sed 's@\(xargs rm\)$@\1 -f@' \
+ -i "${S}"/toolkit/mozapps/installer/packager.mk || die
+
+ # Keep codebase the same even if not using official branding
+ #sed '/^MOZ_DEV_EDITION=1/d' \
+ # -i "${S}"/browser/branding/aurora/configure.sh || die
+
+ # Allow user to apply any additional patches without modifing ebuild
+ eapply_user
+
+ # Autotools configure is now called old-configure.in
+ # This works because there is still a configure.in that happens to be for the
+ # shell wrapper configure script
+ eautoreconf old-configure.in
+
+ # Must run autoconf in js/src
+ cd "${S}"/js/src || die
+ eautoconf old-configure.in
+}
+
+src_configure() {
+ MEXTENSIONS="default"
+ # 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.
+ _google_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
+
+ ####################################
+ #
+ # mozconfig, CFLAGS and CXXFLAGS setup
+ #
+ ####################################
+
+ mozconfig_init
+ mozconfig_config
+
+ # enable JACK, bug 600002
+ mozconfig_use_enable jack
+
+ use eme-free && mozconfig_annotate '+eme-free' --disable-eme
+
+ # It doesn't compile on alpha without this LDFLAGS
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ # Add full relro support for hardened
+ if use hardened; then
+ append-ldflags "-Wl,-z,relro,-z,now"
+ mozconfig_use_enable hardened hardening
+ fi
+
+ # Setup api key for location services
+ echo -n "${_google_api_key}" > "${S}"/google-api-key
+ mozconfig_annotate '' --with-google-api-keyfile="${S}/google-api-key"
+
+ mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}"
+
+ # Waterfox specific stuff
+ mozconfig_annotate 'Waterfox' --disable-elf-hack
+ mozconfig_annotate 'Waterfox' --with-app-name=${PN}
+ mozconfig_annotate 'Waterfox' --with-app-basename=${PN}
+ mozconfig_annotate 'Waterfox' --with-branding=browser/branding/unofficial
+ mozconfig_annotate 'Waterfox' --with-distribution-id=org.waterfoxproject
+
+ # Allow for a proper pgo build
+ if use pgo; then
+ echo "mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 \$(MAKE) -C \$(MOZ_OBJDIR) pgo-profile-run'" >> "${S}"/.mozconfig
+ fi
+
+ echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig
+ echo "mk_add_options XARGS=/usr/bin/xargs" >> "${S}"/.mozconfig
+
+ # Finalize and report settings
+ mozconfig_final
+
+ # workaround for funky/broken upstream configure...
+ SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
+ emake -f client.mk configure
+}
+
+src_compile() {
+ if use pgo; then
+ addpredict /root
+ addpredict /etc/gconf
+ # Reset and cleanup environment variables used by GNOME/XDG
+ gnome2_environment_reset
+
+ # Firefox tries to use dri stuff when it's run, see bug 380283
+ shopt -s nullglob
+ cards=$(echo -n /dev/dri/card* | sed 's/ /:/g')
+ if test -z "${cards}"; then
+ cards=$(echo -n /dev/ati/card* /dev/nvidiactl* | sed 's/ /:/g')
+ if test -n "${cards}"; then
+ # Binary drivers seem to cause access violations anyway, so
+ # let's use indirect rendering so that the device files aren't
+ # touched at all. See bug 394715.
+ export LIBGL_ALWAYS_INDIRECT=1
+ fi
+ fi
+ shopt -u nullglob
+ [[ -n "${cards}" ]] && addpredict "${cards}"
+
+ MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
+ virtx emake -f client.mk profiledbuild || die "virtx emake failed"
+ else
+ MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
+ emake -f client.mk realbuild
+ fi
+
+}
+
+src_install() {
+ cd "${BUILD_OBJ_DIR}" || die
+
+ # Pax mark xpcshell for hardened support, only used for startupcache creation.
+ pax-mark m "${BUILD_OBJ_DIR}"/dist/bin/xpcshell
+
+ # Add our default prefs for firefox
+ cp "${FILESDIR}"/gentoo-default-prefs.js-1 \
+ "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
+ || die
+
+ mozconfig_install_prefs \
+ "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js"
+
+ # Augment this with hwaccel prefs
+ if use hwaccel ; then
+ cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-1 >> \
+ "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
+ || die
+ fi
+
+ echo "pref(\"extensions.autoDisableScopes\", 3);" >> \
+ "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
+ || die
+
+ if use nsplugin; then
+ echo "pref(\"plugin.load_flash_only\", false);" >> \
+ "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
+ || die
+ fi
+
+ local plugin
+ use gmp-autoupdate || use eme-free || for plugin in "${GMP_PLUGIN_LIST[@]}" ; do
+ echo "pref(\"media.${plugin}.autoupdate\", false);" >> \
+ "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
+ || die
+ done
+
+ MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
+ emake DESTDIR="${D}" install
+
+ # Install language packs
+ #mozlinguas_src_install
+
+ local size sizes icon_path icon name
+
+ sizes="16 22 24 32 256"
+ icon_path="${S}/browser/branding/unofficial"
+ icon="${PN}"
+ name="Waterfox"
+
+ # Install icons and .desktop for menu entry
+ for size in ${sizes}; do
+ insinto "/usr/share/icons/hicolor/${size}x${size}/apps"
+ newins "${icon_path}/default${size}.png" "${icon}.png"
+ done
+ # The 128x128 icon has a different name
+ insinto "/usr/share/icons/hicolor/128x128/apps"
+ doins "${icon_path}/${icon}.png"
+ # Install a 48x48 icon into /usr/share/pixmaps for legacy DEs
+ newicon "${icon_path}/default48.png" "${icon}.png"
+ newmenu "${FILESDIR}/icon/${PN}.desktop" "${PN}.desktop"
+ sed -i -e "s:@NAME@:${name}:" -e "s:@ICON@:${icon}:" \
+ "${ED%/}/usr/share/applications/${PN}.desktop" \
+ || die
+
+ # Add StartupNotify=true bug 237317
+ if use startup-notification ; then
+ echo "StartupNotify=true" >> \
+ "${ED%/}/usr/share/applications/${PN}.desktop" || die
+ fi
+
+ # Required in order to use plugins and even run firefox on hardened.
+ pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/{waterfox,waterfox-bin,plugin-container}
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+
+ # if the apulse libs are available in MOZILLA_FIVE_HOME then apulse
+ # doesn't need to be forced into the LD_LIBRARY_PATH
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.9" ; 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() {
+ # Update mimedb for the new .desktop file
+ xdg_desktop_database_update
+ gnome2_icon_cache_update
+
+ if ! use gmp-autoupdate && ! use eme-free ; then
+ elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or"
+ elog "installing into new profiles:"
+ local plugin
+ for plugin in "${GMP_PLUGIN_LIST[@]}"; do elog "\t ${plugin}" ; done
+ fi
+
+ if use pulseaudio && has_version ">=media-sound/apulse-0.1.9"; 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."
+ fi
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}