fix lintian issues
[debian/mtx] / CHANGES
1 CHANGES, mtx 1.3.12
2 - Incorporate debian packaging
3 - Remove strip of binaries
4 - Remove unsupported nsmhack from list of binaries built by default
5 - Add support for building outside of source tree
6 - Update copyrights
7 - Fix typo in mtx.1 man page
8 - Clear outstanding UNIT ATTENTION state at start
9
10 CHANGES, mtx 1.3.11
11 - loaderinfo: Print RequestSense information if an operation fails.
12 - loaderinfo: Print all information from the Device Configuration Page.
13 - mtx: Fix problems with a lot of loaders determining the number of elements.
14 - mtx: Implement Previous command.
15 - mtx: Fix bugs in Last command.
16 - scsieject: New tool that handles start/stop, load/unload.
17 - tapeinfo: Fix inconsistencies in output.
18 - Fix timeout handling on Linux.
19 - Merge in fixes from the Debian and FreeBSD distributions.
20
21 CHANGES, mtx 1.3.10
22 - Add support for Microsoft Windows.
23 - Add support for Sony VGP-XL1B(2) Media Changer.
24   Thanks to Will (nodenet at hotmail dot com)
25 - Add build support for Microsoft Windows using MinGW native and Linux
26   cross-compile.
27 - Add build support for Microsoft Windows using Microsoft Visual Studio 2005.
28 - Add support for building on x86_64.
29 - Add more debugging information.
30 - Eliminate compiler warnings.
31
32 CHANGES, mtx 1.3.9
33 - Cleaned up scsi_linux.c a little to eliminate around 40 lines of code. 
34 - Change to using SG_IO ioctl rather than write-read interface. This
35   should make us a little safer, as well as (on 2.6.x) letting us issue SCSI 
36   commands to regular block devices as well as to /dev/sgXX devices. 
37   WARNING: Can cause the system to *CRASH* if the SCSI device is in use, due 
38   to brokenness inside the Linux kernel! It's always preferable to use the 
39   /dev/sgXX device, which has specialness in its buffer handling that bypasses
40   some of the brokenness elsewhere in the SCSI subsystem.
41 - Check SG version before using SG_IO interface, so that if we're run on a
42   Linux 2.2 system and we were compiled on Linux 2.4 or above, 
43 - If a tape is in the drive, make tapeinfo print out its partition info. Seems
44   to work on my DAT drive, anyhow (shrug). 
45 - Minor cleanups in mtxl.c (other cleanups necessary in tapeinfo and etc.). 
46
47 CHANGES, mtx 1.3.8
48 - Forgot about 8 bytes for header
49 - Handle pedantic loader whose firmware writer spends too much time
50   parsing phrases in the SCSI spec and not enough time in the
51   real world. 
52
53 CHANGES, mtx 1.3.6
54 - The You Gotta Be F'ing Kidding Release (see rant on mailing list)
55 - Added AIX support with http://fz.eryx.net/aix/ GSC driver, courtesy
56   of Steve Heck. 
57 - Make __WEIRD_CHAR_SUPPRESS the default to stop barcode garbling
58 - Fix core dump on invalid inputs in mtx.c
59 - Add retry with bigger ALLOCATION_LENGTH if 
60   BYTE_COUNT_OF_REPORT_AVAILABLE is > than our original estimate. (see rant
61   on mailing list). 
62 - Shut up the low-level SCSI sg_read and sg_write routines, which were poofting
63   all over the place on innocuous things like no EAAP. 
64
65 CHANGES, mtx 1.3.5
66 - The I-Need-A-Job Release (see http://badtux.org) :-}
67 - Change Makefile so that it works w/systems whose 'install' program
68   accepts only one argument. That's it. 
69 - Uncomment the Exabyte hack in the drive parsing code so that it works
70   with ATL loaders again. 
71 - Add hack for ATL stacked loaders to keep them from reporting ghost slots
72
73 CHANGES, mtx 1.3.4
74 - Forward-ported the ATL/Exabyte patches from mtx 1.2
75 - Added progress indicator to 'tapeinfo' for DAT drives. (PLEASE TEST)
76 - Purged a few more estinc.com out of the documentation, point to bru.com.
77
78 CHANGES, mtx 1.3.3
79 - Reversed James' long descriptor patch until can figure out what's wrong with
80   it.
81 - Fixed some debug declarations, courtesy of Kevin Wang. 
82 - Point COMPATIBILITY file at mtx.sourceforge.net.
83
84 CHANGES, mtx 1.3.2
85 - Merged Makefile changes from mtx-1.2 code
86 - Changes from James Dugal to get all info for newer loaders, fix debugging
87
88 CHANGES, mtx 1.3.1
89 - add an Exchange command
90
91 CHANGES, mtx 1.3.0
92 - New Linux SCSI subsystem interface for 2.4 kernels, ripped boldly 
93   from sgtools by Doug Gilbert
94 - mtx 'next' now skips blank slots, courtesy of Christopher McCrory
95 - mtx 'unload' now prints an error message telling you that you need to
96   eject the tape in the drive prior to unloading it, under certain
97   conditions. 
98 - Started work on 'nsmhack' for controlling NSM jukeboxes. 
99 - copy_barcode was off by one. 
100 - 'position to element' command now added, courtesy of Mahlon Stacy
101
102 CHANGES, mtx 1.2.15:
103 - Some Solaris fixes, courtesy of Matt Ward
104 - Fix URL in .spec file
105
106 CHANGES, mtx 1.2.14:
107 - Fix so it'll work if 0 is result of SCSI open (e.g., in cron jobs on Linux)
108 - Move changelog to end of .spec file for easier reading
109 - Added a bit of text to beginning of COMPATIBILITY file
110
111 CHANGES, mtx 1.2.13:
112 - Fixed some autoloader bugs w/autoloaders that don't report an arm. 
113 - Fixed barcode backoff.
114 - Added "nobarcode" option
115 - Increased timeout for 'mtx inventory' to 30 minutes
116   (note: may increase this even more if needed, please let me know!)
117 - Shortened timeout for 'mtx inquiry' to 30 seconds
118 - tapeinfo now prints SCSI ID/LUN info if available (only on Linux at the
119   moment, sigh). 
120 - update documentation w/new email addresses, updated compile directions,
121   various fixes. 
122
123 CHANGES, mtx 1.2.12:
124 - Fix FreeBSD compile bugs
125 - Fix SGI compile bugs
126 - Add HP/UX port (I hope!), courtesy of William Smith. 
127 - Re-wrote ReadElementStatus to make work for %!@# brain dead firmware that
128   reports non-existent drives (I hope!). Also has side-effect of now working
129   with multiple-arm libraries (though it only sees first arm!).
130 - Cleaned up all -Wall messages.
131 - Cleaned up Linux Sparc, installs loaderinfo.1, courtesy of Matt Dainty.
132 - tapeinfo now reports status of CheckUnitReady.  
133 - tapeinfo no longer puts out Block Position if CheckUnitReady says 'no'.
134 - tapeinfo now puts out Density Code and Medium Type/Not Loaded (modification
135     of patches sent in by Bob Rahe)
136
137 CHANGES, mtx 1.2.11:
138 - Added a GNU autoconf Makefile.in (still provide a Makefile for your use)
139   *WARNING* autoconf is not yet working on all supported OS's! You may need
140   to do the old-fashioned 'edit Makefile' bit!
141 - Changed mtx.h and mtxl.c to include and define various things based upon
142   what features autoconf detected (e.g., if 'camlib.h', use FreeBSD-style
143   'cam', if 'scsi/sg.h' use Linux-style 'sg', etc.). If I ever port to a
144   Unix that has same SCSI interface as one of the existing ports, autoconf
145   will handle it without me having to add another set of #if's or #ifdefs. 
146 - Went ahead and tossed mtxctl into contrib.
147 - In 'tapeinfo', skip \0 characters in serial numbers (some use \0 
148   terminator, some do not, skip it if this one does). 
149 - in 'tapeinfo', dump out the block position and (if at BOP) the "BOP: Yes"
150   flag. Also dump out other info such as block limits. 
151 - Put file 'sparc-patch1' contributed by Chaskiel M Grundman, and applied
152   it (sigh)
153 - Added tapeinfo.py to 'contrib' directory
154 - Updated mtx.py in 'contrib' directory
155 - Created 'loaderinfo' program to report some misc. info about loaders.
156 - Created 'scsitape' program so that I don't have to keep messing with
157   #@$%@! tape ioctls on the various Unixes that I'm porting tape software
158   to.  (But see the warnings!).
159 - Applied the Solaris patch to the read_element_status command (sigh). 
160 - Added timeout adjustment to the SCSI subsystem. 
161 - WARNING: DIGITAL UNIX AND VMS ARE PROBABLY IRREPERABLY BROKEN, due to the
162   timeout changes to the SCSI subsystem. If anybody wishes to fix them,
163   feel free to send me patches. 
164 - added contrib program "mtx-changer" (an Amanda tape changer script for
165   ?Solaris? that uses mtx rather than stc)
166 - Jiggered Linux SCSI module for smarter error conditions handling (there are
167   some error conditions that are normal for READ of tape drives).
168 - Added contrib program "config_sgen_solaris.sh" which should ease 
169   setting up the 'sgen' driver on Solaris 8 (still no easy Solaris 7 or
170   below config). 
171
172 CHANGES, mtx 1.2.10:
173 - Added FAQ and COMPATIBILITY (feel free to send me patches to these files!)
174 - Added LICENSE
175 - Added serial number to 'tapeinfo' output. 
176 - Fixed stupid syntax error in mtx.c (compiled with gcc, not with others!)
177 - Fixed spec file for building rpms (maybe).
178 - Added an 'erase' command (undocumented) for use on Linux for doing
179   short erases on tapes (the Linux device driver defaults to a long erase). 
180 - Made mtx inventory return an error code if the inventory
181   fails, so that we can wait for inventory to be completed at system
182   startup for libraries that auto-inventory (sigh). 
183
184 CHANGES, mtx 1.2.9:
185 - Added an 'eject' command that, if directed to a tape drive, will eject the
186   tape, and for some autoloaders, if directed to LUN 1, will eject the entire
187   magazine.
188 - Fixed the 'transfer' command to be 1 based rather than 0 based (sigh)
189 - Now properly reports bar code for the tape that's in the tape drive.
190 - Added some miscellaneous Python and Perl scripts to 'contrib'. Thanks
191   to Frank Samuelson for the Perl scripts. 
192
193 CHANGES, mtx 1.2.8:
194 - Spec file has been changed to use the "portable" patch supplied by Red
195   Hat so it should work on Linux Alpha and Linux SPARC too... maybe...
196 - Now will accept 4-byte element status for most element types, despite fact
197   that these don't comply with SCSI standards :-(. This should make many
198   older changers work, including HP optical changers. 
199 - Fixed PeripheralDeviceType table, courtesy of Rob Turk.
200 - Now looks for CHANGER environment variable if a device is not specified
201   on the command line. If can't find CHANGER, then tries TAPE environment
202   variable.
203 - Properly sets TransportElementAddress in the CDB for the MOVE MEDIUM command
204   with what was discovered via the READ_ELEMENT_STATUS command, rather
205   than setting them to zero (SCSI spec says that zero should be the default
206   arm, but at least one changer out there didn't like it). 
207 - Added a '--version' command (sigh). 
208 - Added an 'inventory' command for Breece Hill libraries that don't 
209   automatically do an inventory at powerup. 
210
211 CHANGES, mtx 1.2.7:
212 - Fixed problem w/single drive Exabyte 220 reporting element status data for
213   both drives (sigh).
214 - some general cleanup in the barcode fallback code (what a cruft!). Discovered
215   that ADIC DAT AUTOCHANGER does not work w/mtx because it produces
216   gibberish (will apparently only produce one element status page per request).
217 - Fixed the RPM .spec file to have updated file locations, doc locations.
218 - Fixed MoveMedium to say 'Output' for direction, to make it work with
219   Solaris 8     
220 - Some changes to the Solaris low-level module to report more errors (though
221    it still doesn't work as well as the Linux low-level module). Should now
222    work properly with Solaris 2.6/7/8. (Solaris changes courtesy of Richard
223    Fish of Enhanced Software Technologies). 
224
225 CHANGES, mtx 1.2.6:
226 - Fixed 'eepos' stuff to use | rather than || (whoops!)
227 - Accept a 4-byte element descriptor for the robot arm for certain older
228   autochangers. 
229
230 CHANGES, mtx 1.2.5: 
231 - Added 'noattach' command. If on command line prior to other commands, forces
232   them to use the regular SCSI changer API rather than the _ATTACHED API,
233   no matter what the _ATTACHED bit in the Inquiry page said. 
234 - Created 'tapeinfo' program.
235
236 CHANGES, mtx 1.2.4:
237 - Major overhaul of element guts to dynamically allocate the arrays
238   using the result of a MODE_SENSE on the Element Address Assignment
239   Page. If mtx 1.2.3 works for you and mtx 1.2.4 does NOT work for you, 
240   please un-comment the '#define DEBUG_MODE_SENSE' in file 'mtxl.c' and 
241   EMAIL me the results.
242
243 CHANGES, mtx 1.2.3:
244 - Fixed the source storage element number stuff (again, sigh)
245 - Because of above fix, 'next' etc. ought to work right again.
246
247 CHANGES, mtx 1.2.2:
248 - Fixed that it was saying everything was an Import/Export element (oops!)
249 - Properly update the Import/Export element count.
250
251 CHANGES, mtx 1.2.1:
252 - Now explicitly output that a Storage element is in fact an Import/Export
253   element.
254 - Added 'transfer' command to transfer between two Storage elements (so that
255   you can get a tape to an Import/Export element.
256 - Added 'eepos' command for controlling tray retraction on the Breecehill
257   import/export trays. (Works with "load" and "unload" commands too, though
258   that is not documented on "mtx -h"). 
259
260 CHANGES, mtx 1.2.0:
261 - Re-numbered now that Leonard has asked me to take over maintenance of the
262   'mtx' program.
263 - Temporarily treat Import/Export elements the same as Storage elements. Need
264   to fix this eventually so that the GUI knows what kind of element we're
265   talking about. 
266 - Removed quotes from the source element # to make it easier to parse
267   from Perl or Python (just do a split on spaces). 
268 - Added sample program, 'mam2debug', showing how to use mtxl library for
269   your own programs (this happens to dump the Exabyte Mammoth 2's internal 
270   debug buffer to a file, using the Mammoth2-specific SCSI commands to do so).
271
272 CHANGES, mtxl 1.4.8:
273 - Whoops, report logical rather than physical when I have to scan for
274   open slots :-).
275
276 CHANGES, mtxl 1.4.7:
277 - Update comment to reflect mtxl 1.4.6 stuff :-).
278 - Fix the part of the code that scans for open slots as sources for media.
279
280 CHANGES, mtxl 1.4.6:
281 - Don't use _ATTACHED interface if it reports itself as a Medium Changer!
282
283 CHANGES, mtxl 1.4.5:
284 - Changed "whoops" compile error on Linux (teach me to release w/o testing on
285   the most popular platform!)
286 - Changed declarations to remove compile-time warnings.
287
288 CHANGES, mtxl 1.4.4:
289 - Added support for FreeBSD. (uses pass device, NOT native FreeBSD ch device).
290 - Change all 'int' DeviceFD to DEVICE_TYPE DeviceFD. Note that SGI and FreeBSD
291   use a struct * to access the CAM SCSI layer, rather than a file fd. 
292 - Fixed goof where I'd hard-wired max # of elements to 127 for testing
293   purposes (it should be sum of MAX_STORAGE_ELEMENTS + MAX_TRANSFER_ELEMENTS 
294   + MAX_TRANSPORT_ELEMENTS from mtx.h -- change those if you need more
295   elements, bearing in mind that the code for ReadElementStatus in
296   mtxl.c maxes out at 255 elements unless you fix that too).
297 - Cleaned some cruft out of the MOVE_MEDIUM code.
298 - Must have GNU Make to process Makefile. In reality, I don't know of
299   any machine where we voluntarily use the native 'make' command, because
300   a) there's a half dozen native 'make' all with their own perverted
301   syntaxes, and b) most of them are brain dead beyond belief. 
302
303 CHANGES, mtxl 1.4.3:
304 - Do an INQUIRY prior to doing a MOVE_MEDIUM or READ_ELEMENT_STATUS so that I
305   can detect the MChanger bit and use MOVE_MEDIUM_ATTACHED or
306   READ_ELEMENT_STATUS_ATTACHED commands instead. 
307 - Successfully tested with dual drives!
308 - first, next, last now working 
309 - Created a man page
310 - Created a 'make install', edit Makefile to alter destinations. 
311
312 CHANGES, mtxl 1.4.2:
313 - Found the problem with the DAT changer! It was burping on the 
314   'bar code' bit... so I intercept that sense key, re-issue w/out the
315   'bar code' bit, and success!
316 - Added a 'TODO' file...
317
318 CHANGES, mtxl 1.4.1:
319 - Added 'invert' qualifier to 'load' and 'unload' commands to invert
320   the media (for HP optical jukeboxes). Type './mtx' by itself to 
321   see the syntax.
322 - Figured out why my code wasn't properly detecting errors --
323   turns out the 'sg' device can return ok
324   status even when there is sense data to be reported!
325 - Still to fix: *still* isn't working right with my Seagate 
326   6-tape DDS-4 DAT changer... also need to put the
327   second drive into the Exabyte 220 to make sure the dual-drive stuff 
328   works properly (!). 
329
330 CHANGES, mtxl 1.4:
331 - Have now tested the barcode (volume tag) stuff. It works! (Well, there was
332 an index-by-one problem that I had to squash, but after that...)
333 - Changed to use SCSI Generic device API on Linux rather than 
334 SCSI_IOCTL_SEND_COMMAND API, which cut things off at 4095 bytes on i386
335 Linux. 
336 - Added a bunch of debugging output that needs to be ripped out :-(. 
337 Make sure you remove the -DDEBUG from the Makefile, and probably
338    -DLONG_PRINT_REQUEST_SENSE too (unless you LIKE sense results that make
339 sense!) 
340 - Still have annoying bug on Linux of only reading 1st 16 bytes of sense
341 data. Alas, this appears to be a problem in the Linux 2.2 kernel, not in
342 anything that we're doing :-(. Hmm... cdrecord has the same problem, Mr.
343 Schilling says he's been saying it's a problem since 1997. Sigh. 
344 - Still need to test the dual-drive stuff!
345
346 CHANGES, mtxl 1.3:
347 - Hacked in the barcode (volume tag) stuff. NEED SOMEONE TO TEST
348 WHETHER IT WORKS!
349 - started issuing redundant initial READ_ELEMENT_STATUS with Allocation Length
350 of 8 in order to get a BYTE_COUNT_OF_REPORT_AVAILABLE in order to calculate a
351 better Allocation Length for the "real" READ_ELEMENT_STATUS. Trying to send a
352 query to a small 6-tape changer with an Allocation Length suited for a 
353 200-element tape library was resulting in some errors and lockups on the
354 part of the tape changer device.
355 - first, last, next, previous are STILL broken. Sorry :-(. 
356
357 CHANGES, mtxl 1.2:
358
359 - Changed many output messages to make them more easily parsed by
360 scripts written in awk/perl/python
361 - Extracted out a library of SCSI tape library routines usable by "C"
362 programs (must be GPL'ed). Extensive re-arranging of code.
363 - Added support for multiple drives.
364 - Started adding support for tape changers that use the "MCHangr" 
365 bit rather than a separate ID or LUN.
366 - Increased limits so we could deal with LARGE tape libraries.
367 - Started adding support for barcode readers in said tape libraries
368 - broke first, last, next, previous. Sorry :-(. 
369 - Added ability to chain commands on command line. Thus could say 'mtx -f
370 /dev/sg4 unload 4 0 load 7 0' to unload a tape from drive 0 and load the
371 tape in slot 7 into drive 0. 
372
373