diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a8c8c88 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/vdo-741031a.tar.gz diff --git a/.vdo.metadata b/.vdo.metadata new file mode 100644 index 0000000..799287c --- /dev/null +++ b/.vdo.metadata @@ -0,0 +1 @@ +4ff204aa8697c243461a866a4501d0b879f40269 SOURCES/vdo-741031a.tar.gz diff --git a/SPECS/vdo.spec b/SPECS/vdo.spec new file mode 100644 index 0000000..044bc34 --- /dev/null +++ b/SPECS/vdo.spec @@ -0,0 +1,431 @@ +%global commit 741031af4b5ab1d03bb2a9206fb9e6c69790d13b +%global gittag 6.1.3.4 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%define spec_release 4 +# +# +# +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 +URL: http://github.com/dm-vdo/vdo +Distribution: RHEL 7.7 +Requires: PyYAML >= 3.10 +Requires: libuuid >= 2.23 +Requires: kmod-kvdo >= 6.1 +Requires: lvm2 >= 2.02.171 +Provides: kvdo-kmod-common = %{version} +ExclusiveArch: x86_64 +ExcludeArch: s390 +ExcludeArch: s390x +ExcludeArch: ppc +ExcludeArch: ppc64 +ExcludeArch: ppc64le +ExcludeArch: aarch64 +ExcludeArch: i686 +BuildRequires: gcc +BuildRequires: device-mapper-event-devel +BuildRequires: libuuid-devel +BuildRequires: python +BuildRequires: python-devel +BuildRequires: systemd +BuildRequires: valgrind-devel +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 -n %{name}-%{commit} + +%build +make + +%install +make install DESTDIR=$RPM_BUILD_ROOT INSTALLOWNER= bindir=%{_bindir} \ + defaultdocdir=%{_defaultdocdir} name=%{name} \ + python_sitelib=%{python_sitelib} mandir=%{_mandir} \ + unitdir=%{_unitdir} presetdir=%{_presetdir} + +%post +%systemd_post vdo.service + +%preun +%systemd_preun vdo.service + +%postun +%systemd_postun_with_restart vdo.service + +%files +#defattr(-,root,root) +%{_bindir}/vdo +%{_bindir}/vdodmeventd +%{_bindir}/vdodumpconfig +%{_bindir}/vdoforcerebuild +%{_bindir}/vdoformat +%{_bindir}/vdoprepareupgrade +%{_bindir}/vdoreadonly +%{_bindir}/vdostats +%dir %{python_sitelib}/%{name} +%dir %{python_sitelib}/%{name}/vdomgmnt/ +%{python_sitelib}/%{name}/vdomgmnt/CommandLock.py +%{python_sitelib}/%{name}/vdomgmnt/CommandLock.pyc +%{python_sitelib}/%{name}/vdomgmnt/CommandLock.pyo +%{python_sitelib}/%{name}/vdomgmnt/Configuration.py +%{python_sitelib}/%{name}/vdomgmnt/Configuration.pyc +%{python_sitelib}/%{name}/vdomgmnt/Configuration.pyo +%{python_sitelib}/%{name}/vdomgmnt/Constants.py +%{python_sitelib}/%{name}/vdomgmnt/Constants.pyc +%{python_sitelib}/%{name}/vdomgmnt/Constants.pyo +%{python_sitelib}/%{name}/vdomgmnt/Defaults.py +%{python_sitelib}/%{name}/vdomgmnt/Defaults.pyc +%{python_sitelib}/%{name}/vdomgmnt/Defaults.pyo +%{python_sitelib}/%{name}/vdomgmnt/ExitStatusMixins.py +%{python_sitelib}/%{name}/vdomgmnt/ExitStatusMixins.pyc +%{python_sitelib}/%{name}/vdomgmnt/ExitStatusMixins.pyo +%{python_sitelib}/%{name}/vdomgmnt/KernelModuleService.py +%{python_sitelib}/%{name}/vdomgmnt/KernelModuleService.pyc +%{python_sitelib}/%{name}/vdomgmnt/KernelModuleService.pyo +%{python_sitelib}/%{name}/vdomgmnt/MgmntLogger.py +%{python_sitelib}/%{name}/vdomgmnt/MgmntLogger.pyc +%{python_sitelib}/%{name}/vdomgmnt/MgmntLogger.pyo +%{python_sitelib}/%{name}/vdomgmnt/MgmntUtils.py +%{python_sitelib}/%{name}/vdomgmnt/MgmntUtils.pyc +%{python_sitelib}/%{name}/vdomgmnt/MgmntUtils.pyo +%{python_sitelib}/%{name}/vdomgmnt/Service.py +%{python_sitelib}/%{name}/vdomgmnt/Service.pyc +%{python_sitelib}/%{name}/vdomgmnt/Service.pyo +%{python_sitelib}/%{name}/vdomgmnt/SizeString.py +%{python_sitelib}/%{name}/vdomgmnt/SizeString.pyc +%{python_sitelib}/%{name}/vdomgmnt/SizeString.pyo +%{python_sitelib}/%{name}/vdomgmnt/Utils.py +%{python_sitelib}/%{name}/vdomgmnt/Utils.pyc +%{python_sitelib}/%{name}/vdomgmnt/Utils.pyo +%{python_sitelib}/%{name}/vdomgmnt/VDOService.py +%{python_sitelib}/%{name}/vdomgmnt/VDOService.pyc +%{python_sitelib}/%{name}/vdomgmnt/VDOService.pyo +%{python_sitelib}/%{name}/vdomgmnt/VDOKernelModuleService.py +%{python_sitelib}/%{name}/vdomgmnt/VDOKernelModuleService.pyc +%{python_sitelib}/%{name}/vdomgmnt/VDOKernelModuleService.pyo +%{python_sitelib}/%{name}/vdomgmnt/VDOOperation.py +%{python_sitelib}/%{name}/vdomgmnt/VDOOperation.pyc +%{python_sitelib}/%{name}/vdomgmnt/VDOOperation.pyo +%{python_sitelib}/%{name}/vdomgmnt/__init__.py +%{python_sitelib}/%{name}/vdomgmnt/__init__.pyc +%{python_sitelib}/%{name}/vdomgmnt/__init__.pyo +%dir %{python_sitelib}/%{name}/statistics/ +%{python_sitelib}/%{name}/statistics/Command.py +%{python_sitelib}/%{name}/statistics/Command.pyc +%{python_sitelib}/%{name}/statistics/Command.pyo +%{python_sitelib}/%{name}/statistics/Field.py +%{python_sitelib}/%{name}/statistics/Field.pyc +%{python_sitelib}/%{name}/statistics/Field.pyo +%{python_sitelib}/%{name}/statistics/KernelStatistics.py +%{python_sitelib}/%{name}/statistics/KernelStatistics.pyc +%{python_sitelib}/%{name}/statistics/KernelStatistics.pyo +%{python_sitelib}/%{name}/statistics/LabeledValue.py +%{python_sitelib}/%{name}/statistics/LabeledValue.pyc +%{python_sitelib}/%{name}/statistics/LabeledValue.pyo +%{python_sitelib}/%{name}/statistics/StatFormatter.py +%{python_sitelib}/%{name}/statistics/StatFormatter.pyc +%{python_sitelib}/%{name}/statistics/StatFormatter.pyo +%{python_sitelib}/%{name}/statistics/StatStruct.py +%{python_sitelib}/%{name}/statistics/StatStruct.pyc +%{python_sitelib}/%{name}/statistics/StatStruct.pyo +%{python_sitelib}/%{name}/statistics/VDOReleaseVersions.py +%{python_sitelib}/%{name}/statistics/VDOReleaseVersions.pyc +%{python_sitelib}/%{name}/statistics/VDOReleaseVersions.pyo +%{python_sitelib}/%{name}/statistics/VDOStatistics.py +%{python_sitelib}/%{name}/statistics/VDOStatistics.pyc +%{python_sitelib}/%{name}/statistics/VDOStatistics.pyo +%{python_sitelib}/%{name}/statistics/__init__.py +%{python_sitelib}/%{name}/statistics/__init__.pyc +%{python_sitelib}/%{name}/statistics/__init__.pyo +%dir %{python_sitelib}/%{name}/utils/ +%{python_sitelib}/%{name}/utils/Command.py +%{python_sitelib}/%{name}/utils/Command.pyc +%{python_sitelib}/%{name}/utils/Command.pyo +%{python_sitelib}/%{name}/utils/FileUtils.py +%{python_sitelib}/%{name}/utils/FileUtils.pyc +%{python_sitelib}/%{name}/utils/FileUtils.pyo +%{python_sitelib}/%{name}/utils/Logger.py +%{python_sitelib}/%{name}/utils/Logger.pyc +%{python_sitelib}/%{name}/utils/Logger.pyo +%{python_sitelib}/%{name}/utils/Timeout.py +%{python_sitelib}/%{name}/utils/Timeout.pyc +%{python_sitelib}/%{name}/utils/Timeout.pyo +%{python_sitelib}/%{name}/utils/Transaction.py +%{python_sitelib}/%{name}/utils/Transaction.pyc +%{python_sitelib}/%{name}/utils/Transaction.pyo +%{python_sitelib}/%{name}/utils/YAMLObject.py +%{python_sitelib}/%{name}/utils/YAMLObject.pyc +%{python_sitelib}/%{name}/utils/YAMLObject.pyo +%{python_sitelib}/%{name}/utils/__init__.py +%{python_sitelib}/%{name}/utils/__init__.pyc +%{python_sitelib}/%{name}/utils/__init__.pyo +%{_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 +%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/vdodmeventd.8.gz +%{_mandir}/man8/vdodumpconfig.8.gz +%{_mandir}/man8/vdoforcerebuild.8.gz +%{_mandir}/man8/vdoformat.8.gz +%{_mandir}/man8/vdostats.8.gz + +%changelog +* Tue Aug 20 2019 - Andy Walsh - 6.1.3.4-4 +- Added UUID filtering of underlying devices when running vdo create with + the --force flag as this failed when run on certain PVs. + - Resolves: rhbz#1707481 + +* Wed Mar 27 2019 - Andy Walsh - 6.1.2.41-4 +- Removed the VDO Ansible module and associated examples from this package. + - Resolves: rhbz#1536515 +- Improved error messages from the vdo script. + - Resolves: rhbz#1688481 + +* Tue Mar 19 2019 - Andy Walsh - 6.1.2.38-3 +- Fixed more error path memory leaks. + - Resolves: rhbz#1609426 +- Improved man pages. + - Resolves: rhbz#1636047 +- Improved checking for existing LVM physical volumes when formatting a new + VDO volume. + - Resolves: rhbz#1687797 +- 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#1532697 +- Removed extraneous man pages. + - Resolves: rhbz#1643284 +- Allowed VDO backing devices to be specified by major:minor device number. + - Resolves: rhbz#1637762 +- Improved behavior when attempting to create a VDO volume whose name conflicts + with an existing dm target. + - Resolves: rhbz#1588140 +- Modified vdo script to report fewer errors when removing a VDO which + sits atop a missing device. + - Resolves: rhbz#1535476 + +* Fri Sep 14 2018 - Andy Walsh - 6.1.1.125-3 +- Re-sync with the 'kmod-kvdo' package. +- Related: rhbz#1628318 + +* Sun Jul 29 2018 - Andy Walsh - 6.1.1.120-3 +- Improved error messages in the vdo script when failing to stop a device. +- Resolves: rhbz#1511106 +- Improved man pages. +- Resolves: rhbz#1572640 +- Modified vdo script to ignore (but preserve) unrecognised parameters in + the vdo config file so that config files are compatible across versions. +- Resolves: rhbz#1604060 +- Updated Ansible module to change block map cache size on existing volumes +- Resolves: rhbz#1541170 + +* Sun Jul 15 2018 - Andy Walsh - 6.1.1.111-3 +- Added support for issuing fullness warnings via dmeventd +- rhbz#1519307 +- Provided missing error code to text translation for vdoDumpConfig. +- Resolves: rhbz#1595129 +- Improved error reporting when using pvcreate in the vdo script to check + for pre-existing devices when creating a VDO volume. +- Resolves: rhbz#1557464 + +* Wed Jun 20 2018 - Andy Walsh - 6.1.1.99-2 +- Modified the vdo script to not allow creation of a VDO device on top of + an already running VDO device. +- Resolves: rhbz#1572640 +- Made the ordering of the output of vdo list stable. +- Resolves: rhbz#1589363 +- Added the proper dist tag +- Resolves: rhbz#1588043 + +* Fri May 11 2018 - Andy Walsh - 6.1.1.84-1 +- Improved and corrected man pages. +- Improved error handling in vdo script when stopping volumes in use. +- Resolves: rhbz#1511106 +- Modified the vdo script to return more specific error exit codes. +- Resolves: rhbz#1543954 +- Improved detection of existing formats when creating new volumes. +- Resolves: rhbz#1557464 +- Improved VDO Ansible testing playbooks. +- Fixed compilation errors on newer versions of GCC. +- Removed the --physical-size option to vdoformat since VDO now always uses + the entire device on which it resides. +- Modified vdo script to use /dev/disk/by-id to describe the location of + VDO volumes when possible. +- Fixed a bug where VDO would always be created with a dense index even + when a sparse index was requested. +- Resolves: rhbz#1570156 +- Modified the vdo script to accept decimal points or commas when + specifying the --indexMem option. +- Resolves: rhbz#1552146 +- 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. +- Resolves: rhbz#1564181 +- Modified the vdo script to require the --force option to remove a VDO + whose underlying device is not present. +- Resolves: rhbz#1535476 + +* Thu May 10 2018 - Andy Walsh - 6.1.1.24-1 +- Rebased to 6.1.1 branch from github +- Resolves: rhbz#1576701 +- Removed obsolete nagios module. +- Modified spec files to use systemd macros +- Resolves: rhbz#1531111 +- Updated the vdo.8 man page +- Resolves: rhbz#1547786 +- Improved some error messages + +* 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