Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Issue 323300 Make the windows toolchain fully automatic
Starred by 8 users Project Member Reported by scot...@chromium.org, Nov 25, 2013 Back to list
Status: Fixed
Owner: scot...@chromium.org
Closed: Feb 2014
Cc: rponnada@chromium.org, sebmarchand@chromium.org, mar...@chromium.org
OS: Windows
Pri: 2
Type: Bug


Sign in to add a comment
It's annoying that there's some-to-many manual steps to getting the Windows build running.

We have a toolchain script for 2013 in tools/win/toolchain/toolchain2013.py

A PoC for making DEPS pull it automatically: https://codereview.chromium.org/70493006/

It'd be great if we could just avoid all deployment issues with 2013 by having the chromium build files assume this was in place, and then have gyp use it automatically, ignoring what was otherwise on the system.
 
Comment 1 by scot...@chromium.org, Nov 25, 2013
Blocking: chromium:309197
Cc: mar...@chromium.org
+maruel@ in cc. 
Project Member Comment 3 by bugdroid1@chromium.org, Nov 26, 2013
------------------------------------------------------------------------
r237369 | scottmg@chromium.org | 2013-11-26T18:51:11.607112Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/.gitignore?r1=237369&r2=237368&pathrev=237369
   A http://src.chromium.org/viewvc/chrome/trunk/src/third_party/win_toolchain?r1=237369&r2=237368&pathrev=237369
   A http://src.chromium.org/viewvc/chrome/trunk/src/tools/win/toolchain/get_toolchain_if_necessary.py?r1=237369&r2=237368&pathrev=237369
   A http://src.chromium.org/viewvc/chrome/trunk/src/third_party/win_toolchain/toolchain.sha1?r1=237369&r2=237368&pathrev=237369
   M http://src.chromium.org/viewvc/chrome/trunk/src/tools/win/toolchain/toolchain.py?r1=237369&r2=237368&pathrev=237369

Auto-updating script for Windows toolchain

Updates third_party/win_toolchain to pull down a toolchain
based on SHA1. The intention is that this will be a DEPS hook
once it's ready for more broad usage and the rest of
infrastructure is ready.

R=maruel@chromium.org
TBR=cpu@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/70493006
------------------------------------------------------------------------
Comment 4 by scot...@chromium.org, Nov 26, 2013
Owner: scot...@chromium.org
Status: Started
DEPS helper script now in tools/win/toolchain/get_toolchain_if_necessary.py

Further steps required:

- Cache directory entries to make calculating hash faster when unchanged. When "gclient runhooks" is run directly, I believe it ignores the "pattern" so the script will always be run, so shouldn't be too slow.

- Set up for build infrastructure that doesn't connect to external servers for downloading toolchain.

- Supporting multiple "valid" SHA1s to support variants of VS (Express, Pro, etc.)
Project Member Comment 5 by bugdroid1@chromium.org, Dec 2, 2013
------------------------------------------------------------------------
r238217 | scottmg@chromium.org | 2013-12-02T23:03:08.966189Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/tools/win/toolchain/get_toolchain_if_necessary.py?r1=238217&r2=238216&pathrev=238217
   M http://src.chromium.org/viewvc/chrome/trunk/src/third_party/win_toolchain/toolchain.sha1?r1=238217&r2=238216&pathrev=238217
   M http://src.chromium.org/viewvc/chrome/trunk/src/.gitignore?r1=238217&r2=238216&pathrev=238217

Cached timestamps for toolchain update script

When cached timestamps are available, and toolchain is up-to-date,
reduces the runtime to ~.2s.

R=maruel@chromium.org
TBR=cpu@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/95983002
------------------------------------------------------------------------
Blockedon: chromium:324985
Blockedon: chromium:324987
Project Member Comment 8 by bugdroid1@chromium.org, Dec 3, 2013
------------------------------------------------------------------------
r238426 | scottmg@chromium.org | 2013-12-03T17:48:26.403520Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=238426&r2=238425&pathrev=238426

gyp_chromium integration for automatic toolchain

