Changelogs » Cfv

PyUp Safety actively tracks 268,179 Python packages for vulnerabilities and notifies you when to upgrade.



* Now fully unicode aware.  Work is done internally in unicode, only translating to encoded form on input/output.
  * Added --encoding option.
  * Specifying --encoding=raw will allow working with broken filenames. (But really, you should just fix them, if possible.)
  * Torrent files now default to UTF-8 filename encoding, and specify the encoding field in the metainfo.
  * The encoding of text checksum files that start with a Unicode BOM is auto detected.
  * Python 2.3 is now the minimum supported version.
  * Decode the torrent comment field too.
  * Changed handling of -f: Now all options are checked before testing/creating the file. (Benjamin Hohl)
  * Torrent file handling no longer requires BitTorrent client to be installed.
  * Support for GNU coreutils sha224sum, sha256sum, sha384sum and sha512sum formats.
  * New project home:


* Fix python2.6 md5 and sha module deprecation warnings.


* Print help output to stdout under non-error conditions. (Requested by Simon Howard)
  * Work around mmap file descriptor leak in Python 2.4.2.
  * Support different module layout of BitTorrent 5.x.
  * Fix "struct integer overflow masking is deprecated" warning.  (Reported by jjacobs2)
  * Add --private_torrent flag. (Requested by Anders Henke)
  * Work around bug in Python (only manifests with 64-bit Python version >= 2.5) which causes checksums of files > 4GB to be incorrectly calculated (when using mmap, eg, when the progress meter is disabled or not shown.)


* Fix TypeError when using progress meter and checksumming stdin.
  * Fix progress meter spew when checksumming special files(devices, named pipes, etc.)
  * Sort list of checksum types in --help output.
  * Make -t help (or -t with unknown type) print list of types, with descriptions.


* Added special hack for multi-file .torrents to automatically strip the first path component off if it doesn't exist. (Allows testing .torrent files within their dirs without having to manually do --strip=1)
  * Added .torrent creation support.
  * Fix testing torrents which contain large number of files giving "too many open files" errors.
  * Fix failure of -n in renaming bad files when testing a torrent file on windows due to windows not allowing renaming a file that is open.
  * Fix TypeError when using --progress=yes and not running under a tty and COLUMNS env var is set. (Reported by Steven Mueller)
  * Work around mmap error on large files. (Reported by Sapheriel)
  * Added sha1sum file support (-t sha1).


* Handle .torrent files that have the creation date encoded as a string.
  * Handle .torrent files that specify the filename encoding.
  * Fix exceptions when trying to print unicode filenames containing non-ascii characters.
  * Add -s option to search for misnamed files.
  * Make .torrent support try BitTornado module if BitTorrent isn't found.
  * Fix --strippaths=0 handling of multiple leading slashes and of dos-style drive letters with forward slashes.
  * Improve handling of " and , in filenames in CSV files. (CSV parsing still won't be 100% correct, but doing any better would basically require adding a dependancy on some external csv module..)
  * Replace automagic buggy-quoting workaround with --unquote option, fixes --strippath handling of quoted filenames and avoids potential insanity with -n, -s, and quoted filenames.


* Optimize progress meter display when checking lots of small files.
  * Add .torrent file support (requires BitTorrent.)


