Message ID | 20231215075239.3049865-20-alex@linutronix.de |
---|---|
State | Accepted, archived |
Headers | show |
Series | [01/20] python3-pyinotify: remove as unmaintained | expand |
this is regressing some dependent recipe e.g. simpleiot which depends on gyp from nodejs-native https://github.com/YoeDistro/yoe-distro/actions/runs/7258317572/job/19834510249?pr=882 On Thu, Dec 14, 2023 at 11:53 PM Alexander Kanavin <alex.kanavin@gmail.com> wrote: > > Signed-off-by: Alexander Kanavin <alex@linutronix.de> > --- > ...001-build-fix-build-with-Python-3.12.patch | 55 ++++++++++++++++ > .../0001-gyp-resolve-python-3.12-issues.patch | 63 +++++++++++++++++++ > .../recipes-devtools/nodejs/nodejs_20.8.1.bb | 4 +- > 3 files changed, 121 insertions(+), 1 deletion(-) > create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch > create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch > new file mode 100644 > index 000000000..39026d074 > --- /dev/null > +++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch > @@ -0,0 +1,55 @@ > +From 656f6c91f1da7f1e1ffb01e2de7d9026a84958b5 Mon Sep 17 00:00:00 2001 > +From: Luigi Pinca <luigipinca@gmail.com> > +Date: Wed, 8 Nov 2023 21:20:53 +0100 > +Subject: [PATCH] build: fix build with Python 3.12 > + > +Replace `distutils.version.StrictVersion` with > +`packaging.version.Version`. > + > +Refs: https://github.com/nodejs/node/pull/50209#issuecomment-1795852539 > +PR-URL: https://github.com/nodejs/node/pull/50582 > +Reviewed-By: Richard Lau <rlau@redhat.com> > +Reviewed-By: Chengzhong Wu <legendecas@gmail.com> > + > +Upstream-Status: Backport [https://github.com/nodejs/node/commit/95534ad82f4e33f53fd50efe633d43f8da70cba6] > +Signed-off-by: Alexander Kanavin <alex@linutronix.de> > +--- > + configure.py | 11 +++++------ > + 1 file changed, 5 insertions(+), 6 deletions(-) > + > +diff --git a/configure.py b/configure.py > +index 62f041ce..18fe7c14 100755 > +--- a/configure.py > ++++ b/configure.py > +@@ -14,8 +14,6 @@ import bz2 > + import io > + from pathlib import Path > + > +-from distutils.version import StrictVersion > +- > + # If not run from node/, cd to node/. > + os.chdir(Path(__file__).parent) > + > +@@ -30,6 +28,7 @@ tools_path = Path('tools') > + > + sys.path.insert(0, str(tools_path / 'gyp' / 'pylib')) > + from gyp.common import GetFlavor > ++from packaging.version import Version > + > + # imports in tools/configure.d > + sys.path.insert(0, str(tools_path / 'configure.d')) > +@@ -1565,10 +1564,10 @@ def configure_openssl(o): > + # supported asm compiler for AVX2. See https://github.com/openssl/openssl/ > + # blob/OpenSSL_1_1_0-stable/crypto/modes/asm/aesni-gcm-x86_64.pl#L52-L69 > + openssl110_asm_supported = \ > +- ('gas_version' in variables and StrictVersion(variables['gas_version']) >= StrictVersion('2.23')) or \ > +- ('xcode_version' in variables and StrictVersion(variables['xcode_version']) >= StrictVersion('5.0')) or \ > +- ('llvm_version' in variables and StrictVersion(variables['llvm_version']) >= StrictVersion('3.3')) or \ > +- ('nasm_version' in variables and StrictVersion(variables['nasm_version']) >= StrictVersion('2.10')) > ++ ('gas_version' in variables and Version(variables['gas_version']) >= Version('2.23')) or \ > ++ ('xcode_version' in variables and Version(variables['xcode_version']) >= Version('5.0')) or \ > ++ ('llvm_version' in variables and Version(variables['llvm_version']) >= Version('3.3')) or \ > ++ ('nasm_version' in variables and Version(variables['nasm_version']) >= Version('2.10')) > + > + if is_x86 and not openssl110_asm_supported: > + error('''Did not find a new enough assembler, install one or build with > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch > new file mode 100644 > index 000000000..9d878dfb8 > --- /dev/null > +++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch > @@ -0,0 +1,63 @@ > +From bf8c96ba6936050ed4a0de5bc8aeeaf2b3c50dc1 Mon Sep 17 00:00:00 2001 > +From: Alexander Kanavin <alex@linutronix.de> > +Date: Thu, 7 Dec 2023 12:54:30 +0100 > +Subject: [PATCH] gyp: resolve python 3.12 issues > + > +Upstream has updated gyp wholesale in the main branch, so > +this patch can be dropped in due time. > + > +Upstream-Status: Inappropriate [issue will be fixed upstream with the next nodejs LTS update] > + > +Signed-off-by: Alexander Kanavin <alex@linutronix.de> > +--- > + deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py | 4 ++-- > + tools/gyp/pylib/gyp/input.py | 4 ++-- > + 2 files changed, 4 insertions(+), 4 deletions(-) > + > +diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py > +index d9699a0a..173e9465 100644 > +--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py > ++++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py > +@@ -16,7 +16,7 @@ import subprocess > + import sys > + import threading > + import traceback > +-from distutils.version import StrictVersion > ++from packaging.version import Version > + from gyp.common import GypError > + from gyp.common import OrderedSet > + > +@@ -1183,7 +1183,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil > + else: > + ast_code = compile(cond_expr_expanded, "<string>", "eval") > + cached_conditions_asts[cond_expr_expanded] = ast_code > +- env = {"__builtins__": {}, "v": StrictVersion} > ++ env = {"__builtins__": {}, "v": Version} > + if eval(ast_code, env, variables): > + return true_dict > + return false_dict > +diff --git a/tools/gyp/pylib/gyp/input.py b/tools/gyp/pylib/gyp/input.py > +index 354958bf..ab6112e5 100644 > +--- a/tools/gyp/pylib/gyp/input.py > ++++ b/tools/gyp/pylib/gyp/input.py > +@@ -16,7 +16,7 @@ import subprocess > + import sys > + import threading > + import traceback > +-from distutils.version import StrictVersion > ++from packaging.version import Version > + from gyp.common import GypError > + from gyp.common import OrderedSet > + > +@@ -1190,7 +1190,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil > + else: > + ast_code = compile(cond_expr_expanded, "<string>", "eval") > + cached_conditions_asts[cond_expr_expanded] = ast_code > +- env = {"__builtins__": {}, "v": StrictVersion} > ++ env = {"__builtins__": {}, "v": Version} > + if eval(ast_code, env, variables): > + return true_dict > + return false_dict > +-- > +2.39.2 > + > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb > index 65f4eb3f3..0ca0c1498 100644 > --- a/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb > +++ b/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb > @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=162595a4a2f3453a0534e60b0afe4e7b" > > CVE_PRODUCT = "nodejs node.js" > > -DEPENDS = "openssl file-replacement-native" > +DEPENDS = "openssl file-replacement-native python3-packaging-native" > DEPENDS:append:class-target = " qemu-native" > DEPENDS:append:class-native = " c-ares-native" > > @@ -27,6 +27,8 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \ > file://0001-Revert-io_uring-changes-from-libuv-1.46.0.patch \ > file://0002-Revert-io_uring-changes-from-libuv-1.45.0.patch \ > file://run-ptest \ > + file://0001-build-fix-build-with-Python-3.12.patch \ > + file://0001-gyp-resolve-python-3.12-issues.patch \ > " > > SRC_URI:append:class-target = " \ > -- > 2.39.2 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#107513): https://lists.openembedded.org/g/openembedded-devel/message/107513 > Mute This Topic: https://lists.openembedded.org/mt/103186676/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
| npm ERR! ModuleNotFoundError: No module named 'packaging' Looks like python3-packaging needs to be in RDEPENDS as well, I'll make a fix (or you can quickly try to see if it resolves the error). Alex On Wed, 20 Dec 2023 at 20:12, Khem Raj <raj.khem@gmail.com> wrote: > > this is regressing some dependent recipe e.g. simpleiot which depends > on gyp from nodejs-native > > https://github.com/YoeDistro/yoe-distro/actions/runs/7258317572/job/19834510249?pr=882 > > On Thu, Dec 14, 2023 at 11:53 PM Alexander Kanavin > <alex.kanavin@gmail.com> wrote: > > > > Signed-off-by: Alexander Kanavin <alex@linutronix.de> > > --- > > ...001-build-fix-build-with-Python-3.12.patch | 55 ++++++++++++++++ > > .../0001-gyp-resolve-python-3.12-issues.patch | 63 +++++++++++++++++++ > > .../recipes-devtools/nodejs/nodejs_20.8.1.bb | 4 +- > > 3 files changed, 121 insertions(+), 1 deletion(-) > > create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch > > create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch > > > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch > > new file mode 100644 > > index 000000000..39026d074 > > --- /dev/null > > +++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch > > @@ -0,0 +1,55 @@ > > +From 656f6c91f1da7f1e1ffb01e2de7d9026a84958b5 Mon Sep 17 00:00:00 2001 > > +From: Luigi Pinca <luigipinca@gmail.com> > > +Date: Wed, 8 Nov 2023 21:20:53 +0100 > > +Subject: [PATCH] build: fix build with Python 3.12 > > + > > +Replace `distutils.version.StrictVersion` with > > +`packaging.version.Version`. > > + > > +Refs: https://github.com/nodejs/node/pull/50209#issuecomment-1795852539 > > +PR-URL: https://github.com/nodejs/node/pull/50582 > > +Reviewed-By: Richard Lau <rlau@redhat.com> > > +Reviewed-By: Chengzhong Wu <legendecas@gmail.com> > > + > > +Upstream-Status: Backport [https://github.com/nodejs/node/commit/95534ad82f4e33f53fd50efe633d43f8da70cba6] > > +Signed-off-by: Alexander Kanavin <alex@linutronix.de> > > +--- > > + configure.py | 11 +++++------ > > + 1 file changed, 5 insertions(+), 6 deletions(-) > > + > > +diff --git a/configure.py b/configure.py > > +index 62f041ce..18fe7c14 100755 > > +--- a/configure.py > > ++++ b/configure.py > > +@@ -14,8 +14,6 @@ import bz2 > > + import io > > + from pathlib import Path > > + > > +-from distutils.version import StrictVersion > > +- > > + # If not run from node/, cd to node/. > > + os.chdir(Path(__file__).parent) > > + > > +@@ -30,6 +28,7 @@ tools_path = Path('tools') > > + > > + sys.path.insert(0, str(tools_path / 'gyp' / 'pylib')) > > + from gyp.common import GetFlavor > > ++from packaging.version import Version > > + > > + # imports in tools/configure.d > > + sys.path.insert(0, str(tools_path / 'configure.d')) > > +@@ -1565,10 +1564,10 @@ def configure_openssl(o): > > + # supported asm compiler for AVX2. See https://github.com/openssl/openssl/ > > + # blob/OpenSSL_1_1_0-stable/crypto/modes/asm/aesni-gcm-x86_64.pl#L52-L69 > > + openssl110_asm_supported = \ > > +- ('gas_version' in variables and StrictVersion(variables['gas_version']) >= StrictVersion('2.23')) or \ > > +- ('xcode_version' in variables and StrictVersion(variables['xcode_version']) >= StrictVersion('5.0')) or \ > > +- ('llvm_version' in variables and StrictVersion(variables['llvm_version']) >= StrictVersion('3.3')) or \ > > +- ('nasm_version' in variables and StrictVersion(variables['nasm_version']) >= StrictVersion('2.10')) > > ++ ('gas_version' in variables and Version(variables['gas_version']) >= Version('2.23')) or \ > > ++ ('xcode_version' in variables and Version(variables['xcode_version']) >= Version('5.0')) or \ > > ++ ('llvm_version' in variables and Version(variables['llvm_version']) >= Version('3.3')) or \ > > ++ ('nasm_version' in variables and Version(variables['nasm_version']) >= Version('2.10')) > > + > > + if is_x86 and not openssl110_asm_supported: > > + error('''Did not find a new enough assembler, install one or build with > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch > > new file mode 100644 > > index 000000000..9d878dfb8 > > --- /dev/null > > +++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch > > @@ -0,0 +1,63 @@ > > +From bf8c96ba6936050ed4a0de5bc8aeeaf2b3c50dc1 Mon Sep 17 00:00:00 2001 > > +From: Alexander Kanavin <alex@linutronix.de> > > +Date: Thu, 7 Dec 2023 12:54:30 +0100 > > +Subject: [PATCH] gyp: resolve python 3.12 issues > > + > > +Upstream has updated gyp wholesale in the main branch, so > > +this patch can be dropped in due time. > > + > > +Upstream-Status: Inappropriate [issue will be fixed upstream with the next nodejs LTS update] > > + > > +Signed-off-by: Alexander Kanavin <alex@linutronix.de> > > +--- > > + deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py | 4 ++-- > > + tools/gyp/pylib/gyp/input.py | 4 ++-- > > + 2 files changed, 4 insertions(+), 4 deletions(-) > > + > > +diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py > > +index d9699a0a..173e9465 100644 > > +--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py > > ++++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py > > +@@ -16,7 +16,7 @@ import subprocess > > + import sys > > + import threading > > + import traceback > > +-from distutils.version import StrictVersion > > ++from packaging.version import Version > > + from gyp.common import GypError > > + from gyp.common import OrderedSet > > + > > +@@ -1183,7 +1183,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil > > + else: > > + ast_code = compile(cond_expr_expanded, "<string>", "eval") > > + cached_conditions_asts[cond_expr_expanded] = ast_code > > +- env = {"__builtins__": {}, "v": StrictVersion} > > ++ env = {"__builtins__": {}, "v": Version} > > + if eval(ast_code, env, variables): > > + return true_dict > > + return false_dict > > +diff --git a/tools/gyp/pylib/gyp/input.py b/tools/gyp/pylib/gyp/input.py > > +index 354958bf..ab6112e5 100644 > > +--- a/tools/gyp/pylib/gyp/input.py > > ++++ b/tools/gyp/pylib/gyp/input.py > > +@@ -16,7 +16,7 @@ import subprocess > > + import sys > > + import threading > > + import traceback > > +-from distutils.version import StrictVersion > > ++from packaging.version import Version > > + from gyp.common import GypError > > + from gyp.common import OrderedSet > > + > > +@@ -1190,7 +1190,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil > > + else: > > + ast_code = compile(cond_expr_expanded, "<string>", "eval") > > + cached_conditions_asts[cond_expr_expanded] = ast_code > > +- env = {"__builtins__": {}, "v": StrictVersion} > > ++ env = {"__builtins__": {}, "v": Version} > > + if eval(ast_code, env, variables): > > + return true_dict > > + return false_dict > > +-- > > +2.39.2 > > + > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb > > index 65f4eb3f3..0ca0c1498 100644 > > --- a/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb > > +++ b/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb > > @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=162595a4a2f3453a0534e60b0afe4e7b" > > > > CVE_PRODUCT = "nodejs node.js" > > > > -DEPENDS = "openssl file-replacement-native" > > +DEPENDS = "openssl file-replacement-native python3-packaging-native" > > DEPENDS:append:class-target = " qemu-native" > > DEPENDS:append:class-native = " c-ares-native" > > > > @@ -27,6 +27,8 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \ > > file://0001-Revert-io_uring-changes-from-libuv-1.46.0.patch \ > > file://0002-Revert-io_uring-changes-from-libuv-1.45.0.patch \ > > file://run-ptest \ > > + file://0001-build-fix-build-with-Python-3.12.patch \ > > + file://0001-gyp-resolve-python-3.12-issues.patch \ > > " > > > > SRC_URI:append:class-target = " \ > > -- > > 2.39.2 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > Links: You receive all messages sent to this group. > > View/Reply Online (#107513): https://lists.openembedded.org/g/openembedded-devel/message/107513 > > Mute This Topic: https://lists.openembedded.org/mt/103186676/1997914 > > Group Owner: openembedded-devel+owner@lists.openembedded.org > > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > > -=-=-=-=-=-=-=-=-=-=-=- > >
I fixed it with https://github.com/YoeDistro/yoe-distro/pull/882/commits/359ac8dbaef7e531143b9ad48e1a7d8824efa6f6 On Wed, Dec 20, 2023 at 12:45 PM Alexander Kanavin <alex.kanavin@gmail.com> wrote: > > | npm ERR! ModuleNotFoundError: No module named 'packaging' > > Looks like python3-packaging needs to be in RDEPENDS as well, I'll > make a fix (or you can quickly try to see if it resolves the error). > > Alex > > On Wed, 20 Dec 2023 at 20:12, Khem Raj <raj.khem@gmail.com> wrote: > > > > this is regressing some dependent recipe e.g. simpleiot which depends > > on gyp from nodejs-native > > > > https://github.com/YoeDistro/yoe-distro/actions/runs/7258317572/job/19834510249?pr=882 > > > > On Thu, Dec 14, 2023 at 11:53 PM Alexander Kanavin > > <alex.kanavin@gmail.com> wrote: > > > > > > Signed-off-by: Alexander Kanavin <alex@linutronix.de> > > > --- > > > ...001-build-fix-build-with-Python-3.12.patch | 55 ++++++++++++++++ > > > .../0001-gyp-resolve-python-3.12-issues.patch | 63 +++++++++++++++++++ > > > .../recipes-devtools/nodejs/nodejs_20.8.1.bb | 4 +- > > > 3 files changed, 121 insertions(+), 1 deletion(-) > > > create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch > > > create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch > > > > > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch > > > new file mode 100644 > > > index 000000000..39026d074 > > > --- /dev/null > > > +++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch > > > @@ -0,0 +1,55 @@ > > > +From 656f6c91f1da7f1e1ffb01e2de7d9026a84958b5 Mon Sep 17 00:00:00 2001 > > > +From: Luigi Pinca <luigipinca@gmail.com> > > > +Date: Wed, 8 Nov 2023 21:20:53 +0100 > > > +Subject: [PATCH] build: fix build with Python 3.12 > > > + > > > +Replace `distutils.version.StrictVersion` with > > > +`packaging.version.Version`. > > > + > > > +Refs: https://github.com/nodejs/node/pull/50209#issuecomment-1795852539 > > > +PR-URL: https://github.com/nodejs/node/pull/50582 > > > +Reviewed-By: Richard Lau <rlau@redhat.com> > > > +Reviewed-By: Chengzhong Wu <legendecas@gmail.com> > > > + > > > +Upstream-Status: Backport [https://github.com/nodejs/node/commit/95534ad82f4e33f53fd50efe633d43f8da70cba6] > > > +Signed-off-by: Alexander Kanavin <alex@linutronix.de> > > > +--- > > > + configure.py | 11 +++++------ > > > + 1 file changed, 5 insertions(+), 6 deletions(-) > > > + > > > +diff --git a/configure.py b/configure.py > > > +index 62f041ce..18fe7c14 100755 > > > +--- a/configure.py > > > ++++ b/configure.py > > > +@@ -14,8 +14,6 @@ import bz2 > > > + import io > > > + from pathlib import Path > > > + > > > +-from distutils.version import StrictVersion > > > +- > > > + # If not run from node/, cd to node/. > > > + os.chdir(Path(__file__).parent) > > > + > > > +@@ -30,6 +28,7 @@ tools_path = Path('tools') > > > + > > > + sys.path.insert(0, str(tools_path / 'gyp' / 'pylib')) > > > + from gyp.common import GetFlavor > > > ++from packaging.version import Version > > > + > > > + # imports in tools/configure.d > > > + sys.path.insert(0, str(tools_path / 'configure.d')) > > > +@@ -1565,10 +1564,10 @@ def configure_openssl(o): > > > + # supported asm compiler for AVX2. See https://github.com/openssl/openssl/ > > > + # blob/OpenSSL_1_1_0-stable/crypto/modes/asm/aesni-gcm-x86_64.pl#L52-L69 > > > + openssl110_asm_supported = \ > > > +- ('gas_version' in variables and StrictVersion(variables['gas_version']) >= StrictVersion('2.23')) or \ > > > +- ('xcode_version' in variables and StrictVersion(variables['xcode_version']) >= StrictVersion('5.0')) or \ > > > +- ('llvm_version' in variables and StrictVersion(variables['llvm_version']) >= StrictVersion('3.3')) or \ > > > +- ('nasm_version' in variables and StrictVersion(variables['nasm_version']) >= StrictVersion('2.10')) > > > ++ ('gas_version' in variables and Version(variables['gas_version']) >= Version('2.23')) or \ > > > ++ ('xcode_version' in variables and Version(variables['xcode_version']) >= Version('5.0')) or \ > > > ++ ('llvm_version' in variables and Version(variables['llvm_version']) >= Version('3.3')) or \ > > > ++ ('nasm_version' in variables and Version(variables['nasm_version']) >= Version('2.10')) > > > + > > > + if is_x86 and not openssl110_asm_supported: > > > + error('''Did not find a new enough assembler, install one or build with > > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch > > > new file mode 100644 > > > index 000000000..9d878dfb8 > > > --- /dev/null > > > +++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch > > > @@ -0,0 +1,63 @@ > > > +From bf8c96ba6936050ed4a0de5bc8aeeaf2b3c50dc1 Mon Sep 17 00:00:00 2001 > > > +From: Alexander Kanavin <alex@linutronix.de> > > > +Date: Thu, 7 Dec 2023 12:54:30 +0100 > > > +Subject: [PATCH] gyp: resolve python 3.12 issues > > > + > > > +Upstream has updated gyp wholesale in the main branch, so > > > +this patch can be dropped in due time. > > > + > > > +Upstream-Status: Inappropriate [issue will be fixed upstream with the next nodejs LTS update] > > > + > > > +Signed-off-by: Alexander Kanavin <alex@linutronix.de> > > > +--- > > > + deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py | 4 ++-- > > > + tools/gyp/pylib/gyp/input.py | 4 ++-- > > > + 2 files changed, 4 insertions(+), 4 deletions(-) > > > + > > > +diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py > > > +index d9699a0a..173e9465 100644 > > > +--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py > > > ++++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py > > > +@@ -16,7 +16,7 @@ import subprocess > > > + import sys > > > + import threading > > > + import traceback > > > +-from distutils.version import StrictVersion > > > ++from packaging.version import Version > > > + from gyp.common import GypError > > > + from gyp.common import OrderedSet > > > + > > > +@@ -1183,7 +1183,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil > > > + else: > > > + ast_code = compile(cond_expr_expanded, "<string>", "eval") > > > + cached_conditions_asts[cond_expr_expanded] = ast_code > > > +- env = {"__builtins__": {}, "v": StrictVersion} > > > ++ env = {"__builtins__": {}, "v": Version} > > > + if eval(ast_code, env, variables): > > > + return true_dict > > > + return false_dict > > > +diff --git a/tools/gyp/pylib/gyp/input.py b/tools/gyp/pylib/gyp/input.py > > > +index 354958bf..ab6112e5 100644 > > > +--- a/tools/gyp/pylib/gyp/input.py > > > ++++ b/tools/gyp/pylib/gyp/input.py > > > +@@ -16,7 +16,7 @@ import subprocess > > > + import sys > > > + import threading > > > + import traceback > > > +-from distutils.version import StrictVersion > > > ++from packaging.version import Version > > > + from gyp.common import GypError > > > + from gyp.common import OrderedSet > > > + > > > +@@ -1190,7 +1190,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil > > > + else: > > > + ast_code = compile(cond_expr_expanded, "<string>", "eval") > > > + cached_conditions_asts[cond_expr_expanded] = ast_code > > > +- env = {"__builtins__": {}, "v": StrictVersion} > > > ++ env = {"__builtins__": {}, "v": Version} > > > + if eval(ast_code, env, variables): > > > + return true_dict > > > + return false_dict > > > +-- > > > +2.39.2 > > > + > > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb > > > index 65f4eb3f3..0ca0c1498 100644 > > > --- a/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb > > > +++ b/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb > > > @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=162595a4a2f3453a0534e60b0afe4e7b" > > > > > > CVE_PRODUCT = "nodejs node.js" > > > > > > -DEPENDS = "openssl file-replacement-native" > > > +DEPENDS = "openssl file-replacement-native python3-packaging-native" > > > DEPENDS:append:class-target = " qemu-native" > > > DEPENDS:append:class-native = " c-ares-native" > > > > > > @@ -27,6 +27,8 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \ > > > file://0001-Revert-io_uring-changes-from-libuv-1.46.0.patch \ > > > file://0002-Revert-io_uring-changes-from-libuv-1.45.0.patch \ > > > file://run-ptest \ > > > + file://0001-build-fix-build-with-Python-3.12.patch \ > > > + file://0001-gyp-resolve-python-3.12-issues.patch \ > > > " > > > > > > SRC_URI:append:class-target = " \ > > > -- > > > 2.39.2 > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > > Links: You receive all messages sent to this group. > > > View/Reply Online (#107513): https://lists.openembedded.org/g/openembedded-devel/message/107513 > > > Mute This Topic: https://lists.openembedded.org/mt/103186676/1997914 > > > Group Owner: openembedded-devel+owner@lists.openembedded.org > > > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > > > -=-=-=-=-=-=-=-=-=-=-=- > > >
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch new file mode 100644 index 000000000..39026d074 --- /dev/null +++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch @@ -0,0 +1,55 @@ +From 656f6c91f1da7f1e1ffb01e2de7d9026a84958b5 Mon Sep 17 00:00:00 2001 +From: Luigi Pinca <luigipinca@gmail.com> +Date: Wed, 8 Nov 2023 21:20:53 +0100 +Subject: [PATCH] build: fix build with Python 3.12 + +Replace `distutils.version.StrictVersion` with +`packaging.version.Version`. + +Refs: https://github.com/nodejs/node/pull/50209#issuecomment-1795852539 +PR-URL: https://github.com/nodejs/node/pull/50582 +Reviewed-By: Richard Lau <rlau@redhat.com> +Reviewed-By: Chengzhong Wu <legendecas@gmail.com> + +Upstream-Status: Backport [https://github.com/nodejs/node/commit/95534ad82f4e33f53fd50efe633d43f8da70cba6] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + configure.py | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/configure.py b/configure.py +index 62f041ce..18fe7c14 100755 +--- a/configure.py ++++ b/configure.py +@@ -14,8 +14,6 @@ import bz2 + import io + from pathlib import Path + +-from distutils.version import StrictVersion +- + # If not run from node/, cd to node/. + os.chdir(Path(__file__).parent) + +@@ -30,6 +28,7 @@ tools_path = Path('tools') + + sys.path.insert(0, str(tools_path / 'gyp' / 'pylib')) + from gyp.common import GetFlavor ++from packaging.version import Version + + # imports in tools/configure.d + sys.path.insert(0, str(tools_path / 'configure.d')) +@@ -1565,10 +1564,10 @@ def configure_openssl(o): + # supported asm compiler for AVX2. See https://github.com/openssl/openssl/ + # blob/OpenSSL_1_1_0-stable/crypto/modes/asm/aesni-gcm-x86_64.pl#L52-L69 + openssl110_asm_supported = \ +- ('gas_version' in variables and StrictVersion(variables['gas_version']) >= StrictVersion('2.23')) or \ +- ('xcode_version' in variables and StrictVersion(variables['xcode_version']) >= StrictVersion('5.0')) or \ +- ('llvm_version' in variables and StrictVersion(variables['llvm_version']) >= StrictVersion('3.3')) or \ +- ('nasm_version' in variables and StrictVersion(variables['nasm_version']) >= StrictVersion('2.10')) ++ ('gas_version' in variables and Version(variables['gas_version']) >= Version('2.23')) or \ ++ ('xcode_version' in variables and Version(variables['xcode_version']) >= Version('5.0')) or \ ++ ('llvm_version' in variables and Version(variables['llvm_version']) >= Version('3.3')) or \ ++ ('nasm_version' in variables and Version(variables['nasm_version']) >= Version('2.10')) + + if is_x86 and not openssl110_asm_supported: + error('''Did not find a new enough assembler, install one or build with diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch new file mode 100644 index 000000000..9d878dfb8 --- /dev/null +++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch @@ -0,0 +1,63 @@ +From bf8c96ba6936050ed4a0de5bc8aeeaf2b3c50dc1 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Thu, 7 Dec 2023 12:54:30 +0100 +Subject: [PATCH] gyp: resolve python 3.12 issues + +Upstream has updated gyp wholesale in the main branch, so +this patch can be dropped in due time. + +Upstream-Status: Inappropriate [issue will be fixed upstream with the next nodejs LTS update] + +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py | 4 ++-- + tools/gyp/pylib/gyp/input.py | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py +index d9699a0a..173e9465 100644 +--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py ++++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py +@@ -16,7 +16,7 @@ import subprocess + import sys + import threading + import traceback +-from distutils.version import StrictVersion ++from packaging.version import Version + from gyp.common import GypError + from gyp.common import OrderedSet + +@@ -1183,7 +1183,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil + else: + ast_code = compile(cond_expr_expanded, "<string>", "eval") + cached_conditions_asts[cond_expr_expanded] = ast_code +- env = {"__builtins__": {}, "v": StrictVersion} ++ env = {"__builtins__": {}, "v": Version} + if eval(ast_code, env, variables): + return true_dict + return false_dict +diff --git a/tools/gyp/pylib/gyp/input.py b/tools/gyp/pylib/gyp/input.py +index 354958bf..ab6112e5 100644 +--- a/tools/gyp/pylib/gyp/input.py ++++ b/tools/gyp/pylib/gyp/input.py +@@ -16,7 +16,7 @@ import subprocess + import sys + import threading + import traceback +-from distutils.version import StrictVersion ++from packaging.version import Version + from gyp.common import GypError + from gyp.common import OrderedSet + +@@ -1190,7 +1190,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil + else: + ast_code = compile(cond_expr_expanded, "<string>", "eval") + cached_conditions_asts[cond_expr_expanded] = ast_code +- env = {"__builtins__": {}, "v": StrictVersion} ++ env = {"__builtins__": {}, "v": Version} + if eval(ast_code, env, variables): + return true_dict + return false_dict +-- +2.39.2 + diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb index 65f4eb3f3..0ca0c1498 100644 --- a/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb +++ b/meta-oe/recipes-devtools/nodejs/nodejs_20.8.1.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=162595a4a2f3453a0534e60b0afe4e7b" CVE_PRODUCT = "nodejs node.js" -DEPENDS = "openssl file-replacement-native" +DEPENDS = "openssl file-replacement-native python3-packaging-native" DEPENDS:append:class-target = " qemu-native" DEPENDS:append:class-native = " c-ares-native" @@ -27,6 +27,8 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \ file://0001-Revert-io_uring-changes-from-libuv-1.46.0.patch \ file://0002-Revert-io_uring-changes-from-libuv-1.45.0.patch \ file://run-ptest \ + file://0001-build-fix-build-with-Python-3.12.patch \ + file://0001-gyp-resolve-python-3.12-issues.patch \ " SRC_URI:append:class-target = " \
Signed-off-by: Alexander Kanavin <alex@linutronix.de> --- ...001-build-fix-build-with-Python-3.12.patch | 55 ++++++++++++++++ .../0001-gyp-resolve-python-3.12-issues.patch | 63 +++++++++++++++++++ .../recipes-devtools/nodejs/nodejs_20.8.1.bb | 4 +- 3 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch