All of lore.kernel.org
 help / color / mirror / Atom feed
* npm thoughts
@ 2017-02-28  4:50 Trevor Woerner
  2017-02-28 16:56 ` Trevor Woerner
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Trevor Woerner @ 2017-02-28  4:50 UTC (permalink / raw)
  To: openembedded-core

Hi,

I was trying out devtool+npm with the electron quick-start node stuff and
noticed some interesting results. This simple app can be found at
https://github.com/electron/electron-quick-start

According to https://wiki.yoctoproject.org/wiki/TipsAndTricks/NPM there are
two ways to create a recipe for a node app using The Yocto Project's devtool:
	1) by pointing devtool at the npm registry
	2) by pointing devtool at the project's source code
It is also possible to:
	3) point to a tarball of the project's source

Preparation for 2) is as follows:
	$ git clone git://github.com/electron/electron-quick-start

Further preparation for 3) continues:
	$ tar -c electron-quick-start/ > electron-quick-start.tar
	$ gzip electron-quick-start.tar

It is important to note that the following assumes morty. Master is messed up
right now with the introduction of per-recipe sysroots (but is expected to get
fixed eventually). The layers used are openembedded-core:morty, bitbake:1.32,
and meta-openembedded:morty.

This app's package.json is:

	{
	  "name": "electron-quick-start",
	  "version": "1.0.0",
	  "description": "A minimal Electron application",
	  "main": "main.js",
	  "scripts": {
	    "start": "electron ."
	  },  
	  "repository": "https://github.com/electron/electron-quick-start",
	  "keywords": [
	    "Electron",
	    "quick",
	    "start",
	    "tutorial",
	    "demo"
	  ],  
	  "author": "GitHub",
	  "license": "CC0-1.0",
	  "devDependencies": {
	    "electron": "^1.4.1"
	  }
	}


Testing 3)
	$ . layers/openembedded-core/oe-init-build-env tarball layers/bitbake
	edit conf/bblayers.conf to add meta-openembedded/meta-oe
	$ devtool add electron-quick-start ~/npm/source/electron-quick-start.tar.gz

	Here is the recipe devtool creates:
		# Recipe created by recipetool
		# This is the basis of a recipe and may need further editing in order to be fully functional.
		# (Feel free to remove these comments when editing.)

		SUMMARY = "A minimal Electron application"
		# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
		# your responsibility to verify that the values are complete and correct.
		#
		# The following license files were not able to be identified and are
		# represented as "Unknown" below, you will need to check them yourself:
		#   LICENSE.md
		#
		LICENSE = "CC0-1.0"
		LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c4bb4655ae0c8ab590a1aa591e3a80c5"

		SRC_URI = "file:///z/npm/source/electron-quick-start.tar.gz"

		NPM_LOCKDOWN := "${THISDIR}/${PN}/lockdown.json"

		inherit npm 

		# Must be set after inherit npm since that itself sets S
		S = "${WORKDIR}/electron-quick-start.git"
		LICENSE_${PN} = "CC0-1.0"

	$ bitbake electron-quick-start
	$ tree tmp-glibc/work/i586-oe-linux/electron-quick-start/1.0.0-r0/packages-split/electron-quick-start
	electron-quick-start
	└── usr
	    └── lib
		└── node_modules
		    └── electron-quick-start
			├── index.html
			├── LICENSE.md
			├── main.js
			├── package.json
			├── README.md
			└── renderer.js


Testing 2)
	$ . layers/openembedded-core/oe-init-build-env clone layers/bitbake
	edit conf/bblayers.conf to add meta-openembedded/meta-oe
	$ devtool add electron-quick-start ~/npm/source/electron-quick-start.git

	Here is the recipe:
		# Recipe created by recipetool
		# This is the basis of a recipe and may need further editing in order to be fully functional.
		# (Feel free to remove these comments when editing.)

		SUMMARY = "A minimal Electron application"
		# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
		# your responsibility to verify that the values are complete and correct.
		#
		# The following license files were not able to be identified and are
		# represented as "Unknown" below, you will need to check them yourself:
		#   LICENSE.md
		#
		LICENSE = "CC0-1.0"
		LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c4bb4655ae0c8ab590a1aa591e3a80c5"

		SRC_URI = "git://github.com/electron/electron-quick-start.git"

		# Modify these as desired
		PV = "1.0.0+git${SRCPV}"
		SRCREV = "f8ae670ce85ce7329580b1085e37abb62ea3566b"

		NPM_LOCKDOWN := "${THISDIR}/${PN}/lockdown.json"

		inherit npm 

		# Must be set after inherit npm since that itself sets S
		S = "${WORKDIR}/git"
		LICENSE_${PN} = "CC0-1.0"

	$ bitbake electron-quick-start
	$ tree tmp-glibc/work/i586-oe-linux/electron-quick-start/1.0.0+git999-r0/packages-split/electron-quick-start
	tmp-glibc/work/i586-oe-linux/electron-quick-start/1.0.0+git999-r0/packages-split/electron-quick-start
	└── usr
	    └── lib
		└── node_modules
		    └── electron-quick-start
			├── index.html
			├── LICENSE.md
			├── main.js
			├── package.json
			├── README.md
			└── renderer.js


Testing 1)
	$ . layers/openembedded-core/oe-init-build-env registry layers/bitbake/
	edit conf/bblayers.conf to add meta-openembedded/meta-oe
	$ devtool add electron-quick-start "npm://registry.npmjs.org;name=electron-quick-start;version=1.0.0"
	this step runs for a while then fails because it can't find the license "MIT/X11"

	Here is the recipe when if finishes:
		# Recipe created by recipetool
		# This is the basis of a recipe and may need further editing in order to be fully functional.
		# (Feel free to remove these comments when editing.)

		SUMMARY = "A minimal Electron application"
		HOMEPAGE = "https://github.com/atom/electron-quick-start#readme"
		# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
		# your responsibility to verify that the values are complete and correct.
		#
		# NOTE: multiple licenses have been detected; if that is correct you should separate
		# these in the LICENSE value using & if the multiple licenses all apply, or | if there
		# is a choice between the multiple licenses. If in doubt, check the accompanying
		# documentation to determine which situation is applicable.
		#
		# The following license files were not able to be identified and are
		# represented as "Unknown" below, you will need to check them yourself:
		#   LICENSE.md
		#   node_modules/electron-updater/node_modules/unzip/node_modules/fstream/LICENSE
		#   node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/LICENSE
		#   node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
		#   node_modules/electron-updater/node_modules/unzip/node_modules/binary/node_modules/chainsaw/node_modules/traverse/LICENSE
		#   node_modules/electron-updater/node_modules/tar-stream/node_modules/readable-stream/LICENSE
		#   node_modules/electron-updater/node_modules/tar-stream/node_modules/readable-stream/node_modules/buffer-shims/license.md
		#   node_modules/electron-updater/node_modules/tar-stream/node_modules/readable-stream/node_modules/process-nextick-args/license.md
		#   node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/LICENSE.md
		#   node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/node_modules/readable-stream/LICENSE
		#   node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/license.md
		#   node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/node_modules/readable-stream/node_modules/buffer-shims/license.md
		#   node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/readable-stream/LICENSE
		#   node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/readable-stream/node_modules/buffer-shims/license.md
		#   node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/readable-stream/node_modules/process-nextick-args/license.md
		#   node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/readable-stream/LICENSE
		#   node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/readable-stream/node_modules/buffer-shims/license.md
		#   node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/readable-stream/node_modules/process-nextick-args/license.md
		#   node_modules/electron-updater/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
		#   Squirrel.Mac/script/LICENSE.md
		#   Squirrel.Mac/External/OHHTTPStubs/LICENSE
		#   Squirrel.Mac/Carthage/Checkouts/ReactiveCocoa/LICENSE.md
		#   Squirrel.Mac/Carthage/Checkouts/ReactiveCocoa/Carthage/Checkouts/Quick/LICENSE
		#   Squirrel.Mac/Carthage/Checkouts/ReactiveCocoa/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE.md
		#   Squirrel.Mac/Carthage/Checkouts/ReactiveCocoa/Carthage/Checkouts/Nimble/LICENSE.md
		#   Squirrel.Mac/Carthage/Checkouts/ReactiveCocoa/script/LICENSE.md
		#   Squirrel.Mac/Carthage/Checkouts/Quick/LICENSE
		#   Squirrel.Mac/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE.md
		#   Squirrel.Mac/Carthage/Checkouts/Nimble/LICENSE.md
		#   Squirrel.Mac/Carthage/Checkouts/Mantle/LICENSE.md
		#   Squirrel.Mac/Carthage/Checkouts/Mantle/Carthage/Checkouts/Quick/LICENSE
		#   Squirrel.Mac/Carthage/Checkouts/Mantle/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE.md
		#   Squirrel.Mac/Carthage/Checkouts/Mantle/Carthage/Checkouts/Nimble/LICENSE.md
		#   Squirrel.Mac/Carthage/Checkouts/Mantle/script/LICENSE.md
		#
		LICENSE = "ISC & BSD & Unknown & MIT/X11 & MIT"
		LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c4bb4655ae0c8ab590a1aa591e3a80c5 \
				    file://node_modules/electron-updater/LICENSE;md5=71a52831f2bbba1383d42d9390458df8 \
				    file://node_modules/electron-updater/node_modules/commander/LICENSE;md5=25851d4d10d6611a12d5571dab945a00 \
				    file://node_modules/electron-updater/node_modules/commander/node_modules/graceful-readlink/LICENSE;md5=b0270ddb7ee6643eee76e80113234806 \
				    file://node_modules/electron-updater/node_modules/unzip/LICENSE;md5=46cc96ae87cdaa8f9ec33480b548dce5 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/setimmediate/LICENSE.txt;md5=af19eaafbc6aa0d2c97538dcfb6db94a \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/readable-stream/LICENSE;md5=d7351a4fc8e956f1a68413490d5e655e \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/readable-stream/node_modules/string_decoder/LICENSE;md5=fcf5cfdc777e49f11402422c72a86f43 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/readable-stream/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/readable-stream/node_modules/core-util-is/LICENSE;md5=6126e36127d20ec0e2f637204a5c68ff \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/LICENSE;md5=46cc96ae87cdaa8f9ec33480b548dce5 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/node_modules/readable-stream/LICENSE;md5=d7351a4fc8e956f1a68413490d5e655e \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/node_modules/readable-stream/node_modules/string_decoder/LICENSE;md5=fcf5cfdc777e49f11402422c72a86f43 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/node_modules/readable-stream/node_modules/core-util-is/LICENSE;md5=6126e36127d20ec0e2f637204a5c68ff \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/node_modules/readable-stream/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/node_modules/setimmediate/LICENSE.txt;md5=af19eaafbc6aa0d2c97538dcfb6db94a \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream/LICENSE;md5=e3c4bafaf8e85046af71466220bd0eb3 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream/node_modules/readable-stream/LICENSE;md5=d7351a4fc8e956f1a68413490d5e655e \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream/node_modules/readable-stream/node_modules/string_decoder/LICENSE;md5=fcf5cfdc777e49f11402422c72a86f43 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream/node_modules/readable-stream/node_modules/core-util-is/LICENSE;md5=6126e36127d20ec0e2f637204a5c68ff \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream/node_modules/readable-stream/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/match-stream/LICENSE;md5=e3c4bafaf8e85046af71466220bd0eb3 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/match-stream/node_modules/readable-stream/LICENSE;md5=d7351a4fc8e956f1a68413490d5e655e \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/match-stream/node_modules/readable-stream/node_modules/string_decoder/LICENSE;md5=fcf5cfdc777e49f11402422c72a86f43 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/match-stream/node_modules/readable-stream/node_modules/core-util-is/LICENSE;md5=6126e36127d20ec0e2f637204a5c68ff \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/match-stream/node_modules/readable-stream/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/LICENSE;md5=8ce909f9cccb74a7c6f2720930d072c1 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/once/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/fs.realpath/LICENSE;md5=062470525c8e380f8567f665ef554d11 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/minimatch/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE;md5=aea1cde69645f4b99be4ff7ca9abcce1 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md;md5=7fa99ddc3424107350ca6e9a24552085 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/inflight/LICENSE;md5=90a3ca01a5efed8b813a81c6c8fa2e63 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/once/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/once/node_modules/wrappy/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/license;md5=a12ebca0510a773644101a99a867d210 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/mkdirp/LICENSE;md5=b2d989bc186e7f6b418a5fdd5cc0b56b \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/mkdirp/node_modules/minimist/LICENSE;md5=aea1cde69645f4b99be4ff7ca9abcce1 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/fstream/node_modules/graceful-fs/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/unzip/node_modules/binary/node_modules/chainsaw/node_modules/traverse/LICENSE;md5=0f6546e91538ce8c26b2da1623705c62 \
				    file://node_modules/electron-updater/node_modules/tar-stream/LICENSE;md5=9befe7026bf915886cd566a98117c80e \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/xtend/LICENCE;md5=96bcdf84e670aafacac9e094bce29ac9 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/readable-stream/LICENSE;md5=a67a7926e54316d90c14f74f71080977 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/readable-stream/node_modules/buffer-shims/license.md;md5=e04ef9ec24d382b7576c997066a44835 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/readable-stream/node_modules/util-deprecate/LICENSE;md5=b7c99ef4b0f3ad9911a52219947f8cf0 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/readable-stream/node_modules/string_decoder/LICENSE;md5=fcf5cfdc777e49f11402422c72a86f43 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/readable-stream/node_modules/process-nextick-args/license.md;md5=216769dac98a78ec088ee7cc6fad1dfa \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/readable-stream/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/readable-stream/node_modules/core-util-is/LICENSE;md5=6126e36127d20ec0e2f637204a5c68ff \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/end-of-stream/LICENSE;md5=9befe7026bf915886cd566a98117c80e \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/end-of-stream/node_modules/once/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/end-of-stream/node_modules/once/node_modules/wrappy/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/LICENSE.md;md5=e58dc7a94bb9decf6a7b2ff97d22b213 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/node_modules/readable-stream/LICENSE;md5=a67a7926e54316d90c14f74f71080977 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder/LICENSE;md5=fcf5cfdc777e49f11402422c72a86f43 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/LICENSE;md5=b7c99ef4b0f3ad9911a52219947f8cf0 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/license.md;md5=216769dac98a78ec088ee7cc6fad1dfa \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/node_modules/readable-stream/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/node_modules/readable-stream/node_modules/buffer-shims/license.md;md5=e04ef9ec24d382b7576c997066a44835 \
				    file://node_modules/electron-updater/node_modules/tar-stream/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/LICENSE;md5=6126e36127d20ec0e2f637204a5c68ff \
				    file://node_modules/electron-updater/node_modules/spin/LICENSE.txt;md5=31f0289eb4d139200326604d10b9e21b \
				    file://node_modules/electron-updater/node_modules/semver/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/minimist/LICENSE;md5=aea1cde69645f4b99be4ff7ca9abcce1 \
				    file://node_modules/electron-updater/node_modules/got/license;md5=a12ebca0510a773644101a99a867d210 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/unzip-response/license;md5=5b422d6bf88afe88977d04f8bdd4959c \
				    file://node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/license;md5=2a8369b875113ae53aa6c5bb39a58d3c \
				    file://node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/pinkie-promise/license;md5=be72c3ad86c1c4e9578a1945b082b17d \
				    file://node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/pinkie-promise/node_modules/pinkie/license;md5=be72c3ad86c1c4e9578a1945b082b17d \
				    file://node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/readable-stream/LICENSE;md5=a67a7926e54316d90c14f74f71080977 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/readable-stream/node_modules/buffer-shims/license.md;md5=e04ef9ec24d382b7576c997066a44835 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/readable-stream/node_modules/util-deprecate/LICENSE;md5=b7c99ef4b0f3ad9911a52219947f8cf0 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/readable-stream/node_modules/string_decoder/LICENSE;md5=fcf5cfdc777e49f11402422c72a86f43 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/readable-stream/node_modules/process-nextick-args/license.md;md5=216769dac98a78ec088ee7cc6fad1dfa \
				    file://node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/readable-stream/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/read-all-stream/node_modules/readable-stream/node_modules/core-util-is/LICENSE;md5=6126e36127d20ec0e2f637204a5c68ff \
				    file://node_modules/electron-updater/node_modules/got/node_modules/prepend-http/license;md5=a12ebca0510a773644101a99a867d210 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/pinkie-promise/license;md5=be72c3ad86c1c4e9578a1945b082b17d \
				    file://node_modules/electron-updater/node_modules/got/node_modules/pinkie-promise/node_modules/pinkie/license;md5=be72c3ad86c1c4e9578a1945b082b17d \
				    file://node_modules/electron-updater/node_modules/got/node_modules/parse-json/license;md5=a12ebca0510a773644101a99a867d210 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/parse-json/node_modules/error-ex/LICENSE;md5=e67c75e89656b80fd99cb7d30fb43102 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish/LICENSE;md5=e67c75e89656b80fd99cb7d30fb43102 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/LICENSE;md5=9befe7026bf915886cd566a98117c80e \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/stream-shift/LICENSE;md5=42014010547e55bd3bcac2fec8c45624 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/readable-stream/LICENSE;md5=a67a7926e54316d90c14f74f71080977 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/readable-stream/node_modules/buffer-shims/license.md;md5=e04ef9ec24d382b7576c997066a44835 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/readable-stream/node_modules/util-deprecate/LICENSE;md5=b7c99ef4b0f3ad9911a52219947f8cf0 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/readable-stream/node_modules/string_decoder/LICENSE;md5=fcf5cfdc777e49f11402422c72a86f43 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/readable-stream/node_modules/process-nextick-args/license.md;md5=216769dac98a78ec088ee7cc6fad1dfa \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/readable-stream/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/readable-stream/node_modules/core-util-is/LICENSE;md5=6126e36127d20ec0e2f637204a5c68ff \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/got/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/node_modules/wrappy/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/got/node_modules/node-status-codes/license;md5=a12ebca0510a773644101a99a867d210 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/is-stream/license;md5=a12ebca0510a773644101a99a867d210 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/is-redirect/license;md5=a12ebca0510a773644101a99a867d210 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/is-plain-obj/license;md5=a12ebca0510a773644101a99a867d210 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/create-error-class/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/got/node_modules/object-assign/license;md5=a12ebca0510a773644101a99a867d210 \
				    file://node_modules/electron-updater/node_modules/glob/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/path-is-absolute/license;md5=a12ebca0510a773644101a99a867d210 \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/once/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/minimatch/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE;md5=aea1cde69645f4b99be4ff7ca9abcce1 \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md;md5=7fa99ddc3424107350ca6e9a24552085 \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/inflight/LICENSE;md5=90a3ca01a5efed8b813a81c6c8fa2e63 \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/inflight/node_modules/once/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/inflight/node_modules/once/node_modules/wrappy/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
				    file://node_modules/electron-updater/node_modules/async/LICENSE;md5=dc113e0fc4029c29942399ad22425402 \
				    file://node_modules/electron-updater/node_modules/appdirectory/LICENSE.md;md5=19b6cbfe48611ec68354aa02bf266b8a \
				    file://node_modules/electron-plugins/LICENSE;md5=71a52831f2bbba1383d42d9390458df8 \
				    file://node_modules/electron-plugins/node_modules/async/LICENSE;md5=dc113e0fc4029c29942399ad22425402 \
				    file://node_modules/electron-plugins/node_modules/appdirectory/LICENSE.md;md5=19b6cbfe48611ec68354aa02bf266b8a \
				    file://Squirrel.Mac/LICENSE;md5=128544b123235edfd1f1b0fcd835836b \
				    file://Squirrel.Mac/script/LICENSE.md;md5=0e5338dfdadf532bf261f0ff3b50e5c2 \
				    file://Squirrel.Mac/External/OHHTTPStubs/LICENSE;md5=02de072e1ba982f28a1af1385d484172 \
				    file://Squirrel.Mac/Carthage/Checkouts/ReactiveCocoa/LICENSE.md;md5=5543b4fe42a4a7723b1e010dc924c78a \
				    file://Squirrel.Mac/Carthage/Checkouts/ReactiveCocoa/Carthage/Checkouts/Quick/LICENSE;md5=579f318fc6783f299f5731c4a6c958d4 \
				    file://Squirrel.Mac/Carthage/Checkouts/ReactiveCocoa/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE.md;md5=7177dcbba5a41d09e055d6d14add394f \
				    file://Squirrel.Mac/Carthage/Checkouts/ReactiveCocoa/Carthage/Checkouts/Nimble/LICENSE.md;md5=7177dcbba5a41d09e055d6d14add394f \
				    file://Squirrel.Mac/Carthage/Checkouts/ReactiveCocoa/script/LICENSE.md;md5=0e5338dfdadf532bf261f0ff3b50e5c2 \
				    file://Squirrel.Mac/Carthage/Checkouts/Quick/LICENSE;md5=579f318fc6783f299f5731c4a6c958d4 \
				    file://Squirrel.Mac/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE.md;md5=7177dcbba5a41d09e055d6d14add394f \
				    file://Squirrel.Mac/Carthage/Checkouts/Nimble/LICENSE.md;md5=7177dcbba5a41d09e055d6d14add394f \
				    file://Squirrel.Mac/Carthage/Checkouts/Mantle/LICENSE.md;md5=7c732bf6e317d77c4350da48b0438900 \
				    file://Squirrel.Mac/Carthage/Checkouts/Mantle/Carthage/Checkouts/Quick/LICENSE;md5=579f318fc6783f299f5731c4a6c958d4 \
				    file://Squirrel.Mac/Carthage/Checkouts/Mantle/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE.md;md5=7177dcbba5a41d09e055d6d14add394f \
				    file://Squirrel.Mac/Carthage/Checkouts/Mantle/Carthage/Checkouts/Nimble/LICENSE.md;md5=7177dcbba5a41d09e055d6d14add394f \
				    file://Squirrel.Mac/Carthage/Checkouts/Mantle/script/LICENSE.md;md5=0e5338dfdadf532bf261f0ff3b50e5c2"

		SRC_URI = "npm://registry.npmjs.org;name=electron-quick-start;version=${PV}"

		NPM_SHRINKWRAP := "${THISDIR}/${PN}/npm-shrinkwrap.json"
		NPM_LOCKDOWN := "${THISDIR}/${PN}/lockdown.json"

		inherit npm

		# Must be set after inherit npm since that itself sets S
		S = "${WORKDIR}/npmpkg"
		LICENSE_${PN}-electron-plugins-appdirectory = "MIT"
		LICENSE_${PN}-electron-plugins-async = "MIT"
		LICENSE_${PN}-electron-plugins = "MIT"
		LICENSE_${PN}-electron-updater-appdirectory = "MIT"
		LICENSE_${PN}-electron-updater-async = "MIT"
		LICENSE_${PN}-electron-updater-commander-graceful-readlink = "MIT"
		LICENSE_${PN}-electron-updater-commander = "MIT"
		LICENSE_${PN}-electron-updater-glob-inflight-once-wrappy = "ISC"
		LICENSE_${PN}-electron-updater-glob-inflight-once = "ISC"
		LICENSE_${PN}-electron-updater-glob-inflight-wrappy = "ISC"
		LICENSE_${PN}-electron-updater-glob-inflight = "ISC"
		LICENSE_${PN}-electron-updater-glob-inherits = "ISC"
		LICENSE_${PN}-electron-updater-glob-minimatch-brace-expansion-balanced-match = "MIT"
		LICENSE_${PN}-electron-updater-glob-minimatch-brace-expansion-concat-map = "MIT"
		LICENSE_${PN}-electron-updater-glob-minimatch-brace-expansion = "MIT"
		LICENSE_${PN}-electron-updater-glob-minimatch = "ISC"
		LICENSE_${PN}-electron-updater-glob-once-wrappy = "ISC"
		LICENSE_${PN}-electron-updater-glob-once = "ISC"
		LICENSE_${PN}-electron-updater-glob-path-is-absolute = "MIT"
		LICENSE_${PN}-electron-updater-glob = "ISC"
		LICENSE_${PN}-electron-updater-got-create-error-class-capture-stack-trace = "MIT"
		LICENSE_${PN}-electron-updater-got-create-error-class-inherits = "ISC"
		LICENSE_${PN}-electron-updater-got-create-error-class = "MIT"
		LICENSE_${PN}-electron-updater-got-duplexify-end-of-stream-once-wrappy = "ISC"
		LICENSE_${PN}-electron-updater-got-duplexify-end-of-stream-once = "ISC"
		LICENSE_${PN}-electron-updater-got-duplexify-end-of-stream = "MIT"
		LICENSE_${PN}-electron-updater-got-duplexify-inherits = "ISC"
		LICENSE_${PN}-electron-updater-got-duplexify-readable-stream-buffer-shims = "MIT"
		LICENSE_${PN}-electron-updater-got-duplexify-readable-stream-core-util-is = "MIT"
		LICENSE_${PN}-electron-updater-got-duplexify-readable-stream-inherits = "ISC"
		LICENSE_${PN}-electron-updater-got-duplexify-readable-stream-isarray = "MIT"
		LICENSE_${PN}-electron-updater-got-duplexify-readable-stream-process-nextick-args = "MIT"
		LICENSE_${PN}-electron-updater-got-duplexify-readable-stream-string-decoder = "MIT"
		LICENSE_${PN}-electron-updater-got-duplexify-readable-stream-util-deprecate = "MIT"
		LICENSE_${PN}-electron-updater-got-duplexify-readable-stream = "MIT"
		LICENSE_${PN}-electron-updater-got-duplexify-stream-shift = "MIT"
		LICENSE_${PN}-electron-updater-got-duplexify = "MIT"
		LICENSE_${PN}-electron-updater-got-is-plain-obj = "MIT"
		LICENSE_${PN}-electron-updater-got-is-redirect = "MIT"
		LICENSE_${PN}-electron-updater-got-is-stream = "MIT"
		LICENSE_${PN}-electron-updater-got-lowercase-keys = "MIT"
		LICENSE_${PN}-electron-updater-got-node-status-codes = "MIT"
		LICENSE_${PN}-electron-updater-got-object-assign = "MIT"
		LICENSE_${PN}-electron-updater-got-parse-json-error-ex-is-arrayish = "MIT"
		LICENSE_${PN}-electron-updater-got-parse-json-error-ex = "MIT"
		LICENSE_${PN}-electron-updater-got-parse-json = "MIT"
		LICENSE_${PN}-electron-updater-got-pinkie-promise-pinkie = "MIT"
		LICENSE_${PN}-electron-updater-got-pinkie-promise = "MIT"
		LICENSE_${PN}-electron-updater-got-prepend-http = "MIT"
		LICENSE_${PN}-electron-updater-got-read-all-stream-pinkie-promise-pinkie = "MIT"
		LICENSE_${PN}-electron-updater-got-read-all-stream-pinkie-promise = "MIT"
		LICENSE_${PN}-electron-updater-got-read-all-stream-readable-stream-buffer-shims = "MIT"
		LICENSE_${PN}-electron-updater-got-read-all-stream-readable-stream-core-util-is = "MIT"
		LICENSE_${PN}-electron-updater-got-read-all-stream-readable-stream-inherits = "ISC"
		LICENSE_${PN}-electron-updater-got-read-all-stream-readable-stream-isarray = "MIT"
		LICENSE_${PN}-electron-updater-got-read-all-stream-readable-stream-process-nextick-args = "MIT"
		LICENSE_${PN}-electron-updater-got-read-all-stream-readable-stream-string-decoder = "MIT"
		LICENSE_${PN}-electron-updater-got-read-all-stream-readable-stream-util-deprecate = "MIT"
		LICENSE_${PN}-electron-updater-got-read-all-stream-readable-stream = "MIT"
		LICENSE_${PN}-electron-updater-got-read-all-stream = "MIT"
		LICENSE_${PN}-electron-updater-got-timed-out = "MIT"
		LICENSE_${PN}-electron-updater-got-unzip-response = "MIT"
		LICENSE_${PN}-electron-updater-got = "MIT"
		LICENSE_${PN}-electron-updater-minimist = "MIT"
		LICENSE_${PN}-electron-updater-semver = "ISC"
		LICENSE_${PN}-electron-updater-spin = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-bl-readable-stream-buffer-shims = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-bl-readable-stream-core-util-is = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-bl-readable-stream-inherits = "ISC"
		LICENSE_${PN}-electron-updater-tar-stream-bl-readable-stream-isarray = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-bl-readable-stream-process-nextick-args = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-bl-readable-stream-string-decoder = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-bl-readable-stream-util-deprecate = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-bl-readable-stream = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-bl = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-end-of-stream-once-wrappy = "ISC"
		LICENSE_${PN}-electron-updater-tar-stream-end-of-stream-once = "ISC"
		LICENSE_${PN}-electron-updater-tar-stream-end-of-stream = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-readable-stream-buffer-shims = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-readable-stream-core-util-is = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-readable-stream-inherits = "ISC"
		LICENSE_${PN}-electron-updater-tar-stream-readable-stream-isarray = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-readable-stream-process-nextick-args = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-readable-stream-string-decoder = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-readable-stream-util-deprecate = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-readable-stream = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream-xtend = "MIT"
		LICENSE_${PN}-electron-updater-tar-stream = "MIT"
		LICENSE_${PN}-electron-updater-unzip-binary-buffers = "Unknown"
		LICENSE_${PN}-electron-updater-unzip-binary-chainsaw-traverse = "MIT/X11"
		LICENSE_${PN}-electron-updater-unzip-binary-chainsaw = "MIT/X11"
		LICENSE_${PN}-electron-updater-unzip-binary = "MIT"
		LICENSE_${PN}-electron-updater-unzip-fstream-graceful-fs-natives = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-graceful-fs = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-inherits = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-mkdirp-minimist = "MIT"
		LICENSE_${PN}-electron-updater-unzip-fstream-mkdirp = "MIT"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-fs.realpath = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-inflight-once-wrappy = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-inflight-once = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-inflight-wrappy = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-inflight = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-inherits = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-minimatch-brace-expansion-balanced-match = "MIT"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-minimatch-brace-expansion-concat-map = "MIT"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-minimatch-brace-expansion = "MIT"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-minimatch = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-once-wrappy = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-once = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob-path-is-absolute = "MIT"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf-glob = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream-rimraf = "ISC"
		LICENSE_${PN}-electron-updater-unzip-fstream = "BSD"
		LICENSE_${PN}-electron-updater-unzip-match-stream-buffers = "Unknown"
		LICENSE_${PN}-electron-updater-unzip-match-stream-readable-stream-core-util-is = "MIT"
		LICENSE_${PN}-electron-updater-unzip-match-stream-readable-stream-inherits = "ISC"
		LICENSE_${PN}-electron-updater-unzip-match-stream-readable-stream-isarray = "MIT"
		LICENSE_${PN}-electron-updater-unzip-match-stream-readable-stream-string-decoder = "MIT"
		LICENSE_${PN}-electron-updater-unzip-match-stream-readable-stream = "MIT"
		LICENSE_${PN}-electron-updater-unzip-match-stream = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-over = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-readable-stream-core-util-is = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-readable-stream-inherits = "ISC"
		LICENSE_${PN}-electron-updater-unzip-pullstream-readable-stream-isarray = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-readable-stream-string-decoder = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-readable-stream = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-setimmediate = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-slice-stream-readable-stream-core-util-is = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-slice-stream-readable-stream-inherits = "ISC"
		LICENSE_${PN}-electron-updater-unzip-pullstream-slice-stream-readable-stream-isarray = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-slice-stream-readable-stream-string-decoder = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-slice-stream-readable-stream = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream-slice-stream = "MIT"
		LICENSE_${PN}-electron-updater-unzip-pullstream = "MIT"
		LICENSE_${PN}-electron-updater-unzip-readable-stream-core-util-is = "MIT"
		LICENSE_${PN}-electron-updater-unzip-readable-stream-inherits = "ISC"
		LICENSE_${PN}-electron-updater-unzip-readable-stream-isarray = "MIT"
		LICENSE_${PN}-electron-updater-unzip-readable-stream-string-decoder = "MIT"
		LICENSE_${PN}-electron-updater-unzip-readable-stream = "MIT"
		LICENSE_${PN}-electron-updater-unzip-setimmediate = "MIT"
		LICENSE_${PN}-electron-updater-unzip = "MIT"
		LICENSE_${PN}-electron-updater = "MIT"
		LICENSE_${PN} = "Unknown MIT"

	$ bitbake electron-quick-start
	$ tree -L 6 tmp-glibc/work/i586-oe-linux/electron-quick-start/1.0.0-r0/packages-split/electron-quick-start
	tmp-glibc/work/i586-oe-linux/electron-quick-start/1.0.0-r0/packages-split/electron-quick-start
	└── usr
	    └── lib
		└── node_modules
		    └── electron-quick-start
			├── electron-quick-start-1.0.0.tgz
			├── index.html
			├── LICENSE.md
			├── main.js
			├── package.json
			├── README.md
			└── Squirrel.Mac
			    ├── Cartfile
			    ├── Cartfile.private
			    ├── Cartfile.resolved
			    ├── Carthage
			    ├── External
			    ├── LICENSE
			    ├── README.md
			    ├── script
			    ├── Squirrel
			    ├── SquirrelTests
			    ├── Squirrel.xcodeproj
			    ├── TestApplication
			    └── TestService


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: npm thoughts
  2017-02-28  4:50 npm thoughts Trevor Woerner
@ 2017-02-28 16:56 ` Trevor Woerner
  2017-02-28 18:00 ` Trevor Woerner
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Trevor Woerner @ 2017-02-28 16:56 UTC (permalink / raw)
  To: openembedded-core

My first thought is that "devtool add ..." shouldn't act differently depending
on whether it is pointed at a checkout of the code or whether it is pointed at
the code's npm repository.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: npm thoughts
  2017-02-28  4:50 npm thoughts Trevor Woerner
  2017-02-28 16:56 ` Trevor Woerner
