CCing Michael from the node.js upstream to share his opinion on this idea
as well.

Honza

On Tue, Jul 11, 2023 at 5:17 PM Honza Horak <[email protected]> wrote:

> The current implementation of alternative nodejs versions in a single
> Fedora (say 38), is this:
> * the main version (v18 in F38) ships /usr/bin/node
> * alternative versions ship only /usr/bin/node-XX
>
> Node modules packaged as RPM (e.g. nodejs-nodemon) then often include this
> hard dependency: Requires: /usr/bin/node
>
> Suppose I want to install only the alternative (non-default) version of
> node and install a module nodejs-nodemon (that can run fine with any nodejs
> version). I cannot do this at this point, because the nodejs-nodemon pulls
> in the default node as a dependency.
>
> New proposal: use a concept that has proofed to work for ruby for longer
> time (except it's used for alternative implementations, rather than
> alternative versions, but the logic is similar) -- rubypick package ships
> /usr/bin/ruby that is actually a simple shell script. This script executes
> a particular binary of ruby based on a reasonable defaults, explicit
> parameters of environment variables.
>
> How it would work for node:
> The default nodejs version would ship a new sub-package called "nodepick",
> which would only ship a couple of shell scripts: /usr/bin/node,
> /usr/bin/npm, etc.. All nodejs versions (including the default one) would
> only ship versioned binaries /usr/bin/node-XX. The shell scripts would
> execute a particular versioned binary based on some reasonable logic
> (environment variables, default, available version)...
>
> From the RPM metadata perspective:
> There would need to be some soft dependency from nodepick -> node-XX, with
> priority for the default version (dnf honours priority by Suggests I
> think), and a hard dependency of each of the nodejs-XX -> nodepick.
>
> Thoughts?
>
> Honza
>
_______________________________________________
nodejs mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to