1*4882a593Smuzhiyun# Copyright (C) 2009-2015, O.S. Systems Software Ltda. All Rights Reserved 2*4882a593Smuzhiyun# Released under the MIT license (see packages/COPYING) 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunDESCRIPTION ?= "Browser made by mozilla" 5*4882a593SmuzhiyunDEPENDS += "curl startup-notification libevent cairo libnotify \ 6*4882a593Smuzhiyun virtual/libgl pulseaudio icu dbus-glib \ 7*4882a593Smuzhiyun nodejs-native cbindgen-native \ 8*4882a593Smuzhiyun yasm-native nasm-native unzip-native \ 9*4882a593Smuzhiyun virtual/${TARGET_PREFIX}rust cargo-native ${RUSTLIB_DEP} \ 10*4882a593Smuzhiyun gtk+3 \ 11*4882a593Smuzhiyun " 12*4882a593SmuzhiyunRDEPENDS:${PN}-dev = "dbus" 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunLICENSE = "MPL-2.0" 15*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://toolkit/content/license.html;endline=33;md5=35d7fa1c4b86c115051c925fd624a5be" 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunCVE_PRODUCT = "mozilla:firefox" 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunSRC_URI = "https://ftp.mozilla.org/pub/firefox/releases/${PV}/source/firefox-${PV}.source.tar.xz \ 20*4882a593Smuzhiyun file://mozconfig \ 21*4882a593Smuzhiyun file://mozilla-firefox.png \ 22*4882a593Smuzhiyun file://mozilla-firefox.desktop \ 23*4882a593Smuzhiyun file://prefs/vendor.js \ 24*4882a593Smuzhiyun file://fixes/Allow-.js-preference-files-to-set-locked-prefs-with-.patch \ 25*4882a593Smuzhiyun file://fixes/Bug-1526653-Include-struct-definitions-for-user_vfp-.patch \ 26*4882a593Smuzhiyun file://fixes/Bug-1556197-amend-Bug-1544631-for-fixing-mips32.patch \ 27*4882a593Smuzhiyun file://fixes/Bug-1560340-Only-add-confvars.sh-as-a-dependency-to-.patch \ 28*4882a593Smuzhiyun file://fixes/bug1545437-enable-to-specify-rust-target.patch \ 29*4882a593Smuzhiyun file://fixes/Bug-1640982-SetCARGO_PROFILE_RELEASE_LTO-true-when-e.patch \ 30*4882a593Smuzhiyun file://fixes/avoid-running-autoconf2.13.patch \ 31*4882a593Smuzhiyun file://fixes/pre-generated-old-configure.patch \ 32*4882a593Smuzhiyun file://fixes/link-with-libpangoft.patch \ 33*4882a593Smuzhiyun file://fixes/0001-Bug-1721326-Fix-build-with-glibc-2.34.patch \ 34*4882a593Smuzhiyun file://fixes/0002-security-Fix-build-with-glibc-2.34.patch \ 35*4882a593Smuzhiyun file://fixes/0003-Fix-build-with-Werror-Wunused-but-set-variable.patch \ 36*4882a593Smuzhiyun file://fixes/0004-Fix-build-with-gcc-11.patch \ 37*4882a593Smuzhiyun file://porting/Add-xptcall-support-for-SH4-processors.patch \ 38*4882a593Smuzhiyun file://porting/NSS-Fix-FTBFS-on-Hurd-because-of-MAXPATHLEN.patch \ 39*4882a593Smuzhiyun file://porting/Work-around-Debian-bug-844357.patch \ 40*4882a593Smuzhiyun file://porting/Use-NEON_FLAGS-instead-of-VPX_ASFLAGS-for-libaom-neo.patch \ 41*4882a593Smuzhiyun file://prefs/Set-javascript.options.showInConsole.patch \ 42*4882a593Smuzhiyun file://prefs/Set-DPI-to-system-settings.patch \ 43*4882a593Smuzhiyun file://prefs/Don-t-auto-disable-extensions-in-system-directories.patch \ 44*4882a593Smuzhiyun file://debian-hacks/Add-another-preferences-directory-for-applications-p.patch \ 45*4882a593Smuzhiyun file://debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch \ 46*4882a593Smuzhiyun file://debian-hacks/Don-t-error-out-when-run-time-libsqlite-is-older-tha.patch \ 47*4882a593Smuzhiyun file://debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch \ 48*4882a593Smuzhiyun file://debian-hacks/Don-t-build-image-gtests.patch \ 49*4882a593Smuzhiyun file://debian-hacks/Allow-to-override-ICU_DATA_FILE-from-the-environment.patch \ 50*4882a593Smuzhiyun file://debian-hacks/Set-program-name-from-the-remoting-name.patch \ 51*4882a593Smuzhiyun file://debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch \ 52*4882a593Smuzhiyun file://debian-hacks/Avoid-using-vmrs-vmsr-on-armel.patch \ 53*4882a593Smuzhiyun file://debian-hacks/Use-remoting-name-for-call-to-gdk_set_program_class.patch \ 54*4882a593Smuzhiyun file://debian-hacks/Use-build-id-as-langpack-version-for-reproducibility.patch \ 55*4882a593Smuzhiyun file://wayland/bug1451816-workaround-for-grabbing-popup.patch \ 56*4882a593Smuzhiyun file://wayland/0001-Bug-1745560-Add-missing-stub-for-wl_proxy_marshal_fl.patch \ 57*4882a593Smuzhiyun file://wayland/egl/bug1571603-Disable-eglQueryString-nullptr-EGL_EXTENSIONS.patch \ 58*4882a593Smuzhiyun file://wayland/egl/0001-GLLibraryLoader-Use-given-symbol-lookup-function-fir.patch \ 59*4882a593Smuzhiyun file://wayland/egl/0001-Mark-GLFeature-framebuffer_multisample-as-unsupporte.patch \ 60*4882a593Smuzhiyun " 61*4882a593Smuzhiyun 62*4882a593SmuzhiyunSRC_URI[sha256sum] = "935105e1a8a97d64daffb372690e2b566b5f07641f01470929dbbc82d20d4407" 63*4882a593SmuzhiyunS = "${WORKDIR}/firefox-${MOZ_APP_BASE_VERSION}" 64*4882a593Smuzhiyun 65*4882a593SmuzhiyunMOZ_APP_BASE_VERSION = "${@'${PV}'.replace('esr', '')}" 66*4882a593Smuzhiyun 67*4882a593Smuzhiyuninherit mozilla rust-common-without-python3native 68*4882a593Smuzhiyun 69*4882a593SmuzhiyunTOOLCHAIN:pn-firefox = "clang" 70*4882a593SmuzhiyunAS = "${CC}" 71*4882a593Smuzhiyun 72*4882a593SmuzhiyunDISABLE_STATIC="" 73*4882a593Smuzhiyun 74*4882a593SmuzhiyunARM_INSTRUCTION_SET:armv5 = "arm" 75*4882a593Smuzhiyun 76*4882a593SmuzhiyunPACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "alsa", "alsa", "", d)} \ 77*4882a593Smuzhiyun ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)} \ 78*4882a593Smuzhiyun ${@bb.utils.contains_any("TARGET_ARCH", "x86_64 arm aarch64", "webrtc", "", d)} \ 79*4882a593Smuzhiyun" 80*4882a593SmuzhiyunPACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" 81*4882a593SmuzhiyunPACKAGECONFIG[wayland] = "--enable-default-toolkit=cairo-gtk3-wayland,--enable-default-toolkit=cairo-gtk3,virtual/egl," 82*4882a593SmuzhiyunPACKAGECONFIG[gpu] = ",,," 83*4882a593SmuzhiyunPACKAGECONFIG[openmax] = "--enable-openmax,,," 84*4882a593SmuzhiyunPACKAGECONFIG[webgl] = ",,," 85*4882a593SmuzhiyunPACKAGECONFIG[webrtc] = "--enable-webrtc,--disable-webrtc,," 86*4882a593SmuzhiyunPACKAGECONFIG[forbit-multiple-compositors] = ",,," 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun# Add a config file to enable GPU acceleration by default. 89*4882a593SmuzhiyunSRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'gpu', \ 90*4882a593Smuzhiyun 'file://prefs/gpu.js', '', d)}" 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun# Additional upstream patches to support OpenMAX IL 93*4882a593SmuzhiyunSRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'openmax', \ 94*4882a593Smuzhiyun 'file://fixes/Bug-1590977-openmax-Import-latest-OpenMAX-IL-1.1.2-headers.patch \ 95*4882a593Smuzhiyun file://prefs/openmax.js \ 96*4882a593Smuzhiyun ', '', d)}" 97*4882a593Smuzhiyun 98*4882a593SmuzhiyunSRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'webgl', \ 99*4882a593Smuzhiyun 'file://prefs/webgl.js', '', d)}" 100*4882a593Smuzhiyun 101*4882a593SmuzhiyunSRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'forbit-multiple-compositors', \ 102*4882a593Smuzhiyun 'file://prefs/single-compositor.js \ 103*4882a593Smuzhiyun file://fixes/0001-Enable-to-suppress-multiple-compositors.patch \ 104*4882a593Smuzhiyun ', '', d)}" 105*4882a593Smuzhiyun 106*4882a593Smuzhiyundo_install:append() { 107*4882a593Smuzhiyun install -d ${D}${datadir}/applications 108*4882a593Smuzhiyun install -d ${D}${datadir}/pixmaps 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/mozilla-firefox.desktop ${D}${datadir}/applications/ 111*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/mozilla-firefox.png ${D}${datadir}/pixmaps/ 112*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/prefs/vendor.js ${D}${libdir}/${PN}/defaults/pref/ 113*4882a593Smuzhiyun if [ -n "${@bb.utils.contains_any('PACKAGECONFIG', 'gpu', '1', '', d)}" ]; then 114*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/prefs/gpu.js ${D}${libdir}/${PN}/defaults/pref/ 115*4882a593Smuzhiyun fi 116*4882a593Smuzhiyun if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'openmax', '1', '', d)}" ]; then 117*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/prefs/openmax.js ${D}${libdir}/${PN}/defaults/pref/ 118*4882a593Smuzhiyun fi 119*4882a593Smuzhiyun if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'webgl', '1', '', d)}" ]; then 120*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/prefs/webgl.js ${D}${libdir}/${PN}/defaults/pref/ 121*4882a593Smuzhiyun fi 122*4882a593Smuzhiyun if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'forbit-multiple-compositors', '1', '', d)}" ]; then 123*4882a593Smuzhiyun install -m 0644 ${WORKDIR}/prefs/single-compositor.js ${D}${libdir}/${PN}/defaults/pref/ 124*4882a593Smuzhiyun fi 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun # Fix ownership of files 127*4882a593Smuzhiyun chown root:root -R ${D}${datadir} 128*4882a593Smuzhiyun chown root:root -R ${D}${libdir} 129*4882a593Smuzhiyun} 130*4882a593Smuzhiyun 131*4882a593SmuzhiyunFILES:${PN} = "${bindir}/${PN} \ 132*4882a593Smuzhiyun ${datadir}/applications/ \ 133*4882a593Smuzhiyun ${datadir}/pixmaps/ \ 134*4882a593Smuzhiyun ${libdir}/${PN}/* \ 135*4882a593Smuzhiyun ${libdir}/${PN}/.autoreg \ 136*4882a593Smuzhiyun ${bindir}/defaults" 137*4882a593SmuzhiyunFILES:${PN}-dev += "${datadir}/idl ${bindir}/${PN}-config ${libdir}/${PN}-devel-*" 138*4882a593SmuzhiyunFILES:${PN}-staticdev += "${libdir}/${PN}-devel-*/sdk/lib/*.a" 139*4882a593SmuzhiyunFILES:${PN}-dbg += "${libdir}/${PN}/.debug \ 140*4882a593Smuzhiyun ${libdir}/${PN}/*/.debug \ 141*4882a593Smuzhiyun ${libdir}/${PN}/*/*/.debug \ 142*4882a593Smuzhiyun ${libdir}/${PN}/*/*/*/.debug \ 143*4882a593Smuzhiyun ${libdir}/${PN}-devel-*/*/.debug \ 144*4882a593Smuzhiyun ${libdir}/${PN}-devel-*/*/*/.debug \ 145*4882a593Smuzhiyun ${libdir}/${PN}-devel-*/*/*/*/.debug \ 146*4882a593Smuzhiyun ${libdir}/${PN}/fix_linux_stack.py \ 147*4882a593Smuzhiyun ${bindir}/.debug" 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun# We don't build XUL as system shared lib, so we can mark all libs as private 150*4882a593SmuzhiyunPRIVATE_LIBS = " \ 151*4882a593Smuzhiyun libmozjs.so \ 152*4882a593Smuzhiyun libxpcom.so \ 153*4882a593Smuzhiyun libnspr4.so \ 154*4882a593Smuzhiyun libxul.so \ 155*4882a593Smuzhiyun libmozalloc.so \ 156*4882a593Smuzhiyun libplc4.so \ 157*4882a593Smuzhiyun libplds4.so \ 158*4882a593Smuzhiyun liblgpllibs.so \ 159*4882a593Smuzhiyun libmozgtk.so \ 160*4882a593Smuzhiyun libmozwayland.so \ 161*4882a593Smuzhiyun libmozsqlite3.so \ 162*4882a593Smuzhiyun libclearkey.so \ 163*4882a593Smuzhiyun libmozavcodec.so \ 164*4882a593Smuzhiyun libmozavutil.so \ 165*4882a593Smuzhiyun" 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun# mark libraries also provided by nss as private too 168*4882a593SmuzhiyunPRIVATE_LIBS += " \ 169*4882a593Smuzhiyun libfreebl3.so \ 170*4882a593Smuzhiyun libfreeblpriv3.so \ 171*4882a593Smuzhiyun libnss3.so \ 172*4882a593Smuzhiyun libnssckbi.so \ 173*4882a593Smuzhiyun libsmime3.so \ 174*4882a593Smuzhiyun libnssutil3.so \ 175*4882a593Smuzhiyun libnssdbm3.so \ 176*4882a593Smuzhiyun libssl3.so \ 177*4882a593Smuzhiyun libsoftokn3.so \ 178*4882a593Smuzhiyun" 179*4882a593Smuzhiyun 180*4882a593SmuzhiyunCLEANBROKEN = "1" 181