Commit Graph

101 Commits

Author SHA1 Message Date
Alejandro Romero Herrera
a1367c2a5d Avoid MiTM by downloading through https 2020-09-26 18:58:37 +03:00
filipenevola
dfef2c3641 Drops support for Windows 32-bit as MongoDB no longer supports it 2020-02-21 19:21:12 -04:00
Christian Klaussner
1a016f5c2b Update download URLs for MongoDB 4.2.1. 2020-01-13 16:02:43 -05:00
Ben Newman
5e711969b5 Remove @babel/runtime/helpers/builtin symlinking hack. 2019-09-24 10:23:22 -04:00
Ben Newman
065520dbf8 Move node_modules/pacote to node_modules/npm/node_modules/pacote. 2019-09-24 10:23:22 -04:00
Ben Newman
6e2ac530ce Use TLS 1.2 on Windows to download MongoDB via HTTPS.
https://stackoverflow.com/questions/49800534/powershell-could-not-create-ssl-tsl-secure
2018-09-05 13:26:07 -04:00
Ben Newman
e03a2d59d3 Symlink from @babel/runtime/helpers/builtin to @babel/runtime/helpers.
https://github.com/babel/babel/pull/8266#issuecomment-410713225

Should fix #10129, since the vue-component build plugin registered by
akryum:vue-component depends on the @babel/runtime package installed in
dev_bundle/lib/node_modules.
2018-08-06 10:18:40 -04:00
Ben Newman
e35e9e0ef9 Update Node to version 8.11.2. 🎉
https://nodejs.org/en/blog/release/v8.11.2/
2018-05-15 18:01:55 -04:00
Ben Newman
9bb92ba0a9 Force Node 8.11.1 on Windows for now.
https://github.com/nodejs/node/pull/20478#issuecomment-387181249
2018-05-07 15:51:39 -04:00
Ben Newman
bc6ec63f52 Update Node to v8.11.2-rc.1. 2018-05-07 15:22:13 -04:00
Ben Newman
86e4ee1d93 Copy {lib,ssl}eay32.dll into dev_bundle\mongodb\bin on Windows. 2018-04-25 11:20:13 -04:00
Hugh Willson
542ad06b75 Revert the revert of "Upgrade to Mongo 3.6 (#9533)"
This reverts commit 85d74f8d2b.
2018-03-21 19:27:03 +02:00
Ben Newman
85d74f8d2b Revert "Upgrade to Mongo 3.6 (#9533)"
This reverts commit dfc0702558.

We've seen some odd test failures (e.g. `passwords - tokens`) and trouble
updating from 1.6.1 to 1.6.2-beta.3 (easily solved with `meteor reset`,
but also worth investigating), so I think we should keep working on the
Mongo 3.6 upgrade in a PR, rather than running all of our tests against
a devel branch that includes Mongo 3.6.

