2025-05-10 21:58:58 +08:00

181 lines
8.1 KiB
BlitzBasic

# 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"