kou commented on PR #47864:
URL: https://github.com/apache/arrow/pull/47864#issuecomment-3460303867

   How about running `reprotest` on host not in Docker container something like 
the following?
   
   ```diff
   diff --git a/.github/workflows/package_linux.yml 
b/.github/workflows/package_linux.yml
   index ba86389428..ead6faf525 100644
   --- a/.github/workflows/package_linux.yml
   +++ b/.github/workflows/package_linux.yml
   @@ -229,10 +229,11 @@ jobs:
                release_candidate.yml
          - name: Build
            run: |
   -          pushd dev/tasks/linux-packages
   -          rake docker:pull || :
   -          rake --trace ${TASK_NAMESPACE}:build BUILD_DIR=build
   -          popd
   +          rake -C dev/tasks/linux-packages docker:pull || :
   +          BUILD_DIR=dev/tasks/linux-packages/build \
   +            reprotest \
   +              -c "rake -C dev/tasks/linux-packages --trace 
${TASK_NAMESPACE}:build " \
   +              . \ 
"dev/tasks/linux-packages/*/${TASK_NAMESPACE}/repositories/**/*.*"
          - name: Docker Push
            continue-on-error: true
            if: >-
   diff --git a/dev/tasks/linux-packages/apache-arrow-apt-source/debian/rules 
b/dev/tasks/linux-packages/apache-arrow-apt-source/debian/rules
   index 1e3be48c31..2a3c14c558 100755
   --- a/dev/tasks/linux-packages/apache-arrow-apt-source/debian/rules
   +++ b/dev/tasks/linux-packages/apache-arrow-apt-source/debian/rules
   @@ -12,10 +12,12 @@ export DH_OPTIONS
    override_dh_auto_build:
        gpg \
          --no-default-keyring \
   +      --homedir /tmp \
          --keyring ./apache-arrow-apt-source.kbx \
          --import KEYS
        gpg \
          --no-default-keyring \
   +      --homedir /tmp \
          --keyring ./apache-arrow-apt-source.kbx \
          --armor \
          --export > apache-arrow-apt-source.asc
   diff --git 
a/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile 
b/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile
   index 257d005656..3c3c3a3ad9 100644
   --- a/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile
   +++ b/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile
   @@ -39,6 +39,7 @@ RUN \
      apt install -y -V ${quiet} \
        base-files \
        build-essential \
   +    ccache \
        clang \
        cmake \
        debhelper \
   diff --git a/dev/tasks/linux-packages/apt/build.sh 
b/dev/tasks/linux-packages/apt/build.sh
   index bc4c61e622..aa7ed976aa 100755
   --- a/dev/tasks/linux-packages/apt/build.sh
   +++ b/dev/tasks/linux-packages/apt/build.sh
   @@ -48,8 +48,9 @@ architecture=$(dpkg-architecture -q DEB_BUILD_ARCH)
    debuild_options=()
    dpkg_buildpackage_options=(-us -uc)
    
   -run mkdir -p /build
   -run cd /build
   +build_root_dir="/build"
   +run mkdir -p "${build_root_dir}"
   +run pushd "${build_root_dir}"
    find . -not -path ./ccache -a -not -path "./ccache/*" -delete
    if which ccache > /dev/null 2>&1; then
      export CCACHE_COMPILERCHECK=content
   @@ -67,6 +68,8 @@ if which ccache > /dev/null 2>&1; then
        debuild_options+=(--prepend-path=/usr/lib/ccache)
      fi
    fi
   +build_dir=$(mktemp --directory --tmpdir="${build_root_dir}" package.XXXXX)
   +run pushd "${build_dir}"
    run cp /host/tmp/${PACKAGE}-${VERSION}.tar.gz \
      ${PACKAGE}_${VERSION}.orig.tar.gz
    run tar xfz ${PACKAGE}_${VERSION}.orig.tar.gz
   @@ -80,7 +83,7 @@ case "${VERSION}" in
            ${PACKAGE}-${VERSION}
        ;;
    esac
   -run cd ${PACKAGE}-${VERSION}/
   +run pushd ${PACKAGE}-${VERSION}/
    platform="${distribution}-${code_name}"
    if [ -d "/host/tmp/debian.${platform}-${architecture}" ]; then
      run cp -rp "/host/tmp/debian.${platform}-${architecture}" debian
   @@ -102,7 +105,7 @@ df -h
    if which ccache > /dev/null 2>&1; then
      ccache --show-stats --verbose || :
    fi
   -run cd -
   +run popd
    
    repositories="/host/repositories"
    package_initial=$(echo "${PACKAGE}" | sed -e 's/\(.\).*/\1/')
   @@ -116,3 +119,7 @@ run \
      -exec cp '{}' "${pool_dir}/" ';'
    
    run chown -R "$(stat --format "%u:%g" "${repositories}")" "${repositories}"
   +run find "${repositories}"
   +
   +run popd
   +rm -rf "${build_dir}"
   diff --git a/dev/tasks/linux-packages/package-task.rb 
b/dev/tasks/linux-packages/package-task.rb
   index 4096c89463..d964a52dd3 100644
   --- a/dev/tasks/linux-packages/package-task.rb
   +++ b/dev/tasks/linux-packages/package-task.rb
   @@ -150,7 +150,9 @@ class PackageTask
        end
        pass_through_env_names = [
          "DEB_BUILD_OPTIONS",
   +      "HOME",
          "RPM_BUILD_NCPUS",
   +      "TZ",
        ]
        pass_through_env_names.each do |name|
          value = ENV[name]
   @@ -188,7 +190,7 @@ class PackageTask
        run_command_line << image
        run_command_line << "/host/build.sh" unless console
    
   -    sh(*build_command_line)
   +    sh(*build_command_line) if Dir.exist?(ENV["HOME"])
        sh(*run_command_line)
      end
    
   ```
   
   (I'm trying this on local but it doesn't work yet. Sorry...)


-- 
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