Github messages for voidlinux
 help / color / mirror / Atom feed
From: paper42 <paper42@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] [NOMERGE] nodejs: update to 18.12.1.
Date: Thu, 22 Dec 2022 17:44:03 +0100	[thread overview]
Message-ID: <20221222164403.3br1JDop1Ymb9Tqqw15BnqMpHS23yUnxvc8sT9Waw3U@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-41239@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 1433 bytes --]

There is an updated pull request by paper42 against master on the void-packages repository

https://github.com/paper42/void-packages nodejs-18
https://github.com/void-linux/void-packages/pull/41239

[NOMERGE] nodejs: update to 18.12.1.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

#### Blockers
- [ ] element-desktop - nodejs 18 not supported upstream
- [ ] vscode - nodejs 18 not supported upstream
- [ ] ... maybe more, rebuilds are still running

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/41239.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-nodejs-18-41239.patch --]
[-- Type: text/x-diff, Size: 15809 bytes --]

From 19066d474abdb9c2ca2b8e9414ed733e08d21c34 Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Thu, 22 Dec 2022 10:43:50 +0100
Subject: [PATCH 1/2] nodejs: update to 18.12.1.

---
 ...s-v8-src-trap-handler-trap-handler.h.patch | 31 --------
 srcpkgs/nodejs/patches/python3.11.patch       | 74 +++++++++++++++++++
 srcpkgs/nodejs/template                       |  4 +-
 3 files changed, 76 insertions(+), 33 deletions(-)
 delete mode 100644 srcpkgs/nodejs/patches/999-deps-v8-src-trap-handler-trap-handler.h.patch
 create mode 100644 srcpkgs/nodejs/patches/python3.11.patch

