import device-mapper-persistent-data-0.8.5-3.el8
This commit is contained in:
		
						commit
						3e20ed058f
					
				
							
								
								
									
										1
									
								
								.device-mapper-persistent-data.metadata
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.device-mapper-persistent-data.metadata
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| 250ac419422b2eb36a3de4af44d8d0a99aad8e69 SOURCES/v0.8.5.tar.gz | ||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| SOURCES/v0.8.5.tar.gz | ||||
							
								
								
									
										15
									
								
								SOURCES/device-mapper-persistent-data-avoid-strip.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								SOURCES/device-mapper-persistent-data-avoid-strip.patch
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||
| @ -0,0 +1,17 @@ | ||||
|  man8/thin_trim.txt | 3 --- | ||||
|  1 file changed, 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/man8/thin_trim.txt b/man8/thin_trim.txt
 | ||||
| index 1d24a06..e19d8bd 100644
 | ||||
| --- a/man8/thin_trim.txt
 | ||||
| +++ b/man8/thin_trim.txt
 | ||||
| @@ -12,9 +12,6 @@ DESCRIPTION
 | ||||
|  OPTIONS | ||||
|    -h, --help		Print help and exit. | ||||
|    -V, --version		Print version information and exit. | ||||
| -  --pool-inactive	Indicates you are aware the pool should be inactive.
 | ||||
| -
 | ||||
| -    Suppresses a warning message and prompt.
 | ||||
|   | ||||
|  SEE ALSO | ||||
|    thin_dump(8), thin_repair(8), thin_restore(8), thin_rmap(8), thin_metadata_size(8) | ||||
							
								
								
									
										77
									
								
								SOURCES/dmpd-tests-lib-bcache-rename-raise-raise_.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								SOURCES/dmpd-tests-lib-bcache-rename-raise-raise_.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | ||||
|  ft-lib/bcache.c | 16 ++++++++-------- | ||||
|  1 file changed, 8 insertions(+), 8 deletions(-) | ||||
| 
 | ||||
| diff --git a/ft-lib/bcache.c b/ft-lib/bcache.c
 | ||||
| index 0dca503..ee5b6c5 100644
 | ||||
| --- a/ft-lib/bcache.c
 | ||||
| +++ b/ft-lib/bcache.c
 | ||||
| @@ -31,7 +31,7 @@ static void warn(const char *fmt, ...)
 | ||||
|  } | ||||
|   | ||||
|  // FIXME: raise a condition somehow? | ||||
| -static void raise(const char *fmt, ...)
 | ||||
| +static void raise_(const char *fmt, ...)
 | ||||
