#1 Update to 3.11.1
Opened a year ago by sgallagh. Modified a year ago
rpms/ sgallagh/nodejs-less bundle  into  rawhide

file modified
+7
@@ -1,3 +1,10 @@ 

+ .build*.log

+ *.swp

+ *.tgz

+ *.tar.gz

+ *.src.rpm

+ noarch

+ package

  /less-1.3.3.tgz

  /less-1.4.0.tgz

  /less-1.4.1.tgz

file modified
+45 -16
@@ -1,8 +1,10 @@ 

+ %{bcond_without tests}

+ 

  %{?nodejs_find_provides_and_requires}

  

  Name:           nodejs-less

- Version:        3.10.3

- Release:        3%{?dist}

+ Version:        3.11.1

+ Release:        1%{?dist}

  Summary:        Less.js The dynamic stylesheet language

  

  # cssmin.js is licensed under BSD license
@@ -10,17 +12,24 @@ 

  License:        ASL 2.0 and BSD

  URL:            http://lesscss.org

  Source0:        http://registry.npmjs.org/less/-/less-%{version}.tgz

- Patch0:         nodejs-less-mime2.patch

+ # Generated with ./update_sources.sh (SOURCE100)

+ Source1:        less_%{version}_node_modules_test.tar.gz

+ %global BUILD_NPMS %{SOURCE1}

+ 

+ Source2:        less_%{version}_node_modules_prod.tar.gz

+ %global PROD_NPMS %{SOURCE2}

+ 

+ 

+ # Script to download the latest release and cache the NPMs for prod and test

+ # node_modules

+ Source100:      update-sources.sh

+ 

  BuildArch:      noarch

  ExclusiveArch:  %{nodejs_arches} noarch

  

  BuildRequires:  nodejs-packaging

  

  BuildRequires:  npm(clone)

- BuildRequires:  npm(image-size)

- BuildRequires:  npm(less-plugin-clean-css)

- BuildRequires:  npm(mime)

- BuildRequires:  npm(source-map)

  

  Provides:       lessjs = %{version}-%{release}

  Obsoletes:      lessjs < 1.3.3-2
@@ -34,14 +43,10 @@ 

  

  %prep

  %autosetup -p 1 -n package

- %nodejs_fixdep clone "^1.0.2"

- %nodejs_fixdep --optional --remove errno

- %nodejs_fixdep --optional --remove mkdirp

- %nodejs_fixdep --optional image-size "^0.6.3"

- %nodejs_fixdep --optional promise "^8.0.1"

- %nodejs_fixdep --optional request "^2.67.0"

- %nodejs_fixdep --optional source-map "^0.5.6"

- rm -rf node_modules

+ %nodejs_fixdep --remove clone

+ %nodejs_fixdep --remove tslib

+ 

+ rm -rf node_modules && tar xvf %{BUILD_NPMS}

  

  

  %build
@@ -49,20 +54,29 @@ 

  

  

  %check

- %nodejs_symlink_deps --check --optional

+ %if %{with tests}

  rm test/less/import-module.less

  rm test/css/3rd-party/*.css

  rm test/less/3rd-party/*.less

  %{__nodejs} test

+ %endif

  

  

  %install

  mkdir -p %{buildroot}%{nodejs_sitelib}/less

  cp -pr package.json index.js dist lib %{buildroot}/%{nodejs_sitelib}/less

+ tar -C %{buildroot}%{nodejs_sitelib}/less -xf %{PROD_NPMS}

  mkdir -p %{buildroot}%{nodejs_sitelib}/less/bin

  install -m755 -p bin/lessc %{buildroot}%{nodejs_sitelib}/less/bin

  mkdir -p %{buildroot}%{_bindir}

  ln -s %{nodejs_sitelib}/less/bin/lessc %{buildroot}%{_bindir}

+ 

+ # Do not install any test files to avoid unnecessary automatic dependencies

+ find %{buildroot}/%{nodejs_sitelib}/less -ignore_readdir_race -path "*/test*" -delete

+ 

+ # Drop executable permissions on bundled packages

+ find %{buildroot}/%{nodejs_sitelib}/less/node_modules/ -executable \! -type d -exec chmod -x {} \;

+ 

  %nodejs_symlink_deps

  

  
