kou commented on code in PR #46501:
URL: https://github.com/apache/arrow/pull/46501#discussion_r2110584372


##########
ci/scripts/cpp_build.sh:
##########
@@ -287,6 +287,11 @@ fi
 if [ "${ARROW_USE_MESON:-OFF}" = "ON" ]; then
   time meson compile -j ${ARROW_BUILD_PARALLEL}
   meson install
+  # Remove all added files in cpp/subprojects/ because they may have
+  # unreadable permissions on Docker host.
+  pushd "${source_dir}"
+  meson subprojects purge --confirm --include-cache
+  popd

Review Comment:
   Here is a shell script that shows that Meson may change the source directory:
   
   ```shell
   set -eux
   
   rm -rf arrow
   git clone --recursive https://github.com/apache/arrow.git
   cd arrow
   ls -lahR cpp/subprojects > before.txt
   meson setup cpp.build cpp > /dev/null
   meson compile -C cpp.build > /dev/null
   ls -lahR cpp/subprojects > after.txt
   diff -u {before,after}.txt
   ```
   
   Output:
   
   ```text
   + rm -rf arrow
   + git clone --recursive https://github.com/apache/arrow.git
   Cloning into 'arrow'...
   remote: Enumerating objects: 262194, done.
   remote: Counting objects: 100% (79/79), done.
   remote: Compressing objects: 100% (72/72), done.
   remote: Total 262194 (delta 33), reused 13 (delta 7), pack-reused 262115 
(from 3)
   Receiving objects: 100% (262194/262194), 205.72 MiB | 22.49 MiB/s, done.
   Resolving deltas: 100% (185755/185755), done.
   Submodule 'cpp/submodules/parquet-testing' 
(https://github.com/apache/parquet-testing.git) registered for path 
'cpp/submodules/parquet-testing'
   Submodule 'testing' (https://github.com/apache/arrow-testing) registered for 
path 'testing'
   Cloning into '/arrow/cpp/submodules/parquet-testing'...
   remote: Enumerating objects: 421, done.        
   remote: Counting objects: 100% (189/189), done.        
   remote: Compressing objects: 100% (118/118), done.        
   remote: Total 421 (delta 130), reused 79 (delta 55), pack-reused 232 (from 
2)        
   Receiving objects: 100% (421/421), 1.16 MiB | 19.74 MiB/s, done.
   Resolving deltas: 100% (197/197), done.
   Cloning into '/arrow/testing'...
   remote: Enumerating objects: 992, done.        
   remote: Counting objects: 100% (97/97), done.        
   remote: Compressing objects: 100% (50/50), done.        
   remote: Total 992 (delta 66), reused 58 (delta 47), pack-reused 895 (from 1) 
       
   Receiving objects: 100% (992/992), 29.82 MiB | 23.14 MiB/s, done.
   Resolving deltas: 100% (498/498), done.
   Submodule path 'cpp/submodules/parquet-testing': checked out 
'18d17540097fca7c40be3d42c167e6bfad90763c'
   Submodule path 'testing': checked out 
'd2a13712303498963395318a4eb42872e66aead7'
   + cd arrow
   + ls -lahR cpp/subprojects
   + meson setup cpp.build cpp
   + meson compile -C cpp.build
   + ls -lahR cpp/subprojects
   + diff -u before.txt after.txt
   --- before.txt       2025-05-28 09:17:22.268451568 +0900
   +++ after.txt        2025-05-28 09:17:47.159847655 +0900
   @@ -1,17 +1,124 @@
    cpp/subprojects:
   -total 64K
   -drwxr-xr-x  2 root root 4.0K May 28 09:17 .
   +total 72K
   +drwxr-xr-x  4 root root 4.0K May 28 09:17 .
    drwxr-xr-x 12 root root 4.0K May 28 09:17 ..
    -rw-r--r--  1 root root 4.2K May 28 09:17 README.md
    -rw-r--r--  1 root root 1.1K May 28 09:17 azure.wrap
    -rw-r--r--  1 root root 1.2K May 28 09:17 boost.wrap
    -rw-r--r--  1 root root 1.4K May 28 09:17 bzip2.wrap
   +drwxrwxr-x  7 root root 4.0K May 28 09:17 gflags-2.2.2
    -rw-r--r--  1 root root 1.1K May 28 09:17 gflags.wrap
    -rw-r--r--  1 root root 1.5K May 28 09:17 google-benchmark.wrap
    -rw-r--r--  1 root root 1.5K May 28 09:17 google-brotli.wrap
    -rw-r--r--  1 root root 1.3K May 28 09:17 google-snappy.wrap
    -rw-r--r--  1 root root 1.5K May 28 09:17 gtest.wrap
    -rw-r--r--  1 root root 1.4K May 28 09:17 lz4.wrap
   +drwxr-xr-x  2 root root 4.0K May 28 09:17 packagecache
    -rw-r--r--  1 root root 1.4K May 28 09:17 rapidjson.wrap
    -rw-r--r--  1 root root 1.4K May 28 09:17 zlib.wrap
    -rw-r--r--  1 root root 1.4K May 28 09:17 zstd.wrap
   +
   +cpp/subprojects/gflags-2.2.2:
   +total 136K
   +drwxrwxr-x 7 root root 4.0K May 28 09:17 .
   +drwxr-xr-x 4 root root 4.0K May 28 09:17 ..
   +-rw-rw-r-- 1 root root  113 Nov 12  2018 .gitattributes
   +-rw-rw-r-- 1 root root  407 Nov 12  2018 .gitignore
   +-rw-rw-r-- 1 root root   93 Nov 12  2018 .gitmodules
   +-rw-r--r-- 1 root root   65 May 28 09:17 .meson-subproject-wrap-hash.txt
   +-rw-rw-r-- 1 root root  409 Nov 12  2018 .travis.yml
   +-rw-rw-r-- 1 root root   32 Nov 12  2018 AUTHORS.txt
   +-rw-rw-r-- 1 root root  513 Nov 12  2018 BUILD
   +-rw-rw-r-- 1 root root  29K Nov 12  2018 CMakeLists.txt
   +-rw-rw-r-- 1 root root 1.5K Nov 12  2018 COPYING.txt
   +-rw-rw-r-- 1 root root  13K Nov 12  2018 ChangeLog.txt
   +-rw-rw-r-- 1 root root 4.0K Nov 12  2018 INSTALL.md
   +-rw-rw-r-- 1 root root  14K Nov 12  2018 README.md
   +-rw-rw-r-- 1 root root  255 Nov 12  2018 WORKSPACE
   +-rw-rw-r-- 1 root root 1.5K Nov 12  2018 appveyor.yml
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 bazel
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 cmake
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 doc
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 src
   +drwxrwxr-x 4 root root 4.0K Nov 12  2018 test
   +
   +cpp/subprojects/gflags-2.2.2/bazel:
   +total 12K
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 .
   +drwxrwxr-x 7 root root 4.0K May 28 09:17 ..
   +-rw-rw-r-- 1 root root 3.6K Nov 12  2018 gflags.bzl
   +
   +cpp/subprojects/gflags-2.2.2/cmake:
   +total 48K
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 .
   +drwxrwxr-x 7 root root 4.0K May 28 09:17 ..
   +-rw-rw-r-- 1 root root  238 Nov 12  2018 README_runtime.txt
   +-rw-rw-r-- 1 root root 1.2K Nov 12  2018 cmake_uninstall.cmake.in
   +-rw-rw-r-- 1 root root 7.5K Nov 12  2018 config.cmake.in
   +-rw-rw-r-- 1 root root 1.8K Nov 12  2018 execute_test.cmake
   +-rw-rw-r-- 1 root root 2.1K Nov 12  2018 package.cmake.in
   +-rw-rw-r-- 1 root root  362 Nov 12  2018 package.pc.in
   +-rw-rw-r-- 1 root root 7.7K Nov 12  2018 utils.cmake
   +-rw-rw-r-- 1 root root  724 Nov 12  2018 version.cmake.in
   +
   +cpp/subprojects/gflags-2.2.2/doc:
   +total 8.0K
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 .
   +drwxrwxr-x 7 root root 4.0K May 28 09:17 ..
   +
   +cpp/subprojects/gflags-2.2.2/src:
   +total 244K
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 .
   +drwxrwxr-x 7 root root 4.0K May 28 09:17 ..
   +-rw-rw-r-- 1 root root 1.8K Nov 12  2018 config.h
   +-rw-rw-r-- 1 root root 1.4K Nov 12  2018 defines.h.in
   +-rw-rw-r-- 1 root root  75K Nov 12  2018 gflags.cc
   +-rw-rw-r-- 1 root root  30K Nov 12  2018 gflags.h.in
   +-rw-rw-r-- 1 root root  27K Nov 12  2018 gflags_completions.cc
   +-rw-rw-r-- 1 root root 5.7K Nov 12  2018 gflags_completions.h.in
   +-rwxrwxr-x 1 root root 5.1K Nov 12  2018 gflags_completions.sh
   +-rw-rw-r-- 1 root root 5.4K Nov 12  2018 gflags_declare.h.in
   +-rw-rw-r-- 1 root root 4.0K Nov 12  2018 gflags_ns.h.in
   +-rw-rw-r-- 1 root root  17K Nov 12  2018 gflags_reporting.cc
   +-rw-rw-r-- 1 root root  15K Nov 12  2018 mutex.h
   +-rw-rw-r-- 1 root root  14K Nov 12  2018 util.h
   +-rw-rw-r-- 1 root root 2.8K Nov 12  2018 windows_port.cc
   +-rw-rw-r-- 1 root root 5.3K Nov 12  2018 windows_port.h
   +
   +cpp/subprojects/gflags-2.2.2/test:
   +total 116K
   +drwxrwxr-x 4 root root 4.0K Nov 12  2018 .
   +drwxrwxr-x 7 root root 4.0K May 28 09:17 ..
   +-rw-rw-r-- 1 root root  12K Nov 12  2018 CMakeLists.txt
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 config
   +-rw-rw-r-- 1 root root    9 Nov 12  2018 flagfile.1
   +-rw-rw-r-- 1 root root   25 Nov 12  2018 flagfile.2
   +-rw-rw-r-- 1 root root   21 Nov 12  2018 flagfile.3
   +-rw-rw-r-- 1 root root 1.5K Nov 12  2018 gflags_build.py.in
   +-rwxrwxr-x 1 root root  234 Nov 12  2018 gflags_declare_flags.cc
   +-rw-rw-r-- 1 root root  348 Nov 12  2018 gflags_declare_test.cc
   +-rwxrwxr-x 1 root root 2.5K Nov 12  2018 gflags_strip_flags_test.cc
   +-rw-rw-r-- 1 root root  270 Nov 12  2018 gflags_strip_flags_test.cmake
   +-rwxrwxr-x 1 root root  52K Nov 12  2018 gflags_unittest.cc
   +-rw-rw-r-- 1 root root   28 Nov 12  2018 gflags_unittest_flagfile
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 nc
   +
   +cpp/subprojects/gflags-2.2.2/test/config:
   +total 16K
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 .
   +drwxrwxr-x 4 root root 4.0K Nov 12  2018 ..
   +-rw-rw-r-- 1 root root  227 Nov 12  2018 CMakeLists.txt
   +-rw-rw-r-- 1 root root  579 Nov 12  2018 main.cc
   +
   +cpp/subprojects/gflags-2.2.2/test/nc:
   +total 16K
   +drwxrwxr-x 2 root root 4.0K Nov 12  2018 .
   +drwxrwxr-x 4 root root 4.0K Nov 12  2018 ..
   +-rw-rw-r-- 1 root root  482 Nov 12  2018 CMakeLists.txt
   +-rw-rw-r-- 1 root root 2.5K Nov 12  2018 gflags_nc.cc
   +
   +cpp/subprojects/packagecache:
   +total 108K
   +drwxr-xr-x 2 root root 4.0K May 28 09:17 .
   +drwxr-xr-x 4 root root 4.0K May 28 09:17 ..
   +-rw------- 1 root root  97K May 28 09:17 gflags-2.2.2.tar.gz
   ```
   
   There is a `diff` output.
   
   And this is an unreadable file:
   
   ```text
   +-rw------- 1 root root  97K May 28 09:17 gflags-2.2.2.tar.gz
   ```



-- 
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: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to