2.47 dd/mm/yy * Fixes: * Specified directories containing single quotes are again supported. This regression was introduced in 2.46. * Improvements: * Size totals in the GUI are now displayed in KB, MB, GB units. * Specified symlinks to dirs (like /bin) are processed as dirs. 2.46 01/02/17 * Fixes: * Selecting within and removal of GUI groups works again. This regression was introduced in 2.44. * "Bad symlinks" functionality works in the GUI again. This regression was introduced in 2.44. * Dangling symlinks are reported correctly for symlinks whose names end in 2 digits. * Empty directories now only lists actual empty dirs even if extra find parameters are specified. * Empty directories now ignore specified exluded paths, as they can impact whether an "empty" directory can be removed. * Single quotes in extra find params are now quoted, and no longer generate a syntax error. * Multiple adjacent spaces in command line params are preserved and no longer generate file not found errors. * Listing packages is supported for modern archlinux systems. * Improvements: * findup now includes zero length files by default. This can be changed with -size +0c, or the new GUI min size option. * findup no longer reports/remerges duplicates when there are other files being checked that are the same size. (The GUI already had such logic in place). * findup supports symlinking duplicates as well as hardlinking. * "Select from same folder" is now less CPU and RAM intensive. * A renamed duplicate file no longer auto removes another item in the group from display, to allow deleting it etc. 2.44 13/01/14 * Translations: * Added: Polish. * Updated: Galician,Czech,Spanish,France,Romanian,Serbian, Russian,Swedish,German. * Fixes: * finded now doesn't report passed non empty directories when not recursing. This regression was introduced in 2.40. * The wildcard selection dialog is displayed correctly again in German locales. This regression was introduced in 2.42. * File metadata is now maintained when cleaning whitespace. * findup -d now supports file names with trailing whitespace. * Changed the complexity of deleting files from O((n/2)*(n+1)) to O(n), n being the number of items in the GtkCList, not the number of items being deleted. * findns and findul now work with findutils >= 4.5.11 * Improvements: * Add support for selecting all files from the same folder as another file. 2.42 29/04/10 * Translations: * Added: Catalan, Galician. * Updated: Chinese,Czech,Danish,Dutch,Finnish,French,German, Greek,Hebrew,Hungarian,Italian,Malay,Russian,Spanish,Swedish. * Fixes: * Allow the findup script to run on CYGWIN by handling the different output format of md5sum et. al. on that platform. * The "Bad IDs" function in the GUI would error out if it found any items. This regression was introduced in 2.26. * Start the GUI even if the user's locale is not supported by the system. This regression was introduced in 2.40. * Don't warn about missing paths when adding wildcard paths to the exclude list. This regression was introduced in 2.40. * Don't throw an exception when one OKs an empty selection when adding dirs. This regression was introduced in 2.40. * finded now produces correct results when passed parameters with a trailing /. This regression was introduced in 2.40. * finded now produces correct results when passed empty branches as parameters. This regression was introduced in 2.40. 2.40 21/07/09 * Translations: * Added: Greek,Finnish,Hungarian. * Updated: Chinese,Danish,Dutch,German,Hebrew,Italian,Swedish. * Fixes: * Patch from Marcus Habermehl to support Arch linux as well as Frugalware in the "Installed Packages" function. * Handle single quotes in specified paths. * Support building Mandriva RPMs again from the tarball. * The redundant whitespace function now doesn't display errors when processing files with ':' in the path name. * Improvements: * Add a context menu item to "Open Folder" that contains the selected file. Suggestion from Scott Kostyshak. * Ask for confirmation, if all copies of a duplicate are selected for deletion. Suggestion from Endolith. * Add Pause/Resume buttons to control long searches. Suggestion from Scott Kostyshak. * In the "empty directories" tab, report empty branches rather than just empty leaf directories. Suggestion from Endolith. * Use GtkFileChooser rather than deprecated GtkFileSelection. Note we now require GTK+ >= 2.4 and python >= 2.3. 2.28 09/09/08 * Translations: * Updated: Turkish, French, German, Spanish, Malay, Dutch, Serbian, Chinese. * Fixes: * Better handle paths with unusual characters when searching for suspect symbolic links. * Work around a python bug triggered when the disk wastage of a group of duplicate files is > 2GB. * Fix "fix whitespace" script to remove trailing tabs. * Tweak some ancillary scripts to run on dash (ubuntu). * Fix the desktop menu file which broke the build on Mandriva. * Improvements: * Add support in the GUI for opening files in the registered default desktop application. * Update icon. * Improve layout of options in "redundant whitespace" tab. * Support from Marcus Habermehl for Arch linux (pacman) in the "Installed Packages" function. * Patch from David Geller to improve readability of output from findup in "dry run" mode. 2.26 20/05/08 * Translations: * Added: Czech, Turkish. * Updated: French, German, Malay. * Fixes: * Don't ignore duplicate files with '\' chars in the path. This issue was reported by Andrew U. Frank. * Don't abort reporting duplicates if the GUI can't process a particular file. This issue was reported by Andrew U. Frank. * When finding dupes, handle \f\r\v characters within filenames, rather than displaying an exception. * Use and document better syntax for excluding paths. * Honour/sanitize user specified wildcards for excluding paths. * Tweak "fix whitespace" script to run on dash (ubuntu). * Allow cli scripts to run from paths containing whitespace. * Fix erroneous reordering of certain find command parameters. * Improvements: * Make file deletion much easier by supporting the 'Delete' key, auto removing groups from display when only 1 item remaining, giving the option to not confirm every delete operation and not resetting column widths on every delete operation. * When we auto select packages for deletion due to dependencies, group all selected packages together for easier review. * Indicate using the mouse pointer that the application is busy, during the possibly long cleaning/deleting/merging processes. * Exclude more commonly aliased binaries when searching for conflicting program names in the $PATH. 2.24 19/09/07 * Translations: * Added: Hewbrew, Italian, Russian. * Updated: Chinese (simplified), French, German, Swedish, Vietnamese. * Fixes: * Make the GUI handle paths with spaces in names of empty dirs, and spaces at the end of names of duplicate files. * Make the "within groups" selection sub menu respond to not just right click, after clicking the "Select" button. This issue was reported by Andrew U. Frank. * Ensure the GUI honours all "directories to exclude". Previously directories with a trailing / were ignored. * Fix the packing of a few of the GUI widgets, so that all "action" buttons are the same size, and to allow the app window to be resized smaller than was previously possible. * Remove brace expansion from debian/rules to allow package to build on debian systems where dash is the default shell. * Fixed a bug reintroduced in 2.22 (GUI only) where duplicates with independent hardlinks were not reported correctly. * Rename findup --sizes option to the more accurate --summary. 2.22 28/06/07 * Translations: * Added: Spanish. * Updated: Danish. * Improvements: * Ensure all numbers are output appropriate to locale. * Add an indenting checker/fixer to the "redundant whitespace" function. This checks for erroneous mixing of tabs and spaces in the indenting at the start of a line, and the user can select to fix with tabs or spaces. * Set mouse pointer to "busy interactive" during searches. This makes it more obvious that work is progressing and that only parts of the GUI will be responsive. * Simplify the default output from the findup CLI tool, to make it easier to pipe. Use the --sizes option to get old format. * Add a "rename" function for paths. To activate: Select a path in a list and hit F2 or right click and select Rename... * Add a "copy path to clipboard" function for paths. To activate: Select a path in a list, and hit Ctrl-C or right click and select Copy. * Support a G_FILENAME_ENCODING which is different to the default character encoding. * Fixes: * Change duplicate file merging algorithm to be more robust in rare error conditions, to eliminate any chance of data loss. * Remove the cross device restriction from `findup -m`. * Position dialogs correctly over the FSlint window, and also don't leak the dialog memory. * Change popup (selection) menu so that it (dis)appears in response to more standard user events. This issue was identified by Bruce Byfield. * Ignore paths (indirectly) specified multiple times. This would cause duplicate file merging to break resulting in a file being deleted and not linked to a copy. * Handle paths containing '\n' characters. Previously this would cause various errors to be output. Bug report from Bjørn Ingmar Berg. 2.20 09/03/07 * Translations: * Updated: Danish. * Packaging changes: * Really support building SuSE specific RPMs from the tarball. Previously I used the "Application" category which is fedora specific. I now use only freedesktop standard categories. * Fix minor lintian warning in debian/control file. * Updated package descriptions so it's easier to find in repos. * Improvements: * Reduce CPU usage by 35% when finding dups. * Handle large, same sized files with differing content more efficiently, when finding dups. 2.18 25/12/06 * Translations: * Added: Danish. * Updated: Swedish. * Fixes for finding/merging duplicates across multiple filesystems: * Fix a bug introduced in 2.15 wrt the independent hardlinks fix. The bug was essentially that duplicates would only be found within one filesystem of the specified search path(s). Note this bug only affects systems with findutils >= 4.2 This bug was reported and fixed by Robert Seczkowski. * Make disk head seeks more efficient when finding duplicates, in the case where multiple filesystems on the same physical disk are being checked. * When merging duplicates using hardlinks, and those duplicates are on different filesystems, use symlinks rather than just deleting the files. * Packaging changes: * Support building SuSE specific RPMs from the tarball. * Simplify debian package so that it builds with dash. * Add gentoo ebuild from Cédrick Gaillard to web site. * GUI improvements: * Give updating "searching...." status, to ensure that users know the program is still running. * Give an explanation in status field for each function (tab). * Enable a default button for all dialogs (when enter pressed). * Provide a menu to greatly enhance the selection functionality. This was prompted by feedback from Rolf Leggewie. * Display all errors from an operation, not just the last. * Display any errors from "save results" operation. 2.16 02/07/06 * Fix bug introduced in 2.15 where no paths would ever be reported in "Invalid UTF8 mode". * Fix bug where we always reported 0 space wasted by temp files. * Fix bug where we left processes running if we exited the GUI while a search was running. This was reported by Christoph Haas. * Support building mandriva specific RPMs from the tarball. * Added a man page for fslint and fslint-gui. * Some debian package fixups suggested by lintian. * Some rpm package changes to align with the debian package. 2.15 20/04/06 * General cleanups suggested by Justin Pryzby, particularly in relation to debian packaging. * Fixed a bug where if one specified a directory containing a space in the name then none of the tools could handle it. This was reported by Chris Tasma. * Fixed a bug where duplicates with independent hardlinks were not merged correctly. This was reported by Gersom van de Bunt. * Fixed a bug where the -m option to findup could only be the last parameter. This was reported by Gersom van de Bunt. * Fixed a bug where all scripts were broken if started with a relative path and a single directory was passed as a parameter. This was reported by Gersom van de Bunt. 2.14 20/02/06 * Added transations: Malay, Chinese (simplified). * Added package management functionality for deb and rpm distros. One can list/sort all packages, and delete selected packages with full dependency analysis. * Support calling the command line tools from any directory, so for example adding /usr/share/fslint/fslint to the $PATH now works. Note the GUI is now invoked with the `fslint-gui` command and the command line version with the `fslint` command. * Changed the complexity of saving results from O((n/2)*(n+1)) to O(n). This was caused by GtkCList inefficiencies and reported by Stefan Westerfeld. * Created a debian package, which hopefully should work on, debian, ubuntu, xandros, ... I only tested on ubuntu breezy. * Fixed bug in the GUI where one couldn't cancel a find operation with the keyboard, if the caps lock or num lock were enabled. * Fixed bug in findnl where it would always flag non ascii alphanumeric chars as problematic. * Fixed bug in GUI where multiline errors were displayed on one line. * Change default GUI size from 640x480 to 800x600. * Correctly remove references to deprecated gtk.{TRUE,FALSE} while staying compatible with python versions prior to 2.2.1. 2.12 31/08/05 * Make disk usage calculation more efficient/robust. * Add findu8 util (exposed in "Bad names" tab in GUI), which reports file or directory names with an invalid UTF8 encoding. * Don't fall back to Latin-1 for character representations. Instead display replacement char for non ascii. * Convert control characters to their corresponding unicode control pictures for display. * Change from deprecated gtk.FALSE to False. * Make disk head seeks even more efficient by sorting by inodes rather than by path name when finding duplicates and non stripped binaries. * Double check (with sha1) md5 duplicates found, to make sure we don't get any false positives. 2.11 18/03/05 * Fix for internally generated error messages not being displayed. This bug was introduced in 2.10. 2.10 15/03/05 * Added translations: Vietnamese, Swedish. * Now handle non utf8 file and directory names in GUI. * Removed colouring of buttons and error text, as colours mean different things to different cultures. * Now doesn't remember selected directory if the dialog is canceled. * Changed status and list widgets to entry and textview respectively, so that one can copy and paste, status and error output. * Changed deprecated funtions as reported by pygtk2-2.4.0. * Implemented a findnl portability improvement suggested by Paul Eggert. * Updated docs with input from Helge Hielscher and Fab Mueller. 2.08 17/06/04 * Added translation: Brazilian Portuguese. * Fixed major bug where the GUI was grossly inefficient when reading data from the subordinate text tools. * Fixed all text tools when if one file specified it would be ignored. * Tiny update to french translation. 2.06 23/04/04 * Added translations: French, Serbian (cyrillic). 2.04 19/11/03 * Added translations: Dutch, Irish. * Fixed a few missing translations in the code. * Incorporated some of the packaging changes from Ville Skyttä that he did while creating the fedora rpm. * Gave all result lists a border for consistency. * Tidied search abort code, so confusing status/error not given, also Return key can now abort. 2.02 28/07/03 * Added language translation support (and translations for German, Romanian). * Handle keypresses while search is running so that user can abort using the keyboard {space,Ctrl-C,Esc}, and also other parts of the gui can't be activated. * Allow user to select files to exclude from merging of duplicates. * Some small code optimizations and cleanups. * Fix crash bug on startup for invalid locales. * Tried to make the GUI a little more obvious by seperating the "find/stop" button from the other "action" buttons. 2.01 26/03/03 * Added stop button, yay! * Handled case where program would deadlock if backend scripts wrote more than 1 buffer size to stderr (4K on Linux). * Optimized the cleaning of redundant whitespace and fixed buglet where space was counted as saved even if the file was unwriteable. * Fixed bug in findtf where core files wouldn't have been found on some (newer) systems. * Made the dialog boxes clearer/prettier. * Handle invalid search paths given on command line appropriately. 2.00 20/01/03 * Upgraded to gtk2 & python2 (hence the version jump). N.B. This is not backwards compatabile with python1.5 or gtk1. * python2 allowed fixing a bug where the size (in blocks used) of some duplicate files was underestimated by 1 block. * Now use explicit LC_CTYPE=C in all tools as I noticed huge performance degradation in sort (with redhat 8 patches) when UTF8 was in LANG or LC_CTYPE. * Revert bug introduced in findrs in V1.20 regarding : in filenames. * Changed all usage of sort of form -k5n to -k5,5n which is better. * Change error pane so it does not resize and main output pane does. * GUI now takes search paths as an option on the command line. * Tidied summary of duplicate groups in GUI. * Updated the docs. 1.22 27/03/03 * support python 2 1.21 06/01/03 * Allow to exclude paths that match a (glob) pattern, in addition to specific paths. * Fix bug where you weren't able to delete (empty) directories. * Fix version reported by GUI to 1.21 (from 2.00). * Reformat all lines to < 80 chars. * Added a FAQ. 1.20 16/12/02 * A GUI AT LAST! Implemented in python (>1.5), libglade and gtk (1.2). * A standard install procedure (rpm). * All tools now support piping to stdout in easily parseable format. * Reverted to previous implementation of findid, as the built-in -no{user,group} in find is much slower. This really shows the power of small cohesive utils over monolithic architectures. * Cleaned up fstool/dupwaste. * Cleaned up fixdup.{sh,py} (mostly to mirror GUI). * findsn and findbl now take -A param instead of -a (so there is no overlap with find). * findsn now outputs in grouped mode (newline between each group) by default. This puts a requirement on the new uniq which is part of textutils-2.0.21 or any coreutils. When piping output \0 is used to delimit rather than \n. * findtf has a new --age=x parameter. Previously you could only specify the age in core file mode, and also it used atime (in an incorrect way). Now it uses mtime correctly. * zipdir now works on ext3 and also checks for presence of cpio before preceeding. Both enhancements were suggested by Jan (Honza) Fikar. * findrs can now handle filenames with : in them. 1.14 27/09/02 * In the new findid tool there were 3 bugs (pointed out by tido at hushmail.com). 1. The regular expression was missing a trailing colon. 2. ls was missing a -b option (to escape non printable chars. 3. find actually has -no{user,group} options which would be better to use (making a lesser but still valid requirement for the findid script). * Added -b option to ls in findul and findns in case libraries or executables have non printable characters in their names. * Small performance enhancement to findnl (too many tr's started). * Spell checked this file for some reason :-). 1.13 25/09/02 * Enhanced the fslint script so findsn and findns print more useful information when you analyse the whole system (/). * Added new tool (findid) to report files that have invalid uid or gid. * Added -d option to findup which is like -m except it deletes all but one duplicate file rather than merging using hard-links. * Added -t option to findup so that it only reports changes that would result from -d or -m. * small comment update to findsn and whitespace cleanup to this file. 1.12 27/02/02 * Feck, forgot to update the version reported since V1.08! * Greatly reduce possible /tmp races in findul. Patch from Anthony D. Urso. * Added suspect link checking to main fslint script. * Documented fixdup more, and made it explicit/consistent in how it handles blank lines as input. * Changed default mode of findrs to only report file names, which is quicker. Added a new parameter (-c) to count the number of lines with redundant whitespace as was done previously. * Some small comment and test updates. 1.11 11/02/02 * Added a new mode to findup, which merges (using hard-links) any found duplicate files (-m). * Finally added suspect link checking to findbl (-s). * Added a "number of days old a core file has to be" option to findtf (-c[days]). * Usual small comments and cleanups. 1.10 08/01/02 * Added a new tool (findul) to report possible unused libraries, on the system. * Changed the field specifiers to sort in the various tools, to use the -kx.. option instead of the deprecated +x.. style. * The argument handling "fixes" applied in the previous version had problems where findnl & zipdir ignored all passed parameters, all tools had to have the global parameters (-r & -f at present) specified before any others, and there were various issues when no parameters were passed. This should all be fixed now. * Removed the bash dependency (declare) from getfpf. Marc A. Lehmann reported this. * Got rid of spurious 0 output by findrs when it had no files to report. * The usual extra comments and code cleanups. 1.09 25/08/01 * Added better core file checking to findtf (-c). It now does more thorough checking and prints more information about the core files it finds. * Removed the perl dependency (1 line from findbl!). I rewrote it in shell (again 1 line). * I cleaned up the argument handling of the various tools as it was quite silly really. Eivind Kjørstad prompted me to fix it. * Handled the special case of the redhatism /usr/bin/consolehelper which gave "false" positives for conflicting binaries (reported by the default mode of findsn). * Added an extra (albeit esoteric) check to "findbl -n". * Updated/fixed a few comments. 1.08 16/08/01 * Enhanced getffp so that duplicate entries in a users $PATH are handled correctly, and also common binary directories are always searched. This enhances findsn and findns. * Updated zipdir so that it doesn't process ext2 mount points. * Cleaned up all files so that they are <= 80 chars wide. * Handled case in findsn where files with \n's in the name would cause erroneous output. * Fixed (removed) silly argument handling in fslint script. 1.07 17/07/01 * Fixed default mode of findsn which reports redundant or conflicting files in the $PATH. Previously it was reporting hard-linked files with the same name as problematic which was wrong. Also it now handles symlinks and is therefore much more powerful. * Added aliases check to findsn (-a). * Added a new zipdir utility that reclaims wasted blocks in ext2 directories (ext2 doesn't auto shrink directories). * Updated the help text for findsn as it was confusing. * Removed the 2 binaries from the findns test directory as they were just a waste of space really. * Fixed a bug in findrs where it would miss some text files. * Slight update to findbl help text. * Fixed bug in getffp where it specified file types and also tidied it's documentation a little. * Removed the silly find version checking stuff from findup. * Added --version option to all utilities. * General documentation cleanups. 1.06 05/02/01 * Added new name case portability check to findsn (-c). * Updated the fslint script with the code above and also made a couple of cosmetic changes. * Added POSIX.1 filename portability checks to findnl (-p). * Added ignore case option (-C) to findsn. * Fixed $PATH handling bugs in findns (same as I done for findsn in the previous release). I created a script (getffp) that is called by both. Note this script can be called by any of the utilities, for e.g. findup `getffp`. * Changed output from findns (find Non Stripped executables) to order the found executables by size. * Removed device file from test directory as this caused problems when extracting. * changed all usage of source to include scripts to use the . syntax, to remove the dependency on bash. * Tidied tar archive so that no users/group info is included. 1.05 28/01/01 * Updated the fslint script with the new tools released in V1.02 and 1.04. * Added new check to redundant links for checking for links (to directories) with trailing /'s * Fixed $PATH handling bugs in findsn where links and invalid entries would cause problems. * Tidied tstlnt directories a little. * Updated documentation a little. 1.04 12/12/00 * Corrected errors in the documentation of the 1.03 changes below. * Added check for uniq -D support to findsn. * Changed findsl (stale links) to findbl (bad links), and added more options to find different forms of lint in symbolic links. * Added --help (or -h) to all scripts. * Renamed the test directories to something more sensible. * Renamed findts to findrs. * Added a check to findnl for names with trailing .'s. * Added a check to findtf for .pure files (purify remains). 1.03 09/12/00 * Changed findns (non stripped binaries) so it defaults to looking in the $PATH if no dirs/files specified. * Changed findsl to run output through ls so the broken target of the stale links is shown. * Tidied up the tstlnt directories so findup can be run from the base installation directory without finding loads of duplicates in various places. This also saved disk space. * Changed this log format so it can be correctly processed by txt2html. 1.02 04/12/00 * Documentation changes. * New tool (findsn (find duplicate names)). * New test in findnl to report files/dirs with more that 2 adjacent spaces in the name. * Fixed ambiguities in ls parameters in various scripts. 1.01 16/11/00 * Doug quale reported buglet in findup where it broke for files starting with -. His suggested fix was to add a -- option to the md5sum command. 1.00 14/11/00 * Initial release.