@@ -73,7 +87,22 @@ 

  %{nodejs_sitelib}/less

  

  

+ %pretrans -p <lua>

+ -- Replace the symlink for nodejs-clone with the bundled copy

+ -- Drop this scriptlet when Fedora 32 is EOL

+ path = "%{nodejs_sitelib}/less/node_modules/clone"

+ st = posix.stat(path)

+ if st and st.type == "link" then

+   os.remove(path)

+ end

+ 

+ 

  %changelog

+ * Tue Apr 28 2020 Stephen Gallagher <sgallagh@redhat.com> - 3.11.1-1

+ - Update to 3.11.1

+ - Bundle most dependencies except npm(clone)

+ - Conditionalize running tests on build

+ 

  * Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.10.3-3

  - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

  

file added
+128
@@ -0,0 +1,128 @@ 

+ #!/bin/bash

+ 

+ # Created by argbash-init v2.8.1

+ # ARG_POSITIONAL_SINGLE([version])

+ # ARG_DEFAULTS_POS()

+ # ARG_HELP([Download and cache all build dependencies for less])

+ # ARGBASH_GO()

+ # needed because of Argbash --> m4_ignore([

+ ### START OF CODE GENERATED BY Argbash v2.8.1 one line above ###

+ # Argbash is a bash code generator used to get arguments parsing right.

+ # Argbash is FREE SOFTWARE, see https://argbash.io for more info

+ 

+ 

+ die()

+ {

+ 	local _ret=$2

+ 	test -n "$_ret" || _ret=1

+ 	test "$_PRINT_HELP" = yes && print_help >&2

+ 	echo "$1" >&2

+ 	exit ${_ret}

+ }

+ 

+ 

+ begins_with_short_option()

+ {

+ 	local first_option all_short_options='h'

+ 	first_option="${1:0:1}"

+ 	test "$all_short_options" = "${all_short_options/$first_option/}" && return 1 || return 0

+ }

+ 

+ # THE DEFAULTS INITIALIZATION - POSITIONALS

+ _positionals=()

+ _arg_version=

+ # THE DEFAULTS INITIALIZATION - OPTIONALS

+ 

+ 

+ print_help()

+ {

+ 	printf '%s\n' "Download and cache all build dependencies for less"

+ 	printf 'Usage: %s [-h|--help] <version>\n' "$0"

+ 	printf '\t%s\n' "-h, --help: Prints help"

+ }

+ 

+ 

+ parse_commandline()

+ {

+ 	_positionals_count=0

+ 	while test $# -gt 0

+ 	do

+ 		_key="$1"

+ 		case "$_key" in

+ 			-h|--help)

+ 				print_help

+ 				exit 0

+ 				;;

+ 			-h*)

+ 				print_help

+ 				exit 0

+ 				;;

+ 			*)

+ 				_last_positional="$1"

+ 				_positionals+=("$_last_positional")

+ 				_positionals_count=$((_positionals_count + 1))

+ 				;;

+ 		esac

+ 		shift

+ 	done

+ }

+ 

+ 

+ handle_passed_args_count()

+ {

+ 	local _required_args_string="'version'"

+ 	test "${_positionals_count}" -ge 1 || _PRINT_HELP=yes die "FATAL ERROR: Not enough positional arguments - we require exactly 1 (namely: $_required_args_string), but got only ${_positionals_count}." 1

+ 	test "${_positionals_count}" -le 1 || _PRINT_HELP=yes die "FATAL ERROR: There were spurious positional arguments --- we expect exactly 1 (namely: $_required_args_string), but got ${_positionals_count} (the last one was: '${_last_positional}')." 1

+ }

+ 

+ 

+ assign_positional_args()

+ {

+ 	local _positional_name _shift_for=$1

+ 	_positional_names="_arg_version "

+ 

+ 	shift "$_shift_for"

+ 	for _positional_name in ${_positional_names}

+ 	do

+ 		test $# -gt 0 || break

+ 		eval "$_positional_name=\${1}" || die "Error during argument parsing, possibly an Argbash bug." 1

+ 		shift

+ 	done

+ }

+ 

+ parse_commandline "$@"

+ handle_passed_args_count

+ assign_positional_args 1 "${_positionals[@]}"

+ 

+ # OTHER STUFF GENERATED BY Argbash

+ 

