Use xz when compressing the initrd

This makes the image a lot smaller.
This commit is contained in:
Martin Gracik 2011-02-17 15:53:03 +01:00
parent ee955f3ad1
commit a9e52a70f4
2 changed files with 12 additions and 4 deletions

View File

@ -26,6 +26,7 @@ Requires: util-linux-ng
Requires: dosfstools
Requires: genisoimage
Requires: parted
Requires: pyliblzma
%description
Lorax is a tool for creating the anaconda install images.

View File

@ -26,6 +26,7 @@ import sys
import os
import shutil
import gzip
import lzma
import re
import glob
import time
@ -478,7 +479,7 @@ class LoraxInstallTree(BaseLoraxClass):
dst = joinpaths(self.root, "sbin")
shutil.copy2(src, dst)
def compress(self, initrd, kernel):
def compress(self, initrd, kernel, type="xz"):
chdir = lambda: os.chdir(self.root)
start = time.time()
@ -493,9 +494,15 @@ class LoraxInstallTree(BaseLoraxClass):
stdin=find.stdout, stdout=subprocess.PIPE,
preexec_fn=chdir)
gzipped = gzip.open(initrd.fpath, "wb")
gzipped.write(cpio.stdout.read())
gzipped.close()
if type == "gzip":
compressed = gzip.open(initrd.fpath, "wb")
elif type == "xz":
compressed = lzma.LZMAFile(initrd.fpath, "w",
options={"format":"xz", "check":"crc32",
"level":9})
compressed.write(cpio.stdout.read())
compressed.close()
# move modules out of the tree again
shutil.move(joinpaths(self.root, "modules", kernel.version),