btrfs-tools: update 5.16.2 -> 5.18

(From OE-Core rev: f458cdf52f27ece56f96408bbfa2eca8e5e2143c)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2022-06-06 14:01:13 +02:00
committed by Richard Purdie
parent 53042d6e2f
commit 13c857651b
2 changed files with 2 additions and 129 deletions

View File

@@ -1,126 +0,0 @@
Upstream-Status: Backport [https://github.com/kdave/btrfs-progs/commit/73545c1fe6304f08ab306b76d2bcacaf22a5e99a]
Signed-off-by: Ross Burton <ross.burton@arm.com>
From 4f4eafe8ebcc86f84f6c85a5c5814c430d8f190c Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Tue, 24 May 2022 13:44:29 +0100
Subject: [PATCH] btrfs-progs: add option to disable LZO support
LZO as a compression format is pretty archaic these days, there are
better algorithsm in all metrics for compression and decompression, and
lzo hasn't had a new release since 2017.
Add an option to disable LZO (defaulting to enabled), and respect it in
cmds/restore.c.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
Makefile | 2 +-
Makefile.inc.in | 1 +
cmds/restore.c | 7 +++++++
configure.ac | 30 ++++++++++++++++++++----------
4 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/Makefile b/Makefile
index af4908f9..0e8e05f3 100644
--- a/Makefile
+++ b/Makefile
@@ -335,7 +335,7 @@ endif
btrfs_convert_cflags = -DBTRFSCONVERT_EXT2=$(BTRFSCONVERT_EXT2)
btrfs_convert_cflags += -DBTRFSCONVERT_REISERFS=$(BTRFSCONVERT_REISERFS)
btrfs_fragments_libs = -lgd -lpng -ljpeg -lfreetype
-cmds_restore_cflags = -DBTRFSRESTORE_ZSTD=$(BTRFSRESTORE_ZSTD)
+cmds_restore_cflags = -DBTRFSRESTORE_LZO=$(BTRFSRESTORE_LZO) -DBTRFSRESTORE_ZSTD=$(BTRFSRESTORE_ZSTD)
ifeq ($(CRYPTOPROVIDER_BUILTIN),1)
CRYPTO_OBJECTS = crypto/sha224-256.o crypto/blake2b-ref.o
diff --git a/Makefile.inc.in b/Makefile.inc.in
index c995aef9..385b7ae1 100644
--- a/Makefile.inc.in
+++ b/Makefile.inc.in
@@ -16,6 +16,7 @@ BUILD_PROGRAMS = @BUILD_PROGRAMS@
BUILD_SHARED_LIBRARIES = @BUILD_SHARED_LIBRARIES@
BUILD_STATIC_LIBRARIES = @BUILD_STATIC_LIBRARIES@
BTRFSCONVERT_EXT2 = @BTRFSCONVERT_EXT2@
+BTRFSRESTORE_LZO = @BTRFSRESTORE_LZO@
BTRFSCONVERT_REISERFS = @BTRFSCONVERT_REISERFS@
BTRFSRESTORE_ZSTD = @BTRFSRESTORE_ZSTD@
PYTHON_BINDINGS = @PYTHON_BINDINGS@
diff --git a/cmds/restore.c b/cmds/restore.c
index 5923d571..4dd79fce 100644
--- a/cmds/restore.c
+++ b/cmds/restore.c
@@ -25,8 +25,10 @@
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
+#if BTRFSRESTORE_LZO
#include <lzo/lzoconf.h>
#include <lzo/lzo1x.h>
+#endif
#include <zlib.h>
#if BTRFSRESTORE_ZSTD
#include <zstd.h>
@@ -98,6 +100,10 @@ static inline size_t read_compress_length(unsigned char *buf)
static int decompress_lzo(struct btrfs_root *root, unsigned char *inbuf,
char *outbuf, u64 compress_len, u64 *decompress_len)
{
+#if !BTRFSRESTORE_LZO
+ error("btrfs not compiled with lzo support");
+ return -1;
+#else
size_t new_len;
size_t in_len;
size_t out_len = 0;
@@ -156,6 +162,7 @@ static int decompress_lzo(struct btrfs_root *root, unsigned char *inbuf,
*decompress_len = out_len;
return 0;
+#endif
}
static int decompress_zstd(const char *inbuf, char *outbuf, u64 compress_len,
diff --git a/configure.ac b/configure.ac
index d907636b..c1ad2c22 100644
--- a/configure.ac
+++ b/configure.ac
@@ -372,16 +372,26 @@ if ${PKG_CONFIG} udev --atleast-version 190; then
fi
AC_SUBST(UDEVDIR)
-dnl lzo library does not provide pkg-config, let use classic way
-AC_CHECK_LIB([lzo2], [lzo_version], [
- LZO2_LIBS="-llzo2"
- LZO2_CFLAGS=""
- LZO2_LIBS_STATIC="-llzo2"],[
- AC_MSG_ERROR([cannot find lzo2 library])
-])
-AC_SUBST([LZO2_LIBS])
-AC_SUBST([LZO2_LIBS_STATIC])
-AC_SUBST([LZO2_CFLAGS])
+AC_ARG_ENABLE([lzo],
+ AS_HELP_STRING([--disable-lzo], [build without lzo support]),
+ [], [enable_lzo=yes]
+)
+
+if test "x$enable_lzo" = xyes; then
+ dnl lzo library does not provide pkg-config, let use classic way
+ AC_CHECK_LIB([lzo2], [lzo_version], [
+ LZO2_LIBS="-llzo2"
+ LZO2_CFLAGS=""
+ LZO2_LIBS_STATIC="-llzo2"],[
+ AC_MSG_ERROR([cannot find lzo2 library])
+ ])
+ AC_SUBST([LZO2_LIBS])
+ AC_SUBST([LZO2_LIBS_STATIC])
+ AC_SUBST([LZO2_CFLAGS])
+fi
+
+AS_IF([test "x$enable_lzo" = xyes], [BTRFSRESTORE_LZO=1], [BTRFSRESTORE_LZO=0])
+AC_SUBST(BTRFSRESTORE_LZO)
dnl call PKG_INSTALLDIR from pkg.m4 to set pkgconfigdir
m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], [AC_MSG_ERROR([please install pkgconf])])
--
2.25.1

View File

@@ -17,9 +17,8 @@ DEPENDS = "util-linux zlib"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git;branch=master \
file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
file://lzo-option.patch \
"
SRCREV = "31458c9c81935abbed010221261897273a98d2c1"
SRCREV = "f9e303584272b81b05b926a0cc9010f43af12a03"
S = "${WORKDIR}/git"
PACKAGECONFIG ??= " \
@@ -28,7 +27,7 @@ PACKAGECONFIG ??= " \
python \
crypto-builtin \
"
PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native"
PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, python3-sphinx-native"
PACKAGECONFIG[programs] = "--enable-programs,--disable-programs"
PACKAGECONFIG[convert] = "--enable-convert --with-convert=ext2,--disable-convert --without-convert,e2fsprogs"
PACKAGECONFIG[zoned] = "--enable-zoned,--disable-zoned"