cc @abernix @hwillson
2018-01-30 17:47:12 -05:00
Hugh Willson
dfc0702558 Upgrade to Mongo 3.6 (#9533)
Update the Meteor Tool to use Mongo 3.6.2 for 64-bit OS'
and Mongo 3.2.18 for 32-bit OS'. A few important mentions:

- As of Mongo 3.6, all Mongo binary downloads include
  SSL - there is no longer a non-SSL based download bundle
  (so it's a bit bigger, but that shouldn't be an issue).
- Using the `--nojournal` option with WiredTiger based
  replica sets is no longer supported (see
  https://jira.mongodb.org/browse/SERVER-30760). The
  `--nojournal` flag was added in
  bcfe072d52
  to help reduce the amount of disk space used by Mongo,
  but since this option is no longer supported, we'll
  have to live with the extra disk space usage.
- Add PR link to History.md
2018-01-24 22:01:46 +02:00
Ben Newman
f9f7965587 Use a fork of pacote to work around Windows git.exe issues.
Should finally fix https://github.com/meteor/meteor/issues/9243.

Additional commits:
64ff47a875
f381754a0f

Previously: 3431b5b81f
2017-10-18 21:52:11 -04:00
Ben Newman
3f7b66a40d Link npm bin commands into dev_bundle\bin on Windows. 2017-10-17 15:10:39 -04:00
Ben Newman
0de61e3bf5 Add dev_bundle\bin to $env.PATH when generating Windows dev bundle. 2017-10-14 14:23:00 -04:00
Jesse Rosenberger
9b989e2ee2 Remove Add-ToExistingPath.
The Generate Dev Bundle process no longer requires any modifications
to the $PATH, preventing environmental artifacts which pile up when
running the script over and over again.
2017-10-14 13:37:20 -04:00
Jesse Rosenberger
4ca9362fb4 Avoid ConvertFrom-Json Cmd-let, unsupported in PowerShell 4.
I thought it was nifty to use this Cmd-let from PowerShell, to directly
parse the JSON output from Node's `process.release`, but as it turns
out, that wasn't supported by the version of PowerShell on our Jenkins
server.  Alas!
2017-10-14 13:37:20 -04:00
Jesse Rosenberger
c81c2fb2b8 Re-work Windows "Generate Dev Bundle" process.
This is a re-write of the generate-dev-bundle.ps1 script, which occurred
during debugging of an unrelated concern of the (new) 64-bit Windows
build on our Jenkins server.  Ultimately, I'm afraid this script doesn't
solve the problem I originally set out to fix, which was a Windows
long-file path concern.

The hunch behind that thinking was that the use of npm@1 to install
npm@5 could be causing problems, since npm@1 had no concept of nested
node_modules directories.  We had used npm@1 because Node.js
for Windows hasn't always offered (via nodejs.org/dist/) versions
including npm which we could use to install our own requirements.
Happily, that is no longer the case!

While this script now deals with long paths much more gracefully itself,
I'm not sure it completely quelled the long-path issue, and there are
still some directory trees which are longer than I think they should be.

The warnings I was seeing may not have harmed the actual bundle and were
more problematic for this build script itself when it tried to deal with
the aftermath of all those files, since native Windows commands struggle
to deal with long file paths (when cleaning up, etc.).

In the end, this script does have performance enhancements though! For
starters, it's nearly twice as fast at finishing.  Most of this was
gained by avoiding back-and-forth moving of large file structures,
opting instead to directly install into the targets when possible.

It also ensures that the npm build cache is not bundled, which started
occurring since our modification of the $HOME and $USERPROFILE variables
led npm@5 to think the npm cache was in the root of the bundle.

Additionally, it no longer modifies the $PATH, in any way, during the
build. This became particularly helpful during testing when I found that
PowerShell maintained that $PATH in the environment of the host shell.

I'd like to say it increases readability of the script, which had
become a bit of a patchwork quilt, but that's YTBD and YMMV.

This is my first "complete" PowerShell script myself so it probably
still leaves some things to desired, formatting wise.  Functionality-
wise, I hope it's improved.
2017-10-14 13:36:29 -04:00
Jesse Rosenberger
a890b22238 On Windows, point node-gyp to dev_bundle/include/node headers.
In the same spirit as 67b76abc78 on Unix.
2017-10-14 13:36:29 -04:00
Jesse Rosenberger
6238be978e Use the latest, platform-specific, Python 2.x for Windows: 2.4.14. 2017-10-14 13:36:29 -04:00
Jesse Rosenberger
0dac129770 Introduce os.windows.x86_64 architecture for 64-bit Windows.
This commit reverts much of the work @hwillson had put in place for
meteor/meteor#9173, which made it possible for 32-bit and 64-bit
Mongo versions to exist in harmony within the same dev-bundle.  That
hard work was not in vein though as it offered invaluable research.
Ultimately, this showed that a more aggressive approach would be ideal,
even if the proposed option would have worked great in the short-term.

In the wake of the news that Mongo would no longer be supporting 32-bit
versions, these changes are important so 32-bit users of Meteor can
continue to have a functioning Mongo binary in development, while still
allowing Meteor to ship newer Mongo (e.g. 3.4+) binaries for 64-bit
users.  This is particularly relevant for Windows users, who have
previously only had 32-bit Meteor builds and represented a majority of
"32-bit" development, despite the fact most of their hosts supported
64-bit.  During another time in Meteor's life, this made sense.

This commit takes improved functionality to the next level (and makes
the aforementioned changes obsolete) by introducing support for building
and shipping Meteor for Windows in a 64-bit flavor (in addition to
32-bit), which will hopefully solve a number of performance matters on
Windows by using binaries which are pre-compiled for 64-bit, rather than
forcing the Windows kernel to deal with 32-bit binaries.  While Windows
has shown it's quite capable of dealing with such a situation, it seems
more and more clear (given improvements in underlying dependencies) that
performance gains could be had by freeing Windows of its 32-bit work.

This commit also further perpetuates the "archinfo" plot-line with more
story (about Windows) and various spelling corrections.
2017-10-14 13:36:29 -04:00
Jesse Rosenberger
2d87ac6f37 Fail the Windows dev bundle build when an error occurs.
If any part of the dev bundle generation fails, the script should stop.

I was encountering a barely-noticed failure in the Python extraction
when the download tarball was 404-ing (due to my own fault), but the
script proceeded as if the failure hadn't happened, resulting in a
broken dev bundle.
2017-10-14 13:36:29 -04:00
Hugh Willson
9a1f91843e Add Tool support for both 32 bit (3.2) and 64 bit (3.4) Mongo
These changes introduce dual Mongo support into the Meteor
Tool. 32-bit Mongo (3.2.15) will be used by Meteor when the
Tool is run on a 32-bit OS (32-bit Linux and Windows). 64-bit
Mongo (3.4.9) will be used when the Tool is run on a 64-bit
OS (64-bit Linux, Windows and macOS).

Fixes https://github.com/meteor/meteor-feature-requests/issues/129.
2017-10-14 13:36:29 -04:00
Ben Newman
305a1e3942 Merge branch 'devel' into release-1.6 2017-10-10 10:02:00 -04:00
Eric Wyne
4d4d5afb5c fix typo 2017-10-02 11:41:42 -07:00
Ben Newman
dc95428ecb Merge branch 'devel' into release-1.6 2017-09-29 18:07:21 -04:00
Ben Newman
ea1800d065 Include Node headers and node.lib in dev bundle on Windows.
Fixes #9153.
2017-09-29 13:51:24 -04:00
Ben Newman
7a9bef9250 Revert "Fix npm@5.4.0 +x permissions-stripping bug until next pacote release."
This reverts commit 3431b5b81f.
2017-09-06 18:12:43 -04:00
Ben Newman
3431b5b81f Fix npm@5.4.0 +x permissions-stripping bug until next pacote release.
https://github.com/npm/npm/issues/18324
https://github.com/zkat/pacote/pull/117
2017-09-06 10:40:32 -04:00
Jesse Rosenberger
3fa78bf02d Don't put node-gyp into a tiered node_modules on Windows dev bundle.
This was preventing `node-gyp` from installing the Node header files on
Windows and was the reason that `minimatch` was not being found, as seen
in https://github.com/meteor/meteor/pull/8831.

The `minimatch` module was present, but it was just in `dev_bundle/lib`,
not in `dev_bundle/lib/node_modules/npm/node_modules`.

This expecation may have been expected from older versions of npm but is
no longer the case.  This replicates the behavior of the Unix
`generate_dev_bundle.sh` script, which also does not nest `node-gyp`.

/cc @benjamn
2017-06-27 19:22:04 -04:00
Jesse Rosenberger
948ec2b05f Merge branch 'master' into devel 2017-04-07 18:50:17 +03:00
Jesse Rosenberger
38dd26ab64 Bumping version of 7-zip for Windows
In an effort to try to resolve #7688 extraction slowness.
2017-02-01 10:22:01 -05:00
Ben Newman
0065039917 Remove wildcard from 7-zip path in Windows dev bundle script. 2017-02-01 10:22:01 -05:00
Ben Newman
be0c8c3ee0 Upgrade the npm npm package to version 4.1.2. 2017-02-01 10:11:19 -05:00
Ben Newman
c1a25f4af1 Ugrade Node to version 4.7.3. 2017-02-01 10:05:18 -05:00
Ben Newman
4f4ab1b68f Ugrade Node to version 4.6.2. 2016-11-14 11:50:19 -05:00
Ben Newman
4b618ac289 Download Python from S3 when building Windows dev_bundle.
Should fix #7960.
2016-10-28 16:11:30 -04:00
Ben Newman
e2be0bbc8a Upgrade the npm npm package to version 3.10.9. 2016-10-21 22:16:29 -04:00
Ben Newman
6af6eee022 Update Node to version 4.6.1.
https://nodejs.org/en/blog/release/v4.6.1/
2016-10-19 17:26:00 -04:00
Ben Newman
0d32423fe0 Upgrade Node to version 4.6.0.
https://nodejs.org/en/blog/release/v4.6.0/
2016-10-03 17:32:09 -04:00
Ben Newman
670c305927 Update the npm npm package to v3.10.8. 2016-09-27 12:07:41 -04:00
Ben Newman
d411113e7f Update the npm npm package to v3.10.7. 2016-09-09 11:28:46 -04:00
Ben Newman
d28fe76851 Upgrade Windows bundled Python version to 2.7.12. 2016-08-16 12:51:22 -04:00
Ben Newman
ca51c8fd87 Upgrade npm to 3.10.6.
https://github.com/npm/npm/blob/master/CHANGELOG.md#v3106-2016-07-07
2016-08-16 12:50:28 -04:00
Ben Newman
b45f733209 Upgrade Node to 4.5.0.
https://nodejs.org/en/blog/release/v4.5.0/
2016-08-16 12:48:36 -04:00
Ben Newman
a4a828e4c3 Install Node headers and libraries in dev_bundle/.node-gyp/.
This gives us a reliable place for node-gyp to find the necessary headers
and libraries for compiling binary packages, instead of relying on the
accessibility of $HOME and/or $USERPROFILE.
2016-08-06 13:46:16 -04:00
Ben Newman
7faa4ba7d7 Revert "Include Node 4.5.0-rc.2 in the dev bundle."
This reverts commit 64a9312e29.

Although Meteor runs fine on Node 4.5.0, node-gyp doesn't know how to
download libraries appropriate for RC releases, so it looks like we need
to hold off on this upgrade until it's officially out.
2016-08-06 13:46:16 -04:00
Ben Newman
760eecb1d2 Include Node 4.5.0-rc.2 in the dev bundle. 2016-08-06 13:46:15 -04:00