landry 3ae1b1aac0 Update to firefox 52.0.1.
Fixes MFSA 2017-08/CVE-2017-5428, see
https://www.mozilla.org/en-US/security/advisories/mfsa2017-08/

While here, add a patch from semarie@ (tested by and ok danj@) to tweak
a last-minute change in the jit engine memory allocator that happened to
fix a security issue in 52 branch (bug #1334933/CVE-2017-5400) - see
https://hg.mozilla.org/releases/mozilla-esr52/rev/6b35bbf96b67.

Sadly, this change resulted in a browser crashing at startup
on OpenBSD with the default limits, because the jit engine tried to
allocate 1Gb (previously 640Mb in #1334933, then 1Gb because of
#1337561, see
https://hg.mozilla.org/releases/mozilla-esr52/rev/65bb26d07408) and hit
the default datasize ulimit of 768Mb. The patch makes it allocate 128Mb
instead (as it's done on 32bit architectures), while a better (?) fix
might be devised in bug #1347139.

Generally speaking, if you see firefox crashing with ENOMEM errors,
raise the datasize limit for your login class, write your own wrapper
script to temporarly raise the limit when starting firefox, or stop
using the modern web. Websites are ginormous, deal with it.
2017-03-20 19:35:15 +00:00

79 lines
2.4 KiB
Makefile

# $OpenBSD: Makefile,v 1.312 2017/03/20 19:35:15 landry Exp $
COMMENT = Mozilla web browser
# Don't forget to bump www/firefox-i18n after updates.
MOZILLA_VERSION = 52.0.1
MOZILLA_BRANCH = release
MOZILLA_PROJECT = firefox
MOZILLA_CODENAME = browser
BROKEN-sparc64 = xpcshell SIGBUS during fake
EXTRACT_SUFX = .tar.xz
SO_VERSION = 70.0
# NOTE: Must bump minor version if any shlib's are removed from the
# components dir to avoid pkg_add -r issues.
MOZILLA_LIBS = mozavcodec mozavutil mozgtk xul clearkey lgpllibs
CATEGORIES = www
# mozilla public license
PERMIT_PACKAGE_CDROM= Yes
# lots of logic in mozilla.port.mk
MODULES = www/mozilla devel/gettext lang/python
MODPY_RUNDEP = No
MODULES += lang/clang
MODCLANG_ARCHS = amd64 i386
MODCLANG_LANGS = c c++
# firefox >= 44 doesnt build with base libevent
MOZILLA_USE_BUNDLED_LIBEVENT = Yes
# firefox >= 46 defaults to gtk+3
MOZILLA_USE_GTK3 = Yes
WANTLIB += X11-xcb pixman-1 pthread-stubs xcb xcb-shm
# Regression tests are too hard to adapt to run here
NO_TEST = Yes
CONFIGURE_STYLE = simple
CONFIGURE_ARGS += --prefix=${PREFIX}
# to be able to link when building with clang on i386
.if ${MACHINE_ARCH} == "i386"
CONFIGURE_ARGS += --disable-debug-symbols
.endif
# relies on pulseaudio for sound and broken at runtime
#CONFIGURE_ARGS += --disable-webrtc
# bug 857628
CONFIGURE_ARGS += --enable-pie
post-install:
${SUBST_MAN} ${FILESDIR}/mozilla-firefox.1 \
${PREFIX}/man/man1/mozilla-firefox.1
cd ${PREFIX}/man/man1/ && ln -sf mozilla-firefox.1 firefox.1
cd ${PREFIX}/bin/ && ln -sf firefox mozilla-firefox
# install prefs
${INSTALL_DATA_DIR} ${PREFIX}/lib/${MOZILLA_PROJECT}-${MOZILLA_VER}/browser/defaults/preferences
${SUBST_DATA} ${FILESDIR}/all-openbsd.js \
${PREFIX}/lib/${MOZILLA_PROJECT}-${MOZILLA_VER}/browser/defaults/preferences/all-openbsd.js
# install desktop file
${INSTALL_DATA_DIR} ${PREFIX}/share/applications/
${SUBST_DATA} ${FILESDIR}/${MOZILLA_PROJECT}.desktop \
${PREFIX}/share/applications/${MOZILLA_PROJECT}.desktop
# install icon for desktop file
${INSTALL_DATA_DIR} ${PREFIX}/share/pixmaps/
${INSTALL_DATA} ${PREFIX}/lib/${MOZILLA_PROJECT}-${MOZILLA_VER}/browser/icons/mozicon128.png \
${PREFIX}/share/pixmaps/firefox.png
# link default48.png to default.png to be used by default by non-icccm compliant wm
ln ${PREFIX}/lib/firefox-${MOZILLA_VER}/browser/chrome/icons/default/default{48,}.png
.include <bsd.port.mk>