[Buildroot] [PATCH 1/1] package/lrzip: Add new package lrzip (Long Range ZIP or LZMA RZIP)
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Sat Sep 7 19:30:13 UTC 2019
Hello Sam,
Thanks for your contribution! I was about to apply after a few fixes,
but unfortunately this package doesn't build here, so a new iteration
of the patch will be needed.
On Sat, 7 Sep 2019 19:56:15 +0100
sam at gpsm.co.uk wrote:
> From: Sam Lancia <sam at gpsm.co.uk>
>
> lrzip is a compression utility that excels at compressing
> large files (usually > 10-50 MB)
>
> Signed-off-by: Sam Lancia <sam at gpsm.co.uk>
First, the commit title should be just:
package/lrzip: new package
> package/Config.in | 1 +
> package/lrzip/Config.in | 22 ++++++++++++++++++++++
> package/lrzip/lrzip.hash | 2 ++
> package/lrzip/lrzip.mk | 14 ++++++++++++++
Please add an entry with your name and this package in the DEVELOPERS
file, so that you get notified when there are build failures about this
package.
> diff --git a/package/Config.in b/package/Config.in
> index 9336261c5d..bb82de6ef1 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -70,6 +70,7 @@ menu "Compressors and decompressors"
> source "package/lz4/Config.in"
> source "package/lzip/Config.in"
> source "package/lzop/Config.in"
> + source "package/lrzip/Config.in"
Indentation in this file is with tabs, and you should respect the
alphabetic ordering. Note that "make check-package" would have told you
about the improper alphabetic ordering.
> source "package/p7zip/Config.in"
> source "package/pigz/Config.in"
> source "package/pixz/Config.in"
> diff --git a/package/lrzip/Config.in b/package/lrzip/Config.in
> new file mode 100644
> index 0000000000..e4badfc09d
> --- /dev/null
> +++ b/package/lrzip/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_LRZIP
> + bool "lrzip"
> + depends on BR2_USE_MMU # fork()
> + depends on BR2_USE_WCHAR
> + depends on BR2_TOOLCHAIN_HAS_THREADS
> + select BR2_PACKAGE_ZLIB
> + select BR2_PACKAGE_LZO
> + select BR2_PACKAGE_BZIP2
> + help
> + A compression utility that excels at compressing large files
> + (usually > 10-50 MB). Larger files and/or more free RAM means
> + that the utility will be able to more effectively compress
> + your files (ie: faster / smaller size), especially if the
> + filesize(s) exceed 100 MB. You can either choose to optimise
> + for speed (fast compression / decompression) or size,
> + but not both.
> +
> + https://github.com/ckolivas/lrzip
> +
> +comment "lrzip needs a toolchain w/ wchar"
> + depends on BR2_USE_MMU
> + depends on !BR2_USE_WCHAR
You forgot the thread dependency here.
> diff --git a/package/lrzip/lrzip.hash b/package/lrzip/lrzip.hash
> new file mode 100644
> index 0000000000..ebd658845d
> --- /dev/null
> +++ b/package/lrzip/lrzip.hash
> @@ -0,0 +1,2 @@
> +# Locally computed:
> +sha256 10315c20d5a47590e7220c210735ba169677824d5672509266682eccec84d952 lrzip-v0.631.tar.gz
You'll have to change the file name to lrzip-0.631.tar.gz, see below
why.
Also, please add the hash of the COPYING file.
> diff --git a/package/lrzip/lrzip.mk b/package/lrzip/lrzip.mk
> new file mode 100644
> index 0000000000..b3865f2682
> --- /dev/null
> +++ b/package/lrzip/lrzip.mk
> @@ -0,0 +1,14 @@
> +################################################################################
> +#
> +# lrzip
> +#
> +################################################################################
> +
> +LRZIP_VERSION = v0.631
We want this to be:
LRZIP_VERSION = 0.631
> +LRZIP_SITE = $(call github,ckolivas,lrzip,$(LRZIP_VERSION))
and this to:
LRZIP_SITE = $(call github,ckolivas,lrzip,v$(LRZIP_VERSION))
Indeed, we want the VERSION variable to really only contain the version
number, and not any prefix such as 'v'.
However, as said above, this package doesn't build with the following
defconfig:
BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2019.05.1.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_LRZIP=y
# BR2_TARGET_ROOTFS_TAR is not set
It fails like this:
In file included from rzip.h:22:0,
from main.c:56:
lrzip_private.h:179:0: warning: "bswap_32" redefined
#define bswap_32(x) \
^
In file included from /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/endian.h:59:0,
from /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/types.h:216,
from /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/procfs.h:32,
from /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/ucontext.h:25,
from /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/signal.h:329,
from main.c:25:
/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/byteswap.h:32:0: note: this is the location of the previous definition
#define bswap_32(x) __bswap_32 (x)
^
In file included from rzip.h:22:0,
from main.c:56:
lrzip_private.h:183:0: warning: "bswap_64" redefined
# define bswap_64(x) \
^
In file included from /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/endian.h:59:0,
from /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/types.h:216,
from /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/procfs.h:32,
from /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/sys/ucontext.h:25,
from /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/signal.h:329,
from main.c:25:
/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/byteswap.h:36:0: note: this is the location of the previous definition
# define bswap_64(x) __bswap_64 (x)
^
In file included from decompress_demo.c:26:0:
./Lrzip.h:135:137: error: unknown type name ‘va_list’
typedef void (*Lrzip_Log_Cb)(void *data, unsigned int level, unsigned int line, const char *file, const char *func, const char *format, va_list args);
^
./Lrzip.h:506:34: error: unknown type name ‘Lrzip_Log_Cb’
void lrzip_log_cb_set(Lrzip *lr, Lrzip_Log_Cb cb, void *log_data);
^
make[4]: *** [Makefile:791: decompress_demo.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [Makefile:937: all-recursive] Error 1
make[2]: *** [Makefile:541: all] Error 2
make[1]: *** [package/pkg-generic.mk:241: /home/thomas/projets/buildroot/output/build/lrzip-0.631/.stamp_built] Error 2
Could you test your package with the ./utils/test-pkg program ? It will
help you find the most common/obvious build failures about your new
package.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list