+ ### END OF CODE GENERATED BY Argbash (sortof) ### ])

+ # [ <-- needed because of Argbash

+ 

+ version=$_arg_version

+ rm -rf package less-$version.tgz less_${version}_node_modules.tar.gz

+ wget http://registry.npmjs.org/less/-/less-${version}.tgz

+ 

+ tar xf less-$version.tgz

+ 

+ pushd package

+ 

+ # We need the plugins for the tests

+ autoprefix_version=$(jq -r '.devDependencies | .["less-plugin-autoprefix"]' package.json)

+ clean_css_version=$(jq -r '.devDependencies | .["less-plugin-clean-css"]' package.json)

+ 

+ npm install --production --no-save

+ 

+ # Delete the bundled clone and use the system copy

+ tar cfz ../less_${version}_node_modules_prod.tar.gz node_modules

+ 

+ npm install less-plugin-autoprefix@${autoprefix_version} \

+             less-plugin-clean-css@${clean_css_version}

+ tar cfz ../less_${version}_node_modules_test.tar.gz node_modules

+ popd

+ 

+ echo fedpkg new-sources less-$version.tgz \

+                         less_${version}_node_modules_prod.tar.gz \

+                         less_${version}_node_modules_test.tar.gz

+ 

+ # ] <-- needed because of Argbash

Bundle most dependencies except npm(clone)
Include the clean-css and autoprefix plugins

Resolves: rhbz#1828899

Signed-off-by: Stephen Gallagher sgallagh@redhat.com

Bundling in plugins doesn't look right.

1 new commit added

  • fixup! Update to 3.11.1
a year ago

Bundling in plugins doesn't look right.

Yeah, you're right. I thought I'd seen them get carried in by npm -g install less and I was trying to be equivalent, but I was mistaken.

I added a fixup patch that reworks how we create the bundled NPMs so we have separate ones for install and for running tests. (since the tests have many more deps than the installed version).

I'll squash them together once reviewed, but I figured it was easier to see the changes this way.

Also, we need to deal with https://pagure.io/nodejs-packaging/pull-request/16 before we build this in Fedora.

Why exclude clone? I know there is a separate request to bundle that but excluding it from the bundling here means we're only half fixing the problems and we we still get breakage when different users of clone disagree on what version they want.

Why exclude clone? I know there is a separate request to bundle that but excluding it from the bundling here means we're only half fixing the problems and we we still get breakage when different users of clone disagree on what version they want.

@tdawson has been doing analysis of package dependencies and determined that nodejs-less and nodejs-clone were responsible for a huge chunk of the Node.js dependency chain in Fedora. He recommended that we keep nodejs-clone unbundled because there are other consumers in the package set that we're dealing with that would cause it to be pulled in anyway.

That said, I don't have a strong opinion on it and I can bundle it here as well if that's preferred.

Why does this still need to use fixdep to remove tslib?

Why add the test conditional? Surely once we are bundling most test issues should vanish so there should be no need to turn them off?

We really need a better way to build the test dependencies. I don't know what the answer is but hard coding them certainly isn't it.

Why does this still need to use fixdep to remove tslib?

Because if it's still there when we call %nodejs_symlink_deps in %install, it throws the error:

ERROR: the path for dependency "tslib" already exists

Why add the test conditional? Surely once we are bundling most test issues should vanish so there should be no need to turn them off?

I found that it was convenient while I was iterating to skip fifteen seconds of tests. But you're right, it's not strictly necessary. I can take it out if that's preferred.

We really need a better way to build the test dependencies. I don't know what the answer is but hard coding them certainly isn't it.

Sorry, I don't really follow what you're asking for here.

The %nodejs_symlink_deps problem goes away, of course, if we go ahead and bundle clone as well, then I'll just drop that macro invocation entirely. So that's probably simplest.

I'm fine with nodejs-clone not being bundled. I thought it would be easier that way (just doing the build dependency bundles.)
If you feel it is best to bundle everything in nodejs-less, then let's do that and close the nodejs-clone bug.

Don't worry too much about making more changes because I'm probably going to write my own version anyway. I'm more interested in the broad architecture than the specifics.

My point about dev dependencies is that you're constructing the test bundle by installing two specific modules - yes you pluck the versions out of package.json but the list of modules to include is hard coded in the script.