diff --git a/srcpkgs/nodejs/patches/999-deps-v8-src-trap-handler-trap-handler.h.patch b/srcpkgs/nodejs/patches/999-deps-v8-src-trap-handler-trap-handler.h.patch
deleted file mode 100644
index 56529af97223..000000000000
--- a/srcpkgs/nodejs/patches/999-deps-v8-src-trap-handler-trap-handler.h.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-https://github.com/nxhack/openwrt-node-packages/blob/master/node/patches/v16.x/999-deps-v8-src-trap-handler-trap-handler.h.patch
-
---- a/deps/v8/src/trap-handler/trap-handler.h
-+++ b/deps/v8/src/trap-handler/trap-handler.h
-@@ -17,19 +17,16 @@ namespace v8 {
- namespace internal {
- namespace trap_handler {
- 
--// X64 on Linux, Windows, MacOS, FreeBSD.
--#if V8_HOST_ARCH_X64 && V8_TARGET_ARCH_X64 &&                        \
--    ((V8_OS_LINUX && !V8_OS_ANDROID) || V8_OS_WIN || V8_OS_MACOSX || \
--     V8_OS_FREEBSD)
-+#if V8_TARGET_ARCH_X64 && V8_OS_LINUX && !V8_OS_ANDROID
- #define V8_TRAP_HANDLER_SUPPORTED true
--// Arm64 (non-simulator) on Mac.
--#elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && V8_OS_MACOSX
-+#elif V8_TARGET_ARCH_X64 && V8_OS_WIN
- #define V8_TRAP_HANDLER_SUPPORTED true
--// Arm64 simulator on x64 on Linux or Mac.
--#elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_X64 && (V8_OS_LINUX || V8_OS_MACOSX)
--#define V8_TRAP_HANDLER_VIA_SIMULATOR
-+#elif V8_TARGET_ARCH_X64 && V8_OS_MACOSX
-+#define V8_TRAP_HANDLER_SUPPORTED true
-+#elif V8_TARGET_ARCH_X64 && V8_OS_FREEBSD
-+#define V8_TRAP_HANDLER_SUPPORTED true
-+#elif V8_HOST_ARCH_ARM64 && V8_TARGET_ARCH_ARM64 && V8_OS_MACOSX
- #define V8_TRAP_HANDLER_SUPPORTED true
--// Everything else is unsupported.
- #else
- #define V8_TRAP_HANDLER_SUPPORTED false
- #endif
diff --git a/srcpkgs/nodejs/patches/python3.11.patch b/srcpkgs/nodejs/patches/python3.11.patch
new file mode 100644
index 000000000000..7b9dbcb99584
--- /dev/null
+++ b/srcpkgs/nodejs/patches/python3.11.patch
@@ -0,0 +1,74 @@
+From cf748ad2b7f760e2df1bc8a811f887161b892534 Mon Sep 17 00:00:00 2001
+From: Luigi Pinca <luigipinca@gmail.com>
+Date: Wed, 26 Oct 2022 15:01:59 +0200
+Subject: [PATCH] build: support Python 3.11
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+PR-URL: https://github.com/nodejs/node/pull/45191
+Reviewed-By: Rich Trott <rtrott@gmail.com>
+Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
+Reviewed-By: Richard Lau <rlau@redhat.com>
+Reviewed-By: Christian Clauss <cclauss@me.com>
+Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
+Reviewed-By: James M Snell <jasnell@gmail.com>
+Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
+Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
+---
+ BUILDING.md | 6 +++---
+ configure   | 3 ++-
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/BUILDING.md b/BUILDING.md
+index 0dd954880131..e66aa314d329 100644
+--- a/BUILDING.md
++++ b/BUILDING.md
+@@ -225,7 +225,7 @@ The Node.js project supports Python >= 3 for building and testing.
+ 
+ * `gcc` and `g++` >= 8.3 or newer
+ * GNU Make 3.81 or newer
+-* Python 3.6, 3.7, 3.8, 3.9, or 3.10 (see note above)
++* Python >=3.6 <=3.11 (see note above)
+   * For test coverage, your Python installation must include pip.
+ 
+ Installation via Linux package manager can be achieved with:
+@@ -241,7 +241,7 @@ FreeBSD and OpenBSD users may also need to install `libexecinfo`.
+ #### macOS prerequisites
+ 
+ * Xcode Command Line Tools >= 11 for macOS
+-* Python 3.6, 3.7, 3.8, 3.9, or 3.10 (see note above)
++* Python >=3.6 <=3.11 (see note above)
+   * For test coverage, your Python installation must include pip.
+ 
+ macOS users can install the `Xcode Command Line Tools` by running
+@@ -565,7 +565,7 @@ to run it again before invoking `make -j4`.
+ 
+ ##### Option 1: Manual install
+ 
+-* [Python 3.10](https://www.microsoft.com/en-us/p/python-310/9pjpw5ldxlz5)
++* [Python 3.11](https://apps.microsoft.com/store/detail/python-311/9NRWMJP3717K)
+ * The "Desktop development with C++" workload from
+   [Visual Studio 2019](https://visualstudio.microsoft.com/vs/older-downloads/#visual-studio-2019-and-other-products) or
+   the "C++ build tools" workload from the
+diff --git a/configure b/configure
+index 6ef2da2e631e..fefb313c9cd1 100755
+--- a/configure
++++ b/configure
+@@ -4,6 +4,7 @@
+ # Note that the mix of single and double quotes is intentional,
+ # as is the fact that the ] goes on a new line.
+ _=[ 'exec' '/bin/sh' '-c' '''
++command -v python3.11 >/dev/null && exec python3.11 "$0" "$@"
+ command -v python3.10 >/dev/null && exec python3.10 "$0" "$@"
+ command -v python3.9 >/dev/null && exec python3.9 "$0" "$@"
+ command -v python3.8 >/dev/null && exec python3.8 "$0" "$@"
+@@ -22,7 +23,7 @@ except ImportError:
+   from distutils.spawn import find_executable as which
+ 
+ print('Node.js configure: Found Python {}.{}.{}...'.format(*sys.version_info))
+-acceptable_pythons = ((3, 10), (3, 9), (3, 8), (3, 7), (3, 6))
++acceptable_pythons = ((3, 11), (3, 10), (3, 9), (3, 8), (3, 7), (3, 6))
+ if sys.version_info[:2] in acceptable_pythons:
+   import configure
+ else:
diff --git a/srcpkgs/nodejs/template b/srcpkgs/nodejs/template
index 0fee0a8ec725..43d70f938ed3 100644
--- a/srcpkgs/nodejs/template
+++ b/srcpkgs/nodejs/template
@@ -1,6 +1,6 @@
 # Template file for 'nodejs'
 pkgname=nodejs
-version=16.19.0
+version=18.12.1
 revision=1
 # Need these for host v8 for torque, see https://github.com/nodejs/node/pull/21079
 hostmakedepends="which pkg-config python3 libatomic-devel zlib-devel
@@ -15,7 +15,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="MIT"
 homepage="https://nodejs.org/"
 distfiles="https://nodejs.org/dist/v${version}/node-v${version}.tar.gz"
-checksum=8b8a2939fa5f654ff61cae29b12118c24109273458ecbe6162ad8a8858309e0d
+checksum=ba8174dda00d5b90943f37c6a180a1d37c861d91e04a4cb38dc1c0c74981c186
 python_version=3
 
 build_options="ssl libuv icu nghttp2 cares"

From 81e23fab9ff14be4838070c72b01133075ce3f3a Mon Sep 17 00:00:00 2001
From: Zapeth <steami@live.at>
Date: Thu, 22 Dec 2022 17:00:45 +0100
Subject: [PATCH 2/2] firefox-esr: fix build with Python 3.11

---
 .../patches/fix-iomode-python3.11.patch       | 107 ++++++++++++++++++
 .../firefox-esr/patches/ply-python3.11.patch  |  85 ++++++++++++++
 2 files changed, 192 insertions(+)
 create mode 100644 srcpkgs/firefox-esr/patches/fix-iomode-python3.11.patch
 create mode 100644 srcpkgs/firefox-esr/patches/ply-python3.11.patch

diff --git a/srcpkgs/firefox-esr/patches/fix-iomode-python3.11.patch b/srcpkgs/firefox-esr/patches/fix-iomode-python3.11.patch
new file mode 100644
index 000000000000..3c13bc656d54
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-iomode-python3.11.patch
@@ -0,0 +1,107 @@
+Support for 'U' mode was removed in python 3.11, see https://bugs.python.org/issue37330
+
+diff --git a/dom/base/usecounters.py b/dom/base/usecounters.py
+index 780e3b3..7e2c714 100644
+--- a/dom/base/usecounters.py
++++ b/dom/base/usecounters.py
+@@ -8,7 +8,7 @@ import re
+ 
+ def read_conf(conf_filename):
+     # Can't read/write from a single StringIO, so make a new one for reading.
+-    stream = open(conf_filename, "rU")
++    stream = open(conf_filename, "r")
+ 
+     def parse_counters(stream):
+         for line_num, line in enumerate(stream):
+diff --git a/python/mozbuild/mozbuild/action/process_define_files.py b/python/mozbuild/mozbuild/action/process_define_files.py
+index f1d401a..aca59d0 100644
+--- a/python/mozbuild/mozbuild/action/process_define_files.py
++++ b/python/mozbuild/mozbuild/action/process_define_files.py
+@@ -36,7 +36,7 @@ def process_define_file(output, input):
+     ) and not config.substs.get("JS_STANDALONE"):
+         config = PartialConfigEnvironment(mozpath.join(topobjdir, "js", "src"))
+ 
+-    with open(path, "rU") as input:
++    with open(path, "r") as input:
+         r = re.compile(
+             "^\s*#\s*(?P<cmd>[a-z]+)(?:\s+(?P<name>\S+)(?:\s+(?P<value>\S+))?)?", re.U
+         )
+diff --git a/python/mozbuild/mozbuild/backend/base.py b/python/mozbuild/mozbuild/backend/base.py
+index 7bc1986..b64a709 100644
+--- a/python/mozbuild/mozbuild/backend/base.py
++++ b/python/mozbuild/mozbuild/backend/base.py
+@@ -272,7 +272,7 @@ class BuildBackend(LoggingMixin):
+         return status
+ 
+     @contextmanager
+-    def _write_file(self, path=None, fh=None, readmode="rU"):
++    def _write_file(self, path=None, fh=None, readmode="r"):
+         """Context manager to write a file.
+ 
+         This is a glorified wrapper around FileAvoidWrite with integration to
+diff --git a/python/mozbuild/mozbuild/preprocessor.py b/python/mozbuild/mozbuild/preprocessor.py
+index f7820b9..857f1a6 100644
+--- a/python/mozbuild/mozbuild/preprocessor.py
++++ b/python/mozbuild/mozbuild/preprocessor.py
+@@ -531,7 +531,7 @@ class Preprocessor:
+ 
+         if args:
+             for f in args:
+-                with io.open(f, "rU", encoding="utf-8") as input:
++                with io.open(f, "r", encoding="utf-8") as input:
+                     self.processFile(input=input, output=out)
+             if depfile:
+                 mk = Makefile()
+@@ -860,7 +860,7 @@ class Preprocessor:
+                     args = self.applyFilters(args)
+                 if not os.path.isabs(args):
+                     args = os.path.join(self.curdir, args)
+-                args = io.open(args, "rU", encoding="utf-8")
++                args = io.open(args, "r", encoding="utf-8")
+             except Preprocessor.Error:
+                 raise
+             except Exception:
+@@ -914,7 +914,7 @@ class Preprocessor:
+ def preprocess(includes=[sys.stdin], defines={}, output=sys.stdout, marker="#"):
+     pp = Preprocessor(defines=defines, marker=marker)
+     for f in includes:
+-        with io.open(f, "rU", encoding="utf-8") as input:
++        with io.open(f, "r", encoding="utf-8") as input:
+             pp.processFile(input=input, output=output)
+     return pp.includes
+ 
+diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
+index b09f164..4f1e0cd 100644
+--- a/python/mozbuild/mozbuild/util.py
++++ b/python/mozbuild/mozbuild/util.py
+@@ -236,7 +236,7 @@ class FileAvoidWrite(BytesIO):
+     still occur, as well as diff capture if requested.
+     """
+ 
+-    def __init__(self, filename, capture_diff=False, dry_run=False, readmode="rU"):
++    def __init__(self, filename, capture_diff=False, dry_run=False, readmode="r"):
+         BytesIO.__init__(self)
+         self.name = filename
+         assert type(capture_diff) == bool
+diff --git a/python/mozbuild/mozpack/files.py b/python/mozbuild/mozpack/files.py
+index 1d8a1ed..a295a67 100644
+--- a/python/mozbuild/mozpack/files.py
++++ b/python/mozbuild/mozpack/files.py
+@@ -554,7 +554,7 @@ class PreprocessedFile(BaseFile):
+         pp = Preprocessor(defines=self.defines, marker=self.marker)
+         pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
+ 
+-        with _open(self.path, "rU") as input:
++        with _open(self.path, "r") as input:
+             with _open(os.devnull, "w") as output:
+                 pp.processFile(input=input, output=output)
+ 
+@@ -611,7 +611,7 @@ class PreprocessedFile(BaseFile):
+         pp = Preprocessor(defines=self.defines, marker=self.marker)
+         pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
+ 
+-        with _open(self.path, "rU") as input:
++        with _open(self.path, "r") as input:
+             pp.processFile(input=input, output=dest, depfile=deps_out)
+ 
+         dest.close()
diff --git a/srcpkgs/firefox-esr/patches/ply-python3.11.patch b/srcpkgs/firefox-esr/patches/ply-python3.11.patch
new file mode 100644
index 000000000000..8d1415a4b369
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/ply-python3.11.patch
@@ -0,0 +1,85 @@
+The Ply lexer, which doesn't seem too active a project, wraps regular
+expressions from grammar definitions in its own regular expressions that name
+groups. This breaks re.compile in Python >= 3.11 when the original expressions
+contain global flags, because the compiler requires that global flags appear at
+the start of the expression instead of inside the named group.
+
+This patch wraps re.compile to scan the expression for any global flags and,
+when found, moves them to the start of the expression.
+
+--- a/third_party/python/ply/ply/lex.py
++++ b/third_party/python/ply/ply/lex.py
+@@ -49,6 +49,37 @@
+     # Python 3.0
+     StringTypes = (str, bytes)
+ 
++
++def _re_compile(expression, *args, **kwargs):
++    '''
++    Rearrange global flags in the regular expression to appear at the
++    beginning, avoiding deprecation warnings on Python < 3.11 and hard
++    errors on Python >= 3.11.
++    '''
++    flags = set()
++    remainder = ''
++
++    pattern = re.compile(r'\(\?([aiLmsux]+)\)')
++    while m := pattern.search(expression):
++        # Location of the global flag spec
++        l, h = m.span(0)
++        # Accumulate global flags from this spec
++        flags.update(m.group(1))
++        # Capture all text leading up to the match
++        remainder += expression[:l]
++        # Trim to the end fo the flag spec
++        expression = expression[h:]
++
++    # Any remaining expression contains no flags
++    remainder += expression
++
++    # If there are flags, they belong at the beginning
++    if flags:
++        remainder = f'(?{"".join(sorted(flags))})' + remainder
++
++    return re.compile(remainder, *args, **kwargs)
++
++
+ # This regular expression is used to match valid token names
+ _is_identifier = re.compile(r'^[a-zA-Z0-9_]+$')
+ 
+@@ -230,7 +261,7 @@
+             titem = []
+             txtitem = []
+             for pat, func_name in lre:
+-                titem.append((re.compile(pat, lextab._lexreflags), _names_to_funcs(func_name, fdict)))
++                titem.append((_re_compile(pat, lextab._lexreflags), _names_to_funcs(func_name, fdict)))
+ 
+             self.lexstatere[statename] = titem
+             self.lexstateretext[statename] = txtitem
+@@ -495,7 +526,7 @@
+         return []
+     regex = '|'.join(relist)
+     try:
+-        lexre = re.compile(regex, reflags)
++        lexre = _re_compile(regex, reflags)
+ 
+         # Build the index to function map for the matching engine
+         lexindexfunc = [None] * (max(lexre.groupindex.values()) + 1)
+@@ -758,7 +789,7 @@
+                     continue
+ 
+                 try:
+-                    c = re.compile('(?P<%s>%s)' % (fname, _get_regex(f)), self.reflags)
++                    c = _re_compile('(?P<%s>%s)' % (fname, _get_regex(f)), self.reflags)
+                     if c.match(''):
+                         self.log.error("%s:%d: Regular expression for rule '%s' matches empty string", file, line, f.__name__)
+                         self.error = True
+@@ -782,7 +813,7 @@
+                     continue
+ 
+                 try:
+-                    c = re.compile('(?P<%s>%s)' % (name, r), self.reflags)
++                    c = _re_compile('(?P<%s>%s)' % (name, r), self.reflags)
+                     if (c.match('')):
+                         self.log.error("Regular expression for rule '%s' matches empty string", name)
+                         self.error = True

  reply	other threads:[~2022-12-22 16:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-22 16:29 [PR PATCH] " paper42
2022-12-22 16:44 ` paper42 [this message]
2022-12-24 23:44 ` [PR PATCH] [Updated] " paper42
2023-03-02 20:45 ` paper42
2023-03-06 22:46 ` dkwo
2023-03-23 10:13 ` mhmdanas
2023-06-02 20:06 ` [PR PATCH] [Updated] " paper42
2023-06-03 19:35 ` nodejs: update to 18.16.0 paper42
2023-06-03 19:47 ` paper42
2023-06-03 19:47 ` [PR PATCH] [Closed]: " paper42

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221222164403.3br1JDop1Ymb9Tqqw15BnqMpHS23yUnxvc8sT9Waw3U@z \
    --to=paper42@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).