Re: CVS commit: src/external/bsd/libarchive/dist/libarchive
Taylor R Campbell <[email protected]>
| Newsgroups | gmane.os.netbsd.devel.userlevel |
|---|---|
| Message-ID | <[email protected]> |
> Date: Mon, 24 Aug 2026 11:36:32 +0200 > From: Thomas Klausner <[email protected]> > > On Fri, Aug 21, 2026 at 10:12:25PM +0100, Taylor R Campbell wrote: > > libarchive: Patch iconv() use to handle POSIX semantics. > > A userland from August 19 was fine, but one from today is not, so I > suspect this commit to cause an extraction error for > pkgsrc/devel/py-meson_python. > > (no LANG, LC_* set): > > # tar xvzf meson_python-0.20.0.tar.gz > tar: Pathname can't be converted from UTF-8 to current locale > tar: Error exit delayed from previous errors > > The relevant file name is > > meson_python-0.20.0/tests/packages/encoding/\343\203\206\343\202\271\343\203\210.py > > or > > meson_python-0.20.0/tests/packages/encoding/テスト.py > > in a UTF-8 locale. > > Is this an intended consequence of the change? How was the archive extracted before? Did it turn into a file called `???.py' (i.e., with literal question marks)? I suspect that the code was only `working' by accident before, i.e., failing to report failure and blithely barging ahead with output that the libarchive authors thought of as corrupted, having had replacement characters substituted where the input can't be represented. On a Debian system (where bsdtar is presumably using GNU iconv), if I try this, it fails in exactly the same way with LANG=C and works with LANG=C.UTF-8. archivers/bsdtar is built without any iconv at all, so it rejects the archive altogether no matter what your locale is! And as far as I know, there's no way to ask bsdtar/libarchive to just treat each path as a sequence of bytes without interpretation.