nodejs-18: Deprecate and remove

Signed-off-by: Reilly Brogan <reilly@reillybrogan.com>
This commit is contained in:
Reilly Brogan 2024-12-05 14:32:57 -06:00
parent b45dc8a9a0
commit 8e2fda694e
No known key found for this signature in database
GPG key ID: F58C404158883626
10 changed files with 6 additions and 40664 deletions

View file

@ -1,2 +0,0 @@
libnode.so.108
node-18

File diff suppressed because it is too large Load diff

View file

@ -1,18 +0,0 @@
UNKNOWN
ld-linux-x86-64.so.2
libatomic.so.1
libbrotlidec.so.1
libbrotlienc.so.1
libc.so.6
libcares.so.2
libcrypto.so.3
libgcc_s.so.1
libicudata.so.75
libicui18n.so.75
libicuuc.so.75
libm.so.6
libnghttp2.so.14
libssl.so.3
libstdc++.so.6
libuv.so.1
libz.so.1

File diff suppressed because it is too large Load diff

View file

@ -1,25 +0,0 @@
From 6349a1d1bd1dfa520b16546ed0ea96e47b0791e6 Mon Sep 17 00:00:00 2001
From: Zuzana Svetlikova <zsvetlik@redhat.com>
Date: Fri, 17 Apr 2020 12:59:44 +0200
Subject: [PATCH] Disable running gyp on shared deps
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 3cc4d11dd6..985bf536db 100644
--- a/Makefile
+++ b/Makefile
@@ -169,7 +169,7 @@ with-code-cache test-code-cache:
$(warning '$@' target is a noop)
out/Makefile: config.gypi common.gypi node.gyp \
- deps/uv/uv.gyp deps/llhttp/llhttp.gyp deps/zlib/zlib.gyp \
+ deps/llhttp/llhttp.gyp \
deps/simdutf/simdutf.gyp deps/ada/ada.gyp \
tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
--
2.41.0

View file

@ -1,9 +0,0 @@
releases:
id: 370506 # LTS 18
rss: https://github.com/nodejs/node/releases.atom
security:
cpe:
- vendor: nodejs
product: nodejs
- vendor: nodejs
product: node.js

View file

