vchanger ChangeLog 1.0.3 (2020-05-06) - Redesign locking mechanism for multiple instances using POSIX semaphores. - Use at, rather than nohup, in scripts invoked by udev rules to fix nohup not working as expected on some platforms. (Patch from Steven A. Falco) - Add spec file for Fedora 29 (Provided by Steven A. Falco) - Correct number of slots reported by SIZE command (Fixes bug 17) - Rename logging variables that conflict with cmath's log function (Fixes bug 18) 1.0.2 (2018-06-14) - Use named mutex to prevent instances of vchanger invoked by Bacula during a bconsole call from initiating further bconsole calls. Prevents a race condition caused by the need for Bacula to invoke additional instances of vchanger when vchanger invokes bconsole to issue 'update slots' and 'label barcodes' commands. (Fixes bug 15) - Prevent load command from loading the same virtual slot into more than one virtual drive. (Fixes bug 13) - Fix bconsole update slots command needs drive to be specified. [Patch from Bill Arlofski] (Fixes bug 14) - Improve generated volume label format. [Patch from Wanderlei Huttel] - Additional logging to help debug udev/UUID assignment problems 1.0.1 (2015-06-09) - When looking up the mountpoint of a magazine by UUID with libudev, also look for mountpoint of device alias names in DEVLINKS in addition to the DEVNAME. (Fixes bug 12) - The f_mntonname field in struct statfs was misspelled, causing a compile error on BSD systems. (Fixes bug 10) - Use static linking of libwinpthread on Windows builds to prevent missing libwinpthreads-1.dll error. (Fixes bug 11) - Set signal handler for SIGPIPE to SIG_IGN and do not reacquire process lockfile when deleting the update lockfile. This should prevent a race condition in vchanger when Bacula invokes other instances of vchanger recursively when an 'update slots' or 'label barcodes' command is issued via bconsole. (Fixes bug 9) - Fixed nsis script error causing Windows installer to install incorrectly for 64-bit Windows and fail to create Start Menu items. Also now correctly removes itself from the Installed Programs list when uninstalled. 1.0.0 (2015-04-14) - Major change to magazine and work directory structure. - Virtual drive symlink points to volume file directly - All drive and magazine state info kept in work directory - Magazines have a dynamic number of virtual slots corresponding to a variable number of volume files - Volume files may be moved from one magazine to another - Allow an unlimited number of virtual drives - Add ability to issue 'update slots' and 'label barcodes' commands to Bacula to support plug-n-play of removable drives - Add support for undocumented Bacula Autochanger Interface command LISTALL - Added extended API command CREATEVOLS to allow creating and labelling volume files with a single command. - Added extended API command REFRESH to support plug-n-play of removable drives - Removed deprecated extended API command INITMAG - Add udev support for finding devices by UUID - Increased amount of logging - Enable use of getfsstat() for finding mountpoint by UUID to support building for BSD / OSX - Allow building without UUID capability to support minimal systems having neither libudev nor libblkid/libuuid. - Changed Windows version requirement to Server 2008+ / Vista+ - Allow cross-compile of 64-bit Windows target 0.8.6 (2010-05-13) - Use opendir instead of stat to trigger automounts - Add ability to configure logging level - Add extensive logging output to enhance debugging - Maintain persistent magazine bay state to prevent magazines in multi-magazine changers from inadvertently being moved when a lower numbered bay has its magazine detached. 0.8.5 (2010-02-05) - Fix esfsprogs link errors on some Linux distros (bug 2941290) - Merge "safe strncat" patch 0.8.4 (2009-12-02) - Ignore slot number passed to 'loaded' command (bug 2907225) - Fix libblkid linking for FreeBSD (bug 2872006) 0.8.3 (2009-10-27) - Add specification of magazines by partition UUID - Add LISTMAGS command to list magazines assigned to an autochanger - Empty, rather than delete, loadedN files to prevent out of space error on magazine partition - Fix error parsing index files. (bug 2785183) - Fixes for FreeBSD compatibility. (bug 2872006) 0.8.2 [2009-04-14] - Corrections to documentation 0.8.1 [2009-01-27] - Add extended command INITMAG for initializing new magazines - Added command line flags to set uid and gid when run as root - Force LOADED command to return zero when no slot is loaded - Changed 99-by-label-fix.rules to work with centos5/el5 - Added stateN files to track the loaded state of each virtual drive when last invoked - Removed debug line inadvertently left in by_label_fix.sh 0.8.0 [2008-10-03] - Initial Release