Bug 28767 - nodejs: v8-devel packaging error
Summary: nodejs: v8-devel packaging error
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 8
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact:
URL:
Whiteboard: MGA8-64-OK
Keywords: advisory, validated_update
Depends on:
Blocks:
 
Reported: 2021-04-12 15:38 CEST by Thomas Backlund
Modified: 2021-04-18 19:26 CEST (History)
4 users (show)

See Also:
Source RPM: nodejs
CVE:
Status comment:


Attachments
Patch to fix nodejs spec files packaging problems (998 bytes, patch)
2021-04-14 21:27 CEST, Mika Laitio
Details | Diff

Description Thomas Backlund 2021-04-12 15:38:05 CEST
nodejs update in: 
http://advisories.mageia.org/MGASA-2021-0092.html

has packaging errors:

Mageia.org/distrib/8/x86_64/media/core/release/v8-devel-8.4.371.19.mga8-10.mga8.x86_64.rpm
Mageia.org/distrib/8/x86_64/media/core/updates/v8-devel-8.4.371.19.mga8-1.mga8.x86_64.rpm


1. note the dual "mga8"
2.  rel got reset to 1, so the one in release is preferred over the updated one.

this causes it to not install properly:
# LANG=C urpmi v8-devel
Some requested packages cannot be installed:
nodejs-14.15.1-3.mga8.x86_64 (due to conflicts with nodejs-14.16.0-1.mga8.x86_64)
nodejs-devel-14.15.1-3.mga8.x86_64 (due to unsatisfied nodejs[== 1:14.15.1-3.mga8])
Comment 1 Nicolas Lécureuil 2021-04-12 15:51:24 CEST
Please test next rpms:

v8_release is now 11


src:
    -  nodejs-14.16.0-2.mga8

Assignee: mageia => qa-bugs

Comment 2 Thomas Backlund 2021-04-12 16:02:00 CEST
What's up with the overuse of mkrel ?

By a quick look I saw atleast:

Provides: v8 = %mkrel %{v8_epoch}:%{v8_version}-%{nodejs_release}
Provides: v8 = %mkrel %{v8_epoch}:%{v8_version}-%{nodejs_release}


Version: %mkrel %{v8_version}
Release: %mkrel %{v8_release}
Comment 3 Thomas Andrews 2021-04-13 01:38:40 CEST
I was able to reproduce the problem in a vbox guest, but confirming the fix wasn't as easy without a proper rpm list.

Tried using "nodejs*" as a search in qarepo, and got these four packages as results:

nodejs-14.16.0-2.mga8.x86_64.rpm
nodejs-devel-14.16.0-2.mga8.x86_64.rpm
nodejs-docs-14.16.0-2.mga8.noarch.rpm
nodejs-libs-14.16.0-2.mga8.x86_64.rpm

But when I went to drakrpm and attempted to install nodejs-14.16.0-2, it wouldn't let me select it. At first it wouldn't tell me why, but after a few tries it told me I needed a package named "npm-something." So I added "npm*" to the qarepo search, and it came up with npm-6.14.11-1.14.16.0.2.mga8.x86_64.rpm. Once I had that, I was able to install both nodejs and nodejs-devel with no issues.

That one package was enough to let it install, but I have no idea if that was all the packages I should have had in the test, so I'm withholding the OK until the full list is available.

CC: (none) => andrewsfarm

Comment 4 Aurelien Oudelet 2021-04-14 17:33:26 CEST
Advisory
========================

The updated nodejs packages fix packaging issue.

references:
https://bugs.mageia.org/show_bug.cgi?id=28767
========================

Updated packages in core/updates_testing
========================
nodejs-14.16.0-2.mga8
nodejs-devel-14.16.0-2.mga8
nodejs-docs-14.16.0-2.mga8
nodejs-libs-14.16.0-2.mga8
npm-6.14.11-1.14.16.0.2.mga8
v8-devel-8.4.371.19.mga8-11.mga8

from SRPM 
nodejs-14.16.0-2.mga8.src.rpm


So, @Thomas, it really needs npm package.
OK on clean install, meanwhile, all rpms.
Validating.

CC: (none) => ouaurelien, sysadmin-bugs
Keywords: (none) => advisory, validated_update
Whiteboard: (none) => MGA8-64-OK

