try draft
authorMike Hommey <mh+mozilla@glandium.org>
Wed, 20 Feb 2019 15:31:06 +0900
changeset 1845742 a1cbe2d5ef9521c24001c191f3be0e32312ce981
parent 1845715 bec1903068108b483c5ac63ed6420dbe7eb9734a
child 1845743 38b0b91ca565fc9975ac0ebbf84217f71a0bf6b6
push id335872
push usermh@glandium.org
push dateWed, 20 Feb 2019 10:04:19 +0000
treeherdertry@38b0b91ca565 [default view] [failures only]
milestone67.0a1
try
Makefile.in
browser/config/mozconfigs/linux64/artifact
browser/config/mozconfigs/win64-aarch64/artifact
browser/installer/Makefile.in
browser/installer/package-manifest.in
config/baseconfig.mk
taskcluster/ci/artifact-build/kind.yml
taskcluster/ci/diffoscope/kind.yml
toolkit/moz.configure
--- a/Makefile.in
+++ b/Makefile.in
@@ -165,16 +165,19 @@ endif
 
 # Host binaries are not produced for macOS consumers: that is, there's
 # no macOS-hosted job to produce them at this time.  Therefore we
 # enable --host-bins only for automation builds, which only require Linux and
 # Windows host binaries.
 recurse_artifact:
 	$(topsrcdir)/mach --log-no-times artifact install$(if $(MOZ_ARTIFACT_BUILD_SYMBOLS), --symbols)$(if $(MOZ_AUTOMATION), --host-bins)
 
+recurse_win32-artifact:
+	$(topsrcdir)/mach --log-no-times artifact install --job win32-opt --no-tests --distdir $(DIST)/i686
+
 ifdef MOZ_WIDGET_TOOLKIT
 ifdef ENABLE_TESTS
 # Additional makefile targets to call automated test suites
 include $(topsrcdir)/testing/testsuite-targets.mk
 endif
 endif
 
 default all::
--- a/browser/config/mozconfigs/linux64/artifact
+++ b/browser/config/mozconfigs/linux64/artifact
@@ -1,7 +1,9 @@
 . "$topsrcdir/build/mozconfig.artifact.automation"
 
 . "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
 . "$topsrcdir/build/mozconfig.common.override"
 
 . "$topsrcdir/build/mozconfig.artifact"
+
+ac_add_options --with-branding=browser/branding/nightly
 ac_add_options --enable-artifact-build-symbols
--- a/browser/config/mozconfigs/win64-aarch64/artifact
+++ b/browser/config/mozconfigs/win64-aarch64/artifact
@@ -1,13 +1,17 @@
 . "$topsrcdir/build/mozconfig.artifact.automation"
 
 # Needed to set SourceRepository in application.ini (used by Talos)
 export MOZILLA_OFFICIAL=1
 
+. "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-opt"
 . "$topsrcdir/browser/config/mozconfigs/win64-aarch64/common-win64"
 . "$topsrcdir/browser/config/mozconfigs/common"
 . "$topsrcdir/build/mozconfig.win-common"
 . "$topsrcdir/build/win64-aarch64/mozconfig.vs-latest"
 . "$topsrcdir/build/mozconfig.common.override"
 
 . "$topsrcdir/build/mozconfig.artifact"
+
+ac_add_options --with-branding=browser/branding/nightly
 ac_add_options --enable-artifact-build-symbols
+ac_add_options --enable-eme=widevine
--- a/browser/installer/Makefile.in
+++ b/browser/installer/Makefile.in
@@ -51,16 +51,20 @@ endif
 ifdef NSS_DISABLE_DBM
 DEFINES += -DNSS_DISABLE_DBM=1
 endif
 
 ifdef MOZ_ARTIFACT_BUILDS
 DEFINES += -DMOZ_ARTIFACT_BUILDS=1
 endif
 
+ifdef MOZ_EME_WIN32_ARTIFACT
+DEFINES += -DMOZ_EME_WIN32_ARTIFACT=1
+endif
+
 DEFINES += -DJAREXT=
 
 ifdef MOZ_ANGLE_RENDERER
 DEFINES += -DMOZ_ANGLE_RENDERER=$(MOZ_ANGLE_RENDERER)
 ifdef MOZ_D3DCOMPILER_VISTA_DLL
 DEFINES += -DMOZ_D3DCOMPILER_VISTA_DLL=$(MOZ_D3DCOMPILER_VISTA_DLL)
 endif
 endif
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -450,8 +450,21 @@ bin/libfreebl_32int64_3.so
 #ifdef XP_LINUX
 @RESPATH@/fix_linux_stack.py
 #endif
 #endif
 
 #ifdef PKG_LOCALE_MANIFEST
 #include @PKG_LOCALE_MANIFEST@
 #endif