* Add -l/-L options to toggle symlink following.
  * When following symlinks, don't die on cycles.
  * Ignore redundant FileDesc packets in PAR2 files.
  * Check that PAR2 files have FileDesc packets for every file listed in the Main packet.
  * Cache file checksums in memory in case they are verified by multiple checksum files.
  * -u now works correctly with deep checksum files.
  * -u option will now show dir/* if no files in a dir were verified. (--list=unverified still lists each unverified file.)
  * -uu can be used to force showing all unverified files.
  * Fix handling of the [files...] arguments in recursive test mode.
  * Add .p[0-9][0-9] (par1 recovery files) to the list of checksum file extensions to test automatically.
  * Fix FutureWarning "%X of negative int ..." on Python 2.3.
  * Add progress meter for file checksumming. (Can be toggled with the progress option.)
  * Only the new version 1.7 of fchksum module is supported.
  * Fix fixpaths option on windows.


* Support md5sum files with comments in them.
  * Support PAR2 files.
  * Specifying -t in testmode without -f will cause cfv to only test files it finds if they are of the given type.
  * Doesn't try to test csv files with more than 4 fields as csv4 files.
  * Updated my email address.  The old one should still forward for about a year, but you should switch to using the new one when contacting me.
  * Support _cfvrc as an alternate name for .cfvrc.
  * Add win32src zip and win32 installer exe (using NSIS and py2exe).


* Fix exception in test mode when specifying -t and -f with a non-existant file.
  * Add support for sfvmd5 files generated by some windows software. (Just a SFV formatted file using md5 checksums rather than crc32.)
  * Handle quoted paths and filenames in csv4 files.
  * Add filename_type .cfvrc option to allow user overriding of what type of checksum file to create when -t isn't specified and -f is.
  * Only print the md5sum "tested in textmode" warning once, and print a count at the end.


* Fix make install when target directories don't already exist. (Reported by Svend S. Sorensen)
  * Fix cfv -u -t blah -f foo.blah from reporting foo.blah as unverified.
  * Make create mode also display seperate stats per checksum file.
  * Make create mode be verbose in verbose mode.
  * Fix exception on error creating/writing a checksum file. (Eg, in a readonly dir, or a full drive.)
  * Accept files with weird line endings (eg \r\r\n).
  * Add support for (JPEG Sheriff format) .crc files.  (The dimensions column is only added if The Python Imaging Library is avialable.)
  * Fix printing incorrect paths for subsequent files in recursive mode after encountering a directory that could not be accessed.


* Due to architectural changes, unicode requirements(for .par support), etc, cfv now requires python 1.6 or higher.
  * Add test-only support for PAR files. (python 1.6 or 2.2 recommended for better performance.)
  * Print first SFV comment line in testing from blah.sfv line.  (usually shows creating sfv program/creation time.)
  * Add --strippaths option. (Like patch's -p/--strip option.)
  * Revamp --showpaths option parsing, and add relative mode. (Note, auto-relative is now the default, to get the old behaviour specify "showpaths auto-absolute" in your .cfvrc)
  * Added cmdlineglob config option.
  * Added -Q command line arg to show only status lines.
  * Alternate method of setting verbose .cfvrc option (using command line verbosity option letter.)


* Fix file.close() exception on -C in empty dir.
  * Add mmap support for faster checksumming when not using fchksum module.
  * Add CFV_NOFCHKSUM and CFV_NOMMAP env vars. (Mostly for testing/debugging.)
  * Handle files made by buggy programs that add quotes to filenames.
  * Print stats about number of case differences and quoted filenames.
  * In recursive mode, an unaccessible dir no longer causes an exception. (Reported by Harley Gorrell)
  * Fix excessive memory usage on deep recursive create mode in tree with lots of files. (Reported by Harley Gorrell)
  * Display seperate stats per checksum file, and (if needed) a total at the end.
  * In create mode, an already existing checksum file now causes a cferror, rather than an immediate exit.


* Support bsd style md5 files (-t bsdmd5).
  * Make not attempt to verify against md5sum if it is not available (ie, on bsd). (reported by Hannu Liljemark)
  * No longer attempt to set user/group in make install.
  * Add raw listing output options. (--list/--list0)


* Fixed ignore case for deep (-rr) checksum files.
  * Added gzipped checksum file support.
  * Added change to directory first option (-p).
  * Makefile uses PYTHON var instead of hardcoded "python".
  * Added configurable renaming of bad files.
  * Extended --version output.


* Fixed makefile not finding pkgdir if installing to /usr/local and no site-packages in /usr/local is in python's sys.path.
  * Added -q option.
  * Make exit status a bitwise or of the various possible error types.
  * Added cferror counter/exit status for unrecognized checksum files.
  * Catch errors opening checksum files and set cferror counter instead of exiting with unhandled exception.
  * Add error message for reading unrecognized lines in a checksum file, and set cferror counter.
  * Use Longs for per file sizes too, should be no large file issues anymore. (if you are using fchksum you should upgrade to 1.3 too.)
  * Time format uses .3 instead of .2 precision.


* Fixed reading md5sum files that had dos eol on non-dos systems.
  * Loosened .sfv file recognition all the way.
  * Added --help alias for -h.
  * Added --version.


* Made ignore case option always search for correct filename if using show unverified files mode.  Fixes problem with incorrectly showing some files as unverified on FAT drives.
  * Caches dir entries for much faster ignore case operation.
  * Accepts - to represent stdin for data source and/or stdout for destination of checksums.
  * Added -VV option.
  * Errors printed to stderr instead of stdout.
  * Uses class instances instead of imp module for checksum types.
  * If using fchksum module, you now need at least version 1.2 (due to stdin ability).


* Added ignore case option.
  * Added fix paths option.
  * Added handler for csv files with the dir seperate from the file name (-t csv4).
  * Makes any absolute paths found in checksum files into relative paths.
  * Added show paths option.


* Added test suite.
  * Fixed 'x not in list' error when using -u and checksum file was not among the files to be tested. (First bug found with test suite ;)
  * Exits with non-zero status if any errors occured.


* Fixed install wrapper stuff to compile _after_ it has been installed into the target dir.


* Fixed "illegal argument type" error when creating csv format files.
  * Added note to manpage about -rr and path seperators.
  * Added show unverified files option.
  * Fixed md5 file testing when specifying files to test as command line args.


* Added make install-wrapper option for faster startup times.
  * Uses long int value for total bytes read, to avoid overflow if you are checking a lot of files. (>=2GB, on 32bit archs)
  * Fixed divide by zero error on systems with lower resolution timers (ie, python-win32)
  * Ignore blank lines in .cfvrc
  * Loosened .sfv file recognition some more.
  * Handle error on creating/writing checksum file better.
  * Add handler for .csv files with no crc field (-t csv2).


* .sfv file recognition loosened a bit (nvCRC32 says generated using instead of by)
  * uses fchksum module if available. (1.1x-2.0x faster)


* recursive mode (-r and -rr)
  * only creates checksum file when there is actually something to put in it
  * if user doesn't specify files on command line, don't print errors about trying to add any directories and such


* md5sum support (-t md5)
  * config file support
  * missing file only check (-m)
  2000-06-22 - v1.0: first release