Subject: bug#52477: 27.1; .crx and .crx3 are zip files

From: Michael Albinus <[email-masked]>
Date: Wed, 22 Dec 2021 13:20:10 +0100

"Trent W. Buck" <[email-masked]> writes:

Hi Trent,

> FTR, as the end user, I don't really care HOW it's implemented.
>
> I also don't really care about editing, i.e. read-only support is fine.
> I have a similar "eyeball the result" workflow for .deb using
>
>     /usr/share/emacs/site-lisp/elpa-src/debian-el-37/deb-view.el

.deb files are handled by libarchive(3), and so they are supported in tramp-archive.el.

> Someone mentioned libarchive, originally from BSD, which provides a
> standard interface to EVERY(ish) archive and compression format.
>
> Is it reasonable for emacs to just chuck out arc-mode (and tar-mode
> and jka-compr) and instead just use libarchive?
> It's already used by vlc and a lot of GNOME stuff.
>
> libarchive already understands both .pyz and .crx3 files, at least for reading:
>
>     bash5$ bsdtar -vtf MyCoolApp.pyz
>     -rw-r--r--  0 0      0          23 Dec 22 14:33 __main__.py
>
>     bash5$ bsdtar -vtf jamhcnnkihinmdlkakkaopbjbbcngflc_99.0.4764.2_all_nfh7crk5nxg3omjxfwx5cuhrz4.crx3
>     -rw-rw-r--  0 0      0        3484 Dec 13 12:34 hyph-und-ethi.hyb

No. Neither .pyz nor .crx3? formats are supported by libarchive, I've just
tested it with Nautilus, the GNOME file manager. bsdtar uses several
archive libraries, I guess another archive library must be responsible
for these formats.

However, I'm in favor to add native libarchive support to Emacs. The
current integration via tramp-archive has its limitations:

- It is based on the GVFS archive backend and D-Bus integration, in
  practice it means it is available for GNU/Linux only.

- The GVFS guys did not implement writing into archives, which is
  supported by native libarchive.

But as said above, this wouldn't mean that *all* archive formats are
supported.

Best regards, Michael.