+
+#ifdef MOZ_EME_WIN32_ARTIFACT
+[eme destdir="i686"]
+i686/bin/plugin-container.exe
+i686/bin/xul.dll
+i686/bin/gmp-clearkey/0.1/clearkey.dll
+i686/bin/gmp-clearkey/0.1/manifest.json
+i686/bin/nss3.dll
+i686/bin/mozglue.dll
+i686/bin/lgpllibs.dll
+i686/bin/msvcp140.dll
+i686/bin/vcruntime140.dll
+#endif
--- a/config/baseconfig.mk
+++ b/config/baseconfig.mk
@@ -37,17 +37,17 @@ ifeq (a,$(firstword a$(subst /, ,$(srcdi
 $(error MSYS-style srcdir are not supported for Windows builds.)
 endif
 endif
 endif # WINNT
 
 ifndef INCLUDED_AUTOCONF_MK
 default::
 else
-TIERS := $(if $(MOZ_ARTIFACT_BUILDS),artifact )pre-export export $(if $(COMPILE_ENVIRONMENT),compile )misc libs tools$(if $(filter check recurse_check,$(MAKECMDGOALS)), check)
+TIERS := $(if $(MOZ_ARTIFACT_BUILDS),artifact )$(if $(MOZ_EME_WIN32_ARTIFACT),win32-artifact )pre-export export $(if $(COMPILE_ENVIRONMENT),compile )misc libs tools$(if $(filter check recurse_check,$(MAKECMDGOALS)), check)
 endif
 
 # These defines are used to support the twin-topsrcdir model for comm-central.
 ifdef MOZILLA_SRCDIR
   MOZILLA_DIR = $(MOZILLA_SRCDIR)
 else
   MOZILLA_DIR = $(topsrcdir)
 endif
--- a/taskcluster/ci/artifact-build/kind.yml
+++ b/taskcluster/ci/artifact-build/kind.yml
@@ -42,8 +42,45 @@ jobs:
             secrets: true
             tooltool-downloads: public
             need-xvfb: true
             keep-artifacts: false
         dependencies:
             linux64-opt: build-linux64/opt
         toolchains:
             - linux64-node
+
+    win64-aarch64-artifact/opt:
+        description: "AArch64 Win64 Opt Artifact Build"
+        index:
+            product: firefox
+            job-name: win64-aarch64-artifact-opt
+        treeherder:
+            platform: windows2012-aarch64/opt
+            kind: build
+            symbol: AB
+            tier: 2
+        run-on-projects: ['trunk', 'try']
+        worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
+        worker:
+            max-run-time: 3600
+            env:
+                TOOLTOOL_MANIFEST: browser/config/tooltool-manifests/win64/aarch64.manifest
+                PERFHERDER_EXTRA_OPTIONS: aarch64-artifact
+#                MOZ_ARTIFACT_TASK: {task-reference: '<win64-aarch64-opt>'}
+        run:
+            using: mozharness
+            use-caches: false
+            actions: [get-secrets, build]
+            options: [append-env-variables-from-configs]
+            config:
+                - builds/releng_base_firefox.py
+                - builds/taskcluster_base_windows.py
+                - builds/taskcluster_base_win64.py
+                - builds/releng_sub_windows_configs/64_artifact.py
+            script: "mozharness/scripts/fx_desktop_build.py"
+            extra-config:
+                stage_platform: win64-aarch64
+                mozconfig_platform: win64-aarch64
+#        dependencies:
+#            win64-aarch64-opt: build-win64-aarch64/opt
+        toolchains:
+            - win64-node
--- a/taskcluster/ci/diffoscope/kind.yml
+++ b/taskcluster/ci/diffoscope/kind.yml
@@ -23,27 +23,35 @@ transforms:
 # generated for each build.
 job-defaults:
   args: >-
     --no-default-limits
     --max-page-size 100000000
     --max-page-diff-block-lines 10000
     --exclude-directory-metadata
     --exclude-command .--line-numbers
-    --exclude **/*freeblpriv3.chk
-    --exclude **/*nssdbm3.chk
-    --exclude **/*softokn3.chk
+    --exclude **/i686/**
 
 # Make a task for each diff we might want. The following are just examples,
 # Both original and new can point to builds from the full set of tasks or
 # from other sets through an index-search. Other kinds than `build` can be
 # compared (for example, static-analysis), provided you adjust the
 # kind-dependencies above.
 
-# jobs:
+jobs:
+  artifact-linux-diff:
+    symbol: DL
+    new: artifact-build-linux64-artifact/opt
+    original: build-linux64/opt
+
+  artifact-win64-aarch64-diff:
+    symbol: DWA
+    new: artifact-build-win64-aarch64-artifact/opt
+    original: build-win64-aarch64/opt
+
 #   android-build-vs-previous-try:
 #     symbol: A
 #     new: build-android-api-16/opt
 #     original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.mobile.android-api-16-opt}
 #   linux64-build-vs-previous-try:
 #     symbol: L
 #     new: build-linux64/opt
 #     original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.firefox.linux64-opt}
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -538,16 +538,25 @@ def eme(enabled, fmp4):
 def eme_modules(value):
     return value
 
 
 # Fallback to an empty list when eme_choices is empty, setting eme_modules to
 # None.
 set_config('MOZ_EME_MODULES', eme_modules | dependable([]))
 
+
+@depends(eme_modules, target)
+def eme_win32_artifact(modules, target):
+    if 'widevine' in modules and target.kernel == 'WINNT' and target.cpu == 'aarch64':
+        return True
+
+
+set_config('MOZ_EME_WIN32_ARTIFACT', eme_win32_artifact)
+
 option(name='--enable-chrome-format',
        help='Select FORMAT of chrome files during packaging.',
        nargs=1,
        choices=('omni', 'jar', 'flat'),
        default='omni')
 
 @depends('--enable-chrome-format')
 def packager_format(value):