libnode: init

This package provides shared `libnode.so` library and header files
needed by the `r-v8` package.
This commit is contained in:
Pekka Ristola 2024-04-03 14:44:04 +03:00
parent 7fb055a9d8
commit 8ef0a20e00
No known key found for this signature in database
GPG key ID: 2C20BE716E05213E
2 changed files with 125 additions and 0 deletions

View file

@ -0,0 +1,62 @@
# Maintainer: Pekka Ristola <pekkarr [at] protonmail [dot] com>
# Contributor: Felix Yan <felixonmars@archlinux.org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Thomas Dziedzic < gostrc at gmail >
# Contributor: James Campos <james.r.campos@gmail.com>
# Contributor: BlackEagle < ike DOT devolder AT gmail DOT com >
# Contributor: Dongsheng Cai <dongsheng at moodle dot com>
# Contributor: Masutu Subric <masutu.arch at googlemail dot com>
# Contributor: TIanyi Cui <tianyicui@gmail.com>
pkgname=libnode
pkgver=21.7.1
pkgrel=4
pkgdesc="Evented I/O for V8 javascript - shared library"
arch=('x86_64')
url='https://nodejs.org/'
license=('MIT')
options=(!lto)
depends=('icu' 'libuv' 'libnghttp2' 'libnghttp3' 'libngtcp2' 'openssl' 'zlib' 'brotli' 'c-ares') # 'http-parser' 'v8')
makedepends=('python' 'procps-ng')
conflicts=('nodejs-shared')
source=("nodejs-${pkgver}.tar.gz::https://github.com/nodejs/node/archive/refs/tags/v${pkgver}.tar.gz")
sha512sums=('8d8c4d006c72315da80a52d15ea59c9cda3109bd58b086c3c5a153fa8af098c221cc3f3eb5bef287ad233195ab0ff728dfbbe14f0fed0f3c286479d63d29aab5')
build() {
cd node-${pkgver}
# /usr/lib/libnode.so uses malloc_usable_size, which is incompatible with fortification level 3
export CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
export CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
./configure \
--prefix=/usr \
--without-npm \
--with-intl=system-icu \
--shared \
--shared-libuv \
--shared-nghttp2 \
--shared-nghttp3 \
--shared-ngtcp2 \
--shared-openssl \
--shared-zlib \
--shared-brotli \
--shared-cares
# --shared-v8
# --shared-http-parser
make
}
package() {
cd node-${pkgver}
make DESTDIR="$pkgdir" install
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname/"
cd "$pkgdir"/usr/lib
ln -s libnode.so.* libnode.so
mv "$pkgdir"/usr/include/node "$pkgdir/usr/include/$pkgname"
rm -r "$pkgdir"/usr/{bin,lib/node_modules,share/doc,share/man}
}

View file

@ -0,0 +1,63 @@
build_prefix: extra-x86_64
maintainers:
- github: pekkarr
email: pekkarr@protonmail.com
time_limit_hours: 4
pre_build_script: |
update_pkgver_and_pkgrel(_G.newver)
post_build_script: |
git_pkgbuild_commit()
update_on:
- source: alpm
alpm: nodejs
repo: extra
strip_release: true
- source: alpm
alpm: brotli
repo: core
provided: libbrotlidec.so
strip_release: true
- source: alpm
alpm: brotli
repo: core
provided: libbrotlienc.so
strip_release: true
- source: alpm
alpm: c-ares
repo: extra
provided: libcares.so
strip_release: true
- source: alpm
alpm: icu
repo: core
provided: libicui18n.so
strip_release: true
- source: alpm
alpm: icu
repo: core
provided: libicuuc.so
strip_release: true
- source: alpm
alpm: libnghttp2
repo: core
provided: libnghttp2.so
strip_release: true
- source: alpmfiles
pkgname: libuv
filename: usr/lib/libuv\.so\.([^.]+)
repo: extra
- source: alpm
alpm: openssl
repo: core
provided: libcrypto.so
strip_release: true
- source: alpm
alpm: openssl
repo: core
provided: libssl.so
strip_release: true
- source: alpm
alpm: zlib
repo: core
provided: libz.so
strip_release: true