From c15a785768c9516e3fa6d1f58dd42a8afefcbe8f Mon Sep 17 00:00:00 2001 From: Nick Alexander Date: Wed, 8 Jul 2020 23:01:36 +0000 Subject: [PATCH] Bug 1651130 - Part 1: Extract NSS and "update programs" configuration. r=froydnj This is just re-arranging the deckchairs in preparation for adding an "update programs" build project. Here "update programs" refers to the various standalone binaries we produce in order to update Firefox. There's not strong conceptual coherence between them; rather, it's the pieces that the Install/Update team generally work on. Differential Revision: https://phabricator.services.mozilla.com/D82643 --- build/moz.configure/nss.configure | 28 ++++++ build/moz.configure/update-programs.configure | 68 +++++++++++++++ toolkit/moz.configure | 86 ++----------------- 3 files changed, 102 insertions(+), 80 deletions(-) create mode 100644 build/moz.configure/nss.configure create mode 100644 build/moz.configure/update-programs.configure diff --git a/build/moz.configure/nss.configure b/build/moz.configure/nss.configure new file mode 100644 index 000000000000..28ef21ce0376 --- /dev/null +++ b/build/moz.configure/nss.configure @@ -0,0 +1,28 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +option('--with-system-nss', help='Use system NSS') + +imply_option('--with-system-nspr', True, when='--with-system-nss') + +nss_pkg = pkg_check_modules('NSS', 'nss >= 3.54', when='--with-system-nss', config=False) + +set_config('MOZ_SYSTEM_NSS', True, when='--with-system-nss') + + +@depends(nss_pkg, check_build_environment) +def nss_config(nss_pkg, build_env): + cflags = ['-I%s' % os.path.join(build_env.dist, 'include', 'nss')] + libs = None + if nss_pkg: + cflags = list(nss_pkg.cflags) + cflags + libs = nss_pkg.libs + return namespace(cflags=cflags, libs=libs) + + +set_config('NSS_CFLAGS', nss_config.cflags) +set_config('NSS_LIBS', nss_config.libs) +add_old_configure_assignment('NSS_CFLAGS', nss_config.cflags) diff --git a/build/moz.configure/update-programs.configure b/build/moz.configure/update-programs.configure new file mode 100644 index 000000000000..e3bb7b464295 --- /dev/null +++ b/build/moz.configure/update-programs.configure @@ -0,0 +1,68 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Verify MAR signatures +# ============================================================== + +option('--disable-verify-mar', help='Disable verifying MAR signatures') + +set_define('MOZ_VERIFY_MAR_SIGNATURE', + depends_if('--enable-verify-mar')(lambda _: True)) +set_config('MOZ_VERIFY_MAR_SIGNATURE', + depends_if('--enable-verify-mar')(lambda _: True)) + +# Maintenance service (Windows only) +# ============================================================== + +option('--enable-maintenance-service', + when=target_is_windows, default=target_is_windows, + help='{Enable|Disable} building of maintenance service') + +set_define('MOZ_MAINTENANCE_SERVICE', + depends_if('--enable-maintenance-service', + when=target_is_windows)(lambda _: True)) +set_config('MOZ_MAINTENANCE_SERVICE', + depends_if('--enable-maintenance-service', + when=target_is_windows)(lambda _: True)) + +# Update agent (currently Windows only) +# This is an independent task that runs on a schedule to +# check for, download, and install updates. +# ============================================================== + +option('--enable-update-agent', + when=target_is_windows, default=False, + help='{Enable|Disable} building update agent') + +set_define('MOZ_UPDATE_AGENT', + depends_if('--enable-update-agent', + when=target_is_windows)(lambda _: True)) + +set_config('MOZ_UPDATE_AGENT', + depends_if('--enable-update-agent', + when=target_is_windows)(lambda _: True)) + +# Enable or disable the default browser agent, which monitors the user's default +# browser setting on Windows. +# ============================================================================== + + +@depends(target) +def default_browser_agent_default(target): + return target.os == 'WINNT' + + +option('--enable-default-browser-agent', default=default_browser_agent_default, + help='{Enable|Disable} building the default browser agent') + + +@depends('--enable-default-browser-agent', when=target_is_windows) +def default_agent_flag(enabled): + if enabled: + return True + + +set_config('MOZ_DEFAULT_BROWSER_AGENT', default_agent_flag) diff --git a/toolkit/moz.configure b/toolkit/moz.configure index 54c575de7696..44d7e0cde2a8 100644 --- a/toolkit/moz.configure +++ b/toolkit/moz.configure @@ -1302,37 +1302,6 @@ def llvm_dlltool_flags(target): set_config('LLVM_DLLTOOL_FLAGS', llvm_dlltool_flags) -# Maintenance service (Windows only) -# ============================================================== - -option('--enable-maintenance-service', - when=target_is_windows, default=target_is_windows, - help='{Enable|Disable} building of maintenance service') - -set_define('MOZ_MAINTENANCE_SERVICE', - depends_if('--enable-maintenance-service', - when=target_is_windows)(lambda _: True)) -set_config('MOZ_MAINTENANCE_SERVICE', - depends_if('--enable-maintenance-service', - when=target_is_windows)(lambda _: True)) - -# Update agent (currently Windows only) -# This is an independent task that runs on a schedule to -# check for, download, and install updates. -# ============================================================== - -option('--enable-update-agent', - when=target_is_windows, default=False, - help='{Enable|Disable} building update agent') - -set_define('MOZ_UPDATE_AGENT', - depends_if('--enable-update-agent', - when=target_is_windows)(lambda _: True)) - -set_config('MOZ_UPDATE_AGENT', - depends_if('--enable-update-agent', - when=target_is_windows)(lambda _: True)) - # BITS download (Windows only) # ============================================================== @@ -1365,16 +1334,6 @@ option('--enable-bundled-fonts', default=bundled_fonts_default, set_define('MOZ_BUNDLED_FONTS', depends_if('--enable-bundled-fonts', when=allow_bundled_fonts)(lambda _: True)) -# Verify MAR signatures -# ============================================================== - -option('--disable-verify-mar', help='Disable verifying MAR signatures') - -set_define('MOZ_VERIFY_MAR_SIGNATURE', - depends_if('--enable-verify-mar')(lambda _: True)) -set_config('MOZ_VERIFY_MAR_SIGNATURE', - depends_if('--enable-verify-mar')(lambda _: True)) - # TaskTracer # ============================================================== @@ -2064,44 +2023,11 @@ with only_when(compile_environment & target_is_linux): set_config('HAVE_GETCONTEXT', getcontext) set_define('HAVE_GETCONTEXT', getcontext) - -# Enable or disable the default browser agent, which monitors the user's default -# browser setting on Windows. -# ============================================================================== - -@depends(target) -def default_browser_agent_default(target): - return target.os == 'WINNT' - -option('--enable-default-browser-agent', default=default_browser_agent_default, - help='{Enable|Disable} building the default browser agent') - -@depends('--enable-default-browser-agent', when=target_is_windows) -def default_agent_flag(enabled): - if enabled: - return True - -set_config('MOZ_DEFAULT_BROWSER_AGENT', default_agent_flag) - # NSS -# === -option('--with-system-nss', help='Use system NSS') +# ============================================================== +include('../build/moz.configure/nss.configure') -imply_option('--with-system-nspr', True, when='--with-system-nss') - -nss_pkg = pkg_check_modules('NSS', 'nss >= 3.54', when='--with-system-nss', config=False) - -set_config('MOZ_SYSTEM_NSS', True, when='--with-system-nss') - -@depends(nss_pkg, check_build_environment) -def nss_config(nss_pkg, build_env): - cflags = ['-I%s' % os.path.join(build_env.dist, 'include', 'nss')] - libs = None - if nss_pkg: - cflags = list(nss_pkg.cflags) + cflags - libs = nss_pkg.libs - return namespace(cflags=cflags, libs=libs) - -set_config('NSS_CFLAGS', nss_config.cflags) -set_config('NSS_LIBS', nss_config.libs) -add_old_configure_assignment('NSS_CFLAGS', nss_config.cflags) +# Update-related programs: updater, maintenance service, update agent, +# default browser agent. +# ============================================================== +include('../build/moz.configure/update-programs.configure')