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 |
|
8d8ddb
|
21 |
USE_PARALLEL_BUILD = yes |
f17a3d
|
22 |
include ../../../make-rules/shared-macros.mk |
265190
|
23 |
ENV = /usr/bin/env |
19364b
|
24 |
|
cc8af4
|
25 |
# ESR should be set to esr for esr build, or an empty string for other builds |
595d33
|
26 |
ESR = |
AW |
27 |
|
cc8af4
|
28 |
# CANDIDATE_BUILD is the build number found in the candidates directory. |
AW |
29 |
# CANDIDATE_BETA is the beta version found in the candidates directory. |
e96c56
|
30 |
# CANDIDATE_NIGHTLY is the nightly release hosted on github |
I |
31 |
# Do not define any for final release build. |
bb1764
|
32 |
# CANDIDATE_BUILD=1 |
a91401
|
33 |
# CANDIDATE_BETA=9 |
e96c56
|
34 |
# CANDIDATE_NIGHTLY=1 |
a4af93
|
35 |
|
CG |
36 |
COMPONENT_NAME = firefox |
05257f
|
37 |
COMPONENT_VERSION = 124.0.2 |
a4af93
|
38 |
COMPONENT_SUMMARY= Mozilla Firefox Web browser |
bc953f
|
39 |
COMPONENT_PROJECT_URL = https://www.mozilla.com/firefox |
a4af93
|
40 |
COMPONENT_SRC_NAME = $(COMPONENT_NAME)-$(COMPONENT_VERSION) |
e96c56
|
41 |
|
5f510f
|
42 |
ifdef CANDIDATE_BETA |
CG |
43 |
COMPONENT_ARCHIVE = $(COMPONENT_NAME)-$(COMPONENT_VERSION)b$(CANDIDATE_BETA)$(ESR).source.tar.xz |
|
44 |
else |
a4af93
|
45 |
COMPONENT_ARCHIVE = $(COMPONENT_SRC_NAME)$(ESR).source.tar.xz |
e96c56
|
46 |
# CANDIDATE_BETA |
5f510f
|
47 |
endif |
e96c56
|
48 |
|
a4af93
|
49 |
ifndef CANDIDATE_BUILD |
358672
|
50 |
MOZILLA_FTP = https://ftp.mozilla.org/pub/$(COMPONENT_NAME)/releases/$(COMPONENT_VERSION)$(ESR) |
bae226
|
51 |
else |
5f510f
|
52 |
ifndef CANDIDATE_BETA |
358672
|
53 |
MOZILLA_FTP = https://ftp.mozilla.org/pub/$(COMPONENT_NAME)/candidates/$(COMPONENT_VERSION)$(ESR)-candidates/build$(CANDIDATE_BUILD) |
5f510f
|
54 |
else |
CG |
55 |
MOZILLA_FTP = https://ftp.mozilla.org/pub/$(COMPONENT_NAME)/candidates/$(COMPONENT_VERSION)b$(CANDIDATE_BETA)$(ESR)-candidates/build$(CANDIDATE_BUILD) |
|
56 |
endif |
bae226
|
57 |
endif |
e96c56
|
58 |
|
I |
59 |
ifdef CANDIDATE_NIGHTLY |
05257f
|
60 |
COMPONENT_GIT_HASH= 9dc5b89f7de66165e234e8d244c2796b2dfe9235 |
e96c56
|
61 |
COMPONENT_SRC= gecko-dev-$(COMPONENT_GIT_HASH) |
I |
62 |
COMPONENT_ARCHIVE= $(COMPONENT_GIT_HASH).tar.gz |
|
63 |
COMPONENT_ARCHIVE_URL= https://github.com/mozilla/gecko-dev/archive/$(COMPONENT_ARCHIVE) |
|
64 |
else |
|
65 |
COMPONENT_SRC = $(COMPONENT_SRC_NAME) |
a4af93
|
66 |
COMPONENT_ARCHIVE_URL = $(MOZILLA_FTP)/source/$(COMPONENT_ARCHIVE) |
e96c56
|
67 |
endif |
I |
68 |
|
05257f
|
69 |
COMPONENT_ARCHIVE_HASH= sha256:a6526d3540e19c8875cb7364e4490436c189478d375c4cb5216b0414e4b2d91c |
bc953f
|
70 |
COMPONENT_PROJECT_URL = https://www.mozilla.com/en-US/firefox/ |
bae226
|
71 |
COMPONENT_FMRI= web/browser/firefox |
c13ffe
|
72 |
|
32d98a
|
73 |
RUST_VERSION = 1.76.0 |
19364b
|
74 |
|
d0b557
|
75 |
# TODO: use remote hashfile to verify |
AW |
76 |
ALLOW_UNVERIFIED_DOWNLOADS=yes |
|
77 |
export ALLOW_UNVERIFIED_DOWNLOADS |
|
78 |
|
a4af93
|
79 |
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 \ |
72ef82
|
80 |
en-US eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fur fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb \ |
a4af93
|
81 |
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 \ |
f29852
|
82 |
pl pt-BR pt-PT rm ro ru sat sc sco si sk sl son sq sr sv-SE szl ta te tg th tl tr trs uk ur uz vi xh zh-CN zh-TW |
a4af93
|
83 |
|
e96c56
|
84 |
ifdef CANDIDATE_NIGHTLY |
I |
85 |
FIREFOX_UPDATE_CHANNEL=nightly |
|
86 |
else |
|
87 |
ifdef CANDIDATE_BETA |
bae226
|
88 |
LANG_FILES_LOCATION= \ |
5f510f
|
89 |
https://ftp.mozilla.org/pub/firefox/candidates/$(COMPONENT_VERSION)b$(CANDIDATE_BETA)$(ESR)-candidates/build$(CANDIDATE_BUILD)/linux-x86_64/xpi |
595d33
|
90 |
FIREFOX_UPDATE_CHANNEL=beta |
bae226
|
91 |
else |
e96c56
|
92 |
ifdef CANDIDATE_BUILD |
bae226
|
93 |
LANG_FILES_LOCATION= \ |
5f510f
|
94 |
https://ftp.mozilla.org/pub/firefox/candidates/$(COMPONENT_VERSION)$(ESR)-candidates/build$(CANDIDATE_BUILD)/linux-x86_64/xpi |
595d33
|
95 |
FIREFOX_UPDATE_CHANNEL=default |
e96c56
|
96 |
else |
5f510f
|
97 |
LANG_FILES_LOCATION= \ |
CG |
98 |
https://ftp.mozilla.org/pub/firefox/releases/$(COMPONENT_VERSION)$(ESR)/linux-x86_64/xpi |
595d33
|
99 |
FIREFOX_UPDATE_CHANNEL=default |
e96c56
|
100 |
endif |
595d33
|
101 |
endif |
AW |
102 |
endif |
|
103 |
|
|
104 |
# handle esr case to set FIREFOX_UPDATE_CHANNEL |
|
105 |
ifdef ESR |
|
106 |
ifeq ($(ESR), esr) |
|
107 |
FIREFOX_UPDATE_CHANNEL=esr |
5f510f
|
108 |
endif |
bae226
|
109 |
endif |
19364b
|
110 |
|
a4af93
|
111 |
CONFIGURE_DEFAULT_DIRS=no |
de3ef7
|
112 |
|
a4af93
|
113 |
include $(WS_MAKE_RULES)/common.mk |
bae226
|
114 |
|
60af70
|
115 |
RUSTUP_HOME = $(BUILD_DIR)/.rust_up |
CG |
116 |
CARGO_HOME = $(BUILD_DIR)/.cargo |
|
117 |
|
|
118 |
PATH = $(CARGO_HOME)/bin:$(PATH.gnu) |
19364b
|
119 |
|
a4af93
|
120 |
MOZCONFIG = $(SOURCE_DIR)/mozconfig |
60af70
|
121 |
GNU_ARCH= x86_64-unknown-illumos |
19364b
|
122 |
|
a4af93
|
123 |
ifdef DEBUG |
CG |
124 |
# disable code optimization |
|
125 |
CFLAGS = |
|
126 |
CXXFLAGS = |
19364b
|
127 |
|
a4af93
|
128 |
MOZCONFIG_DEBUG = $(MOZCONFIG) |
CG |
129 |
MOZCONFIG_NON_DEBUG = /dev/null |
|
130 |
else |
|
131 |
MOZCONFIG_DEBUG = /dev/null |
|
132 |
MOZCONFIG_NON_DEBUG = $(MOZCONFIG) |
|
133 |
endif |
|
134 |
|
|
135 |
CONFIGURE_ENV= |
|
136 |
CONFIGURE_OPTIONS= |
|
137 |
|
|
138 |
# clang or gcc |
|
139 |
CC_TYPE = gcc |
|
140 |
COMPILER.gcc= gcc |
|
141 |
COMPILER.clang= clang |
|
142 |
COMPILER = $(COMPILER.$(CC_TYPE)) |
|
143 |
|
|
144 |
CXXFLAGS += -Wno-invalid-offsetof -fpermissive |
60af70
|
145 |
# xpcom uses DEF XP_SOLARIS |
CG |
146 |
CXXFLAGS += -DXP_SOLARIS |
a4af93
|
147 |
# type problem compiling ffvpx with clang |
CG |
148 |
CFLAGS += -D__int8_t_defined |
|
149 |
|
|
150 |
FIREFOX_LIBDIR = $(CONFIGURE_LIBDIR.$(BITS)) |
|
151 |
|
|
152 |
COMPONENT_PRE_CONFIGURE_ACTION += \ |
|
153 |
rm -f $(MOZCONFIG); \ |
|
154 |
echo "ac_add_options MOZILLA_OFFICIAL=1" >> $(MOZCONFIG) ; \ |
|
155 |
echo "ac_add_options PKG_CONFIG=/usr/bin/amd64/pkg-config" >> $(MOZCONFIG) ; \ |
|
156 |
echo "ac_add_options CC_TYPE=$(CC_TYPE)" >> $(MOZCONFIG) ; \ |
|
157 |
echo "ac_add_options CC=$(CC)" >> $(MOZCONFIG) ; \ |
|
158 |
echo "ac_add_options CXX=$(CXX)" >> $(MOZCONFIG) ; \ |
|
159 |
echo "ac_add_options --prefix=/usr" >> $(MOZCONFIG) ; \ |
|
160 |
echo "ac_add_options --libdir=$(FIREFOX_LIBDIR)" >> $(MOZCONFIG) ; \ |
|
161 |
echo "ac_add_options --disable-crashreporter" >> $(MOZCONFIG) ; \ |
|
162 |
echo "ac_add_options --disable-debug-symbols" >> $(MOZCONFIG_NON_DEBUG) ; \ |
|
163 |
echo "ac_add_options --disable-install-strip" >> $(MOZCONFIG_DEBUG) ; \ |
|
164 |
echo "ac_add_options --disable-optimize" >> $(MOZCONFIG_DEBUG) ; \ |
|
165 |
echo "ac_add_options --disable-tests" >> $(MOZCONFIG) ; \ |
cc8af4
|
166 |
echo "ac_add_options --disable-updater" >> $(MOZCONFIG) ; \ |
a4af93
|
167 |
echo "ac_add_options --enable-debug" >> $(MOZCONFIG_DEBUG) ; \ |
5f510f
|
168 |
echo "ac_add_options --enable-jemalloc" >> $(MOZCONFIG) ; \ |
a4af93
|
169 |
echo "ac_add_options --enable-js-shell" >> $(MOZCONFIG) ; \ |
CG |
170 |
echo "ac_add_options --enable-official-branding" >> $(MOZCONFIG) ; \ |
|
171 |
echo "ac_add_options --enable-optimize" >> $(MOZCONFIG_NON_DEBUG) ; \ |
|
172 |
echo "ac_add_options --enable-pulseaudio" >> $(MOZCONFIG) ; \ |
5f510f
|
173 |
echo "ac_add_options --enable-replace-malloc" >> $(MOZCONFIG) ; \ |
a4af93
|
174 |
echo "ac_add_options --enable-system-pixman" >> $(MOZCONFIG) ; \ |
595d33
|
175 |
echo "ac_add_options --enable-update-channel=$(FIREFOX_UPDATE_CHANNEL)" >> $(MOZCONFIG) ; \ |
a4af93
|
176 |
echo "ac_add_options --with-intl-api" >> $(MOZCONFIG) ; \ |
CG |
177 |
echo "ac_add_options --with-system-zlib" >> $(MOZCONFIG) ; \ |
|
178 |
echo "ac_add_options --host=$(GNU_ARCH)" >> $(MOZCONFIG) ; \ |
|
179 |
echo "ac_add_options --target=$(GNU_ARCH)" >> $(MOZCONFIG) ; \ |
5f510f
|
180 |
echo "ac_add_options --without-wasm-sandboxed-libraries" >> $(MOZCONFIG) ; \ |
595d33
|
181 |
# echo "ac_add_options --enable-bootstrap" >> $(MOZCONFIG) ; \ |
AW |
182 |
# echo "ac_add_options --with-wasi-sysroot=" >> $(MOZCONFIG) ; \ |
a4af93
|
183 |
|
CG |
184 |
LD_SECEXT_OPTIONS += $(SSBD_ENABLE) |
|
185 |
|
|
186 |
# 28395728 |
|
187 |
LD_MAP_NOEXBSS.sparc= |
|
188 |
|
|
189 |
# libmozgtk needs to link to gtk3 and others |
|
190 |
LD_Z_IGNORE= |
|
191 |
|
|
192 |
# missing symbols from gtk3 during Firefox start |
|
193 |
LD_B_DIRECT= |
|
194 |
|
|
195 |
# hope to get args data in stacks of core dumps |
|
196 |
LD_OPTIONS += -msave-args |
|
197 |
|
595d33
|
198 |
# use a local installed rust since the system version may not be compatible |
a4af93
|
199 |
COMPONENT_PRE_CONFIGURE_ACTION += ( \ |
60af70
|
200 |
export RUSTUP_HOME=$(RUSTUP_HOME); \ |
CG |
201 |
export CARGO_HOME=$(CARGO_HOME); \ |
|
202 |
export RUSTUP_INIT_SKIP_PATH_CHECK=yes; \ |
993694
|
203 |
curl https://sh.rustup.rs -sSf | bash -s -- -y --no-modify-path; \ |
60af70
|
204 |
source $(CARGO_HOME)/env; \ |
c13ffe
|
205 |
rustup install $(RUST_VERSION); \ |
CG |
206 |
rustup default $(RUST_VERSION)-x86_64-unknown-illumos; \ |
60af70
|
207 |
rustup show; \ |
f29852
|
208 |
cargo install --root=$(CARGO_HOME) --vers 0.26.0 cbindgen; \ |
a4af93
|
209 |
); |
CG |
210 |
|
bae226
|
211 |
ENV += CFLAGS="$(CFLAGS)" |
MN |
212 |
ENV += CXXFLAGS="$(CXXFLAGS)" |
a4af93
|
213 |
ENV += PKG_CONFIG=/usr/bin/amd64/pkg-config |
60af70
|
214 |
ENV += RUSTUP_HOME=$(RUSTUP_HOME) |
CG |
215 |
ENV += CARGO_HOME=$(CARGO_HOME) |
bae226
|
216 |
|
MN |
217 |
COMPONENT_BUILD_ARGS += $(JOBS:%=-j%) |
19364b
|
218 |
|
AP |
219 |
CONFIGURE_ENV = $(ENV) |
|
220 |
COMPONENT_BUILD_ENV = $(ENV) |
844f55
|
221 |
COMPONENT_INSTALL_ENV += HOME=/tmp |
19364b
|
222 |
|
e96c56
|
223 |
# language support is more complex on nightly release, support on beta and later |
I |
224 |
ifndef CANDIDATE_NIGHTLY |
19364b
|
225 |
LANG_FILES=$(addsuffix .xpi,$(LANG_LIST)) |
AP |
226 |
|
|
227 |
CLEAN_PATHS += $(LANG_FILES) |
|
228 |
|
|
229 |
$(LANG_FILES): |
|
230 |
$(FETCH) --file $@ --url $(LANG_FILES_LOCATION)/$@ |
|
231 |
|
|
232 |
download prep:: $(LANG_FILES) |
e96c56
|
233 |
endif |
19364b
|
234 |
|
a4af93
|
235 |
COMPONENT_POST_BUILD_ACTION = \ |
CG |
236 |
(cd $(@D)/browser/installer ; $(ENV) $(COMPONENT_BUILD_ENV) \ |
|
237 |
$(GMAKE) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS)) |
19364b
|
238 |
|
bae226
|
239 |
COMPONENT_POST_INSTALL_ACTION = \ |
a4af93
|
240 |
for file in `find $(PROTO_DIR)$(FIREFOX_LIBDIR)/firefox/ -name "*.so"`; do \ |
CG |
241 |
/usr/bin/elfedit -e 'dyn:value -s RUNPATH "$(GCC_LIBDIR):$(FIREFOX_LIBDIR)/firefox:/usr/lib/mps/amd64"' $$file ; \ |
|
242 |
/usr/bin/elfedit -e 'dyn:value -s RPATH "$(GCC_LIBDIR):$(FIREFOX_LIBDIR)/firefox:/usr/lib/mps/amd64"' $$file ; \ |
595d33
|
243 |
done ; \ |
AW |
244 |
unzip -c $(PROTOUSRLIBDIR64)/$(COMPONENT_NAME)/omni.ja chrome/toolkit/content/global/license.html \ |
|
245 |
| LC_ALL=en_US.UTF-8 lynx --display_charset=utf-8 -stdin --dump -nolist > $(COMPONENT_NAME).license ; |
bae226
|
246 |
|
a4af93
|
247 |
COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-$(MACH).master |
edb3e9
|
248 |
|
a4af93
|
249 |
COMPONENT_TEST_DIR = $(@D)/js/src |
CG |
250 |
COMPONENT_TEST_TARGETS=check-jit-test |
|
251 |
COMPONENT_TEST_TRANSFORMS = \ |
|
252 |
'-e "/^PASSED ALL/,/Failed:/p" ' \ |
|
253 |
'-e "/^FAILURES:/,/Failed:/p" ' \ |
|
254 |
'-e "/.*/d" ' |
efffc7
|
255 |
|
595d33
|
256 |
# the license file is dynamically build, thus we need to remove it: |
AW |
257 |
clean:: |
|
258 |
$(RM) $(COMPONENT_LICENSE_FILE) |
|
259 |
|
8a7279
|
260 |
# Build dependencies |
84c467
|
261 |
PYTHON_REQUIRED_PACKAGES += runtime/python |
595d33
|
262 |
PYTHON_REQUIRED_PACKAGES += library/python/psutil |
de3ef7
|
263 |
REQUIRED_PACKAGES += developer/build/autoconf-213 |
edb3e9
|
264 |
REQUIRED_PACKAGES += library/audio/pulseaudio |
828d85
|
265 |
REQUIRED_PACKAGES += system/header/header-audio |
595d33
|
266 |
REQUIRED_PACKAGES += developer/lang/rustc |
bae226
|
267 |
REQUIRED_PACKAGES += gnome/config/gconf |
a4af93
|
268 |
REQUIRED_PACKAGES += database/sqlite-3 |
CG |
269 |
REQUIRED_PACKAGES += library/http-parser |
595d33
|
270 |
REQUIRED_PACKAGES += web/browser/lynx |
c37c0d
|
271 |
|
8a7279
|
272 |
# Auto-generated dependencies |
1d902b
|
273 |
REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG) |
CG |
274 |
REQUIRED_PACKAGES += $(GXX_RUNTIME_PKG) |
a4af93
|
275 |
REQUIRED_PACKAGES += library/c++/harfbuzz |
edb3e9
|
276 |
REQUIRED_PACKAGES += library/desktop/atk |
AP |
277 |
REQUIRED_PACKAGES += library/desktop/cairo |
|
278 |
REQUIRED_PACKAGES += library/desktop/gdk-pixbuf |
bae226
|
279 |
REQUIRED_PACKAGES += library/desktop/gtk3 |
edb3e9
|
280 |
REQUIRED_PACKAGES += library/desktop/pango |
AP |
281 |
REQUIRED_PACKAGES += library/glib2 |
bae226
|
282 |
REQUIRED_PACKAGES += library/graphics/pixman |
MN |
283 |
REQUIRED_PACKAGES += library/zlib |
edb3e9
|
284 |
REQUIRED_PACKAGES += system/library |
AP |
285 |
REQUIRED_PACKAGES += system/library/fontconfig |
|
286 |
REQUIRED_PACKAGES += system/library/freetype-2 |
|
287 |
REQUIRED_PACKAGES += system/library/libdbus |
|
288 |
REQUIRED_PACKAGES += system/library/math |
|
289 |
REQUIRED_PACKAGES += x11/library/libx11 |
8a7279
|
290 |
REQUIRED_PACKAGES += x11/library/libxcb |
edb3e9
|
291 |
REQUIRED_PACKAGES += x11/library/libxext |
5f510f
|
292 |
REQUIRED_PACKAGES += x11/library/libxrandr |