Closed Bug 1289641 Opened 9 years ago Closed 3 years ago

Setup a taskcluster job to build the MSVC tooltool package

Categories

(Firefox Build System :: Toolchains, defect)

defect
Not set
normal

Tracking

(firefox101 fixed)

RESOLVED FIXED
101 Branch
Tracking Status
firefox101 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

Details

Attachments

(6 files, 2 obsolete files)

We should have a taskcluster job that automatically triggers when the build/windows_toolchain.py script changes (like we have for gcc and clang), and the script should be updated to create the package from scratch, instead of relying on a specific MSVC and SDK being already installed.
This should be doable now that Microsoft has made scriptable Visual Studio installs possible and TaskCluster Windows support has arrived. I'd feel much better about this being implemented in TaskCluster: currently I generate the official zip archives on a VM on one of my machines :/
Product: Core → Firefox Build System

Heavily modified from the initial Github source.

Downloads a bunch of components using the same manifest files as the
Visual Studio installer. The list needs some tweaking.

Unpacks the various payloads into a temporary directory and then packages
what is needed into a ZIP file. The ZIP creation uses the same code as
windows_toolchain.py. The only change is that as the ZIP is created, path
names are lower-cased. mozconfig.vs2017 will need some changes as a result.

This is not finished by far. Some of it may be over-engineered (do we need
multiprocess downloads?). Some other cleanup and some comments are needed
as well.

Script to download and package the necessary components of MS Visual Studio 2017
and the Windows 10 SDK. The script uses the same JSON manifests as the Visual Studio
Installer.

After downloading, the files are repacked with the same layout as the current
tooltool files. All paths are converted to lower case as well.

Assignee: nobody → rob
Status: NEW → ASSIGNED
Attachment #9240686 - Attachment is obsolete: true
Attachment #9241484 - Attachment is obsolete: true
Assignee: rob → nobody
Status: ASSIGNED → NEW
Assignee: nobody → mh+mozilla
Blocks: 1758780
Component: General → Toolchains

Its layout differs from the one in the tooltool archive for forward
compatibility with the upcoming (clang 15) -winsysroot flag.

There is probably more filtering we can do to somehow match what
windows_toolchain.py used to do, but we'll keep that for later.

Now that we have a toolchain artifact with the same function, we can use
that instead.

See Also: → 1763653

On CI, 8.3 filenames are not generated, so the canonicalization of
program paths in windows kits doesn't work. But the build system can
actually deal with spaces in the specific case of MIDL and FXC.

Pushed by mh@glandium.org: https://hg.mozilla.org/integration/autoland/rev/8b22a8ec44fe Don't pull Visual Studio in tasks that don't use it. r=firefox-build-system-reviewers,mhentges https://hg.mozilla.org/integration/autoland/rev/2645367da7cb Vendor the vsdownload script. r=firefox-build-system-reviewers,mhentges https://hg.mozilla.org/integration/autoland/rev/acbff13b91b3 Setup a taskcluster task to build the vs2017 toolchain. r=firefox-build-system-reviewers,mhentges https://hg.mozilla.org/integration/autoland/rev/0b16a05aa405 Stop depending on the tooltool manifest to distinguish whether to build a windows winchecksec. r=firefox-build-system-reviewers,andi https://hg.mozilla.org/integration/autoland/rev/55b68a71e03a Allow spaces in MIDL and FXC paths. r=firefox-build-system-reviewers,nalexander https://hg.mozilla.org/integration/autoland/rev/575732020bd2 Replace uses of the vs2017-15.9 tooltool manifest. r=firefox-build-system-reviewers,mhentges
Pushed by alessandro@thunderbird.net: https://hg.mozilla.org/comm-central/rev/3d13f772cf70 Port Bug 1289641 - Setup a taskcluster job to build the MSVC tooltool package.rs=bustage-fix
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: 101 Branch → ---
Pushed by mh@glandium.org: https://hg.mozilla.org/integration/autoland/rev/3245a51260b5 Don't pull Visual Studio in tasks that don't use it. r=firefox-build-system-reviewers,mhentges https://hg.mozilla.org/integration/autoland/rev/45fa68c69405 Vendor the vsdownload script. r=firefox-build-system-reviewers,mhentges https://hg.mozilla.org/integration/autoland/rev/bd9465c7f360 Setup a taskcluster task to build the vs2017 toolchain. r=firefox-build-system-reviewers,mhentges https://hg.mozilla.org/integration/autoland/rev/9f294248c8c2 Stop depending on the tooltool manifest to distinguish whether to build a windows winchecksec. r=firefox-build-system-reviewers,andi https://hg.mozilla.org/integration/autoland/rev/c07590c5a6e9 Allow spaces in MIDL and FXC paths. r=firefox-build-system-reviewers,nalexander https://hg.mozilla.org/integration/autoland/rev/bae6e398d032 Replace uses of the vs2017-15.9 tooltool manifest. r=firefox-build-system-reviewers,mhentges
Flags: needinfo?(mh+mozilla)
Duplicate of this bug: 1270667
Duplicate of this bug: 1408458
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: