commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2020-11-05 21:55:38 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new.11331 (New) Package is "duperemove" Thu Nov 5 21:55:38 2020 rev:26 rq:846202 version:0.11.2 Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2020-07-08 19:15:31.055644203 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new.11331/duperemove.changes 2020-11-05 21:56:26.515978860 +0100 @@ -1,0 +2,10 @@ +Thu Nov 5 07:38:15 UTC 2020 - Nikolay Borisov + +- Update to v0.11.2 + - Improved detection of hyperthreading + - Multiple minor fixes and cleanups + - Updated xxhash algorithm to latest release + - Fixed extent collision handling + - Fix overflow scanning in extents + +--- Old: duperemove-0.11.1.tar.gz New: duperemove-0.11.2.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.B8wG1a/_old 2020-11-05 21:56:27.103977538 +0100 +++ /var/tmp/diff_new_pack.B8wG1a/_new 2020-11-05 21:56:27.107977529 +0100 @@ -1,7 +1,7 @@ # # spec file for package duperemove # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,18 +12,18 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define samename btrfs-extent-same Name: duperemove -Version:0.11.1 +Version:0.11.2 Release:0 Summary:Software to find duplicate extents in files and remove them -License:GPL-2.0 +License:GPL-2.0-only Group: System/Filesystems -Url:https://github.com/markfasheh/duperemove +URL:https://github.com/markfasheh/duperemove Source: https://github.com/markfasheh/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildRequires: gcc-c++ BuildRequires: pkg-config ++ duperemove-0.11.1.tar.gz -> duperemove-0.11.2.tar.gz ++ 12541 lines of diff (skipped)
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2020-07-08 19:15:27 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new.3060 (New) Package is "duperemove" Wed Jul 8 19:15:27 2020 rev:25 rq:819289 version:0.11.1 Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2018-12-05 09:46:20.156512329 +0100 +++ /work/SRC/openSUSE:Factory/.duperemove.new.3060/duperemove.changes 2020-07-08 19:15:31.055644203 +0200 @@ -1,0 +2,5 @@ +Sun Jun 14 08:05:24 UTC 2020 - Martin Pluskal + +- Fix building with gcc10 + +--- Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.gTViFc/_old 2020-07-08 19:15:32.519649417 +0200 +++ /var/tmp/diff_new_pack.gTViFc/_new 2020-07-08 19:15:32.531649460 +0200 @@ -50,7 +50,7 @@ %if 0%{?suse_version} <= 1200 make %{?_smp_mflags} CFLAGS="%{optflags} -DNO_BTRFS_HEADER" %else -make %{?_smp_mflags} CFLAGS="%{optflags}" +make %{?_smp_mflags} CFLAGS="%{optflags} -fcommon" %endif %install
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2018-12-05 09:46:17 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new.19453 (New) Package is "duperemove" Wed Dec 5 09:46:17 2018 rev:24 rq:654118 version:0.11.1 Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2016-10-02 00:09:26.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new.19453/duperemove.changes 2018-12-05 09:46:20.156512329 +0100 @@ -1,0 +2,23 @@ +Tue Dec 4 20:59:22 UTC 2018 - mfas...@suse.com + +- Use source tarball from github + +--- +Fri Nov 30 22:04:37 UTC 2018 - mfas...@suse.com + +- Update to v0.11.1 + - Add 'quiet' mode - duperemove will only print errors and a +short summary of any dedupe. + - Revert block dedupe default, it is causing excessive +fragmentation on users systems. + +--- +Tue May 15 20:05:26 UTC 2018 - mfas...@suse.com + +- Update to v0.11 + - Fix a minor fd leak in hyperthreading detection code + - Clean up some typos in documentation + - Some build fixes + - Removed patch: v0.11.beta4_to_git_f95e429.patch + +--- Old: duperemove-0.11.beta4.tar.gz v0.11.beta4_to_git_f95e429.patch New: duperemove-0.11.1.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.ImSbI8/_old 2018-12-05 09:46:20.808511616 +0100 +++ /var/tmp/diff_new_pack.ImSbI8/_new 2018-12-05 09:46:20.812511612 +0100 @@ -1,7 +1,7 @@ # # spec file for package duperemove # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,14 +18,13 @@ %define samename btrfs-extent-same Name: duperemove -Version:0.11.beta4 +Version:0.11.1 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 Group: System/Filesystems Url:https://github.com/markfasheh/duperemove Source: https://github.com/markfasheh/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz -Patch1: v0.11.beta4_to_git_f95e429.patch BuildRequires: gcc-c++ BuildRequires: pkg-config BuildRequires: pkgconfig(glib-2.0) @@ -46,7 +45,6 @@ %prep %setup -q -%patch1 -p1 %build %if 0%{?suse_version} <= 1200 ++ duperemove-0.11.beta4.tar.gz -> duperemove-0.11.1.tar.gz ++ 1936 lines of diff (skipped)
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2016-10-02 00:09:24 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is "duperemove" Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2016-09-30 15:33:46.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2016-10-02 00:09:26.0 +0200 @@ -1,0 +2,8 @@ +Fri Sep 30 20:05:02 UTC 2016 - m...@fasheh.com + +- Update to v0.11.beta4 git commit f95e429 + * Use proper len of tail blocks during block dedupe + * run_dedupe: avoid size_list corruption in push_blocks() + - Added patch: v0.11.beta4_to_git_f95e429.patch + +--- New: v0.11.beta4_to_git_f95e429.patch Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.Hshouv/_old 2016-10-02 00:09:27.0 +0200 +++ /var/tmp/diff_new_pack.Hshouv/_new 2016-10-02 00:09:27.0 +0200 @@ -25,6 +25,7 @@ Group: System/Filesystems Url:https://github.com/markfasheh/duperemove Source: https://github.com/markfasheh/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch1: v0.11.beta4_to_git_f95e429.patch BuildRequires: gcc-c++ BuildRequires: pkg-config BuildRequires: pkgconfig(glib-2.0) @@ -45,6 +46,7 @@ %prep %setup -q +%patch1 -p1 %build %if 0%{?suse_version} <= 1200 ++ v0.11.beta4_to_git_f95e429.patch ++ f95e429 Use proper len of tail blocks during block dedupe 02f5a09 run_dedupe: avoid size_list corruption in push_blocks() diff --git a/hash-tree.c b/hash-tree.c index 82a48d1..9ab9482 100644 --- a/hash-tree.c +++ b/hash-tree.c @@ -353,6 +353,7 @@ int remove_hashed_block(struct hash_tree *tree, if (head && list_empty(>h_blocks)) free_one_hash_head(blocklist, head); + abort_on(blocklist->dl_num_elem == 0); blocklist->dl_num_elem--; if (blocklist->dl_num_elem == 0) { rb_erase(>dl_node, >root); diff --git a/run_dedupe.c b/run_dedupe.c index b219201..5c344c5 100644 --- a/run_dedupe.c +++ b/run_dedupe.c @@ -512,7 +512,7 @@ static void free_bdl(struct block_dedupe_list *bdl); static int __block_dedupe(struct block_dedupe_list *bdl, struct results_tree *res, struct filerec *tgt_file, - uint64_t tgt_off, + uint64_t tgt_off, uint64_t tgt_len, uint64_t *fiemap_bytes, uint64_t *kern_bytes, unsigned long long passno) { @@ -523,7 +523,7 @@ static int __block_dedupe(struct block_dedupe_list *bdl, if (tgt_file) { /* Insert this first so it gets picked as target. */ ret = insert_one_result(res, bdl->bd_hash, tgt_file, tgt_off, - blocksize); + tgt_len); if (ret) return ret; @@ -548,7 +548,7 @@ static int __block_dedupe(struct block_dedupe_list *bdl, } ret = insert_one_result(res, bdl->bd_hash, block->b_file, - block->b_loff, blocksize); + block->b_loff, block_len(block)); if (ret) goto out; } @@ -587,21 +587,24 @@ out: */ static void pick_target_files(struct block_dedupe_list *bdl, struct filerec **tgt1, uint64_t *loff1, - struct filerec **tgt2, uint64_t *loff2) + uint64_t *tlen1, struct filerec **tgt2, + uint64_t *loff2, uint64_t *tlen2) { struct filerec *file1, *file2; - uint64_t off1, off2; + uint64_t off1, off2, len1, len2; struct file_block *block; file1 = file2 = NULL; - off1 = off2 = 0; + off1 = off2 = len1 = len2 = 0; list_for_each_entry(block, >bd_block_list, b_list) { if (!file1) { file1 = block->b_file; off1 = block->b_loff; + len1 = block_len(block); } else if (file1 != block->b_file) { file2 = block->b_file; off2 = block->b_loff; + len2 = block_len(block); } if (file1 && file2) @@ -612,6 +615,8 @@ static void pick_target_files(struct block_dedupe_list *bdl, *tgt2 = file2; *loff1 = off1;
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2016-09-30 15:33:42 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is "duperemove" Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2016-09-17 14:41:02.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2016-09-30 15:33:46.0 +0200 @@ -1,0 +2,8 @@ +Tue Sep 27 20:41:37 UTC 2016 - mfas...@suse.com + +- Update to duperemove v0.11.beta4 + - Many man page and FAQ updates + - Much lower memory usage (changed to use block-dedupe by default) + - removed unused sha256 module + +--- Old: duperemove-0.11.beta3.tar.gz New: duperemove-0.11.beta4.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.vjmTGT/_old 2016-09-30 15:33:47.0 +0200 +++ /var/tmp/diff_new_pack.vjmTGT/_new 2016-09-30 15:33:47.0 +0200 @@ -18,7 +18,7 @@ %define samename btrfs-extent-same Name: duperemove -Version:0.11.beta3 +Version:0.11.beta4 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 @@ -63,7 +63,7 @@ %files %defattr(-, root, root) -%doc LICENSE README.md FAQ.md +%doc LICENSE README.md %{_sbindir}/duperemove %{_sbindir}/hashstats %{_sbindir}/show-shared-extents ++ duperemove-0.11.beta3.tar.gz -> duperemove-0.11.beta4.tar.gz ++ 4534 lines of diff (skipped)
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2016-09-17 14:41:00 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is "duperemove" Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2016-09-11 00:55:07.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2016-09-17 14:41:02.0 +0200 @@ -1,0 +2,8 @@ +Fri Sep 16 19:49:06 UTC 2016 - mfas...@suse.com + +- Update to duperemove v0.11.beta3 + - Bugfixes + - Large (2.5x) performance improvement to find dupes stage + - Added '--cpu-threads' for user control of cpu bound tasks + +--- Old: duperemove-0.11.beta2.tar.gz New: duperemove-0.11.beta3.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.fXBCzF/_old 2016-09-17 14:41:03.0 +0200 +++ /var/tmp/diff_new_pack.fXBCzF/_new 2016-09-17 14:41:03.0 +0200 @@ -18,7 +18,7 @@ %define samename btrfs-extent-same Name: duperemove -Version:0.11.beta2 +Version:0.11.beta3 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 @@ -33,8 +33,8 @@ %description Duperemove finds duplicate extents in files and prints them to the -console. It also has the option to remove duplicates on those file -systems which support the btrfs-extent-same ioctl. +console. It also has the option to deduplicate extents on those file +systems which support the Linux extent-same ioctl. %package -n %{samename} Summary:Debug/Test tool to exercise the btrfs out-of-band deduplication ioctl ++ duperemove-0.11.beta2.tar.gz -> duperemove-0.11.beta3.tar.gz ++ 1763 lines of diff (skipped)
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2016-09-11 00:55:05 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is "duperemove" Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2016-08-13 18:31:07.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2016-09-11 00:55:07.0 +0200 @@ -1,0 +2,35 @@ +Fri Sep 9 21:39:39 UTC 2016 - mfas...@suse.com + +- Update to duperemove v0.11.beta2 + - Many bugfixes + - Improved dedupe coverage with better extent selection algorithm + - Improved (easier to read) output for csum stage + - Progress counter added for dedupe stage + - Removed patch v0.11.beta1_to_git_d4b9818.patch + - Removed patch v0.11-d4b9818_to_82234f5.patch + +--- +Fri Aug 26 20:02:21 UTC 2016 - mfas...@suse.com + +- Update to v0.11.beta1 git commit 82234f5 + - Set file->dedupe_seq if we drop out in add_file_db() + - add_file_db(): collapse all cases of ino/subvol/filename being +different + - Simplify the logic in add_file_db() + - add_file_db(): check for same filename in filerec table + - Store filerecs in a tree by filename + +--- +Wed Aug 24 19:25:45 UTC 2016 - mfas...@suse.com + +- Update to git commit d4b9818: + - Set scan flag on renamed file + - Remove db record if a file was renamed + - More vprints in add_file_db() + - Fix confused error handling in dbfile_load_one_filerec() + - Return 0 if user specified --help + - Don't list '-?' as a valid option + - add_file_db() Properly account for __add_file() skipping a file + - Add hashstats to the man page + +--- Old: duperemove-0.11.beta1.tar.gz New: duperemove-0.11.beta2.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.T3v4Na/_old 2016-09-11 00:55:08.0 +0200 +++ /var/tmp/diff_new_pack.T3v4Na/_new 2016-09-11 00:55:08.0 +0200 @@ -18,7 +18,7 @@ %define samename btrfs-extent-same Name: duperemove -Version:0.11.beta1 +Version:0.11.beta2 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 ++ duperemove-0.11.beta1.tar.gz -> duperemove-0.11.beta2.tar.gz ++ 2964 lines of diff (skipped)
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2016-08-13 18:31:01 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is "duperemove" Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2016-04-08 09:39:31.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2016-08-13 18:31:07.0 +0200 @@ -1,0 +2,11 @@ +Fri Aug 12 23:03:06 UTC 2016 - mfas...@suse.com + +- Update to duperemove v0.11.beta1 + - Greatly increased performance during extent search + - Hashfiles are reusable now, Duperemove will only scan files which have +changed since the last time it was run. + - Better selection of target extent during dedupe +- reduces fragmentation of deduped space + - Support for dedupe on xfs (experimental) + +--- Old: duperemove-0.10.tar.gz New: duperemove-0.11.beta1.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.WH9kPD/_old 2016-08-13 18:31:08.0 +0200 +++ /var/tmp/diff_new_pack.WH9kPD/_new 2016-08-13 18:31:08.0 +0200 @@ -18,7 +18,7 @@ %define samename btrfs-extent-same Name: duperemove -Version:0.10 +Version:0.11.beta1 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2016-04-08 09:39:29 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is "duperemove" Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2015-10-14 16:45:24.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2016-04-08 09:39:31.0 +0200 @@ -1,0 +2,7 @@ +Sat Apr 2 13:43:23 UTC 2016 - mplus...@suse.com + +- Use pretty name for tarball +- Cleanup spec file with spec-cleaner +- Use pkgconfig style dependnencies + +--- Old: v0.10.tar.gz New: duperemove-0.10.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.NehQmQ/_old 2016-04-08 09:39:32.0 +0200 +++ /var/tmp/diff_new_pack.NehQmQ/_new 2016-04-08 09:39:32.0 +0200 @@ -1,7 +1,7 @@ # # spec file for package duperemove # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,7 +16,6 @@ # -%define tar_version 0.10 %define samename btrfs-extent-same Name: duperemove Version:0.10 @@ -25,10 +24,11 @@ License:GPL-2.0 Group: System/Filesystems Url:https://github.com/markfasheh/duperemove -Source: https://github.com/markfasheh/%{name}/archive/v%{tar_version}.tar.gz +Source: https://github.com/markfasheh/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildRequires: gcc-c++ -BuildRequires: glib2-devel -BuildRequires: sqlite3-devel +BuildRequires: pkg-config +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(sqlite3) BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -44,27 +44,22 @@ Debug/Test tool to exercise a btrfs ioctl for deduplicating file regions. %prep -%setup -q -n %{name}-%{tar_version} -# Set the destdir / prefix -sed -i \ --e 's:DESTDIR =:DESTDIR ?=:g' \ --e 's:%{_prefix}/local:/usr:g' \ -Makefile +%setup -q %build -%if %suse_version <= 1200 +%if 0%{?suse_version} <= 1200 make %{?_smp_mflags} CFLAGS="%{optflags} -DNO_BTRFS_HEADER" %else make %{?_smp_mflags} CFLAGS="%{optflags}" %endif %install -%make_install +%make_install PREFIX="%{_prefix}" %files -n %{samename} %defattr(-, root, root) %{_sbindir}/%{samename} -%{_mandir}/man?/%{samename}.8.* +%{_mandir}/man?/%{samename}.8%{ext_man} %files %defattr(-, root, root) @@ -72,8 +67,8 @@ %{_sbindir}/duperemove %{_sbindir}/hashstats %{_sbindir}/show-shared-extents -%{_mandir}/man?/%{name}.8.* -%{_mandir}/man?/hashstats.8.* -%{_mandir}/man?/show-shared-extents.8.* +%{_mandir}/man?/%{name}.8%{ext_man} +%{_mandir}/man?/hashstats.8%{ext_man} +%{_mandir}/man?/show-shared-extents.8%{ext_man} %changelog
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2015-10-14 16:45:23 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is "duperemove" Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2015-07-19 11:45:47.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2015-10-14 16:45:24.0 +0200 @@ -1,0 +2,9 @@ +Fri Oct 9 22:37:04 UTC 2015 - mfas...@suse.com + +- Update to duperemove v0.10 + - Documentation updates for latest stable version +- document --fdupes mode in manpage +- update man page headers +- update FAQ + +--- Old: v0.10.beta4.tar.gz New: v0.10.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.DXPmeB/_old 2015-10-14 16:45:25.0 +0200 +++ /var/tmp/diff_new_pack.DXPmeB/_new 2015-10-14 16:45:25.0 +0200 @@ -16,10 +16,10 @@ # -%define tar_version 0.10.beta4 +%define tar_version 0.10 %define samename btrfs-extent-same Name: duperemove -Version:0.10.beta4 +Version:0.10 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 ++ v0.10.beta4.tar.gz -> v0.10.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.10.beta4/FAQ.md new/duperemove-0.10/FAQ.md --- old/duperemove-0.10.beta4/FAQ.md2015-07-16 22:52:51.0 +0200 +++ new/duperemove-0.10/FAQ.md 2015-10-10 00:13:34.0 +0200 @@ -2,12 +2,15 @@ ### Is there an upper limit to the amount of data duperemove can process? -v0.08 of duperemove has been tested on small numbers of VMS or iso -files (5-10) it can probably scale up to 50 or so. +Duperemove v0.10 is fast at reading and cataloging data. Dedupe runs +will be memory limited unless the '--hashfile' option is used. '--hashfile' +allows duperemove to temporarily store duplicated hashes to disk, thus removing +the large memory overhead and allowing for a far larger amount of data to be +scanned and deduped. Realistically though you will be limited by the speed of +your disks and cpu. -v0.09 is much faster at hashing and cataloging extents and therefore -can handle a larger data set. My own testing is typically with a -filesystem of about 750 gigabytes and millions of files. +Actual performance numbers are dependent on hardware - up to date +testing information is kept [on the wiki](https://github.com/markfasheh/duperemove/wiki/Performance-Numbers) ### Why does it not print out all duplicate extents? @@ -20,11 +23,14 @@ ### How can I find out my space savings after a dedupe? Duperemove will print out an estimate of the saved space after a -dedupe operation for you. You can also do a df before the dedupe -operation, then a df about 60 seconds after the operation. It is -common for btrfs space reporting to be 'behind' while delayed updates -get processed, so an immediate df after deduping might not show any -savings. +dedupe operation for you. + +You can get a more accurate picture by running 'btrfs fi df' before +and after each duperemove run. + +Be careful about using the 'df' tool on btrfs - it is common for space +reporting to be 'behind' while delayed updates get processed, so an +immediate df after deduping might not show any savings. ### Why is the total deduped data report an estimate? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.10.beta4/Makefile new/duperemove-0.10/Makefile --- old/duperemove-0.10.beta4/Makefile 2015-07-16 22:52:51.0 +0200 +++ new/duperemove-0.10/Makefile2015-10-10 00:13:34.0 +0200 @@ -1,4 +1,4 @@ -VER=0.10.beta4 +VER=0.10 RELEASE=v$(VER) CC = gcc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.10.beta4/README.md new/duperemove-0.10/README.md --- old/duperemove-0.10.beta4/README.md 2015-07-16 22:52:51.0 +0200 +++ new/duperemove-0.10/README.md 2015-10-10 00:13:34.0 +0200 @@ -1,7 +1,3 @@ -This README is for the development branch of duperemove. If you're looking -for a stable version which is continually updated with fixes, please see -[v0.09 branch](https://github.com/markfasheh/duperemove/tree/v0.09-branch). - # Duperemove Duperemove is a simple tool for finding duplicated extents and @@ -50,7 +46,7 @@ # Requirements -The latest stable code can be found in
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2015-07-19 11:45:46 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2015-07-14 17:45:19.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2015-07-19 11:45:47.0 +0200 @@ -1,0 +2,6 @@ +Thu Jul 16 21:45:34 UTC 2015 - mfas...@suse.com + +- Update to duperemove v0.10.beta4 + - Better memory usage with hashstats utility + +--- Old: v0.10.beta3.tar.gz New: v0.10.beta4.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.JjD2Cz/_old 2015-07-19 11:45:48.0 +0200 +++ /var/tmp/diff_new_pack.JjD2Cz/_new 2015-07-19 11:45:48.0 +0200 @@ -16,10 +16,10 @@ # -%define tar_version 0.10.beta3 +%define tar_version 0.10.beta4 %define samename btrfs-extent-same Name: duperemove -Version:0.10.beta3 +Version:0.10.beta4 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 @@ -28,7 +28,6 @@ Source: https://github.com/markfasheh/%{name}/archive/v%{tar_version}.tar.gz BuildRequires: gcc-c++ BuildRequires: glib2-devel -BuildRequires: libgcrypt-devel BuildRequires: sqlite3-devel BuildRoot: %{_tmppath}/%{name}-%{version}-build ++ v0.10.beta3.tar.gz - v0.10.beta4.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.10.beta3/Makefile new/duperemove-0.10.beta4/Makefile --- old/duperemove-0.10.beta3/Makefile 2015-07-10 09:46:56.0 +0200 +++ new/duperemove-0.10.beta4/Makefile 2015-07-16 22:52:51.0 +0200 @@ -1,4 +1,4 @@ -VER=0.10.beta3 +VER=0.10.beta4 RELEASE=v$(VER) CC = gcc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.10.beta3/dbfile.c new/duperemove-0.10.beta4/dbfile.c --- old/duperemove-0.10.beta3/dbfile.c 2015-07-10 09:46:56.0 +0200 +++ new/duperemove-0.10.beta4/dbfile.c 2015-07-16 22:52:51.0 +0200 @@ -21,7 +21,8 @@ #define DB_FILE_MAJOR 1 #define DB_FILE_MINOR 2 -static sqlite3 *gdb = NULL; +/* exported for hashstats.c */ +sqlite3 *gdb = NULL; #if (SQLITE_VERSION_NUMBER 3007015) #defineperror_sqlite(_err, _why) \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.10.beta3/hashstats.c new/duperemove-0.10.beta4/hashstats.c --- old/duperemove-0.10.beta3/hashstats.c 2015-07-10 09:46:56.0 +0200 +++ new/duperemove-0.10.beta4/hashstats.c 2015-07-16 22:52:51.0 +0200 @@ -33,6 +33,8 @@ #include bswap.h +extern sqlite3 *gdb; + int verbose = 0, debug = 0; unsigned int blocksize; static int version_only = 0; @@ -41,144 +43,212 @@ static int num_to_print = 10; static int print_file_list = 0; static char *serialize_fname = NULL; -static struct rb_root by_size = RB_ROOT; +static uint64_t disk_files, disk_hashes; -static int cmp(struct dupe_blocks_list *tmp, struct dupe_blocks_list *dups) -{ - if (tmp-dl_num_elem dups-dl_num_elem) - return -1; - else if (tmp-dl_num_elem dups-dl_num_elem) - return 1; - return memcmp(dups-dl_hash, tmp-dl_hash, digest_len); -} +static sqlite3_stmt *top_hashes_stmt = NULL; +static sqlite3_stmt *files_count_stmt = NULL; +static sqlite3_stmt *find_blocks_stmt = NULL; -static void insert_by_size(struct dupe_blocks_list *dups) +static int prepare_statements(void) { - struct rb_node **p = by_size.rb_node; - struct rb_node *parent = NULL; - struct dupe_blocks_list *tmp; int ret; - while (*p) { - parent = *p; - - tmp = rb_entry(parent, struct dupe_blocks_list, dl_by_size); +#defineFIND_TOP_HASHES \ +select digest, count(digest) from hashes group by digest having (count(digest) 1) order by (count(digest)) desc; + ret = sqlite3_prepare_v2(gdb, FIND_TOP_HASHES, -1, top_hashes_stmt, +NULL); + if (ret) { + fprintf(stderr, error %d while prepping hash search stmt: %s\n, + ret, sqlite3_errstr(ret)); + return ret; + } - ret = cmp(tmp, dups); - if (ret 0) - p = (*p)-rb_left; -
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2015-07-14 17:44:03 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2015-04-07 09:30:26.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2015-07-14 17:45:19.0 +0200 @@ -1,0 +2,20 @@ +Fri Jul 10 19:53:46 UTC 2015 - mfas...@suse.com + +- Update to duperemove v0.10.beta3 + - fixes many crashes in the dedupe stage + - fixed an issue with our alignment function which would throw dedupe into +a loop + - improvements to output formatting + - better logic when throwing out already-deduped extents won't give as +many false positives + +--- +Tue Jun 30 06:21:21 UTC 2015 - mfas...@suse.com + +- Update to duperemove v0.10.beta2 + - multi-threaded dedupe stage (increased performance) + - hashfile mode for drastically improved memory consumption + - now uses murmur3 hash internally for improved cpu usage + - can now take input from 'fdupes' + +--- Old: v0.09.3.tar.gz New: v0.10.beta3.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.o80Kms/_old 2015-07-14 17:45:20.0 +0200 +++ /var/tmp/diff_new_pack.o80Kms/_new 2015-07-14 17:45:20.0 +0200 @@ -16,10 +16,10 @@ # -%define tar_version 0.09.3 +%define tar_version 0.10.beta3 %define samename btrfs-extent-same Name: duperemove -Version:0.09.3 +Version:0.10.beta3 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 @@ -29,6 +29,7 @@ BuildRequires: gcc-c++ BuildRequires: glib2-devel BuildRequires: libgcrypt-devel +BuildRequires: sqlite3-devel BuildRoot: %{_tmppath}/%{name}-%{version}-build %description
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2015-04-07 09:30:10 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2015-03-27 09:41:50.0 +0100 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2015-04-07 09:30:26.0 +0200 @@ -1,0 +2,13 @@ +Mon Apr 6 19:45:42 UTC 2015 - mfas...@suse.com + +- Update with correct tarball (last one didn't have version number bump) + +--- +Mon Apr 6 19:14:50 UTC 2015 - mfas...@suse.com + +- Update to duperemove v0.09.3 + - Fix hang during file scan phase (bsc#926098) + +- References: bsc#926098 + +--- Old: v0.09.2.tar.gz New: v0.09.3.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.g7X4Bf/_old 2015-04-07 09:30:27.0 +0200 +++ /var/tmp/diff_new_pack.g7X4Bf/_new 2015-04-07 09:30:27.0 +0200 @@ -16,10 +16,10 @@ # -%define tar_version 0.09.2 +%define tar_version 0.09.3 %define samename btrfs-extent-same Name: duperemove -Version:0.09.2 +Version:0.09.3 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 ++ v0.09.2.tar.gz - v0.09.3.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.09.2/Makefile new/duperemove-0.09.3/Makefile --- old/duperemove-0.09.2/Makefile 2015-03-26 23:51:34.0 +0100 +++ new/duperemove-0.09.3/Makefile 2015-04-06 21:40:43.0 +0200 @@ -1,4 +1,4 @@ -VER=0.09.2 +VER=0.09.3 RELEASE=v$(VER) CC = gcc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.09.2/duperemove.c new/duperemove-0.09.3/duperemove.c --- old/duperemove-0.09.2/duperemove.c 2015-03-26 23:51:34.0 +0100 +++ new/duperemove-0.09.3/duperemove.c 2015-04-06 21:40:43.0 +0200 @@ -54,7 +54,7 @@ #if GLIB_CHECK_VERSION(2,32,0) /* See below for why we do this */ #defineglib2_mutex_lockg_mutex_lock -#defineglib2_mutex_unlock g_mutex_lock +#defineglib2_mutex_unlock g_mutex_unlock #defineglib2_init_threads() #else /*
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2015-03-27 09:41:49 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2015-03-23 12:16:59.0 +0100 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2015-03-27 09:41:50.0 +0100 @@ -1,0 +2,11 @@ +Thu Mar 26 23:07:33 UTC 2015 - mfas...@suse.com + +- Update to duperemove v0.09.2 + - Now compiles on SLE11 targets + - Fallback to stat on filesystems that don't report file type from +readdir + - Don't assert on failed open during dedupe + +- References: bsc#923277 bsc#924577 + +--- Old: v0.09.1.tar.gz New: v0.09.2.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.rH7soH/_old 2015-03-27 09:41:50.0 +0100 +++ /var/tmp/diff_new_pack.rH7soH/_new 2015-03-27 09:41:50.0 +0100 @@ -16,10 +16,10 @@ # -%define tar_version 0.09.1 +%define tar_version 0.09.2 %define samename btrfs-extent-same Name: duperemove -Version:0.09.1 +Version:0.09.2 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 @@ -52,7 +52,11 @@ Makefile %build +%if %suse_version = 1200 +make %{?_smp_mflags} CFLAGS=%{optflags} -DNO_BTRFS_HEADER +%else make %{?_smp_mflags} CFLAGS=%{optflags} +%endif %install %make_install ++ v0.09.1.tar.gz - v0.09.2.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.09.1/Makefile new/duperemove-0.09.2/Makefile --- old/duperemove-0.09.1/Makefile 2015-03-19 17:25:09.0 +0100 +++ new/duperemove-0.09.2/Makefile 2015-03-26 23:51:34.0 +0100 @@ -1,4 +1,5 @@ -RELEASE=v0.09.1 +VER=0.09.2 +RELEASE=v$(VER) CC = gcc CFLAGS = -Wall -ggdb @@ -15,11 +16,11 @@ $(csum_test_CFILES) $(hash_impl_CFILES) HEADERS=csum.h hash-tree.h results-tree.h kernel.h list.h rbtree.h dedupe.h \ btrfs-ioctl.h filerec.h btrfs-util.h debug.h util.h serialize.h \ - memstats.h + memstats.h fiemap-compat.h DIST_SOURCES:=$(DIST_CFILES) $(HEADERS) LICENSE Makefile rbtree.txt README.md \ TODO $(MANPAGES) SubmittingPatches FAQ.md -DIST=duperemove-$(RELEASE) -DIST_TARBALL=$(DIST).tar.gz +DIST=duperemove-$(VER) +DIST_TARBALL=$(RELEASE).tar.gz TEMP_INSTALL_DIR:=$(shell mktemp -du -p .) crypt_CFILES=csum-gcrypt.c @@ -43,8 +44,8 @@ progs = duperemove hashstats btrfs-extent-same show-shared-extents test_progs = csum-test -glib_CFLAGS=$(shell pkg-config --cflags glib-2.0) -glib_LIBS=$(shell pkg-config --libs glib-2.0) +glib_CFLAGS=$(shell pkg-config --cflags glib-2.0 gthread-2.0) +glib_LIBS=$(shell pkg-config --libs glib-2.0 gthread-2.0) override CFLAGS += -D_FILE_OFFSET_BITS=64 -DVERSTRING=\$(RELEASE)\ \ $(crypt_CFLAGS) $(glib_CFLAGS) -rdynamic diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.09.1/btrfs-util.c new/duperemove-0.09.2/btrfs-util.c --- old/duperemove-0.09.1/btrfs-util.c 2015-03-19 17:25:09.0 +0100 +++ new/duperemove-0.09.2/btrfs-util.c 2015-03-26 23:51:34.0 +0100 @@ -24,11 +24,30 @@ #include errno.h #include string.h #include linux/magic.h +#ifndefNO_BTRFS_HEADER #include linux/btrfs.h +#endif +#include sys/ioctl.h #include btrfs-util.h #include debug.h +#ifdef NO_BTRFS_HEADER +#ifndef__u64 +#define__u64 uint64_t +#endif +#define BTRFS_IOCTL_MAGIC 0x94 + +#define BTRFS_IOC_INO_LOOKUP _IOWR(BTRFS_IOCTL_MAGIC, 18, \ + struct btrfs_ioctl_ino_lookup_args) +#define BTRFS_INO_LOOKUP_PATH_MAX 4080 +struct btrfs_ioctl_ino_lookup_args { + __u64 treeid; + __u64 objectid; + char name[BTRFS_INO_LOOKUP_PATH_MAX]; +}; +#endif + /* For some reason linux/btrfs.h doesn't define this. */ #defineBTRFS_FIRST_FREE_OBJECTID 256ULL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.09.1/duperemove.c new/duperemove-0.09.2/duperemove.c --- old/duperemove-0.09.1/duperemove.c 2015-03-19 17:25:09.0 +0100 +++ new/duperemove-0.09.2/duperemove.c 2015-03-26 23:51:34.0 +0100 @@ -36,6 +36,8 @@ #include glib.h +#include fiemap-compat.h + #include rbtree.h #include list.h #include csum.h @@ -49,6 +51,29 @@ #include memstats.h #include debug.h +#if GLIB_CHECK_VERSION(2,32,0) +/* See
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2015-03-23 12:16:58 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2015-01-30 15:08:04.0 +0100 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2015-03-23 12:16:59.0 +0100 @@ -1,0 +2,7 @@ +Thu Mar 19 16:29:24 UTC 2015 - mfas...@suse.com + +- Update to duperemove v0.09.1 + - Fallback to stat on filesystems that don't report file type from +readdir + +--- Old: v0.09.tar.gz New: v0.09.1.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.a1DQ0S/_old 2015-03-23 12:17:00.0 +0100 +++ /var/tmp/diff_new_pack.a1DQ0S/_new 2015-03-23 12:17:00.0 +0100 @@ -16,10 +16,10 @@ # -%define tar_version 0.09 +%define tar_version 0.09.1 %define samename btrfs-extent-same Name: duperemove -Version:0.09 +Version:0.09.1 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 ++ v0.09.tar.gz - v0.09.1.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.09/Makefile new/duperemove-0.09.1/Makefile --- old/duperemove-0.09/Makefile2015-01-29 20:27:52.0 +0100 +++ new/duperemove-0.09.1/Makefile 2015-03-19 17:25:09.0 +0100 @@ -1,4 +1,4 @@ -RELEASE=v0.09 +RELEASE=v0.09.1 CC = gcc CFLAGS = -Wall -ggdb diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.09/duperemove.c new/duperemove-0.09.1/duperemove.c --- old/duperemove-0.09/duperemove.c2015-01-29 20:27:52.0 +0100 +++ new/duperemove-0.09.1/duperemove.c 2015-03-19 17:25:09.0 +0100 @@ -539,9 +539,13 @@ g_dataset_set_data_full(tree, mutex, tree_mutex, (GDestroyNotify) g_mutex_clear); - if (!hash_threads) + if (!hash_threads) { +#if GLIB_CHECK_VERSION(2,36,0) hash_threads = g_get_num_processors(); - +#else + hash_threads = sysconf(_SC_NPROCESSORS_ONLN); +#endif + } pool = g_thread_pool_new((GFunc) csum_whole_file, tree, hash_threads, FALSE, err); if (err != NULL) { @@ -601,6 +605,46 @@ printf(\nPlease see the duperemove(8) manpage for more options.\n); } +static int get_dirent_type(struct dirent *entry, int fd) +{ + int ret; + struct stat st; + + if (entry-d_type != DT_UNKNOWN) + return entry-d_type; + + /* +* FS doesn't support file type in dirent, do this the old +* fashioned way. We translate mode to DT_* for the +* convenience of the caller. +*/ + ret = fstatat(fd, entry-d_name, st, 0); + if (ret) { + fprintf(stderr, + Error %d: %s while getting type of file %s/%s. + Skipping.\n, + errno, strerror(errno), path, entry-d_name); + return DT_UNKNOWN; + } + + if (S_ISREG(st.st_mode)) + return DT_REG; + if (S_ISDIR(st.st_mode)) + return DT_DIR; + if (S_ISBLK(st.st_mode)) + return DT_BLK; + if (S_ISCHR(st.st_mode)) + return DT_CHR; + if (S_ISFIFO(st.st_mode)) + return DT_FIFO; + if (S_ISLNK(st.st_mode)) + return DT_LNK; + if (S_ISSOCK(st.st_mode)) + return DT_SOCK; + + return DT_UNKNOWN; +} + static int add_file(const char *name, int dirfd); static int walk_dir(const char *name) @@ -608,6 +652,7 @@ int ret = 0; struct dirent *entry; DIR *dirp; + int type; dirp = opendir(path); if (dirp == NULL) { @@ -624,12 +669,14 @@ || strcmp(entry-d_name, ..) == 0) continue; - if (entry-d_type == DT_REG || - (recurse_dirs entry-d_type == DT_DIR)) + type = get_dirent_type(entry, dirfd(dirp)); + if (type == DT_REG || + (recurse_dirs type == DT_DIR)) { if (add_file(entry-d_name, dirfd(dirp))) { ret = 1; goto out; }
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2015-01-30 15:07:55 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2015-01-20 19:04:03.0 +0100 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2015-01-30 15:08:04.0 +0100 @@ -1,0 +2,10 @@ +Thu Jan 29 20:17:58 UTC 2015 - mfas...@suse.com + +- Update to duperemove v0.09 + - start with first node in free_compare_tree + - fix small typos in duperemove man page + - add test_progs variable in Makefile +- References: bsc#915354 FATE#318171 +- Removed patch: do-not-install-test-binary.patch + +--- Old: do-not-install-test-binary.patch v0.09.beta5.tar.gz New: v0.09.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.HGydoP/_old 2015-01-30 15:08:05.0 +0100 +++ /var/tmp/diff_new_pack.HGydoP/_new 2015-01-30 15:08:05.0 +0100 @@ -16,18 +16,16 @@ # -%define tar_version 0.09.beta5 +%define tar_version 0.09 %define samename btrfs-extent-same Name: duperemove -Version:0.09~beta5 +Version:0.09 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 Group: System/Filesystems Url:https://github.com/markfasheh/duperemove Source: https://github.com/markfasheh/%{name}/archive/v%{tar_version}.tar.gz -# PATCH-FIX-UPSTREAM: do not install test binary which is not really needed -Patch0: do-not-install-test-binary.patch BuildRequires: gcc-c++ BuildRequires: glib2-devel BuildRequires: libgcrypt-devel @@ -52,7 +50,6 @@ -e 's:DESTDIR =:DESTDIR ?=:g' \ -e 's:%{_prefix}/local:/usr:g' \ Makefile -%patch0 -p1 %build make %{?_smp_mflags} CFLAGS=%{optflags} ++ v0.09.beta5.tar.gz - v0.09.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.09.beta5/Makefile new/duperemove-0.09/Makefile --- old/duperemove-0.09.beta5/Makefile 2014-12-09 04:16:40.0 +0100 +++ new/duperemove-0.09/Makefile2015-01-29 20:27:52.0 +0100 @@ -1,4 +1,4 @@ -RELEASE=v0.09.beta5 +RELEASE=v0.09 CC = gcc CFLAGS = -Wall -ggdb @@ -40,7 +40,8 @@ show_shared_obj = rbtree.o util.o csum_test_obj = $(crypt_obj) util.o -progs = duperemove hashstats btrfs-extent-same show-shared-extents csum-test +progs = duperemove hashstats btrfs-extent-same show-shared-extents +test_progs = csum-test glib_CFLAGS=$(shell pkg-config --cflags glib-2.0) glib_LIBS=$(shell pkg-config --libs glib-2.0) @@ -58,7 +59,7 @@ .c.o: $(CC) $(CFLAGS) -c $ -o $@ $(LIBRARY_FLAGS) -all: $(progs) +all: $(progs) $(test_progs) #TODO: Replace this with an auto-dependency $(objects): $(HEADERS) duperemove: $(objects) @@ -93,4 +94,4 @@ $(CC) $(CFLAGS) $(hashstats_obj) hashstats.c -o hashstats $(LIBRARY_FLAGS) clean: - rm -fr $(objects) $(progs) $(DIST_TARBALL) btrfs-extent-same filerec-test show-shared-extents hashstats csum-*.o *~ + rm -fr $(objects) $(progs) $(test_progs) $(DIST_TARBALL) btrfs-extent-same filerec-test show-shared-extents hashstats csum-*.o *~ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.09.beta5/duperemove.8 new/duperemove-0.09/duperemove.8 --- old/duperemove-0.09.beta5/duperemove.8 2014-12-09 04:16:40.0 +0100 +++ new/duperemove-0.09/duperemove.82015-01-29 20:27:52.0 +0100 @@ -46,7 +46,7 @@ .SH OPTIONS \fIfiles\fR can refer to a list of regular files and directories. If a -directory is specified, all regular files within it will be also +directory is specified, all regular files within it will also be scanned. .TP @@ -59,7 +59,7 @@ .TP \fB\-A\fR -Opens files readonly when deduping. Primarily for us by privileged +Opens files readonly when deduping. Primarily for use by privileged users on readonly snapshots. .TP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-0.09.beta5/filerec.c new/duperemove-0.09/filerec.c --- old/duperemove-0.09.beta5/filerec.c 2014-12-09 04:16:40.0 +0100 +++ new/duperemove-0.09/filerec.c 2015-01-29 20:27:52.0 +0100 @@ -147,7 +147,7 @@ static void free_compared_tree(struct filerec *file) { - struct rb_node *n = file-comparisons.rb_node; + struct rb_node *n = rb_first(file-comparisons);
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2015-01-20 19:04:01 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2014-12-09 09:14:07.0 +0100 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2015-01-20 19:04:03.0 +0100 @@ -1,0 +2,8 @@ +Tue Jan 20 10:02:26 UTC 2015 - tchva...@suse.com + +- Cleanup a bit with spec-cleaner and fix few tiny issues +- Use install phase from upstream Makefile +- Move csum-test to test progs to prevent its install: + * do-not-install-test-binary.patch + +--- Old: duperemove-v0.09.beta5.tar.gz New: do-not-install-test-binary.patch v0.09.beta5.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.QbzcwD/_old 2015-01-20 19:04:04.0 +0100 +++ /var/tmp/diff_new_pack.QbzcwD/_new 2015-01-20 19:04:04.0 +0100 @@ -1,7 +1,7 @@ # # spec file for package duperemove # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,20 +16,21 @@ # -%define modname duperemove -%define tar_version v0.09.beta5 - +%define tar_version 0.09.beta5 +%define samename btrfs-extent-same Name: duperemove -BuildRequires: gcc-c++ -BuildRequires: glib2-devel -BuildRequires: libgcrypt-devel Version:0.09~beta5 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 Group: System/Filesystems Url:https://github.com/markfasheh/duperemove -Source: %{modname}-%{tar_version}.tar.gz +Source: https://github.com/markfasheh/%{name}/archive/v%{tar_version}.tar.gz +# PATCH-FIX-UPSTREAM: do not install test binary which is not really needed +Patch0: do-not-install-test-binary.patch +BuildRequires: gcc-c++ +BuildRequires: glib2-devel +BuildRequires: libgcrypt-devel BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -37,36 +38,32 @@ console. It also has the option to remove duplicates on those file systems which support the btrfs-extent-same ioctl. -%define samename btrfs-extent-same -%package -n btrfs-extent-same +%package -n %{samename} Summary:Debug/Test tool to exercise the btrfs out-of-band deduplication ioctl Group: System/Filesystems -%description -n btrfs-extent-same +%description -n %{samename} Debug/Test tool to exercise a btrfs ioctl for deduplicating file regions. %prep -%setup -q -n %{modname}-%{tar_version} +%setup -q -n %{name}-%{tar_version} +# Set the destdir / prefix +sed -i \ +-e 's:DESTDIR =:DESTDIR ?=:g' \ +-e 's:%{_prefix}/local:/usr:g' \ +Makefile +%patch0 -p1 %build -make CFLAGS=%optflags +make %{?_smp_mflags} CFLAGS=%{optflags} %install -mkdir -p %{buildroot}/%{_sbindir} -cp %{_builddir}/%{modname}-%{tar_version}/%{modname} %{buildroot}/%{_sbindir} -cp %{_builddir}/%{modname}-%{tar_version}/hashstats %{buildroot}/%{_sbindir} -cp %{_builddir}/%{modname}-%{tar_version}/show-shared-extents %{buildroot}/%{_sbindir} -cp %{_builddir}/%{modname}-%{tar_version}/%{samename} %{buildroot}/%{_sbindir} -mkdir -p %{buildroot}%{_mandir}/man8 -cp %{_builddir}/%{modname}-%{tar_version}/%{modname}.8 %{buildroot}/%{_mandir}/man8/ -cp %{_builddir}/%{modname}-%{tar_version}/hashstats.8 %{buildroot}/%{_mandir}/man8/ -cp %{_builddir}/%{modname}-%{tar_version}/show-shared-extents.8 %{buildroot}/%{_mandir}/man8/ -cp %{_builddir}/%{modname}-%{tar_version}/%{samename}.8 %{buildroot}/%{_mandir}/man8/ +%make_install -%files -n btrfs-extent-same +%files -n %{samename} %defattr(-, root, root) %{_sbindir}/%{samename} -%{_mandir}/man?/%{samename}.8.gz +%{_mandir}/man?/%{samename}.8.* %files %defattr(-, root, root) @@ -74,8 +71,8 @@ %{_sbindir}/duperemove %{_sbindir}/hashstats %{_sbindir}/show-shared-extents -%{_mandir}/man?/%{modname}.8.gz -%{_mandir}/man?/hashstats.8.gz -%{_mandir}/man?/show-shared-extents.8.gz +%{_mandir}/man?/%{name}.8.* +%{_mandir}/man?/hashstats.8.* +%{_mandir}/man?/show-shared-extents.8.* %changelog ++ do-not-install-test-binary.patch ++ Index: duperemove-0.09.beta5/Makefile === --- duperemove-0.09.beta5.orig/Makefile +++
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2014-12-09 09:14:30 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2014-11-19 20:30:29.0 +0100 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2014-12-09 09:14:07.0 +0100 @@ -1,0 +2,13 @@ +Tue Dec 9 04:12:43 UTC 2014 - mfas...@suse.com + +- Update to duperemove v0.09.beta5 + - Documentation updates +- FAQ and README are more relevant now +- added man pages for show-shared-extents and hashstats programs +- updated duperemove man page, and duperemove usage() function + - Have show-shared-extents take a file list as arguments. + - Change default of --lookup-extents option back to 'no' + - Write hash type into hashfile header, check against what hash we were +compiled with. + +--- Old: duperemove-v0.09.beta3.tar.gz New: duperemove-v0.09.beta5.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.s8n353/_old 2014-12-09 09:14:09.0 +0100 +++ /var/tmp/diff_new_pack.s8n353/_new 2014-12-09 09:14:09.0 +0100 @@ -17,13 +17,13 @@ %define modname duperemove -%define tar_version v0.09.beta3 +%define tar_version v0.09.beta5 Name: duperemove BuildRequires: gcc-c++ BuildRequires: glib2-devel BuildRequires: libgcrypt-devel -Version:0.09~beta3 +Version:0.09~beta5 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 @@ -50,8 +50,6 @@ %build make CFLAGS=%optflags -make hashstats CFLAGS=%optflags -make btrfs-extent-same CFLAGS=%optflags %install mkdir -p %{buildroot}/%{_sbindir} @@ -61,6 +59,8 @@ cp %{_builddir}/%{modname}-%{tar_version}/%{samename} %{buildroot}/%{_sbindir} mkdir -p %{buildroot}%{_mandir}/man8 cp %{_builddir}/%{modname}-%{tar_version}/%{modname}.8 %{buildroot}/%{_mandir}/man8/ +cp %{_builddir}/%{modname}-%{tar_version}/hashstats.8 %{buildroot}/%{_mandir}/man8/ +cp %{_builddir}/%{modname}-%{tar_version}/show-shared-extents.8 %{buildroot}/%{_mandir}/man8/ cp %{_builddir}/%{modname}-%{tar_version}/%{samename}.8 %{buildroot}/%{_mandir}/man8/ %files -n btrfs-extent-same @@ -70,10 +70,12 @@ %files %defattr(-, root, root) -%doc LICENSE README +%doc LICENSE README.md FAQ.md %{_sbindir}/duperemove %{_sbindir}/hashstats %{_sbindir}/show-shared-extents %{_mandir}/man?/%{modname}.8.gz +%{_mandir}/man?/hashstats.8.gz +%{_mandir}/man?/show-shared-extents.8.gz %changelog ++ duperemove-v0.09.beta3.tar.gz - duperemove-v0.09.beta5.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-v0.09.beta3/FAQ.md new/duperemove-v0.09.beta5/FAQ.md --- old/duperemove-v0.09.beta3/FAQ.md 1970-01-01 01:00:00.0 +0100 +++ new/duperemove-v0.09.beta5/FAQ.md 2014-12-09 05:05:30.0 +0100 @@ -0,0 +1,53 @@ +# Duperemove: Frequently Asked Questions + +### Is there an upper limit to the amount of data duperemove can process? + +v0.08 of duperemove has been tested on small numbers of VMS or iso +files (5-10) it can probably scale up to 50 or so. + +v0.09 is much faster at hashing and cataloging extents and therefore +can handle a larger data set. My own testing is typically with a +filesystem of about 750 gigabytes and millions of files. + + +### Why does it not print out all duplicate extents? + +Internally duperemove is classifying extents based on various criteria +like length, number of identical extents, etc. The printout we give is +based on the results of that classification. + + +### How can I find out my space savings after a dedupe? + +Duperemove will print out an estimate of the saved space after a +dedupe operation for you. You can also do a df before the dedupe +operation, then a df about 60 seconds after the operation. It is +common for btrfs space reporting to be 'behind' while delayed updates +get processed, so an immediate df after deduping might not show any +savings. + + +### Why is the total deduped data report an estimate? + +At the moment duperemove can detect that some underlying extents are +shared with other files, but it can not resolve which files those +extents are shared with. + +Imagine duperemove is examing a series of files and it notes a shared +data region in one of them. That data could be shared with a file +outside of the series. Since duperemove can't resolve that information +it will account the
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2014-11-19 20:26:42 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2014-10-31 20:03:36.0 +0100 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2014-11-19 20:30:29.0 +0100 @@ -1,0 +2,18 @@ +Mon Nov 17 19:40:06 UTC 2014 - mfas...@suse.com + +- Update to duperemove v0.09.beta3 + - Fix leak of directory fd during file scan + - Fix EMFILES (too many file descriptors) error during dedupe + - Fix corner case with dedupe leaving a file open and not-queued + - Support '-x' (one file system) option + - Add option to turn off extent lookup during csum phase +- Useful if running against snapshotted volumes + - show-shared-extents program to help users examine file state before or +after dedupe. + +--- +Mon Nov 10 14:49:27 UTC 2014 - sch...@suse.de + +- Build with %optflags + +--- Old: duperemove-v0.09.beta2.tar.gz New: duperemove-v0.09.beta3.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.MGU3Ld/_old 2014-11-19 20:30:30.0 +0100 +++ /var/tmp/diff_new_pack.MGU3Ld/_new 2014-11-19 20:30:30.0 +0100 @@ -17,13 +17,13 @@ %define modname duperemove -%define tar_version v0.09.beta2 +%define tar_version v0.09.beta3 Name: duperemove BuildRequires: gcc-c++ BuildRequires: glib2-devel BuildRequires: libgcrypt-devel -Version:0.09~beta2 +Version:0.09~beta3 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 @@ -49,14 +49,15 @@ %setup -q -n %{modname}-%{tar_version} %build -make -make hashstats -make btrfs-extent-same +make CFLAGS=%optflags +make hashstats CFLAGS=%optflags +make btrfs-extent-same CFLAGS=%optflags %install mkdir -p %{buildroot}/%{_sbindir} cp %{_builddir}/%{modname}-%{tar_version}/%{modname} %{buildroot}/%{_sbindir} cp %{_builddir}/%{modname}-%{tar_version}/hashstats %{buildroot}/%{_sbindir} +cp %{_builddir}/%{modname}-%{tar_version}/show-shared-extents %{buildroot}/%{_sbindir} cp %{_builddir}/%{modname}-%{tar_version}/%{samename} %{buildroot}/%{_sbindir} mkdir -p %{buildroot}%{_mandir}/man8 cp %{_builddir}/%{modname}-%{tar_version}/%{modname}.8 %{buildroot}/%{_mandir}/man8/ @@ -72,6 +73,7 @@ %doc LICENSE README %{_sbindir}/duperemove %{_sbindir}/hashstats +%{_sbindir}/show-shared-extents %{_mandir}/man?/%{modname}.8.gz %changelog ++ duperemove-v0.09.beta2.tar.gz - duperemove-v0.09.beta3.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-v0.09.beta2/Makefile new/duperemove-v0.09.beta3/Makefile --- old/duperemove-v0.09.beta2/Makefile 2014-10-31 00:27:39.0 +0100 +++ new/duperemove-v0.09.beta3/Makefile 2014-11-17 20:07:48.0 +0100 @@ -1,43 +1,67 @@ -RELEASE=v0.09.beta2 +RELEASE=v0.09.beta3 CC = gcc CFLAGS = -Wall -ggdb MANPAGES=duperemove.8 btrfs-extent-same.8 -DIST_SOURCES=csum-gcrypt.c csum-mhash.c csum.h duperemove.c hash-tree.c hash-tree.h results-tree.c results-tree.h kernel.h LICENSE list.h Makefile rbtree.c rbtree.h rbtree.txt README TODO dedupe.c dedupe.h btrfs-ioctl.h filerec.c filerec.h btrfs-util.c btrfs-util.h $(MANPAGES) btrfs-extent-same.c debug.h util.c util.h serialize.c serialize.h hashstats.c +CFILES=duperemove.c hash-tree.c results-tree.c rbtree.c dedupe.c filerec.c \ + btrfs-util.c util.c serialize.c memstats.c +hash_impl_CFILES=csum-mhash.c csum-gcrypt.c +hashstats_CFILES=hashstats.c +btrfs_extent_same_CFILES=btrfs-extent-same.c +csum_test_CFILES=csum-test.c +DIST_CFILES:=$(CFILES) $(hashstats_CFILES) $(btrfs_extent_same_CFILES) \ + $(csum_test_CFILES) $(hash_impl_CFILES) +HEADERS=csum.h hash-tree.h results-tree.h kernel.h list.h rbtree.h dedupe.h \ + btrfs-ioctl.h filerec.h btrfs-util.h debug.h util.h serialize.h \ + memstats.h +DIST_SOURCES:=$(DIST_CFILES) $(HEADERS) LICENSE Makefile rbtree.txt README \ + TODO $(MANPAGES) SubmittingPatches DIST=duperemove-$(RELEASE) DIST_TARBALL=$(DIST).tar.gz TEMP_INSTALL_DIR:=$(shell mktemp -du -p .) -hash_obj=csum-gcrypt.o +crypt_CFILES=csum-gcrypt.c crypt_CFLAGS=$(shell libgcrypt-config --cflags) crypt_LIBS=$(shell libgcrypt-config --libs) ifdef USE_MHASH - hash_obj=csum-mhash.o + crypt_CFILES=csum-mhash.c
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2014-10-31 18:27:56 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2014-09-30 19:42:03.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2014-10-31 20:03:36.0 +0100 @@ -1,0 +2,11 @@ +Fri Oct 31 02:44:53 UTC 2014 - mfas...@suse.com + +- Update to duperemove v0.09.beta2 + - fix memory leak + - fix hardlink detection on btrfs + - print file number status during csum phase + - print a status bar during extent seearch + - several bugfixes and performance improvements to extent search +- Removed patch: 001-fix-build.patch + +--- Old: 001-fix-build.patch duperemove-v0.09.beta1.tar.gz New: duperemove-v0.09.beta2.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.49iyG2/_old 2014-10-31 20:03:37.0 +0100 +++ /var/tmp/diff_new_pack.49iyG2/_new 2014-10-31 20:03:37.0 +0100 @@ -17,13 +17,13 @@ %define modname duperemove -%define tar_version v0.09.beta1 +%define tar_version v0.09.beta2 Name: duperemove BuildRequires: gcc-c++ BuildRequires: glib2-devel BuildRequires: libgcrypt-devel -Version:0.09~beta1 +Version:0.09~beta2 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 @@ -31,7 +31,6 @@ Url:https://github.com/markfasheh/duperemove Source: %{modname}-%{tar_version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build -Patch1: 001-fix-build.patch %description Duperemove finds duplicate extents in files and prints them to the @@ -48,7 +47,6 @@ %prep %setup -q -n %{modname}-%{tar_version} -%patch1 -p1 %build make ++ duperemove-v0.09.beta1.tar.gz - duperemove-v0.09.beta2.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-v0.09.beta1/Makefile new/duperemove-v0.09.beta2/Makefile --- old/duperemove-v0.09.beta1/Makefile 2014-09-27 01:56:37.0 +0200 +++ new/duperemove-v0.09.beta2/Makefile 2014-10-31 00:27:39.0 +0100 @@ -1,11 +1,11 @@ -RELEASE=v0.09.beta1 +RELEASE=v0.09.beta2 CC = gcc CFLAGS = -Wall -ggdb MANPAGES=duperemove.8 btrfs-extent-same.8 -DIST_SOURCES=csum-gcrypt.c csum-mhash.c csum.h duperemove.c hash-tree.c hash-tree.h results-tree.c results-tree.h kernel.h LICENSE list.h Makefile rbtree.c rbtree.h rbtree.txt README TODO dedupe.c dedupe.h btrfs-ioctl.h filerec.c filerec.h $(MANPAGES) btrfs-extent-same.c debug.h util.c util.h serialize.c serialize.h hashstats.c +DIST_SOURCES=csum-gcrypt.c csum-mhash.c csum.h duperemove.c hash-tree.c hash-tree.h results-tree.c results-tree.h kernel.h LICENSE list.h Makefile rbtree.c rbtree.h rbtree.txt README TODO dedupe.c dedupe.h btrfs-ioctl.h filerec.c filerec.h btrfs-util.c btrfs-util.h $(MANPAGES) btrfs-extent-same.c debug.h util.c util.h serialize.c serialize.h hashstats.c DIST=duperemove-$(RELEASE) DIST_TARBALL=$(DIST).tar.gz TEMP_INSTALL_DIR:=$(shell mktemp -du -p .) @@ -26,7 +26,7 @@ $(crypt_CFLAGS) $(glib_CFLAGS) LIBRARY_FLAGS += $(crypt_LIBS) $(glib_LIBS) -objects = duperemove.o rbtree.o hash-tree.o results-tree.o dedupe.o filerec.o util.o serialize.o $(hash_obj) +objects = duperemove.o rbtree.o hash-tree.o results-tree.o dedupe.o filerec.o util.o serialize.o btrfs-util.o $(hash_obj) progs = duperemove DESTDIR = / @@ -38,7 +38,7 @@ all: $(progs) kernel.h list.h btrfs-ioctl.h debug.h duperemove: $(objects) kernel.h duperemove.c - $(CC) $(LIBRARY_FLAGS) $(CFLAGS) $(objects) -o duperemove + $(CC) $(CFLAGS) $(objects) -o duperemove $(LIBRARY_FLAGS) tarball: clean mkdir -p $(TEMP_INSTALL_DIR)/$(DIST) @@ -60,14 +60,14 @@ done csum-test: $(hash_obj) csum-test.c - $(CC) $(LIBRARY_FLAGS) $(CFLAGS) $(hash_obj) -o csum-test csum-test.c + $(CC) $(CFLAGS) $(hash_obj) -o csum-test csum-test.c $(LIBRARY_FLAGS) filerec-test: filerec.c filerec.h rbtree.o - $(CC) $(LIBRARY_FLAGS) $(CFLAGS) -DFILEREC_TEST filerec.c rbtree.o -o filerec-test + $(CC) $(CFLAGS) -DFILEREC_TEST filerec.c rbtree.o -o filerec-test $(LIBRARY_FLAGS) hashstats_obj = $(hash_obj) rbtree.o hash-tree.o filerec.o util.o serialize.o results-tree.o hashstats: $(hashstats_obj) hashstats.c - $(CC) $(LIBRARY_FLAGS) $(CFLAGS) $(hashstats_obj) hashstats.c -o hashstats + $(CC)
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2014-09-30 19:40:28 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2014-04-25 11:34:04.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2014-09-30 19:42:03.0 +0200 @@ -1,0 +2,14 @@ +Sat Sep 27 00:18:33 UTC 2014 - mfas...@suse.com + +- update to duperemove v0.09.beta1 + - parallel checksum calculation + - performance improvements + - allow to store the hash tree to a file + - hashstats: new utility to analyze hash files + - add --version option + - build: add install target + - documentatin updates + +- Added patch: 001-fix-build.patch + +--- Old: duperemove-v0.08.tar.gz New: 001-fix-build.patch duperemove-v0.09.beta1.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.cgRc8W/_old 2014-09-30 19:42:03.0 +0200 +++ /var/tmp/diff_new_pack.cgRc8W/_new 2014-09-30 19:42:03.0 +0200 @@ -17,18 +17,21 @@ %define modname duperemove +%define tar_version v0.09.beta1 Name: duperemove BuildRequires: gcc-c++ +BuildRequires: glib2-devel BuildRequires: libgcrypt-devel -Version:0.08 +Version:0.09~beta1 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 Group: System/Filesystems Url:https://github.com/markfasheh/duperemove -Source: %{modname}-v%{version}.tar.gz +Source: %{modname}-%{tar_version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build +Patch1: 001-fix-build.patch %description Duperemove finds duplicate extents in files and prints them to the @@ -44,19 +47,22 @@ Debug/Test tool to exercise a btrfs ioctl for deduplicating file regions. %prep -%setup -q -n %{modname}-v%{version} +%setup -q -n %{modname}-%{tar_version} +%patch1 -p1 %build make +make hashstats make btrfs-extent-same %install mkdir -p %{buildroot}/%{_sbindir} -cp %{_builddir}/%{modname}-v%{version}/%{modname} %{buildroot}/%{_sbindir} -cp %{_builddir}/%{modname}-v%{version}/%{samename} %{buildroot}/%{_sbindir} +cp %{_builddir}/%{modname}-%{tar_version}/%{modname} %{buildroot}/%{_sbindir} +cp %{_builddir}/%{modname}-%{tar_version}/hashstats %{buildroot}/%{_sbindir} +cp %{_builddir}/%{modname}-%{tar_version}/%{samename} %{buildroot}/%{_sbindir} mkdir -p %{buildroot}%{_mandir}/man8 -cp %{_builddir}/%{modname}-v%{version}/%{modname}.8 %{buildroot}/%{_mandir}/man8/ -cp %{_builddir}/%{modname}-v%{version}/%{samename}.8 %{buildroot}/%{_mandir}/man8/ +cp %{_builddir}/%{modname}-%{tar_version}/%{modname}.8 %{buildroot}/%{_mandir}/man8/ +cp %{_builddir}/%{modname}-%{tar_version}/%{samename}.8 %{buildroot}/%{_mandir}/man8/ %files -n btrfs-extent-same %defattr(-, root, root) @@ -67,6 +73,7 @@ %defattr(-, root, root) %doc LICENSE README %{_sbindir}/duperemove +%{_sbindir}/hashstats %{_mandir}/man?/%{modname}.8.gz %changelog ++ 001-fix-build.patch ++ From: Mark Fasheh mfas...@suse.de Date: Fri Sep 26 17:20:07 PDT 2014 Subject: Fix build We need to have LIBRARY_FLAGS at the end of the build line for this to build correctly. Signed-off-by: Mark Fasheh mfas...@suse.de Index: duperemove-v0.09.beta1/Makefile === --- duperemove-v0.09.beta1.orig/Makefile +++ duperemove-v0.09.beta1/Makefile @@ -38,7 +38,7 @@ MANDIR = $(SHAREDIR)/man all: $(progs) kernel.h list.h btrfs-ioctl.h debug.h duperemove: $(objects) kernel.h duperemove.c - $(CC) $(LIBRARY_FLAGS) $(CFLAGS) $(objects) -o duperemove + $(CC) $(CFLAGS) $(objects) -o duperemove $(LIBRARY_FLAGS) tarball: clean mkdir -p $(TEMP_INSTALL_DIR)/$(DIST) @@ -60,14 +60,14 @@ install: $(progs) $(MANPAGES) done csum-test: $(hash_obj) csum-test.c - $(CC) $(LIBRARY_FLAGS) $(CFLAGS) $(hash_obj) -o csum-test csum-test.c + $(CC) $(CFLAGS) $(hash_obj) -o csum-test csum-test.c $(LIBRARY_FLAGS) filerec-test: filerec.c filerec.h rbtree.o - $(CC) $(LIBRARY_FLAGS) $(CFLAGS) -DFILEREC_TEST filerec.c rbtree.o -o filerec-test + $(CC) $(CFLAGS) -DFILEREC_TEST filerec.c rbtree.o -o filerec-test $(LIBRARY_FLAGS) hashstats_obj = $(hash_obj) rbtree.o hash-tree.o filerec.o util.o serialize.o results-tree.o hashstats: $(hashstats_obj) hashstats.c - $(CC) $(LIBRARY_FLAGS) $(CFLAGS) $(hashstats_obj) hashstats.c -o hashstats +
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2014-04-25 11:34:03 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2014-04-13 13:14:57.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2014-04-25 11:34:04.0 +0200 @@ -1,0 +2,8 @@ +Sun Apr 20 22:13:45 UTC 2014 - mfas...@suse.com + +- update to duperemove v0.08 + - fixes many bugs + - a few more usability improvements + - adds fiemap support to better estimate space savings + +--- Old: duperemove-v0.07.tar.gz New: duperemove-v0.08.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.FYfHI4/_old 2014-04-25 11:34:05.0 +0200 +++ /var/tmp/diff_new_pack.FYfHI4/_new 2014-04-25 11:34:05.0 +0200 @@ -21,7 +21,7 @@ Name: duperemove BuildRequires: gcc-c++ BuildRequires: libgcrypt-devel -Version:0.07 +Version:0.08 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 ++ duperemove-v0.07.tar.gz - duperemove-v0.08.tar.gz ++ 1684 lines of diff (skipped) -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2014-04-13 13:14:56 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2014-04-11 13:28:12.0 +0200 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2014-04-13 13:14:57.0 +0200 @@ -1,0 +2,9 @@ +Fri Apr 11 17:38:32 UTC 2014 - mfas...@suse.com + +- update to duperemove v0.07 + +- fix usability of command line arguments + +- large documentation update + +--- Old: duperemove-v0.06.tar.gz New: duperemove-v0.07.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.co1CMP/_old 2014-04-13 13:14:57.0 +0200 +++ /var/tmp/diff_new_pack.co1CMP/_new 2014-04-13 13:14:57.0 +0200 @@ -21,7 +21,7 @@ Name: duperemove BuildRequires: gcc-c++ BuildRequires: libgcrypt-devel -Version:0.06 +Version:0.07 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 ++ duperemove-v0.06.tar.gz - duperemove-v0.07.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-v0.06/Makefile new/duperemove-v0.07/Makefile --- old/duperemove-v0.06/Makefile 2014-04-11 02:11:50.0 +0200 +++ new/duperemove-v0.07/Makefile 2014-04-11 19:29:28.0 +0200 @@ -1,5 +1,5 @@ CC=gcc -RELEASE=v0.06 +RELEASE=v0.07 CFLAGS=-Wall -ggdb -D_FILE_OFFSET_BITS=64 -DVERSTRING=\$(RELEASE)\ MANPAGES=duperemove.8 btrfs-extent-same.8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-v0.06/README new/duperemove-v0.07/README --- old/duperemove-v0.06/README 2014-04-11 02:11:50.0 +0200 +++ new/duperemove-v0.07/README 2014-04-11 19:29:28.0 +0200 @@ -4,7 +4,7 @@ submitting them for deduplication. When given a list of files it will hash their contents on a block by block basis and compare those hashes to each other, finding and categorizing extents that match each -other. When given the optional -D option, duperemove will submit those +other. When given the -d option, duperemove will submit those extents for deduplication using the btrfs-extent-same ioctl. Duperemove has two major modes of operation one of which is a subset @@ -13,10 +13,10 @@ Readonly / Non-deduplicating Mode -When run without -D (the default) duperemove will print out one or +When run without -d (the default) duperemove will print out one or more tables of matching extents it has determined would be ideal candidates for deduplication. As a result, readonly mode is useful for -seeing what duperemove might do when run with '-D'. The output could +seeing what duperemove might do when run with '-d'. The output could also be used by some other software to submit the extents for deduplication at a later time. @@ -35,11 +35,11 @@ Deduping Mode This functions similarly to readonly mode with the exception that the -duplicated extents found in our read hash and compare step will +duplicated extents found in our read, hash, and compare step will actually be submitted for deduplication. At the end, a total count of bytes that were processed by the kernel will be printed. -Keep in mind, that the bytecount we report here (recieved from the +Keep in mind, that the bytecount we report here (received from the kernel) is NOT the total amount deduplicated but rather a count of the amount of data it also found to be identical. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-v0.06/btrfs-extent-same.c new/duperemove-v0.07/btrfs-extent-same.c --- old/duperemove-v0.06/btrfs-extent-same.c2014-04-11 02:11:50.0 +0200 +++ new/duperemove-v0.07/btrfs-extent-same.c2014-04-11 19:29:28.0 +0200 @@ -11,6 +11,8 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. + * + * Authors: Mark Fasheh mfas...@suse.de */ #include sys/types.h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-v0.06/dedupe.c new/duperemove-v0.07/dedupe.c --- old/duperemove-v0.06/dedupe.c 2014-04-11 02:11:50.0 +0200 +++ new/duperemove-v0.07/dedupe.c 2014-04-11 19:29:28.0 +0200 @@ -11,6 +11,8 @@ * but WITHOUT ANY WARRANTY;
commit duperemove for openSUSE:Factory
Hello community, here is the log from the commit of package duperemove for openSUSE:Factory checked in at 2014-04-11 13:28:10 Comparing /work/SRC/openSUSE:Factory/duperemove (Old) and /work/SRC/openSUSE:Factory/.duperemove.new (New) Package is duperemove Changes: --- /work/SRC/openSUSE:Factory/duperemove/duperemove.changes2014-03-15 17:36:22.0 +0100 +++ /work/SRC/openSUSE:Factory/.duperemove.new/duperemove.changes 2014-04-11 13:28:12.0 +0200 @@ -1,0 +2,10 @@ +Fri Apr 11 00:30:41 UTC 2014 - mfas...@suse.com + +- update to duperemove v0.06. This adds several fixes and features: +- fixes bnc#871804 (duperemove not looping on entire range) + +- also includes important usability fixes + +- updates hashing library to libgcrypt to reflect upstream + +--- Old: duperemove-v0.04.tar.gz New: duperemove-v0.06.tar.gz Other differences: -- ++ duperemove.spec ++ --- /var/tmp/diff_new_pack.7Bs4gt/_old 2014-04-11 13:28:12.0 +0200 +++ /var/tmp/diff_new_pack.7Bs4gt/_new 2014-04-11 13:28:12.0 +0200 @@ -15,19 +15,19 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + %define modname duperemove Name: duperemove BuildRequires: gcc-c++ -BuildRequires: mhash-devel -Version:0.04 +BuildRequires: libgcrypt-devel +Version:0.06 Release:0 Summary:Software to find duplicate extents in files and remove them License:GPL-2.0 Group: System/Filesystems Url:https://github.com/markfasheh/duperemove Source: %{modname}-v%{version}.tar.gz -Requires: mhash BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -38,8 +38,8 @@ %define samename btrfs-extent-same %package -n btrfs-extent-same Summary:Debug/Test tool to exercise the btrfs out-of-band deduplication ioctl -License:GPL-2.0 Group: System/Filesystems + %description -n btrfs-extent-same Debug/Test tool to exercise a btrfs ioctl for deduplicating file regions. ++ duperemove-v0.04.tar.gz - duperemove-v0.06.tar.gz ++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-v0.04/Makefile new/duperemove-v0.06/Makefile --- old/duperemove-v0.04/Makefile 2014-03-12 07:19:56.0 +0100 +++ new/duperemove-v0.06/Makefile 2014-04-11 02:11:50.0 +0200 @@ -1,16 +1,27 @@ CC=gcc -RELEASE=v0.04 +RELEASE=v0.06 CFLAGS=-Wall -ggdb -D_FILE_OFFSET_BITS=64 -DVERSTRING=\$(RELEASE)\ -LIBRARY_FLAGS=-lmhash MANPAGES=duperemove.8 btrfs-extent-same.8 -DIST_SOURCES=csum.c csum.h duperemove.c hash-tree.c hash-tree.h results-tree.c results-tree.h kernel.h LICENSE list.h Makefile rbtree.c rbtree.h rbtree.txt README TODO dedupe.c dedupe.h btrfs-ioctl.h filerec.c filerec.h $(MANPAGES) btrfs-extent-same.c +DIST_SOURCES=csum-gcrypt.c csum-mhash.c csum.h duperemove.c hash-tree.c hash-tree.h results-tree.c results-tree.h kernel.h LICENSE list.h Makefile rbtree.c rbtree.h rbtree.txt README TODO dedupe.c dedupe.h btrfs-ioctl.h filerec.c filerec.h $(MANPAGES) btrfs-extent-same.c DIST=duperemove-$(RELEASE) DIST_TARBALL=$(DIST).tar.gz TEMP_INSTALL_DIR:=$(shell mktemp -du -p .) -objects = duperemove.o rbtree.o csum.o hash-tree.o results-tree.o dedupe.o filerec.o +hash_obj=csum-gcrypt.o +crypt_CFLAGS=$(shell libgcrypt-config --cflags) +crypt_LIBS=$(shell libgcrypt-config --libs) +ifdef USE_MHASH + hash_obj=csum-mhash.o + crypt_CFLAGS= + crypt_LIBS=-lmhash +endif + +CFLAGS += $(crypt_CFLAGS) +LIBRARY_FLAGS += $(crypt_LIBS) + +objects = duperemove.o rbtree.o hash-tree.o results-tree.o dedupe.o filerec.o $(hash_obj) progs = duperemove all: $(progs) kernel.h list.h btrfs-ioctl.h @@ -27,5 +38,8 @@ btrfs-extent-same: btrfs-extent-same.c $(CC) -Wall -o btrfs-extent-same btrfs-extent-same.c +csum-test: $(hash_obj) csum-test.c + $(CC) -Wall $(hash_obj) $(CFLAGS) $(LIBRARY_FLAGS) -o csum-test csum-test.c + clean: - rm -fr $(objects) $(progs) $(DIST_TARBALL) btrfs-extent-same *~ + rm -fr $(objects) $(progs) $(DIST_TARBALL) btrfs-extent-same csum-*.o *~ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duperemove-v0.04/README new/duperemove-v0.06/README --- old/duperemove-v0.04/README 2014-03-12 07:19:56.0 +0100 +++ new/duperemove-v0.06/README 2014-04-11 02:11:50.0 +0200 @@ -1,16 +1,75 @@ -duperemove v0.04 -Find duplicate extents and print them to stdout +Duperemove -Usage: ./duperemove [-r] [-D] [-A] [-b blocksize-in-K] [-v] [-d] OBJECTS -Where OBJECTS is a list