pkgsrc/www/firefox/Makefile
ryoon abbc478a2d firefox: Update to 93.0
Changelog:
New

  * Firefox now supports the new AVIF image format, which is based on the
    modern and royalty free AV1 video codec. It offers significant bandwidth
    savings for sites compared to existing image formats. It also supports
    transparency and other advanced features.

  * Firefox PDF viewer now supports filling more forms (XFA-based forms, used
    by multiple governments and banks). Learn more.

  * When available system memory is critically low, Firefox on Windows will
    automatically unload tabs based on their last access time, memory usage,
    and other attributes. This should help reduce Firefox out-of-memory
    crashes. Switching to an unloaded tab automatically reloads it.

  * To prevent session loss for macOS users who are running Firefox from a
    mounted .dmg file, they??ll now be prompted to finish installation. This
    permission prompt only appears the first time these users run Firefox on
    their computer.

  * Firefox now blocks downloads that rely on insecure connections, protecting
    against potentially malicious or unsafe downloads. Learn more and see where
    to find downloads in Firefox.

  * Improved web compatibility for privacy protections with SmartBlock 3.0.
    Learn more

  * Introducing a new referrer tracking protection in Strict Tracking
    Protection and Private Browsing. Learn more

  * Introducing Firefox Suggest, a faster way to navigate the web. Learn more
    about the experience and locale-specific features.

Fixed

  * The VoiceOver screen reader now correctly reports checkable items in
    accessible tree controls as checked or unchecked.

  * The Orca screen reader now works correctly with Firefox, no longer
    requiring users to switch to another application after starting Firefox.

  * Various security fixes

Changed

  * TLS ciphersuites that use 3DES have been disabled. Such ciphersuites can
    only be enabled when deprecated versions of TLS are also enabled. Learn
    more.

  * The download panel now follows the Firefox visual styles.

Enterprise

  * Various bug fixes and new policies have been implemented in the latest
    version of Firefox. See more details in the Firefox for Enterprise 93
    Release Notes.

Developer

  * Developer Information

Web Platform

  * The UI for <input type="datetime-local"> has been implemented.

Security fixes:
#CVE-2021-38496: Use-after-free in MessageTask
#CVE-2021-38497: Validation message could have been overlaid on another origin
#CVE-2021-38498: Use-after-free of nsLanguageAtomService object
#CVE-2021-32810: Data race in crossbeam-deque
#CVE-2021-38500: Memory safety bugs fixed in Firefox 93, Firefox ESR 78.15, and
 Firefox ESR 91.2
#CVE-2021-38501: Memory safety bugs fixed in Firefox 93 and Firefox ESR 91.2
#CVE-2021-38499: Memory safety bugs fixed in Firefox 93
2021-10-15 13:00:05 +00:00

170 lines
5.7 KiB
Makefile

