Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
380e9adf88
@ -49,11 +49,13 @@ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
|
||||
IUSE="amd64 -bindist clang cpu_flags_x86_avx2 dbus debug geckodriver
|
||||
IUSE="
|
||||
amd64 -bindist clang cpu_flags_x86_avx2 dbus debug geckodriver
|
||||
+gmp-autoupdate hardened hwaccel jack kernel_linux lto cpu_flags_arm_neon
|
||||
pgo pulseaudio +screenshot selinux startup-notification +system-av1
|
||||
+system-harfbuzz +system-icu +system-jpeg +system-libevent
|
||||
+system-sqlite +system-libvpx +system-webp test wayland wifi x86"
|
||||
-system-sqlite -system-libvpx +system-webp test wayland wifi x86
|
||||
"
|
||||
|
||||
REQUIRED_USE="pgo? ( lto )
|
||||
wifi? ( dbus )"
|
||||
@ -63,38 +65,37 @@ RESTRICT="
|
||||
"
|
||||
|
||||
PATCH_URIS=( https://dev.gentoo.org/~{anarchy,axs,polynomial-c,whissi}/mozilla/patchsets/${PATCH}.tar.xz )
|
||||
SRC_URI="${SRC_URI}
|
||||
SRC_URI="
|
||||
${SRC_URI}
|
||||
${MOZ_SRC_URI}
|
||||
${PATCH_URIS[@]}"
|
||||
|
||||
BDEPEND+="
|
||||
dev-perl/File-Rename:0
|
||||
${PATCH_URIS[@]}
|
||||
"
|
||||
|
||||
# Mercurial for makeicecat (see "src_unpack" below)
|
||||
BDEPEND+="
|
||||
dev-vcs/mercurial
|
||||
dev-perl/File-Rename:0
|
||||
"
|
||||
CDEPEND="
|
||||
>=dev-libs/nss-3.44.3
|
||||
>=dev-libs/glib-2.26:2
|
||||
>=dev-libs/libffi-3.0.10:=
|
||||
>=dev-libs/nspr-4.21
|
||||
dev-libs/atk
|
||||
dev-libs/expat
|
||||
>=dev-libs/nss-3.44.3
|
||||
>=media-libs/freetype-2.4.10
|
||||
>=media-libs/libpng-1.6.35:0=[apng]
|
||||
>=media-libs/mesa-10.2:*
|
||||
>=sys-libs/zlib-1.2.3
|
||||
>=x11-libs/cairo-1.10[X]
|
||||
>=x11-libs/gtk+-2.18:2
|
||||
>=x11-libs/gtk+-3.4.0:3[X]
|
||||
x11-libs/gdk-pixbuf
|
||||
>=x11-libs/pango-1.22.0
|
||||
>=media-libs/libpng-1.6.35:0=[apng]
|
||||
>=media-libs/mesa-10.2:*
|
||||
media-libs/fontconfig
|
||||
>=media-libs/freetype-2.4.10
|
||||
kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) )
|
||||
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
|
||||
>=dev-libs/libffi-3.0.10:=
|
||||
virtual/ffmpeg
|
||||
dev-libs/atk
|
||||
dev-libs/expat
|
||||
media-libs/fontconfig
|
||||
media-video/ffmpeg
|
||||
virtual/freedesktop-icon-theme
|
||||
x11-libs/gdk-pixbuf
|
||||
x11-libs/libX11
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXdamage
|
||||
@ -102,10 +103,9 @@ CDEPEND="
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXt
|
||||
system-av1? (
|
||||
>=media-libs/dav1d-0.3.0:=
|
||||
>=media-libs/libaom-1.0.0:=
|
||||
)
|
||||
startup-notification? ( >=x11-libs/startup-notification-0.8 )
|
||||
jack? ( virtual/jack )
|
||||
selinux? ( sec-policy/selinux-mozilla )
|
||||
system-harfbuzz? ( >=media-libs/harfbuzz-2.4.0:0= >=media-gfx/graphite2-1.3.13 )
|
||||
system-icu? ( >=dev-libs/icu-63.1:= )
|
||||
system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
|
||||
@ -113,19 +113,36 @@ CDEPEND="
|
||||
system-libvpx? ( =media-libs/libvpx-1.7*:0=[postproc] )
|
||||
system-sqlite? ( >=dev-db/sqlite-3.28.0:3[secure-delete,debug=] )
|
||||
system-webp? ( >=media-libs/libwebp-1.0.2:0= )
|
||||
wifi? ( kernel_linux? ( >=sys-apps/dbus-0.60
|
||||
kernel_linux? (
|
||||
!pulseaudio? (
|
||||
media-libs/alsa-lib
|
||||
)
|
||||
)
|
||||
dbus? (
|
||||
>=sys-apps/dbus-0.60
|
||||
>=dev-libs/dbus-glib-0.72
|
||||
net-misc/networkmanager ) )
|
||||
jack? ( virtual/jack )
|
||||
selinux? ( sec-policy/selinux-mozilla )"
|
||||
|
||||
RDEPEND="${CDEPEND}
|
||||
)
|
||||
system-av1? (
|
||||
>=media-libs/dav1d-0.3.0:=
|
||||
>=media-libs/libaom-1.0.0:=
|
||||
)
|
||||
wifi? (
|
||||
kernel_linux? (
|
||||
>=sys-apps/dbus-0.60
|
||||
>=dev-libs/dbus-glib-0.72
|
||||
net-misc/networkmanager
|
||||
)
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${CDEPEND}
|
||||
jack? ( virtual/jack )
|
||||
pulseaudio? ( || ( media-sound/pulseaudio
|
||||
>=media-sound/apulse-0.1.9 ) )
|
||||
selinux? ( sec-policy/selinux-mozilla )"
|
||||
|
||||
DEPEND="${CDEPEND}
|
||||
selinux? ( sec-policy/selinux-mozilla )
|
||||
"
|
||||
DEPEND="
|
||||
${CDEPEND}
|
||||
app-arch/zip
|
||||
app-arch/unzip
|
||||
>=dev-util/cbindgen-0.8.7
|
||||
@ -169,7 +186,8 @@ DEPEND="${CDEPEND}
|
||||
!system-av1? (
|
||||
amd64? ( >=dev-lang/nasm-2.13 )
|
||||
x86? ( >=dev-lang/nasm-2.13 )
|
||||
)"
|
||||
)
|
||||
"
|
||||
|
||||
#S="${WORKDIR}/icecat-${PV%_*}"
|
||||
S="${WORKDIR}/gnuzilla-${COMMIT_SHA}/output/icecat-${PV%_*}"
|
||||
@ -224,7 +242,7 @@ llvm_check_deps() {
|
||||
|
||||
pkg_pretend() {
|
||||
if use pgo ; then
|
||||
if ! has usersandbox $FEATURES ; then
|
||||
if ! has usersandbox ${FEATURES} ; then
|
||||
die "You must enable usersandbox as X server can not run as root!"
|
||||
fi
|
||||
fi
|
||||
@ -286,6 +304,8 @@ src_unpack() {
|
||||
# mozlinguas_src_unpack
|
||||
cd "${WORKDIR}"/gnuzilla-"${COMMIT_SHA}"
|
||||
"${FILESDIR}"/patch_without_repoman_knowing.sh
|
||||
|
||||
# G N U / M a g i c
|
||||
./makeicecat
|
||||
}
|
||||
|
||||
|
@ -1,4 +0,0 @@
|
||||
DIST firefox-56.0-patches-07.tar.xz 12696 BLAKE2B 60fe9e4aee235bebd1ceeeca9f455b5129368e3b83a1a7487e912d28642f2c67f0041f10333f05ce5a17b8b0db05e33730c972038e72c0250551194316a6dfa6 SHA512 b7f1b32b8dc563b2c0c6b12eb1698fbd145c9b45597ef0f46159888e1c792f944c92cd1c1e3d0a5b36a3cf3cdc2f7ae9e8c537adbbfa6a1ce293311d3956a2d2
|
||||
DIST waterfox-2020.07.1.tar.gz 410117026 BLAKE2B 5c2a54caa27c3dec323c1f66110e288ab84b45b6001eb78ff3623d992d1cea3ea4b6378e1c18e0618ace9f049d341c987cc25231a6d10bec2f3f4df96d20bfe5 SHA512 28c111de097e165fe9e80d20f92e68ef095a10fd136bc906c1ec75ebf4af0aacb31e6f10d74222438014f5d579d68c773cae6e7aedfb78e869fb8d26372d569e
|
||||
DIST waterfox-2020.07.2.tar.gz 410119190 BLAKE2B dded02d62a61e664ddf1a24fbfecf7381d5a26dd0360e2fb0844aae79a815e02046fcb997c4e2f355f853a6b5432402c97ed6d45a5fe515707c631345edc2cb2 SHA512 9a554067a9b19d06d6fd3d20f9743d484138130516dd099d0656f4b0a911cbab8c38e0286fd7c0ed66aefebf6c3f1af609c09f4c7fead77278b69f14794bb6d4
|
||||
DIST waterfox-2020.09.tar.gz 476808044 BLAKE2B 35a359f2c8237ab284a895f06a721a921807d4862f5415fdd61142e540783e14a6d92c10c5c00acbeac24a638afdcd0b3b14fd808fb9303406c605865afc4c92 SHA512 fbf3d36dcd8b90e509612d08276d55aa0e09d2e0158c90a538d91499b8d6840782b6194eedaa6eb949d2f47c1b7e247831370c6d9971de813920d7bf7f1c6fc1
|
@ -1,156 +0,0 @@
|
||||
--- 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)
|
@ -1,150 +0,0 @@
|
||||
--- 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',
|
@ -1,17 +0,0 @@
|
||||
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);
|
@ -1,2 +0,0 @@
|
||||
pref("layers.acceleration.force-enabled", true);
|
||||
pref("webgl.force-enabled", true);
|
@ -1,9 +0,0 @@
|
||||
[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;
|
@ -1,51 +0,0 @@
|
||||
<?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>
|
@ -1,410 +0,0 @@
|
||||
# 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 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}/${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
|
||||
}
|
@ -1,410 +0,0 @@
|
||||
# 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 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}/${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
|
||||
}
|
@ -1,411 +0,0 @@
|
||||
# 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 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-db/sqlite-3.33.0
|
||||
>=dev-libs/nspr-4.16
|
||||
>=dev-libs/nss-3.32.1
|
||||
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}/${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