# 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 = "MPL-2.0" 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/0001-Bug-1745560-Add-missing-stub-for-wl_proxy_marshal_fl.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-without-python3native 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"