diff --git a/0000-device-mapper-persistent-data-avoid-strip.patch b/0000-device-mapper-persistent-data-avoid-strip.patch new file mode 100644 index 0000000000000000000000000000000000000000..6b3410e15406285ee905d6f16dc9970271cd0ae2 --- /dev/null +++ b/0000-device-mapper-persistent-data-avoid-strip.patch @@ -0,0 +1,15 @@ + Makefile.in | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 0aa9401..0f4f7cb 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -262,7 +262,6 @@ MANPAGES:=$(patsubst %,man8/%.8,$(TOOLS)) + install: bin/pdata_tools $(MANPAGES) + $(INSTALL_DIR) $(BINDIR) + $(INSTALL_PROGRAM) bin/pdata_tools $(BINDIR) +- $(STRIP) $(BINDIR)/pdata_tools + ln -s -f pdata_tools $(BINDIR)/cache_check + ln -s -f pdata_tools $(BINDIR)/cache_dump + ln -s -f pdata_tools $(BINDIR)/cache_metadata_size diff --git a/6000-build-Fix-static-build-by-including-contrib-Makefile.patch b/6000-build-Fix-static-build-by-including-contrib-Makefile.patch new file mode 100644 index 0000000000000000000000000000000000000000..d9defbd97d09b615e103c10ea843f88d80d72ea0 --- /dev/null +++ b/6000-build-Fix-static-build-by-including-contrib-Makefile.patch @@ -0,0 +1,47 @@ +From 2c9ee45c8c7836674194739a2bcc4bb4db08d27e Mon Sep 17 00:00:00 2001 +From: root +Date: Tue, 9 Apr 2019 21:27:36 +0800 +Subject: [PATCH 1/4] [build] Fix static build by including contrib/Makefile + early (#100) Closes: #99 + +--- + Makefile.in | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index df590b4..5e9f30a 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -29,6 +29,8 @@ endif + .PHONY: all + all: $(PROGRAMS) $(TESTLIBS) + ++include contrib/Makefile ++ + SOURCE=\ + base/output_file_requirements.cc \ + base/application.cc \ +@@ -140,10 +142,8 @@ CXX:=@CXX@ + STRIP:=@STRIP@ + OBJECTS:=$(subst .cc,.o,$(SOURCE)) + +-# FIXME EMITTERS += $(PLUGIN_LIBS) doesn't work, probably because it's empty at +-# the time of use? + ifeq ("@STATIC@", "yes") +-EMITTERS += contrib/*.a ++EMITTERS += $(PLUGIN_LIBS) + endif + + TOP_DIR:=@top_srcdir@ +@@ -318,8 +318,6 @@ endif + + .PHONY: install + +-include contrib/Makefile +- + ifeq ("@TESTING@", "yes") + include unit-tests/Makefile + +-- +2.19.1 + diff --git a/6001-restore_emitter-squash-a-strncpy-warning.patch b/6001-restore_emitter-squash-a-strncpy-warning.patch new file mode 100644 index 0000000000000000000000000000000000000000..3b5e475a5d70458c078306e2dfecc66cee7200d7 --- /dev/null +++ b/6001-restore_emitter-squash-a-strncpy-warning.patch @@ -0,0 +1,25 @@ +From 9b1acc658fdf5b066a2afc5324de8e3067fa5912 Mon Sep 17 00:00:00 2001 +From: root +Date: Tue, 9 Apr 2019 21:29:33 +0800 +Subject: [PATCH 2/4] [restore_emitter] squash a strncpy warning + +--- + caching/restore_emitter.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/caching/restore_emitter.cc b/caching/restore_emitter.cc +index b7a573f..5c30b9f 100644 +--- a/caching/restore_emitter.cc ++++ b/caching/restore_emitter.cc +@@ -26,7 +26,7 @@ namespace { + + superblock &sb = md_->sb_; + sb.version = metadata_version_; +- strncpy((char *) sb.policy_name, policy.c_str(), sizeof(sb.policy_name)); ++ strncpy((char *) sb.policy_name, policy.c_str(), sizeof(sb.policy_name) - 1); + memset(sb.policy_version, 0, sizeof(sb.policy_version)); // FIXME: should come from xml + sb.policy_hint_size = hint_width; + md_->setup_hint_array(hint_width); +-- +2.19.1 + diff --git a/6002-run_set-fix-invalid-iterator-operations-113.patch b/6002-run_set-fix-invalid-iterator-operations-113.patch new file mode 100644 index 0000000000000000000000000000000000000000..b58509d1ab245f52a4b061b70273afc8840cc500 --- /dev/null +++ b/6002-run_set-fix-invalid-iterator-operations-113.patch @@ -0,0 +1,34 @@ +From 5276bce4b8bca71cad36f48b309bdef23fac1134 Mon Sep 17 00:00:00 2001 +From: root +Date: Tue, 9 Apr 2019 21:33:29 +0800 +Subject: [PATCH 3/4] [run_set] fix invalid iterator operations (#113) + +--- + persistent-data/run_set.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/persistent-data/run_set.h b/persistent-data/run_set.h +index 68a5f46..6c23dc1 100644 +--- a/persistent-data/run_set.h ++++ b/persistent-data/run_set.h +@@ -64,13 +64,13 @@ namespace base { + + typename rset::const_iterator it = runs_.lower_bound(run(v)); + +- if (it->begin_ == v) ++ if (it != runs_.end() && it->begin_ == v) + return true; + +- it--; +- +- if (it != runs_.end()) ++ if (it != runs_.begin()) { ++ it--; + return it->contains(v); ++ } + + return false; + } +-- +2.19.1 + diff --git a/6003-space-map-disk-fix-the-search-range-117.patch b/6003-space-map-disk-fix-the-search-range-117.patch new file mode 100644 index 0000000000000000000000000000000000000000..84fd82dc68ebc1f334e64c3019bf8084b4b72d5c --- /dev/null +++ b/6003-space-map-disk-fix-the-search-range-117.patch @@ -0,0 +1,26 @@ +From 529a7cf3f5d5780d5e44c8508d2d42903672f7e8 Mon Sep 17 00:00:00 2001 +From: root +Date: Tue, 9 Apr 2019 21:36:22 +0800 +Subject: [PATCH 4/4] [space-map-disk] fix the search range (#117) + +--- + persistent-data/space-maps/disk.cc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/persistent-data/space-maps/disk.cc b/persistent-data/space-maps/disk.cc +index ce6a42c..d8db76f 100644 +--- a/persistent-data/space-maps/disk.cc ++++ b/persistent-data/space-maps/disk.cc +@@ -390,7 +390,8 @@ namespace { + + bitmap bm(tm_, ie, bitmap_validator_); + unsigned bit_begin = (index == begin_index) ? (begin % ENTRIES_PER_BLOCK) : 0; +- unsigned bit_end = (index == end_index - 1) ? (end % ENTRIES_PER_BLOCK) : ENTRIES_PER_BLOCK; ++ unsigned bit_end = (index == end_index - 1) ? ++ (end - ENTRIES_PER_BLOCK * index) : ENTRIES_PER_BLOCK; + + boost::optional maybe_b = bm.find_free(bit_begin, bit_end); + if (maybe_b) { +-- +2.19.1 + diff --git a/thin-provisioning-tools.spec b/thin-provisioning-tools.spec new file mode 100644 index 0000000000000000000000000000000000000000..0aea67e84a52feac0b09c0b76d44deda59b9b760 --- /dev/null +++ b/thin-provisioning-tools.spec @@ -0,0 +1,66 @@ +Name: thin-provisioning-tools +Version: 0.7.6 +Release: 4 +Summary: Tools for manipulating Device-mapper metadata +License: GPLv3+ +URL: https://github.com/jthornber/thin-provisioning-tools +Source0: https://github.com/jthornber/thin-provisioning-tools/archive/v%{version}.tar.gz +Patch0: 0000-device-mapper-persistent-data-avoid-strip.patch +Patch1: 6000-build-Fix-static-build-by-including-contrib-Makefile.patch +Patch2: 6001-restore_emitter-squash-a-strncpy-warning.patch +Patch3: 6002-run_set-fix-invalid-iterator-operations-113.patch +Patch4: 6003-space-map-disk-fix-the-search-range-117.patch + +BuildRequires: autoconf, expat-devel +BuildRequires: libaio-devel, libstdc++-devel +BuildRequires: boost-devel, gcc-c++ +Requires: expat +Provides: device-mapper-persistent-data +Obsoletes: device-mapper-persistent-data + +%description +A suite of tools for manipulating the metadata of the dm-thin, dm-cache and dm-era device-mapper targets. + +%package help +Summary: Including man files for thin-provisioning-tools +Requires: man +BuildArch: noarch +Provides: device-mapper-persistent-data-help +Obsoletes: device-mapper-persistent-data-help + +%description help +This contains man files for the using of thin-provisioning-tools + +%prep +%autosetup -n thin-provisioning-tools-%{version} -p1 +echo %{version}-%{release} > VERSION + +%build +autoconf +%configure --with-optimisation= +%make_build V= + +%install +make DESTDIR=%{buildroot} MANDIR=%{_mandir} install + +%files +%doc README.md +%license COPYING +%{_sbindir}/* +%exclude %{_sbindir}/thin_show_duplicates + +%files help +%{_mandir}/man*/* + +%changelog +* Fri Jan 10 2019 wangjufeng - 0.7.6-4 +- Type:enhancemnet +- ID:NA +- SUG:NA +- DESC:rename the package + +* Wed Sep 04 2019 wangjufeng - 0.7.6-3 +- Type:enhancemnet +- ID:NA +- SUG:NA +- DESC:openEuler Debranding diff --git a/v0.7.6.tar.gz b/v0.7.6.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..5d483bc0701e6cd4df6fc130d25df4be0d4d30b7 Binary files /dev/null and b/v0.7.6.tar.gz differ