@ 2017-02-28 18:00 ` Trevor Woerner
  2017-03-03 10:26   ` Josef Holzmayr
  2017-03-06  7:24   ` Anders Darander
  2017-02-28 18:19 ` Trevor Woerner
  2017-03-03 10:45 ` Josef Holzmayr
  3 siblings, 2 replies; 8+ messages in thread
From: Trevor Woerner @ 2017-02-28 18:00 UTC (permalink / raw)
  To: openembedded-core

Ideally "devtool add ..." wouldn't choke and crash when it encounters a
LICENSE string it doesn't understand. When parsing license strings from random
places on The Internet it's inevitable odd things will come up :-)


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: npm thoughts
  2017-02-28  4:50 npm thoughts Trevor Woerner
  2017-02-28 16:56 ` Trevor Woerner
  2017-02-28 18:00 ` Trevor Woerner
@ 2017-02-28 18:19 ` Trevor Woerner
  2017-03-03 10:45 ` Josef Holzmayr
  3 siblings, 0 replies; 8+ messages in thread
From: Trevor Woerner @ 2017-02-28 18:19 UTC (permalink / raw)
  To: openembedded-core

In face-to-face conversations there was an expressed opinion that it would be
great if npm had a "--dry-run" -type option to list off the dependencies of a
package.json file.

As it turns out, it does!

	$ npm install --dry-run
	electron-quick-start@1.0.0 /z/npm/source/electron-quick-start.git
	└─┬ electron@1.4.15 
	  ├─┬ electron-download@3.3.0 
	  │ ├─┬ debug@2.6.1 
	  │ │ └── ms@0.7.2 
	  │ ├─┬ fs-extra@0.30.0 
	  │ │ ├── graceful-fs@4.1.11 
	  │ │ ├── jsonfile@2.4.0 
	  │ │ ├── klaw@1.3.1 
	  │ │ ├── path-is-absolute@1.0.1 
	  │ │ └─┬ rimraf@2.6.1 
	  │ │   └─┬ glob@7.1.1 
	  │ │     ├── fs.realpath@1.0.0 
	  │ │     ├─┬ inflight@1.0.6 
	  │ │     │ └── wrappy@1.0.2 
	  │ │     ├─┬ minimatch@3.0.3 
	  │ │     │ └─┬ brace-expansion@1.1.6 
	  │ │     │   ├── balanced-match@0.4.2 
	  │ │     │   └── concat-map@0.0.1 
	  │ │     └── once@1.4.0 
	  │ ├── home-path@1.0.3 
	  │ ├── minimist@1.2.0 
	  │ ├─┬ nugget@2.0.1 
	  │ │ ├─┬ pretty-bytes@1.0.4 
	  │ │ │ ├── get-stdin@4.0.1 
	  │ │ │ └─┬ meow@3.7.0 
	  │ │ │   ├─┬ camelcase-keys@2.1.0 
	  │ │ │   │ └── camelcase@2.1.1 
	  │ │ │   ├── decamelize@1.2.0 
	  │ │ │   ├─┬ loud-rejection@1.6.0 
	  │ │ │   │ ├─┬ currently-unhandled@0.4.1 
	  │ │ │   │ │ └── array-find-index@1.0.2 
	  │ │ │   │ └── signal-exit@3.0.2 
	  │ │ │   ├── map-obj@1.0.1 
	  │ │ │   ├─┬ normalize-package-data@2.3.5 
	  │ │ │   │ ├── hosted-git-info@2.2.0 
	  │ │ │   │ ├─┬ is-builtin-module@1.0.0 
	  │ │ │   │ │ └── builtin-modules@1.1.1 
	  │ │ │   │ └─┬ validate-npm-package-license@3.0.1 
	  │ │ │   │   ├─┬ spdx-correct@1.0.2 
	  │ │ │   │   │ └── spdx-license-ids@1.2.2 
	  │ │ │   │   └── spdx-expression-parse@1.0.4 
	  │ │ │   ├── object-assign@4.1.1 
	  │ │ │   ├─┬ read-pkg-up@1.0.1 
	  │ │ │   │ ├── find-up@1.1.2 
	  │ │ │   │ └─┬ read-pkg@1.1.0 
	  │ │ │   │   ├─┬ load-json-file@1.1.0 
	  │ │ │   │   │ ├─┬ parse-json@2.2.0 
	  │ │ │   │   │ │ └─┬ error-ex@1.3.0 
	  │ │ │   │   │ │   └── is-arrayish@0.2.1 
	  │ │ │   │   │ ├── pify@2.3.0 
	  │ │ │   │   │ └─┬ strip-bom@2.0.0 
	  │ │ │   │   │   └── is-utf8@0.2.1 
	  │ │ │   │   └── path-type@1.1.0 
	  │ │ │   ├─┬ redent@1.0.0 
	  │ │ │   │ ├─┬ indent-string@2.1.0 
	  │ │ │   │ │ └─┬ repeating@2.0.1 
	  │ │ │   │ │   └── is-finite@1.0.2 
	  │ │ │   │ └── strip-indent@1.0.1 
	  │ │ │   └── trim-newlines@1.0.0 
	  │ │ ├─┬ progress-stream@1.2.0 
	  │ │ │ ├── speedometer@0.1.4 
	  │ │ │ └─┬ through2@0.2.3 
	  │ │ │   ├─┬ readable-stream@1.1.14 
	  │ │ │   │ └── isarray@0.0.1 
	  │ │ │   └─┬ xtend@2.1.2 
	  │ │ │     └── object-keys@0.4.0 
	  │ │ ├─┬ request@2.79.0 
	  │ │ │ ├── aws-sign2@0.6.0 
	  │ │ │ ├── aws4@1.6.0 
	  │ │ │ ├── caseless@0.11.0 
	  │ │ │ ├─┬ combined-stream@1.0.5 
	  │ │ │ │ └── delayed-stream@1.0.0 
	  │ │ │ ├── extend@3.0.0 
	  │ │ │ ├── forever-agent@0.6.1 
	  │ │ │ ├─┬ form-data@2.1.2 
	  │ │ │ │ └── asynckit@0.4.0 
	  │ │ │ ├─┬ har-validator@2.0.6 
	  │ │ │ │ ├─┬ chalk@1.1.3 
	  │ │ │ │ │ ├── ansi-styles@2.2.1 
	  │ │ │ │ │ ├── escape-string-regexp@1.0.5 
	  │ │ │ │ │ ├── has-ansi@2.0.0 
	  │ │ │ │ │ └── supports-color@2.0.0 
	  │ │ │ │ ├─┬ commander@2.9.0 
	  │ │ │ │ │ └── graceful-readlink@1.0.1 
	  │ │ │ │ └─┬ is-my-json-valid@2.16.0 
	  │ │ │ │   ├── generate-function@2.0.0 
	  │ │ │ │   ├─┬ generate-object-property@1.2.0 
	  │ │ │ │   │ └── is-property@1.0.2 
	  │ │ │ │   ├── jsonpointer@4.0.1 
	  │ │ │ │   └── xtend@4.0.1 
	  │ │ │ ├─┬ hawk@3.1.3 
	  │ │ │ │ ├── boom@2.10.1 
	  │ │ │ │ ├── cryptiles@2.0.5 
	  │ │ │ │ ├── hoek@2.16.3 
	  │ │ │ │ └── sntp@1.0.9 
	  │ │ │ ├─┬ http-signature@1.1.1 
	  │ │ │ │ ├── assert-plus@0.2.0 
	  │ │ │ │ ├─┬ jsprim@1.3.1 
	  │ │ │ │ │ ├── extsprintf@1.0.2 
	  │ │ │ │ │ ├── json-schema@0.2.3 
	  │ │ │ │ │ └── verror@1.3.6 
	  │ │ │ │ └─┬ sshpk@1.10.2 
	  │ │ │ │   ├── asn1@0.2.3 
	  │ │ │ │   ├── assert-plus@1.0.0 
	  │ │ │ │   ├── bcrypt-pbkdf@1.0.1 
	  │ │ │ │   ├─┬ dashdash@1.14.1 
	  │ │ │ │   │ └── assert-plus@1.0.0 
	  │ │ │ │   ├── ecc-jsbn@0.1.1 
	  │ │ │ │   ├─┬ getpass@0.1.6 
	  │ │ │ │   │ └── assert-plus@1.0.0 
	  │ │ │ │   ├── jodid25519@1.0.2 
	  │ │ │ │   ├── jsbn@0.1.1 
	  │ │ │ │   └── tweetnacl@0.14.5 
	  │ │ │ ├── is-typedarray@1.0.0 
	  │ │ │ ├── isstream@0.1.2 
	  │ │ │ ├── json-stringify-safe@5.0.1 
	  │ │ │ ├─┬ mime-types@2.1.14 
	  │ │ │ │ └── mime-db@1.26.0 
	  │ │ │ ├── oauth-sign@0.8.2 
	  │ │ │ ├── qs@6.3.1 
	  │ │ │ ├── stringstream@0.0.5 
	  │ │ │ ├─┬ tough-cookie@2.3.2 
	  │ │ │ │ └── punycode@1.4.1 
	  │ │ │ ├── tunnel-agent@0.4.3 
	  │ │ │ └── uuid@3.0.1 
	  │ │ ├─┬ single-line-log@1.1.2 
	  │ │ │ └─┬ string-width@1.0.2 
	  │ │ │   ├── code-point-at@1.1.0 
	  │ │ │   ├─┬ is-fullwidth-code-point@1.0.0 
	  │ │ │   │ └── number-is-nan@1.0.1 
	  │ │ │   └─┬ strip-ansi@3.0.1 
	  │ │ │     └── ansi-regex@2.1.1 
	  │ │ └── throttleit@0.0.2 
	  │ ├─┬ path-exists@2.1.0 
	  │ │ └─┬ pinkie-promise@2.0.1 
	  │ │   └── pinkie@2.0.4 
	  │ ├─┬ rc@1.1.7 
	  │ │ ├── deep-extend@0.4.1 
	  │ │ ├── ini@1.3.4 
	  │ │ └── strip-json-comments@2.0.1 
	  │ ├── semver@5.3.0 
	  │ └─┬ sumchecker@1.3.0 
	  │   └── es6-promise@4.0.5 
	  └─┬ extract-zip@1.6.0 
	    ├─┬ concat-stream@1.5.0 
	    │ ├── inherits@2.0.3 
	    │ ├─┬ readable-stream@2.0.6 
	    │ │ ├── core-util-is@1.0.2 
	    │ │ ├── isarray@1.0.0 
	    │ │ ├── process-nextick-args@1.0.7 
	    │ │ ├── string_decoder@0.10.31 
	    │ │ └── util-deprecate@1.0.2 
	    │ └── typedarray@0.0.6 
	    ├── debug@0.7.4 
	    ├─┬ mkdirp@0.5.0 
	    │ └── minimist@0.0.8 
	    └─┬ yauzl@2.4.1 
	      └─┬ fd-slicer@1.0.1 
		└── pend@1.2.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: npm thoughts
  2017-02-28 18:00 ` Trevor Woerner
@ 2017-03-03 10:26   ` Josef Holzmayr
  2017-03-06  7:24   ` Anders Darander
  1 sibling, 0 replies; 8+ messages in thread
From: Josef Holzmayr @ 2017-03-03 10:26 UTC (permalink / raw)
  To: openembedded-core

Hi Trevor,

On 28.02.2017 19:00, Trevor Woerner wrote:
> Ideally "devtool add ..." wouldn't choke and crash when it encounters a
> LICENSE string it doesn't understand. When parsing license strings from random
> places on The Internet it's inevitable odd things will come up :-)

Yeah, it even seems to get very upset for rather non-obscure things like 
lodash or redux. I ran into that too and will try to have a look.

Greetz
-- 
Josef Holzmayr
Software Developer Embedded Systems

Tel: +49 8444 9204-48
Fax: +49 8444 9204-50

R-S-I Elektrotechnik GmbH & Co. KG
Woelkestrasse 11
D-85301 Schweitenkirchen
www.rsi-elektrotechnik.de
———————————————
Amtsgericht Ingolstadt – GmbH: HRB 191328 – KG: HRA 170393
Geschäftsführer: Dr.-Ing. Michael Sorg, Dipl.-Ing. Franz Sorg
Ust-IdNr: DE 128592548

_____________________________________________________________
Amtsgericht Ingolstadt - GmbH: HRB 191328 - KG: HRA 170363
Geschäftsführer: Dr.-Ing. Michael Sorg, Dipl.-Ing. Franz Sorg
USt-IdNr.: DE 128592548



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: npm thoughts
  2017-02-28  4:50 npm thoughts Trevor Woerner
                   ` (2 preceding siblings ...)
  2017-02-28 18:19 ` Trevor Woerner