Sadly I don't think npm has an equivalent of --production that only installs dev dependencies so it's quite to automatically build an archive of all the dev depenencies.

There's also the problem that I'm not sure it's really safe to unpack one set of modules over the top of another - it might work in this specific case but in general you would probably need to replace the bundle with a test bundle which means lots of duplication in the bundles but I don't have a better plan.

Don't worry too much about making more changes because I'm probably going to write my own version anyway. I'm more interested in the broad architecture than the specifics.
My point about dev dependencies is that you're constructing the test bundle by installing two specific modules - yes you pluck the versions out of package.json but the list of modules to include is hard coded in the script.
Sadly I don't think npm has an equivalent of --production that only installs dev dependencies so it's quite to automatically build an archive of all the dev depenencies.

Well, it does actually. You can use --production=false and it will pull in the devDependencies as well.

The reason I did what I did here is because in this case, --production=false ends up pulling in 143 MiB of dependencies, where just cherry-picking the two plugins keeps it at 3 MiB.

However, if you would prefer I make the _test.tar.gz from the full devdeps, I can.

There's also the problem that I'm not sure it's really safe to unpack one set of modules over the top of another - it might work in this specific case but in general you would probably need to replace the bundle with a test bundle which means lots of duplication in the bundles but I don't have a better plan.

Where do you see the code doing that? In the spec I don't overwrite them. The _test one is extracted to the sourceroot and the _prod one is extracted to the buildroot (for installation). They do have that duplication already.

I was assuming that your test archive was only the extra modules but I see now it's the full thing.

I know you can say --production=false (or just leave it out!) to get everything. My point was about getting only the extra things needed in test but I don't think that makes sense.

I also didn't realise you were extracting directly to the buildroot because that just sounds horrible ;-)

If anything I'd like to run the tests in the buildroot so that we know we're testing what we ship, as discussed in the python thread on devel, but I don't think that's possible with the way the tests are written for most node modules.

Right now I'm struggling to get what your script does working because installing the plugins keeps pulling in all the other devdeps, which includes puppeteer.

I was assuming that your test archive was only the extra modules but I see now it's the full thing.
I know you can say --production=false (or just leave it out!) to get everything.

Well, I prefer to be explicit, since the default can be controlled by an environment variable.

My point was about getting only the extra things needed in test but I don't think that makes sense.
I also didn't realise you were extracting directly to the buildroot because that just sounds horrible ;-)

It is! But it's less horrible than trying to trim out the dev dependencies from the %{buildroot} after running the tests. I don't really want the binary RPM to carry anything it can avoid.

If anything I'd like to run the tests in the buildroot so that we know we're testing what we ship, as discussed in the python thread on devel, but I don't think that's possible with the way the tests are written for most node modules.
Right now I'm struggling to get what your script does working because installing the plugins keeps pulling in all the other devdeps, which includes puppeteer.

1 new commit added

  • fixup! fixup! Update to 3.11.1
a year ago

I made some additional changes (including bundling clone).

However, that seems to have introduced an upgrade issue that should be solved by the %pretrans script I added, but it doesn't. I could use an extra set of eyes on that, please.

Why would clone need special treatment? There are lots of dependencies that are links at the moment and will become directories so surely either they all need that or none do?

Why would clone need special treatment? There are lots of dependencies that are links at the moment and will become directories so surely either they all need that or none do?
@tomh

on nodejs-less-3.10.3-3.fc32.noarch:

