Commit Graph
33 Commits
Author SHA1 Message Date
João Reis c1670b6225 deps,win: increase msvs_shard in gyp for V8
Increase the number of shards to divide v8_base into. This increases
the number of calls to cl.exe but decreases the number of files
compiled each time.

Fixes: https://github.com/nodejs/v8/issues/4
PR-URL: https://github.com/nodejs/node/pull/12184
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-04-11 11:24:40 +01:00
João Reis 6cfedf0481 build,win: limit maxcpucount to 2 for MSBuild
MSBuild invokes cl.exe with /MP (set in common.gypi), making it
compile sources in parallel using a number of internal processes
equal to the number of effective processors. MSBuild /m uses a
similar mechanism, so the number of compiler processes can grow to
the number of effective processors squared.

This limits MSBuild to 2 processes, to still use some parallelization
while requiring less memory. Cl.exe is still invoked with /MP, thus
the maximum number of processes is limited to twice the number of
effective processors.

PR-URL: https://github.com/nodejs/node/pull/12184
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-04-11 11:24:40 +01:00
João Reis 35e749be35 deps: fix npm files from upgrade to 4.1.2
PR-URL: https://github.com/nodejs/node/pull/11085
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2017-01-31 18:23:34 +00:00
João Reis 1847670c88 test: use npm sandbox in test-npm-install
npm should run in a sandbox to avoid unwanted interactions. Without
this change, npm would read the userconfig file $HOME/.npmrc which may
contain configs that break this test.

Fixes: https://github.com/nodejs/node/issues/9074
PR-URL: https://github.com/nodejs/node/pull/9079
Reviewed-By: Jeremiah Senkpiel <Fishrock123@rocketmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2016-10-17 15:53:26 +01:00
João Reis 4896f0f610 win,msi: mark INSTALLDIR property as secure
Allows INSTALLDIR to be passed to the server MSIExec process during
installation.

PR-URL: https://github.com/nodejs/node/pull/8795
Fixes: https://github.com/nodejs/node/issues/6057
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-10-10 17:36:05 +01:00
João Reis 75a970bac3 win,tools: ignore linting for line breaks
Line breaks on Windows should be CRLF, but Node also supports LF.
Hence, do not check line breaks on Windows, when running
vcbuild jslint.

Fixes: https://github.com/nodejs/node/issues/6912
PR-URL: https://github.com/nodejs/node/pull/8785
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-10-07 10:56:02 -07:00
João Reis 137b7cb67f win,build: forward release_urlbase to configure
The RELEASE_URLBASE environment variable is used in releases as
a prefix for links in the process.release object. The Makefile picks
it and forwards it to configure, but vcbuild.bat did not. Hence, in
Windows, Node releases have a correct process.release because it uses
the default URL, but nightlies, RCs and so on do not, breaking
node-gyp. This enables native modules to be built with such versions
of Node.

PR-URL: https://github.com/nodejs/node/pull/8430
Reviewed-By: jbergstroem - Johan Bergström <bugs@bergstroem.nu>
2016-09-09 13:15:52 +02:00
João Reis 446c9cdb02 win,build: exit when addons fail to build
PR-URL: https://github.com/nodejs/node/pull/8412
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-09-08 01:03:35 +01:00
João Reis b57c962979 win,build: skip finding VS when not needed
PR-URL: https://github.com/nodejs/node/pull/8412
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-09-08 01:02:47 +01:00
João Reis 292168eb6d win,build: fail on invalid option in vcbuild
PR-URL: https://github.com/nodejs/node/pull/8412
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-09-08 01:01:00 +01:00
João Reis c9e670ea2a win,msi: fix inclusion of translations
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
PR-URL: https://github.com/nodejs/node/pull/7798
2016-08-03 12:45:32 +01:00
João Reis 7cbbec516d build: split CI rules in Makefile
Some CI jobs compile Node and run the tests on different machines.
This change enables collaborators to have finer control over what runs
on these jobs, such as the exact suites to run. The test-ci rule was
split into js and native, to allow for addons to be compiled only on
the machines that are going to run them.

Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
PR-URL: https://github.com/nodejs/node/pull/7317
2016-07-02 16:57:06 +01:00
João Reis 0a8f5a0f02 doc: update build instructions for Windows
The Visual C++ Build Tools are supported to build Node on Windows
and already used in CI, so they should be included in the build
instructions.

Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/7285
2016-06-23 14:00:00 +01:00
João Reis 1845c4fdb7 etw: add event messages
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: https://github.com/nodejs/node/pull/5936
2016-03-31 16:32:07 +01:00
João Reis ccd81889fa etw,build: always generate .rc and .h files
We can assume the Windows SDK is installed, hence the intermediate
files generated from manifest should not be part of the source tree.
This also fixes incorrect detection of ctrpp.exe, that should be in
the path.

