ukopp change log
================

2014.05.09  v.4.9
+ Revise for changes in GTK functionality with Ubuntu 14.04.

2013.10.12  v.4.8
+ Ignore incorrect EBUSY status from rmdir()
  kernel bug: https://lkml.org/lkml/2013/8/28/654

2013.03.01  v.4.7
+ Clarifications in GUI and user guide.

2012.11.01  v.4.6
+ Replaced deprecated GTK functions with new versions.

2012.07.20  v.4.5
+ Toolbar text was added back after Gnome decided to remove it.
+ Minor improvement in error reporting.

2012.04.23  v.4.4
+ Instead of doing a system-wide sync command after all files are copied, 
  fsync() is called at the end of each file. This is a little slower but 
  leaves the file system in good shape if the job does not complete.
+ Bugfix: overflow of memory array and crash if the file limit (200K) was
  exceeded. The bug was fixed and the limit raised to 500K files.

2012.02.01  v.4.3
+ Ukopp was converted to use GTK3 and Cairo. It will no longer
  build or install on older Linux distros lacking these libraries.
+ Target disk space statistics added to differences summary report.
+ RPM packages are built using Fedora and rpmbuild instead of alien.

2011.10.29  v.4.1
Many small improvements in usability and minor error corrections.
+ Main window states if ukopp is running as root or not.
+ If backup + verify, report both backup and verify status after verify.
+ If target directory does not exist, warn and offer to create it.
+ Better visual separation of fields in target chooser dialog.
+ Clarify backup menu as "backup (no verify)".
+ Widen fields in target chooser dialog.
+ Change the mouse pointer into a clock during a long-running function.
+ Stop job name from disappearing from main window title.
+ "include /aaa/bbb" same as "include /aaa/bbb/*" if bbb is a directory.
+ Expand input fields with the window in restore files dialog.
+ Restore original target device and directory if edit job is canceled.
+ File names can be quoted to handle files ending in a blank character.
+ Some error messages were clarified and dialogs kept open afterwards.
+ The file chooser dialog no longer hides the restore files dialog.
+ New report: summary stats for new/mod/deleted files by directory.
+ The tolerance to consider a disk file and its corresponding backup file
  to have the same modification time was increased from 1 to 2 seconds. 
  This is because the Microsoft VFAT time resolution is 2 seconds. 
+ All error messages are shown in the main window (not stdout).
+ Bugfix: purge expired backup versions also for files NOT being copied.
+ Prevent Choose Target and Edit Job dialogs from running in parallel.
+ Many small improvements were made to the user guide.

2011.09.22  v.4.0
+ Code cleanup for compiler warnings with GCC 4.6 (Ubuntu 11.10).
+ Separate File Save (no dialog) and Save As (file chooser dialog).
+ Added a warning for Quit with unsaved changes to backup job.
+ Job name was added to window title, with (*) indicator if edited.
+ Excluded files/folders no longer need to start with a top directory
  (e.g. exclude */folder1/fol*der2/*  works as expected).
+ Toolbar has more descriptive icons for mount and unmount.
+ Bugfix: one more file versions than requested was being saved.
+ Bugfix: quit job edit dialog left dependent file chooser dialog open.
+ Bugfix: report saved file versions: wrong value for expired bytes.

2011.05.01  v.3.9
+ A man page was added.
+ Window is dumped to log file before exit.
+ Detect error: selected file outside restore-from directory hierarchy.

2010.08.21  v.3.8
+ A button [root] was added to the toolbar. This restarts the application
  with root privileges if the queried password (sudo) is correct.

2010.05.19  v.3.7.1
+ Implement show/hide hidden files in restore file chooser dialog.

2010.03.25  v.3.7
+ Improve diagnostics when target file system does not support required
  functions (large file, direct I/O) or there is insufficient permission.
+ Bail out when there are excessive errors (e.g. permissions error).
+ Makefile was made more package-builder friendly.

2009.12.26  v.3.6
+ Support non-GUI mode for command-line / deferred execution (cron).
   (e.g. $ ukopp -nogui -run /.../my-ukopp.job)

2009.11.08  v.3.5.3
+ bugfix - file compare fails with NTFS (Windows) file system.
  Workaround implemented: avoid open(...O_DIRECT) with NTFS.

2009.10.25  v.3.5.2
+ Do remount only if device was mounted by ukopp, else use sync.
+ Use direct I/O for verify - sync leaves files in memory cache
  which defeats media verification.

2009.10.21  v.3.5.1
+ Do remount instead of sync to insure cache is written to disk
  (faster and affects only one device instead of all of them).

2009.10.03  v.3.5
+ GUI revised: retention specs for old file versions on the backup
  media are easier to specify and more conventional. Other changes 
  to the GUI were done to make it easier to use. Changes to job file 
  format will require minor re-editing.
+ Better detection of conflicts bewteen user intent and actual status.
+ Do auto unmount at end of job only if mount was done at start.
+ Auto deletion of mount point directory only when created by ukopp.
+ Bugfix: include/exclude filespec containing blanks did not work.

2009.09.23  v.3.4.2
Avoid deletion of non-existant directory and confusing error message.

2009.07.13  v.3.4.1
fix compile errors introduced by gcc 4.4

2009.03.30  v.3.4
The Linux program "udevinfo" has recently become "udevadm info". 
Ukopp was modified to use whichever variant works.

2009.03.26  v.3.3.2
Trivial changes to error messages.

2008.11.05  v.3.3.1
The USB stick format utility (vfat/ext2) was broken and has been fixed.

2008.11.02  v.3.3
The output format of the udevinfo command was changed, breaking ukopp's 
ability to find all mounted and unmounted disk devices. This version
of ukopp works with both the new and old udevinfo formats.

2008.09.20  v.3.2
+ Implement two methods for flushing the I/O memory cache to the backup
  device between backup and verify operations: sync command (no change) 
  and unmount/remount of target device (somewhat faster).
+ Improve convenience and robustness of backup target selection.
+ two minor bugs were fixed.

2008.08.03  v.3.0 and v.3.1
+ Do not discard symlink files - include them like regular files
  (symlink targets are included only if specified in job file)
+ Verify symlinks using readlink() function (v.3.1)
+ user guide changed from PDF file to HTML

2008.06.01  v. 2.9
+ change from build script to traditional makefile
+ change name from ukop to ukopp

2008.05.24  v.28
+ fix minor bug from linux file sort utility not consistent with strcmp()

2008.04.20  v.27
+ fix for change in behavior of lstat64() in newest c-lib
+ fix compiler warnings in newest gcc (stricter rules)

2008.03.20  v.26
+ make synchronize function work for VFAT (Microsoft) backup medium
  (use separate file for preserving owner and permissions data)
+ add command to format a backup device with vfat or ext2 file system

2008.02.29  v.25
+ add function to synchronize disk and backup medium in both directions
  (new and newer files are copied from disk to backup or the reverse)
+ modify differences report to show which file is newer: disk or backup
+ copy owner and permissions for created directories and files

2008.02.13  v.24
+ bugfix: crash due to defective default job file

2008.02.09  v.23
+ avoid confusing check of backup target directory
+ user confirmation of backup target before starting backup job

2008.02.04  v.22
+ retain specification includes optional filespec with wildcards
  (specify retain spec at finer level than include record)
+ new report: expired file versions (to be purged from backup location)

2008.01.29  v.21
+ separate build scripts for downloaders and package builders
+ code changes to get application directories from build script
+ cosmetic improvements in report formats and error messages
+ correct error in file versions report (Linux sorts '.' before ' ')

2008.01.20  v.20
+ backup file versioning: retain prior file versions for designated time 
  period and/or number of retained versions.
+ flush disk cache between backup and verify to insure verify data is 
  coming from the USB drive (replaces prior method using O_DIRECT).

2008.01.01  v.12
+ build script allows user to choose install location and desktop icon

2007.12.10  v.11
+ code cleanup for 64-bit architecture compatibility
+ verify thorough changed: all USB files are verified 
  (job file no longer relevant)

2007.11.15  v.10
+ new GTK requirement: if (! g_thread_supported()) g_thread_init(0);

2007.11.12  v.09
+ zdialog_add_widget, options argument delimiter change 

2007.10.15  v.08
+ fix significant bug in thorough verify: files not being compared 100%
+ don't lose comment records in job file
+ eliminate "end" record in job file (end is EOF)

2007.09.27  v.07
+ symlinks are copied, but target files are copied only if within the 
  backup file set (see user guide about restrictions with FAT file system)
+ accept job file on command line (without -job) (per Linux convention)
+ output a summary differences report when backup job begins
+ remove USB stick mount point from backup job file (does not belong there)
+ correct several errors in user guide
+ minor improvements to user interface

2007.07.06  v.06
+ follow Linux convention for app files in /home/username/.ukop/ 
  or /root/.ukop/ (move your job files here for convenience)
+ allow show / hide of hidden files in job open / save dialogs
+ report and command outputs made a bit more clear

2007.06.15  v.05
+ if directory is deleted and parent is now empty, delete parent
+ if a file fails to copy, report error in backup, not in verify
+ new technical note about file name limitations for FAT media

2007.05.28  v.04
+ add convenience buttons for file load and save to job edit dialog
+ if last file in a USB stick directory is deleted, delete the directory
+ increase file limit from 100K to 200K files (memory usage +15 MB)

2007.05.13  v.03
+ replace menu and toolbar macros with zfuncs functions

2007.04.25  v.02
+ fix icon on toolbar button for USB stick selection
+ add report: disk:USB stick differences by directory
+ allow file size exceeding 2 gigabytes

2007.04.12  v.01 initial release
+ backup job: open, edit, save, run
+ backup: incremental, accumulate
+ verify: full, incremental, thorough
+ disk / USB stick differences reports
+ restore function