@ 2017-03-03 10:45 ` Josef Holzmayr
  2017-03-03 10:57   ` Alexander Kanavin
  3 siblings, 1 reply; 8+ messages in thread
From: Josef Holzmayr @ 2017-03-03 10:45 UTC (permalink / raw)
  To: Trevor Woerner, openembedded-core

Additional packaging/dependency thoughts:

Using the devtool mechanism to create a recipe basically packs up all 
dependencies. While this is a relatively easy solution to make sure that 
the resulting package is functional, I can see some issues:
- Dependency tracking via bitbake is virtually nonexistent. How would 
one package a npm thing to use other, already packaged dependencies?
- I see problems in the reproductibility of the builds when relying on 
npmjs as upstream server. Packages come and go there sometimes. Is there 
a way to redirect dependencies to a custom hosted mirror?
- Given the current situation, the best practise seems to be to have 
package.json take care of the needed modules, and have it handle that. 
Means in my opinion that there should be as little npm-based stuff 
installed as possible. Exactly one, in the optimal case. Downside: this 
means a second dependency tracking is layered under bitbake. No good 
that sounds....

my $.02
-- 
Josef Holzmayr
Software Developer Embedded Systems

Tel: +49 8444 9204-48
Fax: +49 8444 9204-50

R-S-I Elektrotechnik GmbH & Co. KG
Woelkestrasse 11
D-85301 Schweitenkirchen
www.rsi-elektrotechnik.de
———————————————
Amtsgericht Ingolstadt – GmbH: HRB 191328 – KG: HRA 170393
Geschäftsführer: Dr.-Ing. Michael Sorg, Dipl.-Ing. Franz Sorg
Ust-IdNr: DE 128592548