PR-URL: https://github.com/nodejs/node/pull/5657
Reviewed-By: Alexis Campailla <orangemocha@nodejs.org>
2016-03-29 17:37:14 +01:00
João Reis 387b6b4973 etw: fix descriptors of events 9 and 23
Event 9 must include the string terminator in the last descriptor.
Event 23 must be published with no descriptors, in accordance with
the manifest.

PR-URL: https://github.com/nodejs/node/pull/5742
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-03-23 14:12:25 +00:00
João Reis a6935574da win,build: support Visual C++ Build Tools 2015
Invoke MSBuild specifying the target platform as generated by Gyp.

Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/5627
2016-03-11 11:16:17 +00:00
João Reis a7f5dfd14c configure: use __ARM_ARCH to determine arm version
Before this change, configure used processor specific macro defines
(like __ARM_ARCH_6M__) to detect the arm processor version. This
changes configure to use __ARM_ARCH, that should be defined to the
correct version.

Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: https://github.com/nodejs/node/pull/4123
2015-12-09 14:59:25 +00:00
João Reis 0e3912be0b configure: respect CC_host in host arch detection
When cross compiling, GYP uses the variables CC_host and CXX_host to
find the host compiler, if they are defined. This ensures that
variable is used, if defined, when detecting the host architecture.

Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/4117
2015-12-09 14:48:59 +00:00
João Reis a6aab43093 build,win: fix node.exe resource version
When MSBuild invokes rc.exe, it passes NODE_TAG unstringified, but
passes it correctly to cl.exe. Hence, this workaround was made to
apply only to the resource file.

Fixes: https://github.com/nodejs/node/issues/2963
PR-URL: https://github.com/nodejs/node/pull/3053
Reviewed-By: Alexis Campailla <orangemocha@nodejs.org>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-10-01 11:50:51 +01:00
João Reis 68a658d82b test: mark test-vm-syntax-error-stderr as flaky
Ref: https://github.com/nodejs/node/issues/2660

PR-URL: https://github.com/nodejs/node/pull/2662
Reviewed-By: orangemocha - Alexis Campailla <orangemocha@nodejs.org>
2015-09-02 17:40:01 -04:00
João Reis 242c88b8ae test: mark test-repl-persistent-history as flaky
This test is already being investigated, but until a solution is found
it should be marked flaky.

Ref: https://github.com/nodejs/node/issues/2319
Ref: https://github.com/nodejs/node/pull/2356

PR-URL: https://github.com/nodejs/node/pull/2659
Reviewed-By: orangemocha - Alexis Campailla <orangemocha@nodejs.org>
2015-09-02 13:28:27 -04:00
João Reis c6a54d0964 win,msi: correct installation path registry keys
This is a port of 14db629497.

Original commit message:

  Since install is per machine only, installation path should be stored
  in local machine instead of current user. The registry stores HKLM in
  different places for 32 and 64 bit applications, so the installer
  will not suggest the old path when upgrading from 32 to 64 bit
  version.

  Fixes joyent/node#5592
  Fixes joyent/node#25087

  PR-URL: https://github.com/joyent/node/pull/25640
  Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
  Reviewed-By: Bert Belder <bertbelder@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/2565
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
2015-08-28 10:47:53 +01:00
João Reis 4cfe5eb9af win,msi: change InstallScope to perMachine
This is an adaptation of 8e80528453.

Original commit message:

  The MSI install scope was set to the WiX default, which is per-user.
  However, with UAC, it could not be installed by a standard user
  because InstallPrivileges is elevated by default, hence the install
  scope should be set to per-machine. Furthermore, the default install
  path is a per-machine location and setting the system path requires
  administrator privileges.

  By changing the InstallScope to perMachine, Start Menu shortcuts are
  placed in ProgramData and not the installing user's AppData folder,
  making the shortcuts available to other users. This also fixes the
  installation when AppData is a network folder.

  The custom action is necessary to allow upgrades. Since a per-machine
  MSI cannot upgrade an application installed per-user, the custom
  action checks if there is going to be an upgrade to a previous
  version installed per-user and sets the installation as per-user to
  allow upgrading. Hence, the advantages of installing per-machine will
  only apply in fresh installations.

  Fixes joyent/node#5849
  Fixes joyent/node#7629

  PR-URL: https://github.com/joyent/node/pull/25640
  Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
  Reviewed-By: Bert Belder <bertbelder@gmail.com>

