On Tue, May 2, 2023 at 5:24 AM Iñaki Ucar <iucar(a)fedoraproject.org> wrote:
On Tue, 4 Apr 2023 at 16:23, Stephen Gallagher <sgallagh(a)redhat.com> wrote:
>
> On Tue, Apr 4, 2023 at 9:45 AM Sérgio Basto <sergio(a)serjux.com> wrote:
> >
> > On Thu, 2023-03-16 at 11:19 -0400, Stephen Gallagher wrote:
> > > On Wed, Mar 15, 2023 at 1:16 PM Jerry James <loganjerry(a)gmail.com>
> ...
> > I found a problem related with yarnpkg rpm, the macro % __find_requires
> > finds that yarn scripts uses and needs /usr/bin/node , which is added
> > to the requires of rpm [1] and this makes yarnpkg pull nodejs (18) even
> > when nodejs20 is installed .
> > To avoid this rpm automatic requires, we may add to yarnpkg.spec [2]
> >
> > [2]
> > %global __script_requires %{nil}
> >
> > [1]
> > dnf repoquery yarnpkg --available --requires -q
> > /usr/bin/bash
> > /usr/bin/node
> > /usr/bin/sh
> >
>
> I'm not sure what you think is a bug here? Do you think `yarnpkg`
> should use *any* nodejs version that's installed? The whole point of
> the way this is broken down is that we have a default version (18, in
> this case) with the option to install 16 and 20 in parallel, but you
> have to do extra work if you want to *use* those non-default versions
> (such as patching shebang lines).
This is broken again in rawhide:
$ dnf -qy install yarnpkg
$ ll /usr/bin/node*
lrwxrwxrwx. 1 root root 7 Apr 28 00:00 /usr/bin/node -> node-20
-rwxr-xr-x. 1 root root 28272 Apr 28 00:00 /usr/bin/node-20
lrwxrwxrwx. 1 root root 39 Mar 21 00:00 /usr/bin/nodejs-yarn ->
../lib/node_modules_19/yarn/bin/yarn.js
This is a bug in nodejs-packaging; it should always have been
installing to node_modules_20, but the %nodejs_sitearch variable is
wrong. I'll get that fixed.
If yarn should be pinned to a node version, please rebuild yarn when
there's a major version change. And it would be nice if there's a
mechanism to detect such a breakage. I.e. a nodejs(abi) version or
something like that.
We have exactly that. The version of nodejs(abi) matches the output of
`/usr/bin/node -p process.versions.modules` (which is also the version
suffix of libnode)
That being said, you are correct that it should be rebuilt when we do
a major version change (i.e. 18->20). If yarnpkg had been using
`Requires:
--
Iñaki Úcar