commit bb727004d7199ed9a3c67ca9d601d4c9e7c1209a Author: zyppe <210hcl@gmail.com> Date: Tue Feb 6 16:32:39 2024 +0800 Initialize for btrfsprogs diff --git a/.btrfsprogs.metadata b/.btrfsprogs.metadata new file mode 100644 index 0000000..ed08213 --- /dev/null +++ b/.btrfsprogs.metadata @@ -0,0 +1 @@ +0cf779df2ec53b0065e06367e0e462c3b8f4a48a0bcfd6329f1620e8bb753b0a btrfs-progs-v5.14.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df26506 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +btrfs-progs-v5.14.tar.gz diff --git a/0001-btrfs-progs-Add-optional-dependency-on-libudev.patch b/0001-btrfs-progs-Add-optional-dependency-on-libudev.patch new file mode 100644 index 0000000..8b5ddf5 --- /dev/null +++ b/0001-btrfs-progs-Add-optional-dependency-on-libudev.patch @@ -0,0 +1,68 @@ +From c03a8cab17c22f03dfebe910a567c9d547d173e1 Mon Sep 17 00:00:00 2001 +From: Nikolay Borisov +Date: Thu, 30 Sep 2021 15:06:32 +0300 +Subject: [PATCH 1/3] btrfs-progs: Add optional dependency on libudev + +This is needed for future code which will make btrfs-progs' device +scanning logic a little smarter by filtering out path device in +multipath setups. libudev is added as an optional dependency since the +library doesn't have a static version so making it a hard dependency +means forfeiting static build support. To alleviate this a fallback code +will be added for the static build case which doesn't rely on libudev. + +Signed-off-by: Nikolay Borisov +--- + Makefile | 2 +- + Makefile.inc.in | 2 +- + configure.ac | 9 +++++++++ + 3 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 93fe4c2b3e08..e96f66a36b46 100644 +--- a/Makefile ++++ b/Makefile +@@ -129,7 +129,7 @@ LIBS = $(LIBS_BASE) $(LIBS_CRYPTO) + LIBBTRFS_LIBS = $(LIBS_BASE) $(LIBS_CRYPTO) + + # Static compilation flags +-STATIC_CFLAGS = $(CFLAGS) -ffunction-sections -fdata-sections ++STATIC_CFLAGS = $(CFLAGS) -ffunction-sections -fdata-sections -DSTATIC_BUILD + STATIC_LDFLAGS = -static -Wl,--gc-sections + STATIC_LIBS = $(STATIC_LIBS_BASE) + +diff --git a/Makefile.inc.in b/Makefile.inc.in +index 9f49337147b8..c995aef97219 100644 +--- a/Makefile.inc.in ++++ b/Makefile.inc.in +@@ -27,7 +27,7 @@ CRYPTO_CFLAGS = @GCRYPT_CFLAGS@ @SODIUM_CFLAGS@ @KCAPI_CFLAGS@ + SUBST_CFLAGS = @CFLAGS@ + SUBST_LDFLAGS = @LDFLAGS@ + +-LIBS_BASE = @UUID_LIBS@ @BLKID_LIBS@ -L. -pthread ++LIBS_BASE = @UUID_LIBS@ @BLKID_LIBS@ @LIBUDEV_LIBS@ -L. -pthread + LIBS_COMP = @ZLIB_LIBS@ @LZO2_LIBS@ @ZSTD_LIBS@ + LIBS_PYTHON = @PYTHON_LIBS@ + LIBS_CRYPTO = @GCRYPT_LIBS@ @SODIUM_LIBS@ @KCAPI_LIBS@ +diff --git a/configure.ac b/configure.ac +index 038c2688421c..d0ceb0d70d16 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -304,6 +304,15 @@ PKG_STATIC(UUID_LIBS_STATIC, [uuid]) + PKG_CHECK_MODULES(ZLIB, [zlib]) + PKG_STATIC(ZLIB_LIBS_STATIC, [zlib]) + ++PKG_CHECK_EXISTS([libudev], [pkg_config_libudev=yes], [pkg_config_libudev=no]) ++if test "x$pkg_config_libudev" = xyes; then ++ PKG_CHECK_MODULES([LIBUDEV], [libudev]) ++ AC_DEFINE([HAVE_LIBUDEV], [1], [Define to 1 if libudev is available]) ++else ++ AC_MSG_CHECKING([for LIBUDEV]) ++ AC_MSG_RESULT([no]) ++fi ++ + AC_ARG_ENABLE([zstd], + AS_HELP_STRING([--disable-zstd], [build without zstd support]), + [], [enable_zstd=yes] +-- +2.25.1 + diff --git a/0002-btrfs-progs-Ignore-devices-representing-paths-in-mul.patch b/0002-btrfs-progs-Ignore-devices-representing-paths-in-mul.patch new file mode 100644 index 0000000..e7bcd1d --- /dev/null +++ b/0002-btrfs-progs-Ignore-devices-representing-paths-in-mul.patch @@ -0,0 +1,128 @@ +From 39849d97765ed133e0e7ee6eb87ecf5e20eb0d0e Mon Sep 17 00:00:00 2001 +From: Nikolay Borisov +Date: Thu, 30 Sep 2021 15:06:33 +0300 +Subject: [PATCH 2/3] btrfs-progs: Ignore devices representing paths in + multipath + +Currently btrfs-progs will happily enumerate any device which has a +btrfs filesystem on it irrespective of its type. For the majority of +use cases that's fine and there haven't been any problems with that. +However, there was a recent report that in multipath scenario when +running "btrfs fi show" after a path flap (path going down and then +coming back up) instead of the multipath device being show the device +which represents the flapped path is shown. So a multipath filesystem +might look like: + +Label: none uuid: d3c1261f-18be-4015-9fef-6b35759dfdba + Total devices 1 FS bytes used 192.00KiB + devid 1 size 10.00GiB used 536.00MiB path /dev/mapper/3600140501cc1f49e5364f0093869c763 + +/dev/mapper/xxx is actually backed by an arbitrary number of paths, +which in turn are presented to the system as ordinary scsi devices i.e +/dev/sdX. If a path flaps and a user re-runs 'btrfs fi show' the output +would look like: + +Label: none uuid: d3c1261f-18be-4015-9fef-6b35759dfdba + Total devices 1 FS bytes used 192.00KiB + devid 1 size 10.00GiB used 536.00MiB path /dev/sdd + +This only occurs on unmounted filesystems as those are enumerated by +btrfs-progs, for mounted filesystem the kernel properly deals only with +the actual multipath device. + +Turns out the output of this command is consumed by libraries and the +presence of a path device rather than the actual multipath causes +issues. + +Fix this by checking for the presence of DM_MULTIPATH_DEVICE_PATH +udev attribute as multipath path devices are tagged with this attribute +by the multipath udev scripts. + +Signed-off-by: Nikolay Borisov +--- + common/device-scan.c | 48 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 48 insertions(+) + +diff --git a/common/device-scan.c b/common/device-scan.c +index b5bfe844104b..311673e6b66e 100644 +--- a/common/device-scan.c ++++ b/common/device-scan.c +@@ -14,6 +14,10 @@ + * Boston, MA 021110-1307, USA. + */ + ++#ifdef STATIC_BUILD ++#undef HAVE_LIBUDEV ++#endif ++ + #include "kerncompat.h" + #include + #include +@@ -39,6 +43,10 @@ + #include "kernel-shared/zoned.h" + #include "ioctl.h" + ++#ifdef HAVE_LIBUDEV ++#include ++#endif ++ + static int btrfs_scan_done = 0; + + /* +@@ -364,6 +372,43 @@ void free_seen_fsid(struct seen_fsid *seen_fsid_hash[]) + } + } + ++#ifdef HAVE_LIBUDEV ++static bool is_path_device(char *device_path) ++{ ++ struct udev *udev = NULL; ++ struct udev_device *dev = NULL; ++ struct stat dev_stat; ++ const char *val; ++ bool ret = false; ++ ++ if (stat(device_path, &dev_stat) < 0) ++ return false; ++ ++ udev = udev_new(); ++ if (!udev) ++ goto out; ++ ++ dev = udev_device_new_from_devnum(udev, 'b', dev_stat.st_rdev); ++ if (!dev) ++ goto out; ++ ++ val = udev_device_get_property_value(dev, "DM_MULTIPATH_DEVICE_PATH"); ++ if (val && atoi(val) > 0) ++ ret = true; ++out: ++ udev_device_unref(dev); ++ udev_unref(udev); ++ ++ return ret; ++} ++#else ++static bool is_path_device(char *device_path) ++{ ++ return false; ++} ++#endif ++ ++ + int btrfs_scan_devices(int verbose) + { + int fd = -1; +@@ -394,6 +439,9 @@ int btrfs_scan_devices(int verbose) + /* if we are here its definitely a btrfs disk*/ + strncpy_null(path, blkid_dev_devname(dev)); + ++ if (is_path_device(path)) ++ continue; ++ + fd = open(path, O_RDONLY); + if (fd < 0) { + error("cannot open %s: %m", path); +-- +2.25.1 + diff --git a/0003-btrfs-progs-Add-fallback-code-for-path-device-ignore.patch b/0003-btrfs-progs-Add-fallback-code-for-path-device-ignore.patch new file mode 100644 index 0000000..490d25e --- /dev/null +++ b/0003-btrfs-progs-Add-fallback-code-for-path-device-ignore.patch @@ -0,0 +1,127 @@ +From 9fdb0badef4317dc6e680504c0315cefb15b083f Mon Sep 17 00:00:00 2001 +From: Nikolay Borisov +Date: Thu, 30 Sep 2021 15:06:34 +0300 +Subject: [PATCH] btrfs-progs: Add fallback code for path device ignore for + static build + +Since libudev doesn't provide a static version of the library for static +build btrfs-progs will have to provide manual fallback. This change does +this by parsing the udev database files hosted at /run/udev/data/. +Under that directory every block device should have a file with the +following name: bMAJ:MIN. So implement the bare minimum code necessary +to parse this file and search for the presence of DM_MULTIPATH_DEVICE_PATH +udev attribute. This could likely be racy since access to the udev +database is done outside of libudev but that's the best that can be +done when implementing this manually. + +Signed-off-by: Nikolay Borisov +--- + common/device-scan.c | 55 ++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 46 insertions(+), 9 deletions(-) + +diff --git a/common/device-scan.c b/common/device-scan.c +index 311673e6b66e..483831722b60 100644 +--- a/common/device-scan.c ++++ b/common/device-scan.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include "kernel-lib/overflow.h" + #include "common/path-utils.h" + #include "common/device-scan.h" +@@ -372,23 +373,54 @@ void free_seen_fsid(struct seen_fsid *seen_fsid_hash[]) + } + } + +-#ifdef HAVE_LIBUDEV +-static bool is_path_device(char *device_path) ++#ifdef STATIC_BUILD ++static bool is_path_device(dev_t device) ++{ ++ FILE *file; ++ char *line = NULL; ++ size_t len = 0; ++ ssize_t nread; ++ bool ret = false; ++ int ret2; ++ char path[PATH_MAX]; ++ ++ ret2 = snprintf(path, 100, "/run/udev/data/b%u:%u", major(device), ++ minor(device)); ++ ++ if (ret2 < 0) ++ return false; ++ ++ file = fopen(path, "r"); ++ if (file == NULL) ++ return false; ++ ++ while ((nread = getline(&line, &len, file)) != -1) { ++ if (strstr(line, "DM_MULTIPATH_DEVICE_PATH=1")) { ++ ret = true; ++ break; ++ } ++ } ++ ++ if (line) ++ free(line); ++ ++ fclose(file); ++ ++ return ret; ++} ++#elif defined(HAVE_LIBUDEV) ++static bool is_path_device(dev_t device) + { + struct udev *udev = NULL; + struct udev_device *dev = NULL; +- struct stat dev_stat; + const char *val; + bool ret = false; + +- if (stat(device_path, &dev_stat) < 0) +- return false; +- + udev = udev_new(); + if (!udev) + goto out; + +- dev = udev_device_new_from_devnum(udev, 'b', dev_stat.st_rdev); ++ dev = udev_device_new_from_devnum(udev, 'b', device); + if (!dev) + goto out; + +@@ -402,7 +434,7 @@ static bool is_path_device(char *device_path) + return ret; + } + #else +-static bool is_path_device(char *device_path) ++static bool is_path_device(dev_t device) + { + return false; + } +@@ -433,13 +465,18 @@ int btrfs_scan_devices(int verbose) + iter = blkid_dev_iterate_begin(cache); + blkid_dev_set_search(iter, "TYPE", "btrfs"); + while (blkid_dev_next(iter, &dev) == 0) { ++ struct stat dev_stat; ++ + dev = blkid_verify(cache, dev); + if (!dev) + continue; + /* if we are here its definitely a btrfs disk*/ + strncpy_null(path, blkid_dev_devname(dev)); + +- if (is_path_device(path)) ++ if (stat(path, &dev_stat) < 0) ++ continue; ++ ++ if (is_path_device(dev_stat.st_rdev)) + continue; + + fd = open(path, O_RDONLY); +-- +2.25.1 + diff --git a/boot-btrfs.sh b/boot-btrfs.sh new file mode 100644 index 0000000..299fe45 --- /dev/null +++ b/boot-btrfs.sh @@ -0,0 +1,19 @@ +#!/bin/bash -e +#%stage: filesystem +#%depends: dm dmraid lvm2 udev md luks +#%programs: btrfs +#%programs: btrfs-convert +#%programs: btrfs-find-root +#%programs: btrfs-image +#%programs: btrfs-select-super +#%programs: btrfsck +#%programs: btrfstune +# for fsck(8): listed twice so that a copy really ends up in /sbin +#%programs: /sbin/fsck.btrfs +#%programs: fsck.btrfs +#%programs: mkfs.btrfs +#%modules: btrfs + +modprobe btrfs + +btrfs dev scan >& /dev/null diff --git a/btrfs-progs-fix-defrag-c-option-parsing.patch b/btrfs-progs-fix-defrag-c-option-parsing.patch new file mode 100644 index 0000000..11ca28a --- /dev/null +++ b/btrfs-progs-fix-defrag-c-option-parsing.patch @@ -0,0 +1,43 @@ +From 61e00694e799e1d54c98124880ca03a08dd5d4a2 Mon Sep 17 00:00:00 2001 +From: David Sterba +Date: Sat, 18 Sep 2021 17:44:57 +0200 +Subject: [PATCH] btrfs-progs: fix defrag -c option parsing + +The refactoring f3a132fa1b8c ("btrfs-progs: factor out compression type +name parsing to common utils") caused a bug with parsing option -c with +defrag: + + # btrfs fi defrag -v -czstd file + ERROR: unknown compression type: zstd + + # btrfs fi defrag -v -clzo file + ERROR: unknown compression type: lzo + + # btrfs fi defrag -v -czlib file + ERROR: unknown compression type: zlib + +Fix it by properly checking the value representing unknown compression +algorithm. + +Issue: #403 +Signed-off-by: David Sterba +--- + cmds/filesystem.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmds/filesystem.c b/cmds/filesystem.c +index 9a41137d..c338571a 100644 +--- a/cmds/filesystem.c ++++ b/cmds/filesystem.c +@@ -835,7 +835,7 @@ static int parse_compress_type_arg(char *s) + int ret; + + ret = parse_compress_type(s); +- if (ret) { ++ if (ret < 0) { + error("unknown compression type: %s", s); + exit(1); + } +-- +2.35.3 + diff --git a/btrfs-progs_props_dont_translate_value_of_compression_none.patch b/btrfs-progs_props_dont_translate_value_of_compression_none.patch new file mode 100644 index 0000000..22573a3 --- /dev/null +++ b/btrfs-progs_props_dont_translate_value_of_compression_none.patch @@ -0,0 +1,123 @@ +From 7781d1a2daa6564c3988dc268eb0680e057027f5 Mon Sep 17 00:00:00 2001 +From: Li Zhang +Date: Sun, 16 Jan 2022 16:52:43 +0800 +Subject: [PATCH] btrfs-progs: props: don't translate value of compression=none +References: JSC#PED-1711 + +Currently, if user specifies value 'no' or 'none' on the command line, +it gets translated to an empty value that is passed to kernel. There was +a change in kernel 5.14 done by commit 5548c8c6f55b ("btrfs: props: +change how empty value is interpreted") that changes the behaviour +in that case. + +The empty value is supposed to mean 'the default value' for any +property. For compression there is a need to distinguish resetting the +value and also setting the NOCOMPRESS property. The translation to empty +value makes that impossible. + +The explanation and behaviour copied from the kernel patch: + + Old behaviour: + + $ lsattr file + ---------------------- file + # the NOCOMPRESS bit is set + $ btrfs prop set file compression '' + $ lsattr file + ---------------------m file + + This is equivalent to 'btrfs prop set file compression no' in current + btrfs-progs as the 'no' or 'none' values are translated to an empty + string. + + This is where the new behaviour is different: empty string drops the + compression flag (-c) and nocompress (-m): + + $ lsattr file + ---------------------- file + # No change + $ btrfs prop set file compression '' + $ lsattr file + ---------------------- file + $ btrfs prop set file compression lzo + $ lsattr file + --------c------------- file + $ btrfs prop get file compression + compression=lzo + $ btrfs prop set file compression '' + # Reset to the initial state + $ lsattr file + ---------------------- file + # Set NOCOMPRESS bit + $ btrfs prop set file compression no + $ lsattr file + ---------------------m file + + This obviously brings problems with backward compatibility, so this + patch should not be backported without making sure the updated + btrfs-progs are also used and that scripts have been updated to use the + new semantics. + + Summary: + + - old kernel: + no, none, "" - set NOCOMPRESS bit + - new kernel: + no, none - set NOCOMPRESS bit + "" - drop all compression flags, ie. COMPRESS and NOCOMPRESS + +Signed-off-by: Li Zhang +[ update changelog ] +Signed-off-by: David Sterba + +--- + Documentation/btrfs-property.8 | 11 +++++++++-- + Documentation/btrfs-property.asciidoc | 3 ++- + cmds/property.c | 2 -- + 3 files changed, 11 insertions(+), 5 deletions(-) + +--- a/Documentation/btrfs-property.8 ++++ b/Documentation/btrfs-property.8 +@@ -82,10 +82,17 @@ + compression algorithm set for an inode, possible values: + \fIlzo\fR, + \fIzlib\fR, +-\fIzstd\fR\&. To disable compression use "" (empty string), ++\fIzstd\fR\&. To disable compression use + \fIno\fR + or +-\fInone\fR\&. ++\fInone\fR\&. Empty value resets the property and sets a default value. ++.br ++.PP ++.ps +1 ++\fBNote\fR ++.ps -1 ++.br ++An empty value resetting compression property has changed since kernel 5.14. Earlier versions would disable compression. + .RE + .RE + .PP +--- a/Documentation/btrfs-property.asciidoc ++++ b/Documentation/btrfs-property.asciidoc +@@ -47,7 +47,8 @@ + device as object. For a mounted filesystem, specify a mount point. + compression:::: + compression algorithm set for an inode, possible values: 'lzo', 'zlib', 'zstd'. +-To disable compression use "" (empty string), 'no' or 'none'. ++To disable compression use 'no' or 'none'. An empty string "" resets the property and sets a default value. ++'Note:' An empty value resetting compression property has changed since kernel 5.14. Earlier versions would disable compression. + + *list* [-t ] :: + Lists available properties with their descriptions for the given object. +--- a/cmds/property.c ++++ b/cmds/property.c +@@ -126,8 +126,6 @@ + xattr_name[XATTR_BTRFS_PREFIX_LEN + strlen(name)] = '\0'; + + if (value) { +- if (strcmp(value, "no") == 0 || strcmp(value, "none") == 0) +- value = ""; + sret = fsetxattr(fd, xattr_name, value, strlen(value), 0); + } else { + sret = fgetxattr(fd, xattr_name, NULL, 0); diff --git a/btrfsprogs.changes b/btrfsprogs.changes new file mode 100644 index 0000000..75d7c89 --- /dev/null +++ b/btrfsprogs.changes @@ -0,0 +1,1860 @@ +* Tue Dec 19 2023 tabraham@suse.com +- btrfs-progs: fix defrag -c option parsing (bsc#1218029) + * btrfs-progs-fix-defrag-c-option-parsing.patch +* Mon Aug 29 2022 rgoldwyn@suse.com +- Upstream behavior of btrfs compression=none (JSC#PED-1711) + * btrfs-progs_props_dont_translate_value_of_compression_none.patch +* Wed Jan 19 2022 dmueller@suse.com +- add python-rpm-macros (bsc#1194748) +* Wed Dec 1 2021 nborisov@suse.com +- Ignore multipath devices when probing devices for a btrfs filesystem (bsc#1192983) + * 0001-btrfs-progs-Add-optional-dependency-on-libudev.patch + * 0002-btrfs-progs-Ignore-devices-representing-paths-in-mul.patch + * 0003-btrfs-progs-Add-fallback-code-for-path-device-ignore.patch +* Mon Sep 27 2021 rgoldwyn@suse.com +- Deleted upstreamed patches for upgrade: + - fate#325871 + * 0001-btrfs-progs-Add-support-for-metadata_uuid-field.patch + * 0002-btrfs-progs-btrfstune-Add-support-for-changing-the-u.patch + * 0003-btrfs-progs-Remove-fsid-metdata_uuid-fields-from-fs_.patch + * 0004-btrfs-progs-Remove-btrfs_fs_info-new_fsid.patch + * 0005-btrfs-progs-Directly-pass-root-to-change_devices_uui.patch + - btrfs-progs: check: fixup_extent_flags needs to deal with non-skinny + metadata (bsc#1131334). + * btrfs-progs-check-fixup_extent_flags-needs-to-deal-with-non-skinny-metadata.patch + - btrfs-progs: check: fix segfault with -Q (bsc#1158560) + * btrfs-progs-check-initialize-qgroup_item_count-in-ea.patch + - Enqueue feature to wait for exclusive operation to finish (JSC#SLE-15234) + * 0001-btrfs-progs-add-get_fsid_fd-for-getting-fsid-using-f.patch + * 0002-btrfs-progs-add-sysfs-file-reading-helpers.patch + * 0003-btrfs-progs-add-helpers-for-parsing-filesystem-exclu.patch + * 0004-btrfs-progs-check-for-exclusive-operation-before-iss.patch + * 0005-btrfs-progs-add-helper-to-check-or-wait-for-exclusiv.patch + * 0006-btrfs-progs-add-enqueue-parameter-for-exclusive-ops.patch + - Correct check_running_fs_exclop() return value (bsc#1184481) + * btrfs-progs-Correct-check_running_fs_exclop-return-v.patch +* Sun Sep 12 2021 dsterba@suse.cz +- Update to 5.14 + * convert: + * new option --uuid to copy, generate or set a given uuid + * improve output + * mkfs: + * allow to create degenerate raid0 (on 1 device) and raid10 (on 2 devices) + * image: + * improved error messages + * fix some alignment of restored image + * subvol delete: allow to delete by id when path is not resolvable + * check: + * require alignment of nodesize for 64k page systems + * detect and fix invalid block groups + * libbtrfs (deprecated): + * remove most exported symbols, leave only a few that are used by snapper + * no version change (still 0.1) + * remove btrfs-list.h, btrfsck.h + * fixes: + * reset generation of space v1 if v2 is used + * fi us: don't wrongly report missing device size when partition is not readable + * other: + * build: experimental features + * build: better detection of 64bit timestamp support for ext4 + * corrupt-block: block group items + * new and updated tests + * refactoring + * experimental features: + * new image dump format, with data +* Tue Aug 10 2021 rgoldwyn@suse.com +- Update to 5.13.1 + * build: fix build on musl libc due to missing definition of NAME_MAX + * check: + * batch more work into one transaction when clearing v1 free space inodes + * detect directoris with wrong number of links + * libbtrfsutil: fix race between subvolume iterator and deletion + * mkfs: be more specific about supported profiles for zoned device + * other: + * documentation updates +* Mon Jul 12 2021 dsterba@suse.cz +- Update to 5.13 + * restore: remove loop checks for extent count and directory scan + * inspect dump-tree: new options to print node (--csum-headers) and data + checksums (--csum-items) + * fi usage: + * print stripe count for striped profiles + * print zoned information: size, total unusable + * mkfs: print note about sha256 accelerated module loading issue + * check: ability to reset dev_item::bytes_used + * fixes + * detect zoned kernel support at run time too + * exclusive op running check return value + * fi resize: support cancel (kernel 5.14) + * device remove: support cancel (kernel 5.14) + * documentation about general topics + * compression + * zoned mode + * storage model + * hardware considerations + * other + * libbtrfsutil API overview + * help text fixes and updates + * hash speedtest measure time, cycles using perf and print throughput +* Wed Jun 16 2021 camspam@redhyena.net +- Add --disable-zoned for leap +* Tue Jun 15 2021 dsterba@suse.cz +- revert previous change, unintentionally disables zstd on tumbleweed +* Tue Jun 15 2021 camspam@redhyena.net +- Fix build for leap + * --disable-zstd if leap < 42.3 + * --disable-zoned for leap +* Wed May 12 2021 dsterba@suse.cz +- Update to 5.12.1 + * build: fix missing symbols in libbtrfs + * mkfs: check for minimal number of zones + * check: fix warning about cache generation when free space tree is enabled + * fix superblock write in zoned mode on 16K pages +* Sun May 9 2021 dsterba@suse.cz +- Update to 5.12 + * libbtrfsutil: relicensed to LGPL v2.1+ + * mkfs: zoned mode support (kernel 5.12+) + * fi df: show zone_unusable per profile type in zoned mode + * fi usage: show total amount of zone_unusable + * fi resize: fix message for exact size + * image: fix warning and enlarge output file if necessary + * core + * refactor chunk allocator for more modes + * implement zoned mode support: allocation and writes, sb log + * crypto/hash refactoring and cleanups + * refactoring and cleanups + * other + * test updates + * CI updates + * travis-ci integration disabled + * docker images updated, more coverage + * incomplete build support for Android removed + * doc updates + * chattr mode m for 'NOCOMPRESS" + * swapfile used from fstab + * how to add a new export to libbtrfsutil + * update status of mount options since 5.9 +- Update to 5.11.1 + * properly format checksums when a mismatch is reported + * check: fix false alert on tree block crossing 64K page boundary + * convert: + * refuse to convert filesystem with 'needs_recovery' + * update documentation to require fsck before conversion + * balance convert: fix raid56 warning when converting other profiles + * fi resize: improved summary + * other + * build: fix checks and autoconf defines + * fix symlink paths for CI support scripts + * updated tests +* Sun Mar 7 2021 dsterba@suse.cz +- Update to 5.11 + * fix device path canonicalization for device mapper devices + * receive: remove workaround for setting capabilities, all stable kernels + have been patched + * receive: fix duplicate mount path detection + * rescue: new subcommand create-control-device + * device stats: minor fix for plain text format output + * build: detect if e2fsprogs support 64bit timestamps + * build: drop libmount, required functionality has been reimplemented + * mkfs: warn when raid56 is used + * balance convert: warn when raid56 is used + * other + * new and updated tests + * documentation updates + * seeding device + * raid56 status + * CI updates + * docker images for various distros +- Update to 5.10.1 + * static build works again + * other: + * add a way to test static binaries with the testsuite + * clarify scrub docs + * update dependencies, minimum version for libmount is 2.24, this may + change in the future +- Update to 5.10 + * scrub status: + * print percentage of progress + * add size unit options + * fi usage: also print free space from statfs + * convert: copy full 64 bit timestamp from ext4 if availalble + * check: + * add ability to repair extent item generation + * new option to remove leftovers from inode number cache (-o inode_cache) + * check for already running exclusive operation (balance, device add/...) + when starting one + * preliminary json output support for 'device stats' + * fixes: + * subvolume set-default: id 0 correctly falls back to toplevel + * receive: align internal buffer to allow fast CRC calculation + * logical-resolve: distinguish -o subvol and bind mounts + * build: new dependency libmount + * other + * doc fixes and updates + * new tests + * ci on gitlab temporarily disabled + * debugging output enhancements +* Wed Nov 4 2020 lnussel@suse.de +- prepare usrmerge (boo#1029961) +* Sun Oct 25 2020 dsterba@suse.cz +- Update to 5.9: + * mkfs: + * switch default to single profile for multi-device filesystem, up to + now it was raid0 that may not be simple to convert to some other profile + as raid0 needs a workspace on all device for that + * new option -R for run-time options (eg. mount time enabled), now + understands free-space-tree + * subvolume delete: + * refuse to delete the default subvolume (kernel will not allow that but + the error reason is not obvious) + * warn on EPERM, eg. if send is on progress on the subvolume + * convert: + * fix 32bit overflows on large filesystems + * improved error handling and error messages + * check free space taking fragmentation into account + * check: + * detect and repair wrong inode generation + * minor improvement in error reporting on roots + * libbtrfsutils: follow main package versioning (5.9) + * add pkg-config file definitions + * python-btrfsutil: follow main package versioning (5.9) + * inspect tree-stats: print node counts for each level, fanout + * other: + * docs: + * remove obsolete mount options (alloc_start, subvolrootid) + * deleting default subvolume is not permitted + * updated or fixed tests + * .editorconfig updates + * move files to kernel-shared/ + * CI: + * updated to use zstd 1.4.5 + * fix reiserfs build + * more builds with asan, ubsan + * sb-mod updates + * build: + * print .so versions of libraries in configure summary +* Mon Jul 6 2020 dsterba@suse.cz +- Update to 5.7: + * mkfs: + * new option to enable features otherwise enabled at runtime, now + implemented for quotas, 'mkfs.btrfs -R quota' + * fix space accounting for small image, DUP and --rootdir + * option -A removed + * check: detect ranges with overlapping csum items + * fi usage: report correct numbers when plain RAID56 profiles are used + * convert: ensure the data chunks size never exceed device size + * libbtrfsutil: update documentation regarding subvolume deletion + * build: support libkcapi as implementation backend for cryptographic + primitives + * core: global options for verbosity (-v, -q), subcommands -v or -q are + aliases and will continue to work but are considered deprecated, + current command output is preserved to keep scripts working + * other: + * build warning fixes + * btrfs-debugfs ported to python 3 +* Wed May 13 2020 dsterba@suse.cz +- Update to 5.6.1: + * print warning when multiple block group profiles exist, update 'fi usage' + summary, add docs to maual page explaining the situation + * build: optional support for libgcrypt or libsodium, providing hash + implementations + * updated docs +* Wed Apr 29 2020 dimstar@opensuse.org +- Fix content of _dracutmodulesdir variable: this definitively does + not belong to libexecdir. +* Mon Apr 6 2020 info@paolostivanin.com +- Update to 5.6: + * inspect logical-resolve: support LOGICAL_INO_V2 as new option '-o', + helps advanced dedupe tools + * inspect: user larger buffer (64K) for results + * subvol delete: support deletion by id (requires kernel 5.7+) + * dump-tree: new option --hide-names, replace any names + (file, directory, subvolume, xattr) in the output with stubs + * various fixes +* Sun Feb 16 2020 dsterba@suse.cz +- Update to 5.4.1 + * build: fix docbook5 build + * check: do extra verification of extent items, inode items and chunks + * qgroup: return ENOTCONN if quotas not running (needs updated kernel) + * other: various test fixups +* Thu Jan 23 2020 dimstar@opensuse.org +- BuildRequire pkgconfig(udev) instead of udev: Allow OBS to + shortcut through the -mini flavor. +- Use pkg-config --modversion udev to identify the current udev + version. This is more portable and supports the -mini flavors. +* Tue Dec 3 2019 dsterba@suse.cz +- Update to 5.4 + * support new hash algorithms (kernel 5.5): + * mkfs.btrfs and btrfs-convert with --csum, crc32c, xxhash, sha256, blake2 + * mkfs: support new raid1c3 and raid1c4 block group profiles (kernel 5.5) + * check: + * --repair delays start with a warning, can be skipped using --force + * enhanced detetion of inode types from partial data, more options for + repair + * receive: fix quiet option + * image: speed up chunk loading + * fi usage: + * sort devices by id + * print ratio of used/total per block group type + * rescue zero-log: reset the log pointers directly, avoid reading some other + potentially damaged structures + * new make target install-static to install only static binaries/libraries + * other + * docs updates + * new tests + * cleanups and refactoring +* Mon Nov 11 2019 dsterba@suse.cz +- Update to 5.3.1: + * libbtrfs: fix link breakage due to missing symbols +- Updaet to 5.3: + * mkfs: + * new option to specify checksum algorithm (only crc32c) + * fix xattr enumeration + * dump-tree: BFS (breadth-first) traversal now default + * libbtrfsutil: remove stale BTRFS_DEV_REPLACE_ITEM_STATE_x defines + * ci: add support for gitlab + * other: + * preparatory work for more checksum algorithms + * docs update + * switch to docbook5 backend for asciidoc + * fix build on uClibc due to missing backtrace() + * lots of printf format fixups +* Tue Oct 15 2019 jthumshirn@suse.com +- Enable build of python-bindings for libbtrfsutil +* Tue Sep 17 2019 fcrozat@suse.com +- Update to 5.2.2: + * check: + * fix false report of wrong byte count for orphan inodes + * option -E was not handled correctly + * new check and repair for root item generation + * balance: check for full-balance before background fork + * mkfs: check that total device size does not overflow 16EiB + * dump-tree: print DEV_STATS key type + * other: + * new and updated tests + * doc fixups and updates +* Tue Jul 30 2019 dsterba@suse.cz +- update to 5.2.1 + * scrub status: fix ETA calculation after resume + * check: fix crash when using -Q + * restore: fix symlink owner restoration + * mkfs: fix regression with mixed block groups + * core: fix commit to process all delayed refs + * other: + * minor cleanups + * test updates +- update to 5.2 + * subvol show: print qgroup information when available + * scrub: + * status: show ETA, revamp the whole output + * fix reading/writing of last position on resume/cancel, potentially + skipping part of the filesystem on next resume + * dump-tree: add new option --noscan to use only devices given on the + commandline + * all-in-one binary (busybox style) with mkfs.btrfs, btrfs-image, + btrfs-convert, btrfstune + * image: fix hang when there are more than 32 cpus online and compression is + requested + * convert: fix some false ENOSPC errors when --rootdir is used + * build: fix gcc9 warnings + * core changes + * command handling cleanups + * dead code removal + * cmds-* files moved to cmds/ + * other shared userspace files moved to common/ + * utils.c split into more files + * preparatory work for more output formats + * libbtrfsutil: fix unaligned access + * other + * new and updated tests + * fix tests so CI passes again + * sb-mod can modify more superblock items +* Sun May 19 2019 seanlew@opensuse.org +- update to version 5.1 + * repair: flush/FUA support to avoid breaking metadata COW + * file extents repair no longer relies on data in extent tree + * lowmem: fix false error reports about gaps between extents + * add inode mode check and repair for various objects + * add check for invalid combination of nocow/compressed extents + * device scan option to forget scanned devices [new] + * mkfs: use same chunk size as kernel for initial creation + * dev-repace: better report when other exclusive operation runs + * help for sntax errors on command lines, print relevant msgs + * defrag: able to open files in RO mode + * dump-tree: --block can be specified multiple times +* Sat Apr 6 2019 nine@detonation.org +- update to version 4.20.2 + * dump-super: minor output fixup + * revert fix for prefix detection of receive path, this is temporary and + unbreaks existing user setups +* Thu Mar 28 2019 mfasheh@suse.com +- Use correct path for dracut-fsck-help.txt in module-setup.sh (bsc#1122539) + * Remove module-setup.sh + * Add module-setup.sh.in +* Thu Jan 24 2019 mfasheh@suse.com +- Advise user of fs recovery options when we fail to mount (fate#320443, + bsc#1122539) + * Add dracut-fsck-help.txt + * Add module-setup.sh +* Tue Jan 22 2019 dsterba@suse.cz +- update to version 4.20.1 + * libbtrfs: fix build of external tools due to missing symbols + * ci: enable library test +* Sat Jan 19 2019 avindra@opensuse.org +- update to version 4.20 + * new feature: metadata uuid + * lightweight change of UUID without rewriting all metadata + (incompatible change) + * done by btrfstune -m/-M, needs kernel support, 5.0+ + * image: + * fix block groups when restoring from multi-device image + * only enlarge result image if it's a regular file + * check + * more device extent checks and fixes + * can repair dir item with mismatched hash + * mkfs: uuid tree created with proper contents + * fix mount point detection due to partial prefix match + * other: + * new tests, build fixes, doc updates + * libbtrfsutil: fix tests if kernel lacks support for new + subvolume ioctls +- partial cleanup with spec-cleaner +- drop 0001-btrfs-progs-Add-support-for-metadata_uuid-field.patch +- drop 0002-btrfs-progs-btrfstune-Add-support-for-changing-the-u.patch +- drop 0003-btrfs-progs-Remove-fsid-metdata_uuid-fields-from-fs_.patch +- drop 0004-btrfs-progs-Remove-btrfs_fs_info-new_fsid.patch +- drop 0005-btrfs-progs-Directly-pass-root-to-change_devices_uui.patch +* Thu Jan 17 2019 kukuk@suse.de +- Use %%license instead of %%doc [bsc#1082318] +* Thu Jan 17 2019 nborisov@suse.com +- Implement fate#325871 + * Added 0001-btrfs-progs-Add-support-for-metadata_uuid-field.patch + * Added 0002-btrfs-progs-btrfstune-Add-support-for-changing-the-u.patch + * Added 0003-btrfs-progs-Remove-fsid-metdata_uuid-fields-from-fs_.patch + * Added 0004-btrfs-progs-Remove-btrfs_fs_info-new_fsid.patch + * Added 0005-btrfs-progs-Directly-pass-root-to-change_devices_uui.patch +* Wed Dec 5 2018 dsterba@suse.cz +- update to version 4.19.1 + * check + * many lowmem mode improvements + * properly report qgroup mismatch errors + * check symlinks with append/immutable flags + * fi usage + * correctly calculate allocated/unallocated for raid10 + * minor output updates + * mkfs + * detect ENOSPC on thinly provisioned devices + * fix spurious EEXIST during directory traversal + * restore: fix relative path for restore target + * dump-tree: print symbolic tree names for backrefs + * send: fix regression preventing send -p with subvolumes mounted on "/" + * corrupt-tree: refactoring and command line updates + * build + * make it work with e2fsprogs < 1.42 again + * restore support for autoconf 2.63 + * detect if -std=gnu90 is supported + * other + * new tests + * cleanups +* Sun Nov 11 2018 dsterba@suse.cz +- update to version 4.19 + * check: support repair of fs with free-space-tree feature + * core: + * port delayed ref infrastructure from kernel + * support write to free space tree + * dump-tree: new options for BFS and DFS enumeration of b-trees + * quota: rescan is now done automatically after 'assign' + * btrfstune: incomplete fix to uuid change + * subvol: fix 255 char limit checks + * completion: complete block devices and now regular files too + * docs: + * ship uncompressed manual pages + * btrfsck uses a manual page link instead of symlink + * other + * improved error handling + * docs + * new tests +* Sun Aug 5 2018 dsterba@suse.cz +- update to version 4.17.1 + * check: + * add ability to fix wrong ram_bytes for compressed inline files + * beautify progress output + * btrfstune: allow to continue uuid change after unclean interruption + * several fuzz fixes: + * detect overalpping chunks + * chunk loading error handling + * don't crash with unexpected root refs to extents + * relax option parsing again to allow mixing options and non-options + arguments + * fix qgroup rescan status reporting + * build: + * drop obsolete dir-test + * new configure option to disable building of tools + * add compatibility options --disable-static and --disable-shared + * other: + * cleanups and preparatory work + * new test images +- spec cleanup +* Thu Jun 21 2018 dsterba@suse.cz +- update to version 4.17 + * check + * many lowmem mode improvements + * properly report qgroup mismatch errors + * check symlinks with append/immutable flags + * fi usage + * correctly calculate allocated/unallocated for raid10 + * minor output updates + * mkfs + * detect ENOSPC on thinly provisioned devices + * fix spurious EEXIST during directory traversal + * restore: fix relative path for restore target + * dump-tree: print symbolic tree names for backrefs + * send: fix regression preventing send -p with subvolumes mounted on "/" + * corrupt-tree: refactoring and command line updates + * build + * make it work with e2fsprogs < 1.42 again + * restore support for autoconf 2.63 + * detect if -std=gnu90 is supported +- Removed patches (upstreamed): + * 0001-btrfs-progs-convert-fix-support-for-e2fsprogs-1.42.patch + * 0002-btrfs-progs-build-autoconf-2.63-compatibility.patch + * 0003-btrfs-progs-build-detect-whether-std-gnu90-is-suppor.patch +* Mon Jun 11 2018 jeffm@suse.com +- Don't require libzstd-devel-static on builds that don't use it. +* Thu May 3 2018 dsterba@suse.cz +- fix installation of btrfs.5.gz +* Mon Apr 30 2018 jeffm@suse.com +- Fix building on SLE11: + * btrfs-progs: convert: fix support for e2fsprogs < 1.42 + * btrfs-progs: build: detect whether -std=gnu90 is supported + * btrfs-progs: build: autoconf 2.63 compatibility + * Fixed mismerged addition of libbtrfsutil1 package description +- Added patches: + * 0001-btrfs-progs-convert-fix-support-for-e2fsprogs-1.42.patch + * 0002-btrfs-progs-build-autoconf-2.63-compatibility.patch + * 0003-btrfs-progs-build-detect-whether-std-gnu90-is-suppor.patch +* Mon Apr 23 2018 dsterba@suse.cz +- update to version 4.16.1 + * remove obsolete tools: btrfs-debug-tree, btrfs-zero-log, btrfs-show-super, + btrfs-calc-size + * sb-mod: new debugging tool to edit superblock items + * mkfs: detect if thin-provisioned device does not have enough space + * check: don't try to verify checksums on metadata dump images + * build: fail documentation build if xmlto is not found + * build: fix build of btrfs.static +- Remove patch: 0001-btrfs-progs-build-fix-static-build.patch (upstream) +- Update initrd script +* Thu Apr 5 2018 dsterba@suse.cz +- update to version 4.16 + * libbtrfsutil - new LGPL library to wrap userspace functionality + * several 'btrfs' commands converted to use it: + * properties + * filesystem sync + * subvolume set-default/get-default/delete/show/sync + * python bindings, tests + * build + * use configured pkg-config path + * CI: add python, musl/clang, built dependencies caching + * convert: build fix for e2fsprogs 1.44+ + * don't install library links with wrong permissions + * fixes + * prevent incorrect use of subvol_strip_mountpoint + * dump-super: don't verify csum for unknown type + * convert: fix inline extent creation condition + * check: + * lowmem: fix false alert for 'data extent backref lost for snapshot' + * lowmem: fix false alert for orphan inode + * lowmem: fix false alert for shared prealloc extents + * mkfs: + * add UUID and otime to root of FS_TREE - with the uuid, snapshots will + be now linked to the toplevel subvol by the parent UUID + * don't follow symlinks when calculating size + * pre-create the UUID tree + * fix --rootdir with selinux enabled + * dump-tree: add option to print only children nodes of a given block + * image: handle missing device for RAID1 + * other + * new tests + * test script cleanups (quoting, helpers) + * tool to edit superblocks + * updated docs +- Add patch: 0001-btrfs-progs-build-fix-static-build.patch +- Add new library packages: libbtrfsutil +* Fri Feb 16 2018 dsterba@suse.cz +- use documentation shipped by upstream tar, reduce dependencies +* Tue Feb 13 2018 dsterba@suse.cz +- enable static build again, zstd now has static version +* Thu Feb 1 2018 dsterba@suse.cz +- update to version 4.15 + * mkfs --rootdir reworked, does not minimize the final image but can be still + done using a new option --shrink + * fix allocation of system chunk, don't allocate from the reserved area + * other + * new and updated tests + * cleanups, refactoring + * doc updates +* Sun Jan 7 2018 dsterba@suse.cz +- spec: fix distro version condition +* Sun Jan 7 2018 dsterba@suse.cz +- update to version 4.14.1 + * dump-tree: print times of root items + * check: fix several lowmem mode bugs + * convert: fix rollback after balance + * other + * new and updated tests, enabled lowmem mode in CI + * docs updates + * fix travis CI build + * build fixes + * cleanups +- update to version 4.14 + * build: libzstd now required by default + * check: more lowmem mode repair enhancements + * subvol set-default: also accept path + * prop set: compression accepts no/none, same as "" + * filesystem usage: enable for filesystem on top of a seed device + * rescue: new command fix-device-size + * other + * new tests + * cleanups and refactoring + * doc updates +- Removed patches: + - rollback-regression-fix.patch - upstreamed +- spec: disable static build, missing libzstd-devel-static +- spec: disable zstd support for non-Tumbleweed distros +* Tue Dec 19 2017 wqu@suse.de +- Fix rollback regression which can lead to data corruption + Added patches: rollback-regression-fix.patch (bsc#1069478) +* Thu Dec 7 2017 dimstar@opensuse.org +- Escape the usage of %%{VERSION} when calling out to rpm. + RPM 4.14 has %%{VERSION} defined as 'the main packages version'. +* Wed Nov 22 2017 jeffm@suse.com +- Add dependencies for libreiserfscore0 3.6.27 or newer (bsc#1071085). +* Tue Oct 31 2017 dsterba@suse.cz +- update to version 4.13.3: + * check: fix --force, wrong check for a mounted block device + * build: fix --with-convert parsing + * subvol list: don't list TOPLEVEL + * other: update tests +* Thu Oct 5 2017 dsterba@suse.cz +- update to version 4.13.2: + * subvol list: + * don't list toplevel subvolume among deleted (broken since 4.8.3) + * minor adjustments of uuid print format + * subvol delete: + * fix swapped behaviour of --commit-each and --commit-after + * fix potentially lost sync if subvolumes are from different filesystems + * check: add cache for metadata blocks, should improve performance + * other: + * new tests, testsuite updates + * doc updates + * cleanups +* Wed Sep 27 2017 dsterba@suse.cz +- update to version 4.13.1: + * image: speed up generating the sanitized names, do not generate unprintable chars + * completion: add missing commands, better mount point detection + * restore: add zstd support; libzstd detected automatically, will be + requested by default in the future, or can be configured out + * other: + * misc fixes found by sparse + * doc enhancements, ioctl manual page started + * updated and new tests + * build fixes +* Wed Sep 13 2017 dsterba@suse.cz +- update to version 4.13: + * convert: reiserfs support + * check: new option --force to allow check of a mounted filesystem (no repair) + * mkfs: --rootdir will now copy special files + * dump-tree: minor output changes + * inspect rootid: accept file as arugment + * dev usage: don't calculate slack space for missing devices + * fi du: don't print error on EMPTY_SUBVOL (inode number 2) + * build: + * fixed support for sanitization features on gcc (tsan, asan, ubsan) + * fix PIE build + * other: + * misc cleanups and stability fixes + * travis CI enhancements + * new tests, fuzzed images + * testsuite cleanups +- Removed patches: + - 0163-btrfs-progs-fsck-fix-segfault.patch - will be upstreamed + - local-version-override.patch - not needed anymore + - btrfs-support-pie.patch - upstremed +* Mon Aug 28 2017 dsterba@suse.cz +- Removed patches: + - 0167-Btrfs-progs-make-find_and_setup_root-return-an-error.patch + - 0168-Btrfs-progs-don-t-bug-out-if-we-can-t-find-the-last-.patch +* Mon Aug 28 2017 dsterba@suse.cz +- update to 4.12.1 + * build: + * fix cross-compilation + * use gnu90 explicitly + * dump-tree: more relaxed checks so -b can print block on a damaged fs + * convert: fix the 1MB range exclusion + * check: more dir_item hash checks + * other + * added missing getopt spec for some options + * doc fixes + * cleanups + * test updates +- update to 4.12 + * subvol show: new options --rootid, --uuid to show subvol by the given spec + * convert: progress report fixes, found by tsan + * image: progress report fixes, found by tsan + * fix infinite looping in find-root, or when looking for free extents + * other: + * code refactoring + * docs updates + * build: ThreadSanitizer support + * tests: stricter checks for mounted filesystem +- update to -4.11.1 + * image: restoring from multiple devices + * dev stats: make --check option work + * check: fix false alert with extent hole on a NO_HOLE filesystem + * check: lowmem mode, fix false alert in case of mixed inline and compressed + extent + * convert: work with large filesystems (many TB) + * convert: fix overwriting of eb header flags + * convert: do not clear NODATASUM flag in inodes when run with --no-datasum + * docs updates + * build: sync Android.mk with Makefile + * tests: + * new tests + * fix 008 and 009, shell quotation mistake +- update to 4.11 + * receive: fix handling empty stream with -e (multi-stream) + * send dump: fix printing long file names + * stability fixes for: dump-super, print-tree, check + * option parser updates: global options are parsed before the subcommand name + (old xfstests will fail) + * new and updated tests + * documentation updates +* Sat Jun 10 2017 meissner@suse.com +- btrfs-support-pie.patch: remove CFLAGS usage from linker lines, + this will allow the default PIE support to work. +* Wed Apr 5 2017 dsterba@suse.cz +- update to 4.10.2 + * check: lowmem mode fix for false alert about lost backrefs + * convert: minor bugfix + * library: fix build, misisng symbols, added tests +- update to 4.10.1 + * receive: handle subvolume in path clone + * convert: rollback fixed (rewrite was needed to address previous design issues) + * build: fix build of 3rd party tools, missing + * dump-tree: print log trees + * other: new and updated tests +- update to 4.10 + * send: dump output fixes: missing newlies + * check: several fixes for the lowmem mode, improved error reporting + * build + * removed some library deps for binaries that not use them + * ctags, cscope + * split Makefile to the autotool generated part and the rest, not needed + to autogen.sh after adding a file + * shared code: sync easy parts with kernel sources + * other + * lots of cleanups + * source file reorganization: convert, mkfs, utils + * lots of spelling fixes in docs, other updates + * more tests +- update to 4.9.1 + * check: + * use correct inode number for lost+found files + * lowmem mode: fix false alert on dropped leaf + * size reports: negative numbers might appear in size reports during device + deletes (previously in EiB units) + * mkfs: print device being trimmed + * defrag: v1 ioctl support dropped + * quota: print message before starting to wait for rescan + * qgroup show: new option to sync before printing the stats + * other: + * corrupt-block enhancements + * backtrace and co. cleanups + * doc fixes +* Tue Jan 3 2017 dsterba@suse.cz +- update to 4.9 + * check: many lowmem mode updates + * send: use splice syscall to copy buffer from kernel + * receive: new option to dump the stream in textual form + * convert: + * move sources to own directory + * prevent accounting of blocks beyond end of the device + * make it work with 64k sectorsize + * mkfs: move sources to own directory + * defrag: warns if directory used without -r + * dev stats: + * new option to check stats for non-zero values + * add long option for -z + * library: version bump to 0.1.2, added subvol_uuid_search2 + * other: + * cleanups + * docs updates +- update to 4.8.5 + * receive: fix detection of end of stream (error reported even for valid + streams) + * other: + * added test for the receive bug + * fix linking of library-test +- update to 4.8.4 + * check: support for clearing space cache v2 (free-space-tree) + * send: + * more sanity checks (with tests), cleanups + * fix for fstests/btrfs/038 and btrfs/117 failures + * build: + * fix compilation of standalone ioctl.h, pull NULL definition + * fix library link errors introduced in 4.8.3 + * tests: + * add more fuzzed images from bugzilla + * add bogus send stream checks + * fixups and enhancements for CI environment builds + * misc refinements and updates of testing framework + * other: + * move sources for btrfs-image to own directory + * deprecated and not build by default: btrfs-calc-size, btrfs-show-super + * docs updates +- update to 4.8.3 + * check: + * support for clearing space cache (v1) + * size reduction of inode backref structure + * send: + * fix handling of multiple snapshots (-p and -c options) + * transfer buffer increased (should reduce number of context switches) + * reuse existing file for output (-f), eg. when root cannot create files (NFS) + * dump-tree: + * print missing items for various structures + * new: dev stats, balance status item + * sync key names with kernel (the persistent items) + * subvol show: now able to print the toplevel subvolume -- the creation time + might be wrong though + * mkfs: + * store the creation time of toplevel root inode + * print UUID in the summary + * build: travis CI for devel + * other: + * lots of cleanups and refactoring + * switched to on-stack path structure + * fixes from coverity, asan, ubsan + * new tests + * updates in testing infrastructure + * fixed convert test 005 +* Sun Oct 30 2016 dsterba@suse.cz +- update to 4.8.2 + * convert: also convert file attributes + * convert: fix wrong tree block alignment for unalianged block group + * check: quota verify fixes, handle reloc tree + * build: add stub for FIEMAP_EXTENT_SHARED, compiles on ancient kernels + * build: add stub for BUILD_ASSERT when ioctl.h is included + * dump-tree: don't crash on unrecognized tree id for -t + * tests: + * add more ioctl tests + * convert: more symlink tests, attribute tests + * quota verify for reloc tree + * other cleanups +* Tue Oct 25 2016 jeffm@suse.com +- Add ability to provide site specific defaults for mkfs (FATE#320615). + * Only used for SLES11 defaults. +- Added patch mkfs-default-features.patch +* Mon Oct 17 2016 dsterba@suse.cz +- update to 4.8.1 + * 32bit builds fixed + * build without backtrace support fixed +- update to 4.8 + * error handling improvements all over the place + * new fuzzed images, test updates + * doc fixups + * minor cleanups and improvements + * kernel library helpers moved to own directory + * qgroup: fix regression leading to incorrect status after check, + introduced in 4.7 +* Tue Sep 27 2016 dsterba@suse.cz +- update to 4.7.3 + * fixed free space tree compat status + * check: low-mem mode: handle partially dropped snapshots + * dump-super: consolidate options for superblock copy + * tree-stats: check mount status + * subvol delete: handle verbosity option + * defrag: print correct error string + * mkfs: fix reading rotational status + * other: + * UBSAN build option + * documentation updates + * enhanced tests: convert, fuzzed images, more tools to run on fuzzed + images +* Wed Sep 7 2016 dsterba@suse.cz +- removed btrfsprogs-only-install-udev-rules-for-udev-190.patch: fix build +* Mon Sep 5 2016 dsterba@suse.cz +- update to 4.7.2 + * check: + * urgent fix: false report of backref mismatches; do not --repair + last unaffected version 4.6.1 (code reverted to that state) + * fuzzing and fixes + * added more sanity checks for various structures + * testing images added + * build: udev compatibility: do not install .rules on version < 190 + * other: + * dump-super: do not crash on garbage value in csum_type + * minor improvements in messages and help strings + * documentation: + * filesystem features +* Tue Aug 30 2016 jeffm@suse.com +- Add new btrfsprogs-udev-rules package to contain the udev rules. +- Fix packaging for udev rules: + - btrfs builtin didn't exist prior to udev v190, so the rules must + depend on that version. +- Added patch: + * btrfsprogs-only-install-udev-rules-for-udev-190.patch +* Sun Aug 28 2016 dsterba@suse.cz +- update to 4.7.1 + * check: + * new optional mode: optimized for low memory usage (memory/io tradeoff) + * --mode=lowmem, not default, still considered experimental + * does not work with --repair yet + * convert: regression fix, ext2_subvol/image rw permissions + * mkfs/convert: + * two-staged creation, partially created filesystem will not be recognized + * improved error handling (fewer BUG_ONs) + * convert: preparation for more filesystems to convert from + * documentation updates: quota, qgroup + * other + * message updates + * more tests + * more build options, enhanced debugging +* Thu Jul 28 2016 dsterba@suse.cz +- update to 4.7 + * convert: fix creating discontig extents + * check: speed up traversing heavily reflinked extents within a file + * check: verify qgroups of higher levels + * check: repair can now fix wrong qgroup numbers + * balance: new option to run in the background + * defrag: default extent target size changed to 32MiB + * du: silently skip non-btrfs dirs/files + * documentation updates: btrfs(5), btrfs(8), balance, subvolume, scrub, + filesystem, convert + * bugfixes: + * unaligned access (reported for sparc64) in raid56 parity calculations + * use /bin/bash + * other stability fixes and cleanups + * more tests +- Removed patches: + * 0002-btrfs-progs-btrfsck-verify-qgroups-above-level-0.patch + * 0003-btrfs-progs-btrfsck-write-corrected-qgroup-info-to-d.patch +* Wed Jul 13 2016 dsterba@suse.cz +- update to 4.6.1 + * fi resize: negative resize argument accepted again + * qgroup rescan: fix skipping when rescan is in progress + * mkfs: initialize stripesize to correct value + * testsuite updates, mostly convert tests + * documentation updates + * btrfs-device, btrfs-restore manual pages enhanced + * misc fixups +- update to 4.6 + * convert - major rewrite: + * fix a long-standing bug that led to mixing data blocks into metadata block + groups + * the workaround was to do full balance after conversion, which was + recommended practice anyway + * explicitly set the lowest supported version of e2fstools to 1.41 + * provide and install udev rules file that addresses problems with device + mapper devices, renames after removal + * send: new option: quiet + * dev usage: report slack space (device size minus filesystem area on the dev) + * image: support DUP + * build: short options to enable debugging builds + * other: + * code cleanups + * build fixes + * more tests and other enhancements + * Removed patches: + * 0001-btrfs-progs-free-qgroup-counts-in-btrfsck.patch + * 0169-btrfs-progs-udev-add-rules-for-dm-devices.patch + * btrfs-progs-no-PKG_CHECK_VAR +* Fri Jun 17 2016 mfasheh@suse.com +- btrfsck updates for qgroup verification and repair (fate#318144) + * We can now check all qgroup levels + * btrfsck will write out corrected qgroups when run with --repair + - Added patch: 0001-btrfs-progs-free-qgroup-counts-in-btrfsck.patch + - Added patch: 0002-btrfs-progs-btrfsck-verify-qgroups-above-level-0.patch + - Added patch: 0003-btrfs-progs-btrfsck-write-corrected-qgroup-info-to-d.patch +* Sun May 15 2016 dsterba@suse.cz +- update to 4.5.3 + * ioctl: fix unaligned access in buffer from TREE_SEARCH; might cause SIGBUS + on architectures that do not support unaligned access and do not performa + any fixups + * improved validation checks of superblock and chunk-related structures + * subvolume sync: fix handling of -s option + * balance: adjust timing of safety delay countdown with --full-balance + * rescue super-recover: fix reversed condition check + * check: fix bytes_used accounting + * documentation updates: mount options, scrub, send, receive, select-super, + check, mkfs + * testing: new fuzzed images, for superblock and chunks +- fix build failure on 13.1: conditional default for udevdir +- fix build failure on SLE11SP4: wrong check in makefile +* Mon May 9 2016 jeffm@suse.com +- Add udev rules for dm devices (bsc#912170 bsc#888215) + - Added patch: 0169-btrfs-progs-udev-add-rules-for-dm-devices.patch + - Added patch: btrfs-progs-no-PKG_CHECK_VAR +* Mon May 2 2016 dsterba@suse.cz +- update to 4.5.2 + * new/moved command: btrfs-calc-stats -> btrfs inspect tree-stats + * check: fix false alert for metadata blocks crossing stripe boundary + * check: catch when qgroup numbers mismatch + * check: detect running quota rescan and report mismatches + * balance start: add safety delay before doing a full balance + * fi sync: is now silent + * fi show: don't miss filesystems with partially matching uuids + * dev ready: accept only one argument for device + * dev stats: print "devid:N" for a missing device instead of "(null)" + * other: + * lowest supported version of e2fsprogs is 1.41 + * minor cleanups, test updates +- Removed patch: 2000-btrfs-full-balance-warning.diff +* Wed Mar 30 2016 dsterba@suse.cz +- update to 4.5.1 + * mkfs: allow DUP on multidev fs + * fix static build +- update to 4.5 + * new/moved commands + * btrfs-show-super -> btrfs inspect-internal dump-super + * btrfs-debug-tree -> btrfs inspect-internal dump-tree + * new commands + * btrfs fi du - calculate disk usage, including shared extents + * enhancements + * device delete - delete by id (needs kernel support, not merged to 4.6) + * check - new option to specify chunk root + * debug-tree/dump-tree - option -t understands human readable name of the + tree (along numerical ids) + * btrfs-debugfs - can dump block group information + * bugfixes + * all commands should accept the option separator "--" + * several fixes in device scan + * restore works on filesystems with sectorsize > 4k + * debug-tree/dump-tree - print compression type as string + * subvol sync: fix crash, memory corruption + * argument parsing fixes: subvol get-default, qgroup create/destroy/assign, + inspect subvolid-resolve + * check for block device or regular file in several commands + * other + * documentation updates + * manual pages for the moved tools now point to btrfs-filesystem + * testsuite updates +- Removed patch (upstream): + 0001-btrfs-progs-libbtrfs-remove-max-min-macros-from-API.patch +* Fri Mar 18 2016 mgorse@suse.com +- Recommend btrfsmaintenance +* Sun Mar 6 2016 dsterba@suse.cz +- hide min/max macros clashing with gcc 6 (bnc#966257) + (0001-btrfs-progs-libbtrfs-remove-max-min-macros-from-API.patch) +* Sun Feb 28 2016 dsterba@suse.cz +- update to 4.4.1 + * find-root: don't skip the first chunk + * free-space-tree compat bits fix + * build: target symlinks + * documentation updates + * test updates +* Thu Jan 21 2016 dsterba@suse.cz +- update to 4.4 + * mkfs.btrfs --data dup + * support balance filters added/enhanced in linux 4.4 + * manual pages enhanced (btrfs, mkfs, mount, filesystem, balance) + * 'btrfs filesystem usage' works with mixed blockgroups + * build: installation to /usr/local + * build: the 'ar' tool is properly deteced during cross-compilation + * improved stability on fuzzed/crafted images when reading sys array in + superblock + * debug-tree: option -t understands ids for tree root and chnuk tree + * check: properly reset nlink of multi-linked file + * chunk recovery: fix floating point exception + * chunk recovery: endianity bugfix during rebuild + * mkfs with 64K pages and nodesize reported superblock checksum mismatch +- Removed patches: + * 0001-btrfs-progs-mkfs-use-correct-size-for-superblock-csu.patch + * fix-doc-build-on-SLE11SP3.diff +* Thu Dec 10 2015 tiwai@suse.de +- Fix missing dependency on coreutils for initrd macros (boo#958562) +- Call missing initrd macro at post / postun (boo#958562) +* Mon Nov 23 2015 dsterba@suse.cz +- fix mkfs failure on ppc64 (or with sectorsize > 4k) (bsc#956819) +- Added patch: 0001-btrfs-progs-mkfs-use-correct-size-for-superblock-csu.patch +* Sun Nov 15 2015 dsterba@suse.cz +- update to 4.3.1 + * fixes + * device delete: recognize 'missing' again + * mkfs: long names are not trimmed when doing ssd check + * support partitioned loop devices + * other + * replace several mallocs with on-stack variables + * more memory allocation failure handling + * add tests for bugs fixed + * cmd-device: switch to new message printing helpers + * minor code cleanups +* Thu Nov 12 2015 dsterba@suse.cz +- update to 4.3 + * mkfs + * mixed mode is not forced for filesystems smaller than 1GiB + * mixed mode broken with mismatching sectorsize and nodesize, fixed + * print version info earlier + * print devices sorted by id + * do not truncate target image with --rootsize + * fi usage: + * don't print global block reserve + * print device id + * minor output tuning + * other cleanups + * calc-size: + * div-by-zero fix on an empty filesystem + * fix crash + * bugfixes: + * more superblock sanity checks + * consistently round size of all devices down to sectorsize + * misc leak fixes + * convert: don't try to rollback with a half-deleted ext2_saved subvolume + * other: + * check: add progress indicator + * scrub: enahced error message + * show-super: read superblock from a given offset + * add README + * docs: update manual page for mkfs.btrfs, btrfstune, balance, convert and inspect-internal + * build: optional build with more warnings (W=...) + * build: better support for static checkers + * build: html output of documentation + * pretty-print: last_snapshot for root_item + * pretty-print: stripe dev uuid + * error reporting wrappers, introduced and example use + * refactor open_file_or_dir + * other docs and help updates + * testing: + * test for nodes crossing stripes + * test for broken 'subvolume sync' + * basic tests for mkfs, raid option combinations + * basic tests for fuzzed images (check) + * command intrumentation (eg valgrind) + * print commands if requested + * add README for tests +* Sun Nov 1 2015 dsterba@suse.cz +- build btrfsprogs-static package for 13.2 and Factory, package + with static versions of the utilities, aimed for rescue environments +* Sun Oct 18 2015 dsterba@suse.cz +- update to 4.2.3 + - subvol sync: make it actually work again + - scanning: do not scan already discovered filesystems (minor optimization) + - convert: better error message in case the filesystem is not finalized + - restore: off-by-one symlink path check fix +* Sun Oct 4 2015 dsterba@suse.cz +- update to 4.2.2 + - fi label: use fallback if the label ioctl is not available + - convert: check nodesize constraints against commandline features (-O) + - scrub: report status 'running' until all devices are finished + - device scanning might crash in some scenarios + - fi usage: print summary for non-root users +* Mon Sep 21 2015 dsterba@suse.cz +- update to 4.2.1 + - fix an off-by-one error in cross-stripe boundary check + - convert: don't write uninitialized data to image + - image: don't loop with option -t0 + - image: don't create threads if compression is not requested +- Removed patches: + * 0001-btrfs-progs-fix-cross-stripe-boundary-check.patch +* Wed Sep 16 2015 dsterba@suse.cz +- make mkfs work with 64k nodesize again, notably fixes mkfs on ppc64 + (bsc#945229) +- Added patch: + * 0001-btrfs-progs-fix-cross-stripe-boundary-check.patch +* Wed Sep 2 2015 dsterba@suse.cz +- version 4.2 + * enhancements: + * mkfs: do not create extra single chunks on multiple devices + * resize: try to guess the minimal size, 'inspect min-dev-size' + * qgroup assign: add option to schedule rescan + * chunk-recover: be more verbose about the scanning process + * fixes: + * check: + * find stripes crossing stripe boundary -- created by convert + * print correct range for file hole when there are no extents + and learn how to fix it + * replace: more sanity checks + * convert: concurrency fixes related to reporting progress + * find-root: option -a will not skip the current root anymore + * subvol list: fix occasional crash + * do not create stripes crossing stripe boundary + * build: + * fixes for musl libc + * preliminary support for android (not working yet, more code changes needed) + * new EXTRA_CFLAGS and EXTRA_LDFLAGS + * other: + * lots of cleanups + * tests: lots of updates, new tests, framework improvements + * documentation updates + * debugging: print-tree shows stripe length +- Removed patches (upstreamed): + * 2104-get-min-size-for-resize.patch + * 2105-move-min-resize-implementation-to-inspec.patch + * 2106-inspect-add-command-min-dev-size.patch +* Mon Aug 31 2015 dsterba@suse.cz +- add warning before full balance starts (bsc#940467, fate#319317) +- Added patches: + 2000-btrfs-full-balance-warning.diff +* Fri Jul 24 2015 fdmanana@suse.com +- Add feature to get minimum size a filesystem can be resized to + (FATE#317897). +- Added patches: + * 2104-get-min-size-for-resize.patch + * 2105-move-min-resize-implementation-to-inspec.patch + * 2106-inspect-add-command-min-dev-size.patch +* Mon Jul 13 2015 dsterba@suse.com +- version 4.1.2 + - mkfs: bugfix, previous version does not create entierly correct + filesystem (has to be recreated) +* Thu Jul 9 2015 dsterba@suse.com +- version 4.1.1 + * bugfixes + - defrag: threshold overflow fix + - fsck: + - check if items fit into the leaf space + - fix wrong nbytes + - mkfs: + - create only desired block groups for single device + - preparatory work for fix on multiple devices + * enhancements + - new alias for 'device delete': 'device remove' + * other + - fix compilation on old gcc (4.3) + - documentation updates + - debug-tree: print nbytes + - test: image for corrupted nbytes + - corupt-block: let it kill nbytes +* Tue Jun 23 2015 dsterba@suse.cz +- spec: drop libacl dependency +* Sun Jun 21 2015 dsterba@suse.cz +- version 4.1 + * bugfixes + - fsck.btrfs: no bash-isms + - bugzilla 97171: invalid memory access (with tests) + - receive: + - cloning works with --chroot + - capabilities not lost + - mkfs: do not try to register bare file images + - option --help accepted by the standalone utilities + * enhancements + - corrupt block: ability to remove csums + - mkfs: + - warn if metadata redundancy is lower than for data + - options to make the output quiet (only errors) + - mixed case names of raid profiles accepted + - rework the output: + - more comprehensive, 'key: value' format + - subvol: + - show: + - print received uuid + - update the output + - new options to specify size units + - sync: + - grab all deleted ids and print them as they're removed, + previous implementation only checked if there are any + to be deleted - change in command semantics + - scrub: print timestamps in days HMS format + - receive: + - can specify mount point, do not rely on /proc + - can work inside subvolumes + - send: + - new option to send stream without data (NO_FILE_DATA) + - convert: + - specify incompat features on the new fs + - qgroup: + - show: distinguish no limits and 0 limit value + - limit: ability to clear the limit + - help for 'btrfs' is shorter, 1st level command overview + - debug tree: print key names according to their C name + * new + - rescure zero-log + - btrfsune: + - rewrite uuid on a filesystem image + - new option to turn on NO_HOLES incompat feature + * deprecated + - standalone btrfs-zero-log + * other + - testing framework updates + - uuid rewrite test + - btrfstune feature setting test + - zero-log tests + - more testing image formats + - manual page updates + - ioctl.h synced with current kernel uapi version + - convert: preparatory works for more filesystems (reiserfs pending) + - use static buffers for path handling where possible + - add new helpers for send uilts that check memory allocations, + switch all users, deprecate old helpers + - Makefile: fix build dependency generation + - map-logical: make it work again +* Tue Jun 2 2015 antoine.belvire@laposte.net +- Install bash completion for btrfs. +* Tue Apr 28 2015 dsterba@suse.cz +- version 4.0 + * resize: + * don't accept file as an argument (it's confusing) + * print better error message in case of an error + * restore: optionally restore metadata (time, mode, uid/gid) + * receive: optionally enforce chroot + * new rescue subcommand 'zero-log', same as btrfs-zero-log, but + now also part of the main utility + * check: + * free space checks match kernel, fixes incorrect reports + * convert: fix setting of checksum bit if --no-datasum is used + * fsck.btrfs: don't print messages + * fix quota rescan on PPC64 (mangled ioctl number) + * test updates + * documentation: files renamed to .asciidoc, misc fixups +* Tue Mar 24 2015 dsterba@suse.cz +- version 3.19.1 + - convert: + - new option to specify metadata block size + - --no-progress actually works + - restore: properly handle the page boundary corner case + - build fixes: + - missing macro from public header, BTRFS_BUILD_VERSION + - wrong handling of --enable-convert + - fi usage: reports correct space for degraded mounts + - other: + - mkfs: help string updates + - completion: added 'usage' subcommands + - cleanups in qgroup code, preparatory work +* Tue Mar 10 2015 dsterba@suse.cz +- version 3.19 + - btrfs-image + - restore can now run in parallel threads + - fixed restore of multiple image from multiple devices onto a single dev + - introduced metadump v2 + - check + - make --init-csum-tree and --init-extent-tree work together + - find-new + - option to search through all metadata even if a root was already found + - convert + - show progress by default, can be turned off + - corrupt-block + - option to work on a specific root + - bash completion script for all subcommands +- spec: convert to autotools + Removed patch 0169-btrfs-progs-Check-metadata-mirrors-in-find-root.patch +* Sun Mar 1 2015 dsterba@suse.cz +- add COPYING +* Wed Jan 28 2015 dsterba@suse.cz +- version 3.18.2 + * qgroup show: print human readable sizes, options to say otherwise + * check: new option to explicitly say no to writes + * mkfs: message about trimming is not printed to stderr + * fi show: fixed return value + * tests: new infrastructure + * btrfstune: force flag can be used together with seeding option + * backtrace support is back + * getopt cleanups + * doc and help updates +* Tue Jan 13 2015 dsterba@suse.cz +- version 3.18.1 + - minor fixes + - documentation updates +* Mon Dec 29 2014 dsterba@suse.cz +- version 3.18 + - mkfs - skinny-metadata feature is now on by default, first introduced in + kernel 3.10 + - filesystem usage - give an overview of fs usage in a way that's more + comprehensible than existing 'fi df' + - device usage - more detailed information about per-device allocations + - check: + - option to set a different tree root byte number + - ability to link lost files to lost+found, caused by a recent kernel bug + - repair of severely corrupted fs (use with care) + - convert - option to show progress + - subvol create - print the commit mode inline, print the global mode only if --verbose + - other updates: musl-libc support, coverity bugfixes, new test images, + documentation +- Removed patches (upstreamed): + * 0010-btrfs-progs-move-group-type-and-profile-pretty-print.patch + * 0011-btrfs-progs-Enhance-the-command-btrfs-filesystem-df.patch + * 0012-btrfs-progs-Add-helpers-functions-to-handle-the-prin.patch + * 0013-btrfs-progs-Add-command-btrfs-filesystem-disk-usage.patch + * 0014-btrfs-progs-Add-btrfs-device-disk-usage-command.patch + * 0015-btrfs-progs-cleanup-dead-return-after-usage-for-fi-d.patch + * 0016-btrfs-progs-Fix-memleak-in-get_raid56_used.patch + * 0017-Btrfs-progs-fi-usage-free-memory-if-realloc-fails.patch + * 0019-btrfs-progs-add-original-df-and-rename-disk_usage-to.patch + * 0020-btrfs-progs-move-device-usage-to-cmds-device-more-cl.patch + * 0021-btrfs-progs-check-if-we-can-t-get-info-from-ioctls-d.patch + * 0022-btrfs-progs-zero-out-structures-before-calling-ioctl.patch + * 0024-btrfs-progs-Print-more-info-about-device-sizes.patch + * 0025-btrfs-progs-compare-unallocated-space-against-the-co.patch + * 0026-btrfs-progs-add-section-of-overall-filesystem-usage.patch + * 0027-btrfs-progs-cleanup-filesystem-device-usage-code.patch + * 0028-btrfs-progs-rework-calculations-of-fi-usage.patch + * 0029-btrfs-progs-replace-df_pretty_sizes-with-pretty_size.patch + * 0030-btrfs-progs-clean-up-return-codes-and-paths.patch + * 0031-btrfs-progs-move-global-reserve-to-overall-summary.patch +* Wed Dec 3 2014 dsterba@suse.cz +- version 3.17.3 + - convert: fix conversion of sparse ext* filesystems + - show: resolve to the correct path + - fsck: more verbose error for root dir problems +* Tue Nov 18 2014 dsterba@suse.cz +- version 3.17.2 + - check improvements + - add ability to replace missing dir item/dir indexes + - fix missing inode items + - create missing root dirid + - corrupt block: enhancements for testing fsck + - zero-log: able to reset a fs with bogus log tree pointer (bko#72151) +* Tue Nov 18 2014 dsterba@suse.cz +- package mkinitrd scripts conditionally (bsc#893577) +- spec: minor updates +* Thu Nov 6 2014 dsterba@suse.cz +- version 3.17.1 + - fi df: argument handling + - fix linking with libbtrfs + - replace: better error reporting + - fi show: fixed stall if run concurrently with balance + - check: fixed argument parsing for --subvol-extents + - fi df: SI prefixes corrected +- Added patches: + * fix-doc-build-on-SLE11SP3.diff +- Removed patches: + * 0042-btrfs-progs-fix-linking-with-libbtrfs.patch + * 0043-btrfs-progs-libbtrfs-make-exported-headers-compatibl.patch +- Modified patches: + * 0011-btrfs-progs-Enhance-the-command-btrfs-filesystem-df.patch + * 0012-btrfs-progs-Add-helpers-functions-to-handle-the-prin.patch + * 0019-btrfs-progs-add-original-df-and-rename-disk_usage-to.patch +* Sun Nov 2 2014 dsterba@suse.cz +- version 3.17 + - check: --init-csum-tree acutally does something useful, rebuilds the whole + csum tree + - /dev scanning for btrfs devices is gone + - /proc/partitions scanning is gone, blkid is used exclusively + - new subcommand subvolume sync + - filesystem df: new options to set unit format + - convert: allow to copy label from the origin, or specify a new one +- Modified patches: + * 0011-btrfs-progs-Enhance-the-command-btrfs-filesystem-df.patch + * 0012-btrfs-progs-Add-helpers-functions-to-handle-the-prin.patch + * 0013-btrfs-progs-Add-command-btrfs-filesystem-disk-usage.patch + * 0014-btrfs-progs-Add-btrfs-device-disk-usage-command.patch + * 0015-btrfs-progs-cleanup-dead-return-after-usage-for-fi-d.patch + * 0016-btrfs-progs-Fix-memleak-in-get_raid56_used.patch + * 0017-Btrfs-progs-fi-usage-free-memory-if-realloc-fails.patch + * 0019-btrfs-progs-add-original-df-and-rename-disk_usage-to.patch + * 0020-btrfs-progs-move-device-usage-to-cmds-device-more-cl.patch + * 0021-btrfs-progs-check-if-we-can-t-get-info-from-ioctls-d.patch + * 0022-btrfs-progs-zero-out-structures-before-calling-ioctl.patch + * 0024-btrfs-progs-Print-more-info-about-device-sizes.patch + * 0025-btrfs-progs-compare-unallocated-space-against-the-co.patch + * 0026-btrfs-progs-add-section-of-overall-filesystem-usage.patch + * 0027-btrfs-progs-cleanup-filesystem-device-usage-code.patch + * 0029-btrfs-progs-replace-df_pretty_sizes-with-pretty_size.patch + * 0030-btrfs-progs-clean-up-return-codes-and-paths.patch + * 0031-btrfs-progs-move-global-reserve-to-overall-summary.patch +- Added patches: + * 0010-btrfs-progs-move-group-type-and-profile-pretty-print.patch + * 0028-btrfs-progs-rework-calculations-of-fi-usage.patch + * 0042-btrfs-progs-fix-linking-with-libbtrfs.patch + * 0043-btrfs-progs-libbtrfs-make-exported-headers-compatibl.patch +- Removed patches: + * 0006-Btrfs-progs-fsck-clear-out-log-tree-in-repair-mode.patch + * 0007-Btrfs-progs-fsck-avoid-pinning-same-block-several-ti.patch + * 0008-Btrfs-progs-fsck-add-ability-to-check-reloc-roots.patch + * 0018-btrfs-progs-read-global-reserve-size-from-space-info.patch + * 0023-btrfs-progs-print-B-for-bytes.patch + * 0028-btrfs-progs-extend-pretty-printers-with-unit-mode.patch + * 0164-btrfs-progs-convert-set-label-or-copy-from-origin.patch + * 0171-btrfs-progs-make-free-space-checker-work-on-non-4k-s.patch +* Fri Oct 3 2014 dsterba@suse.cz +- version 3.16.2 + - fsck: handle bad extent mapping + - image: make it work on a balanced fs + - btrfs-show-super: print flags in human readable way + - documentation updates +* Mon Sep 22 2014 dsterba@suse.cz +- version 3.16.1 + - library version defines + - subvol list: -R to print received UUID + - fixed detection of multiple mounts on the same directory + - restore: misc fixes + - other fixes +- Modified patches (sync with pending upstream versions): + * 0011-btrfs-progs-Enhance-the-command-btrfs-filesystem-df.patch + * 0012-btrfs-progs-Add-helpers-functions-to-handle-the-prin.patch + * 0013-btrfs-progs-Add-command-btrfs-filesystem-disk-usage.patch + * 0018-btrfs-progs-read-global-reserve-size-from-space-info.patch + * 0020-btrfs-progs-move-device-usage-to-cmds-device-more-cl.patch + * 0024-btrfs-progs-Print-more-info-about-device-sizes.patch + * 0025-btrfs-progs-compare-unallocated-space-against-the-co.patch + * 0028-btrfs-progs-extend-pretty-printers-with-unit-mode.patch + * 0029-btrfs-progs-replace-df_pretty_sizes-with-pretty_size.patch +- Removed patch: library-version-defines.patch (upstream) +* Fri Sep 5 2014 dsterba@suse.cz +- send-stream API users updatd, drop the workaround +- Removed patch: send-stream-api-wokaround.patch +* Mon Sep 1 2014 dsterba@suse.cz +- workaround for send api breakage +- Added patch: send-stream-api-wokaround.patch +* Wed Aug 27 2014 dsterba@suse.cz +- add api versioning and package version.h (now 0.1.1) +- Added patches: + * library-version-defines.patch +* Tue Aug 26 2014 dsterba@suse.cz +- version 3.16 + - show-super: skip unrecognized sb, add option to force + - debug-tree: print tree by id + - mkfs: new option to specify UUID + - receive: new option to limit number of errors + - check: new option to verify quotas + - check: reduced memory requirements + - check: new option to print extent sharing + - restore: check length before decompression + - restore: more error handling + - balance: new filter 'limit' + - recover: allow to read all sb copies + - restore: option to loop during restoring + - mkfs: drop experimental notice + - btrfstune: new option to force dangerous changes + - documentation updates +- Deleted patches (upstream): + * 0001-btrfs-progs-doc-fix-symlink-target-for-btrfsck.8.patch + * 0200-btrfs-progs-print-qgroup-excl-as-unsigned.patch + * 0201-btrfs-progs-import-ulist.patch + * 0202-btrfs-progs-add-quota-group-verify-code.patch + * 0203-btrfs-progs-show-extent-state-for-a-subvolume.patch + * 0204-btrfs-progs-ignore-orphaned-qgroups-by-default.patch + * btrfs-progs-canonicalize-pathnames-for-device-commands +- Refreshed patches: + * 0006-Btrfs-progs-fsck-clear-out-log-tree-in-repair-mode.patch + * 0011-btrfs-progs-Enhance-the-command-btrfs-filesystem-df.patch + * 0012-btrfs-progs-Add-helpers-functions-to-handle-the-prin.patch + * 0013-btrfs-progs-Add-command-btrfs-filesystem-disk-usage.patch + * 0028-btrfs-progs-extend-pretty-printers-with-unit-mode.patch + * 0164-btrfs-progs-convert-set-label-or-copy-from-origin.patch +* Wed Jul 9 2014 mfasheh@suse.com +- refresh references on the following patches: + * 0200-btrfs-progs-print-qgroup-excl-as-unsigned.patch + * 0201-btrfs-progs-import-ulist.patch + * 0202-btrfs-progs-add-quota-group-verify-code.patch + * 0203-btrfs-progs-show-extent-state-for-a-subvolume.patch +- btrfs-progs: ignore orphaned qgroups by default +- Added patch: + * 0204-btrfs-progs-ignore-orphaned-qgroups-by-default.patch +* Mon Jul 7 2014 mfasheh@suse.com +- btrfs-progs: show extent state for a subvolume (bnc#865621) +- Added patch: + * 0203-btrfs-progs-show-extent-state-for-a-subvolume.patch +* Fri Jun 6 2014 jeffm@suse.com +- btrfs-progs: canonicalize pathnames for device commands (bnc#880486). +- Added patch: + * btrfs-progs-canonicalize-pathnames-for-device-commands +* Fri Jun 6 2014 jeffm@suse.com +- fsck: fix checking on filesystems with large sectorsize (bnc#872286) +- Added patches: + * 0171-btrfs-progs-make-free-space-checker-work-on-non-4k-s.patch +* Fri Jun 6 2014 jeffm@suse.com +- Do not package btrfs-find-root and btrfs-select-super by default. +- Removed printing byte number for every slot (bnc#872364). +- Removed patch: + * 0170-btrfs-progs-In-find-root-dump-bytenr-for-every-slot.patch +* Mon Jun 2 2014 dsterba@suse.cz +- update to upstream 3.14.2 + - man: separate pages for all subcommands + - minor bugfixes + - spec: removed upstreamed patches, update build dependencies +- Added patches: + * 0001-btrfs-progs-doc-fix-symlink-target-for-btrfsck.8.patch +- Removed patches: + * 0001-Btrfs-progs-fix-check-to-test-trim-support.patch + * 0002-Btrfs-progs-fsck-fix-double-free-memory-crash.patch + * 0003-Btrfs-progs-mkfs-Remove-zero_end-1-since-it-has-been.patch + * 0004-btrfs-progs-fix-wrong-max-system-array-size-check-in.patch + * 0005-btrfs-progs-move-arg_strtou64-to-a-separate-file-for.patch + * 0009-btrfs-progs-prevent-close_root-if-the-root-to-close-.patch + * 0010-btrfs-progs-fix-mkfs.btrfs-segfault-with-features-op.patch +* Wed May 21 2014 mfasheh@suse.com +- add quota group verify patches, sent to list near end of the week starting + 5/4/2014 + - updates btrfsck with the ability to verify quota groups +- Update the changelog with some sad version of diffstat output to meet + requirements. +- Added patches: + * 0200-btrfs-progs-print-qgroup-excl-as-unsigned.patch + * 0201-btrfs-progs-import-ulist.patch + * 0202-btrfs-progs-add-quota-group-verify-code.patch +* Tue May 13 2014 mfasheh@suse.com +- add quota group verify patches, sent to list near end of the week starting + 5/4/2014 + - updates btrfsck with the ability to verify quota groups +* Fri May 2 2014 dsterba@suse.cz +- update to upstream 3.14.1 +- mkfs: + - fix TRIM detection + - do not zero-out end of device unconditionally + - no crash with --features option +- fsck: + - clear log tree in repair mode + - check reloc roots +- btrfs - reworked space reporting (bnc#873106) + - btrfs fi usage - new command + - btrfs dev usage - new command + - btrfs fi df - enhanced output with GlobalReserve +- Removed patches: + * 0001-btrfs-progs-move-arg_strtou64-to-a-separate-file-for.patch +- Added patches: + * 0001-Btrfs-progs-fix-check-to-test-trim-support.patch + * 0002-Btrfs-progs-fsck-fix-double-free-memory-crash.patch + * 0003-Btrfs-progs-mkfs-Remove-zero_end-1-since-it-has-been.patch + * 0004-btrfs-progs-fix-wrong-max-system-array-size-check-in.patch + * 0005-btrfs-progs-move-arg_strtou64-to-a-separate-file-for.patch + * 0006-Btrfs-progs-fsck-clear-out-log-tree-in-repair-mode.patch + * 0007-Btrfs-progs-fsck-avoid-pinning-same-block-several-ti.patch + * 0008-Btrfs-progs-fsck-add-ability-to-check-reloc-roots.patch + * 0009-btrfs-progs-prevent-close_root-if-the-root-to-close-.patch + * 0010-btrfs-progs-fix-mkfs.btrfs-segfault-with-features-op.patch + * 0011-btrfs-progs-Enhance-the-command-btrfs-filesystem-df.patch + * 0012-btrfs-progs-Add-helpers-functions-to-handle-the-prin.patch + * 0013-btrfs-progs-Add-command-btrfs-filesystem-disk-usage.patch + * 0014-btrfs-progs-Add-btrfs-device-disk-usage-command.patch + * 0015-btrfs-progs-cleanup-dead-return-after-usage-for-fi-d.patch + * 0016-btrfs-progs-Fix-memleak-in-get_raid56_used.patch + * 0017-Btrfs-progs-fi-usage-free-memory-if-realloc-fails.patch + * 0018-btrfs-progs-read-global-reserve-size-from-space-info.patch + * 0019-btrfs-progs-add-original-df-and-rename-disk_usage-to.patch + * 0020-btrfs-progs-move-device-usage-to-cmds-device-more-cl.patch + * 0021-btrfs-progs-check-if-we-can-t-get-info-from-ioctls-d.patch + * 0022-btrfs-progs-zero-out-structures-before-calling-ioctl.patch + * 0023-btrfs-progs-print-B-for-bytes.patch + * 0024-btrfs-progs-Print-more-info-about-device-sizes.patch + * 0025-btrfs-progs-compare-unallocated-space-against-the-co.patch + * 0026-btrfs-progs-add-section-of-overall-filesystem-usage.patch + * 0027-btrfs-progs-cleanup-filesystem-device-usage-code.patch + * 0028-btrfs-progs-extend-pretty-printers-with-unit-mode.patch + * 0029-btrfs-progs-replace-df_pretty_sizes-with-pretty_size.patch + * 0030-btrfs-progs-clean-up-return-codes-and-paths.patch + * 0031-btrfs-progs-move-global-reserve-to-overall-summary.patch +* Sat Apr 26 2014 coolo@suse.com +- own mkinitrd directories +* Fri Apr 11 2014 dsterba@suse.cz +- add missing symbol to library (bnc#873164) +- add version dependency for devel package +- Added patches: + * 0001-btrfs-progs-move-arg_strtou64-to-a-separate-file-for.patch +* Tue Apr 8 2014 dsterba@suse.cz +- fsck: fixes and enahancements to --init-extent-tree mode +- fsck: chunk-recover updates +- scrub: add force option -f +- send: check if subvolumes are read-only +- subvol snapshot: add options to affect commit behaviour +- btrfs: add properties command group +- restore: add dry-run option +- restore: fix restoring of compressed files +- mkfs: support for no-holes feature +- mkfs: option -r deals with hardlinks and relative paths +- mkfs: discard phase is interruptible +- documentation updates +- cleaned spec file +- Removed patches: + * 0162-btrfs-progs-fix-loop-device-mount-checks.patch + * 0165-Revert-btrfs-progs-update-options-in-find-root.c.patch + * 0166-Btrfs-progs-add-some-verbose-output-to-find-root.patch +* Mon Nov 25 2013 dsterba@suse.cz +- bump version to 3.12 +- update tarball and remove upstreamed patches +- fsck, image, restore: various improvements and fixes +- btrfs: quota rescan (fate#312751) +* Thu Oct 31 2013 dsterba@suse.cz +- fsck updates +- more mkfs sanity checks +- qgroup rescan wait +- Added patches: + * 0050-Btrfs-progs-commit-the-csum_root-if-we-do-init-csum-.patch + * 0051-btrfs-progs-Fix-getopt-on-arm-ppc-platforms.patch + * 0052-btrfs-progs-fix-duplicate-__-su-typedefs-on-ppc64.patch + * 0053-btrfs-progs-use-reentrant-localtime.patch + * 0054-btrfs-progs-don-t-have-to-report-ENOMEDIUM-error-dur.patch + * 0055-Btrfs-progs-added-btrfs-quota-rescan-w-switch-wait.patch + * 0056-btrfs-progs-fix-qgroup-realloc-inheritance.patch + * 0057-Btrfs-progs-fix-restore-command-leaving-corrupted-fi.patch + * 0058-btrfs-progs-avoid-write-to-the-disk-before-sure-to-c.patch + * 0059-btrfs-progs-error-if-device-for-mkfs-is-too-small.patch + * 0060-btrfs-progs-error-if-device-have-no-space-to-make-pr.patch + * 0061-btrfs-progs-calculate-available-blocks-on-device-pro.patch + * 0062-Btrfs-progs-keep-track-of-transid-failures-and-fix-t.patch +* Fri Oct 4 2013 rgoldwyn@suse.com +- Change udev rule filename in setup-btrfs.sh to + /usr/lib/udev/rules.d/64-btrfs.rules from + from /usr/lib/udev/rules.d/80-btrfs.rules (bnc#839960 comment#7) +* Thu Sep 26 2013 jeffm@suse.com +- Remove udev rules file - udev packages one itself (bnc#839960). +* Mon Sep 16 2013 jeffm@suse.com +- update to upstream master (194aa4a1) + - btrfs-restore: deal with NULL returns from read_node_slot + - btrfs-restore: use the correct leafsize when reading the FS location + - btrfs-find-root: Add options to control generation and level + - btrfsck: fix incorrect casting on items in the corrupt_blocks tree + - Btrfs-progs: fix closing of devices + - Btrfs-progs: enhance btrfs-image to restore image onto multiple disks + - Btrfs-progs: cleanup btrfs-image usage + - Btrfs-progs: delete fs_devices itself from fs_uuid list before freeing + - Btrfs-progs: skip open devices which is missing + - Btrfs-progs: fix misuse of skinny metadata in btrfs-image + - Btrfs-progs: recover raid0/raid10/raid5/raid6 metadata chunk + - Btrfs-progs: Add chunk rebuild function for RAID1/SINGLE/DUP + - Btrfs-progs: introduce list_{first, next}_entry/list_splice_tail{_init} + - Btrfs-progs: Add chunk recover function - using old chunk items + - Btrfs-progs: Add block group check funtion + - Btrfs-progs: extend the extent cache for the device extent + - Btrfs-progs: use rb-tree instead of extent cache tree for fs/file roots + - Btrfs-progs: introduce common insert/search/delete functions for rb-tree + - Btrfs-progs: cleanup similar code in open_ctree_* and close_ctree + - Btrfs-progs: Don't free the devices when close the ctree + - Btrfs-progs: don't close the file descriptor 0 when closing a device + - Btrfs-progs: fix missing recow roots when making btrfs filesystem +- Add fix for passing super_nr while opening ctree +* Thu Sep 5 2013 dsterba@suse.cz +- btrfs-progs-mkfs-default-extref.diff: turn on extended refs by + default, (aka hardlink count limtitation) (bnc#835695) +* Fri Aug 9 2013 dsterba@suse.cz +- added 0040-btrfs-progs-fix-loop-device-mount-checks.patch: fix + loop mount detection again (bnc#834173) +* Mon Jul 22 2013 ohering@suse.de +- Simplify checks in mkinitrd scripts. + They are always true because they come from the same package + Use relative paths to binaries +- Move udev rules to /usr. +- Adjust rules to call binary from /usr +- Simplify fsck.btrfs, its just a dummy until fixed +* Thu Jul 4 2013 dsterba@suse.cz +- update to upstream master (f00dd8386a57d241d0f7c) +* Sun Jun 16 2013 jengelh@inai.de +- Make requirement on libattr-devel explicit +* Fri Apr 13 2012 dsterba@suse.cz +- initrd support: add module (bnc#750185, bnc#727383) +* Tue Apr 10 2012 frank.lichtenheld@sophos.com +- set correct file mode if writing replacement fsck +* Fri Apr 6 2012 dsterba@suse.cz +- fix build failure +* Fri Apr 6 2012 dsterba@suse.cz +- add btrfs-debug-tree to initrd +- adjust fs size to correct size (bnc#744593) +- man page documentation updates +- do not package obsolete utilities +- mkfs: store correct size of device in superblock (bnc#730103) +- updated restriper/balance commands to match kernel version +* Fri Mar 9 2012 rschweikert@suse.com +- place binaries in /usr tree (UsrMerge project) +- adjust mkinitrd scrippt accordingly +* Mon Mar 5 2012 dsterba@suse.cz +- add btrfsck repair options for: + - rebuild extent records + - fix block group accounting + - reset csums for rescue nodatasum mount + - prune corrupt extent allocation tree blocks +- device scanning fixes for dm and multipath (bnc#749540) +- initrd support: move btrfs device scan after block device setup +- documentation updates +- add csize for file commpressed size +- updated restore utility +* Mon Feb 13 2012 coolo@suse.com +- patch license to follow spdx.org standard +* Mon Dec 12 2011 dkukawka@suse.de +- btrfs-progs-fix-open_ctree_usage_segfaults.patch: fix + segfaults from bnc#710486 due to unchecked usage of return + value of open_ctree() + [fixed compilation warnings] +* Mon Dec 12 2011 dsterba@suse.cz +- pull upstream, replace existing patches, spec update +- update 'restore' utility + - lzo support + - tools may now take earlies superblock when opening the fs + - other fixes +- pull integration-20111030 branch + - mkfs: force mkfs if desired + - other fixes +- add btrfs-dump-super to mkinitrd +- other fixes + - skip non-existent devices or without media + - documentation updates + - scrubbing single device + - graceful error handling when opening fs fails +* Thu Dec 8 2011 dsterba@suse.cz +- updated mkinitrd script to scan devices before mount (bnc#727383) +* Wed Nov 9 2011 dsterba@suse.cz +- add several tools to mkinitrd if root fs is btrfs +- pull upstream branch and delete local patches +* Tue Oct 4 2011 dsterba@suse.cz +- btrfsck: ignore -a (bnc#655906) +- btrfsck: fix strerror value +* Sat Sep 17 2011 jengelh@medozas.de +- Remove redundant tags/sections from specfile +- Use %%_smp_mflags for parallel build +* Thu Aug 4 2011 dsterba@suse.cz +- add patch for local version override as we do not build from + git, and avoid doubled "Btrfs" in output of 'btrfs' +* Thu Aug 4 2011 dsterba@suse.cz +- reorder help for 'get-default' right after 'set-default' +* Thu Jul 28 2011 dsterba@suse.cz +- add option -p to print parent subvolume +- add subvolume 'get-default' subsubcommand +* Wed Jul 20 2011 dsterba@suse.cz +- remove debugging printf from + 0001-Btrfs-progs-add-a-btrfs-select-super-command-to-over.patch +* Fri Jul 1 2011 dsterba@suse.cz +- add support for currently available kernel features: + - add scrub subcommand + - scan /proc/partitions by default (or use --all-devices for all) + - mkfs fixes and improvements + - documentation fixes +* Fri Jul 1 2011 dmueller@suse.de +- fix failing on deleted loop mounts (bnc#697671) +* Fri Jul 1 2011 dsterba@suse.cz +- update from git: + - add btrfs-select-super utility + - add btrfs-label utility + - allow mixed data+metadata (option --mixed) + - allow populating new filesystem with files (option --rootdir) + - allow discard support in mkfs + - lzo support + - deprecate 'btrfsctl' 'btrfs-vol' 'btrfs-show' + - other bugfixes and documentation improvements +* Mon Mar 21 2011 dmueller@suse.de +- change to a hardlink +* Mon Mar 14 2011 dmueller@suse.de +- add link for fsck.btrfs (bnc#665899) +* Thu Dec 16 2010 dmueller@suse.de +- update to v0.19-35-g1b444cd: + * used space accounting fix for the converter + * Add btrfs-list for listing subvolumes + * Add new util: 'btrfs' + * multidevice support for check_mounted + * check slash in deleting subvolumes + * Add btrfsck option to select the super block copy + * btrfs-debug-tree: add -d option to print only the device mapping +* Wed May 26 2010 dmueller@suse.de +- fix crash on creating filesystems (bnc#603620) +* Fri May 7 2010 dmueller@suse.de +- revert last change (bnc#599224#c3) +* Thu Apr 29 2010 dmueller@suse.de +- add hardlink from fsck.btrfs (bnc#599224) +* Fri Mar 26 2010 dmueller@suse.de +- fix memory leak (bnc#537633) +* Thu Mar 4 2010 jeffm@suse.de +- Updated to latest repo version. + - used space accounting fix for the converter + - btrfsctl: add snapshot/subvolume destroy ioctl + - btrfsck: check root back/forward references + - Add btrfs-map-logical program to map and read logical block numbers +* Fri Jan 22 2010 dmueller@suse.de +- build btfs-convert (bnc#572912) +* Sun Dec 20 2009 jengelh@medozas.de +- enable parallel build +* Mon Aug 3 2009 aschnell@suse.de +- added Supplements +* Mon Jul 27 2009 dmueller@suse.de +- move apps to /sbin +* Mon Jul 20 2009 dmueller@suse.de +- update to 0.19: + - build with rpm optflags + - install man pages + - fix leak in extends checking (bnc#523447) +* Wed Feb 25 2009 dmueller@suse.de +- Initial package (0.18) diff --git a/btrfsprogs.spec b/btrfsprogs.spec new file mode 100644 index 0000000..3ab2c9b --- /dev/null +++ b/btrfsprogs.spec @@ -0,0 +1,424 @@ +# +# spec file for package btrfsprogs +# +# Copyright (c) 2022-2023 ZhuningOS +# + + +%define udev_with_btrfs_builtin 190 +%define udev_version %(pkg-config --modversion udev) +%define package_udev_rules %{udev_version} >= %{udev_with_btrfs_builtin} +%{?!python_module:%define python_module() python-%{**} python3-%{**}} + +# enable building of btrfsprogs-static +%if 0%{?suse_version} <= 1310 || 0%{?suse_version} == 1315 +%define build_static 0 +%else +%define build_static 1 +%endif + +# the tarball contains prebuilt documentation +%define build_docs 1 + +%define _dracutmodulesdir %(pkg-config --variable dracutmodulesdir dracut) + +Name: btrfsprogs +Version: 5.14 +Release: 150500.10.3.1 +Summary: Utilities for the Btrfs filesystem +License: GPL-2.0-only +Group: System/Filesystems +URL: https://btrfs.wiki.kernel.org/index.php/Main_Page +#Git-Web: http://git.kernel.org/cgit/linux/kernel/git/kdave/btrfs-progs.git +#Git-Clone: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs +Source: https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v%{version}.tar.gz +# support for mkinitrd in < 13.1 +Source1: boot-btrfs.sh +Source2: module-setup.sh.in +Source3: dracut-fsck-help.txt +Source4: setup-btrfs.sh +Source5: sles11-defaults.h + +Patch1: mkfs-default-features.patch +Patch2: 0001-btrfs-progs-Add-optional-dependency-on-libudev.patch +Patch3: 0002-btrfs-progs-Ignore-devices-representing-paths-in-mul.patch +Patch4: 0003-btrfs-progs-Add-fallback-code-for-path-device-ignore.patch +Patch5: btrfs-progs_props_dont_translate_value_of_compression_none.patch +Patch6: btrfs-progs-fix-defrag-c-option-parsing.patch + +%if %build_docs +BuildRequires: asciidoc +%endif +BuildRequires: autoconf +BuildRequires: automake +%if 0%{?suse_version} > 1200 +BuildRequires: dracut +%endif +BuildRequires: libattr-devel +BuildRequires: libblkid-devel +BuildRequires: libext2fs-devel +BuildRequires: libreiserfscore-devel >= 3.6.27 +Requires: libreiserfscore0 >= 3.6.27 +BuildRequires: libuuid-devel +%if 0%{?suse_version} > 1500 +BuildRequires: libzstd-devel +%endif +BuildRequires: lzo-devel +BuildRequires: pkg-config +BuildRequires: python-rpm-macros +%if 0%{?suse_version} >= 1310 +BuildRequires: suse-module-tools +%endif +BuildRequires: pkgconfig(udev) +BuildRequires: systemd-devel +%if %build_docs +BuildRequires: xmlto +%endif +BuildRequires: python-rpm-macros +BuildRequires: zlib-devel +%if 0%{?suse_version} >= 1310 +Requires(post): coreutils +Requires(postun):coreutils +%endif +Supplements: filesystem(btrfs) +Recommends: btrfsmaintenance +%if %{package_udev_rules} +Requires: btrfsprogs-udev-rules +%endif +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +Utilities needed to create and maintain btrfs file systems under Linux. + +%if %build_static +%package -n btrfsprogs-static +Summary: Static build of utilities for the Btrfs filesystem +Group: System/Filesystems +BuildRequires: glibc-devel-static +BuildRequires: libblkid-devel-static +BuildRequires: libcom_err-devel-static +BuildRequires: libext2fs-devel-static +BuildRequires: libuuid-devel-static +%if 0%{?suse_version} > 1500 +BuildRequires: libzstd-devel-static +%endif +BuildRequires: lzo-devel-static +BuildRequires: zlib-devel-static + +%description -n btrfsprogs-static +Static build of utilities needed to create and maintain btrfs file systems +under Linux. Suitable for limited or rescue environments. + +Warning: the zlib and lzo libraries are statically linked in and may lack +important updates +%endif + +%package -n libbtrfs0 +Summary: Library for interacting with Btrfs +Group: System/Libraries + +%description -n libbtrfs0 +This package contains the libbtrfs.so shared library needed for some +applications to interface with btrfs. + +%package -n libbtrfs-devel +Summary: Include Files and Libraries for developing with Btrfs +Group: Development/Libraries/C and C++ +Requires: %{name} = %{version}-%{release} +Requires: libbtrfs0 = %{version} + +%description -n libbtrfs-devel +This package contains the libraries and headers files for developers to +build applications to interface with Btrfs. + +# rpm < 4.6.0 (SLE11 uses 4.4) doesn't support noarch subpackages. +# Fortunately, it doesn't use systemd either so we can just skip it. +%if %{package_udev_rules} +%package udev-rules +Summary: Udev rules for configuring btrfs file systems +Group: System/Kernel +Conflicts: udev < %{udev_with_btrfs_builtin} +BuildArch: noarch + +%description udev-rules +This package contains the udev rule file for configuring device mapper +devices that are components of btrfs file systems. It is meant to be +used with versions of udev that contain the "built-in" btrfs command +(v190 and newer). Older versions of udev will call the version of +"btrfs ready" contained in the btrfsprogs package, which does the right +thing. +%endif + +%package -n libbtrfsutil1 +Summary: Utility library for interacting with Btrfs +Group: System/Libraries + +%description -n libbtrfsutil1 +This package contains the libbtrfsutil.so shared library. This library is +LGPL unlike libbtrfs.so and can be used by applications to interact with Btrfs +filesystems. + +%package -n libbtrfsutil-devel +Summary: Include Files and Libraries for developing with libbtrfsutil +Group: Development/Libraries/C and C++ +Requires: %{name} = %{version}-%{release} +Requires: libbtrfsutil1 = %{version} + +%description -n libbtrfsutil-devel +This package contains the libraries and headers files for developers to +build applications to interface with Btrfs using libbtrfsutil. + +%package -n python-btrfsutil +Summary: Python bindings for developing with libbtrfsutil +Group: Development/Languages/Python +Requires: %{name} = %{version}-%{release} +Requires: libbtrfsutil1 = %{version} +Requires: python3 +BuildRequires: %{python_module setuptools} +BuildRequires: pkgconfig(python3) + +%description -n python-btrfsutil +This package contains the python bindings to build applications to interface +with Btrfs using libbtrfsutil. + +%prep +%setup -q -n btrfs-progs-v%{version} +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 + +%build +./autogen.sh +%if 0%{?suse_version} == 1110 +cp %{SOURCE5} . +export CFLAGS="%{optflags} -include sles11-defaults.h" +%endif + +%configure \ + --enable-python \ +%if !%{build_docs} + --disable-documentation \ +%endif +%if 0%{?suse_version} <= 1500 + --disable-zoned \ + --disable-zstd +%endif + +make V=1 %{?_smp_mflags} all \ +%if %{build_static} + static +%endif + +%install +make install \ +%if %{build_static} + install-static \ +%endif + DESTDIR=%{buildroot} prefix=%{_prefix} bindir=%{_sbindir} mandir=%{_mandir} libdir=%{_libdir} \ + install_python + +%if !%{build_docs} +cd Documentation +install -m 0755 -d %{buildroot}/%{_mandir}/man5 +install -m 0755 -d %{buildroot}/%{_mandir}/man8 +install -m 0644 *.5 %{buildroot}/%{_mandir}/man5 +install -m 0644 *.8 %{buildroot}/%{_mandir}/man8 +cd .. +%endif + +%if %{build_static} +make install-static DESTDIR=%{buildroot} prefix=%{_prefix} bindir=%{_sbindir} mandir=%{_mandir} libdir=%{_libdir} +%endif + +install -m 0755 -d %{buildroot}/%{_sbindir} +install -m 0755 -d %{buildroot}/%{_bindir} +# move some utilities out of /usr/sbin +mv %{buildroot}/%{_sbindir}/btrfs-map-logical %{buildroot}/%{_bindir} +# initrd rescue utilities +install -m 0755 btrfs-select-super %{buildroot}/%{_sbindir} +install -m 0755 btrfs-image %{buildroot}/%{_sbindir} +install -m 0755 btrfstune %{buildroot}/%{_sbindir} +install -m 0755 btrfs-find-root %{buildroot}/%{_sbindir} +%if !0%{?usrmerged} +install -m 0755 -d %{buildroot}/sbin +ln -s %{_sbindir}/btrfs %{buildroot}/sbin +ln -s %{_sbindir}/btrfs-convert %{buildroot}/sbin +ln -s %{_sbindir}/btrfs-select-super %{buildroot}/sbin +ln -s %{_sbindir}/btrfs-image %{buildroot}/sbin +ln -s %{_sbindir}/btrfstune %{buildroot}/sbin +ln -s %{_sbindir}/btrfsck %{buildroot}/sbin +ln -s %{_sbindir}/btrfs-find-root %{buildroot}/sbin +ln -s %{_sbindir}/mkfs.btrfs %{buildroot}/sbin +ln -s %{_sbindir}/fsck.btrfs %{buildroot}/sbin +%endif +%if 0%{?suse_version} < 1310 +install -d -m0755 %{buildroot}/lib/mkinitrd/scripts/ +install -m 0755 %{SOURCE1} %{buildroot}/lib/mkinitrd/scripts/ +install -m 0755 %{SOURCE4} %{buildroot}/lib/mkinitrd/scripts/ +%endif +# don't install .a for now +rm -f %{buildroot}/%{_libdir}/*.a +# bash completion +install -m 0755 -d %{buildroot}/%{_datadir}/bash-completion/completions +install -m 0644 btrfs-completion %{buildroot}/%{_datadir}/bash-completion/completions/btrfs +%if 0%{?suse_version} > 1200 +sed -e 's,@@INSTALLDIR@@,%{_datadir}/%{name}/,;' %{SOURCE2} > module-setup.sh +install -m 0755 -D module-setup.sh %{buildroot}/%{_dracutmodulesdir}/95suse-btrfs/module-setup.sh +rm -f module-setup.sh +install -m 0644 -D %{SOURCE3} %{buildroot}/%{_datadir}/%{name}/dracut-fsck-help.txt +%endif + +%if 0%{!?for_debugging:1} +DEBUG_FILES="/sbin/btrfs-find-root + %{_sbindir}/btrfs-find-root + %{_mandir}/man8/btrfs-find-root.8 + /sbin/btrfs-select-super + %{_sbindir}/btrfs-select-super" +for file in $DEBUG_FILES; do + rm -f %{buildroot}$file +done +%endif + +%post -n libbtrfs0 -p /sbin/ldconfig + +%postun -n libbtrfs0 -p /sbin/ldconfig + +%post -n libbtrfsutil1 -p /sbin/ldconfig + +%postun -n libbtrfsutil1 -p /sbin/ldconfig + +%if 0%{?suse_version} >= 1310 +%post +%{?regenerate_initrd_post} + +%postun +%{?regenerate_initrd_post} + +%posttrans +%{?regenerate_initrd_posttrans} +%endif + +%files +%defattr(-, root, root) +%if 0%{?suse_version} < 1200 +# SLE11 doesn't know about %license +%doc COPYING +%else +%license COPYING +%endif +%if 0%{?suse_version} > 1200 +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/dracut-fsck-help.txt +%dir %{_dracutmodulesdir}/95suse-btrfs/ +%{_dracutmodulesdir}/95suse-btrfs/module-setup.sh +%endif +%if !0%{?usrmerged} +/sbin/fsck.btrfs +# mkinitrd utils +/sbin/btrfs +/sbin/btrfs-convert +/sbin/btrfs-image +/sbin/btrfstune +/sbin/btrfsck +/sbin/mkfs.btrfs +%endif +%{_sbindir}/btrfs +%{_sbindir}/btrfs-convert +%{_sbindir}/btrfs-image +%{_sbindir}/btrfstune +%{_sbindir}/btrfsck +%{_sbindir}/fsck.btrfs +%{_sbindir}/mkfs.btrfs +%if 0%{?suse_version} < 1310 +%dir /lib/mkinitrd +%dir /lib/mkinitrd/scripts +/lib/mkinitrd/scripts/boot-btrfs.sh +/lib/mkinitrd/scripts/setup-btrfs.sh +%endif +%{_bindir}/btrfs-map-logical +%{_mandir}/man8/btrfs-image.8%{?ext_man} +%{_mandir}/man8/btrfsck.8%{?ext_man} +%{_mandir}/man8/fsck.btrfs.8%{?ext_man} +%{_mandir}/man8/mkfs.btrfs.8%{?ext_man} +%{_mandir}/man8/btrfs.8%{?ext_man} +%{_mandir}/man5/btrfs.5%{?ext_man} +%{_mandir}/man8/btrfs-convert.8%{?ext_man} +%{_mandir}/man8/btrfs-map-logical.8%{?ext_man} +%{_mandir}/man8/btrfstune.8%{?ext_man} +%{_mandir}/man8/btrfs-balance.8%{?ext_man} +%{_mandir}/man8/btrfs-check.8%{?ext_man} +%{_mandir}/man8/btrfs-device.8%{?ext_man} +%{_mandir}/man8/btrfs-filesystem.8%{?ext_man} +%{_mandir}/man8/btrfs-inspect-internal.8%{?ext_man} +%{_mandir}/man8/btrfs-property.8%{?ext_man} +%{_mandir}/man8/btrfs-qgroup.8%{?ext_man} +%{_mandir}/man8/btrfs-quota.8%{?ext_man} +%{_mandir}/man8/btrfs-receive.8%{?ext_man} +%{_mandir}/man8/btrfs-replace.8%{?ext_man} +%{_mandir}/man8/btrfs-rescue.8%{?ext_man} +%{_mandir}/man8/btrfs-restore.8%{?ext_man} +%{_mandir}/man8/btrfs-scrub.8%{?ext_man} +%{_mandir}/man8/btrfs-send.8%{?ext_man} +%{_mandir}/man8/btrfs-subvolume.8%{?ext_man} +%{_mandir}/man8/btrfs-select-super.8%{?ext_man} +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%{_datadir}/bash-completion/completions/btrfs + +%if 0%{?for_debugging:1} +/sbin/btrfs-find-root +%{_sbindir}/btrfs-find-root +%{_mandir}/man8/btrfs-find-root.8%{?ext_man} +/sbin/btrfs-select-super +%{_sbindir}/btrfs-select-super +%endif + +%if %{build_static} +%files -n btrfsprogs-static +%defattr(-, root, root) +%{_sbindir}/btrfs.static +%{_sbindir}/btrfs-convert.static +%{_sbindir}/btrfs-image.static +%{_sbindir}/btrfstune.static +%{_sbindir}/btrfsck.static +%{_sbindir}/mkfs.btrfs.static +%{_sbindir}/btrfs-corrupt-block.static +%{_sbindir}/btrfs-find-root.static +%{_sbindir}/btrfs-map-logical.static +%{_sbindir}/btrfs-select-super.static +%endif + +%files -n libbtrfs0 +%defattr(-, root, root) +%{_libdir}/libbtrfs.so.* + +%files -n libbtrfs-devel +%defattr(-, root, root) +%dir %{_includedir}/btrfs +%{_includedir}/btrfs/* +%{_libdir}/libbtrfs.so + +%files -n libbtrfsutil1 +%defattr(-, root, root) +%{_libdir}/libbtrfsutil.so.* + +%files -n libbtrfsutil-devel +%defattr(-, root, root) +%{_includedir}/btrfsutil.h +%{_libdir}/libbtrfsutil.so +%{_libdir}/pkgconfig/libbtrfsutil.pc + +%if %{package_udev_rules} +%files udev-rules +%defattr(-, root, root) +%dir %{_udevrulesdir} +%{_udevrulesdir}/64-btrfs-dm.rules +%endif + +%files -n python-btrfsutil +%{python3_sitearch}/* + +%changelog diff --git a/dracut-fsck-help.txt b/dracut-fsck-help.txt new file mode 100644 index 0000000..9514993 --- /dev/null +++ b/dracut-fsck-help.txt @@ -0,0 +1,6 @@ +Recovery of btrfs file systems is not automated. We suggest you use +'btrfs check --readonly' first to see the if there's any damage and +what's the scope. Logging the output is a recommended for later analysis. + +The option '--repair' must be used with care, be noted that it is +able to fix certain classes of errors but not all of them. diff --git a/mkfs-default-features.patch b/mkfs-default-features.patch new file mode 100644 index 0000000..9ec9ba2 --- /dev/null +++ b/mkfs-default-features.patch @@ -0,0 +1,32 @@ +From: Jeff Mahoney +Subject: mkfs: allow site to override defaults +Patch-mainline: Never, a real solution with a config file is required +References: FATE#320615 + +This is a simple method to allow us to set site defaults for mkfs by +adding -include to cflags. + +Signed-off-by: Jeff Mahoney +--- + utils.h | 4 ++++ + 1 file changed, 4 insertions(+) + +Index: btrfs-progs-v5.12/common/fsfeatures.h +=================================================================== +--- btrfs-progs-v5.12.orig/common/fsfeatures.h ++++ btrfs-progs-v5.12/common/fsfeatures.h +@@ -19,10 +19,14 @@ + + #include "kerncompat.h" + ++#ifndef BTRFS_MKFS_DEFAULT_NODE_SIZE + #define BTRFS_MKFS_DEFAULT_NODE_SIZE SZ_16K ++#endif ++#ifndef BTRFS_MKFS_DEFAULT_FEATURES + #define BTRFS_MKFS_DEFAULT_FEATURES \ + (BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF \ + | BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA) ++#endif + + /* + * Avoid multi-device features (RAID56), mixed block groups, and zoned mode diff --git a/module-setup.sh.in b/module-setup.sh.in new file mode 100644 index 0000000..8248fa5 --- /dev/null +++ b/module-setup.sh.in @@ -0,0 +1,17 @@ +#!/bin/bash + +# called by dracut +check() { + return 0 +} + +# called by dracut +depends() { + return 0 +} + +# called by dracut +install() { + inst_fsck_help "btrfs" "@@INSTALLDIR@@/dracut-fsck-help.txt" +} + diff --git a/setup-btrfs.sh b/setup-btrfs.sh new file mode 100644 index 0000000..474473a --- /dev/null +++ b/setup-btrfs.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# +#%stage: filesystem + +mkdir -p $tmp_mnt/etc/udev/rules.d +cp /usr/lib/udev/rules.d/64-btrfs.rules $tmp_mnt/etc/udev/rules.d diff --git a/sles11-defaults.h b/sles11-defaults.h new file mode 100644 index 0000000..a3c22ec --- /dev/null +++ b/sles11-defaults.h @@ -0,0 +1,5 @@ +#ifndef _SLES11_DEFAULTS_H +#define _SLES11_DEFAULTS_H +#define BTRFS_MKFS_DEFAULT_NODE_SIZE sysconf(_SC_PAGESIZE) +#define BTRFS_MKFS_DEFAULT_FEATURES BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF +#endif