Unless I interpret it wrong, you're saying that we actually need some flexibility in what /usr/bin/node means, which is the same thing I'm saying. Of course, the implementation of how to achieve this might change.

Honza

On Wed, Jul 12, 2023 at 4:34 PM Michael Dawson <midawson@redhat.com> wrote:
My concern is the customer use case. They have installed a third party application which will be expecting to use the name "node" versus one that is tied to the version.  We want them to be able to easily use versions which are not the default because the default Node.js for a RHEL release will be EOL long before the version of RHEL is.  

On Wed, Jul 12, 2023 at 3:42 AM Honza Horak <hhorak@redhat.com> wrote:
Sure. My current use case is preparing a nodejs v20 container image similar to previous versions at [1]. I want to use the latest stable fedora and explicitly want only nodejs v20 in the container (which is not the default one in F38).

I also want to install nodejs-nodemon into the container to make the feature set to be on pair with previous versions, but that ends up with pulling nodejs 18 (the default) as well, because of the dependency on /usr/bin/node.

Having different versions of packages like nodejs-nodemon in Fedora repos does not seem to be technically needed, one RPM build seems to be fine for more nodejs versions. I believe we did it the same in previous design with modules -- we only installed nodejs and npm from the module, but had nodejs-nodemon available in the repos in a single instance and it worked fine with all nodejs versions.

Does that make more sense now? Maybe I'm trying to solve it too complicated, feel free to suggest any other solution.

[1] https://github.com/sclorg/s2i-nodejs-container/

Honza

On Tue, Jul 11, 2023 at 7:27 PM Stephen Gallagher <sgallagh@redhat.com> wrote:
On Tue, Jul 11, 2023 at 11:19 AM Honza Horak <hhorak@redhat.com> 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.

I think you need to be more explicit about why you want to only
install a non-default version AND run this tool. This is very much
part of the design: applications packaged in Fedora RPMs are not
expected to be runnable against an arbitrary Node binary. They specify
the one they are known to work with explicitly through package
dependencies.

What is the use-case you're actually trying to solve?
_______________________________________________
nodejs mailing list -- nodejs@lists.fedoraproject.org
To unsubscribe send an email to nodejs-leave@lists.fedoraproject.org
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/nodejs@lists.fedoraproject.org
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
_______________________________________________
nodejs mailing list -- nodejs@lists.fedoraproject.org
To unsubscribe send an email to nodejs-leave@lists.fedoraproject.org
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/nodejs@lists.fedoraproject.org
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
_______________________________________________
nodejs mailing list -- nodejs@lists.fedoraproject.org
To unsubscribe send an email to nodejs-leave@lists.fedoraproject.org
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/nodejs@lists.fedoraproject.org
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue