xref: /OK3568_Linux_fs/yocto/meta-browser/meta-firefox/recipes-browser/firefox/firefox_68.9.0esr.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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