When opting in via GYP_MSVS_USE_SYSTEM_TOOLCHAIN=0, set
environment variables that tell gyp how to find the automatic
toolchain in third_party/win_toolchain.

R=maruel@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/100613002
------------------------------------------------------------------------
Blockedon: chromium:325493
Labels: vs2013
Blockedon: chromium:326357
Comment 12 by scot...@chromium.org, Jan 12, 2014
So, thinking on this a bit more, I think putting it inside the source tree might be strictly correct, but not what we want in practice.

The primary thing I'm thinking of is when an update comes out and the sha1 is updated. In theory, if you then later sync back to before the VS update, runhooks would need to reinstall the older (broken) compiler, but in practice that just seems annoying. It's also difficult to accomplish given that at least the default public version of the script is pulling from external resources, so Microsoft might reasonably decide to remove the older versions.

It's also slightly silly to have a toolchain per source tree (1.16G currently) rather than only one for multiple trees.

I think my preferred solution now would be to have it at the gclient level. That is, gclient has the ability to get/update a toolchain (maybe even by default on windows, with an opt out or something). This is similar to other tools, in that an update of VS is not binary identical to what might have been available at a previous revision, but is highly likely to be compatible with old and new revisions of the code, at least within one major revision (i.e. VS2013 SP1 should be able to build anything that VS2013 could). I think this will be easier to implement robustly too, as it's a "forward march" where we just have two possible sha1s (Express and Pro) and scripts that can get bits that match those two. Without this, if any of the structure of the distribution changes, the scripts need to maintain the ability to synthesize old versions, which I fear would get complicated, and is unlikely to be well tested (we never managed to get VS2010 bots set up for testing this, see bug 166949).

Seem reasonable? Any thoughts?
Comment 13 by scot...@chromium.org, Jan 12, 2014
Replace "gclient" with "depot_tools" above.

I guess the "slightly crazy but maybe-actually-most-sensible place" is to treat the toolchain identical to python/git binaries. It'd run in update_depot_tools.bat, but could take advantage of running after python is already known-bootstrapped.
Comment 14 by tha...@chromium.org, Jan 15, 2014
Blockedon: chromium:333606
Project Member Comment 15 by bugdroid1@chromium.org, Jan 15, 2014
------------------------------------------------------------------------
r244963 | scottmg@chromium.org | 2014-01-15T19:45:29.651902Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=244963&r2=244962&pathrev=244963

Move RunGN lower so that modifications to os.environ take effect

Without this the os.environ changes for various default values are
not taken into effect by GN.

R=brettw@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/139143002
------------------------------------------------------------------------
Project Member Comment 16 by bugdroid1@chromium.org, Jan 15, 2014
------------------------------------------------------------------------
r244983 | scottmg@chromium.org | 2014-01-15T22:05:05.336882Z

Changed paths:
   A http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain?r1=244983&r2=244982&pathrev=244983
   A http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/7z?r1=244983&r2=244982&pathrev=244983
   A http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/7z/7z.exe?r1=244983&r2=244982&pathrev=244983
   A http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/get_toolchain_if_necessary.py?r1=244983&r2=244982&pathrev=244983
   A http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/toolchain_vs2013.hash?r1=244983&r2=244982&pathrev=244983
   A http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/7z/LICENSE?r1=244983&r2=244982&pathrev=244983
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/update_depot_tools.bat?r1=244983&r2=244982&pathrev=244983
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/.gitignore?r1=244983&r2=244982&pathrev=244983
   A http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/7z/7z.dll?r1=244983&r2=244982&pathrev=244983
   A http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/toolchain2013.py?r1=244983&r2=244982&pathrev=244983

Automatic Windows toolchain

Per comments in linked bug, this is simply moved from chromium. The
only new thing is hooking it into update_depot_tools.bat, and
updating a few paths in the scripts.

This is currently opt-in via "set DEPOT_TOOLS_WIN_TOOLCHAIN=1" but
that will be removed once it's ready for deployment.

R=iannucci@chromium.org, maruel@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/135933002
------------------------------------------------------------------------
Project Member Comment 17 by bugdroid1@chromium.org, Jan 16, 2014
------------------------------------------------------------------------
r245324 | scottmg@chromium.org | 2014-01-16T21:12:25.512294Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/get_toolchain_if_necessary.py?r1=245324&r2=245323&pathrev=245324

