qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] build: change dist target to use xz


From: Brad Smith
Subject: Re: [Qemu-devel] [PATCH] build: change dist target to use xz
Date: Fri, 4 Jan 2013 20:03:05 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

On Fri, Jan 04, 2013 at 05:41:41PM -0700, Eric Blake wrote:
> On 01/04/2013 05:28 PM, Brad Smith wrote:
> > On Thu, Aug 02, 2012 at 06:08:15AM -0400, Brad Smith wrote:
> >> If a compression format other than gzip is used we might
> >> as well move to xz instead of bzip2.
> 
> Agreed, many projects are dropping bzip2 as irrelevant (slower than the
> more-widely-available gz, compresses worse than newcomer xz).
> 
> > +++ b/scripts/make-release
> > @@ -20,5 +20,5 @@ git checkout "v${version}"
> >  git submodule update --init
> >  rm -rf .git roms/*/.git
> >  popd
> > -tar cfj ${destination}.tar.bz2 ${destination}
> > +XZ_OPT=-9 tar cfJ ${destination}.tar.xz ${destination}
> 
> Do we really need -9?

No. There isn't much of a difference between 8e and 9 with QEMU's
tar archive..

8175644 qemu-1.3.0.tar.xz_8e
8164188 qemu-1.3.0.tar.xz_9

> For example, coreutils did an interesting
> benchmark in its cfg.mk file, and chose to use -8e instead of -9 as a
> result:
> 
> >> # Comparing tarball sizes compressed using different xz presets, we see 
> >> that
> >> # an -8e-compressed tarball is only 9KiB larger than the -9e-compressed 
> >> one.
> >> # Using -8e is preferred, since that lets the decompression process use 
> >> half
> >> # the memory (32MiB rather than 64MiB).
> >> # $ for i in {7,8,9}{e,}; do \
> >> #     (n=$(xz -$i < coreutils-8.15*.tar|wc -c);echo $n $i) & done |sort -nr
> >> # 5129388 7
> >> # 5036524 7e
> >> # 5017476 8
> >> # 5010604 9
> >> # 4923016 8e
> >> # 4914152 9e
> 
> Also, your use of tar cfJ assumes relatively new GNU tar; it won't work
> on other systems (but this is a pre-existing non-portability, and may be
> irrelevant, if you are willing to require that the only people likely to
> make a release tarball are using appropriate tools).

It is already using a GNU tar-ism with the j vs J flags and IMO GNU tar
1.22 at almost 4 years old has been around more than long enough.


diff --git a/Makefile b/Makefile
index a7ac04b..9073a86 100644
--- a/Makefile
+++ b/Makefile
@@ -251,10 +251,10 @@ clean:
 
 VERSION ?= $(shell cat VERSION)
 
-dist: qemu-$(VERSION).tar.bz2
+dist: qemu-$(VERSION).tar.xz
 
-qemu-%.tar.bz2:
-       $(SRC_PATH)/scripts/make-release "$(SRC_PATH)" "$(patsubst 
qemu-%.tar.bz2,%,$@)"
+qemu-%.tar.xz:
+       $(SRC_PATH)/scripts/make-release "$(SRC_PATH)" "$(patsubst 
qemu-%.tar.xz,%,$@)"
 
 distclean: clean
        rm -f config-host.mak config-host.h* config-host.ld $(DOCS) 
qemu-options.texi qemu-img-cmds.texi qemu-monitor.texi
diff --git a/scripts/make-release b/scripts/make-release
index 196c755..9b70650 100755
--- a/scripts/make-release
+++ b/scripts/make-release
@@ -20,5 +20,5 @@ git checkout "v${version}"
 git submodule update --init
 rm -rf .git roms/*/.git
 popd
-tar cfj ${destination}.tar.bz2 ${destination}
+XZ_OPT=-8e tar cfJ ${destination}.tar.xz ${destination}
 rm -rf ${destination}

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]