This is a fork of Go 1.10 archive/tar
package from the official repo, with a partial revert of upstream commit 0564e304a6ea. It is suggested as a replacement to the original package included with Go 1.10 in case you want to build a static Linux/glibc binary that works, and can't afford to use CGO_ENABLED=0
.
Using Go 1.10 archive/tar from a static binary compiled with glibc on Linux can result in a panic upon calling tar.FileInfoHeader()
. This is a major regression in Go 1.10, filed as Go issue #24787.
The above issue is caused by an unfortunate combination of:
os/user
package hard-coded reliance on libc to resolve user/group IDs to names (unless CGO is disabled).While glibc can probably not be fixed and is not considered a bug per se, the os/user
issue is documented (see Go issue #23265) and already fixed by Go commit 62f0127d81. The fix is expected to make its way to Go 1.11, and requires osusergo
build tag to be used for a static build.
This repository serves as a temporary workaround until the above fix is available.