158 lines
4.6 KiB
Text
158 lines
4.6 KiB
Text
# Contributor: Jose-Luis Rivas <ghostbar@riseup.net>
|
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
|
|
# Contributor: Dave Esaias <dave@containership.io>
|
|
# Contributor: Tadahisa Kamijo <kamijin@live.jp>
|
|
# Contributor: Eivind Uggedal <eu@eju.no>
|
|
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
|
|
#
|
|
# secfixes:
|
|
# 10.24.1-r0:
|
|
# - CVE-2020-7774
|
|
# 10.19.0-r0:
|
|
# - CVE-2019-15606
|
|
# - CVE-2019-15605
|
|
# - CVE-2019-15604
|
|
# 10.16.3-r0:
|
|
# - CVE-2019-9511
|
|
# - CVE-2019-9512
|
|
# - CVE-2019-9513
|
|
# - CVE-2019-9514
|
|
# - CVE-2019-9515
|
|
# - CVE-2019-9516
|
|
# - CVE-2019-9517
|
|
# - CVE-2019-9518
|
|
# 10.15.3-r0:
|
|
# - CVE-2019-5737
|
|
# 10.14.0-r0:
|
|
# - CVE-2018-12121
|
|
# - CVE-2018-12122
|
|
# - CVE-2018-12123
|
|
# - CVE-2018-0735
|
|
# - CVE-2018-0734
|
|
# 8.11.4-r0:
|
|
# - CVE-2018-12115
|
|
# 8.11.3-r0:
|
|
# - CVE-2018-7167
|
|
# - CVE-2018-7161
|
|
# - CVE-2018-1000168
|
|
# 8.11.0-r0:
|
|
# - CVE-2018-7158
|
|
# - CVE-2018-7159
|
|
# - CVE-2018-7160
|
|
# 8.9.3-r0:
|
|
# - CVE-2017-15896
|
|
# - CVE-2017-15897
|
|
# 6.11.5-r0:
|
|
# - CVE-2017-14919
|
|
# 6.11.1-r0:
|
|
# - CVE-2017-1000381
|
|
#
|
|
pkgname=nodejs
|
|
# Note: Update only to even-numbered versions (e.g. 6.y.z, 8.y.z)!
|
|
# Odd-numbered versions are supported only for 9 months by upstream.
|
|
pkgver=10.24.1
|
|
pkgrel=0
|
|
pkgdesc="JavaScript runtime built on V8 engine - LTS version"
|
|
url="https://nodejs.org/"
|
|
arch="all !mips64 !mips64el"
|
|
license="MIT"
|
|
depends="ca-certificates"
|
|
# gold is needed for mksnapshot
|
|
makedepends="$depends_dev python2 openssl-dev zlib-dev libuv-dev linux-headers
|
|
paxmark binutils-gold http-parser-dev ca-certificates c-ares-dev"
|
|
subpackages="$pkgname-dev $pkgname-doc npm::noarch"
|
|
provides="nodejs-lts=$pkgver" # for backward compatibility
|
|
replaces="nodejs-current nodejs-lts" # nodejs-lts for backward compatibility
|
|
source="https://nodejs.org/dist/v$pkgver/node-v$pkgver.tar.gz
|
|
dont-run-gyp-files-for-bundled-deps.patch
|
|
link-with-libatomic-on-mips32.patch
|
|
"
|
|
builddir="$srcdir/node-v$pkgver"
|
|
|
|
prepare() {
|
|
default_prepare
|
|
|
|
# Remove bundled dependencies that we're not using.
|
|
rm -rf deps/http_parser deps/openssl deps/zlib
|
|
}
|
|
|
|
build() {
|
|
cd "$builddir"
|
|
|
|
case "$CARCH" in
|
|
mips*) _carchflags="--with-mips-arch-variant=r1 --with-mips-float-abi=soft";;
|
|
esac
|
|
|
|
# NOTE: We use bundled libuv because they don't care much about backward
|
|
# compatibility and it has happened several times in past that we
|
|
# couldn't upgrade nodejs package in stable branches to fix CVEs due to
|
|
# libuv incompatibility.
|
|
./configure --prefix=/usr \
|
|
$_carchflags \
|
|
--shared-zlib \
|
|
--shared-openssl \
|
|
--shared-http-parser \
|
|
--shared-cares \
|
|
--openssl-use-def-ca-store
|
|
|
|
# We need run mksnapshot at build time so paxmark it early.
|
|
make -C out mksnapshot BUILDTYPE=Release
|
|
paxmark -m out/Release/mksnapshot
|
|
make
|
|
|
|
# paxmark so JIT works
|
|
paxmark -m out/Release/node
|
|
}
|
|
|
|
# TODO Run provided test suite.
|
|
check() {
|
|
cd "$builddir"/out/Release
|
|
|
|
./node -e 'console.log("Hello, world!")'
|
|
./node -e "require('assert').equal(process.versions.node, '$pkgver')"
|
|
}
|
|
|
|
package() {
|
|
cd "$builddir"
|
|
|
|
make DESTDIR="$pkgdir" install
|
|
|
|
# It's strange, but it really needs to be paxmarked again...
|
|
paxmark -m "$pkgdir"/usr/bin/node
|
|
|
|
cp -pr "$pkgdir"/usr/lib/node_modules/npm/man "$pkgdir"/usr/share
|
|
local d; for d in docs man; do
|
|
rm -r "$pkgdir"/usr/lib/node_modules/npm/$d
|
|
done
|
|
|
|
# XXX: Workaround for https://github.com/npm/cli/issues/780.
|
|
(cd "$pkgdir"/usr/share/man/man5 && find * \
|
|
-type f ! \( -name 'package-json.*' -or -name 'npmrc.*' -or -name 'npm-*' \) \
|
|
-exec mv {} npm-{} \;)
|
|
(cd "$pkgdir"/usr/share/man/man7 && find * \
|
|
-type f ! \( -name 'semver.*' -or -name 'npm-*' \) \
|
|
-exec mv {} npm-{} \;)
|
|
}
|
|
|
|
dev() {
|
|
provides="nodejs-lts-dev=$pkgver" # for backward compatibility
|
|
default_dev
|
|
}
|
|
|
|
npm() {
|
|
pkgdesc="A package manager for JavaScript"
|
|
depends="$pkgname"
|
|
# for backward compatibility
|
|
provides="nodejs-npm=$pkgver-r$pkgrel nodejs-current-npm=$pkgver-r$pkgrel"
|
|
replaces="nodejs-npm nodejs-current-npm $pkgname"
|
|
|
|
mkdir -p "$subpkgdir"/usr/bin
|
|
mv "$pkgdir"/usr/bin/np[mx] "$subpkgdir"/usr/bin/
|
|
|
|
mkdir -p "$subpkgdir"/usr/lib/node_modules
|
|
mv "$pkgdir"/usr/lib/node_modules/npm "$subpkgdir"/usr/lib/node_modules/
|
|
}
|
|
|
|
sha512sums="1ce82fd404a434e48ebd16dc83792a4b3cff18433c1cce53b09b85dda2fbf1abf372574e3ab113e99c884012caadc13b246698ce071aaa329577bc08cdc2be46 node-v10.24.1.tar.gz
|
|
c27cb338eea8c817042d58b8fbadc234fb586f490020677f28f900ade31d2f4dd7bcdd4e52fddf209d9221b7e1fa57f629bd38787456995413cee79311f9571f dont-run-gyp-files-for-bundled-deps.patch
|
|
4fd3f10bd82d1e851ed000169c2635c001a4a051283edf96f1efb2260e2d395199dd5843f79f1cff8f2c0c65462c44241c508ea67835dfbd9880d9196fae290a link-with-libatomic-on-mips32.patch"
|