[Buildroot] [PATCH] pixz: new package
Vincent Stehlé
vincent.stehle at laposte.net
Sun Jul 2 20:31:26 UTC 2017
On 07/02/2017 07:08 PM, Arnout Vandecappelle wrote:
> Hi Vincent,
>
> On 02-07-17 18:11, Vincent Stehle wrote:
>> From: Vincent Stehlé <vincent.stehle at laposte.net>
>>
>> Add a package for pixz (pronounced pixie), a parallel, indexing version of
>> xz.
>
> Would this package be able to replace host-xz on systems that need to build
> host-xz?
Hi Arnout,
Thanks for the review!
Actually I use a version of this package just slightly modified to build
host-pixz and it works fine. I guess you are right, this would be useful
to offer it as an alternative to host-xz.
Although I suspect we cannot just replace xz by pixz by default, as I
needed once in a while to reduce the number of threads manually, just to
avoid using too much memory.
If we want to propose pixz as an alternative to xz, shall we go for a
virtual package for host-xz?
>
>>
>> See https://github.com/vasi/pixz
>>
>> Signed-off-by: Vincent Stehlé <vincent.stehle at laposte.net>
>> ---
>> DEVELOPERS | 1 +
>> package/Config.in | 1 +
>> package/pixz/Config.in | 12 ++++++++++++
>> package/pixz/pixz.hash | 2 ++
>> package/pixz/pixz.mk | 18 ++++++++++++++++++
>> 5 files changed, 34 insertions(+)
>> create mode 100644 package/pixz/Config.in
>> create mode 100644 package/pixz/pixz.hash
>> create mode 100644 package/pixz/pixz.mk
>>
>> diff --git a/DEVELOPERS b/DEVELOPERS
>> index f9e617ba3..3aaf29bfb 100644
>> --- a/DEVELOPERS
>> +++ b/DEVELOPERS
>> @@ -1715,6 +1715,7 @@ F: package/trinity/
>> N: Vincent Stehlé <vincent.stehle at laposte.net>
>> F: package/i7z/
>> F: package/msr-tools/
>> +F: package/pixz/
>> F: package/uftrace/
>>
>> N: Vinicius Tinti <viniciustinti at gmail.com>
>> diff --git a/package/Config.in b/package/Config.in
>> index 84e23ea63..3c7719278 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -64,6 +64,7 @@ menu "Compressors and decompressors"
>> source "package/lzip/Config.in"
>> source "package/lzop/Config.in"
>> source "package/p7zip/Config.in"
>> + source "package/pixz/Config.in"
>> source "package/unrar/Config.in"
>> source "package/unzip/Config.in"
>> source "package/xz/Config.in"
>> diff --git a/package/pixz/Config.in b/package/pixz/Config.in
>> new file mode 100644
>> index 000000000..e5b1b095e
>> --- /dev/null
>> +++ b/package/pixz/Config.in
>> @@ -0,0 +1,12 @@
>> +config BR2_PACKAGE_PIXZ
>> + bool "pixz"
>> + depends on BR2_PACKAGE_LIBARCHIVE
>
> Why depends on and not select?
>
> depends on BR2_TOOLCHAIN_HAS_THREADS
> depends on BR2_USE_WCHAR # libarchive
> select BR2_PACKAGE_LIBARCHIVE
>
I hesitated for this one. As libarchive needs wchar and has sub-options,
I thought we might let the user do the selection after all. But I like
your solution of adding wchar at pixz level better, thanks.
>> + depends on BR2_TOOLCHAIN_HAS_THREADS
>> + select BR2_PACKAGE_XZ
>> + help
>> + Pixz (pronounced pixie) is a parallel, indexing version of xz.
>> +
>> + https://github.com/vasi/pixz
>> +
>> +comment "pixz needs a toolchain w/ threads, and libarchive"
>> + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_LIBARCHIVE
>> diff --git a/package/pixz/pixz.hash b/package/pixz/pixz.hash
>> new file mode 100644
>> index 000000000..3089bcd90
>> --- /dev/null
>> +++ b/package/pixz/pixz.hash
>> @@ -0,0 +1,2 @@
>> +# Locally computed:
>> +sha256 02c50746b134fa1b1aae41fcc314d7c6f1919b3d48bcdea01bf11769f83f72e8 pixz-1.0.6.tar.xz
>> diff --git a/package/pixz/pixz.mk b/package/pixz/pixz.mk
>> new file mode 100644
>> index 000000000..04dba2985
>> --- /dev/null
>> +++ b/package/pixz/pixz.mk
>> @@ -0,0 +1,18 @@
>> +################################################################################
>> +#
>> +# pixz
>> +#
>> +################################################################################
>> +
>> +PIXZ_VERSION = 1.0.6
>> +PIXZ_SITE = https://github.com/vasi/pixz/releases/download/v$(PIXZ_VERSION)
>> +PIXZ_SOURCE = pixz-$(PIXZ_VERSION).tar.xz
>> +PIXZ_DEPENDENCIES = host-pkgconf libarchive xz
>
> Does it really depend on xz? Ah yes, for liblzma. Then you should also select it.
>
>> +PIXZ_LICENSE = BSD-2-Clause
>> +PIXZ_LICENSE_FILES = LICENSE
>> +
>> +# The configure script does not know how to test for the manpage presence when
>> +# cross-compiling; help it a bit.
>> +PIXZ_CONF_ENV = ac_cv_file_src_pixz_1=yes
>
> The comment sounds like putting this to "yes" would actually build the manpage,
> but the reverse is true... How about:
>
> # pixz.1 is actually present, but AC_CHECK_FILE doesn't detect it when
> # cross-compiling, which causes configure to try to regenerate it. So
> # give it a hint to say that it actually is present.
Sure, this is more explicit, thanks.
I'll resubmit a v2.
Best regards,
Vincent.
>
> Regards,
> Arnout
>
>> +
>> +$(eval $(autotools-package))
>>
>
More information about the buildroot
mailing list