Enabling LZMA for compression to allow us ship more software on our live images.

+

Enabling XZ (a variant of LZMA) for compression to allow us ship more software on our live images.

== Owner ==

== Owner ==

Line 11:

Line 11:

== Current status ==

== Current status ==

* Targeted release: [[Releases/15 | Fedora 15 ]]

* Targeted release: [[Releases/15 | Fedora 15 ]]

−

* Last updated: 2011-01-23

+

* Last updated: 2011-03-06

−

* Percentage of completion: 35%

+

* Percentage of completion: 100%

== Detailed Description ==

== Detailed Description ==

Line 22:

Line 22:

== Scope ==

== Scope ==

* kernel

* kernel

−

** Lougher's patches have been [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5520ebd308927a3beba599a2b68fa8c52f41f43b pulled] for 2.6.38 which is expected to be the release kernel for F15.

+

** F15 has had 2.6.38 kernels for a while and XZ is working fine.

−

** We still need for Fedora to start using the 2.6.38 for rawhide before doing some of the testing. This should happen in a few weeks.

+

−

*** Kyle has started do scratch builds for 2.6.38 in koji and I have done a successful test of mounting an xz squashfs image with one of those kernels.

+

** Fallback plan for the kernel is to do nothing.

** Fallback plan for the kernel is to do nothing.

* livecd-creator

* livecd-creator

** Changes to livecd-creator:

** Changes to livecd-creator:

−

*** Change the default compression type to xz.

+

*** Change the default compression type to xz. (Done - in rawhide)

−

*** Update the documentation to reflect the changed default.

+

*** Update the documentation to reflect the changed default. (Done - in rawhide)

*** These changes won't be made until after the kernel feature is available, so no fallback is needed.

*** These changes won't be made until after the kernel feature is available, so no fallback is needed.

* squashfs-tools

* squashfs-tools

−

** squashfs-tools is back on the table as XZ (LZMA2) will be separate from LZMA.

+

*** The 4.2 release is now in rawhide and F15 testing.

−

** The development version needs to get built and tested.

+

−

*** A 4.2 prerelease build is now in rawhide.

+

−

*** Things seem to have stablized, but there is a pending patch for an endian issue that I expect to get applied before upstream does the 4.2 release.

+

−

** The squashfs-tools 4.2 release is tentatively planned for mid-February.

+

** A [https://fedoraproject.org/wiki/QA:Testcase_squashfs-tools_compression test case] has been created to make it easier to get critical path testing.

** A [https://fedoraproject.org/wiki/QA:Testcase_squashfs-tools_compression test case] has been created to make it easier to get critical path testing.

+

* Out of scope is taking advantage of squashfs-tools new compression specific options.

+

** They will probably be exposed in some way in livecd-creator for F16 if it looks like they are useful to tweak for live images. But that won't be a feature.

== How To Test ==

== How To Test ==

Line 45:

Line 41:

* We need to make sure live images are smaller using LZMA2 (XZ) compression.

* We need to make sure live images are smaller using LZMA2 (XZ) compression.

** A test games spin from 2011-01-21 rawhide + a 2.6.38 scratch build went from 4499222528 bytes to 4111771648 bytes (8.6% decrease).

** A test games spin from 2011-01-21 rawhide + a 2.6.38 scratch build went from 4499222528 bytes to 4111771648 bytes (8.6% decrease).

LZMA compression typically provides better compression than gzip while still providing relatively fast uncompression. Once squashfs file systems are supported by the kernel we can use them for building live images. A test with the games spin resulted in a 8.7% reduction (from 4242538496 bytes to 3873439744 bytes) in size of the resulting live image.