diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f4a275d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/vdo-bebf98e.tar.gz diff --git a/.vdo.metadata b/.vdo.metadata new file mode 100644 index 0000000..adc7a3c --- /dev/null +++ b/.vdo.metadata @@ -0,0 +1 @@ +5da8d38bacd88b7f7d6ad176f5e542ae15493aa8 SOURCES/vdo-bebf98e.tar.gz diff --git a/SOURCES/bz1658224-fix_blkid_call.patch b/SOURCES/bz1658224-fix_blkid_call.patch new file mode 100644 index 0000000..6501d9c --- /dev/null +++ b/SOURCES/bz1658224-fix_blkid_call.patch @@ -0,0 +1,12 @@ +diff -Naur vdo-bebf98eac4903b7619e10b49dababad9f5cd8535.orig/vdo-manager/vdomgmnt/VDOService.py vdo-bebf98eac4903b7619e10b49dababad9f5cd8535/vdo-manager/vdomgmnt/VDOService.py +--- vdo-bebf98eac4903b7619e10b49dababad9f5cd8535.orig/vdo-manager/vdomgmnt/VDOService.py 2018-12-14 16:50:00.000000000 -0500 ++++ vdo-bebf98eac4903b7619e10b49dababad9f5cd8535/vdo-manager/vdomgmnt/VDOService.py 2018-12-14 18:04:17.051668198 -0500 +@@ -1395,7 +1395,7 @@ + # volumes the above check won't trigger an error. So do a second + # check that catches that. + try: +- runCommand(['blkid', '-p', self.device]) ++ runCommand(['blkid', '-p', '--no-part-details', self.device]) + except CommandError as e: + if e.getExitCode() == 2: + return diff --git a/SOURCES/fix_dmeventd_linking.patch b/SOURCES/fix_dmeventd_linking.patch new file mode 100644 index 0000000..35a8e5e --- /dev/null +++ b/SOURCES/fix_dmeventd_linking.patch @@ -0,0 +1,12 @@ +diff -Naur vdo-3ec5c4fef536f8b4420581464e9053a76d61d05a.orig/utils/vdo/user/Makefile vdo-3ec5c4fef536f8b4420581464e9053a76d61d05a/utils/vdo/user/Makefile +--- vdo-3ec5c4fef536f8b4420581464e9053a76d61d05a.orig/utils/vdo/user/Makefile 2018-11-15 21:11:35.000000000 -0500 ++++ vdo-3ec5c4fef536f8b4420581464e9053a76d61d05a/utils/vdo/user/Makefile 2018-11-16 13:59:51.998828080 -0500 +@@ -144,7 +144,7 @@ + echo "Building $@ from $^" + $(CC) $(LDFLAGS) $^ $(LDPRFLAGS) -o $@ + +-vdodmeventd: LDPRFLAGS += "-ldevmapper-event" ++vdodmeventd: LDPRFLAGS += -ldevmapper -ldevmapper-event + + ifneq ($(MAKECMDGOALS),clean) + DEPSOURCES = $(wildcard *.c) diff --git a/SPECS/vdo.spec b/SPECS/vdo.spec new file mode 100644 index 0000000..93208aa --- /dev/null +++ b/SPECS/vdo.spec @@ -0,0 +1,479 @@ +%global commit bebf98eac4903b7619e10b49dababad9f5cd8535 +%global gittag 6.2.0.293 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +%define spec_release 10 +Summary: Management tools for Virtual Data Optimizer +Name: vdo +Version: %{gittag} +Release: %{spec_release}%{?dist} +License: GPLv2 +Source0: https://github.com/dm-vdo/%{name}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz +Patch0: fix_dmeventd_linking.patch +Patch1: bz1658224-fix_blkid_call.patch +URL: http://github.com/dm-vdo/vdo +Requires: lvm2 >= 2.02 +Requires: python3-PyYAML >= 3.10 +Requires: libuuid >= 2.23 +Requires: kmod-kvdo >= 6.2 +Requires: util-linux >= 2.32.1-7 +Provides: kvdo-kmod-common = %{version} +ExcludeArch: s390 +ExcludeArch: ppc +ExcludeArch: ppc64 +ExcludeArch: i686 +BuildRequires: gcc +BuildRequires: libuuid-devel +BuildRequires: device-mapper-devel +BuildRequires: device-mapper-event-devel +BuildRequires: python3 +BuildRequires: python3-devel +BuildRequires: systemd +%ifarch %{valgrind_arches} +BuildRequires: valgrind-devel +%endif +BuildRequires: zlib-devel +%{?systemd_requires} + +# Disable an automatic dependency due to a file in examples/monitor. +%define __requires_exclude perl + +%description +Virtual Data Optimizer (VDO) is a device mapper target that delivers +block-level deduplication, compression, and thin provisioning. + +This package provides the user-space management tools for VDO. + +%prep +%setup -q -n %{name}-%{commit} +%patch0 -p1 +%patch1 -p1 + +%build +make + +%install +make install DESTDIR=$RPM_BUILD_ROOT INSTALLOWNER= bindir=%{_bindir} \ + defaultdocdir=%{_defaultdocdir} name=%{name} \ + python3_sitelib=%{python3_sitelib} mandir=%{_mandir} \ + unitdir=%{_unitdir} presetdir=%{_presetdir} + +# Fix the python3 shebangs +for file in %{_bindir}/vdo \ + %{_bindir}/vdostats \ + %{_defaultdocdir}/%{name}/examples/ansible/vdo.py +do + pathfix.py -pni "%{__python3}" $RPM_BUILD_ROOT${file} +done + +%post +%systemd_post vdo.service + +%preun +%systemd_preun vdo.service + +%postun +%systemd_postun_with_restart vdo.service + +%files +#defattr(-,root,root) +%{_bindir}/vdo +%{_bindir}/vdostats +%{_bindir}/vdodmeventd +%{_bindir}/vdodumpconfig +%{_bindir}/vdoforcerebuild +%{_bindir}/vdoformat +%{_bindir}/vdoprepareupgrade +%{_bindir}/vdoreadonly +%dir %{python3_sitelib}/%{name} +%{python3_sitelib}/%{name}/__init__.py +%{python3_sitelib}/%{name}/__pycache__/__init__.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/__pycache__/__init__.cpython-36.pyc +%dir %{python3_sitelib}/%{name}/vdomgmnt/ +%{python3_sitelib}/%{name}/vdomgmnt/CommandLock.py +%{python3_sitelib}/%{name}/vdomgmnt/Configuration.py +%{python3_sitelib}/%{name}/vdomgmnt/Constants.py +%{python3_sitelib}/%{name}/vdomgmnt/Defaults.py +%{python3_sitelib}/%{name}/vdomgmnt/ExitStatusMixins.py +%{python3_sitelib}/%{name}/vdomgmnt/KernelModuleService.py +%{python3_sitelib}/%{name}/vdomgmnt/MgmntUtils.py +%{python3_sitelib}/%{name}/vdomgmnt/Service.py +%{python3_sitelib}/%{name}/vdomgmnt/SizeString.py +%{python3_sitelib}/%{name}/vdomgmnt/Utils.py +%{python3_sitelib}/%{name}/vdomgmnt/VDOArgumentParser.py +%{python3_sitelib}/%{name}/vdomgmnt/VDOService.py +%{python3_sitelib}/%{name}/vdomgmnt/VDOKernelModuleService.py +%{python3_sitelib}/%{name}/vdomgmnt/VDOOperation.py +%{python3_sitelib}/%{name}/vdomgmnt/__init__.py +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/CommandLock.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/CommandLock.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/Configuration.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/Configuration.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/Constants.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/Constants.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/Defaults.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/Defaults.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/ExitStatusMixins.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/ExitStatusMixins.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/KernelModuleService.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/KernelModuleService.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/MgmntUtils.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/MgmntUtils.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/Service.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/Service.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/SizeString.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/SizeString.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/Utils.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/Utils.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/VDOArgumentParser.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/VDOArgumentParser.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/VDOKernelModuleService.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/VDOKernelModuleService.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/VDOOperation.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/VDOOperation.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/VDOService.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/VDOService.cpython-36.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/__init__.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/vdomgmnt/__pycache__/__init__.cpython-36.pyc +%dir %{python3_sitelib}/%{name}/statistics/ +%{python3_sitelib}/%{name}/statistics/Command.py +%{python3_sitelib}/%{name}/statistics/Field.py +%{python3_sitelib}/%{name}/statistics/KernelStatistics.py +%{python3_sitelib}/%{name}/statistics/LabeledValue.py +%{python3_sitelib}/%{name}/statistics/StatFormatter.py +%{python3_sitelib}/%{name}/statistics/StatStruct.py +%{python3_sitelib}/%{name}/statistics/VDOReleaseVersions.py +%{python3_sitelib}/%{name}/statistics/VDOStatistics.py +%{python3_sitelib}/%{name}/statistics/__init__.py +%{python3_sitelib}/%{name}/statistics/__pycache__/Command.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/Command.cpython-36.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/Field.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/Field.cpython-36.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/KernelStatistics.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/KernelStatistics.cpython-36.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/LabeledValue.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/LabeledValue.cpython-36.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/StatFormatter.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/StatFormatter.cpython-36.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/StatStruct.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/StatStruct.cpython-36.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/VDOReleaseVersions.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/VDOReleaseVersions.cpython-36.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/VDOStatistics.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/VDOStatistics.cpython-36.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/__init__.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/statistics/__pycache__/__init__.cpython-36.pyc +%dir %{python3_sitelib}/%{name}/utils/ +%{python3_sitelib}/%{name}/utils/Command.py +%{python3_sitelib}/%{name}/utils/FileUtils.py +%{python3_sitelib}/%{name}/utils/Timeout.py +%{python3_sitelib}/%{name}/utils/Transaction.py +%{python3_sitelib}/%{name}/utils/YAMLObject.py +%{python3_sitelib}/%{name}/utils/__init__.py +%{python3_sitelib}/%{name}/utils/__pycache__/Command.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/Command.cpython-36.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/FileUtils.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/FileUtils.cpython-36.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/Timeout.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/Timeout.cpython-36.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/Transaction.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/Transaction.cpython-36.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/YAMLObject.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/YAMLObject.cpython-36.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/__init__.cpython-36.opt-1.pyc +%{python3_sitelib}/%{name}/utils/__pycache__/__init__.cpython-36.pyc +%{_unitdir}/vdo.service +%{_presetdir}/97-vdo.preset +%dir %{_defaultdocdir}/%{name} +%license %{_defaultdocdir}/%{name}/COPYING +%dir %{_defaultdocdir}/%{name}/examples +%dir %{_defaultdocdir}/%{name}/examples/ansible +%doc %{_defaultdocdir}/%{name}/examples/ansible/README.txt +%doc %{_defaultdocdir}/%{name}/examples/ansible/test_vdocreate.yml +%doc %{_defaultdocdir}/%{name}/examples/ansible/test_vdocreate_alloptions.yml +%doc %{_defaultdocdir}/%{name}/examples/ansible/test_vdoremove.yml +%doc %{_defaultdocdir}/%{name}/examples/ansible/vdo.py +%dir %{_defaultdocdir}/%{name}/examples/monitor +%doc %{_defaultdocdir}/%{name}/examples/monitor/monitor_check_vdostats_logicalSpace.pl +%doc %{_defaultdocdir}/%{name}/examples/monitor/monitor_check_vdostats_physicalSpace.pl +%doc %{_defaultdocdir}/%{name}/examples/monitor/monitor_check_vdostats_savingPercent.pl +%dir %{_defaultdocdir}/%{name}/examples/systemd +%doc %{_defaultdocdir}/%{name}/examples/systemd/VDO.mount.example +%{_mandir}/man8/vdo.8.gz +%{_mandir}/man8/vdostats.8.gz +%{_mandir}/man8/vdodmeventd.8.gz +%{_mandir}/man8/vdodumpconfig.8.gz +%{_mandir}/man8/vdoforcerebuild.8.gz +%{_mandir}/man8/vdoformat.8.gz + +%changelog +* Fri Dec 14 2018 - Andy Walsh - 6.2.0.293-10 +- Fixed a bug in the vdo script when checking the logical thread count. +- Resolves: rhbz#1645325 +- Corrected the vdo script manpage entry for maxDiscardSize. +- Resolves: rhbz#1651251 +- Allowed VDO backing devices to be specified by major:minor device number. +- Resolves: rhbz#1594285 +- Fixed bugs when the vdo script is invoked against an existing device + which is not a VDO. +- Resolves: rhbz#1588083 +- Update vdo manpage to reflect deleted statistics. +- Resolves: rhbz#1639792 +- Updated vdo script to handle partitioned devices +- Resolves: rhbz#1658224 + +* Fri Nov 16 2018 - Andy Walsh - 6.2.0.273-9 +- Fixed a build dependency issue with device-mapper-devel +- Resolves: rhbz#1650686 +- Improved checking for existing LVM physical volumes when formatting a new VDO + volume. +- Resolves: rhbz#1627859 +- Removed read cache statistics, configuration options, and table line + parameters. +- Resolves: rhbz#1639792 +- Fixed a bug which would cause the default logical size to be 480 KB smaller + than it could be without causing over-provisioning. +- Resolves: rhbz#1645690 +- Limited the number of logical zones to 60. +- Resolves: rhbz#1645325 +- Removed extraneous man pages. +- Resolves: rhbz#1649950 + +* Sun Oct 07 2018 - Andy Walsh - 6.2.0.239-8 +- Modified vdo script to use the new physical and logical growth procedures + including support for the new table line format (the old format is still + supported as well). +- Resolves: rhbz#1631869 + +* Mon Sep 17 2018 - Andy Walsh - 6.2.0.219-8 +- Fixed error path memory leaks in the UDS module. +- Resolves: rhbz#1609403 +- Convered nagios scripts to monitor scripts +- Made all configuration load errors use generic messaging in the vdo + script. +- Resolves: rhbz#1626237 +- Added missing va_end() calls. +- Resolves: rhbz#1627953 +- Modified Makefile to take build flags from rpmbuild. +- Resolves: rhbz#1624184 + +* Fri Aug 3 2018 - Florian Weimer - 6.2.0.187-8 +- Honor %%{valgrind_arches} + +* Mon Jul 30 2018 - Florian Weimer - 6.2.0.187-7 +- Rebuild with fixed binutils + +* Sun Jul 29 2018 - Andy Walsh - 6.2.0.187-6 +- Improved man pages. +- Resolves: rhbz#1600247 +- Modified vdo scripts to ignore (but preserve) unrecognized parameters in the + vdo config file so that config files are compatible across versions. +- Resolves: rhbz#1604122 + +* Fri Jul 06 2018 - Andy Walsh - 6.2.0.132-6 +- Converted to use %%{__python3} on utility scripts. + +* Thu Jun 28 2018 - Andy Walsh - 6.2.0.132-5 +- Fixed handling of relative paths supplied to the --confFile options of + the vdo script. + +* Thu Jun 21 2018 - Andy Walsh - 6.2.0.109-4 +- Fixed a bug in the vdo script which would fail with a python backtrace + when the script was invoked with no arguments. +- Resolves: rhbz#1581204 +- Modified the vdo script to not allow creation of a VDO device on top of + an already running VDO device. +- Made the ordering of the output of vdo list stable. +- Resolves: rhbz#1584823 +- Fixed issues with UDS on platforms where "char" is an unsigned type. +- Converted UDS to use GCC's built-in macros for determining endianness. +- Fixed a bug in the --vdoLogLevel option to the vdo python script when + using python 3 +- Resolves: rhbz#1586043 + +* Mon Jun 04 2018 - Andy Walsh - 6.2.0.71-4 +Note: This is a pre-release version, future versions of VDO may not support +VDO devices created with this version. +- Modified vdo script to reqiure --force to remove a VDO volume with no + device. +- Improved man pages. +- Converted python tools to use python 3. + +* Tue May 01 2018 - Andy Walsh - 6.2.0.35-3.py3 +- Updated to python3 +- Also added aarch64 as an architecture + +* Fri Apr 27 2018 - Andy Walsh - 6.2.0.35-3 +Note: This is a pre-release version, future versions of VDO may not support + VDO devices created with this version. +- Added validation that the release version numbers in the geometry and + super block match on load. +- Fixed bug where VDO would always be created with a dense index even when + a sparse index was requested. +- Fixed compilation problems on newer versions of GCC. + +* Wed Apr 25 2018 - Andy Walsh - 6.2.0.32-3.updated_vdoGeometry +- Experimental build that uses a different way to spell the loadable version + +* Tue Apr 24 2018 - Andy Walsh - 6.2.0.32-3 +Note: This is a pre-release version, future versions of VDO may not support + VDO devices created with this version. +- Add a library, libuser.a, to provide easy access to VDO user space code + for other projects. +- Fixed a bug in vdo script when /dev/disk/by-id does not exist. +- Fixed an internationalization bug in the vdo script's --indexMemory + option. +- Changed vdo script to not accept --vdoSlabSize=0 as a way of specifying + the default since it was confusing. The default can be obtained by merely + omitting the parameter entirely. + +* Thu Apr 19 2018 - Andy Walsh - 6.2.0.4-3 +- Added dependency for lvm2 + +* Tue Apr 17 2018 - Andy Walsh - 6.2.0.4-2 +- Added missing kmod-kvdo requirement +- Resolves: rhbz#1568039 + +* Fri Apr 13 2018 - Andy Walsh - 6.2.0.4-1 +- Updated to use github for Source0 +- Reformatted tags to be easier to read +- Initial RHEL8 RPM rhbz#1503786 + +* Fri Apr 13 2018 - J. corwin Coburn - 6.2.0.4-1 +- Initial pre-release for RHEL 8. + - Please be aware that this version is not compatible with previous versions + of VDO. Support for loading or upgrading devices created with VDO version + 6.1 will be available soon. +- Management tools will work with both python 2 and python 3. +- Dedupe path improvements. +- Beginnings of support for non-x86 architectures. +- Removed obsolete code from UDS. + +* Fri Feb 16 2018 - Joseph Chapman - 6.1.0.149-16 +- Sync mode is safe if underlying storage changes to requiring flushes +- Resolves: rhbz#1540777 + +* Wed Feb 07 2018 - Joseph Chapman - 6.1.0.146-16 +- VDO start command now does index memory checking +- Module target is now "vdo" instead of "dedupe" +- VDO remove with no device no longer puts a spurious file in /dev +- ANsible module no longer fails on modification operations +- Resolves: rhbz#1510567 +- Resolves: rhbz#1530358 +- Resolves: rhbz#1535597 +- Resolves: rhbz#1536214 + +* Tue Feb 06 2018 - Andy Walsh - 6.1.0.144-16 +- Updated summary and description +- Resolves: rhbz#1541409 + +* Thu Feb 01 2018 - Joseph Chapman - 6.1.0.130-15 +- vdo growLogical by less than 4K gives correct error +- Fix URL to point to GitHub tree +- Resolves: rhbz#1532653 +- Resolves: rhbz#1539059 + +* Fri Jan 19 2018 - Joseph Chapman - 6.1.0.124-14 +- Added a specific error for less than 1 block growLogical. +- Resolves: rhbz#1532653 + +* Wed Jan 10 2018 - Joseph Chapman - 6.1.0.114-14 +- VDO automatically chooses the proper write policy by default +- Package uninstall removes vdo.service symlinks +- Resolves: rhbz#1525305 +- Resolves: rhbz#1531047 + +* Thu Dec 21 2017 - Joseph Chapman - 6.1.0.106-13 +- Handle bogus --confFile and --logfile arguments +- Produce more informative vdo manager high-level help +- Generate command-specific unrecognized argument messages +- Resolves: rhbz#1520927 +- Resolves: rhbz#1522750 +- Resolves: rhbz#1525560 + +* Tue Dec 12 2017 - Joseph Chapman - 6.1.0.97-13 +- Remove vdo --noRun option +- Clean up vdo error handling +- Prevent python stack traces on vdo errors +- Add more bounds checking to indexMem +- Resolves: rhbz#1508544 +- Resolves: rhbz#1508918 +- Resolves: rhbz#1520991 +- Resolves: rhbz#1522754 + +* Fri Dec 08 2017 - Joseph Chapman - 6.1.0.89-13 +- Build changes for UUID +- Limit VDO physical size +- Limit command options to those applicable to the subcommand +- Fix vdo --modifyBlockMapPeriod +- Report missing command option appropriately for all subcommands +- Fix behavior of --indexMem when there's not enough memory +- Remove obsolete nagios plugin from examples +- Better error behavior for failing vdo status commands +- Fix boundary check error for vdoLogicalSize +- Resolves: rhbz#1507927 +- Resolves: rhbz#1508452 +- Resolves: rhbz#1508544 +- Resolves: rhbz#1508918 +- Resolves: rhbz#1509002 +- Resolves: rhbz#1510567 +- Resolves: rhbz#1512631 +- Resolves: rhbz#1522943 + +* Fri Dec 01 2017 - Joseph Chapman - 6.1.0.72-12 +- Don't corrupt an existing filesystem with "vdo create" without "--force" +- Resolves: rhbz#1510581 + +* Mon Nov 27 2017 - Ken Raeburn - 6.1.0.55-11 +- Don't corrupt an existing filesystem with "vdo create" without "--force" +- Resolves: rhbz#1510581 + +* Fri Nov 17 2017 - Joseph Chapman - 6.1.0.55-10 +- manual pages: note logical size limit of 4P +- manual pages: make cache size/thread count link clearer +- Resolves: rhbz#1508452 +- Resolves: rhbz#1511042 + +* Fri Nov 03 2017 - Joseph Chapman - 6.1.0.46-9 +- update manpage to not allow 0 as an option +- enforce maximum vdoPhysicalThreads +- update manpage to describe maximum vdoPhysicalThreads +- Resolves: rhbz#1510405 +- Resolves: rhbz#1511075 +- Resolves: rhbz#1511085 +- Resolves: rhbz#1511091 + +* Fri Nov 03 2017 - Joseph Chapman - 6.1.0.34-8 +- Bugfixes +- Resolves: rhbz#1480047 + +* Mon Oct 30 2017 - Joseph Chapman - 6.1.0.0-7 +- Don't let make install try to set file ownerships itself +- Resolves: rhbz#1480047 + +* Thu Oct 12 2017 - Joseph Chapman - 6.1.0.0-6 +- Added new man pages +- Resolves: rhbz#1480047 + +* Fri Oct 6 2017 - Joseph Chapman - 6.1.0.0-5 +- Fixed a typo in the package description +- Fixed man page paths +- Resolves: rhbz#1480047 + +* Thu Oct 5 2017 - Joseph Chapman - 6.1.0.0-4 +- Fix vdostats name in nagios examples +- Build only on the x86_64 architecture +- Add systemd files +- Resolves: rhbz#1480047 + +* Thu Oct 5 2017 - Joseph Chapman - 6.1.0.0-3 +- Added missing Build-Requires and incorporated naming changes +- Resolves: rhbz#1480047 + +* Wed Oct 4 2017 - Joseph Chapman - 6.1.0.0-2 +- Fixed requirements and tags in %files section +- Resolves: rhbz#1480047 + +* Tue Oct 3 2017 - Joseph Chapman - 6.1.0.0-1 +- Initial implementation +- Resolves: rhbz#1480047