_____________________________________________________________
Amtsgericht Ingolstadt - GmbH: HRB 191328 - KG: HRA 170363
Geschäftsführer: Dr.-Ing. Michael Sorg, Dipl.-Ing. Franz Sorg
USt-IdNr.: DE 128592548



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: npm thoughts
  2017-03-03 10:45 ` Josef Holzmayr
@ 2017-03-03 10:57   ` Alexander Kanavin
  0 siblings, 0 replies; 8+ messages in thread
From: Alexander Kanavin @ 2017-03-03 10:57 UTC (permalink / raw)
  To: openembedded-core

On 03/03/2017 12:45 PM, Josef Holzmayr wrote:
> - Given the current situation, the best practise seems to be to have
> package.json take care of the needed modules, and have it handle that.
> Means in my opinion that there should be as little npm-based stuff
> installed as possible. Exactly one, in the optimal case. Downside: this
> means a second dependency tracking is layered under bitbake. No good
> that sounds....

I've been looking into this for the past few days. Unfortunately, it 
looks like we do need a generic, extensible mechanism for dealing with 
the likes of npm, cargo (i.e. rust), and 'go get' and similar things.

I've just set up a minimal MEAN project on my machine, and npm pulled in 
1087 dependencies just so it could run. This is not 'wrong', it's simply 
where the world of software development is heading. It's just so much 
nicer to get a project started and running this way, than the old way of 
writing Makefiles and installing development dependencies by hand into 
the system. But it does create a headache for distributions, and those 
who need reproducible builds.

