From 8b1d1c509a881aef4ce67a5ea7a72952f3f26d65 Mon Sep 17 00:00:00 2001 From: Andrew Walsh Date: Tue, 1 Jun 2021 15:42:35 +0000 Subject: [PATCH] Initial build for EL9 (Version 8.1.0.1) Related: rhbz#1955374 --- .gitignore | 1 + fix_dmeventd_linking.patch | 12 ++ sources | 1 + vdo.spec | 242 +++++++++++++++++++++++++++++++++++++ 4 files changed, 256 insertions(+) create mode 100644 fix_dmeventd_linking.patch create mode 100644 sources create mode 100644 vdo.spec diff --git a/.gitignore b/.gitignore index e69de29..c09339c 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/vdo-1cf3a0b.tar.gz diff --git a/fix_dmeventd_linking.patch b/fix_dmeventd_linking.patch new file mode 100644 index 0000000..ddc30cf --- /dev/null +++ b/fix_dmeventd_linking.patch @@ -0,0 +1,12 @@ +diff -Naur vdo-eff92d15b7e223bc0ba93fddf1486cf771e7bf17.orig/utils/vdo/user/Makefile vdo-eff92d15b7e223bc0ba93fddf1486cf771e7bf17/utils/vdo/user/Makefile +--- vdo-eff92d15b7e223bc0ba93fddf1486cf771e7bf17.orig/utils/vdo/user/Makefile 2020-05-29 22:20:46.000000000 -0400 ++++ vdo-eff92d15b7e223bc0ba93fddf1486cf771e7bf17/utils/vdo/user/Makefile 2020-06-02 19:07:57.986213915 -0400 +@@ -151,7 +151,7 @@ + $(CC) $(LDFLAGS) $^ $(LDPRFLAGS) -o $@ + + vdoformat: LDPRFLAGS += "-lblkid" +-vdodmeventd: LDPRFLAGS += "-ldevmapper-event" ++vdodmeventd: LDPRFLAGS += -ldevmapper -ldevmapper-event + + ifneq ($(MAKECMDGOALS),clean) + DEPSOURCES = $(wildcard *.c) diff --git a/sources b/sources new file mode 100644 index 0000000..17700d7 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (vdo-1cf3a0b.tar.gz) = a8a46e15f455d1cdae2954eed70189a5df91c4e84276b431e290b4fce0a72b70c538155823425b83bb3e1c904defc05c7220bd5d606a6a095bd4715444bc2ce2 diff --git a/vdo.spec b/vdo.spec new file mode 100644 index 0000000..88140a9 --- /dev/null +++ b/vdo.spec @@ -0,0 +1,242 @@ +%global commit 1cf3a0b44e81d61d4a0ff8193211ad1297fefa69 +%global gittag 8.1.0.1 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +%define spec_release 1 +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 +URL: http://github.com/dm-vdo/vdo +Requires: lvm2 >= 2.03 +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: libblkid-devel +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 + +%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} sysconfdir=%{_sysconfdir} + +# Fix the python3 shebangs +for file in %{_bindir}/vdo \ + %{_bindir}/vdostats +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}/vdo-by-dev +%{_bindir}/vdostats +%{_bindir}/vdodmeventd +%{_bindir}/vdodumpconfig +%{_bindir}/vdoforcerebuild +%{_bindir}/vdoformat +%{_bindir}/vdosetuuid +%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 +%{_unitdir}/vdo-start-by-dev@.service +%{_presetdir}/97-vdo.preset +%dir %{_sysconfdir}/bash_completion.d +%{_sysconfdir}/bash_completion.d/vdostats +%{_sysconfdir}/bash_completion.d/vdo +%{_sysconfdir}/udev/rules.d/69-vdo-start-by-dev.rules +%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/vdostats.8.gz +%{_mandir}/man8/vdodmeventd.8.gz +%{_mandir}/man8/vdodumpconfig.8.gz +%{_mandir}/man8/vdoforcerebuild.8.gz +%{_mandir}/man8/vdoformat.8.gz +%{_mandir}/man8/vdosetuuid.8.gz + +%package support +Summary: Support tools for Virtual Data Optimizer +License: GPLv2 +Requires: libuuid >= 2.23 + +%description support +Virtual Data Optimizer (VDO) is a device mapper target that delivers +block-level deduplication, compression, and thin provisioning. + +This package provides the user-space support tools for VDO. + +%files support +%{_bindir}/vdoaudit +%{_bindir}/vdodebugmetadata +%{_bindir}/vdodumpblockmap +%{_bindir}/vdodumpmetadata +%{_bindir}/vdolistmetadata +%{_bindir}/vdoreadonly +%{_bindir}/vdoregenerategeometry +%{_mandir}/man8/vdoaudit.8.gz +%{_mandir}/man8/vdodebugmetadata.8.gz +%{_mandir}/man8/vdodumpblockmap.8.gz +%{_mandir}/man8/vdodumpmetadata.8.gz +%{_mandir}/man8/vdolistmetadata.8.gz +%{_mandir}/man8/vdoreadonly.8.gz +%{_mandir}/man8/vdoregenerategeometry.8.gz + +%changelog +* Tue May 04 2021 - Andy Walsh - 8.1.0.1-1 +- Initial build for EL9 +- Resolves: rhbz#1955374