What is it
----------
Archivemount is a piece of glue code between libarchive <http://libarchive.org/>
and FUSE <http://fuse.sourceforge.net>. It can be used to mount a (possibly compressed)
archive (as in .tar.gz or .zip or .iso) and use it like an ordinary filesystem.

Requirements
------------
You will need GNU Make, libarchive-dev, libfuse3-dev/libfuse-dev, and pkgconf
(or just the libraries and fix up c++ *.cpp manually).

-ng
------------
https://git.sr.ht/~nabijaczleweli/archivemount-ng
https://todo.sr.ht/~nabijaczleweli/archivemount-ng  (report at <mailto:~nabijaczleweli/archivemount-ng@todo.sr.ht>)
https://lists.sr.ht/~nabijaczleweli/archivemount-ng <mailto:~nabijaczleweli/archivemount-ng@lists.sr.ht>
https://builds.sr.ht/~nabijaczleweli/archivemount-ng

The upstream author died irl in 2020 (cf. obituary in https://github.com/cybernoid/archivemount/issues/29).
This encompasses the upstream tarballs and, at least, fixes the following issues.

Debian bugs:
  [0.8.9] #799563:  Failed to list correctly the files when parent directory name and child directory names are the same
  [lllll] #687710:  cannot read ISO-9660 archives
  [xxxxx] #832823:  new upstream version (0.8.7)
  [  1  ] #838597:  Unmount instructions in man page lead to "Permission denied" error.
  [xxxxx] #891749:  New upstream version (0.8.9)
  [xxxxx] #974679:  Wrong homepage + new version
  [0.8.4] #651442:  does not handle compressed (single) files
  [?????] #857985:  appears a kernel upgrade changed the ABI unexpectedly
  [lllll] #674231:  Add 7zip support
  [  1  ] #1073228: uthash is BSD-1-Clause, not BSD-2-Clause

Upstream (https://github.com/cybernoid/archivemount) bugs:
  [0.8.9] #28: Chokes on CSRG ISO
  [  1  ] #21: Quadratic complexity when reading large entries
  [  1  ] #27: fuse.pc is fuse3.pc nowadays
  [xxxxx] #26: feature request: zstd support
  [xxxxx] #25: archivemount can't read .img.gz
  [lllll] #23: feature request: .xz compressed files support?
  [     ] #14: Create a table which shows supported formats && read / write support
  [ 1-1 ] #17: Update homepage in apt show archivemount
PRs:
  [  1  ] #22: Add support for fuse3
  [  1  ] #20: Add support for /dev/fd/%u mountpoints
  [  1  ] #19: Don't fchdir at unmount when mounting read-only
  [  1  ] #18: Honor raw archives' pathname

x – fundamentally invalid; l – libarchive bug; ? – incoherent

Write support
-------------
Writing to an archive with libarchive is unfortunately not possible. In
order to provide write support thus the whole archive has to be recreated;
this requires two things: space and time. To optimize at least the timely
behaviour, archives are recreated only once: at the time of unmount. If there
are any problems creating the new archive - bad luck, the changes are lost. Some
checks are run when mounting the archive to determine if it can be mounted
writeable, but there is no guarantee.
Also note that unmounting a fuse filesystem is NOT necessarily completed when
the unmount command returns. Although unmounting takes a long time already,
fuse backgrounds the process and lets the unmount command return early. You
can check on the real state of unmounting by checking the process list for
archivemount.

THERE IS ALSO NO GUARANTEE THAT DATA IS WRITTEN CORRECTLY. DO NOT TRUST THIS
SOFTWARE! A backup is made of the original archive (with .orig appended to the
name), but please understand that I, the author of archivemount, do not
guarantee anything at all about the state of your data and I am not responsible
if you lose vital information by using this software. YOU HAVE BEEN WARNED!

Archive formats
---------------
A note about archive and compression formats: libarchive supports a lot more
formats for reading than it does for writing. Archivemount tries to do a
sensible conversion here when writing the changed archive because I think most
people do not care a lot about the exact version of tar used inside the .tgz
file as long as their favourite archive tool can still cope with the file.

Release signing
---------------
Release tarballs are signed with nabijaczleweli@nabijaczleweli.xyz
  (pull with WKD, but 7D69 474E 8402 8C5C C0C4  4163 BCFD 0B01 8D26 58F1).
аnd stored in git notes as-if via the example program provided at
  https://man.sr.ht/git.sr.ht/#signing-tags-tarballs
and are thus available on the refs listing/tag page as .tar.gz.asc.
