diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..c3b6bae --- /dev/null +++ b/debian/changelog @@ -0,0 +1,686 @@ +snapraid (11.2-0tikhonov1~xenial) xenial; urgency=medium + + [11.2 2017/12] + * Fixed recognition of NTFS hardlinks. They behave differently than + standard Unix hardlinks and this could result in SnapRAID reporting + internal inconsistency errors for detecting links to the same file + with different metadata attributes. + * More efficient 'pool' command that updates only the links + that need to be updated. This ensures that no change is + done, avoiding to trigger a directory rescan of other programs. + * In Linux use by default the advise "discard" mode instead of "flush". + This avoids to swap-out the other process memory, leaving the system + more responsive. + * Changed the fallocate() use to work better with Btrfs with parity disks. + * Changed the --test-io-stats screen to print the file name in process + for each disk. + + -- Maxim Tikhonov Wed, 18 Jul 2018 19:44:46 +0400 + +snapraid (11.1-0tikhonov1~trusty) trusty; urgency=medium + + [11.1 2017/05] + * Fixed the check command to correctly ignore errors on unused parity. + This was broken in version 9.0. + * Allow increasing the number of parity splits of existing parity. + * Fixed quoting when printing in Linux. This fixes the UTF-8 screen + output. Windows version was not affected. + * Fixed recognition of 'hashsize' in the configuration file. + The previous incorrect 'hash_size' is still supported for backward + compatibility. + * Fixed building in platforms that don't provide major/minor definitions + in sys/types.h. + * When creating 'pool' symbolic links, set their time as the linked files. + * Added support for the Windows 10 symbolic link unprivileged creation, + using SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE. + * Windows binaries built with gcc 4.9.4 using the MXE cross compiler at + commit ae56efa2b23a793b0146508bfef33027cdb09fd2 with targets + i686-w64-mingw32 and x86_64-w64-mingw32 and optimization -O2. + + -- Maxim Tikhonov Mon, 28 Aug 2017 12:41:29 +0400 + +snapraid (11.0-0tikhonov1~trusty) trusty; urgency=medium + + [11.0 2016/11] + * Added support for splitting the parity in multiple partitions. You + can now specify multiple files for a single parity. As soon a file + cannot grow anymore, the next one starts growing. + In the configuration file, just put more files in the same 'parity' + line, separated by , (comma). + Note that if this feature is used, the saved content file won't be + read by older SnapRAID versions. + In Windows, 256 MB are left free in each disk to avoid the warning + about full disks. + * Added a new 'hashsize' configuration option. It could be useful in + systems with low memory, to reduce the memory usage. + Note that if this feature is used, the saved content file won't be + read by older SnapRAID versions. + * In Linux added the missing support for Btrfs file-systems. Note that + to have full support you need also the 'libblkid' library, otherwise + you won't get the UUIDs. + * In screen messages don't print the disk directory in file path. You + can control the format with the test option: + --test-fmt file|disk|path. + * In Windows allows to use the escape char '^' to handle file patterns + containing real characters matching the globbing '*?[]' ones. In Unix + it was already possible to do the same escaping with '\'. + * Added a new -R, --force-realloc option to reallocate all the + parity information keeping the precomputed hash. + This is the previous -F, --force-full that instead now maintains the + same parity organization and just recomputes it. + * Added test options for selecting the file advise mode to use: + --test-io-advise-none for standard mode + --test-io-advise-sequential advise sequential access (Linux/Windows) + --test-io-advise-flush flush cache after every operation (Linux) + --test-io-advise-flush-window flush cache every 8 MB (Linux) + --test-io-advise-discard discard cache after every operation (Linux) + --test-io-advise-discard-window discard cache every 8 MB (Linux) + --test-io-advise-direct use direct/unbuffered mode (Linux/Windows) + The new default mode is 'flush' in Linux (before it was 'sequential'), + and 'sequential' in Windows (like before). + * For Seagate SMR (Shingled Magnetic Recording) ignore the SMART + attribute Command_Timeout 188 as not reliable. + * Fixed running in Windows platforms that miss the RtlGenRandom() + function. + * Added the --test-io-cache=1 option to disable the multi-thread IO + mode. + + -- Maxim Tikhonov Thu, 01 Dec 2016 16:25:21 +0400 + +snapraid (10.0-0tikhonov1~trusty) trusty; urgency=medium + + [ 10.0 2016/02 ] + * Boosts the speed of the 'sync' and 'scrub' commands with a new + multi-thread implementation. It uses one thread for each disk, + dedicated exclusively to read-ahead data and parity and to + write-behind parity. This maximizes the data throughput keeping + disks always busy. + You can control the number of blocks to cache with the option + --test-io-cache=NUMBER, where the number is between 3 and 128. + The default is 8 MiB of blocks. + You can show run-time stats during the process with the + --test-io-stats option. You will see a graph with the number of + cached blocks, and a graph with the wait time percentage for all the + disks and computations. + * The -h, --pre-hash command, saves the content file only after having + verified all the hashes. This allows recovering of moved files in + case a silent error is found during the hash verification check. + * Allows to use the -d, --filter-disk option in the 'up' and 'down' + commands. + * Allows to run the 'smart' command without a configuration file. + In such case it operates on all the disks of the machine. + * In the configuration file 'data' is now a synonymous of 'disk'. + * Adds the 'touch' command intended to arbitrarily set all the zero + sub-second timestamps. This improves the SnapRAID capabilities to + identify files. The 'status' command recommends to run 'touch' if + required. + * Restores the functionality of the -D, --force-device option when used + to workaround the use of the same disk for two logical data drives + when running the 'fix' command. + * Uses a correct shell quoting in the example commands that involve + files. + * The minimum Windows version supported is now Windows Vista. This is + required to use the native Windows thread support for the new + multi-thread implementation. If you need to run on Windows XP, you + have to stick on SnapRAID 9.x. + + -- Maxim Tikhonov Sat, 05 Mar 2016 17:44:53 +0400 + +snapraid (9.3-0tikhonov1~trusty) trusty; urgency=medium + + [ 9.3 2016/01 ] + * Fixes an invalid assumption in the copy detection mechanism that + could result in an internal inconsistency, and with the impossibility + to run the 'sync' and 'diff' commands. + This was triggered by a very specific pattern of identical files. + At least three of them, with one already in the parity, and at a + higher disk number than the others that should be instead new ones. + This had no bad effect, if not preventing the 'sync' command to run. + A workaround was to just run 'sync' one time with the -N, + --force-nocopy option to disable the copy detection. + * Restored the -O2 optimization option for Windows binaries, as -Og has + a too big performance penality. + + [ 9.2 2016/01 ] + * Fixes support for symlinks pointing to an empty target. Before they + were only partially supported, and their presence could result in a + content file not readable. + This also disables multi-thread content write, as this was the issue + we tried to detect with this feature, and it doesn't provide a + performance advantage. Content verification is instead still multi + thread. + * Autorename disks using the matching UUID. To rename a disk you can + now change directly the name in the configuration file, and run a + 'sync' command. + * Improves the physical offset ordering for the Btrfs file-system, + correctly detecting files that have not a physical offset, for + whatever reason. + * Adds UUID support to Btrfs file-systems. It's present only if the + 'libblkid' development library is available on the system. + Usually this requires to install the libblkid-dev or libblkid-devel + package. + * Added a new --no-warnings option to disable some repetitive warnings + that could be annoying to power users. + * Improves the error reporting, printing a complete stack trace, that + can be used to track down bugs more easily. + For this reason the Windows binaries are now built with optimization + option -Og, instead than -O2. + + -- Maxim Tikhonov Tue, 02 Feb 2016 12:59:13 +0400 + +snapraid (9.1-0tikhonov1~trusty) trusty; urgency=medium + + [ 9.1 2015/11 ] + * Fixes a bug when reading a content file with a deleted entry bigger + than 4 GB. This was a regression introduced in version 9.0 that + could result in the impossibility to read a valid content file, + after a deletion of a file bigger than 4 GB in the array. + If this happened to you, just upgrading to 9.1 fixes the issue, and + it allows you to continue to work. + Note that this bug only prevented to run 9.0, but your data was still + protected and could have been recovered using the versions 8.1 or 9.1. + * In Windows disables the file zero check requiring the --force-zero + option. This check is intended for possible case using ext3/4 in Linux, + and there is no evidence that in Windows it's possible at all. + * Windows binaries built with gcc 4.9.3 using the MXE cross compiler at + commit 62bcdbee56e87c81f1faa105b8777a5879d4e2e with targets + i686-w64-mingw32 and x86_64-w64-mingw32 and optimization -O2. + + [ 9.0 2015/11 ] + * Fixes an invalid assumption that could happen when using the + -e, --filter-error option with "fix" or "check". + This was triggered by a very specific pattern of fragmented files + and bad blocks combination, not so easy to reproduce. + This had no bad effect, if not preventing the command to run. + * Drastically reduces the memory usage. For each block, it now + uses 17 bytes of memory, instead of the previous 28 bytes + (for 32 bit) or 36 bytes (for 64 bit). + This could result is a memory saving of up the 50%. + * The -p, --plan option (old --percentage) can be used to + define a scrub plan: "new", "bad" and "full". + The "new" plan scrubs all the new synced blocks not yet scrubbed. + This allows to verify as early as possible that the written + parity during sync is really correct. You can use the "status" + command to show the amount blocks not yet scrubbed. + The "bad" plan scrubs only bad blocks. + The "full" plan scrubs all blocks. + * The graph in the "status" command now show scrubbed blocks + with '*', and synced, but not yet scrubbed, blocks with 'o'. + Note that when upgrading from a previous version, all blocks + are assumed scrubbed the first time. + * Content files are now written asyncronously from different + threads to avoid the unfortunate condition that a memory + error affects all of them in the same way. + After writing, they are read again to verify their CRC. + This is done to ensure thay they are really OK, even in the + case of the worst possible silent errors. + * Extends the -D, --force-device option to ignore more + erroneous conditions in the 'fix' command, like unaccessible + disks, or disks sharing the same physical device. + * Extends the -d, --filter-disk option to allow to filter also + by parity disk. + * Extends the -h, --pre-hash option to also verify moved and + copied files into the array before running a 'sync'. + * Updates 'best' RAID functions for recent Atom CPUs. + * Validates filters specifications rejecting relative paths. + + -- Maxim Tikhonov Tue, 01 Dec 2015 23:50:52 +0400 + +snapraid (8.1-0tikhonov1~trusty) trusty; urgency=medium + + [ 8.1 2015/05 ] + * Fix build issues in generic Unix platforms, including Mac OS X. + * The "diff" command returns with error code 2 if a "sync" is + required, to differentiate with the generic error code 1. + * Reduced the effect of SMART attribute 193 on the failure + probability to avoid some false positive reports. + + -- Maxim Tikhonov Sun, 17 May 2015 23:29:11 +0400 + +snapraid (8.0-0tikhonov1~trusty) trusty; urgency=medium + + [ 8.0 2015/04 ] + * Allows "sync" and "scrub" to continue after the first bunch of disk + errors. Blocks with errors are marked as bad, and you can fix them + with the "fix -e" command. + The fix is expected to force the disk firmware to reallocate the + bad sector, likely fixing the problem. + You can control the number of allowed errors with the new + -L, --error-limit option. The default is 100. + * The -e, --filter-error option doesn't write anymore fixes to + unsynced files. This helps in case you are running it on a not + synced array, removing the risk to revert some files to an old state. + * The -e, --filter-error option is now optimal and reads only the + minimal amount of data necessary to fix the errors. + * The "diff" command returns with an error code if a "sync" is + required. + * Adds new "smart" command to print a SMART report of the array. + * Adds new "up" and "down" commands to spin up and down the disks of + the array. + * Adds new "devices" command to print the devices associations in + the array. + * Changes the log handling. If no log file is specified, all the + warnings and not fatal errors messages goes to stderr. If a log file + is specified, only fatal error messages are printed on the screen. + You can control the amount of informative messages on stdout with + the -q, --quiet and -v, --verbose options, that can be specified + multiple times to be more quiet or verbose. + * In the "status" command the "Wasted" column now shows a negative + number for the amount of space that you can still waste without + filling up the parity. + * In the "status" and others commands we now use GB instead of GiB, + when referring to disk space. + * Renames the -s and -t options to -S and -B as they are intended to + be manual only operations. + * Windows binary built with gcc 4.8.1 using the MXE cross compiler 2.23, + with targets i686-w64-mingw32 and x86_64-w64-mingw32. Before the x86 + target was i686-pc-mingw32. + + -- Maxim Tikhonov Thu, 30 Apr 2015 23:01:55 +0400 + +snapraid (7.1-0tikhonov1~precise) precise; urgency=medium + + [ 7.1 2015/01 ] + * In 'scrub' and 'sync' detects and reports Input/Output errors + separately from generic file system errors. + * In 'diff' doesn't print the "add" entry if a "copy" one is already + printed. + * Fixes build with old compilers in the x64 platforms [Leigh Phillips]. + * Fixes out-of-dir builds [Christoph Junghans]. + + -- Maxim Tikhonov Wed, 11 Mar 2015 20:36:58 +0400 + +snapraid (7.0-0tikhonov2~precise) precise; urgency=medium + + [ 7.0 2014/11 ] + * In 'check' and 'fix' the array is scanned to find any moved files + that could be used to recover missing data. Files are identified by + timestamp, and then they are recognized also if moved to a different + disk. Note that even if there are false positive they are identified + checking the hash, so they have not effect, besides making the + process a little slower. To disable this new behaviour you can use + the -N, --force-nocopy option. + * The -i, --import command now identifies files by timestamp making it + very fast in importing directories. + * More detailed 'status' report with single disk stats and free space + available. + * A lot faster directory listing for Windows. + * Adds AVX2 support to improve parity generation speed. + * Prints the time spent waiting for each disk also in 'scrub'. + * The CPU usage, speed and ETA estimations are now based on the last 100 + seconds rather than from the start. + * Keeps track of the UUID of the parity disks to check them before + operating. + * Windows binary built with gcc 4.8.1 using the MXE cross compiler 2.23. + + -- Maxim Tikhonov Thu, 27 Nov 2014 00:36:59 +0400 + +snapraid (6.2-0tikhonov1~precise) precise; urgency=low + + [ 6.2 2014/5 ] + * Fixed the regression test when run as root. + * Added a new heuristic to detect file copies. Now a file is assumed + to be a copy if name, size and nanosecond timestamp are matching, + but if the nanosecond part of the timestamp is 0, it requires + the full path matching and not only the name. + * Added the -N, --force-nocopy option to disable completely + the copy detection. SnapRAID also suggests to use this option + in the error message of a data mismatch if likely caused by the + copy detection. + + -- Maxim Tikhonov Wed, 16 Jul 2014 01:01:09 +0400 + +snapraid (6.1-0tikhonov1~precise) precise; urgency=high + + [ 6.1 2014/4 ] + * Fix build and regression test in Mac OS X. + + -- Maxim Tikhonov Tue, 22 Apr 2014 00:22:07 +0400 + +snapraid (6.0-0tikhonov1~precise) precise; urgency=low + + [ 6.0 2014/3 ] + * In "sync", even if a silent error is found, continue to update + the parity if it's possible to correct the error. + Note that the block will be marked bad, and the data + will be fixed only at the next "fix -e" call. + But any new data added will be protected if you are using + enough parity to fix both the silent error and at least + another potential error. + * Detect copied files from one disk to another and reuse the already + computed hash information to validate them in "sync". + Files are assumed copied if they matches the name, size and timestamp. + * For "sync", added a new -h, --pre-hash option to run a preliminary + hashing step for all the new files to ensure to detect silent errors + caused by the heavy machine usage of the parity computation. + * In "fix", if a previous fixing attempt was made resulting in a + .unrecoverable file, uses this file as starting point for the + new attempt. + * In the log file name allows the use of the '>>', %D, %T modifiers + to select append mode, and to insert the date and time in the name. + * The options -p, --percentage and -o, --older-than now keep their + default value even if the other one is specified. + * Moved the .lock file in the same dir of the first specified content + file. This avoid to spin-up the parity disks in all commands. + * The "diff", "list", "dup", "status" and "pool" commands don't access + anymore the parity disks that can now stay powered down. + * The default configuration file in Windows is now searched in the same + directory where the snapraid.exe file resides. + * New source code organization. The RAID engine is now + an external component usable also in other projects. + + -- Maxim Tikhonov Fri, 11 Apr 2014 02:43:52 +0400 + +snapraid (5.3-0tikhonov1~precise) precise; urgency=low + + [ 5.3 2014/3 ] + * Don't warn about UUID changed if it's for an empty disk. + * Fixed the number of blocks that scrub has to process when + selecting a high percentage of the array. + * Removed duplicate recovery attempts in synced state. + + [ 5.2 2013/12 ] + * If a disk changes UUID, automatically disable the inode + recognition, because this is likely a new filesystem with + all the inodes reassigned, and we don't want to risk a false + positive when searching for inode/timestamp/size. + * Allow to run a fix command with disks that doesn't need to be + fixed mounted as read-only. + * After a failed sync, always reallocates new files with a not + yet computed parity to ensure to minimize the parity usage, + if some other file is deleted in the meantime. + * Doesn't count empty dirs as files in the diff counters. + * Added a new "share" configuration option to allow to share + in the network the pool directory also in Windows. + * Fixed build problems in OpenBSD due the old assembler. + * Fixed build problems in platforms different than x86. + + [ 5.1 2013/12 ] + * Fixed a potential crash if a file is deleted during a "sync/scrub". + This is a problem introduced in version 5.0 due new logging. + If happened to you to have a crash in sync, you don't need to + take any special action, just run "sync" again. + * Restored the functionality of -C, --gen-conf command. + * Prints the files with duplicate physical offset if the + -v, --verbose option is specified. + + -- Maxim Tikhonov Tue, 11 Mar 2014 18:56:46 +0400 + +snapraid (5.0-0tikhonov1~precise) precise; urgency=low + + * New upstream release. + + [ Upstream changelog 4.4 ] + * Added support for up to six levels of parity. + * Added a specific and faster triple parity format for CPUs that + don't support SSSE3 instructions like ARM and AMD Phenom, Athlon + and Opteron. + * Faster RAID5 and RAID6 implementation for ARM 64 bit CPUs. + * If a silent error is found during a "sync" command, directly marks + the block as bad like in "scrub", without stopping the the "sync" + process. + * Sort files by inode when listing the directory. This improves + the scanning performance. + * For files with changes only in some blocks, updates the parity + only for blocks that really are changed. + This improves the performance in sync for modified files. + * Added a new "list" command to see the stored list of files. + * Removed the detailed list of errors from the screen output. + To get it you must explicitely use the -l, --log option. + It's now too detailed for the screen, because it contains a lot + of info. + * Changed the output format of some commands to make it similar + at the new "list" one. + * Reduced memory usage removing some unnecessary allocations. + * Added a memory test on the memory buffers used in sync/scrub/check/fix + before using them. + + -- Maxim Tikhonov Mon, 25 Nov 2013 15:58:37 +0400 + +snapraid (4.4-0tikhonov1~precise) precise; urgency=low + + * New upstream release. + + [ Upstream changelog 4.4 ] + * Relaxed the check about small parity files, to allow to recover after a + failed sync before resizing the parity files. + + [ Upstream changelog 4.3 ] + * Fixed the scrub command with the -p0 option. Now it really scrubs only the + blocks marked as bad and not the full array. + + [ Upstream changelog 4.2 ] + * Fixed the wrong warning about physical offsets not supported caused by files + not having a real offset because too small. For example, in NTFS it's possible + to store such files in the MFT. It's just a cosmetic change, and not a + functional one. + * Remove unexpected 'Restore' entries in the diff output when dealing with + filesystem without persistent inodes like NTFS in Linux. + * Added support for filenames containing newlines. This happens in Mac OS X. + + [ Upstream changelog 4.1 ] + * If the underline filesystem doesn't support the FIEMAP command, automatically + fallback to use FIBMAP for sorting files. + * Fixed the import of content files from previous version of SnapRAID that are + the result of an incomplete sync. + * Added a new -C, --gen-conf option to generate a dummy configuration file from + the info in the content file. Just in case that you lose everything, except + the content file. + * At the end of sync/scrub/check/fix prints "Everything OK" if no error was found. + This should make clear that everything is really OK. + + [ Upstream changelog 4.0 ] + * New 'scrub' command to periodically check the oldest blocks for silent + errors without the need to scan the whole array. + * New 'status' command to check the fragmentation, the last check time + distribution, and the silent error status of the array. + * Added the new Spooky hash. It's faster in 64 bit architectures. To + convert you can use the new 'rehash' command. + * Changed to a binary content file to improve speed and reduce size. + * Removed the --find-by-name, -N option. Now it always searches + by name if a file is not found searching by inode, automatically + reassigning inodes in restored files without needing to sync + again the file. This happens only if the file has the same path, size + and timestamp at nanosecond precision. + * Added a hash seed to make harder intentional collision attacks. + * When inserting files for the first time, sort them by their physical + address to improve read performance. + * Optimized the cache use for the all the RAID computations. + This improves a lot the RAID performance. + * Better selection of the RAID6 implementation for different CPUs. + * Added RAID5/RAID6 mmx and sse2 implementations with unrolling by 4. + They are a little faster than the previous unroll by 2. + * Added a lock file to avoid multiple running instances on the same array. + The file is named as parity file adding the .lock extension. + There is also the undocumented --test-skip-lock to avoid to check it. + * Automatically ignores, with warning, mount points inside the array + directory tree. + * Changes the 'dup' output format to include the size of each duplicate file. + + -- Maxim Tikhonov Fri, 01 Nov 2013 00:04:46 +0400 + +snapraid (3.2-0tikhonov1~precise) precise; urgency=low + + * New upstream release. + + [ Upstream changelog 3.2 ] + * Fix a directory creation problem in Windows when the "disk" option points to + the root directory of a drive. Now SnapRAID won't complain about the + inability to create such directory. + If you encouter this problem when trying to recover your data, just upgrade + to this version, and you'll be able to complete the recovering process. + No need to upgrade for platforms different than Windows. + + [ Upstream changelog 3.1 ] + * Direct use of Windows API for disk access to improve error reporting. + * If the 'fix' process is aborted, it removes all the new files partially + recovered, to allow to reuse again the '-m, --filter-missing' flag. + * In Windows don't exclude anymore system files. Only system directories are + excluded. + * In Windows applies filters in case insensitive way. + * The Windows binaries are now built with gcc 4.7.2. + * Reduced memory occupation for hardlinks and directories. + * In 'dup' don't list file with 0 size. + + -- Maxim Tikhonov Fri, 09 Aug 2013 17:43:06 +0400 + +snapraid (3.0-0tikhonov1~precise) precise; urgency=low + + * New upstream release. + + [ Upstream changelog ] + * Added pooling support with the new 'pool' command. It creates a virtual + view of the array using symbolic links pointing to the original files. + * Added a new -m, --filter-missing option that allow to undelete files, + without checking/fixing the others. + * Added a new -i, --import option to automatically import deleted files + when fixing. + * Added a new -l, --log option to save to disk the detailed log. + * Added support also for hardlinks and empty directories. + * Added support to save symlinks to files in Windows. Note that only the + symlink is saved and not the linked file. + Symlinks to dirs and junctions are still not supported in Windows. + * Files without read permission generate an error instead of a warning. + You now must explicitely exclude them in the configuration file with + exclusion rules. + * In 'check' and 'fix', if verbose is enabled, prints the result for each + processed file. + * Added an UUID check to detect when a disk is replaced, and to prevent + unwanted disk swaps. + + -- Maxim Tikhonov Wed, 03 Apr 2013 13:01:53 +0400 + +snapraid (2.1-0tikhonov1~precise) precise; urgency=low + + * New upstream release. + + [ Upstream changelog ] + * Checks for wrong empty fields in the configuration file. + * Filter rules for files are not anymore applied to directories. + + -- Maxim Tikhonov Mon, 28 Jan 2013 02:10:28 +0400 + +snapraid (2.0-0tikhonov1~precise) precise; urgency=low + + * New upstream release. + + [ Upstream changelog ] + * Added a new -a option to make the 'check' command to only check file hashes + without checking the parity data. + * Added a new -d option to filter by disk name. + * The file modification time is now saved using nanosecond precision. + This allows to restore the exact modification time in 'fix'. + The new 'content' files written with this version are not backward + compatible, but it's still possible to read the old 'content' format. + * Fixed hard-links automatic exclusion. All the hardlinks after the first one + are now correctly ignored. + * If it isn't possible to grow a parity file, prints the list of files + outside the maximum size allocated. + * Autosave isn't triggered if we are near the end of the 'sync' process. + * Before starting a 'sync', we wait for two seconds, to workaround the FAT + limitation of having two seconds modification time precision. + This a safe measure to be 100% sure to always detect file changes. + * Always fill the memory after allocating it to avoid the OOM (Out Of Memory) + killer in Linux. + * Fixed compilation in Solaris/OpenIndiana for lacking both futimes() + and futimens(). + * Now 'sync' ensures that the parity files are not too small to contain the + just loaded data. + * Removed the '-H,--filter-nohidden' option. It doesn't make sense to + have it as command line option. + You must use the 'nohidden' option in the configuration file. + * When opening files in read-only mode, also specify the noatime flag, + to avoid to update the file access time. + * Exclude rules for files are now also applied to directories. + This allows to excludes some file/directory without the need to call + the stat() function on them. + * The -N, --find-by-name option also ignores the nanosecond part of + timestamps to work with copy programs not supporting nanoseconds. + * Fixed deduplicated files handling in Windows Server 2012. + * Removed MD5 support. + + -- Maxim Tikhonov Thu, 06 Dec 2012 00:38:20 +0400 + +snapraid (1.13-0tikhonov1~precise) precise; urgency=low + + * New upstream release. + + [ Upstream changelog ] + * Fixed a Segmentation Fault when checking/fixing if there are three or + more errors in a specific block. + + -- Maxim Tikhonov Mon, 05 Nov 2012 16:31:22 +0400 + +snapraid (1.12-0tikhonov1~precise) precise; urgency=low + + * New upstream release 1.12. + + [ Upstream changelog ] + * Fixed file renaming in Windows during a 'fix' command. This is only a + Windows issue, no reason to upgrade for other platforms. + + -- Maxim Tikhonov Thu, 20 Sep 2012 13:13:40 +0400 + +snapraid (1.11-0tikhonov1~precise) precise; urgency=high + + * New upstream release 1.11. + + [ Upstream changelog ] + * Fixed again directories inclusion. Exclusion rules for directories were ignored. + + -- Maxim Tikhonov Mon, 09 Jul 2012 19:06:01 +0400 + +snapraid (1.10-0tikhonov1~precise) precise; urgency=low + + * New upstream release 1.10. + + [ Upstream changelog ] + * Fixed directory inclusion, in case the last rule is an "include" one. + * Fixed very long paths in Windows. We now always use the special '\\?' prefix to remove the 260 chars limitation. + * If a file is excluded, it prints explicitely which attribute caused the exclusion. + * Automatically excludes also the temporary copy of content file, the one with the ".tmp" extension. + * Avoid the Windows system to go in automatic sleep mode when running. + + -- Maxim Tikhonov Sun, 01 Jul 2012 21:43:16 +0400 + +snapraid (1.9-0tikhonov1~precise) precise; urgency=low + + * New upstream release 1.9. + + [ Upstream changelog ] + * Implemented a more sophisticated recovering in case a harddisk failure happens during a 'sync' + command. When using RAID6 it improves the chances of recovering data after an aborted 'sync'. + * Fixed the count of new files. + * Added a new 'autosave' configuration option to save the intermediate 'sync' state. + * Supported filesystems with read requests returning less data than requested. + * In Windows ensures that the disk serial number is not zero. + + -- Maxim Tikhonov Tue, 10 Apr 2012 17:31:51 +0400 + +snapraid (1.8-0tikhonov1~oneiric) oneiric; urgency=low + + * New upstream release 1.8. + + Upstream changelog: + * Added a new "dup" command to find all the duplicate files. + * Added a new option "--filter-nohidden" to exclude hidden files. + * Faster and parallel writing of content files. + * The example configuration files now put the content files in the data + disks instead than in the parity disks. + * Added a checksum at the content file to ensure its integrity. + * Using fallocate() instead posix_fallocate() to avoid the very slow + posix_fallocate() fallback of writing the whole file. + + -- Maxim Tikhonov Sat, 17 Mar 2012 19:15:07 +0400 + +snapraid (1.7-0tikhonov2~oneiric) oneiric; urgency=low + + * Fixed example snapraid.conf. + + -- Maxim Tikhonov Sat, 24 Dec 2011 01:28:39 +0400 + +snapraid (1.7-0tikhonov1~oneiric) oneiric; urgency=low + + * Initial release. + + -- Maxim Tikhonov Thu, 22 Dec 2011 19:46:17 +0400 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +7 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..3d8a2e0 --- /dev/null +++ b/debian/control @@ -0,0 +1,28 @@ +Source: snapraid +Section: utils +Priority: extra +Maintainer: Maxim Tikhonov +Build-Depends: debhelper (>= 7.0.0), autotools-dev +Standards-Version: 3.9.2 +Homepage: http://snapraid.sourceforge.net/ + +Package: snapraid +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends} +Description: SnapRAID is a backup program for disk arrays. + SnapRAID is a backup program for disk arrays. + . + SnapRAID stores redundancy information in the disk array, and it allows recovering from up to two disk failures. + . + SnapRAID is mainly targeted for a home media center, where you have a lot of big files that rarely change. + . + Beside the ability to recover from disk failures, the other features of SnapRAID are: + - You can start using SnapRAID with already filled disks. + - The disks of the array can have different sizes. + - You can add more disks at any time. + - If you accidentally delete some files in a disk, you can recover them. + - If more than two disks fail, you lose the data only on the failed disks. All the data in the other disks is safe. + - It doesn't lock-in your data. You can stop using SnapRAID at any time without the need to reformat or move data. + - All your data is hashed to ensure data integrity and avoid silent corruption. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..e784f0b --- /dev/null +++ b/debian/copyright @@ -0,0 +1,40 @@ +Format: http://dep.debian.net/deps/dep5 +Name: snapraid +Upstream-Name: snapraid +Maintainer: Maxim Tikhonov +Source: http://sourceforge.net/projects/snapraid/files/ + +Files: * +Copyright: 2011 Andrea Mazzoleni +License: GPL-3 + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + 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. + . + On Debian systems, the complete text of the GNU General + Public License can be found in `/usr/share/common-licenses/GPL-3'. + +Files: debian/* +Copyright: 2011 Maxim Tikhonov +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + 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. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..b5b4f42 --- /dev/null +++ b/debian/docs @@ -0,0 +1,9 @@ +AUTHORS +CHECK +COPYING +HISTORY +INSTALL +README +TODO +snapraid.conf.example +snapraid.txt diff --git a/debian/install b/debian/install new file mode 100644 index 0000000..33d75ec --- /dev/null +++ b/debian/install @@ -0,0 +1,2 @@ +debian/snapraid.conf etc +snapraid usr/bin diff --git a/debian/manpage.1 b/debian/manpage.1 new file mode 120000 index 0000000..fea9e05 --- /dev/null +++ b/debian/manpage.1 @@ -0,0 +1 @@ +../snapraid.1 \ No newline at end of file diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..c30bbdb --- /dev/null +++ b/debian/rules @@ -0,0 +1,21 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. +# +# Modified to make a template file for a multi-binary package with separated +# build-arch and build-indep targets by Bill Allombert 2001 + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# This has to be exported to make some magic below work. +export DH_OPTIONS + + +%: + dh $@ diff --git a/debian/snapraid.conf b/debian/snapraid.conf new file mode 100644 index 0000000..a22c478 --- /dev/null +++ b/debian/snapraid.conf @@ -0,0 +1,86 @@ +# Example configuration for snapraid + +# Defines the file to use as parity storage +# It must NOT be in a data disk +# Format: "parity FILE_PATH" +parity /mnt/diskp/snapraid.parity + +# Defines the files to use as additional parity storage. +# If specified, they enable the multiple failures protection +# from two to six level of parity. +# To enable, uncomment one parity file for each level of extra +# protection required. Start from 2-parity, and follow in order. +# It must NOT be in a data disk +# Format: "X-parity FILE_PATH" +#2-parity /mnt/diskq/snapraid.2-parity +#3-parity /mnt/diskr/snapraid.3-parity +#4-parity /mnt/disks/snapraid.4-parity +#5-parity /mnt/diskt/snapraid.5-parity +#6-parity /mnt/disku/snapraid.6-parity + +# Defines the files to use as content list +# You can use multiple specification to store more copies +# You must have least one copy for each parity file plus one. Some more don't hurt +# They can be in the disks used for data, parity or boot, +# but each file must be in a different disk +# Format: "content FILE_PATH" +content /var/snapraid.content +content /mnt/disk1/snapraid.content +content /mnt/disk2/snapraid.content + +# Defines the data disks to use +# The name and mount point association is relevant for parity, do not change it +# WARNING: Adding here your /home, /var or /tmp disks is NOT a good idea! +# SnapRAID is better suited for files that rarely changes! +# Format: "disk DISK_NAME DISK_MOUNT_POINT" +data d1 /mnt/disk1/ +data d2 /mnt/disk2/ +data d3 /mnt/disk3/ + +# Excludes hidden files and directories (uncomment to enable). +#nohidden + +# Defines files and directories to exclude +# Remember that all the paths are relative at the mount points +# Format: "exclude FILE" +# Format: "exclude DIR/" +# Format: "exclude /PATH/FILE" +# Format: "exclude /PATH/DIR/" +exclude *.unrecoverable +exclude /tmp/ +exclude /lost+found/ + +# Defines the block size in kibi bytes (1024 bytes) (uncomment to enable). +# Default value is 256 -> 256 kibi bytes -> 262144 bytes +# Format: "blocksize SIZE_IN_KiB" +#blocksize 256 + +# Automatically save the state when syncing after the specified amount +# of GB processed (uncomment to enable). +# This option is useful to avoid to restart from scratch long 'sync' +# commands interrupted by a machine crash. +# It also improves the recovering if a disk break during a 'sync'. +# Default value is 0, meaning disabled. +# Format: "autosave SIZE_IN_GB" +#autosave 500 + +# Defines the pooling directory where the virtual view of the disk +# array is created using the "pool" command (uncomment to enable). +# The files are not really copied here, but just linked using +# symbolic links. +# This directory must be outside the array. +# Format: "pool DIR" +#pool /pool + +# Defines a custom smartctl command to obtain the SMART attributes +# for each disk. This may be required for RAID controllers and for +# some USB disk that cannot be autodetected. +# In the specified options, the "%s" string is replaced by the device name. +# Refers at the smartmontools documentation about the possible options: +# RAID -> https://www.smartmontools.org/wiki/Supported_RAID-Controllers +# USB -> https://www.smartmontools.org/wiki/Supported_USB-Devices +#smartctl d1 -d sat %s +#smartctl d2 -d usbjmicron %s +#smartctl parity -d areca,1/1 /dev/sg0 +#smartctl 2-parity -d areca,2/1 /dev/sg0 + diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..357d387 --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=3 +https://github.com/amadvance/snapraid/releases .*snapraid-([0-9.]*\.[0-9.]*).tar.gz