Patchwork Add pigz as gzip-native alternative.

login
register
mail settings
Submitter Björn Stenberg
Date March 15, 2012, 8:25 a.m.
Message ID <1331799945-14172-1-git-send-email-bjst@enea.com>
Download mbox | patch
Permalink /patch/23387/
State Accepted
Commit fe5f165c775ccef36a251bb83ca5dadbd209e355
Headers show

Comments

Björn Stenberg - March 15, 2012, 8:25 a.m.
pigz, which stands for parallel implementation of gzip, is a fully functional replacement for gzip that exploits multiple processors and multiple cores to the hilt when compressing data. pigz was written by Mark Adler, and uses the zlib and pthread libraries.

This recipe adds pigz as an alternative gzip-native implementation only.

Signed-off-by: Björn Stenberg <bjst@enea.com>
---
 meta/recipes-extended/pigz/files/ldflags.patch |   17 +++++++++++++++++
 meta/recipes-extended/pigz/pigz.inc            |   21 +++++++++++++++++++++
 meta/recipes-extended/pigz/pigz_2.2.4.bb       |    9 +++++++++
 3 files changed, 47 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-extended/pigz/files/ldflags.patch
 create mode 100644 meta/recipes-extended/pigz/pigz.inc
 create mode 100644 meta/recipes-extended/pigz/pigz_2.2.4.bb
Koen Kooi - March 19, 2012, 2:46 p.m.
Op 15 mrt. 2012, om 09:25 heeft Björn Stenberg het volgende geschreven:
> 
> +++ b/meta/recipes-extended/pigz/pigz.inc
> @@ -0,0 +1,21 @@
> +SUMMARY = "A parallel implementation of gzip"
> +DESCRIPTION = "pigz, which stands for parallel implementation of gzip, is a \
> +fully functional replacement for gzip that exploits multiple processors and \
> +multiple cores to the hilt when compressing data. pigz was written by Mark \
> +Adler, and uses the zlib and pthread libraries."
> +HOMEPAGE = "http://zlib.net/pigz/"
> +SECTION = "console/utils"
> +LICENSE = "Zlib"
> +
> +SRC_URI = "http://zlib.net/pigz/pigz-${PV}.tar.gz \
> +           file://ldflags.patch"
> +
> +PROVIDES_virtclass-native += "gzip-native"
> +
> +DEPENDS_virtclass-native = "zlib-native"
> +
> +do_install () {
> +        install -d ${D}${bindir}
> +        install ${B}/pigz ${D}${bindir}/gzip
> +        install ${B}/unpigz ${D}${bindir}/gunzip
> +}

This is either missing update-alternatives entries or it is missing RREPLACES/RCONFLICTS with gzip/busybox/etc. Or both.

regards,

Koen
Björn Stenberg - March 19, 2012, 3:58 p.m.
Koen Kooi wrote:
> Op 15 mrt. 2012, om 09:25 heeft Björn Stenberg het volgende geschreven:
> > +PROVIDES_virtclass-native += "gzip-native"
> 
> This is either missing update-alternatives entries or it is missing
> RREPLACES/RCONFLICTS with gzip/busybox/etc. Or both.

My intention with the patch was to provide a native-only recipe for pigz, to improve distro build speed.

I'm not sure there is much interest in using pigz on target.
Koen Kooi - March 19, 2012, 5:56 p.m.
Op 19 mrt. 2012, om 16:58 heeft Björn Stenberg het volgende geschreven:

> Koen Kooi wrote:
>> Op 15 mrt. 2012, om 09:25 heeft Björn Stenberg het volgende geschreven:
>>> +PROVIDES_virtclass-native += "gzip-native"
>> 
>> This is either missing update-alternatives entries or it is missing
>> RREPLACES/RCONFLICTS with gzip/busybox/etc. Or both.
> 
> My intention with the patch was to provide a native-only recipe for pigz, to improve distro build speed.

But it went in as a regular recipe and hence needs to play well with others.