# $NetBSD: Makefile,v 1.499 2021/10/15 13:00:05 ryoon Exp $
FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
MOZ_BRANCH= 93.0
MOZ_BRANCH_MINOR=
DISTNAME= firefox-${FIREFOX_VER}.source
PKGNAME= ${DISTNAME:S/.source//:S/b/beta/:S/esr//}
CATEGORIES= www
MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/}
EXTRACT_SUFX= .tar.xz
DISTFILES= ${DEFAULT_DISTFILES} nodejs-output-93.0.tgz
SITES.nodejs-output-93.0.tgz= ${MASTER_SITE_LOCAL}
MAINTAINER= ryoon@NetBSD.org
HOMEPAGE= https://www.mozilla.org/en-US/firefox/
COMMENT= Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//})
LICENSE= mpl-1.1
# -------- BEFORE UPDATING THIS PACKAGE PLEASE READ & UNDERSTAND: -------
#
# This package works around a (stupid) build time dependency on nodejs
# (which is not available for all architectures and unnecessary for the
# real build). To do this, it places some additional burden on the
# maintainer.
#
# While working on the package, please make sure you have
#
# FIREFOX_MAINTAINER=yes
#
# set in your build environment.
# When the package is ready for commit (but before commit), do:
#
# make maintainer-files
#
# This will do another round (depending on state of your work dir at this
# moment) of one or two builds and generate a cache of all output that
# nodejs generates during a build.
#
# When this is done, just commit the results (they will be in the files/
# directory).
#
# -----------------------------------------------------------------------
UNLIMIT_RESOURCES+= datasize virtualsize
WRKSRC= ${WRKDIR}/firefox-${FIREFOX_VER:C/b.*//}
MOZILLA_DIR= # empty
# Note: when updating remember to conditionalise about-background.png in PLIST
CONFIGURE_ARGS+= --enable-application=browser
#CFLAGS+= -I${PREFIX}/include/nspr
# for lang/gcc6
CFLAGS+= -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS
CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS
LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE}
LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib
LDFLAGS.DragonFly+= -lplc4 -lnspr4
LDFLAGS.FreeBSD+= -lplc4 -lnspr4
LDFLAGS.Linux+= -lnspr4
LDFLAGS.SunOS+= -lm
# XXX not sure how to test this! likely unnecessary
NOT_PAX_MPROTECT_SAFE+= lib/${PKGBASE}/plugin-container
# Avoid ld "invalid section index" errors.
BUILDLINK_TRANSFORM.SunOS+= rm:-fdata-sections
BUILDLINK_TRANSFORM.SunOS+= rm:-ffunction-sections
BUILDLINK_TRANSFORM.SunOS+= rm:-pie
# Workaround for https://bugs.llvm.org/show_bug.cgi?id=46366
BUILDLINK_TRANSFORM.NetBSD+= rm:-fexperimental-new-pass-manager
SUBST_CLASSES+= dfly_malloc_h
SUBST_STAGE.dfly_malloc_h= pre-configure
SUBST_MESSAGE.dfly_malloc_h= Dont include malloc.h on dragonflybsd
SUBST_SED.dfly_malloc_h= -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g'
SUBST_FILES.dfly_malloc_h+= media/ffvpx/libavutil/mem.c
.include "mozilla-common.mk"
.include "options.mk"
CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/header.py
CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/typelib.py
CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpidl.py
CHECK_INTERPRETER_SKIP+= lib/firefox-sdk/sdk/bin/xpt.py
CHECK_WRKREF_SKIP+= lib/${MOZILLA}/omni.ja
MOZILLA= ${PKGBASE}
.if !empty(PKG_OPTIONS:Mofficial-mozilla-branding)
MOZILLA_NAME= Firefox
MOZILLA_BRANDING= official
.else
MOZILLA_NAME= Browser
MOZILLA_BRANDING= unofficial
.endif
pre-configure:
cd ${WRKSRC} && autoconf
cd ${WRKSRC}/js/src && autoconf
cd ${WRKSRC} && mkdir ${OBJDIR}
cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars
# Do not fetch Rust Cargo file via network during build
.if !defined(FIREFOX_MAINTAINER)
mv ${WRKDIR}/dist ${WRKSRC}/${OBJDIR}
.endif
.if defined(FIREFOX_MAINTAINER)
# Create files needed only by the firefox maintainer when updating
# the package
# XXX - manually removing the .*_done files is wrong!
.PHONY: build-list
build-list:
cd ${WRKSRC}/${OBJDIR}/dist/bin/browser/chrome && \
find . -type f | sort > ${OUT:Q}
NODE_LIST= "${WRKDIR}/node.list"
NO_NODE_LIST= "${WRKDIR}/no-node.list"
NODE_FILES= "${WRKDIR}/node.flist"
.PHONY: maintainer-files
maintainer-files:
rm -f ${FILESDIR}/node-wrapper.sh
V=$$( node -v ) && \
printf '#! /bin/sh\n\nVERS=%s\n\nif [ "$$1" = "-v" ] || [ "$$1" = "--version" ]; then\n\tprintf "$${VERS}\\n"\nfi\n\nexit 0\n' $$V \
> ${FILESDIR}/node-wrapper.sh && \
chmod 0755 ${FILESDIR}/node-wrapper.sh
rm -f ${WRKDIR}/.build_done ${WRKDIR}/.configure_done
${MAKE} MAINTAINER_INTERNAL=yes build
${MAKE} MAINTAINER_INTERNAL=yes OUT="${NO_NODE_LIST}" build-list
${MAKE} OUT="${NODE_LIST}" build-list
${DIFF} -u "${NO_NODE_LIST}" "${NODE_LIST}" | \
${AWK} \
'/^\+\.\//{ printf("dist/bin/browser/chrome/%s\n", gensub(/^\+\.\//, "", "")) }' \
> "${NODE_FILES}"
cd ${WRKSRC}/${OBJDIR} && tar -c -T "${NODE_FILES}" -z \
-f ${FILESDIR}/nodejs-output-${PKGVERSION_NOREV}.tgz
.endif
post-build:
${SED} -e 's|@MOZILLA@|${MOZILLA}|g' \
-e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g' \
-e 's|@FIREFOX_ICON@|${MOZILLA}|g' \
< ${FILESDIR}/desktop.in \
> ${WRKDIR}/desktop
INSTALLATION_DIRS+= share/applications
post-install:
${ECHO} '#! /bin/sh' > ${DESTDIR}${PREFIX}/bin/${MOZILLA}
${ECHO} '${PREFIX}/lib/${MOZILLA}/${MOZILLA} "$$@"' >> \
${DESTDIR}${PREFIX}/bin/${MOZILLA}
${CHMOD} 755 ${DESTDIR}${PREFIX}/bin/${MOZILLA}
${INSTALL_DATA} ${WRKDIR}/desktop \
${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop
.for i in 16 22 24 32 48 64 128 256
${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps
${INSTALL_DATA} ${WRKSRC}/browser/branding/${MOZILLA_BRANDING}/default${i}.png \
${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps/${MOZILLA}.png
.endfor
.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
.include "../../sysutils/desktop-file-utils/desktopdb.mk"
.include "../../mk/bsd.pkg.mk"