Libblockdev 3.1.1
------------------

New bugfix release of the libblockdev library with multiple fixes. See below
for details.

**Full list of changes**

Giulio Benetti (1):

- Use glib2 G_GNUC_UNUSED in place of UNUSED locally defined

Tomas Bzatek (5):

- Port to G_GNUC_INTERNAL for controlling symbols visibility
- Fix some more occurrences of missing port to G_GNUC_UNUSED
- dm_logging: Annotate redirect_dm_log() printf format
- tests: Add NVMe persistent discovery controller tests
- tests: Add NVMe controller type checks

Vojtech Trefny (6):

- Makefile: Fix bumpver to work with micro versions
- tests: Manually remove removed PVs from LVM devices file
- tests: Ignore LVM devices file for non-LVM tests
- tests: Fix removing custom LVM devices file
- nvme: Add bd_nvme_is_tech_avail to the API file
- lvm-dbus: Fix passing size for pvresize over DBus

Libblockdev 3.1.0
------------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Full list of changes**

Tomas Bzatek (7):

- tests: Default to /tmp for create_sparse_tempfile()
- tests: Avoid setting up intermediary loop device for the nvme target
- tests: Remove unreliable nvme attribute checks
- lvm-dbus: Fix leaking error
- lvm-dbus: Avoid using already-freed memory
- utils: Add expected printf string annotation
- fs: Report reason for open() and ioctl() failures

Vojtech Trefny (18):

- ci: Add an action to compile libblockdev with different compilers
- Sync spec with downstream
- Add BDPluginSpec constructor and use it in plugin_specs_from_names
- overrides: Remove unused 'sys' import
- ci: Manually prepare spec file for Packit
- ci: Remove the custom version command for Packit
- swap: Add support for checking label and UUID format
- fs: Add a function to check label format for F2FS
- fs: Add a generic function to check for fs info availability
- fs: Fix allowed UUID for generic mkfs with VFAT
- fs: Add support for getting filesystem min size for NTFS and Ext
- tests: Remove some obsolete rules to skip tests
- Mark NVDIMM plugin as deprecated since 3.1
- part: Fix potential double free when getting parttype
- tests: Use BDPluginSpec constructor in LVM DBus plugin tests
- python: Add a deepcopy function to our structs
- Fix missing progress initialization in bd_crypto_luks_add_key
- tests: Skip some checks for btrfs errors with btrfs-progs 6.6.3

Libblockdev 3.0.4
------------------

New bugfix release of the libblockdev library with multiple fixes. See below
for details.

**Full list of changes**

Jelle van der Waa (3):

- plugins: use g_autofree for free'ing g_char's
- plugins: btrfs: use g_autofree where possible for g_free
- fs: correct btrfs set label description

Tomas Bzatek (1):

- nvme: Rework memory allocation for device ioctls

Vojtech Trefny (11):

- spec: Obsolete vdo plugin packages
- spec: Move obsoleted devel subpackages to libblockdev-devel
- ci: Bump actions/checkout from v3 to v4
- part: Do not open disk read-write for read only operations
- fs: Disable progress for ntfsresize
- packit: Add configuration for downstream builds
- logging: Default to DEBUG log level if compiled with --enable-debug
- Use log function when calling a plugin function that is not loaded
- lvm-dbus: Replace g_critical calls with bd_utils_log_format
- tests: Fail early when recompilation fails in library_test
- tests: Fix "invalid escape sequence '\#'" warning from Python 3.12

Libblockdev 3.0.3
------------------

New bugfix release of the libblockdev library with multiple fixes. See below
for details.

**Full list of changes**

Marius Vollmer (1):

- Always use "--fs ignore" with lvresize

Michael Biebl (1):

- tests: Specificy required versions when importing GLib and BlockDev
  introspection

Tomas Bzatek (3):

- nvme: Use interim buffer for nvme_get_log_sanitize()
- nvme: Generate HostID when missing
- tests: Minor NVMe HostNQN fixes

Vojtech Trefny (4):

- tests: Replace deprecated unittest assert calls
- fs: Fix leaking directories with temporary mounts
- fs: Fix memory leak
- crypto: Correctly convert passphrases from Python to C

Libblockdev 3.0.2
------------------

New bugfix release of the libblockdev library with multiple fixes. See below
for details.

**Full list of changes**

Alexis Murzeau (1):

- Use ntfsinfo instead of ntfscluster for faster bd_fs_ntfs_get_info

Marek Szuba (1):

- docs: Fix test quotation

Michael Biebl (1):

- Restrict list of exported symbols via -export-symbols-regex

Tomas Bzatek (2):

- lib: Silence the missing DEFAULT_CONF_DIR_PATH
- loop: Report BD_LOOP_ERROR_DEVICE on empty loop devices

Vojtech Trefny (5):

- Fix formatting in NEWS.rst
- fs: Fix unused error in extract_e2fsck_progress
- fs: Use read-only mount where possible for generic FS functions
- fs: Document that generic functions can mount filesystems
- fs: Avoid excess logging in extract_e2fsck_progress

Libblockdev 3.0.1
------------------

New bugfix release of the libblockdev library with multiple fixes. See below
for details.

**Full list of changes**

Giulio Benetti (1):

- loop: define LOOP_SET_BLOCK_SIZE is not defined

Tomas Bzatek (6):

- nvme: Mark private symbols as hidden
- build: Exit before AC_OUTPUT on error
- loop: Remove unused variable
- crypto: Remove stray struct redefinition
- boilerplate_generator: Annotate stub func args as G_GNUC_UNUSED
- fs: Simplify struct BDFSInfo

Vojtech Trefny (11):

- vdo_stats: Remove unused libparted include
- lvm: Make _vglock_start_stop static
- lvm: Fix declaration for bd_lvm_vdolvpoolname
- loop: Remove bd_loop_get_autoclear definition
- lvm: Add bd_lvm_segdata_copy/free to the header file
- fs: Add missing copy and free functions to the header file
- misc: Update steps and Dockerfile for Python documentation
- dist: Sync spec with downstream
- spec: Add dependency on libblockdev-utils to the s390 plugin
- configure: Fix MAJOR_VER macro
- Make the conf.d directory versioned

Libblockdev 3.0
---------------

New major release of the libblockdev library. This release contains a large
API overhaul, please check the documentation for full list of API changes.

**Notable changes**

- VDO a KBD plugins were removed.
- New NVMe plugin was added.
- Runtime dependencies are no longer checked during plugin initialization.
- Part plugin was rewritten to use libfdisk instead of libparted.
- Crypto plugin API went through an extensive rewrite.
- Support for new technologies was added to the crypto plugin: FileVault2 encryption,
  DM Integrity, LUKS2 tokens.
- Filesystem plugin adds support for btrfs, F2FS, NILFS2, exFAT and UDF.
- Support for new filesystem operations was added to the plugin: setting label and UUID,
  generic mkfs function and API for getting feature support for filesystems.
- dmraid support was removed from the DM plugin.
- Python 2 support was dropped.

Libblockdev 2.28
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Full list of changes**

Michael Biebl (1):

- Fix typos

Vojtech Trefny (17):

- lvm: Fix bd_lvm_get_supported_pe_sizes in Python on 32bit
- tests: Create bigger devices for XFS tests
- tests: Use ext instead of xfs in MountTestCase.test_mount_ro_device
- mpath: Memory leak fix
- spec: Require the same version utils from plugins
- mdraid: Try harder to get container UUID in bd_md_detail
- Add a test case for DDF arrays/containers
- mdraid: Do not ignore errors from bd_md_canonicalize_uuid in bd_md_examine
- mdraid: Try harder to get container UUID in bd_md_examine
- mdraid: Fix copy-paste error when checking return value
- tests: Wait for raid and mirrored LVs to be synced before removing
- tests: Make smaller images for test_lvcreate_type
- dm: Fix comparing DM RAID member devices UUID
- mdraid: Fix use after free
- ci: Add .lgtm.yaml config for LGTM
- ci: Add GitHub actions for running rpmbuilds and csmock
- mpath: Fix potential NULL pointer dereference

zhanghongtao (1):

- Fix mismatched functions return value type


Libblockdev 2.27
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Full list of changes**

Tomas Bzatek (1):

- fs: Return BD_FS_ERROR_UNKNOWN_FS on mounting unknown filesystem

Vojtech Trefny (21):

