www-client/waterfox: new package; new eclasses
This commit is contained in:
parent
88fb558095
commit
78e4fab76b
398
eclass/mozconfig-v6.56.eclass
Normal file
398
eclass/mozconfig-v6.56.eclass
Normal file
@ -0,0 +1,398 @@
|
|||||||
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
#
|
||||||
|
# @ECLASS: mozconfig-v6.55.eclass
|
||||||
|
# @MAINTAINER:
|
||||||
|
# mozilla team <mozilla@gentoo.org>
|
||||||
|
# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v6
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# This eclass is used in mozilla ebuilds (firefox, thunderbird, seamonkey)
|
||||||
|
# to provide a single common place for the common mozilla engine compoments.
|
||||||
|
#
|
||||||
|
# The eclass provides all common dependencies as well as common use flags.
|
||||||
|
#
|
||||||
|
# Some use flags which may be optional in particular mozilla packages can be
|
||||||
|
# supported through setting eclass variables.
|
||||||
|
#
|
||||||
|
# This eclass inherits mozconfig helper functions as defined in mozcoreconf-v3,
|
||||||
|
# and so ebuilds inheriting this eclass do not need to inherit that.
|
||||||
|
|
||||||
|
case ${EAPI} in
|
||||||
|
0|1|2|3|4)
|
||||||
|
die "EAPI=${EAPI} not supported"
|
||||||
|
;;
|
||||||
|
5)
|
||||||
|
inherit multilib
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
inherit flag-o-matic toolchain-funcs
|
||||||
|
|
||||||
|
case ${PN} in
|
||||||
|
(seamonkey) inherit mozcoreconf-v6 ;;
|
||||||
|
(waterfox) inherit mozcoreconf-v5 ;;
|
||||||
|
(*) die "Don't use this eclass with some other package!" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Set this variable before the inherit line, when an ebuild needs to provide
|
||||||
|
# optional necko-wifi support via IUSE="wifi". Currently this would include
|
||||||
|
# ebuilds for firefox, and potentially seamonkey.
|
||||||
|
#
|
||||||
|
# Leave the variable UNSET if necko-wifi support should not be available.
|
||||||
|
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||||
|
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||||
|
|
||||||
|
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_JIT
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Set this variable before the inherit line, when an ebuild needs to provide
|
||||||
|
# deterministic jit support via IUSE="jit". The upstream default will be used
|
||||||
|
# otherwise, which is generally to enable jit unless support for the platform
|
||||||
|
# is missing.
|
||||||
|
#
|
||||||
|
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||||
|
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||||
|
|
||||||
|
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK3
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Set this variable before the inherit line, when an ebuild can provide
|
||||||
|
# optional gtk3 support via IUSE="force-gtk3". Currently this would include
|
||||||
|
# thunderbird and seamonkey in the future, once support is ready for testing.
|
||||||
|
#
|
||||||
|
# Leave the variable UNSET if gtk3 support should not be optionally available.
|
||||||
|
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||||
|
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||||
|
# If gtk+:3 is to be the standard toolkit, do not use this and instead use
|
||||||
|
# MOZCONFIG_OPTIONAL_GTK2ONLY.
|
||||||
|
|
||||||
|
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK2ONLY
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Set this variable before the inherit line, when an ebuild can provide
|
||||||
|
# optional gtk2-only support via IUSE="gtk2".
|
||||||
|
#
|
||||||
|
# Note that this option conflicts directly with MOZCONFIG_OPTIONAL_GTK3, both
|
||||||
|
# variables cannot be set at the same time and this variable will be ignored if
|
||||||
|
# MOZCONFIG_OPTIONAL_GTK3 is set.
|
||||||
|
#
|
||||||
|
# Leave the variable UNSET if gtk2-only support should not be available.
|
||||||
|
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||||
|
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||||
|
|
||||||
|
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_QT5
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Set this variable before the inherit line, when an ebuild can provide
|
||||||
|
# optional qt5 support via IUSE="qt5". Currently this would include
|
||||||
|
# ebuilds for firefox, but thunderbird and seamonkey could follow in the future.
|
||||||
|
#
|
||||||
|
# Leave the variable UNSET if qt5 support should not be available.
|
||||||
|
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||||
|
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||||
|
|
||||||
|
# use-flags common among all mozilla ebuilds
|
||||||
|
IUSE="${IUSE} dbus debug neon pulseaudio selinux startup-notification system-harfbuzz
|
||||||
|
system-icu system-jpeg system-libevent system-sqlite system-libvpx"
|
||||||
|
|
||||||
|
# some notes on deps:
|
||||||
|
# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14
|
||||||
|
# media-libs/mesa needs to be 10.2 or above due to a bug with flash+vdpau
|
||||||
|
|
||||||
|
RDEPEND=">=app-text/hunspell-1.5.4:=
|
||||||
|
dev-libs/atk
|
||||||
|
dev-libs/expat
|
||||||
|
>=x11-libs/cairo-1.10[X]
|
||||||
|
>=x11-libs/gtk+-2.18:2
|
||||||
|
x11-libs/gdk-pixbuf
|
||||||
|
>=x11-libs/pango-1.22.0
|
||||||
|
>=media-libs/libpng-1.6.31:0=[apng]
|
||||||
|
>=media-libs/mesa-10.2:*
|
||||||
|
media-libs/fontconfig
|
||||||
|
>=media-libs/freetype-2.4.10
|
||||||
|
kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) )
|
||||||
|
pulseaudio? ( || ( media-sound/pulseaudio
|
||||||
|
>=media-sound/apulse-0.1.9 ) )
|
||||||
|
virtual/freedesktop-icon-theme
|
||||||
|
dbus? ( >=sys-apps/dbus-0.60
|
||||||
|
>=dev-libs/dbus-glib-0.72 )
|
||||||
|
startup-notification? ( >=x11-libs/startup-notification-0.8 )
|
||||||
|
>=x11-libs/pixman-0.19.2
|
||||||
|
>=dev-libs/glib-2.26:2
|
||||||
|
>=sys-libs/zlib-1.2.3
|
||||||
|
>=virtual/libffi-3.0.10
|
||||||
|
virtual/ffmpeg
|
||||||
|
x11-libs/libX11
|
||||||
|
x11-libs/libXcomposite
|
||||||
|
x11-libs/libXdamage
|
||||||
|
x11-libs/libXext
|
||||||
|
x11-libs/libXfixes
|
||||||
|
x11-libs/libXrender
|
||||||
|
x11-libs/libXt
|
||||||
|
system-icu? ( >=dev-libs/icu-59.1:= )
|
||||||
|
system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
|
||||||
|
system-libevent? ( >=dev-libs/libevent-2.0:0= )
|
||||||
|
system-sqlite? ( >=dev-db/sqlite-3.19.3:3[secure-delete,debug=] )
|
||||||
|
system-libvpx? ( >=media-libs/libvpx-1.5.0:0=[postproc] )
|
||||||
|
system-harfbuzz? ( >=media-libs/harfbuzz-1.3.3:0= >=media-gfx/graphite2-1.3.9-r1 )
|
||||||
|
"
|
||||||
|
|
||||||
|
if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
|
||||||
|
MOZCONFIG_OPTIONAL_GTK2ONLY=
|
||||||
|
if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then
|
||||||
|
IUSE+=" +force-gtk3"
|
||||||
|
else
|
||||||
|
IUSE+=" force-gtk3"
|
||||||
|
fi
|
||||||
|
RDEPEND+=" force-gtk3? ( >=x11-libs/gtk+-3.4.0:3 )"
|
||||||
|
elif [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then
|
||||||
|
if [[ ${MOZCONFIG_OPTIONAL_GTK2ONLY} = "enabled" ]]; then
|
||||||
|
IUSE+=" +gtk2"
|
||||||
|
else
|
||||||
|
IUSE+=" gtk2"
|
||||||
|
fi
|
||||||
|
RDEPEND+=" !gtk2? ( >=x11-libs/gtk+-3.4.0:3 )"
|
||||||
|
else
|
||||||
|
# no gtk3 related dep set by optional use flags, force it
|
||||||
|
RDEPEND+=" >=x11-libs/gtk+-3.4.0:3"
|
||||||
|
fi
|
||||||
|
if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then
|
||||||
|
if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then
|
||||||
|
IUSE+=" +wifi"
|
||||||
|
else
|
||||||
|
IUSE+=" wifi"
|
||||||
|
fi
|
||||||
|
RDEPEND+="
|
||||||
|
wifi? (
|
||||||
|
kernel_linux? ( >=sys-apps/dbus-0.60
|
||||||
|
>=dev-libs/dbus-glib-0.72
|
||||||
|
net-misc/networkmanager )
|
||||||
|
)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DEPEND="app-arch/zip
|
||||||
|
app-arch/unzip
|
||||||
|
>=sys-devel/binutils-2.16.1
|
||||||
|
sys-apps/findutils
|
||||||
|
pulseaudio? ( media-sound/pulseaudio )
|
||||||
|
${RDEPEND}"
|
||||||
|
|
||||||
|
RDEPEND+="
|
||||||
|
pulseaudio? ( || ( media-sound/pulseaudio
|
||||||
|
>=media-sound/apulse-0.1.9 ) )
|
||||||
|
selinux? ( sec-policy/selinux-mozilla )"
|
||||||
|
|
||||||
|
# @FUNCTION: mozconfig_config
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Set common configure options for mozilla packages.
|
||||||
|
# Call this within src_configure() phase, after mozconfig_init
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# inherit mozconfig-v6.46
|
||||||
|
#
|
||||||
|
# src_configure() {
|
||||||
|
# mozconfig_init
|
||||||
|
# mozconfig_config
|
||||||
|
# # ... misc ebuild-unique settings via calls to
|
||||||
|
# # ... mozconfig_{annotate,use_with,use_enable}
|
||||||
|
# mozconfig_final
|
||||||
|
# }
|
||||||
|
|
||||||
|
mozconfig_config() {
|
||||||
|
# Migrated from mozcoreconf-2
|
||||||
|
mozconfig_annotate 'system_libs' \
|
||||||
|
--with-system-zlib \
|
||||||
|
--with-system-bz2
|
||||||
|
|
||||||
|
# Disable for testing purposes only
|
||||||
|
mozconfig_annotate 'Upstream bug 1341234' --disable-stylo
|
||||||
|
|
||||||
|
# Must pass release in order to properly select linker via gold useflag
|
||||||
|
mozconfig_annotate 'Enable by Gentoo' --enable-release
|
||||||
|
|
||||||
|
# Must pass --enable-gold if using ld.gold
|
||||||
|
if tc-ld-is-gold ; then
|
||||||
|
mozconfig_annotate 'tc-ld-is-gold=true' --enable-gold
|
||||||
|
else
|
||||||
|
mozconfig_annotate 'tc-ld-is-gold=false' --disable-gold
|
||||||
|
fi
|
||||||
|
|
||||||
|
if has bindist ${IUSE}; then
|
||||||
|
mozconfig_use_enable !bindist official-branding
|
||||||
|
if [[ ${PN} == firefox ]] && use bindist ; then
|
||||||
|
mozconfig_annotate '' --with-branding=browser/branding/aurora
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Enable position independent executables
|
||||||
|
mozconfig_annotate 'enabled by Gentoo' --enable-pie
|
||||||
|
mozconfig_use_enable debug
|
||||||
|
mozconfig_use_enable debug tests
|
||||||
|
|
||||||
|
if ! use debug ; then
|
||||||
|
mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols
|
||||||
|
else
|
||||||
|
mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols
|
||||||
|
fi
|
||||||
|
|
||||||
|
mozconfig_use_enable startup-notification
|
||||||
|
|
||||||
|
if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]] ; then
|
||||||
|
# wifi pulls in dbus so manage both here
|
||||||
|
mozconfig_use_enable wifi necko-wifi
|
||||||
|
if use kernel_linux && use wifi && ! use dbus; then
|
||||||
|
echo "Enabling dbus support due to wifi request"
|
||||||
|
mozconfig_annotate 'dbus required by necko-wifi on linux' --enable-dbus
|
||||||
|
else
|
||||||
|
mozconfig_use_enable dbus
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
mozconfig_use_enable dbus
|
||||||
|
mozconfig_annotate 'disabled' --disable-necko-wifi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
|
||||||
|
mozconfig_use_enable jit ion
|
||||||
|
fi
|
||||||
|
|
||||||
|
# These are enabled by default in all mozilla applications
|
||||||
|
mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${SYSROOT}${EPREFIX}"/usr
|
||||||
|
mozconfig_annotate '' --with-system-nss --with-nss-prefix="${SYSROOT}${EPREFIX}"/usr
|
||||||
|
mozconfig_annotate '' --x-includes="${SYSROOT}${EPREFIX}"/usr/include --x-libraries="${SYSROOT}${EPREFIX}"/usr/$(get_libdir)
|
||||||
|
if use system-libevent; then
|
||||||
|
mozconfig_annotate '' --with-system-libevent="${SYSROOT}${EPREFIX}"/usr
|
||||||
|
fi
|
||||||
|
mozconfig_annotate '' --prefix="${EPREFIX}"/usr
|
||||||
|
mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
|
||||||
|
mozconfig_annotate 'Gentoo default' --enable-system-hunspell
|
||||||
|
mozconfig_annotate '' --disable-crashreporter
|
||||||
|
mozconfig_annotate 'Gentoo default' --with-system-png
|
||||||
|
mozconfig_annotate '' --enable-system-ffi
|
||||||
|
mozconfig_annotate '' --disable-gconf
|
||||||
|
mozconfig_annotate '' --with-intl-api
|
||||||
|
|
||||||
|
# skia has no support for big-endian platforms
|
||||||
|
if [[ $(tc-endian) == "big" ]]; then
|
||||||
|
mozconfig_annotate 'big endian target' --disable-skia
|
||||||
|
else
|
||||||
|
mozconfig_annotate '' --enable-skia
|
||||||
|
fi
|
||||||
|
|
||||||
|
# default toolkit is cairo-gtk3, optional use flags can change this
|
||||||
|
local toolkit="cairo-gtk3"
|
||||||
|
local toolkit_comment=""
|
||||||
|
if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
|
||||||
|
if ! use force-gtk3; then
|
||||||
|
toolkit="cairo-gtk2"
|
||||||
|
toolkit_comment="force-gtk3 use flag"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then
|
||||||
|
if use gtk2 ; then
|
||||||
|
toolkit="cairo-gtk2"
|
||||||
|
else
|
||||||
|
toolkit_comment="gtk2 use flag"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then
|
||||||
|
if use qt5; then
|
||||||
|
toolkit="cairo-qt"
|
||||||
|
toolkit_comment="qt5 use flag"
|
||||||
|
# need to specify these vars because the qt5 versions are not found otherwise,
|
||||||
|
# and setting --with-qtdir overrides the pkg-config include dirs
|
||||||
|
local i
|
||||||
|
for i in qmake moc rcc; do
|
||||||
|
echo "export HOST_${i^^}=\"$(qt5_get_bindir)/${i}\"" \
|
||||||
|
>> "${S}"/.mozconfig || die
|
||||||
|
done
|
||||||
|
echo 'unset QTDIR' >> "${S}"/.mozconfig || die
|
||||||
|
mozconfig_annotate '+qt5' --disable-gio
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
mozconfig_annotate "${toolkit_comment}" --enable-default-toolkit=${toolkit}
|
||||||
|
|
||||||
|
# Instead of the standard --build= and --host=, mozilla uses --host instead
|
||||||
|
# of --build, and --target intstead of --host.
|
||||||
|
# Note, mozilla also has --build but it does not do what you think it does.
|
||||||
|
# Set both --target and --host as mozilla uses python to guess values otherwise
|
||||||
|
mozconfig_annotate '' --target="${CHOST}"
|
||||||
|
mozconfig_annotate '' --host="${CBUILD:-${CHOST}}"
|
||||||
|
|
||||||
|
mozconfig_use_enable pulseaudio
|
||||||
|
# force the deprecated alsa sound code if pulseaudio is disabled
|
||||||
|
if use kernel_linux && ! use pulseaudio ; then
|
||||||
|
mozconfig_annotate '-pulseaudio' --enable-alsa
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For testing purpose only
|
||||||
|
mozconfig_annotate 'Sandbox' --enable-content-sandbox
|
||||||
|
|
||||||
|
mozconfig_use_enable system-sqlite
|
||||||
|
mozconfig_use_with system-jpeg
|
||||||
|
mozconfig_use_with system-icu
|
||||||
|
mozconfig_use_with system-libvpx
|
||||||
|
mozconfig_use_with system-harfbuzz
|
||||||
|
mozconfig_use_with system-harfbuzz system-graphite2
|
||||||
|
|
||||||
|
# Modifications to better support ARM, bug 553364
|
||||||
|
if use neon ; then
|
||||||
|
mozconfig_annotate '' --with-fpu=neon
|
||||||
|
mozconfig_annotate '' --with-thumb=yes
|
||||||
|
mozconfig_annotate '' --with-thumb-interwork=no
|
||||||
|
fi
|
||||||
|
if [[ ${CHOST} == armv* ]] ; then
|
||||||
|
mozconfig_annotate '' --with-float-abi=hard
|
||||||
|
if ! use system-libvpx ; then
|
||||||
|
sed -i -e "s|softfp|hard|" \
|
||||||
|
"${S}"/media/libvpx/moz.build
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: mozconfig_install_prefs
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Set preferences into the prefs.js file specified as a parameter to
|
||||||
|
# the function. This sets both some common prefs to all mozilla
|
||||||
|
# packages, and any prefs that may relate to the use flags administered
|
||||||
|
# by mozconfig_config().
|
||||||
|
#
|
||||||
|
# Call this within src_install() phase, after copying the template
|
||||||
|
# prefs file (if any) from ${FILESDIR}
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# inherit mozconfig-v6.46
|
||||||
|
#
|
||||||
|
# src_install() {
|
||||||
|
# cp "${FILESDIR}"/gentoo-default-prefs.js \
|
||||||
|
# "${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"
|
||||||
|
#
|
||||||
|
# ...
|
||||||
|
# }
|
||||||
|
|
||||||
|
mozconfig_install_prefs() {
|
||||||
|
local prefs_file="${1}"
|
||||||
|
|
||||||
|
einfo "Adding prefs from mozconfig to ${prefs_file}"
|
||||||
|
|
||||||
|
# set dictionary path, to use system hunspell
|
||||||
|
echo "pref(\"spellchecker.dictionary_path\", \"${EPREFIX}/usr/share/myspell\");" \
|
||||||
|
>>"${prefs_file}" || die
|
||||||
|
|
||||||
|
# force the graphite pref if system-harfbuzz is enabled, since the pref cant disable it
|
||||||
|
if use system-harfbuzz ; then
|
||||||
|
echo "sticky_pref(\"gfx.font_rendering.graphite.enabled\",true);" \
|
||||||
|
>>"${prefs_file}" || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# force cairo as the canvas renderer on platforms without skia support
|
||||||
|
if [[ $(tc-endian) == "big" ]] ; then
|
||||||
|
echo "sticky_pref(\"gfx.canvas.azure.backends\",\"cairo\");" \
|
||||||
|
>>"${prefs_file}" || die
|
||||||
|
echo "sticky_pref(\"gfx.content.azure.backends\",\"cairo\");" \
|
||||||
|
>>"${prefs_file}" || die
|
||||||
|
fi
|
||||||
|
}
|
278
eclass/mozcoreconf-v5.eclass
Normal file
278
eclass/mozcoreconf-v5.eclass
Normal file
@ -0,0 +1,278 @@
|
|||||||
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
#
|
||||||
|
# @ECLASS: mozcoreconf-v5.eclass
|
||||||
|
# @MAINTAINER:
|
||||||
|
# Mozilla team <mozilla@gentoo.org>
|
||||||
|
# @BLURB: core options and configuration functions for mozilla
|
||||||
|
# @DESCRIPTION:
|
||||||
|
#
|
||||||
|
# inherit mozconfig-v6.* or above for mozilla configuration support
|
||||||
|
|
||||||
|
# @ECLASS-VARIABLE: MOZILLA_FIVE_HOME
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# This is an eclass-generated variable that defines the rpath that the mozilla
|
||||||
|
# product will be installed in. Read-only
|
||||||
|
|
||||||
|
if [[ ! ${_MOZCORECONF} ]]; then
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python2_7 )
|
||||||
|
PYTHON_REQ_USE='ncurses,sqlite,ssl,threads'
|
||||||
|
|
||||||
|
inherit multilib toolchain-funcs flag-o-matic python-any-r1 versionator
|
||||||
|
|
||||||
|
IUSE="${IUSE} custom-cflags custom-optimization"
|
||||||
|
|
||||||
|
DEPEND="virtual/pkgconfig
|
||||||
|
${PYTHON_DEPS}"
|
||||||
|
|
||||||
|
# @FUNCTION: mozconfig_annotate
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# add an annotated line to .mozconfig
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# mozconfig_annotate "building on ultrasparc" --enable-js-ultrasparc
|
||||||
|
# => ac_add_options --enable-js-ultrasparc # building on ultrasparc
|
||||||
|
mozconfig_annotate() {
|
||||||
|
declare reason=$1 x ; shift
|
||||||
|
[[ $# -gt 0 ]] || die "mozconfig_annotate missing flags for ${reason}\!"
|
||||||
|
for x in ${*}; do
|
||||||
|
echo "ac_add_options ${x} # ${reason}" >>.mozconfig
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: mozconfig_use_enable
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# add a line to .mozconfig based on a USE-flag
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# mozconfig_use_enable truetype freetype2
|
||||||
|
# => ac_add_options --enable-freetype2 # +truetype
|
||||||
|
mozconfig_use_enable() {
|
||||||
|
declare flag=$(use_enable "$@")
|
||||||
|
mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION mozconfig_use_with
|
||||||
|
# @DESCRIPTION
|
||||||
|
# add a line to .mozconfig based on a USE-flag
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# mozconfig_use_with kerberos gss-api /usr/$(get_libdir)
|
||||||
|
# => ac_add_options --with-gss-api=/usr/lib # +kerberos
|
||||||
|
mozconfig_use_with() {
|
||||||
|
declare flag=$(use_with "$@")
|
||||||
|
mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION mozconfig_use_extension
|
||||||
|
# @DESCRIPTION
|
||||||
|
# enable or disable an extension based on a USE-flag
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# mozconfig_use_extension gnome gnomevfs
|
||||||
|
# => ac_add_options --enable-extensions=gnomevfs
|
||||||
|
mozconfig_use_extension() {
|
||||||
|
declare minus=$(use $1 || echo -)
|
||||||
|
mozconfig_annotate "${minus:-+}$1" --enable-extensions=${minus}${2}
|
||||||
|
}
|
||||||
|
|
||||||
|
moz_pkgsetup() {
|
||||||
|
# Ensure we use C locale when building
|
||||||
|
export LANG="C"
|
||||||
|
export LC_ALL="C"
|
||||||
|
export LC_MESSAGES="C"
|
||||||
|
export LC_CTYPE="C"
|
||||||
|
|
||||||
|
# Ensure we use correct toolchain
|
||||||
|
export HOST_CC="$(tc-getBUILD_CC)"
|
||||||
|
export HOST_CXX="$(tc-getBUILD_CXX)"
|
||||||
|
tc-export CC CXX LD PKG_CONFIG
|
||||||
|
|
||||||
|
# Ensure that we have a sane build enviroment
|
||||||
|
export MOZILLA_CLIENT=1
|
||||||
|
export BUILD_OPT=1
|
||||||
|
export NO_STATIC_LIB=1
|
||||||
|
export USE_PTHREADS=1
|
||||||
|
export ALDFLAGS=${LDFLAGS}
|
||||||
|
# ensure MOZCONFIG is not defined
|
||||||
|
unset MOZCONFIG
|
||||||
|
|
||||||
|
# set MOZILLA_FIVE_HOME
|
||||||
|
export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
|
||||||
|
|
||||||
|
# nested configure scripts in mozilla products generate unrecognized options
|
||||||
|
# false positives when toplevel configure passes downwards.
|
||||||
|
export QA_CONFIGURE_OPTIONS=".*"
|
||||||
|
|
||||||
|
if [[ $(gcc-major-version) -eq 3 ]]; then
|
||||||
|
ewarn "Unsupported compiler detected, DO NOT file bugs for"
|
||||||
|
ewarn "outdated compilers. Bugs opened with gcc-3 will be closed"
|
||||||
|
ewarn "invalid."
|
||||||
|
fi
|
||||||
|
|
||||||
|
python-any-r1_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: mozconfig_init
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Initialize mozilla configuration and populate with core settings.
|
||||||
|
# This should be called in src_configure before any other mozconfig_* functions.
|
||||||
|
mozconfig_init() {
|
||||||
|
declare enable_optimize pango_version myext x
|
||||||
|
declare XUL=$([[ ${PN} == xulrunner ]] && echo true || echo false)
|
||||||
|
declare FF=$([[ ${PN} == firefox ]] && echo true || echo false)
|
||||||
|
declare SM=$([[ ${PN} == seamonkey ]] && echo true || echo false)
|
||||||
|
declare TB=$([[ ${PN} == thunderbird ]] && echo true || echo false)
|
||||||
|
declare WF=$([[ ${PN} == waterfox ]] && echo true || echo false)
|
||||||
|
|
||||||
|
####################################
|
||||||
|
#
|
||||||
|
# Setup the initial .mozconfig
|
||||||
|
# See http://www.mozilla.org/build/configure-build.html
|
||||||
|
#
|
||||||
|
####################################
|
||||||
|
|
||||||
|
case ${PN} in
|
||||||
|
*xulrunner)
|
||||||
|
cp xulrunner/config/mozconfig .mozconfig \
|
||||||
|
|| die "cp xulrunner/config/mozconfig failed" ;;
|
||||||
|
*firefox|waterfox)
|
||||||
|
cp browser/config/mozconfig .mozconfig \
|
||||||
|
|| die "cp browser/config/mozconfig failed" ;;
|
||||||
|
seamonkey)
|
||||||
|
# Must create the initial mozconfig to enable application
|
||||||
|
: >.mozconfig || die "initial mozconfig creation failed"
|
||||||
|
mozconfig_annotate "" --enable-application=suite ;;
|
||||||
|
*thunderbird)
|
||||||
|
# Must create the initial mozconfig to enable application
|
||||||
|
: >.mozconfig || die "initial mozconfig creation failed"
|
||||||
|
mozconfig_annotate "" --enable-application=mail ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
####################################
|
||||||
|
#
|
||||||
|
# CFLAGS setup and ARCH support
|
||||||
|
#
|
||||||
|
####################################
|
||||||
|
|
||||||
|
# Set optimization level
|
||||||
|
if [[ $(gcc-major-version) -ge 7 ]]; then
|
||||||
|
mozconfig_annotate "Workaround known breakage" --enable-optimize=-O2
|
||||||
|
elif [[ ${ARCH} == hppa ]]; then
|
||||||
|
mozconfig_annotate "more than -O0 causes a segfault on hppa" --enable-optimize=-O0
|
||||||
|
elif [[ ${ARCH} == x86 ]]; then
|
||||||
|
mozconfig_annotate "less then -O2 causes a segfault on x86" --enable-optimize=-O2
|
||||||
|
elif use custom-optimization || [[ ${ARCH} =~ (alpha|ia64) ]]; then
|
||||||
|
# Set optimization level based on CFLAGS
|
||||||
|
if is-flag -O0; then
|
||||||
|
mozconfig_annotate "from CFLAGS" --enable-optimize=-O0
|
||||||
|
elif [[ ${ARCH} == ppc ]] && has_version '>=sys-libs/glibc-2.8'; then
|
||||||
|
mozconfig_annotate "more than -O1 segfaults on ppc with glibc-2.8" --enable-optimize=-O1
|
||||||
|
elif is-flag -O4; then
|
||||||
|
mozconfig_annotate "from CFLAGS" --enable-optimize=-O4
|
||||||
|
elif is-flag -O3; then
|
||||||
|
mozconfig_annotate "from CFLAGS" --enable-optimize=-O3
|
||||||
|
elif is-flag -O1; then
|
||||||
|
mozconfig_annotate "from CFLAGS" --enable-optimize=-O1
|
||||||
|
elif is-flag -Os; then
|
||||||
|
mozconfig_annotate "from CFLAGS" --enable-optimize=-Os
|
||||||
|
else
|
||||||
|
mozconfig_annotate "Gentoo's default optimization" --enable-optimize=-O2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Enable Mozilla's default
|
||||||
|
mozconfig_annotate "mozilla default" --enable-optimize
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Strip optimization so it does not end up in compile string
|
||||||
|
filter-flags '-O*'
|
||||||
|
|
||||||
|
# Strip over-aggressive CFLAGS
|
||||||
|
use custom-cflags || strip-flags
|
||||||
|
|
||||||
|
# Additional ARCH support
|
||||||
|
case "${ARCH}" in
|
||||||
|
arm)
|
||||||
|
# Reduce the memory requirements for linking
|
||||||
|
append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
|
||||||
|
;;
|
||||||
|
alpha)
|
||||||
|
# Historically we have needed to add -fPIC manually for 64-bit.
|
||||||
|
# Additionally, alpha should *always* build with -mieee for correct math
|
||||||
|
# operation
|
||||||
|
append-flags -fPIC -mieee
|
||||||
|
;;
|
||||||
|
ia64)
|
||||||
|
# Historically we have needed to add this manually for 64-bit
|
||||||
|
append-flags -fPIC
|
||||||
|
;;
|
||||||
|
ppc64)
|
||||||
|
append-flags -fPIC -mminimal-toc
|
||||||
|
# Reduce the memory requirements for linking
|
||||||
|
append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# We need to append flags for gcc-6 support
|
||||||
|
if [[ $(gcc-major-version) -ge 6 ]]; then
|
||||||
|
append-cxxflags -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use the MOZILLA_FIVE_HOME for the rpath
|
||||||
|
append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
|
||||||
|
# Set MOZILLA_FIVE_HOME in mozconfig
|
||||||
|
mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME}
|
||||||
|
|
||||||
|
####################################
|
||||||
|
#
|
||||||
|
# mozconfig setup
|
||||||
|
#
|
||||||
|
####################################
|
||||||
|
|
||||||
|
mozconfig_annotate disable_update_strip \
|
||||||
|
--disable-updater \
|
||||||
|
--disable-strip \
|
||||||
|
--disable-install-strip
|
||||||
|
|
||||||
|
# jemalloc won't build with older glibc
|
||||||
|
! has_version ">=sys-libs/glibc-2.4" && mozconfig_annotate "we have old glibc" --disable-jemalloc
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: mozconfig_final
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Apply EXTRA_ECONF values to .mozconfig
|
||||||
|
# Display a table describing all configuration options paired
|
||||||
|
# with reasons, then clean up extensions list.
|
||||||
|
# This should be called in src_configure at the end of all other mozconfig_* functions.
|
||||||
|
mozconfig_final() {
|
||||||
|
declare 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_annotate "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
|
||||||
|
|
||||||
|
# Resolve multiple --enable-extensions down to one
|
||||||
|
declare exts=$(sed -n 's/^ac_add_options --enable-extensions=\([^ ]*\).*/\1/p' \
|
||||||
|
.mozconfig | xargs)
|
||||||
|
sed -i '/^ac_add_options --enable-extensions/d' .mozconfig
|
||||||
|
echo "ac_add_options --enable-extensions=${exts// /,}" >> .mozconfig
|
||||||
|
}
|
||||||
|
|
||||||
|
_MOZCORECONF=1
|
||||||
|
fi
|
2
www-client/waterfox/Manifest
Normal file
2
www-client/waterfox/Manifest
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
DIST firefox-56.0-patches-07.tar.xz 12696 BLAKE2B 60fe9e4aee235bebd1ceeeca9f455b5129368e3b83a1a7487e912d28642f2c67f0041f10333f05ce5a17b8b0db05e33730c972038e72c0250551194316a6dfa6 SHA512 b7f1b32b8dc563b2c0c6b12eb1698fbd145c9b45597ef0f46159888e1c792f944c92cd1c1e3d0a5b36a3cf3cdc2f7ae9e8c537adbbfa6a1ce293311d3956a2d2
|
||||||
|
DIST waterfox-2020.05.tar.gz 409604600 BLAKE2B 2ba76eea8623c27c9bfa4baa182a89c5f6734c107082032cf49a4f3bdda340b3d65c54337553908f8cf8657d9da515d3fa6d3536b4d5ff869092582a85de7e0b SHA512 50bc6c8f2d8a1c9d529c75b466413343a1475fca3b5177067b01f4de19c22a437f549824d19f97b49f0383c146f728a2ebd296daeb0c354c3a3d9ca0db86346f
|
156
www-client/waterfox/files/2001_system_harfbuzz.patch
Normal file
156
www-client/waterfox/files/2001_system_harfbuzz.patch
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
--- Waterfox-56.2.4/config/Makefile.in
|
||||||
|
+++ Waterfox-56.2.4/config/Makefile.in
|
||||||
|
@@ -41,6 +41,7 @@
|
||||||
|
$(PYTHON) -m mozbuild.action.preprocessor $(DEFINES) $(ACDEFINES) \
|
||||||
|
-DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \
|
||||||
|
-DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \
|
||||||
|
+ -DMOZ_SYSTEM_HARFBUZZ=$(MOZ_SYSTEM_HARFBUZZ) \
|
||||||
|
-DMOZ_SYSTEM_HUNSPELL=$(MOZ_SYSTEM_HUNSPELL) \
|
||||||
|
-DMOZ_SYSTEM_BZ2=$(MOZ_SYSTEM_BZ2) \
|
||||||
|
-DMOZ_SYSTEM_ZLIB=$(MOZ_SYSTEM_ZLIB) \
|
||||||
|
--- Waterfox-56.2.4/config/system-headers
|
||||||
|
+++ Waterfox-56.2.4/config/system-headers
|
||||||
|
@@ -1274,6 +1274,11 @@
|
||||||
|
libsn/sn-monitor.h
|
||||||
|
libsn/sn-util.h
|
||||||
|
#endif
|
||||||
|
+#if MOZ_SYSTEM_HARFBUZZ==1
|
||||||
|
+harfbuzz/hb-glib.h
|
||||||
|
+harfbuzz/hb-ot.h
|
||||||
|
+harfbuzz/hb.h
|
||||||
|
+#endif
|
||||||
|
#if MOZ_SYSTEM_HUNSPELL==1
|
||||||
|
hunspell.hxx
|
||||||
|
#endif
|
||||||
|
--- Waterfox-56.2.4/dom/base/moz.build
|
||||||
|
+++ Waterfox-56.2.4/dom/base/moz.build
|
||||||
|
@@ -476,6 +476,9 @@
|
||||||
|
if CONFIG['MOZ_X11']:
|
||||||
|
CXXFLAGS += CONFIG['TK_CFLAGS']
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
+
|
||||||
|
GENERATED_FILES += [
|
||||||
|
'PropertyUseCounterMap.inc',
|
||||||
|
'UseCounterList.h',
|
||||||
|
--- Waterfox-56.2.4/gfx/harfbuzz/README-mozilla
|
||||||
|
+++ Waterfox-56.2.4/gfx/harfbuzz/README-mozilla
|
||||||
|
@@ -19,3 +19,8 @@
|
||||||
|
|
||||||
|
If the collection of source files changes, manual updates to moz.build may be
|
||||||
|
needed, as we don't use the upstream makefiles.
|
||||||
|
+
|
||||||
|
+The in-tree copy may be omitted during build by --with-system-harfbuzz.
|
||||||
|
+Make sure to keep pkg-config version check within toolkit/moz.configure in sync
|
||||||
|
+with checkout version or increment latest tag by one if it's not based
|
||||||
|
+on upstream release.
|
||||||
|
--- Waterfox-56.2.4/gfx/moz.build
|
||||||
|
+++ Waterfox-56.2.4/gfx/moz.build
|
||||||
|
@@ -10,6 +10,9 @@
|
||||||
|
if CONFIG['MOZ_TREE_CAIRO']:
|
||||||
|
DIRS += ['cairo']
|
||||||
|
|
||||||
|
+if not CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ DIRS += ['harfbuzz/src']
|
||||||
|
+
|
||||||
|
DIRS += [
|
||||||
|
'2d',
|
||||||
|
'ycbcr',
|
||||||
|
@@ -19,7 +22,6 @@
|
||||||
|
'gl',
|
||||||
|
'layers',
|
||||||
|
'graphite2/src',
|
||||||
|
- 'harfbuzz/src',
|
||||||
|
'ots/src',
|
||||||
|
'thebes',
|
||||||
|
'ipc',
|
||||||
|
--- Waterfox-56.2.4/gfx/skia/generate_mozbuild.py
|
||||||
|
+++ Waterfox-56.2.4/gfx/skia/generate_mozbuild.py
|
||||||
|
@@ -148,6 +148,9 @@
|
||||||
|
'-Wno-unused-private-field',
|
||||||
|
]
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'):
|
||||||
|
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
||||||
|
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
|
||||||
|
--- Waterfox-56.2.4/gfx/skia/moz.build
|
||||||
|
+++ Waterfox-56.2.4/gfx/skia/moz.build
|
||||||
|
@@ -823,6 +823,9 @@
|
||||||
|
'-Wno-unused-private-field',
|
||||||
|
]
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'):
|
||||||
|
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
||||||
|
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
|
||||||
|
--- Waterfox-56.2.4/gfx/thebes/moz.build
|
||||||
|
+++ Waterfox-56.2.4/gfx/thebes/moz.build
|
||||||
|
@@ -273,6 +273,9 @@
|
||||||
|
|
||||||
|
DEFINES['GRAPHITE2_STATIC'] = True
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
+
|
||||||
|
if CONFIG['CLANG_CXX']:
|
||||||
|
# Suppress warnings from Skia header files.
|
||||||
|
SOURCES['gfxPlatform.cpp'].flags += ['-Wno-implicit-fallthrough']
|
||||||
|
--- Waterfox-56.2.4/intl/unicharutil/util/moz.build
|
||||||
|
+++ Waterfox-56.2.4/intl/unicharutil/util/moz.build
|
||||||
|
@@ -29,4 +29,7 @@
|
||||||
|
'ICUUtils.cpp',
|
||||||
|
]
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
+
|
||||||
|
FINAL_LIBRARY = 'xul'
|
||||||
|
--- Waterfox-56.2.4/netwerk/dns/moz.build
|
||||||
|
+++ Waterfox-56.2.4/netwerk/dns/moz.build
|
||||||
|
@@ -69,6 +69,9 @@
|
||||||
|
'/netwerk/base',
|
||||||
|
]
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
+
|
||||||
|
if CONFIG['ENABLE_INTL_API']:
|
||||||
|
DEFINES['IDNA2008'] = True
|
||||||
|
USE_LIBS += ['icu']
|
||||||
|
--- Waterfox-56.2.4/toolkit/library/moz.build
|
||||||
|
+++ Waterfox-56.2.4/toolkit/library/moz.build
|
||||||
|
@@ -212,6 +212,9 @@
|
||||||
|
if CONFIG['MOZ_SYSTEM_PNG']:
|
||||||
|
OS_LIBS += CONFIG['MOZ_PNG_LIBS']
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
+ OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS']
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_SYSTEM_WEBP']:
|
||||||
|
OS_LIBS += CONFIG['MOZ_WEBP_LIBS']
|
||||||
|
|
||||||
|
--- Waterfox-56.2.4/toolkit/moz.configure
|
||||||
|
+++ Waterfox-56.2.4/toolkit/moz.configure
|
||||||
|
@@ -314,6 +314,16 @@
|
||||||
|
add_old_configure_assignment('_HAVE_FREETYPE2',
|
||||||
|
depends_if(freetype2_info)(lambda _: True))
|
||||||
|
|
||||||
|
+# HarfBuzz
|
||||||
|
+# ==============================================================
|
||||||
|
+option('--with-system-harfbuzz',
|
||||||
|
+ help="Use system harfbuzz (located with pkgconfig)")
|
||||||
|
+
|
||||||
|
+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.2',
|
||||||
|
+ when='--with-system-harfbuzz')
|
||||||
|
+
|
||||||
|
+set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True))
|
||||||
|
+
|
||||||
|
# Apple platform decoder support
|
||||||
|
# ==============================================================
|
||||||
|
@depends(toolkit)
|
150
www-client/waterfox/files/2002_system_graphite2.patch
Normal file
150
www-client/waterfox/files/2002_system_graphite2.patch
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
--- Waterfox-56.2.4/config/Makefile.in
|
||||||
|
+++ Waterfox-56.2.4/config/Makefile.in
|
||||||
|
@@ -41,6 +41,7 @@
|
||||||
|
$(PYTHON) -m mozbuild.action.preprocessor $(DEFINES) $(ACDEFINES) \
|
||||||
|
-DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \
|
||||||
|
-DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \
|
||||||
|
+ -DMOZ_SYSTEM_GRAPHITE2=$(MOZ_SYSTEM_GRAPHITE2) \
|
||||||
|
-DMOZ_SYSTEM_HARFBUZZ=$(MOZ_SYSTEM_HARFBUZZ) \
|
||||||
|
-DMOZ_SYSTEM_HUNSPELL=$(MOZ_SYSTEM_HUNSPELL) \
|
||||||
|
-DMOZ_SYSTEM_BZ2=$(MOZ_SYSTEM_BZ2) \
|
||||||
|
--- Waterfox-56.2.4/config/system-headers
|
||||||
|
+++ Waterfox-56.2.4/config/system-headers
|
||||||
|
@@ -1274,6 +1274,10 @@
|
||||||
|
libsn/sn-monitor.h
|
||||||
|
libsn/sn-util.h
|
||||||
|
#endif
|
||||||
|
+#if MOZ_SYSTEM_GRAPHITE2==1
|
||||||
|
+graphite2/Font.h
|
||||||
|
+graphite2/Segment.h
|
||||||
|
+#endif
|
||||||
|
#if MOZ_SYSTEM_HARFBUZZ==1
|
||||||
|
harfbuzz/hb-glib.h
|
||||||
|
harfbuzz/hb-ot.h
|
||||||
|
--- Waterfox-56.2.4/gfx/graphite2/moz-gr-update.sh
|
||||||
|
+++ Waterfox-56.2.4/gfx/graphite2/moz-gr-update.sh
|
||||||
|
@@ -1,6 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script used to update the Graphite2 library in the mozilla source tree
|
||||||
|
+# and bump version for --with-system-graphite2
|
||||||
|
|
||||||
|
# This script lives in gfx/graphite2, along with the library source,
|
||||||
|
# but must be run from the top level of the mozilla-central tree.
|
||||||
|
@@ -37,12 +38,16 @@
|
||||||
|
#find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
|
||||||
|
#find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
|
||||||
|
|
||||||
|
+# chase version for --with-system-graphite2
|
||||||
|
+perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \
|
||||||
|
+ if /GR2_VERSION_REQUIRE/" old-configure.in
|
||||||
|
+
|
||||||
|
# summarize what's been touched
|
||||||
|
echo Updated to $RELEASE.
|
||||||
|
echo Here is what changed in the gfx/graphite2 directory:
|
||||||
|
echo
|
||||||
|
|
||||||
|
-hg stat gfx/graphite2
|
||||||
|
+hg stat old-configure.in gfx/graphite2
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo If gfx/graphite2/src/files.mk has changed, please make corresponding
|
||||||
|
--- Waterfox-56.2.4/gfx/moz.build
|
||||||
|
+++ Waterfox-56.2.4/gfx/moz.build
|
||||||
|
@@ -10,6 +10,9 @@
|
||||||
|
if CONFIG['MOZ_TREE_CAIRO']:
|
||||||
|
DIRS += ['cairo']
|
||||||
|
|
||||||
|
+if not CONFIG['MOZ_SYSTEM_GRAPHITE2']:
|
||||||
|
+ DIRS += ['graphite2/src' ]
|
||||||
|
+
|
||||||
|
if not CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
DIRS += ['harfbuzz/src']
|
||||||
|
|
||||||
|
@@ -21,7 +24,6 @@
|
||||||
|
'qcms',
|
||||||
|
'gl',
|
||||||
|
'layers',
|
||||||
|
- 'graphite2/src',
|
||||||
|
'ots/src',
|
||||||
|
'thebes',
|
||||||
|
'ipc',
|
||||||
|
--- Waterfox-56.2.4/gfx/thebes/moz.build
|
||||||
|
+++ Waterfox-56.2.4/gfx/thebes/moz.build
|
||||||
|
@@ -271,7 +271,10 @@
|
||||||
|
|
||||||
|
LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
|
||||||
|
|
||||||
|
-DEFINES['GRAPHITE2_STATIC'] = True
|
||||||
|
+if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
|
||||||
|
+ CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
|
||||||
|
+else:
|
||||||
|
+ DEFINES['GRAPHITE2_STATIC'] = True
|
||||||
|
|
||||||
|
if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||||
|
--- Waterfox-56.2.4/old-configure.in
|
||||||
|
+++ Waterfox-56.2.4/old-configure.in
|
||||||
|
@@ -4376,6 +4376,27 @@
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl ========================================================
|
||||||
|
+dnl Check for graphite2
|
||||||
|
+dnl ========================================================
|
||||||
|
+if test -n "$MOZ_SYSTEM_GRAPHITE2"; then
|
||||||
|
+ dnl graphite2.pc has bogus version, check manually
|
||||||
|
+ _SAVE_CFLAGS=$CFLAGS
|
||||||
|
+ CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS"
|
||||||
|
+ AC_TRY_COMPILE([ #include <graphite2/Font.h>
|
||||||
|
+ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \
|
||||||
|
+ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \
|
||||||
|
+ * 100 + GR2_VERSION_BUGFIX >= \
|
||||||
|
+ (major) * 10000 + (minor) * 100 + (bugfix) )
|
||||||
|
+ ], [
|
||||||
|
+ #if !GR2_VERSION_REQUIRE(1,3,8)
|
||||||
|
+ #error "Insufficient graphite2 version."
|
||||||
|
+ #endif
|
||||||
|
+ ], [],
|
||||||
|
+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
|
||||||
|
+ CFLAGS=$_SAVE_CFLAGS
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+dnl ========================================================
|
||||||
|
dnl Check if we need the 32-bit Linux SSE2 error dialog
|
||||||
|
dnl ========================================================
|
||||||
|
|
||||||
|
--- Waterfox-56.2.4/toolkit/library/moz.build
|
||||||
|
+++ Waterfox-56.2.4/toolkit/library/moz.build
|
||||||
|
@@ -212,6 +212,9 @@
|
||||||
|
if CONFIG['MOZ_SYSTEM_PNG']:
|
||||||
|
OS_LIBS += CONFIG['MOZ_PNG_LIBS']
|
||||||
|
|
||||||
|
+if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
|
||||||
|
+ OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS']
|
||||||
|
+
|
||||||
|
if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
|
||||||
|
OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS']
|
||||||
|
|
||||||
|
--- Waterfox-56.2.4/toolkit/moz.configure
|
||||||
|
+++ Waterfox-56.2.4/toolkit/moz.configure
|
||||||
|
@@ -314,6 +314,20 @@
|
||||||
|
add_old_configure_assignment('_HAVE_FREETYPE2',
|
||||||
|
depends_if(freetype2_info)(lambda _: True))
|
||||||
|
|
||||||
|
+# Graphite2
|
||||||
|
+# ==============================================================
|
||||||
|
+option('--with-system-graphite2',
|
||||||
|
+ help="Use system graphite2 (located with pkgconfig)")
|
||||||
|
+
|
||||||
|
+@depends('--with-system-graphite2')
|
||||||
|
+def check_for_graphite2(value):
|
||||||
|
+ return bool(value)
|
||||||
|
+
|
||||||
|
+system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2',
|
||||||
|
+ when=check_for_graphite2)
|
||||||
|
+
|
||||||
|
+set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True))
|
||||||
|
+
|
||||||
|
# HarfBuzz
|
||||||
|
# ==============================================================
|
||||||
|
option('--with-system-harfbuzz',
|
17
www-client/waterfox/files/gentoo-default-prefs.js-1
Normal file
17
www-client/waterfox/files/gentoo-default-prefs.js-1
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
pref("app.update.enabled", false);
|
||||||
|
pref("app.update.autoInstallEnabled", false);
|
||||||
|
pref("browser.display.use_system_colors", true);
|
||||||
|
pref("browser.link.open_external", 3);
|
||||||
|
pref("general.smoothScroll", true);
|
||||||
|
pref("general.autoScroll", false);
|
||||||
|
pref("browser.tabs.tabMinWidth", 15);
|
||||||
|
pref("browser.backspace_action", 0);
|
||||||
|
pref("browser.urlbar.hideGoButton", true);
|
||||||
|
pref("accessibility.typeaheadfind", true);
|
||||||
|
pref("browser.shell.checkDefaultBrowser", false);
|
||||||
|
pref("browser.EULA.override", true);
|
||||||
|
pref("general.useragent.vendor", "Gentoo");
|
||||||
|
pref("intl.locale.matchOS", true);
|
||||||
|
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
|
||||||
|
pref("extensions.autoDisableScopes", 0);
|
||||||
|
pref("layout.css.dpi", 0);
|
2
www-client/waterfox/files/gentoo-hwaccel-prefs.js-1
Normal file
2
www-client/waterfox/files/gentoo-hwaccel-prefs.js-1
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pref("layers.acceleration.force-enabled", true);
|
||||||
|
pref("webgl.force-enabled", true);
|
9
www-client/waterfox/files/icon/waterfox.desktop
Normal file
9
www-client/waterfox/files/icon/waterfox.desktop
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=@NAME@
|
||||||
|
Comment=Web Browser
|
||||||
|
Exec=waterfox %u
|
||||||
|
Icon=@ICON@
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
|
||||||
|
Categories=Network;WebBrowser;
|
51
www-client/waterfox/metadata.xml
Normal file
51
www-client/waterfox/metadata.xml
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="github">MrAlex94/Waterfox</remote-id>
|
||||||
|
</upstream>
|
||||||
|
<use>
|
||||||
|
<flag name="custom-optimization">
|
||||||
|
Build with user-specified compiler optimizations
|
||||||
|
(-Os, -O0, -O1, -O2, -O3) from CFLAGS (unsupported)
|
||||||
|
</flag>
|
||||||
|
<flag name="eme-free">
|
||||||
|
Disable EME (DRM plugin) cabability at build time
|
||||||
|
</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="pgo">
|
||||||
|
Add support for profile-guided optimization using gcc-4.5,
|
||||||
|
for faster binaries. This option will double the compile time.
|
||||||
|
</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-sqlite">
|
||||||
|
Use the system-wide <pkg>dev-db/sqlite</pkg>
|
||||||
|
installation with secure-delete enabled
|
||||||
|
</flag>
|
||||||
|
</use>
|
||||||
|
</pkgmetadata>
|
394
www-client/waterfox/waterfox-2020.05.ebuild
Normal file
394
www-client/waterfox/waterfox-2020.05.ebuild
Normal file
@ -0,0 +1,394 @@
|
|||||||
|
# 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"
|
||||||
|
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
|
||||||
|
SLOT="0"
|
||||||
|
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
|
||||||
|
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="
|
||||||
|
jack? ( virtual/jack )
|
||||||
|
>=dev-libs/nss-3.32.1
|
||||||
|
>=dev-libs/nspr-4.16
|
||||||
|
selinux? ( sec-policy/selinux-mozilla )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
pgo? ( >=sys-devel/gcc-4.5 )
|
||||||
|
virtual/rust
|
||||||
|
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
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user