Repository navigation
Releases: crftwr/xefm-bin-deps
Release list
libarchive 3.8.9 for Windows
libarchive 3.8.9 for Windows x64, built for XeFM.
archive.dll carries zlib, bzip2, liblzma and libzstd inside it, so there are no
compression libraries to place beside it. Its remaining imports are bcrypt.dll,
XmlLite.dll, KERNEL32.dll, ole32.dll — all part of Windows — plus the
Microsoft C runtime that any Python installation already requires.
libarchive 3.8.9 zlib/1.3.2 liblzma/5.8.3 bz2lib/1.0.8 libzstd/1.5.7 cng/2.0 libb2/bundled
That codec list is the thing to check, because it is what decides which formats
XeFM offers: liblzma for .7z, zlib for .cab, both for .rpm. With this build
XeFM reads .7z, .rar, .iso, .cab, .cpio and .rpm, and writes .7z,
.iso and .cpio.
The C runtime is shared rather than static on purpose, and the reason is
filenames. libarchive picks the code page for its wide/narrow filename
conversions from setlocale(LC_CTYPE, NULL) in its own runtime; a static one is
private to the DLL and pinned to the process ANSI code page, where no application
can reach it. On a 1252 machine that turns a CJK filename into a NULL pathname —
and the ISO 9660 writer reads that NULL as its root directory and drops the file
without a word. Sharing the runtime lets the host select a UTF-8 LC_CTYPE once
and have every conversion follow.
Enabling CNG does not make encrypted .7z or RAR5 archives readable — as of
3.8.9, zip is the only format libarchive decrypts. CNG is here so that OpenSSL is
not needed, and XmlLite so that libxml2 is not needed.
Verify the download against the .sha256 published beside it. Upstream
sources are pinned by version and hash in the build script, from downloads whose
OpenPGP signatures were checked against each project's published signing key.
Setup instructions are in the README;
in short, set LIBARCHIVE to the extracted bin\archive.dll before starting
XeFM. XeFM's own Windows desktop builds bundle this already and need no setup.