24 # |
24 # |
25 |
25 |
26 # parfait is a bit unhappy (22527218) |
26 # parfait is a bit unhappy (22527218) |
27 export PARFAIT_BUILD=no |
27 export PARFAIT_BUILD=no |
28 |
28 |
29 COMPILER = gcc |
29 BUILD_BITS= 32 |
30 |
30 COMPILER= gcc |
31 include ../../../make-rules/shared-macros.mk |
31 include ../../../make-rules/shared-macros.mk |
32 |
32 |
33 # gcc 5.3 can't compile this version of firefox yet, so keep using 4.8 for now. |
33 # gcc 5.3 can't compile this version of firefox yet, so keep using 4.9 for now. |
34 GCC_ROOT = /usr/gcc/4.8 |
34 GCC_ROOT = /usr/gcc/4.9 |
35 |
35 |
36 COMPONENT_NAME = firefox |
36 COMPONENT_NAME = firefox |
37 COMPONENT_VERSION = 38.5.0esr |
37 COMPONENT_VERSION = 45.1.1esr |
38 COMPONENT_PROJECT_URL = http://www.mozilla.com/firefox |
38 COMPONENT_PROJECT_URL = http://www.mozilla.com/firefox |
39 COMPONENT_SRC = mozilla-esr38 |
|
40 COMPONENT_SRC_NAME = $(COMPONENT_NAME)-$(COMPONENT_VERSION) |
39 COMPONENT_SRC_NAME = $(COMPONENT_NAME)-$(COMPONENT_VERSION) |
41 COMPONENT_ARCHIVE = $(COMPONENT_SRC_NAME).source.tar.bz2 |
40 COMPONENT_SRC = $(COMPONENT_SRC_NAME) |
|
41 COMPONENT_ARCHIVE = $(COMPONENT_SRC_NAME).source.tar.xz |
42 COMPONENT_ARCHIVE_HASH = \ |
42 COMPONENT_ARCHIVE_HASH = \ |
43 sha256:2a1f90cfe390ab20be88fed38cb9f61a18281cfbee47505c67e0254d339cdb20 |
43 sha256:a27e36aa1ccebddfe5a113f7f15b09a61e35644be58029b00b0d996a00d04562 |
44 MOZILLA_FTP = http://ftp.mozilla.org/pub/mozilla.org/$(COMPONENT_NAME)/releases/$(COMPONENT_VERSION) |
44 MOZILLA_FTP = http://ftp.mozilla.org/pub/mozilla.org/$(COMPONENT_NAME)/releases/$(COMPONENT_VERSION) |
45 COMPONENT_ARCHIVE_URL = $(MOZILLA_FTP)/source/$(COMPONENT_ARCHIVE) |
45 COMPONENT_ARCHIVE_URL = $(MOZILLA_FTP)/source/$(COMPONENT_ARCHIVE) |
46 COMPONENT_BUGDB = firefox/browser |
46 COMPONENT_BUGDB = firefox/browser |
47 |
47 |
48 TPNO= 26828 |
48 TPNO= 28419 |
49 |
49 |
50 IPS_COMPONENT_VERSION = 38.5.0 |
50 IPS_COMPONENT_VERSION = 45.1.1 |
51 |
51 |
52 # There are a set of .xpi files (as given in the LANG_LIST definition below) |
52 # There are a set of .xpi files (as given in the LANG_LIST definition below) |
53 # that we need. These are available under: |
53 # that we need. These are available under: |
54 # http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.8.0esr/linux-i686/xpi/ |
54 # http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.8.0esr/linux-i686/xpi/ |
55 # We could download and unpack them individually, but instead I've created |
55 # We could download and unpack them individually, but instead I've created |
56 # a compressed tarball of them, and made that available locally for download. |
56 # a compressed tarball of them, and made that available locally for download. |
57 # Downloading them individually can be a problem because firefox/thunderbird |
57 # Downloading them individually can be a problem because firefox/thunderbird |
58 # collide due to different files with identical .xpi names. |
58 # collide due to different files with identical .xpi names. |
59 COMPONENT_ARCHIVE_1 = $(COMPONENT_SRC_NAME)-xpi.tar.gz |
59 COMPONENT_ARCHIVE_1 = $(COMPONENT_SRC_NAME)-xpi.tar.gz |
60 COMPONENT_ARCHIVE_HASH_1 = \ |
60 COMPONENT_ARCHIVE_HASH_1 = \ |
61 sha256:1fe09d5540167cbda3029f4e02640498fbb98ad7b47cdb6b8872e6dcf522a3e1 |
61 sha256:d80142e7b64b3b61baaf7631e6ad0bf7c4a44d962dc3611bf6dba2dde33aacea |
62 COMPONENT_ARCHIVE_URL_1 = $(INTERNAL_ARCHIVE_MIRROR)/source-archives/$(COMPONENT_ARCHIVE_1) |
62 COMPONENT_ARCHIVE_URL_1 = $(INTERNAL_ARCHIVE_MIRROR)/source-archives/$(COMPONENT_ARCHIVE_1) |
63 |
63 |
64 LANG_LIST = ar be bg ca cs da de el es-AR es-CL es-ES et fi \ |
64 LANG_LIST = ar be bg ca cs da de el es-AR es-CL es-ES et fi \ |
65 fr he hi-IN hr hu id is it ja kk ko lt lv mk nb-NO nl nn-NO \ |
65 fr he hi-IN hr hu id is it ja kk ko lt lv mk nb-NO nl nn-NO \ |
66 pl pt-BR pt-PT ro ru sk sl sq sr sv-SE th tr uk vi zh-CN zh-TW |
66 pl pt-BR pt-PT ro ru sk sl sq sr sv-SE th tr uk vi zh-CN zh-TW |
67 |
67 |
68 include $(WS_MAKE_RULES)/prep.mk |
|
69 include $(WS_MAKE_RULES)/configure.mk |
|
70 |
|
71 # Alignment issues on sparc: do not publish until resolved. |
68 # Alignment issues on sparc: do not publish until resolved. |
72 ifeq ($(BUILD_TYPE), evaluation) |
69 include $(WS_MAKE_RULES)/no-evaluation.mk |
73 BUILD_32= |
70 |
74 INSTALL_32= |
71 include $(WS_MAKE_RULES)/common.mk |
75 PUBLISH_STAMP= |
|
76 endif |
|
77 |
|
78 include $(WS_MAKE_RULES)/ips.mk |
|
79 |
72 |
80 # /usr/gnu/bin needed to pick up the GNU version of tail and readelf. |
73 # /usr/gnu/bin needed to pick up the GNU version of tail and readelf. |
81 # /usr/sbin needed for dtrace. |
74 # /usr/sbin needed for dtrace. |
82 PATH = $(dirname $(CC)):/usr/gnu/bin:/usr/bin:/usr/sbin |
75 PATH = $(dirname $(CC)):/usr/gnu/bin:/usr/bin:/usr/sbin |
83 |
76 |
84 CLEAN_PATHS += $(COMPONENT_SRC) |
77 CLEAN_PATHS += $(COMPONENT_SRC) |
|
78 CLEAN_PATHS += $(COMPONENT_DIR)/xpi |
85 |
79 |
86 MOZCONFIG = $(BUILD_DIR_32)/mozconfig |
80 MOZCONFIG = $(BUILD_DIR_32)/mozconfig |
87 |
81 |
88 COMPONENT_PRE_CONFIGURE_ACTION += \ |
82 COMPONENT_PRE_CONFIGURE_ACTION += \ |
89 echo "mk_add_options BUILD_OFFICIAL=1" > $(MOZCONFIG) ; \ |
83 echo "mk_add_options BUILD_OFFICIAL=1" > $(MOZCONFIG) ; \ |
95 echo "ac_add_options --disable-updater" >> $(MOZCONFIG) ; \ |
89 echo "ac_add_options --disable-updater" >> $(MOZCONFIG) ; \ |
96 echo "ac_add_options --enable-debug-symbols=no" >> $(MOZCONFIG) ; \ |
90 echo "ac_add_options --enable-debug-symbols=no" >> $(MOZCONFIG) ; \ |
97 echo "ac_add_options --enable-update-packaging" >> $(MOZCONFIG) ; \ |
91 echo "ac_add_options --enable-update-packaging" >> $(MOZCONFIG) ; \ |
98 echo "ac_add_options --enable-update-channel=esr" >> $(MOZCONFIG) ; \ |
92 echo "ac_add_options --enable-update-channel=esr" >> $(MOZCONFIG) ; \ |
99 echo "ac_add_options --disable-tests" >> $(MOZCONFIG) ; \ |
93 echo "ac_add_options --disable-tests" >> $(MOZCONFIG) ; \ |
100 echo "ac_add_options --with-system-libevent" >> $(MOZCONFIG) ; \ |
|
101 echo "ac_add_options --with-system-zlib" >> $(MOZCONFIG) ; \ |
94 echo "ac_add_options --with-system-zlib" >> $(MOZCONFIG) ; \ |
102 echo "ac_add_options --with-system-bz2" >> $(MOZCONFIG) ; \ |
95 echo "ac_add_options --with-system-bz2" >> $(MOZCONFIG) ; \ |
|
96 echo "ac_add_options --with-system-libevent" >> $(MOZCONFIG) ; \ |
103 echo "ac_add_options --enable-system-ffi" >> $(MOZCONFIG) ; \ |
97 echo "ac_add_options --enable-system-ffi" >> $(MOZCONFIG) ; \ |
104 echo "ac_add_options --enable-system-sqlite" >> $(MOZCONFIG) ; \ |
|
105 echo "ac_add_options --enable-jemalloc" >> $(MOZCONFIG) ; \ |
98 echo "ac_add_options --enable-jemalloc" >> $(MOZCONFIG) ; \ |
106 echo "ac_add_options --enable-xinerama" >> $(MOZCONFIG) ; \ |
99 echo "ac_add_options --enable-xinerama" >> $(MOZCONFIG) ; \ |
107 echo "ac_add_options --disable-crashreporter" >> $(MOZCONFIG) ; \ |
100 echo "ac_add_options --disable-crashreporter" >> $(MOZCONFIG) ; \ |
108 echo "ac_add_options --disable-pulseaudio" >> $(MOZCONFIG) ; \ |
101 echo "ac_add_options --disable-pulseaudio" >> $(MOZCONFIG) ; \ |
109 echo "ac_add_options --enable-gstreamer" >> $(MOZCONFIG) ; \ |
102 echo "ac_add_options --enable-gstreamer" >> $(MOZCONFIG) ; \ |
110 echo "ac_add_options --without-intl-api" >> $(MOZCONFIG) ; \ |
103 echo "ac_add_options --with-intl-api" >> $(MOZCONFIG) ; \ |
111 echo "ac_add_options --enable-system-libffi" >> $(MOZCONFIG) ; \ |
104 echo "ac_add_options --enable-system-libffi" >> $(MOZCONFIG) ; \ |
|
105 echo "ac_add_options --enable-system-sqlite" >> $(MOZCONFIG) ; \ |
112 echo "ac_add_options --enable-ipc" >> $(MOZCONFIG) ; \ |
106 echo "ac_add_options --enable-ipc" >> $(MOZCONFIG) ; \ |
113 echo "ac_add_options --enable-system-pixman" >> $(MOZCONFIG) ; \ |
107 echo "ac_add_options --enable-system-pixman" >> $(MOZCONFIG) ; \ |
114 echo "ac_add_options --enable-startup-notification" >> $(MOZCONFIG) ; \ |
108 echo "ac_add_options --enable-startup-notification" >> $(MOZCONFIG) ; \ |
115 echo "ac_add_options --enable-dtrace" >> $(MOZCONFIG) ; \ |
109 echo "ac_add_options --enable-dtrace" >> $(MOZCONFIG) ; \ |
116 echo "ac_add_options --enable-replace-malloc" >> $(MOZCONFIG) ; |
110 echo "ac_add_options --enable-replace-malloc" >> $(MOZCONFIG) ; |
117 |
111 |
118 CXXFLAGS += -Wno-invalid-offsetof -fpermissive |
112 CXXFLAGS += -Wno-invalid-offsetof -fpermissive |
119 CC += $(CC_BITS) |
113 CC += $(CC_BITS) |
120 CXX += $(CC_BITS) |
114 CXX += $(CC_BITS) |
121 |
115 |
|
116 # Currently, GCC 4.9 incorrectly forces all 32-bit compilation to use lf64(7) |
|
117 # interfaces. |
|
118 CFLAGS += -U_FILE_OFFSET_BITS |
|
119 CXXFLAGS += -U_FILE_OFFSET_BITS |
|
120 |
122 CONFIGURE_ENV += PKG_CONFIG_PATH=$(CONFIGURE_LIBDIR.$(BITS))/pkgconfig |
121 CONFIGURE_ENV += PKG_CONFIG_PATH=$(CONFIGURE_LIBDIR.$(BITS))/pkgconfig |
123 CONFIGURE_ENV += OS_DEFINES="-D__USE_LEGACY_PROTOTYPES__" |
122 CONFIGURE_ENV += OS_DEFINES="-D__USE_LEGACY_PROTOTYPES__" |
124 CONFIGURE_ENV += CXXFLAGS='-xlibmil -xlibmopt -lCrun -lCstd -features=tmplrefstatic,no%except -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ -template=no%extdef' |
|
125 # -L.../dist/lib needs to be set otherwise it will report missing libnss3.so, |
123 # -L.../dist/lib needs to be set otherwise it will report missing libnss3.so, |
126 # libssl3.so, etc, while linking. |
124 # libssl3.so, etc, while linking. |
127 CONFIGURE_ENV += LDFLAGS="$(LD_Z_IGNORE) -z interpose -B nodirect -L$(BUILD_DIR_32)/dist/lib" |
125 CONFIGURE_ENV += LDFLAGS="-z ignore -z interpose -B nodirect -L$(BUILD_DIR_32)/dist/lib -L$(BUILD_DIR_32)/dist/bin" |
128 |
126 |
129 |
127 |
130 CONFIGURE_ENV += MOZCONFIG=$(MOZCONFIG) |
128 CONFIGURE_ENV += MOZCONFIG=$(MOZCONFIG) |
131 CONFIGURE_ENV += "CC=$(CC)" |
129 CONFIGURE_ENV += "CC=$(CC)" |
132 CONFIGURE_ENV += "CXX=$(CXX)" |
130 CONFIGURE_ENV += "CXX=$(CXX)" |
156 list1='$(LANG_LIST)' ; for f in $$list1 ; do \ |
154 list1='$(LANG_LIST)' ; for f in $$list1 ; do \ |
157 $(CP) xpi/$$f.xpi \ |
155 $(CP) xpi/$$f.xpi \ |
158 $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/browser/extensions/[email protected] ; \ |
156 $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/browser/extensions/[email protected] ; \ |
159 done ; |
157 done ; |
160 |
158 |
|
159 FF_XPI = $(MOZILLA_FTP)/linux-i686/xpi |
|
160 |
|
161 # Run gmake download-xpis to download a tarball for xpi locally. |
|
162 # The resulting archive should be uploaded to userland internal archive. |
|
163 download-xpis: |
|
164 @echo "download-xpis" |
|
165 $(RM) -r $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_1) |
|
166 $(MKDIR) $(COMPONENT_DIR)/xpi |
|
167 @echo "downloading firefox xpis" |
|
168 list1='$(LANG_LIST)' ; for f in $$list1 ; do \ |
|
169 echo $$f; \ |
|
170 /usr/bin/curl -s -o $(COMPONENT_DIR)/xpi/$$f.xpi \ |
|
171 $(FF_XPI)/$$f.xpi; \ |
|
172 done |
|
173 (cd $(COMPONENT_DIR); \ |
|
174 $(TAR) czvf $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_1) xpi ) |
|
175 /usr/bin/sha256sum $(COMPONENT_ARCHIVE_1) |
|
176 |
161 SIGNED_LIST.i386 = libsoftokn3.so libnssdbm3.so libfreebl3.so |
177 SIGNED_LIST.i386 = libsoftokn3.so libnssdbm3.so libfreebl3.so |
162 SIGNED_LIST.sparc = libsoftokn3.so libnssdbm3.so libfreebl_32int_3.so libfreebl_32int64_3.so |
178 SIGNED_LIST.sparc = libsoftokn3.so libnssdbm3.so libfreebl_32int_3.so libfreebl_32int64_3.so |
163 SIGNED_LIST = $(SIGNED_LIST.$(MACH)) |
179 SIGNED_LIST = $(SIGNED_LIST.$(MACH)) |
164 |
180 |
165 COMPONENT_POST_INSTALL_ACTION += \ |
181 COMPONENT_POST_INSTALL_ACTION += \ |
166 slist='$(SIGNED_LIST)' ; for f in $$slist ; do \ |
182 slist='$(SIGNED_LIST)' ; for f in $$slist ; do \ |
167 mcs -d $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/$$f ; \ |
183 mcs -d $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/$$f ; \ |
168 LD_LIBRARY_PATH=$(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION) $(BUILD_DIR_32)/dist/bin/shlibsign -v -i $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/$$f ; \ |
184 LD_LIBRARY_PATH=$(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION) $(BUILD_DIR_32)/dist/bin/shlibsign -v -i $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/$$f ; \ |
169 done ; |
185 done ; |
170 |
186 |
|
187 COMPONENT_TEST_MASTER = \ |
|
188 $(COMPONENT_TEST_RESULTS_DIR)/results-$(MACH).master |
171 COMPONENT_TEST_DIR = $(@D)/js/src |
189 COMPONENT_TEST_DIR = $(@D)/js/src |
172 COMPONENT_TEST_TARGETS=check-jit-test |
190 COMPONENT_TEST_TARGETS=check-jit-test |
173 COMPONENT_TEST_TRANSFORMS += \ |
191 COMPONENT_TEST_TRANSFORMS += \ |
174 '-e "/\(^TEST-PASS\).*/d" ' |
192 '-e "/\(^TEST-PASS\).*/d" ' |
175 |
193 |
176 configure: $(CONFIGURE_32) |
|
177 |
|
178 build: $(BUILD_32) |
|
179 |
|
180 install: $(INSTALL_32) |
|
181 |
|
182 test: $(TEST_32) |
|
183 |
|
184 system-test: $(NO_TESTS) |
|
185 |
|
186 REQUIRED_PACKAGES += codec/libogg |
|
187 REQUIRED_PACKAGES += codec/libvorbis |
|
188 REQUIRED_PACKAGES += codec/ogg-vorbis |
|
189 REQUIRED_PACKAGES += database/sqlite-3 |
194 REQUIRED_PACKAGES += database/sqlite-3 |
190 REQUIRED_PACKAGES += library/desktop/atk |
195 REQUIRED_PACKAGES += library/desktop/atk |
191 REQUIRED_PACKAGES += library/desktop/cairo |
196 REQUIRED_PACKAGES += library/desktop/cairo |
192 REQUIRED_PACKAGES += library/desktop/gdk-pixbuf |
197 REQUIRED_PACKAGES += library/desktop/gdk-pixbuf |
193 REQUIRED_PACKAGES += library/desktop/gtk2 |
198 REQUIRED_PACKAGES += library/desktop/gtk2 |