|  { | ||||
|  	va_list ap; | ||||
|   | ||||
| @@ -51,7 +51,7 @@ static inline struct list_head *list_pop(struct list_head *head)
 | ||||
|  	struct list_head *l; | ||||
|   | ||||
|  	if (head->next == head) | ||||
| -		raise("list is empty\n");
 | ||||
| +		raise_("list is empty\n");
 | ||||
|   | ||||
|  	l = head->next; | ||||
|  	list_del(l); | ||||
| @@ -98,7 +98,7 @@ static struct cb_set *cb_set_create(unsigned nr)
 | ||||
|  static void cb_set_destroy(struct cb_set *cbs) | ||||
|  { | ||||
|  	if (!list_empty(&cbs->allocated)) | ||||
| -		raise("async io still in flight");
 | ||||
| +		raise_("async io still in flight");
 | ||||
|   | ||||
|  	free(cbs->vec); | ||||
|  	free(cbs); | ||||
| @@ -713,13 +713,13 @@ struct bcache *bcache_simple(const char *path, unsigned nr_cache_blocks)
 | ||||
|  	uint64_t s; | ||||
|   | ||||
|  	if (fd < 0) { | ||||
| -		raise("couldn't open cache file");
 | ||||
| +		raise_("couldn't open cache file");
 | ||||
|  		return NULL; | ||||
|  	} | ||||
|   | ||||
|  	r = fstat(fd, &info); | ||||
|  	if (r < 0) { | ||||
| -		raise("couldn't stat cache file");
 | ||||
| +		raise_("couldn't stat cache file");
 | ||||
|  		return NULL; | ||||
|  	} | ||||
|   | ||||
| @@ -751,7 +751,7 @@ void bcache_destroy(struct bcache *cache)
 | ||||
|  static void check_index(struct bcache *cache, block_address index) | ||||
|  { | ||||
|  	if (index >= cache->nr_data_blocks) | ||||
| -		raise("block out of bounds (%llu >= %llu)",
 | ||||
| +		raise_("block out of bounds (%llu >= %llu)",
 | ||||
|  		      (unsigned long long) index, | ||||
|  		      (unsigned long long) cache->nr_data_blocks); | ||||
|  } | ||||
| @@ -802,7 +802,7 @@ static struct block *lookup_or_read_block(struct bcache *cache,
 | ||||
|  		// FIXME: this is insufficient.  We need to also catch a read | ||||
|  		// lock of a write locked block.  Ref count needs to distinguish. | ||||
|  		if (b->ref_count && (flags & (GF_DIRTY | GF_ZERO))) | ||||
| -			raise("concurrent write lock attempt");
 | ||||
| +			raise_("concurrent write lock attempt");
 | ||||
|   | ||||
|  		if (test_flags(b, BF_IO_PENDING)) { | ||||
|  			miss(cache, flags); | ||||
| @@ -858,7 +858,7 @@ struct block *get_block(struct bcache *cache, block_address index, unsigned flag
 | ||||
|  		return b; | ||||
|  	} | ||||
|   | ||||
| -	raise("couldn't get block");
 | ||||
| +	raise_("couldn't get block");
 | ||||
|  	return NULL; | ||||
|  } | ||||
|   | ||||
| @ -0,0 +1,298 @@ | ||||
|  base/file_utils.cc                          |  4 ++-- | ||||
|  base/file_utils.h                           |  2 +- | ||||
|  caching/cache_repair.cc                     |  8 +++++++- | ||||
|  functional-tests/cache-functional-tests.scm | 32 ++++++++++++++++++++++++++--- | ||||
|  functional-tests/era-functional-tests.scm   |  4 ++-- | ||||
|  functional-tests/functional-tests.scm       |  4 ++-- | ||||
|  functional-tests/thin-functional-tests.scm  | 27 ++++++++++++++++++++++-- | ||||
|  thin-provisioning/thin_repair.cc            |  8 +++++++- | ||||
|  8 files changed, 75 insertions(+), 14 deletions(-) | ||||
| 
 | ||||
| diff --git a/base/file_utils.cc b/base/file_utils.cc
 | ||||
| index ba8957c..7883cfe 100644
 | ||||
| --- a/base/file_utils.cc
 | ||||
| +++ b/base/file_utils.cc
 | ||||
| @@ -66,13 +66,13 @@ file_utils::file_exists(string const &path) {
 | ||||
|  } | ||||
|   | ||||
|  void | ||||
| -file_utils::check_file_exists(string const &file) {
 | ||||
| +file_utils::check_file_exists(string const &file, bool must_be_regular_file) {
 | ||||
|  	struct stat info; | ||||
|  	int r = ::stat(file.c_str(), &info); | ||||
|  	if (r) | ||||
|  		throw runtime_error("Couldn't stat file"); | ||||
|   | ||||
| -	if (!S_ISREG(info.st_mode))
 | ||||
| +	if (must_be_regular_file && !S_ISREG(info.st_mode))
 | ||||
|  		throw runtime_error("Not a regular file"); | ||||
|  } | ||||
|   | ||||
| diff --git a/base/file_utils.h b/base/file_utils.h
 | ||||
| index 2ee20ab..3edcc9e 100644
 | ||||
| --- a/base/file_utils.h
 | ||||
| +++ b/base/file_utils.h
 | ||||
| @@ -10,7 +10,7 @@
 | ||||
|  namespace file_utils { | ||||
|  	int open_file(std::string const &path, int flags); | ||||
|  	bool file_exists(std::string const &path); | ||||
| -	void check_file_exists(std::string const &file);
 | ||||
| +	void check_file_exists(std::string const &file, bool must_be_regular_file = true);
 | ||||
|  	int create_block_file(std::string const &path, off_t file_size); | ||||
|  	int open_block_file(std::string const &path, off_t min_size, bool writeable, bool excl = true); | ||||
|  	uint64_t get_file_length(std::string const &file); | ||||
| diff --git a/caching/cache_repair.cc b/caching/cache_repair.cc
 | ||||
| index 9587d5f..8a837a8 100644
 | ||||
| --- a/caching/cache_repair.cc
 | ||||
| +++ b/caching/cache_repair.cc
 | ||||
| @@ -2,6 +2,7 @@
 | ||||
|  #include <getopt.h> | ||||
|  #include <libgen.h> | ||||
|   | ||||
| +#include "base/file_utils.h"
 | ||||
|  #include "base/output_file_requirements.h" | ||||
|  #include "caching/commands.h" | ||||
|  #include "caching/metadata.h" | ||||
| @@ -29,12 +30,17 @@ namespace {
 | ||||
|  	} | ||||
|   | ||||
|  	int repair(string const &old_path, string const &new_path) { | ||||
| +		bool metadata_touched = false;
 | ||||
|  		try { | ||||
| +			file_utils::check_file_exists(new_path, false);
 | ||||
| +			metadata_touched = true;
 | ||||
|  			metadata_dump(open_metadata_for_read(old_path), | ||||
|  				      output_emitter(new_path), | ||||
|  				      true); | ||||
|   | ||||
|  		} catch (std::exception &e) { | ||||
| +			if (metadata_touched)
 | ||||
| +				file_utils::zero_superblock(new_path);
 | ||||
|  			cerr << e.what() << endl; | ||||
|  			return 1; | ||||
|  		} | ||||
| @@ -110,7 +116,7 @@ cache_repair_cmd::run(int argc, char **argv)
 | ||||
|  		check_output_file_requirements(*output_path); | ||||
|   | ||||
|  	else { | ||||
| -		cerr << "no output file provided" << endl;
 | ||||
| +		cerr << "No output file provided." << endl;
 | ||||
|  		usage(cerr); | ||||
|  		return 1; | ||||
|  	} | ||||
| diff --git a/functional-tests/cache-functional-tests.scm b/functional-tests/cache-functional-tests.scm
 | ||||
| index 0e70b94..9b3a203 100644
 | ||||
| --- a/functional-tests/cache-functional-tests.scm
 | ||||
| +++ b/functional-tests/cache-functional-tests.scm
 | ||||
| @@ -15,6 +15,7 @@
 | ||||
|    (define-tool cache-dump) | ||||
|    (define-tool cache-restore) | ||||
|    (define-tool cache-metadata-size) | ||||
| +  (define-tool cache-repair)
 | ||||
|   | ||||
|    (define-syntax with-cache-xml | ||||
|      (syntax-rules () | ||||
| @@ -35,7 +36,8 @@
 | ||||
|      (syntax-rules () | ||||
|        ((_ (md) b1 b2 ...) | ||||
|         (with-temp-file-sized ((md "cache.bin" (to-bytes (meg 4)))) | ||||
| -         b1 b2 ...))))
 | ||||
| +         (system (fmt #f "dd if=/usr/bin/ls of=" md " bs=4096 > /dev/null 2>&1"))
 | ||||
| +           b1 b2 ...))))
 | ||||
|   | ||||
|    (define-syntax with-empty-metadata | ||||
|      (syntax-rules () | ||||
| @@ -180,7 +182,7 @@
 | ||||
|      "the input file can't be found" | ||||
|      (with-empty-metadata (md) | ||||
|        (run-fail-rcv (_ stderr) (cache-restore "-i no-such-file -o" md) | ||||
| -        (assert-superblock-untouched md)
 | ||||
| +        (assert-superblock-all-zeroes md)
 | ||||
|          (assert-starts-with "Couldn't stat file" stderr)))) | ||||
|   | ||||
|    (define-scenario (cache-restore garbage-input-file) | ||||
| @@ -188,7 +190,7 @@
 | ||||
|      (with-empty-metadata (md) | ||||
|        (with-temp-file-sized ((xml "cache.xml" 4096)) | ||||
|          (run-fail-rcv (_ stderr) (cache-restore "-i" xml "-o" md) | ||||
| -          (assert-superblock-untouched md)))))
 | ||||
| +          (assert-superblock-all-zeroes md)))))
 | ||||
|   | ||||
|    (define-scenario (cache-restore missing-output-file) | ||||
|      "the output file can't be found" | ||||
| @@ -354,4 +356,28 @@
 | ||||
|      (run-ok-rcv (stdout stderr) (cache-metadata-size "--nr-blocks 67108864") | ||||
|        (assert-equal "3678208 sectors" stdout) | ||||
|        (assert-eof stderr))) | ||||
| +
 | ||||
| +  ;;;-----------------------------------------------------------
 | ||||
| +  ;;; cache_repair scenarios
 | ||||
| +  ;;;-----------------------------------------------------------
 | ||||
| +  (define-scenario (cache-repair missing-input-file)
 | ||||
| +    "the input file can't be found"
 | ||||
| +    (with-empty-metadata (md)
 | ||||
| +      (run-fail-rcv (_ stderr) (cache-repair "-i no-such-file -o" md)
 | ||||
| +        (assert-superblock-all-zeroes md)
 | ||||
| +        (assert-starts-with "Couldn't stat path" stderr))))
 | ||||
| +
 | ||||
| +  (define-scenario (cache-repair garbage-input-file)
 | ||||
| +    "the input file is just zeroes"
 | ||||
| +    (with-empty-metadata (md1)
 | ||||
| +      (with-corrupt-metadata (md2)
 | ||||
| +        (run-fail-rcv (_ stderr) (cache-repair "-i" md1 "-o" md2)
 | ||||
| +          (assert-superblock-all-zeroes md2)))))
 | ||||
| +
 | ||||
| +  (define-scenario (cache-repair missing-output-file)
 | ||||
| +    "the output file can't be found"
 | ||||
| +    (with-cache-xml (xml)
 | ||||
| +      (run-fail-rcv (_ stderr) (cache-repair "-i" xml)
 | ||||
| +        (assert-starts-with "No output file provided." stderr))))
 | ||||
| +
 | ||||
|  ) | ||||
| diff --git a/functional-tests/era-functional-tests.scm b/functional-tests/era-functional-tests.scm
 | ||||
| index 373fe34..890f0ff 100644
 | ||||
| --- a/functional-tests/era-functional-tests.scm
 | ||||
| +++ b/functional-tests/era-functional-tests.scm
 | ||||
| @@ -153,7 +153,7 @@
 | ||||
|      "the input file can't be found" | ||||
|      (with-empty-metadata (md) | ||||
|        (run-fail-rcv (_ stderr) (era-restore "-i no-such-file -o" md) | ||||
| -        (assert-superblock-untouched md)
 | ||||
| +        (assert-superblock-all-zeroes md)
 | ||||
|          (assert-starts-with "Couldn't stat file" stderr)))) | ||||
|   | ||||
|    (define-scenario (era-restore garbage-input-file) | ||||
| @@ -161,7 +161,7 @@
 | ||||
|      (with-empty-metadata (md) | ||||
|        (with-temp-file-sized ((xml "era.xml" 4096)) | ||||
|          (run-fail-rcv (_ stderr) (era-restore "-i " xml "-o" md) | ||||
| -          (assert-superblock-untouched md)))))
 | ||||
| +          (assert-superblock-all-zeroes md)))))
 | ||||
