On 06/29/2016 02:09 AM, Tom Hughes wrote:
On 29/06/16 06:39, Zuzana Svetlikova wrote:
> Is that fixable somehow? There are already multiple bugs filled on this issue.
Only by retiring npm in F24 I think, which I don't believe is possible now it
has been released.
Of course if anybody at all had replied when I raised this then me might have
been able to do something...
For now I suggest adding it to the "common bugs" page.
Tom
> ----- Original Message -----
> From: "Tom Hughes" <tom(a)compton.nu>
> To: "Node.js on Fedora" <nodejs(a)lists.fedoraproject.org>
> Sent: Friday, June 10, 2016 3:33:15 PM
> Subject: Re: F24 and npm
>
> On 10/06/16 14:12, Tom Hughes wrote:
>
>> I'm not sure what happens if you update with dnf system-upgrade but if
>> you have both nodejs and npm installed and try and distro-sync to F24
>> then you will fail with:
>
> I've tried system-upgrade and it fails in the same way.
>
> The good news is that --allowerasing, which is suggested by
> system-upgrade when it fails, works with both distro-sync and
> system-upgrade and appears to do the right thing in allowing nodejs to
> replace npm.
>
> Tom
>
Sorry, Tom. I didn't see this until right now. It's strange, because I *did* go
through the process of retiring in F24, I thought.
I suspect the problem may actually be the virtual 'Provides: npm(npm)' since we
had to drop the epoch on that for other reasons. Since that virtual Provides
went backwards and other packages in the transaction have explicit "Requires:
npm(npm) >= something" in them, DNF is trying to pull in the package that
satisfies the highest version of that virtual dependency available.
So you're right, we should have retired it (and I *swear* that I did, but it
never happened). At this point, we have three choices:
1) Hope that the NPM bundled in Node.js eventually updates past 3.5.4 (unlikely).
2) Figure out how to fix the automatic dependency generation so that it's aware
and tolerant of epochs.
3) Drop the bundled NPM from Node.js in F24 only, create an updated NPM package
(bundled, to avoid the dependency nightmare) providing the version we're going
to have in Fedora 25 (and tracking it).
I think 3) is the best choice. People will get newer NPM features (and NPM is
backwards-compatible), and it still lets us kill off the separate NPM package in
F25.