agriyakhetarpal commented on code in PR #47330:
URL: https://github.com/apache/arrow/pull/47330#discussion_r3789762179


##########
ci/docker/conda-python-emscripten.dockerfile:
##########
@@ -18,32 +18,37 @@
 ARG repo
 ARG arch
 ARG arch_short
-ARG python="3.12"
+ARG python="3.14"
 FROM --platform=linux/${arch} ${repo}:${arch_short}-conda-python-${python}
 
 ARG selenium_version="4.41.0"
-ARG pyodide_version="0.26.0"
+ARG pyodide_version="314.0.4"
 ARG chrome_version="latest"
-ARG required_python_min="(3,12)"
-# fail if python version < 3.12
+ARG required_python_min="(3,14)"
+# fail if python version < 3.14
 RUN echo "check PYTHON>=${required_python_min}" && python -c "import 
sys;sys.exit(0 if sys.version_info>=${required_python_min} else 1)"
 
-# install selenium and recent pyodide-build and recent python
+RUN apt-get update -y -q && \
+    apt-get install -y -q --no-install-recommends \
+        libatomic1 && \
+    apt-get clean && \
+    rm -rf /var/lib/apt/lists/*
 
 # needs to be a login shell so ~/.profile is read
 SHELL ["/bin/bash", "--login", "-c", "-o", "pipefail"]
 
+# install selenium and recent pyodide-build and recent python
 RUN python -m pip install --no-cache-dir selenium==${selenium_version} && \
     python -m pip install --no-cache-dir --upgrade 
pyodide-build>=${pyodide_version}
 
 # install pyodide dist directory to /pyodide
 RUN 
pyodide_dist_url="https://github.com/pyodide/pyodide/releases/download/${pyodide_version}/pyodide-${pyodide_version}.tar.bz2";
 && \
     wget -q "${pyodide_dist_url}" -O- | tar -xj -C /
 
-# install node 20 (needed for async call support)
+# install node 22 (needed for async call support and JSPI)

Review Comment:
   ```suggestion
   # install node 24 (needed for async call support and JSPI)
   ```



##########
cpp/cmake_modules/ThirdpartyToolchain.cmake:
##########
@@ -2183,6 +2183,10 @@ function(build_protobuf)
     set(PROTOBUF_HOST_CMAKE_ARGS
         "-DCMAKE_CXX_FLAGS="
         "-DCMAKE_C_FLAGS="
+        # Explicitly set the C++ standard for the host build. Without this,
+        # Abseil may be compiled with the host compiler's default standard,
+        # which can be older than C++17.
+        "-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}"

Review Comment:
   I hope this change is fine to keep here; this happened to me because I am 
using AppleClang 21 on my macOS machine to cross-compile for Emscripten. 
   
   The reason is that in the host `protoc` build, where `CMAKE_CXX_FLAGS` is 
blanked and no standard is set, `absl` compiles as C++14 and uses 
`absl::string_view`. That results in an ABI mismatch because Protobuf's targets 
reference the `std::string_view` signatures (since Protobuf compiles to C++17 
or newer).
   
   (I guess no one has hit this before, since the CI job exercises going from 
Linux to Emscripten, where `gcc` defaults to C++17)
   



##########
ci/docker/conda-python-emscripten.dockerfile:
##########
@@ -18,32 +18,37 @@
 ARG repo
 ARG arch
 ARG arch_short
-ARG python="3.12"
+ARG python="3.14"
 FROM --platform=linux/${arch} ${repo}:${arch_short}-conda-python-${python}
 
 ARG selenium_version="4.41.0"
-ARG pyodide_version="0.26.0"
+ARG pyodide_version="314.0.4"
 ARG chrome_version="latest"
-ARG required_python_min="(3,12)"
-# fail if python version < 3.12
+ARG required_python_min="(3,14)"
+# fail if python version < 3.14
 RUN echo "check PYTHON>=${required_python_min}" && python -c "import 
sys;sys.exit(0 if sys.version_info>=${required_python_min} else 1)"
 
-# install selenium and recent pyodide-build and recent python
+RUN apt-get update -y -q && \
+    apt-get install -y -q --no-install-recommends \
+        libatomic1 && \
+    apt-get clean && \
+    rm -rf /var/lib/apt/lists/*
 
 # needs to be a login shell so ~/.profile is read
 SHELL ["/bin/bash", "--login", "-c", "-o", "pipefail"]
 
+# install selenium and recent pyodide-build and recent python
 RUN python -m pip install --no-cache-dir selenium==${selenium_version} && \
     python -m pip install --no-cache-dir --upgrade 
pyodide-build>=${pyodide_version}
 
 # install pyodide dist directory to /pyodide
 RUN 
pyodide_dist_url="https://github.com/pyodide/pyodide/releases/download/${pyodide_version}/pyodide-${pyodide_version}.tar.bz2";
 && \
     wget -q "${pyodide_dist_url}" -O- | tar -xj -C /
 
-# install node 20 (needed for async call support)
+# install node 22 (needed for async call support and JSPI)
 # and pthread-stubs for build, and unzip needed for chrome build to work
 # xz is needed by emsdk to extract node tarballs
-RUN conda install nodejs=20 unzip pthread-stubs make xz -c conda-forge
+RUN conda install nodejs=22 unzip pthread-stubs make xz -c conda-forge

Review Comment:
   ```suggestion
   RUN conda install nodejs=24 unzip pthread-stubs make xz -c conda-forge
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to