|   | ||||
|    (define-scenario (era-restore output-unspecified) | ||||
|      "Fails if no metadata dev specified" | ||||
| diff --git a/functional-tests/functional-tests.scm b/functional-tests/functional-tests.scm
 | ||||
| index aa5b95c..758498e 100644
 | ||||
| --- a/functional-tests/functional-tests.scm
 | ||||
| +++ b/functional-tests/functional-tests.scm
 | ||||
| @@ -21,7 +21,7 @@
 | ||||
|      assert-eof | ||||
|      assert-starts-with | ||||
|      assert-matches | ||||
| -    assert-superblock-untouched
 | ||||
| +    assert-superblock-all-zeroes
 | ||||
|      assert-member? | ||||
|      assert-raises-thunk | ||||
|      assert-raises | ||||
| @@ -259,7 +259,7 @@
 | ||||
|                (loop (+ i 1)) | ||||
|                #f))))) | ||||
|   | ||||
| -  (define (assert-superblock-untouched md)
 | ||||
| +  (define (assert-superblock-all-zeroes md)
 | ||||
|      (with-bcache (cache md 1) | ||||
|        (with-block (b cache 0 (get-flags)) | ||||
|          (unless (all-zeroes? (block-data b) 4096) | ||||
| diff --git a/functional-tests/thin-functional-tests.scm b/functional-tests/thin-functional-tests.scm
 | ||||
| index d096b78..6bb7d24 100644
 | ||||
| --- a/functional-tests/thin-functional-tests.scm
 | ||||
| +++ b/functional-tests/thin-functional-tests.scm
 | ||||
| @@ -37,10 +37,12 @@
 | ||||
|             b1 b2 ...))))) | ||||
|   | ||||
|    ;;; It would be nice if the metadata was at least similar to valid data. | ||||
| +  ;;; Here I'm just using the start of the ls binary as 'random' data.
 | ||||
|    (define-syntax with-corrupt-metadata | ||||
|      (syntax-rules () | ||||
|        ((_ (md) b1 b2 ...) | ||||
|         (with-temp-file-sized ((md "thin.bin" (meg 4))) | ||||
| +         (system (fmt #f "dd if=/usr/bin/ls of=" md " bs=4096 > /dev/null 2>&1"))
 | ||||
|           b1 b2 ...)))) | ||||
|   | ||||
|    (define-syntax with-empty-metadata | ||||
| @@ -167,7 +169,7 @@
 | ||||
|      "the input file can't be found" | ||||
|      (with-empty-metadata (md) | ||||
|        (run-fail-rcv (_ stderr) (thin-restore "-i no-such-file -o" md) | ||||
| -        (assert-superblock-untouched md)
 | ||||
| +        (assert-superblock-all-zeroes md)
 | ||||
|          (assert-starts-with "Couldn't stat file" stderr)))) | ||||
|   | ||||
|    (define-scenario (thin-restore garbage-input-file) | ||||
| @@ -175,7 +177,7 @@
 | ||||
|      (with-empty-metadata (md) | ||||
|        (with-temp-file-sized ((xml "thin.xml" 4096)) | ||||
|          (run-fail-rcv (_ stderr) (thin-restore "-i " xml "-o" md) | ||||
| -          (assert-superblock-untouched md)))))
 | ||||
| +          (assert-superblock-all-zeroes md)))))
 | ||||