@ -1,133 +0,0 @@
name : nodejs-18
version : 18.20.4
release : 3
source :
- https://github.com/nodejs/node/archive/refs/tags/v18.20.4.tar.gz : 5d3d174d0ff55830c88d416d33cab3705490967faa1a2be60d64c2c351b7f463
homepage : https://nodejs.org/en
license : MIT
component : programming
summary : Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications.
description: |
Javascript platform to make fast, scalable network application. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
builddeps :
- pkgconfig(icu-i18n)
- pkgconfig(libbrotlicommon)
- pkgconfig(libcares)
- pkgconfig(libnghttp2)
- pkgconfig(libuv)
- pkgconfig(openssl)
- mold
- patchelf
clang : yes
environment: |
NODEJS_MAJOR=18
NODEJS_SONAME=108
NODEJS_PRIVATE_SITELIB=/usr/lib64/node_modules_$NODEJS_MAJOR
# Shaves a few minutes off the build
export LDFLAGS="$LDFLAGS -fuse-ld=mold"
setup : |
%patch -p1 -i $pkgfiles/0001-Disable-running-gyp-on-shared-deps.patch
python3 configure.py \
--ninja \
--enable-lto \
--prefix=%PREFIX% \
--libdir=lib64 \
--shared \
--shared-brotli \
--shared-cares \
--shared-libuv \
--shared-nghttp2 \
--shared-openssl \
--shared-zlib \
--with-intl=system-icu \
--without-corepack
build : |
%ninja_build -C out/Release
install : |
mv out/Release/lib/libnode.so.$NODEJS_SONAME out/Release/
./tools/install.py install $installdir /usr
install -dm00755 $installdir/usr/lib64
mv $installdir/usr/lib/node_modules \
$installdir/$NODEJS_PRIVATE_SITELIB
rmdir -v $installdir/usr/lib
# Fix the node permissions and move it
chmod 0755 $installdir/usr/bin/node
patchelf --remove-rpath $installdir/usr/bin/node
mv $installdir/usr/bin/node $installdir/usr/bin/node-$NODEJS_MAJOR
# Move the npm binary
rm -f $installdir/usr/bin/npm
# Set the hashbang to use the matching Node.js interpreter
sed --in-place --regexp-extended \
"s;^#!/usr/bin/env node($|\ |\t)+;#!/usr/bin/node-$NODEJS_MAJOR;g" \
$installdir/$NODEJS_PRIVATE_SITELIB/npm/bin/npm-cli.js
ln -srf $installdir/$NODEJS_PRIVATE_SITELIB/npm/bin/npm-cli.js \
$installdir/usr/bin/npm-$NODEJS_MAJOR
# Move the npx binary
rm -f $installdir/usr/bin/npx
# Set the hashbang to use the matching Node.js interpreter
sed --in-place --regexp-extended \
"s;^#!/usr/bin/env node($|\ |\t)+;#!/usr/bin/node-$NODEJS_MAJOR;g" \
$installdir/$NODEJS_PRIVATE_SITELIB/npm/bin/npx-cli.js
ln -srf $installdir/$NODEJS_PRIVATE_SITELIB/npm/bin/npx-cli.js \
$installdir/usr/bin/npx-$NODEJS_MAJOR
# We don't need any of this since we're not the default nodejs installation
rm -rfv $installdir/usr/share/{doc,systemtap}
mv $installdir/usr/share/man/man1/node.1 $installdir/usr/share/man/man1/node-$NODEJS_MAJOR.1
mv $installdir/usr/include/node $installdir/usr/include/node-$NODEJS_MAJOR
# Some NPM bundled deps are executable but should not be
find $installdir/$NODEJS_PRIVATE_SITELIB/npm \
-not -path "$installdir/$NODEJS_PRIVATE_SITELIB/npm/bin/*" \
-executable -type f \
-exec chmod -x {} \;
# The above command is a little overzealous. Add a few permissions back.
chmod +x $installdir/$NODEJS_PRIVATE_SITELIB/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node-gyp
chmod +x $installdir/$NODEJS_PRIVATE_SITELIB/npm/node_modules/node-gyp/bin/node-gyp.js
# Fix node-gyp
sed --in-place --regexp-extended \
"s;^#!/usr/bin/env node($|\ |\t)+;#!/usr/bin/node-$NODEJS_MAJOR;g" \
$installdir/$NODEJS_PRIVATE_SITELIB/npm/node_modules/node-gyp/bin/node-gyp.js
find $installdir/$NODEJS_PRIVATE_SITELIB/npm/node_modules \( \
-name '*.md' -o \
-name 'AUTHOR*' -o \
-name 'LICENSE*' -o \
-name 'PULL*' -o \
-name Makefile -o \
-name appveyor.yml -o \
-name doc -o \
-name docs -o \
-name examples -o \
-name 'license*' -o \
-name '*.bak' -o \
-name '*.d.ts' -o \
-name '*.markdown' -o \
-name '.*.yml' -o \
-name .editorconfig -o \
-name .github -o \
-name .nycrc \
\) -exec rm -rfv {} +
rm -rfv $installdir/$NODEJS_PRIVATE_SITELIB/npm/docs
# This is a compatibility directory that can be added to the path if you want nodejs-18 to be the "default"
install -dm00755 $installdir/%libdir%/nodejs-18/bin
for i in node npm npx; do
ln -srv $installdir/usr/bin/$i-$NODEJS_MAJOR $installdir/%libdir%/nodejs-18/bin/$i
done
# Nothing links against this. If that ever becomes necessary we can re-add these with a customized pkgconfig
rm -rfv $installdir/usr/include

File diff suppressed because it is too large Load diff

View file

@ -2767,5 +2767,7 @@
<Package>minetest-dbginfo</Package>
<Package>mps-youtube</Package>
<Package>python-pafy</Package>
<Package>nodejs-18</Package>
<Package>nodejs-18-dbginfo</Package>
</Obsoletes>
</PISI>

View file

@ -3705,6 +3705,10 @@
<!-- Replaced by yewtube -->
<Package>mps-youtube</Package>
<Package>python-pafy</Package>
<!-- Replaced by newer versions -->
<Package>nodejs-18</Package>
<Package>nodejs-18-dbginfo</Package>
</Obsoletes>
</PISI>