dev-libs/njs - 9999 (nest)

Search

Install

Install this version:

emerge -a =dev-libs/njs-9999

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =dev-libs/njs-9999

Or alternatively:

emerge --autounmask-write -a =dev-libs/njs-9999

Package Information

Description:
NGINX JavaScript
Homepage:
https://github.com/nginx/njs
License:
BSD-2

Ebuild Details

Version EAPI Keywords Slot
9999 8 0
View Raw Ebuild
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit git-r3 toolchain-funcs

DESCRIPTION="NGINX JavaScript"
HOMEPAGE="https://github.com/nginx/njs"
EGIT_REPO_URI="https://github.com/nginx/${PN}.git"

LICENSE="BSD-2"
SLOT="0"
IUSE="debug static-libs test tools +ssl +xml +zlib"
REQUIRED_USE="test? ( tools )"
RESTRICT="!test? ( test )"

RDEPEND="!www-nginx/njs[tools]
	dev-libs/libpcre2:0=
	dev-libs/quickjs-ng:0=
	tools? ( dev-libs/libedit:= )
	ssl? ( dev-libs/openssl:0= )
	xml? ( dev-libs/libxml2:2= )
	zlib? ( virtual/zlib:0= )"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig
	test? ( dev-tcltk/expect )"

PATCHES=( "${FILESDIR}/${PN}"-0.9.9-configure.patch
	"${FILESDIR}/${PN}"-0.9.9-no-werror.patch
	"${FILESDIR}/${PN}"-0.9.9-shared-lib.patch )

src_prepare() {
	default

	# auto/make currently hardcodes njs.pc as a build-tree pc file
	sed     -e "s#@PREFIX@#${EPREFIX}/usr#g" \
		-e "s#@LIBDIR@#${EPREFIX}\${prefix}/$(get_libdir)#g" \
		-e "s#@CFLAGS@#-I${EPREFIX}/usr/include#g" \
		-e "s#@VERSION@#${PV}#g" \
		-e "s#@EXTRA_LIBS@#-lm -lpcre2-8 -lqjs $(use ssl -lcrypto) $(use xml -lxml2) $(use zlib -lz)#g" \
		src/njs.pc.in > njs.pc || die "sed failed"
}

src_configure() {
	econf --ar="$(tc-getAR)" \
		--cc="$(tc-getCC)" \
		--ld-opt="${LDFLAGS}" \
		"$(usex debug --debug=YES --no-debug)" \
		"$(usex ssl --openssl --no-openssl)" \
		"$(usex xml --libxml2 --no-libxml2)" \
		"$(usex zlib --zlib --no-zlib)"
}

src_compile() {
	emake libnjs.so
	use static-libs && emake libnjs
	use tools || use test && emake njs
}

src_test() {
	# test262 fails in JS_FreeRuntime() assertions of QuickJS build
	emake lib_test shell_test unit_test
}

src_install() {
	einstalldocs

	doheader build/njs_auto_config.h src/*.h
	dolib.so build/libnjs.so{,."${PV}"}
	use static-libs && dolib.a build/libnjs.a
	use tools && dobin build/njs

	insinto /usr/"$(get_libdir)"/pkgconfig
	doins njs.pc
}

USE Flags

Manage flags for this package: euse -i <flag> -p dev-libs/njs | euse -E <flag> -p dev-libs/njs | euse -D <flag> -p dev-libs/njs

Global/Standard Flags

ssl
Default: Enabled (+)
xml
Default: Enabled (+)
zlib
Default: Enabled (+)

Inherited Eclasses

Dependencies

DEPEND

!www-nginx/njs[tools]
	dev-libs/libpcre2:0=
	dev-libs/quickjs-ng:0=
	tools? ( dev-libs/libedit:= )
	ssl? ( dev-libs/openssl:0= )
	xml? ( dev-libs/libxml2:2= )
	zlib? ( virtual/zlib:0= )

RDEPEND

!www-nginx/njs[tools]
	dev-libs/libpcre2:0=
	dev-libs/quickjs-ng:0=
	tools? ( dev-libs/libedit:= )
	ssl? ( dev-libs/openssl:0= )
	xml? ( dev-libs/libxml2:2= )
	zlib? ( virtual/zlib:0= )

BDEPEND

virtual/pkgconfig
	test? ( dev-tcltk/expect )