win: taskkill mspdbsrv.exe before updating toolchain

It stays resident, so try to tidy up, otherwise removing the old
directory will fail.

TBR=maruel@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/140883005
------------------------------------------------------------------------
Project Member Comment 18 by bugdroid1@chromium.org, Jan 17, 2014
------------------------------------------------------------------------
r245412 | scottmg@chromium.org | 2014-01-17T01:40:31.962472Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=245412&r2=245411&pathrev=245412

win: Find and use toolchain installed by depot_tools

The toolchain directory inside depot_tools will only exist if
"set DEPOT_TOOLS_WIN_TOOLCHAIN=1" so this is currently a no-op.

It will break the "dogfood" of 'GYP_MSVS_USE_SYSTEM_TOOLCHAIN'
now renamed per above, but I think only a few people tested
that (cc'd here).

R=dpranke@chromium.org
BUG= 323300 ,  326357 

Review URL: https://codereview.chromium.org/137573002
------------------------------------------------------------------------
Project Member Comment 19 by bugdroid1@chromium.org, Jan 18, 2014
------------------------------------------------------------------------
r245713 | scottmg@chromium.org | 2014-01-18T02:03:57.968731Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/get_landmines.py?r1=245713&r2=245712&pathrev=245713

Add landmine for 2013 switch

R=iannucci@chromium.org
BUG= 309197 ,  323300 

Review URL: https://codereview.chromium.org/141583006
------------------------------------------------------------------------
Comment 20 by scot...@chromium.org, Jan 28, 2014
The "express" path of this is much more complicated than "pro". wip here:
https://codereview.chromium.org/148453008/

There's (at least) two missing parts due to our use of various "legacy" tech:

1. d3dcompiler_43.dll doesn't ship with the win8 sdk. The one that does (d3dcompiler_46.dll) doesn't work on XP, so we need to get the _43 version. It's in the DXSDK nominally (June 2010 version), but it might enough to grab it from the directx redist package instead since that's a lot smaller and probably all we need.

2. There's no ATL/MFC headers. I think the only place to get those now is the Windows Driver Kit. I think it might also be necessary to get the 7.x one rather than the current 8.1, but I'm not 100% sure on that. It might be saner to finally solve bug 5027 (!) (remove ATL usage) but https://code.google.com/p/chromium/codesearch#search/&q=atlbase.h&sq=package:chromium&type=cs it looks like there's a fair amount still, especially since it's in "tricky" places that aren't likely to be unit tested too heavily: automation, IME, remoting, cloud print, metro mode.

Neither of these are an issue with the Pro SKU which ships with the necessary binaries and headers.
Project Member Comment 21 by bugdroid1@chromium.org, Jan 29, 2014
------------------------------------------------------------------------
r247637 | scottmg@chromium.org | 2014-01-29T06:00:28.514321Z

Changed paths:
   A http://src.chromium.org/viewvc/chrome/trunk/src/ui/gfx/win/msg_util.h?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/tools/memory_watcher/memory_watcher.gyp?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/tools/memory_watcher/dllmain.cc?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/win/hidden_window.cc?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/gfx/win/window_impl.h?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/win/hwnd_message_handler.cc?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/aura/root_window_host_win.cc?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/tools/memory_watcher/hotkey.h?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/views/win/hwnd_message_handler.h?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/aura/root_window_host_win.h?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/win/foreground_helper.cc?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/mojo/services/native_viewport/native_viewport_win.cc?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/base/win/foreground_helper.h?r1=247637&r2=247636&pathrev=247637
   M http://src.chromium.org/viewvc/chrome/trunk/src/ui/compositor/test/test_compositor_host_win.cc?r1=247637&r2=247636&pathrev=247637

Remove some uses of ATL in UI code

Started by trying to remove only atlbase.h, but atlcrack.h (WTL)
uses CPoint/CSize, etc from ATL. So, msg_util.h is atlcrack.h,
but adapted to use gfx types, and with CR_ prefix on crack macros
for now.

R=ben@chromium.org
BUG=5027,  323300 

Review URL: https://codereview.chromium.org/146833020
------------------------------------------------------------------------
Project Member Comment 22 by bugdroid1@chromium.org, Feb 4, 2014
------------------------------------------------------------------------
r248622 | scottmg@chromium.org | 2014-02-04T00:07:02.566664Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/.gitignore?r1=248622&r2=248621&pathrev=248622
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/toolchain2013.py?r1=248622&r2=248621&pathrev=248622
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/get_toolchain_if_necessary.py?r1=248622&r2=248621&pathrev=248622
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/toolchain_vs2013.hash?r1=248622&r2=248621&pathrev=248622

Support VS2013 Express for automatic toolchain too

And for now, defaults to Express.

Main changes:
- Valid hash becomes a set of hashes one for Pro, one for Express
- Include WDK to get an old copy of ATL as that doesn't come
  with Express

BUG= 323300 
R=maruel@chromium.org

Review URL: https://codereview.chromium.org/148453008
------------------------------------------------------------------------
Project Member Comment 23 by bugdroid1@chromium.org, Feb 4, 2014
------------------------------------------------------------------------
r248747 | scottmg@chromium.org | 2014-02-04T17:50:01.696673Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/common.gypi?r1=248747&r2=248746&pathrev=248747
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=248747&r2=248746&pathrev=248747

Support Express for 2013 automatic toolchain

Pick up setting for Express 2013 to get WDK_DIR set (required
for ATL with Express).

Add additional "or 2013e" to build/common.gypi, but exclude
unneeded workaround for intsafe.h.

R=dpranke@chromium.org
BUG= 323300 ,  340358 

Review URL: https://codereview.chromium.org/153143002
------------------------------------------------------------------------
Re: #20, I bit the bullet and got old-WDK-ATL working for Express. d3dcompiler_43.dll isn't necessary except on XP, and was already not put in the output directory unless you have the directx sdk from src-internal. So, I think Express is relatively OK now.
Project Member Comment 25 by bugdroid1@chromium.org, Feb 4, 2014
------------------------------------------------------------------------
r248786 | scottmg@chromium.org | 2014-02-04T21:53:11.586440Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/get_toolchain_if_necessary.py?r1=248786&r2=248785&pathrev=248786

Automatic toolchain: Use src-internal as signal for Pro

R=iannucci@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/144823003
------------------------------------------------------------------------
Status: Fixed
Done, but not on by default yet.

Also, does not pull Update 1 Version 1 because that didn't do much. Will need to amend once the "real" Update 1 Version 2 ships.
Project Member Comment 27 by bugdroid1@chromium.org, Feb 5, 2014
------------------------------------------------------------------------
r249029 | scottmg@chromium.org | 2014-02-05T17:09:15.813595Z

Changed paths:
   D http://src.chromium.org/viewvc/chrome/trunk/src/tools/win/toolchain/toolchain2013.py?r1=249029&r2=249028&pathrev=249029
   D http://src.chromium.org/viewvc/chrome/trunk/src/tools/win/toolchain/get_toolchain_if_necessary.py?r1=249029&r2=249028&pathrev=249029

Remove old 2013 toolchain script from tools/win/

This functionality for 2013 now lives in depot_tools.

TBR=maruel@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/150003008
------------------------------------------------------------------------
Project Member Comment 28 by bugdroid1@chromium.org, Feb 6, 2014
------------------------------------------------------------------------
r249242 | scottmg@chromium.org | 2014-02-06T02:44:55.890647Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/get_landmines.py?r1=249242&r2=249241&pathrev=249242
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=249242&r2=249241&pathrev=249242
   M http://src.chromium.org/viewvc/chrome/trunk/src/DEPS?r1=249242&r2=249241&pathrev=249242

Move landmines into gyp_chromium

This ensures that the environment that's passed to gyp is the one that
landmines.py uses to determine when to set landmines.

Also, fix '2013e' not being detected as a 2013 switch.

BUG= 309197 ,  323300 
R=iannucci@chromium.org

Review URL: https://codereview.chromium.org/153073004
------------------------------------------------------------------------
Project Member Comment 29 by bugdroid1@chromium.org, Feb 13, 2014
------------------------------------------------------------------------
r251084 | scottmg@chromium.org | 2014-02-13T18:19:39.319404Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/get_toolchain_if_necessary.py?r1=251084&r2=251083&pathrev=251084

win_toolchain: add timeout before nuke, hide taskkill output

It's somewhat annoying to have the script delete your toolchain
directory (at least during testing) and it necessitates downloading
3-4G to restore, so add a short timeout before doing so.

Also, hide the output of taskkill'ing mspdbsrv so that the first message
isn't '''ERROR: The process "..." not found.'''.

R=maruel@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/146583012
------------------------------------------------------------------------
Project Member Comment 30 by bugdroid1@chromium.org, Feb 13, 2014
------------------------------------------------------------------------
r251085 | scottmg@chromium.org | 2014-02-13T18:24:52.154738Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/toolchain_vs2013.hash?r1=251085&r2=251084&pathrev=251085
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/toolchain2013.py?r1=251085&r2=251084&pathrev=251085

win_toolchain: Add DIA SDK to extracted pieces

The goal of this change is to include the DIA SDK (and strip out
a bit extra that was unnecessary).

Unfortunately, the msi that includes the DIA SDK includes a file with an
extraordinarily long path, 241 characters long. When prepended with
"C:\Program Files (x86)\" it extracts OK, however, when we extract to
%TEMP% it's not hard for it to exceed _MAX_PATH and have the msi tool
fail. So, when extracting MSIs, also do the equivalent of
"subst X: temp_dir" and use X:\ as the path given to msiexec. (sigh)

R=maruel@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/150333005
------------------------------------------------------------------------
Project Member Comment 31 by bugdroid1@chromium.org, Feb 14, 2014
------------------------------------------------------------------------
r251406 | scottmg@chromium.org | 2014-02-14T20:10:43.631107Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=251406&r2=251405&pathrev=251406

Fix automatic toolchain when msvs-ninja in GYP_GENERATORS

Previously, we checked that GYP_GENERATORS was "ninja", but this
broke when using GYP_GENERATORS=ninja,msvs-ninja. As there are no
other supported genearators than those two now, there's no need
to check that we're using ninja at all, so just remove that
branch of the if.

BUG= 323300 
R=jschuh@chromium.org

Review URL: https://codereview.chromium.org/167373004
------------------------------------------------------------------------
Project Member Comment 32 by bugdroid1@chromium.org, Feb 21, 2014
------------------------------------------------------------------------
r252500 | mattm@chromium.org | 2014-02-21T05:14:18.677884Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=252500&r2=252499&pathrev=252500

Win automatic toolchain: copy runtime dlls properly when not run from chrome/src.

gclient runhooks runs gyp_chromium from the chrome/ dir, but the script
was looking for out/ relative to that.

BUG= 323300 

Review URL: https://codereview.chromium.org/174063005
------------------------------------------------------------------------
Project Member Comment 33 by bugdroid1@chromium.org, Feb 21, 2014
------------------------------------------------------------------------
r252604 | scottmg@chromium.org | 2014-02-21T18:44:41.339019Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=252604&r2=252603&pathrev=252604

Don't use automatic toolchain if GYP_MSVS_VERSION overridden to another version

This accomplishes three things:
- simple switch back to 2010 temporarily, if necessary
- making sure that all bots don't switch at exactly the same time (almost all have GYP_MSVS_VERSION=2010 in their settings)
- in particular, not having Official builders switch

Unfortunately, this will need to be merged on to the 34 branch, as it has the current "auto-use" code, so otherwise it'd switch to 2013 as soon as depot_tools starts updating the toolchain (previously, the only check was whether the toolchain exists on the local hard drive).

R=maruel@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/174143003
------------------------------------------------------------------------
Comment 34 by dxie@chromium.org, Feb 21, 2014
Labels: M-34 Merge-Approved
Project Member Comment 35 by bugdroid1@chromium.org, Feb 21, 2014
------------------------------------------------------------------------
r252634 | scottmg@chromium.org | 2014-02-21T20:38:01.526182Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/update_depot_tools.bat?r1=252634&r2=252633&pathrev=252634

Revert 252633 "Switch to opt-out for toolchain"

> Switch to opt-out for toolchain
> 
> R=maruel@chromium.org
> BUG= 323300 
> 
> Review URL: https://codereview.chromium.org/174663005

TBR=scottmg@chromium.org

Review URL: https://codereview.chromium.org/175743002
------------------------------------------------------------------------
Project Member Comment 36 by bugdroid1@chromium.org, Feb 21, 2014
------------------------------------------------------------------------
r252633 | scottmg@chromium.org | 2014-02-21T20:36:01.466621Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/update_depot_tools.bat?r1=252633&r2=252632&pathrev=252633

Switch to opt-out for toolchain

R=maruel@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/174663005
------------------------------------------------------------------------
Project Member Comment 37 by bugdroid1@chromium.org, Feb 21, 2014
Labels: -Merge-Approved merge-merged-1847
------------------------------------------------------------------------
r252636 | scottmg@chromium.org | 2014-02-21T20:43:29.076082Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/branches/1847/src/build/gyp_chromium?r1=252636&r2=252635&pathrev=252636

Merge 252604 "Don't use automatic toolchain if GYP_MSVS_VERSION ..."

Makes sure that 1847 doesn't switch to VS2013

> Don't use automatic toolchain if GYP_MSVS_VERSION overridden to another version
> 
> This accomplishes three things:
> - simple switch back to 2010 temporarily, if necessary
> - making sure that all bots don't switch at exactly the same time (almost all have GYP_MSVS_VERSION=2010 in their settings)
> - in particular, not having Official builders switch
> 
> Unfortunately, this will need to be merged on to the 34 branch, as it has the current "auto-use" code, so otherwise it'd switch to 2013 as soon as depot_tools starts updating the toolchain (previously, the only check was whether the toolchain exists on the local hard drive).
> 
> R=maruel@chromium.org
> BUG= 323300 
> 
> Review URL: https://codereview.chromium.org/174143003

TBR=scottmg@chromium.org

Review URL: https://codereview.chromium.org/166203004
------------------------------------------------------------------------
Project Member Comment 38 by bugdroid1@chromium.org, Feb 22, 2014
------------------------------------------------------------------------
r252725 | scottmg@chromium.org | 2014-02-22T01:47:53.965438Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/toolchain2013.py?r1=252725&r2=252724&pathrev=252725
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/get_toolchain_if_necessary.py?r1=252725&r2=252724&pathrev=252725
   D http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/toolchain_vs2013.hash?r1=252725&r2=252724&pathrev=252725
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/update_depot_tools.bat?r1=252725&r2=252724&pathrev=252725

Move toolchain update control into src, but keep download logic in depot_tools

Moves the update functionality out of update_depot_tools into src/ in https://codereview.chromium.org/175573004 .

get_toolchain_if_required.py now expects a list of hashes on the
command line, and makes sure that it gets one of those.

toolchain2013.py saves a .json which contains information relevant to the
interests of the caller, so that it can set up the parent environment. This
is returned via the --output-json command line argument to get_...py

R=iannucci@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/168603004
------------------------------------------------------------------------
Project Member Comment 39 by bugdroid1@chromium.org, Feb 22, 2014
------------------------------------------------------------------------
r252733 | scottmg@chromium.org | 2014-02-22T02:41:37.443183Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=252733&r2=252732&pathrev=252733
   A http://src.chromium.org/viewvc/chrome/trunk/src/build/toolchain_vs2013.hash?r1=252733&r2=252732&pathrev=252733

Move control of updating toolchain into src/

Moved out of depot_tools here: https://codereview.chromium.org/168603004/

The control is in src/ now, but logic for de-duplication is still in depot_tools.

This changes the default, so that VS2013 will be the default toolchain.

R=iannucci@chromium.org
BUG= 323300 , 309197 

Review URL: https://codereview.chromium.org/175573004
------------------------------------------------------------------------
Project Member Comment 40 by bugdroid1@chromium.org, Feb 22, 2014
Labels: merge-merged-1849
------------------------------------------------------------------------
r252734 | scottmg@chromium.org | 2014-02-22T02:49:03.513489Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/branches/1849/src/build/gyp_chromium?r1=252734&r2=252733&pathrev=252734
   A http://src.chromium.org/viewvc/chrome/branches/1849/src/build/toolchain_vs2013.hash?r1=252734&r2=252733&pathrev=252734

Merge 252733 "Move control of updating toolchain into src/"

> Move control of updating toolchain into src/
> 
> Moved out of depot_tools here: https://codereview.chromium.org/168603004/
> 
> The control is in src/ now, but logic for de-duplication is still in depot_tools.
> 
> This changes the default, so that VS2013 will be the default toolchain.
> 
> R=iannucci@chromium.org
> BUG= 323300 , 309197 
> 
> Review URL: https://codereview.chromium.org/175573004

TBR=scottmg@chromium.org

Review URL: https://codereview.chromium.org/175053009
------------------------------------------------------------------------
Project Member Comment 41 by bugdroid1@chromium.org, Feb 22, 2014
------------------------------------------------------------------------
r252737 | scottmg@chromium.org | 2014-02-22T03:21:23.388251Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/toolchain2013.py?r1=252737&r2=252736&pathrev=252737
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/get_toolchain_if_necessary.py?r1=252737&r2=252736&pathrev=252737
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/.gitignore?r1=252737&r2=252736&pathrev=252737

Move data.json to win_toolchain to its abs paths aren't hashed

TBR=iannucci@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/173523005
------------------------------------------------------------------------
Project Member Comment 42 by bugdroid1@chromium.org, Feb 22, 2014
------------------------------------------------------------------------
r252738 | scottmg@chromium.org | 2014-02-22T03:24:51.836984Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/toolchain_vs2013.hash?r1=252738&r2=252737&pathrev=252738
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=252738&r2=252737&pathrev=252738

Re-enable 2013 with corrected hashes

TBR=iannucci@chromium.org
BUG= 323300 , 309197 

Review URL: https://codereview.chromium.org/176143002
------------------------------------------------------------------------
Project Member Comment 43 by bugdroid1@chromium.org, Feb 22, 2014
------------------------------------------------------------------------
r252739 | scottmg@chromium.org | 2014-02-22T03:50:02.046663Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/branches/1849/src/build/toolchain_vs2013.hash?r1=252739&r2=252738&pathrev=252739

Merge 252738 "Re-enable 2013 with corrected hashes"

> Re-enable 2013 with corrected hashes
> 
> TBR=iannucci@chromium.org
> BUG= 323300 , 309197 
> 
> Review URL: https://codereview.chromium.org/176143002

TBR=scottmg@chromium.org

Review URL: https://codereview.chromium.org/175173007
------------------------------------------------------------------------
Project Member Comment 44 by bugdroid1@chromium.org, Feb 24, 2014
------------------------------------------------------------------------
r253004 | scottmg@chromium.org | 2014-02-24T22:08:09.131923Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/get_toolchain_if_necessary.py?r1=253004&r2=253003&pathrev=253004

Don't have svn ls block waiting for password

If user is unauthenticated, svn ls would just hang waiting at
"Password for 'User':", now it'll correctly fail with
"svn: Can't get password".

R=iannucci@chromium.org
BUG= 323300 , 346472 

Review URL: https://codereview.chromium.org/178763003
------------------------------------------------------------------------
Cc: rponnada@chromium.org
Labels: Needs-Feedback
Could you please provide Test Steps to verify the fix from QA end.
Comment 46 by scot...@chromium.org, Feb 25, 2014
Labels: -Needs-Feedback
None required, this is dev only.
Project Member Comment 47 by bugdroid1@chromium.org, Feb 27, 2014
------------------------------------------------------------------------
r253844 | scottmg@chromium.org | 2014-02-27T17:00:14.962904Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/get_toolchain_if_necessary.py?r1=253844&r2=253843&pathrev=253844

Make git non-interactive when checking for src-internal access

git sometimes blocks asking for a password. On a random machine that
didn't know anything about google/chromium, it failed immediately with

"fatal: could not read Username for 'https://chrome-internal.googlesource.com': No such file or directory"

but on my real machine w/o _netrc it blocks and wants this:

Username for 'https://chrome-internal.googlesource.com':
Password for 'https://chrome-internal.googlesource.com':

There's no --non-interactive unfortunately, it's supposed to magically
decide if it's connected to a tty and behave appropriately. It does
not, perhaps because of being wrapped in depot_tools .bat files,
perhaps an msysgit-port bug, perhaps being called from python. Anyway
https://github.com/bower/bower/issues/1009 had a magic incantation
that works for this case: 'true' is available in the msys
distribution.

R=iannucci@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/182553004
------------------------------------------------------------------------
Comment 48 by scot...@chromium.org, Feb 28, 2014
Blockedon: chromium:345992
Project Member Comment 49 by bugdroid1@chromium.org, Feb 28, 2014
------------------------------------------------------------------------
r253993 | scottmg@chromium.org | 2014-02-28T01:23:24.443179Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=253993&r2=253992&pathrev=253993

Default to VS2013 on Windows

This switches the default toolchain on Windows to VS2013.

TBR=cpu@chromium.org
BUG= 323300 , 309197 

Review URL: https://codereview.chromium.org/178263005
------------------------------------------------------------------------
Project Member Comment 50 by bugdroid1@chromium.org, Feb 28, 2014
------------------------------------------------------------------------
r254038 | pkasting@chromium.org | 2014-02-28T04:19:57.740259Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/build/gyp_chromium?r1=254038&r2=254037&pathrev=254038

Revert 253993 "Default to VS2013 on Windows"

Checking whether this caused several hundred Win 7 layout test image diffs.

> Default to VS2013 on Windows
> 
> This switches the default toolchain on Windows to VS2013.
> 
> TBR=cpu@chromium.org
> BUG= 323300 , 309197 
> 
> Review URL: https://codereview.chromium.org/178263005

TBR=scottmg@chromium.org

Review URL: https://codereview.chromium.org/183993005
------------------------------------------------------------------------
Project Member Comment 51 by bugdroid1@chromium.org, Feb 28, 2014
------------------------------------------------------------------------
r254042 | scottmg@chromium.org | 2014-02-28T04:53:51.695727Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/7z/7z.dll?r1=254042&r2=254041&pathrev=254042
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/7z/7z.exe?r1=254042&r2=254041&pathrev=254042

chmod +x 7z.dll and 7z.exe for cygwin

TBR=pkasting@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/178193008
------------------------------------------------------------------------
Project Member Comment 52 by bugdroid1@chromium.org, Mar 3, 2014
------------------------------------------------------------------------
r254406 | scottmg@chromium.org | 2014-03-02T17:03:03.424237Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/build/scripts/common/archive_utils.py?r1=254406&r2=254405&pathrev=254406

Don't try to upload symbols for msvcr120 and msvcp120

TBR=karen@chromium.org,grt@chromium.org,robertshield@chromium.org,thakis@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/185553002
------------------------------------------------------------------------
It looks like this is causing errors like

  svn: Can't close file '.svn\tmp\entries': There is not enough space on the disk.  

on the windows bots (e.g. http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_rel&number=274610 ). Is there some plan for dealing with those?
Oh, looks like that's bug 348350.
Project Member Comment 55 by bugdroid1@chromium.org, Mar 6, 2014
------------------------------------------------------------------------
r255378 | scottmg@chromium.org | 2014-03-06T17:08:24.576865Z

Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/tools/depot_tools/win_toolchain/toolchain2013.py?r1=255378&r2=255377&pathrev=255378

CHROME_HEADLESS is always Pro

Follow up to https://codereview.chromium.org/185423004/

The unzip is always Pro, and without setting this the data.json will
be getting the Express settings and so gyp will generate the wrong
project.

TBR=iannucci@chromium.org
BUG= 323300 

Review URL: https://codereview.chromium.org/188673003
------------------------------------------------------------------------
Sign in to add a comment