diff options
Diffstat (limited to 'meta-oe/recipes-devtools/nodejs')
3 files changed, 113 insertions, 1 deletions
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-allow-passing-multiple-libs-to-pkg_config.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-allow-passing-multiple-libs-to-pkg_config.patch new file mode 100644 index 0000000000..13edf229b3 --- /dev/null +++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-allow-passing-multiple-libs-to-pkg_config.patch @@ -0,0 +1,41 @@ +From fdaa0e3bef93c5c72a7258b5f1e30718e7d81f9b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net> +Date: Mon, 2 Mar 2020 12:17:09 +0000 +Subject: [PATCH 1/2] build: allow passing multiple libs to pkg_config +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Sometimes it's necessary to pass multiple library names to pkg-config, +e.g. the brotli shared libraries can be pulled in with + pkg-config libbrotlienc libbrotlidec + +Update the code to handle both, strings (as used so far), and lists +of strings. + +Signed-off-by: André Draszik <git@andred.net> +--- +Upstream-Status: Submitted [https://github.com/nodejs/node/pull/32046] + configure.py | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/configure.py b/configure.py +index beb08df088..e3f78f2fed 100755 +--- a/configure.py ++++ b/configure.py +@@ -680,7 +680,11 @@ def pkg_config(pkg): + retval = () + for flag in ['--libs-only-l', '--cflags-only-I', + '--libs-only-L', '--modversion']: +- args += [flag, pkg] ++ args += [flag] ++ if isinstance(pkg, list): ++ args += pkg ++ else: ++ args += [pkg] + try: + proc = subprocess.Popen(shlex.split(pkg_config) + args, + stdout=subprocess.PIPE) +-- +2.25.0 + diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0002-build-allow-use-of-system-installed-brotli.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0002-build-allow-use-of-system-installed-brotli.patch new file mode 100644 index 0000000000..fc038f3aae --- /dev/null +++ b/meta-oe/recipes-devtools/nodejs/nodejs/0002-build-allow-use-of-system-installed-brotli.patch @@ -0,0 +1,66 @@ +From f0f927feee8cb1fb173835d5c3f6beb6bf7d5e54 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net> +Date: Mon, 2 Mar 2020 12:17:35 +0000 +Subject: [PATCH 2/2] build: allow use of system-installed brotli +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +brotli is available as a shared library since 2016, so it makes sense +to allow its use as a system-installed version. + +Some of the infrastructure was in place already (node.gyp and +node.gypi), but some bits in the configure script here were missing. + +Add them, keeping the default as before, to use the bundled version. + +Refs: https://github.com/google/brotli/pull/421 +Signed-off-by: André Draszik <git@andred.net> +--- +Upstream-Status: Submitted [https://github.com/nodejs/node/pull/32046] + configure.py | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/configure.py b/configure.py +index e3f78f2fed..0190e31b41 100755 +--- a/configure.py ++++ b/configure.py +@@ -301,6 +301,27 @@ shared_optgroup.add_option('--shared-zlib-libpath', + dest='shared_zlib_libpath', + help='a directory to search for the shared zlib DLL') + ++shared_optgroup.add_option('--shared-brotli', ++ action='store_true', ++ dest='shared_brotli', ++ help='link to a shared brotli DLL instead of static linking') ++ ++shared_optgroup.add_option('--shared-brotli-includes', ++ action='store', ++ dest='shared_brotli_includes', ++ help='directory containing brotli header files') ++ ++shared_optgroup.add_option('--shared-brotli-libname', ++ action='store', ++ dest='shared_brotli_libname', ++ default='brotlidec,brotlienc', ++ help='alternative lib name to link to [default: %default]') ++ ++shared_optgroup.add_option('--shared-brotli-libpath', ++ action='store', ++ dest='shared_brotli_libpath', ++ help='a directory to search for the shared brotli DLL') ++ + shared_optgroup.add_option('--shared-cares', + action='store_true', + dest='shared_cares', +@@ -1692,6 +1713,7 @@ configure_napi(output) + configure_library('zlib', output) + configure_library('http_parser', output) + configure_library('libuv', output) ++configure_library('brotli', output, pkgname=['libbrotlidec', 'libbrotlienc']) + configure_library('cares', output, pkgname='libcares') + configure_library('nghttp2', output, pkgname='libnghttp2') + configure_v8(output) +-- +2.25.0 + diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb index 49bb71e282..1ea438c5b0 100644 --- a/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb +++ b/meta-oe/recipes-devtools/nodejs/nodejs_12.14.1.bb @@ -20,6 +20,8 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \ file://0003-Install-both-binaries-and-use-libdir.patch \ file://0004-v8-don-t-override-ARM-CFLAGS.patch \ file://big-endian.patch \ + file://0001-build-allow-passing-multiple-libs-to-pkg_config.patch \ + file://0002-build-allow-use-of-system-installed-brotli.patch \ " SRC_URI_append_class-target = " \ file://0002-Using-native-binaries.patch \ @@ -51,8 +53,9 @@ ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '- GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' " ARCHFLAGS ?= "" -PACKAGECONFIG ??= "ares icu libuv zlib" +PACKAGECONFIG ??= "ares brotli icu libuv zlib" PACKAGECONFIG[ares] = "--shared-cares,,c-ares" +PACKAGECONFIG[brotli] = "--shared-brotli,,brotli" PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu" PACKAGECONFIG[libuv] = "--shared-libuv,,libuv" PACKAGECONFIG[nghttp2] = "--shared-nghttp2,,nghttp2" @@ -81,6 +84,8 @@ python do_unpack() { shutil.rmtree(d.getVar('S') + '/deps/openssl', True) if 'ares' in d.getVar('PACKAGECONFIG'): shutil.rmtree(d.getVar('S') + '/deps/cares', True) + if 'brotli' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/brotli', True) if 'libuv' in d.getVar('PACKAGECONFIG'): shutil.rmtree(d.getVar('S') + '/deps/uv', True) if 'nghttp2' in d.getVar('PACKAGECONFIG'): |