# Copyright (C) 2009-2015, O.S. Systems Software Ltda. All Rights Reserved
|
# Released under the MIT license (see packages/COPYING)
|
|
DESCRIPTION ?= "Browser made by mozilla"
|
DEPENDS += "curl startup-notification libevent cairo libnotify \
|
virtual/libgl pulseaudio icu dbus-glib \
|
nodejs-native cbindgen-native \
|
yasm-native nasm-native unzip-native \
|
virtual/${TARGET_PREFIX}rust cargo-native ${RUSTLIB_DEP} \
|
gtk+3 \
|
"
|
RDEPENDS:${PN}-dev = "dbus"
|
|
LICENSE = "MPLv2"
|
LIC_FILES_CHKSUM = "file://toolkit/content/license.html;endline=33;md5=35d7fa1c4b86c115051c925fd624a5be"
|
|
CVE_PRODUCT = "mozilla:firefox"
|
|
SRC_URI = "https://ftp.mozilla.org/pub/firefox/releases/${PV}/source/firefox-${PV}.source.tar.xz \
|
file://mozconfig \
|
file://mozilla-firefox.png \
|
file://mozilla-firefox.desktop \
|
file://prefs/vendor.js \
|
file://fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch \
|
file://fixes/Bug-1526653-Include-struct-definitions-for-user_vfp-.patch \
|
file://fixes/Bug-1556197-amend-Bug-1544631-for-fixing-mips32.patch \
|
file://fixes/Bug-1560340-Only-add-confvars.sh-as-a-dependency-to-.patch \
|
file://fixes/bug1545437-enable-to-specify-rust-target.patch \
|
file://fixes/Bug-1640982-SetCARGO_PROFILE_RELEASE_LTO-true-when-e.patch \
|
file://fixes/avoid-running-autoconf2.13.patch \
|
file://fixes/pre-generated-old-configure.patch \
|
file://fixes/link-with-libpangoft.patch \
|
file://fixes/0001-Bug-1721326-Fix-build-with-glibc-2.34.patch \
|
file://fixes/0002-security-Fix-build-with-glibc-2.34.patch \
|
file://fixes/0003-Fix-build-with-Werror-Wunused-but-set-variable.patch \
|
file://fixes/0004-Fix-build-with-gcc-11.patch \
|
file://porting/Add-xptcall-support-for-SH4-processors.patch \
|
file://porting/NSS-Fix-FTBFS-on-Hurd-because-of-MAXPATHLEN.patch \
|
file://porting/Work-around-Debian-bug-844357.patch \
|
file://porting/Use-NEON_FLAGS-instead-of-VPX_ASFLAGS-for-libaom-neo.patch \
|
file://prefs/Set-javascript.options.showInConsole.patch \
|
file://prefs/Set-DPI-to-system-settings.patch \
|
file://prefs/Don-t-auto-disable-extensions-in-system-directories.patch \
|
file://debian-hacks/Add-another-preferences-directory-for-applications-p.patch \
|
file://debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch \
|
file://debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch \
|
file://debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch \
|
file://debian-hacks/Don-t-build-image-gtests.patch \
|
file://debian-hacks/Allow-to-override-ICU_DATA_FILE-from-the-environment.patch \
|
file://debian-hacks/Set-program-name-from-the-remoting-name.patch \
|
file://debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch \
|
file://debian-hacks/Avoid-using-vmrs-vmsr-on-armel.patch \
|
file://debian-hacks/Use-remoting-name-for-call-to-gdk_set_program_class.patch \
|
file://debian-hacks/Use-build-id-as-langpack-version-for-reproducibility.patch \
|
file://wayland/bug1451816-workaround-for-grabbing-popup.patch \
|
file://wayland/egl/bug1571603-Disable-eglQueryString-nullptr-EGL_EXTENSIONS.patch \
|
file://wayland/egl/0001-GLLibraryLoader-Use-given-symbol-lookup-function-fir.patch \
|
file://wayland/egl/0001-Mark-GLFeature-framebuffer_multisample-as-unsupporte.patch \
|
"
|
|
SRC_URI[sha256sum] = "935105e1a8a97d64daffb372690e2b566b5f07641f01470929dbbc82d20d4407"
|
S = "${WORKDIR}/firefox-${MOZ_APP_BASE_VERSION}"
|
|
MOZ_APP_BASE_VERSION = "${@'${PV}'.replace('esr', '')}"
|
|
inherit mozilla rust-common
|
|
TOOLCHAIN:pn-firefox = "clang"
|
AS = "${CC}"
|
|
DISABLE_STATIC=""
|
|
ARM_INSTRUCTION_SET:armv5 = "arm"
|
|
PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "alsa", "alsa", "", d)} \
|
${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)} \
|
${@bb.utils.contains_any("TARGET_ARCH", "x86_64 arm aarch64", "webrtc", "", d)} \
|
"
|
PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
|
PACKAGECONFIG[wayland] = "--enable-default-toolkit=cairo-gtk3-wayland,--enable-default-toolkit=cairo-gtk3,virtual/egl,"
|
PACKAGECONFIG[gpu] = ",,,"
|
PACKAGECONFIG[openmax] = "--enable-openmax,,,"
|
PACKAGECONFIG[webgl] = ",,,"
|
PACKAGECONFIG[webrtc] = "--enable-webrtc,--disable-webrtc,,"
|
PACKAGECONFIG[forbit-multiple-compositors] = ",,,"
|
|
# Add a config file to enable GPU acceleration by default.
|
SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'gpu', \
|
'file://prefs/gpu.js', '', d)}"
|
|
# Additional upstream patches to support OpenMAX IL
|
SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'openmax', \
|
'file://fixes/Bug-1590977-openmax-Import-latest-OpenMAX-IL-1.1.2-headers.patch \
|
file://prefs/openmax.js \
|
', '', d)}"
|
|
SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'webgl', \
|
'file://prefs/webgl.js', '', d)}"
|
|
SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'forbit-multiple-compositors', \
|
'file://prefs/single-compositor.js \
|
file://fixes/0001-Enable-to-suppress-multiple-compositors.patch \
|
', '', d)}"
|
|
do_install:append() {
|
install -d ${D}${datadir}/applications
|
install -d ${D}${datadir}/pixmaps
|
|
install -m 0644 ${WORKDIR}/mozilla-firefox.desktop ${D}${datadir}/applications/
|
install -m 0644 ${WORKDIR}/mozilla-firefox.png ${D}${datadir}/pixmaps/
|
install -m 0644 ${WORKDIR}/prefs/vendor.js ${D}${libdir}/${PN}/defaults/pref/
|
if [ -n "${@bb.utils.contains_any('PACKAGECONFIG', 'gpu', '1', '', d)}" ]; then
|
install -m 0644 ${WORKDIR}/prefs/gpu.js ${D}${libdir}/${PN}/defaults/pref/
|
fi
|
if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'openmax', '1', '', d)}" ]; then
|
install -m 0644 ${WORKDIR}/prefs/openmax.js ${D}${libdir}/${PN}/defaults/pref/
|
fi
|
if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'webgl', '1', '', d)}" ]; then
|
install -m 0644 ${WORKDIR}/prefs/webgl.js ${D}${libdir}/${PN}/defaults/pref/
|
fi
|
if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'forbit-multiple-compositors', '1', '', d)}" ]; then
|
install -m 0644 ${WORKDIR}/prefs/single-compositor.js ${D}${libdir}/${PN}/defaults/pref/
|
fi
|
|
# Fix ownership of files
|
chown root:root -R ${D}${datadir}
|
chown root:root -R ${D}${libdir}
|
}
|
|
FILES:${PN} = "${bindir}/${PN} \
|
${datadir}/applications/ \
|
${datadir}/pixmaps/ \
|
${libdir}/${PN}/* \
|
${libdir}/${PN}/.autoreg \
|
${bindir}/defaults"
|
FILES:${PN}-dev += "${datadir}/idl ${bindir}/${PN}-config ${libdir}/${PN}-devel-*"
|
FILES:${PN}-staticdev += "${libdir}/${PN}-devel-*/sdk/lib/*.a"
|
FILES:${PN}-dbg += "${libdir}/${PN}/.debug \
|
${libdir}/${PN}/*/.debug \
|
${libdir}/${PN}/*/*/.debug \
|
${libdir}/${PN}/*/*/*/.debug \
|
${libdir}/${PN}-devel-*/*/.debug \
|
${libdir}/${PN}-devel-*/*/*/.debug \
|
${libdir}/${PN}-devel-*/*/*/*/.debug \
|
${libdir}/${PN}/fix_linux_stack.py \
|
${bindir}/.debug"
|
|
# We don't build XUL as system shared lib, so we can mark all libs as private
|
PRIVATE_LIBS = " \
|
libmozjs.so \
|
libxpcom.so \
|
libnspr4.so \
|
libxul.so \
|
libmozalloc.so \
|
libplc4.so \
|
libplds4.so \
|
liblgpllibs.so \
|
libmozgtk.so \
|
libmozwayland.so \
|
libmozsqlite3.so \
|
libclearkey.so \
|
libmozavcodec.so \
|
libmozavutil.so \
|
"
|
|
# mark libraries also provided by nss as private too
|
PRIVATE_LIBS += " \
|
libfreebl3.so \
|
libfreeblpriv3.so \
|
libnss3.so \
|
libnssckbi.so \
|
libsmime3.so \
|
libnssutil3.so \
|
libnssdbm3.so \
|
libssl3.so \
|
libsoftokn3.so \
|
"
|
|
CLEANBROKEN = "1"
|