openbsd-ports/www/mozilla/mozilla.port.mk
landry 07bbe94fe8 www/mozilla: switch to selfhosted profdata archives for www/mozilla-firefox
upstream switched to clang 15.0.5 in the 109 cycle, and our llvm 13
doesn't know how to handle profdata files generated with that version.

profdata converted for llvm 13 on a debian VM.. thanks robert@ for the
hints. Should be dropped when we switch to llvm 15.
2023-01-17 14:32:47 +00:00

172 lines
5.9 KiB
Makefile

# ppc: firefox-esr/thunderbird xpcshell segfaults during startup compilation
# ppc: seamonkey/firefox - failure to link for atomic ops on 64 bits
# gcc does ICE on alpha at some particular spots:
# thunderbird-24.0/comm-esr24/mozilla/js/src/vm/Debugger.cpp:3246
# firefox-24.0/mozilla-release/js/src/frontend/BytecodeEmitter.cpp:1488
# seamonkey-2.22/comm-release/mozilla/js/src/vm/Interpreter.cpp:743
# firefox-25.0/mozilla-release/js/src/builtin/MapObject.cpp:1119
.if ${MACHINE_ARCH} == "i386"
MAKE_ENV += RUSTFLAGS="-C target-cpu=pentium4 --cfg target_feature=\"sse2\""
# reduce build memory usage:
CONFIGURE_ARGS += --disable-debug-symbols
DPB_PROPERTIES += lonesome
.else
DPB_PROPERTIES += parallel
.endif
.for _lib in ${MOZILLA_LIBS}
SHARED_LIBS += ${_lib} ${SO_VERSION}
.endfor
PKGNAME ?= ${MOZILLA_PROJECT}-${MOZILLA_VERSION:S/b/beta/}
MAINTAINER ?= Landry Breuil <landry@openbsd.org>
MOZILLA_DIST ?= ${MOZILLA_PROJECT}
MOZILLA_DIST_VERSION ?= ${MOZILLA_VERSION:C/rc.//}
MOZILLA_MAJOR_VERSION =${MOZILLA_VERSION:C/\..*//}
.if ${MOZILLA_VERSION:M*rc?}
MASTER_SITES ?= https://ftp.mozilla.org/pub/${MOZILLA_DIST}/candidates/${MOZILLA_DIST_VERSION}-candidates/build${MOZILLA_VERSION:C/.*(.)/\1/}/source/
# first is the CDN and only has last releases
# ftp.m.o has all the betas/candidate builds but should only be used as fallback
.else
MASTER_SITES ?= https://releases.mozilla.org/pub/${MOZILLA_DIST}/releases/${MOZILLA_DIST_VERSION}/source/ \
https://ftp.mozilla.org/pub/${MOZILLA_DIST}/releases/${MOZILLA_DIST_VERSION}/source/
.endif
.if defined(MOZILLA_COMMIT) && defined(MOZILLA_BRANCH)
DISTNAME = ${MOZILLA_DIST}-${MOZILLA_DIST_VERSION}
DISTFILES ?= ${MOZILLA_DIST}-${MOZILLA_DIST_VERSION}${EXTRACT_SUFX}{${MOZILLA_COMMIT}${EXTRACT_SUFX}}
WRKDIST = ${WRKDIR}/mozilla-${MOZILLA_BRANCH}-${MOZILLA_COMMIT}
MASTER_SITES ?= https://hg.mozilla.org/releases/mozilla-${MOZILLA_BRANCH}/archive/
EXTRACT_SUFX = .tar.bz2
MODMOZILLA_pre-configure+= \
cp ${WRKSRC}/${CONFIGURE_SCRIPT}.in ${WRKSRC}/${CONFIGURE_SCRIPT}; \
cp ${WRKSRC}/js/src/${CONFIGURE_SCRIPT}.in ${WRKSRC}/js/src/${CONFIGURE_SCRIPT}; \
chmod +x ${WRKSRC}/${CONFIGURE_SCRIPT}
.endif
DISTNAME ?= ${MOZILLA_DIST}-${MOZILLA_DIST_VERSION}.source
EXTRACT_SUFX ?= .tar.xz
DIST_SUBDIR ?= mozilla
.if defined(MOZILLA_PROFDATA_TASKID)
DISTFILES = ${MOZILLA_DIST}-${MOZILLA_DIST_VERSION}.source${EXTRACT_SUFX}
.if ${MOZILLA_PROJECT} == "firefox"
DISTFILES += ${DISTNAME}-profdata${EXTRACT_SUFX}:0
MASTER_SITES0=https://rhaalovely.net/stuff/
.else
DISTFILES += ${DISTNAME}-profdata${EXTRACT_SUFX}{profdata${EXTRACT_SUFX}}:0
MASTER_SITES0=https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/${MOZILLA_PROFDATA_TASKID}/runs/0/artifacts/public/build/
.endif
CONFIGURE_ARGS += --enable-profile-use
CONFIGURE_ARGS += --with-pgo-profile-path=${WRKDIR}/merged.profdata
.endif
MODMOZ_RUN_DEPENDS = devel/desktop-file-utils
# autoconf-2.13 isnt a real dependency since a while, but configure still checks for it
MODMOZ_BUILD_DEPENDS = devel/autoconf/2.13 \
archivers/gtar \
archivers/unzip \
archivers/zip>=2.3
.if !defined(MOZILLA_USE_BUNDLED_NSS)
MODMOZ_LIB_DEPENDS += security/nss>=3.84
MODMOZ_WANTLIB += nss3 nssutil3 smime3 ssl3
CONFIGURE_ARGS += --with-system-nss
.endif
.if !defined(MOZILLA_USE_BUNDLED_NSPR)
MODMOZ_LIB_DEPENDS += devel/nspr>=4.35
MODMOZ_WANTLIB += nspr4 plc4 plds4
CONFIGURE_ARGS += --with-system-nspr
.endif
.if !defined(MOZILLA_USE_BUNDLED_ICU)
MODMOZ_LIB_DEPENDS += textproc/icu4c
MODMOZ_WANTLIB += icudata icui18n icuuc
CONFIGURE_ARGS += --with-system-icu
.endif
# bug #736961
SEPARATE_BUILD = Yes
.if ${MACHINE_ARCH:Mi386} || ${MACHINE_ARCH:Mamd64}
# needed for webm
MODMOZ_BUILD_DEPENDS += devel/yasm
# needed for dav1d since 67
MODMOZ_BUILD_DEPENDS += devel/nasm
.endif
# 53 needs rust
MODMOZ_BUILD_DEPENDS += lang/rust
# stylo build needs LLVM
MODMOZ_BUILD_DEPENDS += devel/llvm
#1670807
MODMOZ_BUILD_DEPENDS += devel/m4
MODMOZ_WANTLIB += X11 X11-xcb Xcomposite Xcursor Xdamage Xext Xfixes Xi Xrender \
atk-1.0 c cairo fontconfig freetype gdk_pixbuf-2.0 \
gio-2.0 glib-2.0 gobject-2.0 harfbuzz intl m \
pango-1.0 pangocairo-1.0 sndio z xcb xcb-shm
MODMOZ_WANTLIB += ${COMPILER_LIBCXX}
WANTLIB += ${MODMOZ_WANTLIB}
BUILD_DEPENDS +=${MODMOZ_BUILD_DEPENDS}
LIB_DEPENDS += ${MODMOZ_LIB_DEPENDS}
RUN_DEPENDS += ${MODMOZ_RUN_DEPENDS}
USE_GMAKE ?= Yes
# no --with-system-jpeg starting with fx 18, requires libjpeg-turbo because of bug 791305
# no --with-system-ffi, needs 3.0.10 when not using gcc
# no --with-system-cairo, removed in #1432751
# no --with-system-png, apng support not bundled in
# no --with-system-sqlite, option removed in #1611386 and we need to use bundled sqlite which has SQLITE_ENABLE_FTS3_TOKENIZER (#1252937)
# no --enable-system-hunspell, removed in #1460600
AUTOCONF_VERSION = 2.13
CONFIGURE_ARGS += --with-system-zlib \
--enable-official-branding \
--enable-optimize="${CFLAGS}" \
--disable-tests \
--disable-updater \
--disable-dbus
# firefox >= 46 defaults to gtk+3
CONFIGURE_ARGS += --enable-default-toolkit=cairo-gtk3
MODMOZ_LIB_DEPENDS += x11/gtk+3
MODMOZ_WANTLIB += cairo-gobject gdk-3 gtk-3
PORTHOME = ${WRKSRC}
# from browser/config/mozconfig
.if ${MOZILLA_CODENAME:Mcomm*}
CONFIGURE_ARGS +=--enable-application=${MOZILLA_CODENAME}
.else
#1801738
CONFIGURE_ARGS +=--enable-project=${MOZILLA_CODENAME}
.endif
WRKDIST ?= ${WRKDIR}/${MOZILLA_DIST}-${MOZILLA_DIST_VERSION}
# needed for PLIST
MOZILLA_VER = ${MOZILLA_VERSION:C/b[0-9]*//:C/esr//:C/rc.$//}
SUBST_VARS += MOZILLA_PROJECT MOZILLA_VER MOZILLA_VERSION
MAKE_ENV += MOZILLA_OFFICIAL=1 \
SHELL=/bin/sh \
SO_VERSION="${SO_VERSION}" \
LLVM_CONFIG="${LOCALBASE}/bin/llvm-config"
CONFIGURE_ENV += ${MAKE_ENV}
# ensure libffi's configure doesnt pick gsed/gmkdir/gawk
CONFIGURE_ENV += ac_cv_path_ax_enable_builddir_sed=/usr/bin/sed
CONFIGURE_ENV += ac_cv_path_SED=/usr/bin/sed
CONFIGURE_ENV += ac_cv_path_mkdir=/bin/mkdir
CONFIGURE_ENV += ac_cv_prog_AWK=/usr/bin/awk
CONFIGURE_ENV += AWK=/usr/bin/awk
CONFIGURE_ENV += M4=/usr/local/bin/gm4