cargo-bins / cargo-binstall

Binary installation for rust projects
GNU General Public License v3.0
1.62k stars 60 forks source link

Version 1.10.13 fails to apply permissions #1975

Open mjpieters opened 2 days ago

mjpieters commented 2 days ago

We are running cargo-binstall in a docker container to install the typos-cli command-line tool. With release 1.10.13 this no longer works, as we end up with /usr/local/cargo/bin/typos installed with incorrect permissions. If we go back to version 1.10.12 of cargo-binstall, the permissions are once again correct.

Our CI runs docker-in-docker inside a Debian Bullseye Slim container, where docker-ce-cli=5:20.10.* is installed, so Docker version 20.10.x. The exact command run is:

ARG BINSTALL_VERSION=1.10.13
ARG TYPOS_VERSION=1.27.3
RUN curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh \
    | sed 's#${BINSTALL_VERSION}/download#download/v${BINSTALL_VERSION}#' | bash \
  && cargo binstall --no-confirm --no-track typos-cli@${TYPOS_VERSION} \
  && ls -la /usr/local/cargo/bin/typos

(Note that the above includes my work-around for #1974). The end result is a typos file with no executable permissions; the ls command outputs:

-rw-r--r--. 1 root root 14997504 Nov 19 10:14 /usr/local/cargo/bin/typos

When I use version 1.10.12, the installed file has the correct permissions. I've put the output of --log-level debug in a gist, even though it doesn't, to me, offer any clues as to what is going wrong. The 1.10.13 output looks identical to me.

NobodyXu commented 2 days ago

I suspected this is due to #1969 which we upgrades reflink-copy