I'll write down my ideas (and maybe even a design proposal!) in a few 
days about this.

Alex



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: npm thoughts
  2017-02-28 18:00 ` Trevor Woerner
  2017-03-03 10:26   ` Josef Holzmayr
@ 2017-03-06  7:24   ` Anders Darander
  1 sibling, 0 replies; 8+ messages in thread
From: Anders Darander @ 2017-03-06  7:24 UTC (permalink / raw)
  To: openembedded-core

* Trevor Woerner <twoerner@gmail.com> [170228 19:01]:

> Ideally "devtool add ..." wouldn't choke and crash when it encounters a
> LICENSE string it doesn't understand. When parsing license strings from random
> places on The Internet it's inevitable odd things will come up :-)

I recently also stumbled upon this. I've got patch series out, that
improves the situation for all the cases *I* stumbled upon. 

Cheers,
Anders

-- 
Anders Darander, Senior System Architect
ChargeStorm AB / eStorm AB


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-03-06  7:25 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-28  4:50 npm thoughts Trevor Woerner
2017-02-28 16:56 ` Trevor Woerner
2017-02-28 18:00 ` Trevor Woerner
2017-03-03 10:26   ` Josef Holzmayr
2017-03-06  7:24   ` Anders Darander
2017-02-28 18:19 ` Trevor Woerner
2017-03-03 10:45 ` Josef Holzmayr
2017-03-03 10:57   ` Alexander Kanavin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.