Andreas Wacknitz
2021-06-04 358672e6485e3b6ebf13fe0648b7ed3854232c73
commit | author | age
19364b 1 #
99a872 2 # This file and its contents are supplied under the terms of the
AP 3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
6 #
7 # A full copy of the text of the CDDL should have accompanied this
8 # source.  A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
10 #
19364b 11
AP 12 #
a4af93 13 # Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
99a872 14 # Copyright 2015 OpenSXCE.org Martin Bochnig <opensxce@mail.ru>
97cb3f 15 # Copyright 2013-2017 Alexander Pyhalov
bae226 16 # Copyright 2019 Geoffrey Weiss
MN 17 # Copyright 2019 Michal Nowak
a4af93 18 # Copyright 2021 Carsten Grzemba
19364b 19 #
bae226 20
a4af93 21 BUILD_BITS = 64
19364b 22
f17a3d 23 include ../../../make-rules/shared-macros.mk
19364b 24
a4af93 25 ESR = esr
CG 26
27 COMPONENT_NAME =    firefox
358672 28 COMPONENT_VERSION =    78.11.0
a4af93 29 COMPONENT_REVISION=     0
CG 30 COMPONENT_SUMMARY=      Mozilla Firefox Web browser
bc953f 31 COMPONENT_PROJECT_URL =    https://www.mozilla.com/firefox
a4af93 32 COMPONENT_SRC_NAME =    $(COMPONENT_NAME)-$(COMPONENT_VERSION)
CG 33 COMPONENT_SRC =     $(COMPONENT_SRC_NAME)
34 COMPONENT_ARCHIVE =    $(COMPONENT_SRC_NAME)$(ESR).source.tar.xz
358672 35 COMPONENT_ARCHIVE_HASH= sha256:38394b5937be3839104b3a097d71987c06392d4d8be0d3004182f1d1fbfc577e
a4af93 36 ifndef CANDIDATE_BUILD
358672 37 MOZILLA_FTP =        https://ftp.mozilla.org/pub/$(COMPONENT_NAME)/releases/$(COMPONENT_VERSION)$(ESR)
bae226 38 else
358672 39 MOZILLA_FTP =        https://ftp.mozilla.org/pub/$(COMPONENT_NAME)/candidates/$(COMPONENT_VERSION)$(ESR)-candidates/build$(CANDIDATE_BUILD)
bae226 40 endif
a4af93 41 COMPONENT_ARCHIVE_URL =    $(MOZILLA_FTP)/source/$(COMPONENT_ARCHIVE)
bc953f 42 COMPONENT_PROJECT_URL = https://www.mozilla.com/en-US/firefox/
bae226 43 COMPONENT_FMRI=        web/browser/firefox
19364b 44
a4af93 45 LANG_LIST= ach af an ar ast az be bg bn br bs ca-valencia ca cak cs cy da de dsb el en-CA en-GB \
CG 46  en-US eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb \
47  hu hy-AM ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my nb-NO ne-NP nl nn-NO oc pa-IN \
48  pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te th tl tr trs uk ur uz vi xh zh-CN zh-TW
49
bae226 50 ifdef CANDIDATE_BUILD
MN 51 LANG_FILES_LOCATION= \
52     http://ftp.mozilla.org/pub/mozilla.org/firefox/candidates/$(COMPONENT_VERSION)-candidates/build$(CANDIDATE_BUILD)/linux-x86_64/xpi/
53 else
54 LANG_FILES_LOCATION= \
a4af93 55     http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$(COMPONENT_VERSION)$(ESR)/linux-x86_64/xpi/
bae226 56 endif
19364b 57
a4af93 58 CONFIGURE_DEFAULT_DIRS=no
de3ef7 59
a4af93 60 include $(WS_MAKE_RULES)/common.mk
bae226 61
a4af93 62 PATH = $(PATH.gnu):$(BUILD_DIR)/cargo/bin
19364b 63
a4af93 64 MOZCONFIG = $(SOURCE_DIR)/mozconfig
bae226 65 GNU_ARCH=        x86_64-sun-solaris
19364b 66
a4af93 67 ifdef DEBUG
CG 68 # disable code optimization
69 CFLAGS =
70 CXXFLAGS =
19364b 71
a4af93 72 MOZCONFIG_DEBUG =    $(MOZCONFIG)
CG 73 MOZCONFIG_NON_DEBUG =    /dev/null
74 else
75 MOZCONFIG_DEBUG =    /dev/null
76 MOZCONFIG_NON_DEBUG =    $(MOZCONFIG)
77 endif
78
79 CONFIGURE_ENV=
80 CONFIGURE_OPTIONS=
81
82 # clang or gcc
83 CC_TYPE = gcc
84 COMPILER.gcc= gcc
85 COMPILER.clang= clang
86 COMPILER = $(COMPILER.$(CC_TYPE))
87
88 CXXFLAGS += -Wno-invalid-offsetof -fpermissive
89 # type problem compiling ffvpx with clang 
90 CFLAGS += -D__int8_t_defined
91
92 FIREFOX_LIBDIR =    $(CONFIGURE_LIBDIR.$(BITS))
93
94 COMPONENT_PRE_CONFIGURE_ACTION += \
95         rm -f  $(MOZCONFIG); \
96     echo "ac_add_options MOZILLA_OFFICIAL=1" >> $(MOZCONFIG) ; \
97     echo "ac_add_options PKG_CONFIG=/usr/bin/amd64/pkg-config" >> $(MOZCONFIG) ; \
98     echo "ac_add_options CC_TYPE=$(CC_TYPE)" >> $(MOZCONFIG) ; \
99     echo "ac_add_options CC=$(CC)" >> $(MOZCONFIG) ; \
100     echo "ac_add_options CXX=$(CXX)" >> $(MOZCONFIG) ; \
101     echo "ac_add_options --prefix=/usr" >> $(MOZCONFIG) ; \
102     echo "ac_add_options --libdir=$(FIREFOX_LIBDIR)" >> $(MOZCONFIG) ; \
103     echo "ac_add_options --disable-crashreporter" >> $(MOZCONFIG) ; \
104     echo "ac_add_options --disable-debug-symbols" >> $(MOZCONFIG_NON_DEBUG) ; \
105     echo "ac_add_options --disable-install-strip" >> $(MOZCONFIG_DEBUG) ; \
106     echo "ac_add_options --disable-optimize" >> $(MOZCONFIG_DEBUG) ; \
107     echo "ac_add_options --disable-tests" >> $(MOZCONFIG) ; \
108     echo "ac_add_options --disable-updater" >> $(MOZCONFIG) ; \
109     echo "ac_add_options --enable-debug" >> $(MOZCONFIG_DEBUG) ; \
110     echo "ac_add_options --enable-js-shell" >> $(MOZCONFIG) ; \
111     echo "ac_add_options --enable-official-branding" >> $(MOZCONFIG) ; \
112     echo "ac_add_options --enable-optimize" >> $(MOZCONFIG_NON_DEBUG) ; \
113     echo "ac_add_options --enable-pulseaudio" >> $(MOZCONFIG) ; \
114     echo "ac_add_options --enable-system-pixman" >> $(MOZCONFIG) ; \
115     echo "ac_add_options --enable-update-channel=esr" >> $(MOZCONFIG) ; \
116     echo "ac_add_options --with-intl-api" >> $(MOZCONFIG) ; \
117     echo "ac_add_options --with-system-libevent" >> $(MOZCONFIG) ; \
118     echo "ac_add_options --with-system-zlib" >> $(MOZCONFIG) ; \
119     echo "ac_add_options --host=$(GNU_ARCH)" >> $(MOZCONFIG) ; \
120     echo "ac_add_options --target=$(GNU_ARCH)" >> $(MOZCONFIG) ; \
121
122 LD_SECEXT_OPTIONS += $(SSBD_ENABLE)
123
124 # 28395728
125 LD_MAP_NOEXBSS.sparc=
126
127 # libmozgtk needs to link to gtk3 and others
128 LD_Z_IGNORE=
129
130 # missing symbols from gtk3 during Firefox start
131 LD_B_DIRECT=
132
133 # hope to get args data in stacks of core dumps
134 LD_OPTIONS += -msave-args
135
136 # because we touched old-configure.in and js/src/old-configure.in
137 COMPONENT_PRE_CONFIGURE_ACTION += ( \
138     cd $(COMPONENT_NAME)-$(COMPONENT_VERSION); \
139     autoreconf; \
140     touch configure; \
141     cd js/src; \
142     autoreconf; \
143     touch configure; \
144     cargo install --root=$(BUILD_DIR)/cargo cbindgen \
145     );
146
bae226 147 ENV +=    CFLAGS="$(CFLAGS)"
MN 148 ENV +=    CXXFLAGS="$(CXXFLAGS)"
a4af93 149 ENV += PKG_CONFIG=/usr/bin/amd64/pkg-config
bae226 150
MN 151 COMPONENT_BUILD_ARGS += $(JOBS:%=-j%)
19364b 152
AP 153 CONFIGURE_ENV =    $(ENV)
154 COMPONENT_BUILD_ENV =    $(ENV)
844f55 155 COMPONENT_INSTALL_ENV += HOME=/tmp
19364b 156
AP 157 LANG_FILES=$(addsuffix .xpi,$(LANG_LIST))
158
159 CLEAN_PATHS += $(LANG_FILES)
160
161 $(LANG_FILES): 
162     $(FETCH) --file $@  --url $(LANG_FILES_LOCATION)/$@
163
164 download prep:: $(LANG_FILES)
165
a4af93 166 COMPONENT_POST_BUILD_ACTION = \
CG 167     (cd $(@D)/browser/installer ; $(ENV) $(COMPONENT_BUILD_ENV) \
168         $(GMAKE) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS))
19364b 169
bae226 170 COMPONENT_POST_INSTALL_ACTION  = \
a4af93 171     for file in `find $(PROTO_DIR)$(FIREFOX_LIBDIR)/firefox/ -name "*.so"`; do \
CG 172         /usr/bin/elfedit -e 'dyn:value -s  RUNPATH "$(GCC_LIBDIR):$(FIREFOX_LIBDIR)/firefox:/usr/lib/mps/amd64"' $$file ; \
173         /usr/bin/elfedit -e 'dyn:value -s  RPATH   "$(GCC_LIBDIR):$(FIREFOX_LIBDIR)/firefox:/usr/lib/mps/amd64"' $$file ; \
bae226 174     done ;
19364b 175
a4af93 176 SIGNED_LIST = libsoftokn3.so libfreebl3.so
bae226 177
MN 178 COMPONENT_POST_INSTALL_ACTION += \
179         slist='$(SIGNED_LIST)' ; for f in $$slist ; do \
180             mcs -d $(PROTO_DIR)$(FIREFOX_LIBDIR)/firefox/$$f ; \
181             LD_LIBRARY_PATH=$(PROTO_DIR)$(FIREFOX_LIBDIR)/firefox $(BUILD_DIR_64)/dist/bin/shlibsign -v -i $(PROTO_DIR)$(FIREFOX_LIBDIR)/firefox/$$f ; \
182         done ;
183
a4af93 184 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-$(MACH).master
edb3e9 185
a4af93 186 COMPONENT_TEST_DIR =    $(@D)/js/src
CG 187 COMPONENT_TEST_TARGETS=check-jit-test
188 COMPONENT_TEST_TRANSFORMS = \
189     '-e "/^PASSED ALL/,/Failed:/p" ' \
190     '-e "/^FAILURES:/,/Failed:/p" ' \
191     '-e "/.*/d" '
efffc7 192
8a7279 193 # Build dependencies
de3ef7 194 REQUIRED_PACKAGES += developer/build/autoconf-213
edb3e9 195 REQUIRED_PACKAGES += library/audio/pulseaudio
828d85 196 REQUIRED_PACKAGES += system/header/header-audio
bae226 197 REQUIRED_PACKAGES += developer/lang/rustc
MN 198 REQUIRED_PACKAGES += gnome/config/gconf
a4af93 199 REQUIRED_PACKAGES += runtime/python-37
CG 200 REQUIRED_PACKAGES += library/python/psutil
201 REQUIRED_PACKAGES += database/sqlite-3
202 REQUIRED_PACKAGES += library/http-parser
8a7279 203
AL 204 # Auto-generated dependencies
1d902b 205 REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG)
CG 206 REQUIRED_PACKAGES += $(GXX_RUNTIME_PKG)
a4af93 207 REQUIRED_PACKAGES += library/c++/harfbuzz
edb3e9 208 REQUIRED_PACKAGES += library/desktop/atk
AP 209 REQUIRED_PACKAGES += library/desktop/cairo
210 REQUIRED_PACKAGES += library/desktop/gdk-pixbuf
211 REQUIRED_PACKAGES += library/desktop/gtk2
bae226 212 REQUIRED_PACKAGES += library/desktop/gtk3
edb3e9 213 REQUIRED_PACKAGES += library/desktop/pango
AP 214 REQUIRED_PACKAGES += library/glib2
bae226 215 REQUIRED_PACKAGES += library/graphics/pixman
a4af93 216 REQUIRED_PACKAGES += library/libevent2
bae226 217 REQUIRED_PACKAGES += library/zlib
edb3e9 218 REQUIRED_PACKAGES += system/library
AP 219 REQUIRED_PACKAGES += system/library/fontconfig
220 REQUIRED_PACKAGES += system/library/freetype-2
221 REQUIRED_PACKAGES += system/library/libdbus
222 REQUIRED_PACKAGES += system/library/libdbus-glib
223 REQUIRED_PACKAGES += system/library/math
224 REQUIRED_PACKAGES += x11/library/libx11
8a7279 225 REQUIRED_PACKAGES += x11/library/libxcb
edb3e9 226 REQUIRED_PACKAGES += x11/library/libxext
AP 227 REQUIRED_PACKAGES += x11/library/libxrender
228 REQUIRED_PACKAGES += x11/library/toolkit/libxt