Open ErrrorMaxx opened 6 months ago
This is something to do with your system. This is not a bug in chezmoi.
After switching to Termux's chezmoi I found out that after diffing with Termux build (and when all externals are downloaded), then diffing with official build works again (using cached externals). So turns out that android build without some Termux patches works only partially
$ /data/data/com.termux/files/home/.local/bin/chezmoi diff
chezmoi: Get "https://github.com/macvk/dnsleaktest/raw/HEAD/dnsleaktest.py": dial tcp: lookup github.com on [::1]:53: read udp [::1]:48172->[::1]:53: read: connection refused
$ /data/data/com.termux/files/usr/bin/chezmoi diff
*diff here*
$ /data/data/com.termux/files/home/.local/bin/chezmoi diff
*diff here*
UPD: I did some research and Termux actually has a patch for golang
: termux/termux-packages/packages/golang/fix-hardcoded-etc-resolv-conf.sh which fixes DNS resolving on Android
UPD2: This is actually a bug of golang
on Android: https://github.com/golang/go/issues/8877
Thanks for the further investigation and apologies for the too-hasty fix.
If I understand correctly, there are two ways for chezmoi to work around this bug in Go:
Of these, (1) is the cleanest but might not be supported by goreleaser (the tool chezmoi uses to build its release binaries), (2) has poor user experience, and (3) strikes me as too much of a hack.
Does the Termux-built chezmoi binary have this same problem?
Patch in Termux is for golang
itself. So any binaries built in Termux are patched:
$ gitcd https://github.com/twpayne/chezmoi repos/chezmoi
Cloning into 'repos/chezmoi'...
remote: Enumerating objects: 76049, done.
remote: Counting objects: 100% (5230/5230), done.
remote: Compressing objects: 100% (583/583), done.
remote: Total 76049 (delta 4748), reused 4696 (delta 4627), pack-reused 70819
Receiving objects: 100% (76049/76049), 70.23 MiB | 4.79 MiB/s, done.
Resolving deltas: 100% (42413/42413), done.
$ go build
...
$ ./chezmoi diff -R
*diff here* (externals downloaded)
For info, goreleaser is adding support for Termux in https://github.com/goreleaser/goreleaser/pull/4901, which will be part of goreleaser v2.1.0 (not released yet).
Describe the bug
chezmoi
on Android sometimes can't connect to DNS. So it can't download externalsTo reproduce
Idk, it just sometimes work and sometimes it doesn't
Expected behavior
No errors, externals are always can be downloaded
Output of command with the
--verbose
flagOutput of
chezmoi doctor