> 
> I'm not sure there is much interest in using pigz on target.
> 
> -- 
> Björn
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Björn Stenberg - March 20, 2012, 2:12 p.m.
Koen Kooi wrote:
> > My intention with the patch was to provide a native-only recipe for pigz,
> > to improve distro build speed.
> 
> But it went in as a regular recipe and hence needs to play well with others.

I thought I made it native-only by only providing gzip-native?
Koen Kooi - March 20, 2012, 2:16 p.m.
Op 20 mrt. 2012, om 15:12 heeft Björn Stenberg het volgende geschreven:

> Koen Kooi wrote:
>>> My intention with the patch was to provide a native-only recipe for pigz,
>>> to improve distro build speed.
>> 
>> But it went in as a regular recipe and hence needs to play well with others.
> 
> I thought I made it native-only by only providing gzip-native?

try 'bitbake pigz' :)

Patch

diff --git a/meta/recipes-extended/pigz/files/ldflags.patch b/meta/recipes-extended/pigz/files/ldflags.patch
new file mode 100644
index 0000000..928c3a5
--- /dev/null
+++ b/meta/recipes-extended/pigz/files/ldflags.patch
@@ -0,0 +1,17 @@ 
+Link using the bitbake LDFLAGS.
+
+Signed-off-by: Björn Stenberg <bjst@enea.com>
+
+Upstream-Status: Pending
+
+--- pigz-2.2.4/Makefile.orig	2012-01-01 02:46:58.000000000 +0100
++++ pigz-2.2.4/Makefile	2012-03-09 08:47:40.025094863 +0100
+@@ -2,7 +2,7 @@
+ CFLAGS=-O3 -Wall -Wextra
+ 
+ pigz: pigz.o yarn.o
+-	$(CC) -o pigz pigz.o yarn.o -lpthread -lz
++	$(CC) $(LDFLAGS) -o pigz pigz.o yarn.o -lpthread -lz
+ 	ln -f pigz unpigz
+ 
+ pigz.o: pigz.c yarn.h
diff --git a/meta/recipes-extended/pigz/pigz.inc b/meta/recipes-extended/pigz/pigz.inc
new file mode 100644
index 0000000..acf1b71
--- /dev/null
+++ b/meta/recipes-extended/pigz/pigz.inc
@@ -0,0 +1,21 @@ 
+SUMMARY = "A parallel implementation of gzip"
+DESCRIPTION = "pigz, which stands for parallel implementation of gzip, is a \
+fully functional replacement for gzip that exploits multiple processors and \
+multiple cores to the hilt when compressing data. pigz was written by Mark \
+Adler, and uses the zlib and pthread libraries."
+HOMEPAGE = "http://zlib.net/pigz/"
+SECTION = "console/utils"
+LICENSE = "Zlib"
+
+SRC_URI = "http://zlib.net/pigz/pigz-${PV}.tar.gz \
+           file://ldflags.patch"
+
+PROVIDES_virtclass-native += "gzip-native"
+
+DEPENDS_virtclass-native = "zlib-native"
+
+do_install () {
+        install -d ${D}${bindir}
+        install ${B}/pigz ${D}${bindir}/gzip
+        install ${B}/unpigz ${D}${bindir}/gunzip
+}
diff --git a/meta/recipes-extended/pigz/pigz_2.2.4.bb b/meta/recipes-extended/pigz/pigz_2.2.4.bb
new file mode 100644
index 0000000..598bbe3
--- /dev/null
+++ b/meta/recipes-extended/pigz/pigz_2.2.4.bb
@@ -0,0 +1,9 @@ 
+require pigz.inc
+
+PR = "r0"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "9df2a3c742524446fa4e797c17e8fd85"
+SRC_URI[sha256sum] = "7e7967c47f66c07be97cbfa25c8816b72f9d35258466ea31eddc7666c914160e"
+LIC_FILES_CHKSUM = "file://pigz.c;md5=53f47c097bbf11b937a421b1816a8dc5"