Re: git: 46ce086c7130 - main - Mk/Uses: default version for nodejs
Date: Sun, 14 Nov 2021 17:00:46 UTC
On Fri, Nov 12, 2021 at 1:55 PM Matthias Fechner <mfechner@freebsd.org> wrote: > The branch main has been updated by mfechner: > > URL: > https://cgit.FreeBSD.org/ports/commit/?id=46ce086c7130aedb8b349864afaf938489d070de > > commit 46ce086c7130aedb8b349864afaf938489d070de > Author: Matthias Fechner <mfechner@FreeBSD.org> > AuthorDate: 2021-11-01 21:38:08 +0000 > Commit: Matthias Fechner <mfechner@FreeBSD.org> > CommitDate: 2021-11-12 05:54:51 +0000 > > Mk/Uses: default version for nodejs > > If a port depends on node, a simple: > USES= nodejs > can be added. It is also possible to define a specific version: > USES= nodejs:14 > Use as current version the latest LTS version of node. > PR: 259783 > Differential Revision: https://reviews.freebsd.org/D32790 Please revert the nodejs change. It is not approved. It should be committed after being accepted by all parties. As I mentioned in the review, I disagreed with the change of the default from www/node to www/node16. Please do not change the world solely to fit gitlab's needs. Thanks! > > --- > Mk/Uses/nodejs.mk | 60 > ++++++++++++++++++++++++++++++++++++++++++++++ > Mk/bsd.default-versions.mk | 5 +++- > UPDATING | 19 +++++++++++++++ > 3 files changed, 83 insertions(+), 1 deletion(-) > > diff --git a/Mk/Uses/nodejs.mk b/Mk/Uses/nodejs.mk > new file mode 100644 > index 000000000000..af38aba78e55 > --- /dev/null > +++ b/Mk/Uses/nodejs.mk > @@ -0,0 +1,60 @@ > +# Provide support for NodeJS > +# > +# Feature: nodejs > +# Usage: USES=nodejs or USES=nodejs:args > +# Valid ARGS: build and/or run <version> > +# version: lts, current, 10, 14, 16, 17 > +# Default is: build,run > +# Note: if you define a version, you must provide > run and/or build > +# > +# MAINTAINER: bhughes@FreeBSD.org > + > +.if !defined(_INCLUDE_USES_NODEJS_MK) > +_INCLUDE_USES_NODEJS_MK= yes > + > +_VALID_NODEJS_VERSION= 10 14 16 17 lts current > +_NODEJS_VERSION_SUFFIX= ${NODEJS_DEFAULT} > + > +.if ! ${_VALID_NODEJS_VERSION:M${_NODEJS_VERSION_SUFFIX}} > +IGNORE= Invalid nodejs default version ${_NODEJS_VERSION_SUFFIX}; > valid versions are ${_VALID_NODEJS_VERSION} > +.endif > + > +.if empty(nodejs_ARGS) > +nodejs_ARGS= build,run > +.endif > + > +. if ${nodejs_ARGS:M10} > +_NODEJS_VERSION_SUFFIX= 10 > +. elif ${nodejs_ARGS:M14} > +_NODEJS_VERSION_SUFFIX= 14 > +. elif ${nodejs_ARGS:M16} > +_NODEJS_VERSION_SUFFIX= 16 > +. elif ${nodejs_ARGS:Mlts} > +_NODEJS_VERSION_SUFFIX= lts > +. elif ${nodejs_ARGS:M17} > +_NODEJS_VERSION_SUFFIX= 17 > +. elif ${nodejs_ARGS:Mcurrent} > +_NODEJS_VERSION_SUFFIX= current > +. elif defined(NODEJS_DEFAULT) > +. endif > + > +# The nodejs 17 version is named www/node > +. if ${_NODEJS_VERSION_SUFFIX:Mcurrent} > +_NODEJS_VERSION_SUFFIX= > +. endif > +. if ${_NODEJS_VERSION_SUFFIX:M17} > +_NODEJS_VERSION_SUFFIX= > +. endif > +# The nodejs LTS is version 16 > +. if ${_NODEJS_VERSION_SUFFIX:Mlts} > +_NODEJS_VERSION_SUFFIX= 16 > +. endif > + > +. if ${nodejs_ARGS:M*run*} > +RUN_DEPENDS+= node:www/node${_NODEJS_VERSION_SUFFIX} > +. endif > +. if ${nodejs_ARGS:M*build*} > +BUILD_DEPENDS+= node:www/node${_NODEJS_VERSION_SUFFIX} > +. endif > + > +.endif > diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk > index 1dff8bce1d94..1ee4c9715269 100644 > --- a/Mk/bsd.default-versions.mk > +++ b/Mk/bsd.default-versions.mk > @@ -18,7 +18,7 @@ _INCLUDE_BSD_DEFAULT_VERSIONS_MK= yes > LOCALBASE?= /usr/local > > .for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC > GHOSTSCRIPT GL \ > - IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM LUA MYSQL NINJA PERL5 > \ > + IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM LUA MYSQL NINJA > NODEJS PERL5 \ > PGSQL PHP PYTHON PYTHON2 PYTHON3 RUBY RUST SAMBA SSL TCLTK VARNISH > .if defined(${lang}_DEFAULT) > ERROR+= "The variable ${lang}_DEFAULT is set and it should only be > defined through DEFAULT_VERSIONS+=${lang:tl}=${${lang}_DEFAULT} in > /etc/make.conf" > @@ -163,4 +163,7 @@ TCLTK_DEFAULT?= 8.6 > # Possible values: 4, 6 > VARNISH_DEFAULT?= 4 > > +# Possible value: 10, 14, 16, 17, lts, current > +NODEJS_DEFAULT?= lts > + > .endif > diff --git a/UPDATING b/UPDATING > index 05a642f7f68a..d61e9a51b65c 100644 > --- a/UPDATING > +++ b/UPDATING > @@ -5,6 +5,25 @@ they are unavoidable. > You should get into the habit of checking this file for changes each time > you update your ports collection, before attempting any port upgrades. > > +20211110: > + AFFECTS: users of www/node*, www/npm*, www/yarn* > + AUTHOR: mfechner@FreeBSD.org > + > + The port framework was updated to use a default version for nodejs. > + The default version is pointing to the latest LTS version which is > + currently version 16. > + You can overwrite this by defining in /etc/make.conf, e.g. version 17: > + DEFAULT_VERSIONS=nodejs=17 > + > + Or if you would like to stick always to the current version use: > + DEFAULT_VERSIONS=nodejs=current > + > + If you would like to use yarn or npm together with nodejs version 17, > + just install the package that is pulling the wanted dependency to > nodejs: > + > + # pkg install yarn-node17 > + # pkg install npm-node17 > + > 20211109: > AFFECTS: users of security/libressl > AUTHOR: brnrd@FreeBSD.org >