|   | ||||
|    (define-scenario (thin-restore missing-output-file) | ||||
|      "the output file can't be found" | ||||
| @@ -333,4 +335,25 @@
 | ||||
|        (with-empty-metadata (md) | ||||
|          (run-fail-rcv (_ stderr) (thin-repair "-i" xml "-o" md) | ||||
|            #t)))) | ||||
| +
 | ||||
| +  (define-scenario (thin-repair missing-input-file)
 | ||||
| +    "the input file can't be found"
 | ||||
| +    (with-empty-metadata (md)
 | ||||
| +      (run-fail-rcv (_ stderr) (thin-repair "-i no-such-file -o" md)
 | ||||
| +        (assert-superblock-all-zeroes md)
 | ||||
| +        (assert-starts-with "Couldn't stat file" stderr))))
 | ||||
| +
 | ||||
| +  (define-scenario (thin-repair garbage-input-file)
 | ||||
| +    "the input file is just zeroes"
 | ||||
| +    (with-empty-metadata (md1)
 | ||||
| +      (with-corrupt-metadata (md2)
 | ||||
| +        (run-fail-rcv (_ stderr) (thin-repair "-i " md1 "-o" md2)
 | ||||
| +          (assert-superblock-all-zeroes md2)))))
 | ||||
| +
 | ||||
| +  (define-scenario (thin-repair missing-output-file)
 | ||||
| +    "the output file can't be found"
 | ||||
| +    (with-thin-xml (xml)
 | ||||
| +      (run-fail-rcv (_ stderr) (thin-repair "-i " xml)
 | ||||
| +        (assert-starts-with "No output file provided." stderr))))
 | ||||
| +
 | ||||
|    ) | ||||
| diff --git a/thin-provisioning/thin_repair.cc b/thin-provisioning/thin_repair.cc
 | ||||
| index e22b193..0673753 100644
 | ||||
| --- a/thin-provisioning/thin_repair.cc
 | ||||
| +++ b/thin-provisioning/thin_repair.cc
 | ||||
| @@ -2,6 +2,7 @@
 | ||||
|  #include <getopt.h> | ||||
|  #include <libgen.h> | ||||
|   | ||||
| +#include "base/file_utils.h"
 | ||||
|  #include "base/output_file_requirements.h" | ||||
|  #include "persistent-data/file_utils.h" | ||||
|  #include "thin-provisioning/commands.h" | ||||
| @@ -17,15 +18,20 @@ using namespace thin_provisioning;
 | ||||
|   | ||||
|  namespace { | ||||
|  	int repair(string const &old_path, string const &new_path) { | ||||
| +		bool metadata_touched = false;
 | ||||
|  		try { | ||||
|  			// block size gets updated by the restorer | ||||
|  			block_manager<>::ptr new_bm = open_bm(new_path, block_manager<>::READ_WRITE); | ||||
| +			file_utils::check_file_exists(old_path, false);
 | ||||
| +			metadata_touched = true;
 | ||||
|  			metadata::ptr new_md(new metadata(new_bm, metadata::CREATE, 128, 0)); | ||||
|  			emitter::ptr e = create_restore_emitter(new_md); | ||||
|  			block_manager<>::ptr old_bm = open_bm(old_path, block_manager<>::READ_ONLY); | ||||
|  			metadata_repair(old_bm, e); | ||||
|   | ||||
|  		} catch (std::exception &e) { | ||||
| +			if (metadata_touched)
 | ||||
| +				file_utils::zero_superblock(new_path);
 | ||||
|  			cerr << e.what() << endl; | ||||
|  			return 1; | ||||
|  		} | ||||
| @@ -101,7 +107,7 @@ thin_repair_cmd::run(int argc, char **argv)
 | ||||
|  		check_output_file_requirements(*output_path); | ||||
|   | ||||
|  	else { | ||||
| -		cerr << "no output file provided" << endl;
 | ||||
| +		cerr << "No output file provided." << endl;
 | ||||
|  		usage(cerr); | ||||
|  		return 1; | ||||
|  	} | ||||
							
								
								
									
										342
									
								
								SPECS/device-mapper-persistent-data.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										342
									
								
								SPECS/device-mapper-persistent-data.spec
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,342 @@ | ||||
| # | ||||
| # Copyright (C) 2011-2017 Red Hat, Inc | ||||
| # | ||||
| 
 | ||||
| Summary: Device-mapper Persistent Data Tools | ||||
| Name: device-mapper-persistent-data | ||||
| Version: 0.8.5 | ||||
| Release: 3%{?dist} | ||||
| License: GPLv3+ | ||||
| Group: System Environment/Base | ||||
| URL: https://github.com/jthornber/thin-provisioning-tools | ||||
| #Source0: https://github.com/jthornber/thin-provisioning-tools/archive/thin-provisioning-tools-% {version}.tar.gz | ||||
| Source0: https://github.com/jthornber/thin-provisioning-tools/archive/v%{version}.tar.gz | ||||
| Patch0: device-mapper-persistent-data-avoid-strip.patch | ||||
| Patch1: dmpd-remove-pool-inactive-from-thin_trim-man-page.patch | ||||
| Patch2: dmpd-thin_repair-cache_repair-Check-input-file-exists-earlier.patch | ||||
| Patch3: dmpd-tests-lib-bcache-rename-raise-raise_.patch | ||||
| 
 | ||||
| BuildRequires: autoconf, expat-devel, libaio-devel, libstdc++-devel, boost-devel, gcc-c++ | ||||
| Requires: expat | ||||
| 
 | ||||
| %description | ||||
| thin-provisioning-tools contains check,dump,restore,repair,rmap | ||||
| and metadata_size tools to manage device-mapper thin provisioning | ||||
| target metadata devices; cache check,dump,metadata_size,restore | ||||
| and repair tools to manage device-mapper cache metadata devices | ||||
| are included and era check, dump, restore and invalidate to manage | ||||
| snapshot eras | ||||
| 
 | ||||
| %prep | ||||
| %setup -q -n thin-provisioning-tools-%{version} | ||||
| %patch0 -p1 -b .avoid_strip | ||||
| %patch1 -p1 -b .remove_pool_inactive_option | ||||
| %patch2 -p1 -b .check_input_file_erlier | ||||
| %patch3 -p1 -b .backup3 | ||||
| echo %{version}-%{release} > VERSION | ||||
| 
 | ||||
| %build | ||||
| autoconf | ||||
| %configure --with-optimisation= | ||||
| make %{?_smp_mflags} V= | ||||
| 
 | ||||
| %install | ||||
| make DESTDIR=%{buildroot} MANDIR=%{_mandir} install | ||||
| 
 | ||||
| %clean | ||||
| 
 | ||||
| %files | ||||
| %doc COPYING README.md | ||||
| %{_mandir}/man8/cache_check.8.gz | ||||
| %{_mandir}/man8/cache_dump.8.gz | ||||
| %{_mandir}/man8/cache_metadata_size.8.gz | ||||
| %{_mandir}/man8/cache_repair.8.gz | ||||
| %{_mandir}/man8/cache_restore.8.gz | ||||
| %{_mandir}/man8/cache_writeback.8.gz | ||||
| %{_mandir}/man8/era_check.8.gz | ||||
| %{_mandir}/man8/era_dump.8.gz | ||||
| %{_mandir}/man8/era_invalidate.8.gz | ||||
| %{_mandir}/man8/era_restore.8.gz | ||||
| %{_mandir}/man8/thin_check.8.gz | ||||
| %{_mandir}/man8/thin_delta.8.gz | ||||
| %{_mandir}/man8/thin_dump.8.gz | ||||
| %{_mandir}/man8/thin_ls.8.gz | ||||
| %{_mandir}/man8/thin_metadata_size.8.gz | ||||
| %{_mandir}/man8/thin_repair.8.gz | ||||
| %{_mandir}/man8/thin_restore.8.gz | ||||
| %{_mandir}/man8/thin_rmap.8.gz | ||||
| %{_mandir}/man8/thin_trim.8.gz | ||||
| %{_sbindir}/pdata_tools | ||||
| %{_sbindir}/cache_check | ||||
| %{_sbindir}/cache_dump | ||||
| %{_sbindir}/cache_metadata_size | ||||
| %{_sbindir}/cache_repair | ||||
| %{_sbindir}/cache_restore | ||||
| %{_sbindir}/cache_writeback | ||||
| %{_sbindir}/era_check | ||||
| %{_sbindir}/era_dump | ||||
| %{_sbindir}/era_invalidate | ||||
| %{_sbindir}/era_restore | ||||
| %{_sbindir}/thin_check | ||||
| %{_sbindir}/thin_delta | ||||
| %{_sbindir}/thin_dump | ||||
| %{_sbindir}/thin_ls | ||||
| %{_sbindir}/thin_metadata_size | ||||
| %{_sbindir}/thin_repair | ||||
| %{_sbindir}/thin_restore | ||||
| %{_sbindir}/thin_rmap | ||||
| %{_sbindir}/thin_trim | ||||
| #% {_sbindir}/thin_show_duplicates | ||||
| 
 | ||||
| %changelog | ||||
| * Wed Nov 27 2019 Marian Csontos <mcsontos@redhat.com> - 0.8.5-3 | ||||
| - Remove obsolete pool-inactive option from thin_trim man page. | ||||
| - Check input file exists eralier, and prevent writing incorrect metadata. | ||||
| 
 | ||||
| * Tue Jun 04 2019 Marian Csontos <mcsontos@redhat.com> - 0.8.5-2 | ||||
| - Bump release | ||||
| 
 | ||||
| * Tue Jun 04 2019 Marian Csontos <mcsontos@redhat.com> - 0.8.5-1 | ||||
| - Update to latest upstream version | ||||
| 
 | ||||
| * Tue Apr 24 2018 Marian Csontos <mcsontos@redhat.com> - 0.7.6-1 | ||||
| - Update to latest upstream version | ||||
| 
 | ||||
| * Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.5-3 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild | ||||
| 
 | ||||
| * Tue Jan 23 2018 Jonathan Wakely <jwakely@redhat.com> - 0.7.5-2 | ||||
| - Rebuilt for Boost 1.66 | ||||
| 
 | ||||
| * Tue Nov 14 2017 Marian Csontos <mcsontos@redhat.com> - 0.7.5-1 | ||||
| - Fix version 2 metadata corruption in cache_restore. | ||||
| 
 | ||||
| * Fri Oct 06 2017 Marian Csontos <mcsontos@redhat.com> - 0.7.3-1 | ||||
| - Update to latest bugfix and documentation update release. | ||||
| - *_restore tools wipe superblock as a last resort. | ||||
| - Add thin_check --override-mapping-root. | ||||
| 
 | ||||
| * Fri Sep 22 2017 Marian Csontos <mcsontos@redhat.com> - 0.7.2-1 | ||||
| - Update to latest upstream release including various bug fixes and new features. | ||||
| - Fix segfault when dump tools are given a tiny metadata file. | ||||
| - Fix -V exiting with 1. | ||||
| - Fix thin_check when running on XML dump instead of binary data. | ||||
| - Speed up free block searching. | ||||
| 
 | ||||
| * Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.0-0.6.rc6 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild | ||||
| 
 | ||||
| * Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.0-0.5.rc6 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild | ||||
| 
 | ||||
| * Mon Jul 03 2017 Jonathan Wakely <jwakely@redhat.com> - 0.7.0-0.4.rc6 | ||||
| - Rebuilt for Boost 1.64 | ||||
| 
 | ||||
| * Tue May 23 2017 Marian Csontos <mcsontos@redhat.com> - 0.7.0-0.3.rc6 | ||||
| - Rebuilt for mass rebuild incorrectly tagging master to .fc26 | ||||
| 
 | ||||
| * Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.0-0.2.rc6 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild | ||||
| 
 | ||||
| * Mon Mar 27 2017 Peter Rajnoha <prajnoha@redhat.com> - 0.7.0-0.1-rc6 | ||||
| - Don't open devices as writeable if --clear-needs-check-flag is not set. | ||||
| - Fix cache metadata format version 2 superblock packing. | ||||
| 
 | ||||
| * Wed Mar 22 2017 Peter Rajnoha <prajnoha@redhat.com> - 0.7.0-0.1-rc5 | ||||
| - Switch to a faster implementation of crc32 used for checksums. | ||||
| 
 | ||||
| * Tue Mar 21 2017 Peter Rajnoha <prajnoha@redhat.com> - 0.7.0-0.1-rc4 | ||||
| - Add support for cache metadata format version 2 in cache tools. | ||||
| 
 | ||||
| * Thu Mar 16 2017 Peter Rajnoha <prajnoha@redhat.com> - 0.7.0-0.1-rc3 | ||||
| - Fix compilation warnings and further code cleanup. | ||||
| 
 | ||||
| * Thu Mar 09 2017 Peter Rajnoha <prajnoha@redhat.com> - 0.7.0-0.1-rc2 | ||||
| - Update to latest upstream release including various bug fixes and new features. | ||||
| - New thin_show_duplicates command. | ||||
| - Add '--skip-mappings' and '--format custom' options to thin_dump. | ||||
| 
 | ||||
| * Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.3-3 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild | ||||
| 
 | ||||
| * Fri Jan 27 2017 Jonathan Wakely <jwakely@redhat.com> - 0.6.3-2 | ||||
| - Rebuilt for Boost 1.63 | ||||
| 
 | ||||
| * Thu Sep 22 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.3-1 | ||||
| - Preallocate output file for thin_repair and thin_restore. | ||||
| 
 | ||||
| * Mon Jul 11 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-1 | ||||
| - Fixes providing proper use of compiler flags. | ||||
| 
 | ||||
| * Mon Apr 11 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-0.1.rc8 | ||||
| - Fixes for thin_trim. | ||||
| 
 | ||||
| * Tue Mar 22 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-0.1.rc7 | ||||
| - Fixes for thin_repair. | ||||
| 
 | ||||
| * Wed Mar 09 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-0.1.rc6 | ||||
| - Add new fields to thin_ls: MAPPED_BYTES, EXCLUSIVE_BYTES and SHARED_BYTES. | ||||
| 
 | ||||
| * Thu Feb 18 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-0.1.rc5 | ||||
| - Fixes for thin_delta. | ||||
| 
 | ||||
| * Mon Feb 15 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-0.1.rc4 | ||||
| - Fix bug in mapping comparison while using thin_delta. | ||||
| 
 | ||||
| * Mon Feb 15 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-0.1.rc3 | ||||
| - Fix recent regression in thin_repair. | ||||
| - Force g++-98 dialect. | ||||
| 
 | ||||
| * Mon Feb 15 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.2-0.1.rc1 | ||||
| - Fix bug in thin_dump when using metadata snaps. | ||||
| 
 | ||||
| * Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.0-2 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild | ||||
| 
 | ||||
| * Wed Jan 20 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.6.0-1 | ||||
| - New thin_ls command. | ||||
| 
 | ||||
| * Wed Jan 20 2016 Peter Rajnoha <prajnoha@redhat.com> - 0.5.6-1 | ||||
| - era_invalidate may be run on live metadata if the --metadata-snap | ||||
|   option is given. | ||||
| 
 | ||||
| * Fri Jan 15 2016 Jonathan Wakely <jwakely@redhat.com> - 0.5.5-3 | ||||
| - Rebuilt for Boost 1.60 | ||||
| 
 | ||||
| * Thu Aug 27 2015 Jonathan Wakely <jwakely@redhat.com> - 0.5.5-2 | ||||
| - Rebuilt for Boost 1.59 | ||||
| 
 | ||||
| * Thu Aug 13 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.5-1 | ||||
| - Support thin_delta's --metadata_snap option without specifying snap location. | ||||
| - Update man pages to make it clearer that tools shoulnd't be run on live metadata. | ||||
| - Fix bugs in the metadata reference counting for thin_check. | ||||
| 
 | ||||
| * Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.4-3 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 | ||||
| 
 | ||||
| * Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 0.5.4-2 | ||||
| - rebuild for Boost 1.58 | ||||
| 
 | ||||
| * Fri Jul 17 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.4-1 | ||||
| - Fix cache_check with --clear-needs-check-flag option to | ||||
|   make sure metadata device is not open already by the tool | ||||
|   when open with O_EXCL mode is requested. | ||||
| 
 | ||||
| * Fri Jul 03 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.3-1 | ||||
| - Tools now open the metadata device in O_EXCL mode to stop | ||||
|   running the tools on active metadata. | ||||
| 
 | ||||
| * Fri Jul 03 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.2-1 | ||||
| - Fix bug in damage reporting in thin_dump and thin_check. | ||||
| 
 | ||||
| * Thu Jun 25 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.1-1 | ||||
| - Fix crash if tools are given a very large metadata device to restore to. | ||||
| 
 | ||||
| * Mon Jun 22 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.5.0-1 | ||||
| - Add space map checking for thin_check. | ||||
| - Add --clear-needs-check option for cache_check. | ||||
| - Update to latest upstream release. | ||||
| 
 | ||||
| * Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.2-2 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild | ||||
| 
 | ||||
| * Mon Jun 08 2015 Peter Rajnoha <prajnoha@redhat.com> - 0.4.2-1 | ||||
| - New thin_delta and thin_trim commands. | ||||
| - Update to latest upstream release. | ||||
| 
 | ||||
| * Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 0.4.1-4 | ||||
| - Rebuilt for GCC 5 C++11 ABI change | ||||
| 
 | ||||
| * Mon Jan 26 2015 Petr Machata <pmachata@redhat.com> - 0.4.1-3 | ||||
| - Rebuild for boost 1.57.0 | ||||
| 
 | ||||
| * Wed Oct 29 2014 Heinz Mauelshagen <heinzm@redhat.com> - 0.4.1-2 | ||||
| - Resolves: bz#1159466 | ||||
| 
 | ||||
| * Wed Oct 29 2014 Heinz Mauelshagen <heinzm@redhat.com> - 0.4.1-1 | ||||
| - New upstream version | ||||
| - Manual header additions/fixes | ||||
| 
 | ||||
| * Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.2-4 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild | ||||
| 
 | ||||
| * Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.2-3 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild | ||||
| 
 | ||||
| * Thu May 22 2014 Petr Machata <pmachata@redhat.com> - 0.3.2-2 | ||||
| - Rebuild for boost 1.55.0 | ||||
| 
 | ||||
| * Fri Apr 11 2014 Heinz Mauelshagen <heinzm@redhat.com> - 0.3.2-1 | ||||
| - New upstream version 0.3.2 fixing needs_check flag processing | ||||
| 
 | ||||
| * Thu Mar 27 2014 Heinz Mauelshagen <heinzm@redhat.com> - 0.3.0-1 | ||||
| - New upstream version 0.3.0 introducing era_{check,dump,invalidate} | ||||
| 
 | ||||
| * Fri Oct 18 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.8-1 | ||||
| - New upstream version 0.2.8 introducing cache_{check,dump,repair,restore} | ||||
| 
 | ||||
| * Tue Sep 17 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.7-1 | ||||
| - New upstream version 0.2.7 | ||||
| 
 | ||||
| * Wed Jul 31 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.3-1 | ||||
| - New upstream version | ||||
| 
 | ||||
| * Tue Jul 30 2013 Dennis Gilmore <dennis@ausil.us> - 0.2.2-2 | ||||
| - rebuild against boost 1.54.0 | ||||
| 
 | ||||
| * Tue Jul 30 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.2-1 | ||||
| - New upstream version | ||||
| - manual header fixes  | ||||
| 
 | ||||
| * Tue Jul 30 2013 Petr Machata <pmachata@redhat.com> - 0.2.1-6 | ||||
| - Rebuild for boost 1.54.0 | ||||
| 
 | ||||
| * Thu Jul 25 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.1-5 | ||||
| - enhance manual pages and fix typos | ||||
| 
 | ||||
| * Thu Jul 18 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.1-4 | ||||
| - Update thin_metadata_size manual page | ||||
| - thin_dump: support dumping default metadata snapshot | ||||
| 
 | ||||
| * Thu Jul 18 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.1-3 | ||||
| - New thin_metadata_size tool to estimate amount of metadata space | ||||
|   based on block size, pool size and maximum amount of thin devs and snapshots | ||||
| - support metadata snapshots in thin_dump tool | ||||
| - New man pages for thin_metadata_size, thin_repair and thin_rmap and man page fixes | ||||
| 
 | ||||
| * Tue Jul 16 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.1-2 | ||||
| - Build with nostrip fix from Ville Skyttä | ||||
| 
 | ||||
| * Mon Jul 15 2013 Ville Skyttä <ville.skytta@iki.fi> - 0.2.1-2 | ||||
| - Let rpmbuild strip binaries, don't override optflags, build more verbose. | ||||
| 
 | ||||
| * Fri Jul 12 2013 Heinz Mauelshagen <heinzm@redhat.com> - 0.2.1-1 | ||||
| - New upstream version. | ||||
| 
 | ||||
| * Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.4-3 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild | ||||
| 
 | ||||
| * Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.4-2 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild | ||||
| 
 | ||||
| * Thu Apr 19 2012 Milan Broz <mbroz@redhat.com> - 0.1.4-1 | ||||
| - Fix thin_check man page (add -q option). | ||||
| - Install utilities in /usr/sbin. | ||||
| 
 | ||||
| * Tue Mar 13 2012 Milan Broz <mbroz@redhat.com> - 0.1.2-1 | ||||
| - New upstream version. | ||||
| 
 | ||||
| * Mon Mar 05 2012 Milan Broz <mbroz@redhat.com> - 0.1.1-1 | ||||
| - Fix quiet option. | ||||
| 
 | ||||
| * Fri Mar 02 2012 Milan Broz <mbroz@redhat.com> - 0.1.0-1 | ||||
| - New upstream version. | ||||
| 
 | ||||
| * Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.1-3 | ||||
| - Rebuilt for c++ ABI breakage | ||||
| 
 | ||||
| * Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.0.1-2 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild | ||||
| 
 | ||||
| * Wed Dec 21 2011 Milan Broz <mbroz@redhat.com> - 0.0.1-1 | ||||
| - Initial version | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user