➤ rpm -ql nodejs-less
/usr/bin/lessc
/usr/lib/node_modules/less
/usr/lib/node_modules/less/bin
/usr/lib/node_modules/less/bin/lessc
/usr/lib/node_modules/less/dist
/usr/lib/node_modules/less/dist/less.cjs.js
/usr/lib/node_modules/less/dist/less.js
/usr/lib/node_modules/less/dist/less.min.js
/usr/lib/node_modules/less/dist/less.min.js.map
/usr/lib/node_modules/less/index.js
/usr/lib/node_modules/less/lib
/usr/lib/node_modules/less/lib/less
/usr/lib/node_modules/less/lib/less-browser
/usr/lib/node_modules/less/lib/less-browser/add-default-options.js
/usr/lib/node_modules/less/lib/less-browser/bootstrap.js
/usr/lib/node_modules/less/lib/less-browser/browser.js
/usr/lib/node_modules/less/lib/less-browser/cache.js
/usr/lib/node_modules/less/lib/less-browser/error-reporting.js
/usr/lib/node_modules/less/lib/less-browser/file-manager.js
/usr/lib/node_modules/less/lib/less-browser/image-size.js
/usr/lib/node_modules/less/lib/less-browser/index.js
/usr/lib/node_modules/less/lib/less-browser/log-listener.js
/usr/lib/node_modules/less/lib/less-browser/plugin-loader.js
/usr/lib/node_modules/less/lib/less-browser/utils.js
/usr/lib/node_modules/less/lib/less-node
/usr/lib/node_modules/less/lib/less-node/environment.js
/usr/lib/node_modules/less/lib/less-node/file-manager.js
/usr/lib/node_modules/less/lib/less-node/fs.js
/usr/lib/node_modules/less/lib/less-node/image-size.js
/usr/lib/node_modules/less/lib/less-node/index.js
/usr/lib/node_modules/less/lib/less-node/lessc-helper.js
/usr/lib/node_modules/less/lib/less-node/plugin-loader.js
/usr/lib/node_modules/less/lib/less-node/url-file-manager.js
/usr/lib/node_modules/less/lib/less/constants.js
/usr/lib/node_modules/less/lib/less/contexts.js
/usr/lib/node_modules/less/lib/less/data
/usr/lib/node_modules/less/lib/less/data/colors.js
/usr/lib/node_modules/less/lib/less/data/index.js
/usr/lib/node_modules/less/lib/less/data/unit-conversions.js
/usr/lib/node_modules/less/lib/less/default-options.js
/usr/lib/node_modules/less/lib/less/environment
/usr/lib/node_modules/less/lib/less/environment/abstract-file-manager.js
/usr/lib/node_modules/less/lib/less/environment/abstract-plugin-loader.js
/usr/lib/node_modules/less/lib/less/environment/environment-api.js
/usr/lib/node_modules/less/lib/less/environment/environment.js
/usr/lib/node_modules/less/lib/less/environment/file-manager-api.js
/usr/lib/node_modules/less/lib/less/functions
/usr/lib/node_modules/less/lib/less/functions/boolean.js
/usr/lib/node_modules/less/lib/less/functions/color-blending.js
/usr/lib/node_modules/less/lib/less/functions/color.js
/usr/lib/node_modules/less/lib/less/functions/data-uri.js
/usr/lib/node_modules/less/lib/less/functions/default.js
/usr/lib/node_modules/less/lib/less/functions/function-caller.js
/usr/lib/node_modules/less/lib/less/functions/function-registry.js
/usr/lib/node_modules/less/lib/less/functions/index.js
/usr/lib/node_modules/less/lib/less/functions/list.js
/usr/lib/node_modules/less/lib/less/functions/math-helper.js
/usr/lib/node_modules/less/lib/less/functions/math.js
/usr/lib/node_modules/less/lib/less/functions/number.js
/usr/lib/node_modules/less/lib/less/functions/string.js
/usr/lib/node_modules/less/lib/less/functions/svg.js
/usr/lib/node_modules/less/lib/less/functions/types.js
/usr/lib/node_modules/less/lib/less/import-manager.js
/usr/lib/node_modules/less/lib/less/index.js
/usr/lib/node_modules/less/lib/less/less-error.js
/usr/lib/node_modules/less/lib/less/logger.js
/usr/lib/node_modules/less/lib/less/parse-tree.js
/usr/lib/node_modules/less/lib/less/parse.js
/usr/lib/node_modules/less/lib/less/parser
/usr/lib/node_modules/less/lib/less/parser/chunker.js
/usr/lib/node_modules/less/lib/less/parser/parser-input.js
/usr/lib/node_modules/less/lib/less/parser/parser.js
/usr/lib/node_modules/less/lib/less/plugin-manager.js
/usr/lib/node_modules/less/lib/less/render.js
/usr/lib/node_modules/less/lib/less/source-map-builder.js
/usr/lib/node_modules/less/lib/less/source-map-output.js
/usr/lib/node_modules/less/lib/less/transform-tree.js
/usr/lib/node_modules/less/lib/less/tree
/usr/lib/node_modules/less/lib/less/tree/anonymous.js
/usr/lib/node_modules/less/lib/less/tree/assignment.js
/usr/lib/node_modules/less/lib/less/tree/atrule.js
/usr/lib/node_modules/less/lib/less/tree/attribute.js
/usr/lib/node_modules/less/lib/less/tree/call.js
/usr/lib/node_modules/less/lib/less/tree/color.js
/usr/lib/node_modules/less/lib/less/tree/combinator.js
/usr/lib/node_modules/less/lib/less/tree/comment.js
/usr/lib/node_modules/less/lib/less/tree/condition.js
/usr/lib/node_modules/less/lib/less/tree/debug-info.js
/usr/lib/node_modules/less/lib/less/tree/declaration.js
/usr/lib/node_modules/less/lib/less/tree/detached-ruleset.js
/usr/lib/node_modules/less/lib/less/tree/dimension.js
/usr/lib/node_modules/less/lib/less/tree/element.js
/usr/lib/node_modules/less/lib/less/tree/expression.js
/usr/lib/node_modules/less/lib/less/tree/extend.js
/usr/lib/node_modules/less/lib/less/tree/import.js
/usr/lib/node_modules/less/lib/less/tree/index.js
/usr/lib/node_modules/less/lib/less/tree/javascript.js
/usr/lib/node_modules/less/lib/less/tree/js-eval-node.js
/usr/lib/node_modules/less/lib/less/tree/keyword.js
/usr/lib/node_modules/less/lib/less/tree/media.js
/usr/lib/node_modules/less/lib/less/tree/mixin-call.js
/usr/lib/node_modules/less/lib/less/tree/mixin-definition.js
/usr/lib/node_modules/less/lib/less/tree/namespace-value.js
/usr/lib/node_modules/less/lib/less/tree/negative.js
/usr/lib/node_modules/less/lib/less/tree/node.js
/usr/lib/node_modules/less/lib/less/tree/operation.js
/usr/lib/node_modules/less/lib/less/tree/paren.js
/usr/lib/node_modules/less/lib/less/tree/property.js
/usr/lib/node_modules/less/lib/less/tree/quoted.js
/usr/lib/node_modules/less/lib/less/tree/ruleset.js
/usr/lib/node_modules/less/lib/less/tree/selector.js
/usr/lib/node_modules/less/lib/less/tree/unicode-descriptor.js
/usr/lib/node_modules/less/lib/less/tree/unit.js
/usr/lib/node_modules/less/lib/less/tree/url.js
/usr/lib/node_modules/less/lib/less/tree/value.js
/usr/lib/node_modules/less/lib/less/tree/variable-call.js
/usr/lib/node_modules/less/lib/less/tree/variable.js
/usr/lib/node_modules/less/lib/less/utils.js
/usr/lib/node_modules/less/lib/less/visitors
/usr/lib/node_modules/less/lib/less/visitors/extend-visitor.js
/usr/lib/node_modules/less/lib/less/visitors/import-sequencer.js
/usr/lib/node_modules/less/lib/less/visitors/import-visitor.js
/usr/lib/node_modules/less/lib/less/visitors/index.js
/usr/lib/node_modules/less/lib/less/visitors/join-selector-visitor.js
/usr/lib/node_modules/less/lib/less/visitors/set-tree-visibility-visitor.js
/usr/lib/node_modules/less/lib/less/visitors/to-css-visitor.js
/usr/lib/node_modules/less/lib/less/visitors/visitor.js
/usr/lib/node_modules/less/lib/lessc.js
/usr/lib/node_modules/less/lib/source-map
/usr/lib/node_modules/less/lib/source-map/source-map-0.1.31.js
/usr/lib/node_modules/less/lib/source-map/source-map-footer.js
/usr/lib/node_modules/less/lib/source-map/source-map-header.js
/usr/lib/node_modules/less/node_modules
/usr/lib/node_modules/less/node_modules/clone
/usr/lib/node_modules/less/package.json
/usr/share/doc/nodejs-less
/usr/share/doc/nodejs-less/CHANGELOG.md
/usr/share/doc/nodejs-less/CONTRIBUTING.md
/usr/share/doc/nodejs-less/README.md
/usr/share/licenses/nodejs-less
/usr/share/licenses/nodejs-less/LICENSE

The clone package is the only one that is present on the current version. So it's the only one that needs updating.