The original commit was adapted to search all upgrade codes listed in
the upgrade table, as the current installer tries to upgrade from two
different upgrade codes.

PR-URL: https://github.com/nodejs/node/pull/2565
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
2015-08-28 10:47:51 +01:00
João Reis b630ebaf43 win,msi: Upgrade from old upgrade code
This enables the MSI to upgrade old Node.js versions and
early versions of io.js before the upgrade code was changed.

This also reverts 24def66293.

PR-URL: https://github.com/nodejs/node/pull/2439
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-08-25 12:42:44 +01:00
João Reis 6480f42288 test: remove test-timers-first-fire
According to the documentation, "io.js makes no guarantees
about the exact timing of when the callback will fire"
(https://iojs.org/api/timers.html#timers_settimeout_callback_delay_arg),
hence this test is not necessary.

PR-URL: https://github.com/nodejs/node/pull/2458
Reviewed-By: Ben Noordhuis <ben@strongloop.com>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
2015-08-24 12:18:06 +01:00
João Reis bce1aea425 win: fix custom actions for WiX older than 3.9
This is a port of joyent/node@e192f61514 .

Original commit message:

  Older WiX versions included a header with extern "C" declaration,
  hence the custom action source must be C++.

  Reviewed-By: João Reis <reis@janeasystems.com>
  PR-URL: https://github.com/joyent/node/pull/25569

PR-URL: https://github.com/nodejs/node/pull/2365
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
2015-08-24 12:06:15 +01:00
João Reis a642a76ef4 test: option to run a subset of tests
With this option, tests can be divided in groups and only one is run
from each group. This enables us to parallelize the tests across
multiple machines.

PR-URL: https://github.com/nodejs/io.js/pull/2260
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
2015-08-13 10:21:24 +01:00
João Reis b612f085ec doc: add joaocgreis as a collaborator
Refer: https://github.com/nodejs/io.js/issues/2102

PR-URL: https://github.com/nodejs/io.js/pull/2208

Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-07-21 11:21:42 +01:00
João Reis 2b4b600660 test: fix test-debug-port-from-cmdline
This test was failing because the spawned process was terminated before
anything could be done, by calling child.stdin.end. With this change,
the child's stdin is no longer closed. When the stdin is not a tty,
io.js waits for the whole input before starting, so the child must be
run with --interactive to process the command sent by the parent. The
child is killed explicitly by the parent before it exits.

This test was failing silently because the asserts were not called if
nothing was received from the child. This fix moves assertOutputLines to
always run on exit.

Fixes: https://github.com/nodejs/io.js/issues/2177
Refs: https://github.com/nodejs/io.js/issues/2094
PR-URL: https://github.com/nodejs/io.js/pull/2186
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
2015-07-15 21:52:16 -04:00
João Reis e6ccdcc1fe test: improve console output of tls-server-verify
When running in parallel, it is not easy to identify what server and
client failed when the test fails. This adds identifiers to all lines
of console output.

Fixes: https://github.com/nodejs/io.js/issues/1461
PR-URL: https://github.com/nodejs/io.js/pull/1836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-06-03 19:11:20 +02:00
João Reis 975e5956f0 test: run tls-server-verify servers in parallel
Different servers must use different ports. Since we can count only on
common.PORT and common.PORT+1, run only 2 servers in parallel.

Fixes: https://github.com/nodejs/io.js/issues/1461
PR-URL: https://github.com/nodejs/io.js/pull/1836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-06-03 19:11:19 +02:00
João Reis b18604ba2c test: running tls-server-verify clients in parallel
OpenSSL s_client introduces some delay on Windows. With all clients
running sequentially, this delay is big enough to break CI. This fix runs
the clients in parallel (unless the test includes renegotiation),
reducing the total run time.

Fixes: https://github.com/nodejs/io.js/issues/1461
PR-URL: https://github.com/nodejs/io.js/pull/1836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-06-03 19:11:17 +02:00