-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Labels
Description
hashsum with --check always run in text mode on Windows:
coreutils/src/uu/hashsum/src/hashsum.rs
Lines 236 to 247 in 3f694fa
| // Execute the checksum validation | |
| return perform_checksum_validation( | |
| input.iter().copied(), | |
| strict, | |
| status, | |
| warn, | |
| binary_flag, | |
| ignore_missing, | |
| quiet, | |
| Some(algo.name), | |
| Some(algo.bits), | |
| ); |
And you can't specify
--binarycoreutils/src/uu/hashsum/src/hashsum.rs
Lines 225 to 227 in 3f694fa
| if binary_flag || text_flag { | |
| return Err(ChecksumError::BinaryTextConflict.into()); | |
| } |
Since text mode replaces \r\n with \n, this leads to unusual behavior:
In Linux:
$ cat sha256sums.txt | rg "2024.10.01-x86_64.iso"
b72dd6ffef7507f8b7cddd7c69966841650ba0f82c29a318cb2d182eb3fcb1db archlinux-2024.10.01-x86_64.iso
$ sha256sum archlinux-2024.10.01-x86_64.iso --binary
b72dd6ffef7507f8b7cddd7c69966841650ba0f82c29a318cb2d182eb3fcb1db *archlinux-2024.10.01-x86_64.iso
$ sha256sum archlinux-2024.10.01-x86_64.iso --text
b72dd6ffef7507f8b7cddd7c69966841650ba0f82c29a318cb2d182eb3fcb1db archlinux-2024.10.01-x86_64.iso
$ sha256sum -c sha256sums.txt
archlinux-2024.10.01-x86_64.iso: OK
$ sha256sum archlinux-2024.10.01-x86_64.iso --binary | sha256sum -c
archlinux-2024.10.01-x86_64.iso: OK
$ sha256sum archlinux-2024.10.01-x86_64.iso --text | sha256sum -c
archlinux-2024.10.01-x86_64.iso: OK
$ sha256sum archlinux-2024.10.01-x86_64.iso | sha256sum -c
archlinux-2024.10.01-x86_64.iso: OKIn Windows:
$ cat sha256sums.txt | rg "2024.10.01-x86_64.iso"
b72dd6ffef7507f8b7cddd7c69966841650ba0f82c29a318cb2d182eb3fcb1db archlinux-2024.10.01-x86_64.iso
$ sha256sum archlinux-2024.10.01-x86_64.iso --binary
b72dd6ffef7507f8b7cddd7c69966841650ba0f82c29a318cb2d182eb3fcb1db *archlinux-2024.10.01-x86_64.iso
$ sha256sum archlinux-2024.10.01-x86_64.iso --text
e91465b21fa5f556c1015a3e8f44aef94301b2f742e56f23c6256c1bc9eb2855 archlinux-2024.10.01-x86_64.iso
$ sha256sum -c sha256sums.txt
archlinux-2024.10.01-x86_64.iso: FAILED
sha256sum: sha256sums.txt: no file was verified
sha256sum: WARNING: 1 computed checksum did NOT match
$ sha256sum archlinux-2024.10.01-x86_64.iso --binary | sha256sum -c
archlinux-2024.10.01-x86_64.iso: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
$ sha256sum archlinux-2024.10.01-x86_64.iso | sha256sum -c
archlinux-2024.10.01-x86_64.iso: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
$ sha256sum archlinux-2024.10.01-x86_64.iso --text | sha256sum -c
archlinux-2024.10.01-x86_64.iso: OKI can think of 3 ways this might be fixed:
- Make
--binarythe default on Windows (might break some workflows for checking text files) - Derive the mode for
--checkfrom previous output on Windows- Might require adding
*manually before passing the input to hashsum, since the output might be obtained previously on GNU system without specifying--binary
- Might require adding
- Allow specifying
--binaryfor--checkon Windows