Comment 5 Thomas Andrews 2021-04-14 18:20:52 CEST
Yes, v8-devel was not part of my test. I just checked my vbox guest, and it was not installed. Used qarepo to get the updated package, and installed it without issues.

So it's good for me, too.
Comment 6 Mika Laitio 2021-04-14 20:27:32 CEST
I just tested myself a a fix which has following changes to spec-file:

1) install error fix for v8-devel
- changed the v8-release tag in spec file from 1 to 11
  This was needed because the running number on previous 4.15 nodejs version was 10.

2) Fix for the packaging because many apps (scons v8 search for example) will fail unless there is a symlink from /usr/include/cppgc to /usr/include/node/cppgc

I encountered the package when I tried to enable v8-support in cbang library that is itself needed with v8 support by camotics. This can be tested with commands:

git clone https://github.com/CauldronDevelopmentLLC/cbang.git
scons -C cbang | grep v8
Without symlink the scons will fail to compile v8 test app and that causes the v8 search test to fail. With symlink added the v8 is found.

Similar fix has also been added in this year to latest fedora RPMs.

I will attach the diff.

[lamikr@localhost ~]$ cat nodejs-14.16.0-1.mga8_spec_fixes.patch 
--- nodejs-14.16.0-1.mga8_orig.spec	2021-04-14 21:13:11.412813259 +0300
+++ nodejs-14.16.0-1.mga8_fixed.spec	2021-04-14 21:14:17.279278620 +0300
@@ -19,7 +19,7 @@
 
 # increment both of these together
 %define rel 1
-%global v8_release 1
+%global v8_release 11
 
 # == Node.js Version ==
 # Note: Mageia should only ship LTS versions of Node.js (currently expected
@@ -417,6 +417,7 @@
     header=$(basename ${header})
     ln -s %{_includedir}/node/${header} %{buildroot}%{_includedir}/${header}
 done
+ln -s ./node/cppgc %{buildroot}%{_includedir}/cppgc
 for soname in libv8 libv8_libbase libv8_libplatform; do
     ln -s %{_libdir}/libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/${soname}.so
     ln -s %{_libdir}/libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/${soname}.so.%{v8_major}
@@ -549,6 +550,7 @@
 %files -n v8-devel
 %{_includedir}/libplatform
 %{_includedir}/v8*.h
+%{_includedir}/cppgc
 %{_libdir}/libv8.so
 %{_libdir}/libv8_libbase.so
 %{_libdir}/libv8_libplatform.so

CC: (none) => lamikr

Comment 7 Mika Laitio 2021-04-14 21:27:05 CEST
Created attachment 12626 [details]
Patch to fix nodejs spec files packaging problems
Comment 8 Mageia Robot 2021-04-15 21:06:17 CEST
An update for this issue has been pushed to the Mageia Updates repository.

https://advisories.mageia.org/MGAA-2021-0087.html

Status: NEW => RESOLVED
Resolution: (none) => FIXED

Comment 9 Mika Laitio 2021-04-15 23:20:50 CEST
v8-devel has still problems because you forgot to add the cppgc symlink fix to spec-file. Basically two lines:

@@ -417,6 +417,7 @@
     header=$(basename ${header})
     ln -s %{_includedir}/node/${header} %{buildroot}%{_includedir}/${header}
 done
+ln -s ./node/cppgc %{buildroot}%{_includedir}/cppgc
 for soname in libv8 libv8_libbase libv8_libplatform; do
     ln -s %{_libdir}/libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/${soname}.so
     ln -s %{_libdir}/libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/${soname}.so.%{v8_major}
@@ -549,6 +550,7 @@
 %files -n v8-devel
 %{_includedir}/libplatform
 %{_includedir}/v8*.h
+%{_includedir}/cppgc
 %{_libdir}/libv8.so
 %{_libdir}/libv8_libbase.so
 %{_libdir}/libv8_libplatform.so

Resolution: FIXED => (none)
Ever confirmed: 1 => 0
Status: RESOLVED => UNCONFIRMED

Comment 10 Thomas Backlund 2021-04-18 19:26:56 CEST
This update is already pushed.

You need to open a new one for the other issues

Resolution: (none) => FIXED
Status: UNCONFIRMED => RESOLVED


Note You need to log in before you can comment on or make changes to this bug.