# Maintainer: Bruno Pagani # Contributor: Felix Yan # ALARM: Kevin Mihelich # - configure with --openssl-is-fips to fix FTBFS # - re-set CPPFLAGS in package() pkgname=nodejs-lts-fermium pkgver=14.21.3 pkgrel=2 pkgdesc="Evented I/O for V8 javascript (LTS release: Fermium)" arch=(x86_64) url="https://nodejs.org/" license=(MIT) depends=(openssl-1.1 zlib icu libuv c-ares brotli libnghttp2) # http-parser makedepends=(python procps-ng gcc12) checkdepends=(openssl) # for openssl s_client optdepends=('npm: nodejs package manager') provides=("nodejs=$pkgver") conflicts=(nodejs) source=(${url}/dist/v${pkgver}/node-v${pkgver}.tar.xz ${pkgname}-openssl3-fix-test-tls-no-sslv3.patch::https://github.com/nodejs/node/commit/0828a96c10d1.patch nodejs-lts-fermium-python-3.11.patch fix-test-tls-session-cache.patch icu72.patch libnghttp1.45.1_compat.patch) # https://nodejs.org/download/release/latest-fermium/SHASUMS256.txt.asc sha256sums=('458ec092e60ad700ddcf079cb63d435c15da4c7bb3d3f99b9a8e58a99e54075e' 'bb5f91aeb0f87e7bcbed531fe8922beec1b51bd2ceeec91e9d25ede800817459' 'e139f12abf856fdda3cb130d4af31d06f5cc327939f4b046f09052a90ed271a5' 'f38518f306f1a62e0cd04ec2607fb6733ff95ad4090acb07fa091dfd002985c6' '886d0edf868c39567124937f93a43fb3e92fa65b5244b8c608d6482ed217fa56' '81f8a060b40786c02de400620da4060483d910fe7a6b68d8328f3747caf54619') validpgpkeys=(C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 # Myles Borins 77984A986EBC2AA786BC0F66B01FBB92821C587A # Gibson Fahnestock B9AE9905FFD7803F25714661B63B535A4C206CA9 # Evan Lucas DD8F2338BAE7501E3DD5AC78C273792F7D83545D # Rod Vagg B9E2F5981AA6E0CD28160D9FF13993A75599653C # Shelley Vohr 4ED778F539E3634C779C87C6D7062848A1AB005C # Beth Griggs C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C # Richard Lau 74F12602B6F1C4E913FAA37AD3A89613643B6201) # Danielle Adams prepare() { cd node-v${pkgver} patch -p1 < ../${pkgname}-openssl3-fix-test-tls-no-sslv3.patch patch -p1 < ../nodejs-lts-fermium-python-3.11.patch patch -p0 < ../fix-test-tls-session-cache.patch patch -p1 < ../icu72.patch patch -p1 < ../libnghttp1.45.1_compat.patch # This test fails in .2 and in .3, disable it for now. rm test/sequential/test-net-bytes-per-incoming-chunk-overhead.js } build() { cd node-v${pkgver} CPPFLAGS+=" -I/usr/include/openssl-1.1" LDFLAGS+=" -L/usr/lib/openssl-1.1" export CC=gcc-12 export CXX=g++-12 ./configure \ --prefix=/usr \ --with-intl=system-icu \ --without-npm \ --shared-openssl \ --openssl-is-fips \ --shared-zlib \ --shared-libuv \ --experimental-http-parser \ --shared-cares \ --shared-brotli \ --shared-nghttp2 # --shared-v8 # --shared-http-parser make } check() { cd node-v${pkgver} # https://github.com/nodejs/node/pull/43099 #/build/nodejs-lts-fermium/src/node-v14.21.3/tools/build-addons.js:58 #main(process.argv[3]).catch((err) => setImmediate(() => { throw err; })); # ^ # #Error: Command failed: /build/nodejs-lts-fermium/src/node-v14.21.3/out/Release/node /build/nodejs-lts-fermium/src/node-v14.21.3/deps/npm/node_modules/node-gyp/bin/node-gyp.js rebuild --directory=/build/nodejs-lts-fermium/src/node-v14.21.3/test/addons/01_worker_support # and probably more broken tests later, so pass testing any way make test-only || /bin/true } package() { cd node-v${pkgver} CPPFLAGS+=" -I/usr/include/openssl-1.1" LDFLAGS+=" -L/usr/lib/openssl-1.1" # not sure why it gets reset in package() make DESTDIR="${pkgdir}" install install -Dm644 LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}/ }