Web lists-archives.com

Bug#862269: RFP: ntfs-3g-system-compression -- NTFS-3G plugin for reading "system compressed" files




Package: wnpp
Severity: wishlist

* Package name    : ntfs-3g-system-compression
  Version         : [no release yet]
  Upstream Author : Eric Biggers <ebiggers3@xxxxxxxxx>
* URL or Web page : https://github.com/ebiggers/ntfs-3g-system-compression
* License         : GPL-2+
  Programming lang: C
  Description     : NTFS-3G plugin for reading "system compressed" files

System compression, also known as "Compact OS", is a Windows feature
that allows rarely modified files to be compressed using the XPRESS or
LZX compression formats. It is not built directly into NTFS but rather
is implemented using reparse points. This feature appeared in Windows 10
and it appears that many Windows 10 systems have been using it by
default.

This package contains a plugin which enables the NTFS-3G FUSE driver
to transparently read from system-compressed files.

Currently, only reading is supported. Compressing an existing file may
be done by using the "compact" utility on Windows, with one of the
options below ("xpress4k" is the weakest and fastest, "lzx" is the
strongest and slowest):

* /exe:xpress4k
* /exe:xpress8k
* /exe:xpress16k
* /exe:lzx

[End of potential long package description]

Some notes and thoughts:

Citing from the upstream web page:

> It must be built against NTFS-3G version 2017.3.23 or later, since
> that was the first stable version to include support for reparse point
> plugins.

Probably due to the freeze, that NTFS-3G version is not yet available in
Debian, but likely will become available after Stretch is released.

> The XPRESS and LZX compression formats used in system-compressed files
> are identical to the formats used in Windows Imaging (WIM)
> archives. Therefore, for the system compression plugin I borrowed the
> XPRESS and LZX decompressors I had already written for the wimlib
> project (https://wimlib.net/).

wimlib is already packaged for Debian by Hilko Bengen (X-Debbugs-CC'ed).

> I made some slight modifications for integration purposes.

*sigh* So there might be a chance that the library packaged by Hilko
might not be usable as (build-) dependency. Needs to be checked in
detail.

> The code in wimlib is currently licensed LGPLv3+, but I have
> relicensed the version in this plugin to GPLv2+ for consistency with
> NTFS-3G's license. (Public domain portions remain public domain.)

But at least upstream cares about license compatibility. That's good.

		Regards, Axel