uv update reports a checksum mismatch because sha256sum cannot start
Source: Troubleshooting reference
Symptom: both uv self-update and its standalone installer print
sha256sum: error while loading shared libraries: libcrypto.so.3, followed by
ERROR: checksum mismatch with an empty got: value. The checksum program
did not run; this output does not establish a corrupt download.
Cause: a source-built Coreutils can auto-detect globally linked OpenSSL
without the Homebrew formula declaring that dependency. Its checksum binaries
then search the global Brew library directory. Transitioning global links from
OpenSSL 3 to 4 removes libcrypto.so.3 from that directory even though the
OpenSSL 3 keg remains installed. Keeping that keg alone does not repair the
binary’s search path.
Confirm the selected binary’s execution and ELF dependencies. If inspecting
runtime resolution, use its own ELF interpreter with --list; system ldd
can mislead by resolving libraries against the system glibc instead:
command -v sha256sumprintf abc | sha256sumreadelf -d "$(readlink -f "$(command -v sha256sum)")"Fix: after all other installs using the prefix have stopped, apply the managed formula patch and rebuild Coreutils:
bash ~/dotfiles/install/patch-homebrew-coreutils.shHOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_FROM_API=1 \ HOMEBREW_NO_INSTALL_CLEANUP=1 brew reinstall --build-from-source coreutilsprintf abc | sha256sumDF_MODE=upgrade bash ~/dotfiles/install/python.shThe digest must be
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.
The patch adds an explicit openssl@4 dependency and --with-openssl=yes,
preserving OpenSSL acceleration while giving the build a versioned library
search path. linux-packages.sh checks
the known digest before and after Bundle and rebuilds a broken installed
Coreutils; python.sh preserves the original
self-update failure instead of claiming every failure means an unsupported
uv build.
DF_PATCH_BREW_COREUTILS=0 or DF_PATCH_BREW_ALL=0 disables this Linux
patch and automatic repair. The check covers checksum execution, not every
installed program. Do not skip checksum verification, globally set
LD_LIBRARY_PATH, or relink OpenSSL 3 over OpenSSL 4. The authoritative
patch is patch-homebrew-coreutils.sh;
GNU documents the build option in its
Coreutils manual.