- overrides: Fix translating exceptions in ErrorProxy
- tests: Do not check that swap flag is not supported on DOS table
- tests: Lower expected free space on newly created Ext filesystems
- tests: Remove test for NTFS read-only mounting
- vdo_stats: Default to 100 % savings for invalid savings values
- lvm: Fix reading statistics for VDO pools with VDO 8
- tests: Fix creating loop device for CryptoTestLuksSectorSize
- tests: Use losetup to create 4k sector size loop device for testing
- s390: Remove double fclose in bd_s390_dasd_online (#2045784)
- lvm-dbus: Add support for changing compression and deduplication
- tests: Skip test_lvcreate_type on CentOS/RHEL 9
- tests: Fix expected extended partition flags with new parted
- lvm: Do not set global config to and empty string
- lvm: Do not include duplicate entries in bd_lvm_lvs output
- lvm: Use correct integer type in for comparison
- crypto: Remove useless comparison in progress report in luks_format
- boilerplate_generator: Remove unused variable assignment
- kbd: Add missing progress reporting to bd_kbd_bcache_create
- kbd: Fix leaking error in bd_kbd_bcache_detach
- kbd: Fix potential NULL pointer dereference in bd_kbd_bcache_create
- crypto: Remove unused and leaking error in write_escrow_data_file

Libblockdev 2.26
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Full list of changes**

Manuel Wassermann (1):

- exec: Fix deprecated glib function call Glib will rename
  "g_spawn_check_exit_status()" to "g_spawn_check_wait_status()" in version
  2.69.

Tomasz Paweł Gajc (1):

- remove unused variable and fix build with LLVM/clang

Vojtech Trefny (22):

- NEWS.rts: Fix markup
- crypto: Fix default key size for non XTS ciphers
- vdo: Do not use g_memdup in bd_vdo_stats_copy
- fs: Allow using empty label for vfat with newest dosfstools
- tests: Call fs_vfat_mkfs with "--mbr=n" extra option in tests
- kbd: Fix memory leak
- crypto: Fix memory leak
- dm: Fix memory leak in the DM plugin and DM logging redirect function
- fs: Fix memory leak
- kbd: Fix memory leak
- lvm-dbus: Fix memory leak
- mdraid: Fix memory leak
- swap: Fix memory leak
- tests: Make sure the test temp mount is always unmounted
- tests: Do not check that XFS shrink fails with xfsprogs >= 5.12
- tests: Temporarily skip test_snapshotcreate_lvorigin_snapshotmerge
- Fix skipping tests on Debian testing
- crypto: Let cryptsetup autodect encryption sector size when not specified
- tests: Do not try to remove VG before removing the VDO pool
- tests: Force remove LVM VG /dev/ entry not removed by vgremove
- tests: Tag LvmPVVGLVcachePoolCreateRemoveTestCase as unstable
- Add missing plugins to the default config


Libblockdev 2.25
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Full list of changes**

Tomas Bzatek (6):

- exec: Fix polling for stdout and stderr
- exec: Use non-blocking read and process the buffer manually
- exec: Clarify the BDUtilsProgExtract callback documentation
- tests: Add bufferbloat exec tests
- tests: Add null-byte exec tests
- lvm: Fix bd_lvm_vdopooldata_* symbols

Vojtech Trefny (10):

- exec: Fix setting locale for util calls
- fs: Do not report error when errors were fixed by e2fsck
- README: Use CI status image for 2.x-branch on 2.x
- fs: Fix compile error in ext_repair caused by cherry pick from master
- Mark all GIR file constants as guint64
- lvm: Set thin metadata limits to match limits LVM uses in lvcreate
- lvm: Do not use thin_metadata_size to recommend thin metadata size
- lvm: Use the UNUSED macro instead of __attribute__((unused))
- Fix max size limit for LVM thinpool metadata
- loop: Retry LOOP_SET_STATUS64 on EAGAIN


Libblockdev 2.24
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Notable changes**

- vdo

  - VDO plugin has been deprecated in this release (functionality replaced by LVM VDO)

- lvm

  - support for creating and managing LVM VDO volumes added

- crypto

  - support for unlocking of BitLocker-compatible format BITLK added (requires cryptsetup 2.3.0)

**Full list of changes**

Lars Wendler (1):

- configure.ac: Avoid bashisms

Matt Thompson (1):

- Fixed a number of memory leaks in lvm-dbus plugin

Matt Whitlock (1):

- configure.ac: Avoid more bashisms

Tomas Bzatek (4):

- utils: Add functions to get and check current linux kernel version
- vdo: Fix a memleak
- exec: Fix a memleak
- mount: Fix a memleak

Vojtech Trefny (47):

- Sync spec with downstream
- Use 'explicit_bzero' to erase passphrases from key files
- Add new function 'bd_fs_wipe_force' to control force wipe
- Fix linking against utils on Debian
- exec.c: Fix reading outputs with null bytes
- fs: Fix checking for UID/GID == 0
- Fix expected cache pool name with newest LVM
- Fix memory leak in LVM DBus plugin
- Manually remove symlinks not removed by udev in tests
- Add a helper function for closing an active crypto device
- Add support for BitLocker encrypted devices using cryptsetup
- ext: Return empty string instead of "<none>" for empty UUID
- Fix typo in (un)mount error messages
- vdo: Run "vdo create" with "--force"
- lvm-dbus: Do not activate LVs during pvscan --cache
- lvm-dbus: Fix memory leak in bd_lvm_thlvpoolname
- tests: Specify loader for yaml.load in VDO tests
- Add a function to check if a tool supports given feature
- Do not hardcode pylint executable name in Makefile
- Fix LVM plugin so names in tests
- Add support for creating and managing VDO LVs with LVM
- Add some helper functions to get LVM VDO mode and state strings
- Fix converting to VDO pool without name for the VDO LV
- Add write policy and index size to LVM VDO data
- Fix getting string representation of unknown VDO state index
- Fix getting VDO data in the LVM DBus plugin
- Allow calling LVM functions without locking global_config_lock
- Add extra parameters for creating LVM VDO volumes
- Add function to get LVM VDO write policy from a string
- exec: Disable encoding when reading data from stdout/stderr
- Fix copy-paste bug in lvm.api
- Move VDO statistics code to a separate file
- Add functions to get VDO stats for LVM VDO volumes
- lvm-dbus: Get data LV name for LVM VDO pools too
- lvm: Add a function to get VDO pool name for a VDO LV
- lvm-dbus: Add LVM VDO pools to bd_lvm_lvs
- tests: Skip LVM VDO tests if kvdo module cannot be loaded
- Do not skip LVM VDO tests when the kvdo module is already loaded
- lvm: Fix getting cache stats for cache thinpools
- Create a common function to get label and uuid of a filesystem
- Do not open devices as read-write for read-only fs operations
- Use libblkid to get label and UUID for XFS filesystems
- Do not check VDO saving percent value in LVM DBus tests
- utils: Remove deadcode in exec.c
- fs: Fix potential NULL pointer dereference in mount.c
- Fix multiple uninitialized values discovered by coverity
- Mark VDO plugin as deprecated since 2.24

Libblockdev 2.23
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Notable changes**

- fs

  - new functions for (un)freezing filesystems added

- tests

  - test suite can now be run against installed version of libblockdev


**Full list of changes**

Vojtech Trefny (28):

- Skip bcache tests on all Debian versions
- Add a function to check whether a path is a mounpoint or not
- Add function for (un)freezing filesystems
- Add a decorator for "tagging" tests
- Use test tags for skipping tests
- Use the new test tags in tests
- Remove duplicate test case
- Allow running tests against installed libblockdev
- Add a special test tag for library tests that recompile plugins
- Force LVM cli plugin in lvm_test
- Mark 'test_set_bitmap_location' as unstable
- Add ability to read tests to skip from a config file
- Skip bcache tests if make-bcache is not installed
- Use the new config file for skipping tests
- Ignore coverity deadcode warnings in the generated code
- Ignore coverity deadcode warning in 'bd_fs_is_tech_avail'
- Mark 'private' plugin management functions as static
- Remove unused 'get_PLUGIN_num_functions' and 'get_PLUGIN_functions' functions
- Mark LVM global config locks as static
- Hide filesystem-specific is_tech_available functions
- Use 'kmod_module_probe_insert_module' function for loading modules
- Fix parsing distro version from CPE name
- Move the NTFS read-only device test to a separate test case
- Print skipped test "results" to stderr instead of stdout
- Fix LVM_MAX_LV_SIZE in the GIR file
- Fix skipping NTFS read-only test case on systems without NTFS
- Skip tests for old-style LVM snapshots on recent Fedora
- Fix how we get process exit code from g_spawn_sync

Libblockdev 2.22
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Notable changes**

- nvdimm

  - new function for getting list of supported sector sizes for namespaces

- fixes

  - multiple memory leaks fixed


**Full list of changes**

Adam Williamson (1):

- Sync spec file with python2 obsoletion added downstream

Tomas Bzatek (17):

- bd_fs_xfs_get_info: Allow passing error == NULL
- lvm: Fix some obvious memory leaks
- lvm: Use g_ptr_array_free() for creating lists
- lvm: Fix leaking BDLVMPVdata.vg_uuid
- exec: Fix some memory leaks
- mdraid: Fix g_strsplit() leaks
- s390: Fix g_strsplit() leaks
- ext: Fix g_strsplit() leaks
- ext: Fix g_match_info_fetch() leaks
- kbd: Fix g_match_info_fetch() leaks
- part: Fix leaking objects
- ext: Fix leaking string
- part: Fix leaking string in args
- mdraid: Fix leaking error
- mdraid: Fix leaking BDMDExamineData.metadata
- btrfs: Fix number of memory leaks
- module: Fix libkmod related leak

Vojtech Trefny (7):

- Sync spec with downstream
- Allow skiping tests only based on architecture
- New function to get supported sector sizes for NVDIMM namespaces
- Use existing cryptsetup API for changing keyslot passphrase
- tests: Fix removing targetcli lun
- Remove device-mapper-multipath dependency from fs and part plugins
- tests: Fix Debian testing "version" for skipping


Libblockdev 2.21
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Notable changes**

- crypto

  - default key size for LUKS was changed to 512bit

- tools

  - new simple cli tools that use libblockdev
  - first tool is ``lvm-cache-stats`` for displaying stats for LVM cache devices
  - use configure option ``--without-tools`` to disable building these


**Full list of changes**

Vojtech Trefny (19):

- Use libblkid to check swap status before swapon
- Add error codes and Python exceptions for swapon fails
- Add libblkid-devel as a build dependency for the swap plugin
- Skip VDO grow physical test
- crypto_test.py: Use blkid instead of lsblk to check luks label
- Use major/minor macros from sys/sysmacros.h instead of linux/kdev_t.h
- Add custom error message for wrong passphrase for open
- Skip LUKS2+integrity test on systems without dm-integrity module
- Use cryptsetup to check LUKS2 label
- Fix LUKS2 resize password test
- crypto: Do not try to use keyring on systems without keyring support
- lvm-dbus: Do not pass extra arguments enclosed in a tuple
- Enable cryptsetup debug messages when compiled using --enable-debug
- vagrant: install 'autoconf-archive' on Ubuntu
- vagrant: remove F27 and add F29
- Add 'autoconf-archive' to build requires
- tests: Remove some old/irrelevant skips
- tests: Stop skipping some tests on Debian testing
- Fix checking swap status on lvm/md

Vratislav Podzimek (6):

- Discard messages from libdevmapper in the LVM plugins
- Add a tool for getting cached LVM statistics
- Make building tools optional
- Document what the 'tools' directory contains
- Add a new subpackage with the tool(s)
- Use 512bit keys in LUKS by default

Libblockdev 2.20
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Notable changes**

- fixes

  - Fix parsing extra arguments for LVM methods calls in the LVM DBus plugin.
  - Multiple fixes for running tests on Debian testing.

- development

  - Vagrantfile template was added for easy development machine setup.

**Full list of changes**

Dennis Schridde (1):

- Fix build of plugins by changing linking order

Vojtech Trefny (17):

- Fix spacing in NEWS.rst
- Fix licence header in dbus.c
- Do not require 'dmraid' package if built without dmraid support
- Always build the VDO plugin
- kbd: Check for zram module availability in 'bd_kbd_is_tech_avail'
- Fix skipping zram tests on Fedora 27
- Build the dm plugin without dmraid support on newer RHEL
- tests: Try harder to get distribution version
- Skip bcache tests on Debian testing
- Skip NTFS mount test on Debian testing
- Skip MDTestAddRemove on Debian
- lvm-dbus: Fix parsing extra arguments for LVM methods calls
- Fix how we check zram stats from /sys/block/zram0/stat
- Add some missing test dependencies to the vagrant template
- Add Ubuntu 18.04 VM configuration to the vagrant template
- Skip nvdimm tests on systems without ndctl
- Require newer version of cryptsetup for LUKS2 tests

Vratislav Podzimek (6):

- Mark the function stubs as static
- Fix the error message when deleting partition fails
- Add a Vagrantfile template
- Document what the 'misc' directory contains
- Fix how/where the bcache tests are skipped
- Use unsafe caching for storage for devel/testing VMs


Libblockdev 2.19
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Notable changes**

- features

  - vdo: new functions to get statistical data for existing VDO volumes (`bd_vdo_get_stats`)
  - crypto: support for passing extra arguments for key derivation function when creating LUKS2 format

**Full list of changes**

Max Kellermann (8):

- fix -Wstrict-prototypes
- exec: make `msg` parameters const
- plugins/check_deps: make all strings and `UtilDep` instances `const`
- plugins/crypto: work around -Wdiscarded-qualifiers
- plugins/dm: add explicit cast to work around -Wdiscarded-qualifiers
- plugins/lvm{,-dbus}: get_lv_type_from_flags() returns const string
- plugins/kbd: make wait_for_file() static
- pkg-config: add -L${libdir} and -I${includedir}

Tom Briden (1):

- Re-order libbd_crypto_la_LIBADD to fix libtool issue

Tomas Bzatek (2):

- vdo: Properly destroy the yaml parser
- fs: Properly close both ends of the pipe

Vojtech Trefny (33):

- Sync spec with downstream
- Do not build VDO plugin on non-x86_64 architectures
- Show simple summary after configure
- Add Python override for bd_crypto_tc_open_full
- Add a simple test case for bd_crypto_tc_open
- Use libblkid in bd_crypto_is_luks
- Make sure all our free and copy functions work with NULL
- Fix few wrong names in doc strings
- Use versioned command for Python 2
- Reintroduce python2 support for Fedora 29
- Allow specifying extra options for PBKDF when creating LUKS2
- configure.ac: Fix missing parenthesis in blkid version check
- acinclude.m4: Use AS_EXIT to fail in LIBBLOCKDEV_FAILURES
- Skip 'test_cache_pool_create_remove' on CentOS 7
- BlockDev.py Convert dictionary keys to set before using them
- Make sure library tests properly clean after themselves
- Make sure library_test works after fixing -Wstrict-prototypes
- Do not build btrfs plugin on newer RHEL
- Do not build KBD plugin with bcache support on RHEL
- Skip btrfs tests if btrfs module is not available
- Add version to tests that should be skipped on CentOS/RHEL 7
- Skip VDO tests also when the 'kvdo' module is not available
- Fix how we check zram stats from /sys/block/zram0/mm_stat
- Fix calling BlockDev.reinit in swap tests
- Fix vdo configuration options definition in spec file
- Fix running pylint in tests
- Ignore "bad-super-call" pylint warning in BlockDev.py
- Fix three memory leaks in lvm-dbus.c
- Fix licence headers in sources
- lvm.c: Check for 'lvm' dependency in 'bd_lvm_is_tech_avail'
- lvm-dbus.c: Check for 'lvmdbus' dependency in 'bd_lvm_is_tech_avail'
- Add test for is_tech_available with multiple dependencies
- Use python interpreter explicitly when running boilerplate_generator.py

Libblockdev 2.18
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Notable changes**

- features

  - New plugin: vdo

      - support for creating and managing VDO volumes

  - Support for building dm plugin without libdmraid support -- configure option ``--without-dmraid``.

**Full list of changes**

Kai Lüke (2):

- Correct arguments for ext4 repair with progress
- Introduce reporting function per thread

Tomas Bzatek (3):

- vdo: Resolve real device file path
- vdo: Implement bd_vdo_grow_physical()
- vdo: Add tests for bd_vdo_grow_physical()

Vojtech Trefny (14):

- Update specs.rst and features.rst
- Fix release number in NEWS.rst
- Add 'bd_dm_is_tech_avail' to header file
- Always check for error when (un)mounting
- Add the VDO plugin
- Add basic VDO plugin functionality
- Add decimal units definition to utils/sizes.h
- Add tests for VDO plugin
- Only require plugins we really need in LVM dbus tests
- Allow compiling libblockdev without libdmraid
- Adjust to new NVDIMM namespace modes
- Do not try to build VDO plugin on Fedora
- Remove roadmap.rst
- Add VDO to features.rst

Vratislav Podzimek (2):

- Use xfs_repair instead of xfs_db in bd_fs_xfs_check()
- Clarify that checking an RW-mounted XFS file system is impossible

segfault (1):

- Fix off-by-one error when counting TCRYPT keyfiles


Libblockdev 2.17
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Notable changes**

- features

  - New plugin: nvdimm

    - support for NVDIMM namespaces management
    - requires *libndctl* >= 58.4

  - LUKS2 support

    - support for creating LUKS2 format including authenticated disk encryption
    - multiple new functions for working with LUKS devices (suspend/resume, header backup, metadata size...)

  - Extended support for opening TrueCrypt/VeraCrypt volumes

  - Support for building crypto plugin without escrow device support (removes
    build dependency on *libvolume_key* and *libnss*) -- configure option ``--without-escrow``.

  - Support for building libblockdev without Python 2 support -- configure option
    ``--without-python2``.

**Full list of changes**

Bjorn Pagen (3):

- Fix build against musl libc
- Fix build with clang
- Enforce ZERO_INIT gcc backwards compatibility

Florian Klink (1):

- s390: don't hardcode paths, search PATH

Jan Pokorny (1):

- New function for luks metadata size

Vojtech Trefny (24):

- Sync the spec file with downstream
- Fix python2-gobject-base dependency on Fedora 26 and older
- Add the NVDIMM plugin
- Add tests for the NVDIMM plugin
- Add --without-xyz to DISTCHECK_CONFIGURE_FLAGS for disabled plugins
- Add function for getting NVDIMM namespace name from devname or path
- Fix memory leaks discovered by clang
- Get sector size for non-block NVDIMM namespaces too
- lvm-dbus: Check returned job object for error
- Add functions to suspend and resume a LUKS device
- Add function for killing keyslot on a LUKS device
- Add functions to backup and restore LUKS header
- Require at least libndctl 58.4
- Allow compiling libblockdev crypto plugin without escrow support
- Allow building libblockdev without Python 2 support
- Skip bcache tests on Rawhide
- Add support for creating LUKS 2 format
- Use libblockdev function to create LUKS 2 in tests
- Add a basic test for creating LUKS 2 format
- Add function to get information about a LUKS device
- Add function to get information about LUKS 2 integrity devices
- Add functions to resize LUKS 2
- Add a generic logging function for libblockdev
- Redirect cryptsetup log to libblockdev log

Vratislav Podzimek (1):

- Use '=' instead of '==' to compare using 'test'

segfault (10):

- Support unlocking VeraCrypt volumes
- Support TCRYPT keyfiles
- Support TCRYPT hidden containers
- Support TCRYPT system volumes
- Support VeraCrypt PIM
- Add function bd_crypto_device_seems_encrypted
- Make keyfiles parameter to bd_crypto_tc_open_full zero terminated
- Don't use VeraCrypt PIM if compiled against libcryptsetup < 2.0
- Make a link point to the relevant section
- Add new functions to docs/libblockdev-sections.txt

Libblockdev 2.16
----------------

New minor release of the libblockdev library with multiple fixes. See below
for details.

**Notable changes**

- features

  - LUKS 2 support for luks_open/close and luks_add/remove/change_key

  - Progress report support for ext filesystem checks


**Full list of changes**

Jan Tulak (4):

- Add a function to test if prog. reporting was initialized
- Add progress reporting infrastructure for Ext fsck
- Add e2fsck progress
- Add tests for progress report

Vojtech Trefny (5):

- Fix link to online documentation
- Update 'Testing libblockdev' section in documentation
- Check if 'journalctl' is available before trying to use it in tests
- Fix few more links for project and documentation website
- Add support for LUKS 2 opening and key management

Vratislav Podzimek (2):

- Fix how the new kernel module functions are added to docs
- Sync the spec file with downstream


Libblockdev 2.15
----------------

New minor release of the libblockdev library with multiple fixes and quite big
refactorization changes (in the file system plugin). See below for details.


**Notable changes**

- fixes

  - Fix bd_s390_dasd_format() and bd_s390_dasd_is_ldl().

  - Fix how GPT patition flags are set.

  - Check the *btrfs* module availability as part of checking the *btrfs*
    plugin's dependencies.

  - Fix memory leaks in bd_fs_vfat_get_info()

  - Fix the file system plugin's dependency checking mechanisms.


- features

  - Mark some of the tests as unstable so that their failures are reported, but
    ignored in the overall test suite status.

  - The file system plugin is now split into multiple source files making it
    easier to add support for more file systems and technologies.


**Full list of changes**

Vendula Poncova (2):

- bd_s390_dasd_is_ldl should be true only for LDL DADSs
- Fix bd_s390_dasd_format

Vojtech Trefny (5):

- Use only sgdisk to set flags on GPT
- Add test for setting partition flags on GPT
- Free locale struct in kbd plugin
- Move kernel modules (un)loading and checking into utils
- Check for btrfs module availability in btrfs module

Vratislav Podzimek (11):

- Do not lie about tag creation
- Mark unstable tests as such
- Split the FS plugin source into multiple files
- Split the bd_fs_is_tech_avail() implementation
- Revert the behaviour of bd_fs_check_deps()
- Fix memory leaks in bd_fs_vfat_get_info()
- Mark bcache tests as unstable
- Add a HACKING.rst file
- Move the fs.h file to its original place
- Do not use the btrfs plugin in library tests
- Do not use the 'btrfs' plugin in overrides tests


Libblockdev 2.14
----------------

New minor release of the libblockdev library with important fixes and a few new
features, in particular support for the NTFS file system. See below for details.


**Notable changes**

- fixes

  - Fix BSSize memory leaks

  - Fixes for issues discovered by coverity

  - Support for the 'Legacy boot' GPT flag

- features

  - Added function to get DM device subsystem

  - Support for the NTFS file system

  - pkg-config definitions improvements


**Full list of changes**

Jan Pokorny (1):

- Added function to get DM device subsystem

Kai Lüke (2):

- Add function wrappers for NTFS tools
- Add some test cases for NTFS

Vojtech Trefny (29):

- Skip btrfs subvolume tests with btrfs-progs 4.13.2
- Fix BSSize memory leaks in btrfs and mdraid plugins
- Use system values in KbdTestBcacheStatusTest
- Use libbytesize to parse bcache block size
- blockdev.c.in: Fix unused variables
- fs.c: Fix resource leaks in 'bd_fs_get_fstype'
- fs.c: Check sscanf return value in 'bd_fs_vfat_get_info'
- fs.c: Fix for loop condition in 'bd_fs_get_fstype'
- lvm.c: Fix "use after free" in 'bd_lvm_get_thpool_meta_size'
- mdraid.c: Fix resource leaks
- part.c: Check if file discriptor is >= 0 before closing it
- kbd.c: Fix double free in 'bd_kbd_zram_get_stats'
- exec.c: Fix "use after free" in 'bd_utils_check_util_version'
- crypto.c: Use right key buffer in 'bd_crypto_luks_add_key'
- part.c: Fix possible NULL pointer dereference
- fs.c: Fix "forward null" in 'do_mount' and 'bd_fs_xfs_get_info'
- exec.c: Fix resource leaks in 'bd_utils_exec_and_report_progress'
- kbd.c: Fix potential string overflow in 'bd_kbd_bcache_create'
- part.c: Check if we've found a place to put new logical partitions
- exec.c: Ignore errors from 'g_io_channel_shutdown'
- Ignore some coverity false positive errors
- crypto.c: Fix waiting for enough entropy
- exec.c: Fix error message in 'bd_utils_exec_and_report_progress'
- Fix duplicate 'const' in generated functions
- lvm-dbus.c: Fix multiple "use after free" coverity warnings
- fs.c: Fix multiple "forward NULL" warnings in 'bd_fs_ntfs_get_info'
- dm.c: Check return values of dm_task_set_name/run/get_info functions
- dm.c: Fix uninitialized values in various dm plugin functions
- fs.c: Fix potential NULL pointer dereference

Vratislav Podzimek (3):

- Sync spec with downstream
- Add pkgconfig definitions for the utils library
- Respect the version in the blockdev.pc file

intrigeri (1):

- Support the legacy boot GPT flag


Thanks to all our contributors.

Vratislav Podzimek, 2017-10-31


Libblockdev 2.13
----------------

New minor release of the libblockdev library. Most of the changes are bugfixes
related to building and running tests on the s390 architecture and CentOS 7
aarch64. Other than that a support for checking runtime dependencies (utilities)
on demand and querying available technologies was implemented.


**Notable changes**

- builds

  - various fixes for building on s390

- tests

  - various changes allowing running the test suite on s390

  - various changes allowing running the test suite on CentOS7 aarch64

- features

  - checking for runtime dependencies on demand

  - querying available technologies


**Full list of changes**

Vojtech Trefny (14):

- Allow compiling libblockdev without s390 plugin
- Do not run g_clear_error after setting it
- Fix zFCP LUN max length
- Bypass error proxy in s390 test
- Use "AC_CANONICAL_BUILD" to check architecture instead of "uname"
- Do not include s390utils/vtoc.h in s390 plugin
- Add NEWS.rst file
- Fix source URL in spec file
- Use only one git tag for new releases
- Add new function for setting swap label
- Skip btrfs tests on CentOS 7 aarch64
- Better handle old and new zram sysfs api in tests
- Try harder when waiting for lio device to show up
- Use shorter prefix for tempfiles

Vratislav Podzimek (9):

- Add a function for getting plugin name
- Dynamically check for the required utilities
- Add functions for querying available technologies
- Simplify what WITH_BD_BCACHE changes in the KBD plugin
- Add a basic test for the runtime dependency checking
- Add missing items to particular sections in the documentation
- Assign functions to tech-mode categories
- Add a function for enabling/disabling plugins' init checks
- Fix the rpmlog and shortlog targets

Thanks to all our contributors.

Vratislav Podzimek, 2017-09-29


Libblockdev 2.12
----------------

New minor release of libblockdev library. Most changes in this release are related to
improving our test suite and fixing new issues and bugs.

**Notable changes**

- tests

  - various changes allowing running the test suite on Debian

**Full list of changes**

Kai Lüke (1):

- Wait for resized partition

Vojtech Trefny (20):

- Try to get distribution info from "PrettyName" if "CPEName" isn't available
- Require only plugins that are needed for given test
- Try harder to unmount devices in test cleanup
- Fix redirecting command output to /dev/null in tests
- Skip free region tests on Debian too
- Skip the test for device escrow on Debian too
- Skip zRAM tests on Debian
- Skip dependency checking in mpath tests on Debian
- Fix checking for available locales
- Fix names of backing files in tests
- Skip vgremove tests on 32bit Debian
- Use libmount cache when parsing /proc/mounts
- Use mountpoint for "xfs_info" calls
- Close filesystem before closing the partition during FAT resize
- Stop skipping FAT resize tests on rawhide
- Tests: Move library initialization to setUpClass method
- Add a script for running tests
- Use "run_tests" script for running tests from Makefile
- Fix label check in swap_test
- Own directories /etc/libblockdev and /etc/libblockdev/conf.d

Vratislav Podzimek (6):

- Sync spec with downstream
- Use -ff when creating PVs in FS tests
- Confirm the force when creating PVs in FS tests
- Add some space for the CI status
- Make sure the device is opened for libparted
- New version - 2.12

Thanks to all our contributors.

Vratislav Podzimek, 2017-08-30


Libblockdev 2.11
----------------

New minor release of libblockdev library.

**Notable changes**

- library

  - added option to skip dependecy check during library initialization

**Full list of changes**

Kai Lüke (2):

- Link to GObject even if no plugin is activated
- Allow non-source directory builds

Vojtech Trefny (1):

- Use new libmount function to get (un)mount error message

Vratislav Podzimek (6):

- Update the documentation URL
- Keep most utilities available for tests
- Skip zram tests on Rawhide
- Add a way to disable runtime dependency checks
- Make the KbdZRAMDevicesTestCase inherit from KbdZRAMTestCase
- New version - 2.11


Thanks to all our contributors.

Vratislav Podzimek, 2017-07-31


Libblockdev 2.10
----------------

New minor release of libblockdev library adding some new functionality in the
crypto, fs and part plugins and fixing various issues and bugs.

**Notable changes**

- crypto

  - support for opening and closing TrueCrypt/VeraCrypt volumes: ``bd_crypto_tc_open``
    and ``bd_crypto_tc_close``

- fs

  - new functions for checking of filesystem functions availability:  ``bd_fs_can_resize``,
    ``bd_fs_can_check`` and ``bd_fs_can_repair``

  - new generic function for filesystem repair and check: ``bd_fs_repair`` and ``bd_fs_check``

- part

  - newly added support for partition resizing: ``bd_part_resize_part``


**Full list of changes**

Kai Lüke (6):

- Size in bytes for xfs_resize_device
- Query functions for FS resize and repair support
- Generic Check and Repair Functions
- Add partition resize function
- Query setting FS label support and generic relabeling
- Specify tolerance for partition size

Tony Asleson (3):

- kbd.c: Make bd_kbd_bcache_create work without abort
- kbd.c: Code review corrections
- bcache tests: Remove FEELINGLUCKY checks

Tristan Van Berkom (2):

- Fixed include for libvolume_key.h
- src/plugins/Makefile.am: Remove hard coded include path in /usr prefix

Vratislav Podzimek (12):

- Try RO mount also if we get EACCES
- Adapt to a change in behaviour in new libmount
- Add functions for opening/closing TrueCrypt/VeraCrypt volumes
- Update the project/source URL in the spec file
- Compile everything with the C99 standard
- Do not strictly require all FS utilities
- Check resulting FS size in tests for generic FS resize
- Only use the exact constraint if not using any other
- Do not verify vfat FS' size after generic resize
- Limit the requested partition size to maximum possible
- Only enable partition size tolerance with alignment
- New version - 2.10

squimrel (1):

- Ignore parted warnings if possible

Thanks to all our contributors.

Vratislav Podzimek, 2017-07-05
