Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
380e9adf88
@ -49,11 +49,13 @@ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
|
|||||||
|
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
|
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
|
+gmp-autoupdate hardened hwaccel jack kernel_linux lto cpu_flags_arm_neon
|
||||||
pgo pulseaudio +screenshot selinux startup-notification +system-av1
|
pgo pulseaudio +screenshot selinux startup-notification +system-av1
|
||||||
+system-harfbuzz +system-icu +system-jpeg +system-libevent
|
+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 )
|
REQUIRED_USE="pgo? ( lto )
|
||||||
wifi? ( dbus )"
|
wifi? ( dbus )"
|
||||||
@ -63,38 +65,37 @@ RESTRICT="
|
|||||||
"
|
"
|
||||||
|
|
||||||
PATCH_URIS=( https://dev.gentoo.org/~{anarchy,axs,polynomial-c,whissi}/mozilla/patchsets/${PATCH}.tar.xz )
|
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}
|
${MOZ_SRC_URI}
|
||||||
${PATCH_URIS[@]}"
|
${PATCH_URIS[@]}
|
||||||
|
|
||||||
BDEPEND+="
|
|
||||||
dev-perl/File-Rename:0
|
|
||||||
"
|
"
|
||||||
|
|
||||||
|
# Mercurial for makeicecat (see "src_unpack" below)
|
||||||
|
BDEPEND+="
|
||||||
|
dev-vcs/mercurial
|
||||||
|
dev-perl/File-Rename:0
|
||||||
|
"
|
||||||
CDEPEND="
|
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/nspr-4.21
|
||||||
dev-libs/atk
|
>=dev-libs/nss-3.44.3
|
||||||
dev-libs/expat
|
>=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/cairo-1.10[X]
|
||||||
>=x11-libs/gtk+-2.18:2
|
>=x11-libs/gtk+-2.18:2
|
||||||
>=x11-libs/gtk+-3.4.0:3[X]
|
>=x11-libs/gtk+-3.4.0:3[X]
|
||||||
x11-libs/gdk-pixbuf
|
|
||||||
>=x11-libs/pango-1.22.0
|
>=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
|
>=x11-libs/pixman-0.19.2
|
||||||
>=dev-libs/glib-2.26:2
|
dev-libs/atk
|
||||||
>=sys-libs/zlib-1.2.3
|
dev-libs/expat
|
||||||
>=dev-libs/libffi-3.0.10:=
|
media-libs/fontconfig
|
||||||
virtual/ffmpeg
|
media-video/ffmpeg
|
||||||
|
virtual/freedesktop-icon-theme
|
||||||
|
x11-libs/gdk-pixbuf
|
||||||
x11-libs/libX11
|
x11-libs/libX11
|
||||||
x11-libs/libXcomposite
|
x11-libs/libXcomposite
|
||||||
x11-libs/libXdamage
|
x11-libs/libXdamage
|
||||||
@ -102,10 +103,9 @@ CDEPEND="
|
|||||||
x11-libs/libXfixes
|
x11-libs/libXfixes
|
||||||
x11-libs/libXrender
|
x11-libs/libXrender
|
||||||
x11-libs/libXt
|
x11-libs/libXt
|
||||||
system-av1? (
|
startup-notification? ( >=x11-libs/startup-notification-0.8 )
|
||||||
>=media-libs/dav1d-0.3.0:=
|
jack? ( virtual/jack )
|
||||||
>=media-libs/libaom-1.0.0:=
|
selinux? ( sec-policy/selinux-mozilla )
|
||||||
)
|
|
||||||
system-harfbuzz? ( >=media-libs/harfbuzz-2.4.0:0= >=media-gfx/graphite2-1.3.13 )
|
system-harfbuzz? ( >=media-libs/harfbuzz-2.4.0:0= >=media-gfx/graphite2-1.3.13 )
|
||||||
system-icu? ( >=dev-libs/icu-63.1:= )
|
system-icu? ( >=dev-libs/icu-63.1:= )
|
||||||
system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.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-libvpx? ( =media-libs/libvpx-1.7*:0=[postproc] )
|
||||||
system-sqlite? ( >=dev-db/sqlite-3.28.0:3[secure-delete,debug=] )
|
system-sqlite? ( >=dev-db/sqlite-3.28.0:3[secure-delete,debug=] )
|
||||||
system-webp? ( >=media-libs/libwebp-1.0.2:0= )
|
system-webp? ( >=media-libs/libwebp-1.0.2:0= )
|
||||||
wifi? ( kernel_linux? ( >=sys-apps/dbus-0.60
|
kernel_linux? (
|
||||||
>=dev-libs/dbus-glib-0.72
|
!pulseaudio? (
|
||||||
net-misc/networkmanager ) )
|
media-libs/alsa-lib
|
||||||
jack? ( virtual/jack )
|
)
|
||||||
selinux? ( sec-policy/selinux-mozilla )"
|
)
|
||||||
|
dbus? (
|
||||||
RDEPEND="${CDEPEND}
|
>=sys-apps/dbus-0.60
|
||||||
|
>=dev-libs/dbus-glib-0.72
|
||||||
|
)
|
||||||
|
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 )
|
jack? ( virtual/jack )
|
||||||
pulseaudio? ( || ( media-sound/pulseaudio
|
pulseaudio? ( || ( media-sound/pulseaudio
|
||||||
>=media-sound/apulse-0.1.9 ) )
|
>=media-sound/apulse-0.1.9 ) )
|
||||||
selinux? ( sec-policy/selinux-mozilla )"
|
selinux? ( sec-policy/selinux-mozilla )
|
||||||
|
"
|
||||||
DEPEND="${CDEPEND}
|
DEPEND="
|
||||||
|
${CDEPEND}
|
||||||
app-arch/zip
|
app-arch/zip
|
||||||
app-arch/unzip
|
app-arch/unzip
|
||||||
>=dev-util/cbindgen-0.8.7
|
>=dev-util/cbindgen-0.8.7
|
||||||
@ -169,7 +186,8 @@ DEPEND="${CDEPEND}
|
|||||||
!system-av1? (
|
!system-av1? (
|
||||||
amd64? ( >=dev-lang/nasm-2.13 )
|
amd64? ( >=dev-lang/nasm-2.13 )
|
||||||
x86? ( >=dev-lang/nasm-2.13 )
|
x86? ( >=dev-lang/nasm-2.13 )
|
||||||
)"
|
)
|
||||||
|
"
|
||||||
|
|
||||||
#S="${WORKDIR}/icecat-${PV%_*}"
|
#S="${WORKDIR}/icecat-${PV%_*}"
|
||||||
S="${WORKDIR}/gnuzilla-${COMMIT_SHA}/output/icecat-${PV%_*}"
|
S="${WORKDIR}/gnuzilla-${COMMIT_SHA}/output/icecat-${PV%_*}"
|
||||||
@ -224,7 +242,7 @@ llvm_check_deps() {
|
|||||||
|
|
||||||
pkg_pretend() {
|
pkg_pretend() {
|
||||||
if use pgo ; then
|
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!"
|
die "You must enable usersandbox as X server can not run as root!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -286,6 +304,8 @@ src_unpack() {
|
|||||||
# mozlinguas_src_unpack
|
# mozlinguas_src_unpack
|
||||||
cd "${WORKDIR}"/gnuzilla-"${COMMIT_SHA}"
|
cd "${WORKDIR}"/gnuzilla-"${COMMIT_SHA}"
|
||||||
"${FILESDIR}"/patch_without_repoman_knowing.sh
|
"${FILESDIR}"/patch_without_repoman_knowing.sh
|
||||||
|
|
||||||
|
# G N U / M a g i c
|
||||||
./makeicecat
|
./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