From 03954f778ec491fe5a4f8e42996e3edbe35554d9 Mon Sep 17 00:00:00 2001 From: JP Wesselink Date: Mon, 4 Sep 2017 12:07:56 +0200 Subject: tools, build: refactor macOS installer Creates macOS pkg installer by using `pkgbuild` and `productbuild`. Removes previous npm installation before installing npm. Packages carry correct version attributes. Support for intl installer features, defaults to `en`. Fancy formatted license. Renamed `osx` references to `macOS`. Optional installation of npm. PR-URL: https://github.com/nodejs/node/pull/15179 Fixes: https://github.com/nodejs/node/issues/15012 Refs: https://github.com/nodejs/node/pull/5656 Refs: https://github.com/nodejs/node/pull/2571 Refs: https://github.com/nodejs/node/pull/7097 Reviewed-By: Lance Ball Reviewed-By: Daijiro Wachi Reviewed-By: James M Snell Reviewed-By: Joyee Cheung --- .../pkgbuild/npm/scripts/postinstall | 5 +++++ .../pkgbuild/npm/scripts/preinstall | 5 +++++ .../Resources/en.lproj/conclusion.html.tmpl | 23 ++++++++++++++++++++++ .../Resources/en.lproj/welcome.html.tmpl | 19 ++++++++++++++++++ .../productbuild/distribution.xml.tmpl | 23 ++++++++++++++++++++++ 5 files changed, 75 insertions(+) create mode 100755 tools/macos-installer/pkgbuild/npm/scripts/postinstall create mode 100755 tools/macos-installer/pkgbuild/npm/scripts/preinstall create mode 100644 tools/macos-installer/productbuild/Resources/en.lproj/conclusion.html.tmpl create mode 100644 tools/macos-installer/productbuild/Resources/en.lproj/welcome.html.tmpl create mode 100644 tools/macos-installer/productbuild/distribution.xml.tmpl (limited to 'tools/macos-installer') diff --git a/tools/macos-installer/pkgbuild/npm/scripts/postinstall b/tools/macos-installer/pkgbuild/npm/scripts/postinstall new file mode 100755 index 00000000000..285ce81e58a --- /dev/null +++ b/tools/macos-installer/pkgbuild/npm/scripts/postinstall @@ -0,0 +1,5 @@ +#!/bin/sh + +cd /usr/local/bin || exit 1 +ln -sf ../lib/node_modules/npm/bin/npm-cli.js npm +ln -sf ../lib/node_modules/npm/bin/npx-cli.js npx diff --git a/tools/macos-installer/pkgbuild/npm/scripts/preinstall b/tools/macos-installer/pkgbuild/npm/scripts/preinstall new file mode 100755 index 00000000000..848da677b4d --- /dev/null +++ b/tools/macos-installer/pkgbuild/npm/scripts/preinstall @@ -0,0 +1,5 @@ +#!/bin/sh + +[[ -d /usr/local/lib/node_modules/npm ]] \ + && rm -rf /usr/local/lib/node_modules/npm +exit 0 diff --git a/tools/macos-installer/productbuild/Resources/en.lproj/conclusion.html.tmpl b/tools/macos-installer/productbuild/Resources/en.lproj/conclusion.html.tmpl new file mode 100644 index 00000000000..1157d972081 --- /dev/null +++ b/tools/macos-installer/productbuild/Resources/en.lproj/conclusion.html.tmpl @@ -0,0 +1,23 @@ + + + + + +
+

This package has installed:

+
    +
  • Node.js {nodeversion} to /usr/local/bin/node
  • +
  • npm {npmversion} to /usr/local/bin/npm
  • +
+

Make sure that /usr/local/bin is in your $PATH.

+
+ + diff --git a/tools/macos-installer/productbuild/Resources/en.lproj/welcome.html.tmpl b/tools/macos-installer/productbuild/Resources/en.lproj/welcome.html.tmpl new file mode 100644 index 00000000000..3790894e397 --- /dev/null +++ b/tools/macos-installer/productbuild/Resources/en.lproj/welcome.html.tmpl @@ -0,0 +1,19 @@ + + + + + +
+

This package will install:

+
    +
  • Node.js {nodeversion} to /usr/local/bin/node
  • +
  • npm {npmversion} to /usr/local/bin/npm
  • +
+
+ + diff --git a/tools/macos-installer/productbuild/distribution.xml.tmpl b/tools/macos-installer/productbuild/distribution.xml.tmpl new file mode 100644 index 00000000000..0b9d84701bb --- /dev/null +++ b/tools/macos-installer/productbuild/distribution.xml.tmpl @@ -0,0 +1,23 @@ + + + Node.js + + + + + + + + + + + + + + + node-{nodeversion}.pkg + + + + npm-{npmversion}.pkg + -- cgit v1.2.3