CHANGELOG for smartmontools

$Id: CHANGELOG 3189 2010-10-16 16:35:49Z chrfranke $

The most recent version of this file is:
http://smartmontools.svn.sourceforge.net/viewvc/smartmontools/trunk/smartmontools/CHANGELOG?view=markup

Maintainers / Developers Key (alphabetic order):
[AS]  Alex Samorukov
[BA]  Bruce Allen
[OB]  Oliver Bock
[EB]  Erik Inge Bols
[SB]  Stanislav Brabec
[PC]  Peter Cassidy
[MC]  Matthieu Castet
[YD]  Yuri Dario
[CD]  Casper Dik
[CF]  Christian Franke
[GF]  Guilhem Frzou
[DG]  Douglas Gilbert
[GG]  Guido Guenther
[JPH] Jordan Powell Hargrave
[JH]  Joerg Hering
[GK]  Geoff Keating
[DK]  Dr. David Kirkby
[DL]  Dan Lukes
[KM]  Kai Mkisara
[EM]  Eduard Martinescu
[FM]  Frdric L. W. Meunier
[GP]  Gabriele Pohl
[AR]  Adam Radford
[KS]  Keiji Sawada
[MS]  Manfred Schwarb
[TS]  Tomas Smetana
[DS]  David Snyder
[SS]  Sergey Svishchev
[PW]  Phil Williams
[LW]  Leon Woestenberg
[SZ]  Shengfeng Zhou
[RZ]  Richard Zybert

NOTES FOR FUTURE RELEASES: see TODO file.

<DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>

smartmontools 5.40 2010-10-16

  [CF] examplescripts/Example3: Use stdin to pass message to 'wall'
       command (ticket #114).

  [CF] smartd: Fix setting of SMARTD_DEVICE and SMARTD_DEVICETYPE
       environment variables (ticket #113).
       Regression was introduced by rework of smartd data structures.
       SMARTD_DEVICE is now set to the plain device name.
       SMARTD_DEVICETYPE is now set to 'auto' if no '-d' directive is
       specified.  Smartctl now accepts '-d auto' for this purpose.

  [CF] Remove "Lifetime" from Min/Max temperature attribute output
       (ticket #111).  Interval is device specific.

  [CF] configure.in: Print resource/message compiler info for Windows only.

  [CF] FreeBSD: Rework get_dev_names_cam() to support more than 26 devices.

  [CF] drivedb.h updates:
       - Seagate Barracuda 7200.10: Add 360GB
       - USB: Iomega MDHD-UE
       Patch provided by Rob Marissen.

  [DL] Standby mode not detected properly on FreeBSD (ticket #91).

  [MS] os_linux.cpp: fix "gcc -flto" build error by including stddef.h

  [CF] drivedb.h update:
       - Indilinx Barefoot based SSDs: Add OCZ-VERTEX 1199 and -TURBO

  [CF] TODO file: Move open entries to tickets #106, #107, #108, #109, #110.
       Remove outdated entries.

  [CF] drivedb.h USB update:
       - SunPlus 0x04fc:0x0c05

  [CF] drivedb.h update:
       - SandForce Driven SSDs: Add Corsair Force, fix typo

  [CF] Print hex values of unknown self-test type or status.

  [CF] drivedb.h updates:
       - SandForce Driven SSDs: Fix regex for Unigen UG99SGC
       - Seagate Momentus XT series
       - Quantum Bigfoot: Add 12.7GB

  [CF] drivedb.h updates:
       - SandForce Driven SSDs: Add 11 attributes of new FW,
         add Unigen UG99PGC
       - WD AV ATA family: Add 250GB, 320GB
       - WD AV SATA family

  [CF] Windows: Build syslogevt.exe with MinGW.  Now possible because
       binutils provides windmc.

  [CF] Makefile.am: Remove install message about smartd startup.
       It might be misleading because it is not correct for all platforms.

  [CF] configure.in: Minor fix of '--enable-drivedb' new defaults
       detection.

  [CF] Update links, configure and OS info in INSTALL file.
       Replace tabs by spaces.

  [CF] configure.in: Fix '--enable-sample' and '--with-selinux'.
       Fix obsolete use of AC_DEFINE().

  [CF] drivedb.h updates:
       - IBM Deskstar 60GXP, 40GV & 75GXP: Update link (ticket #99)
       - Seagate Barracuda 7200.12: Add ST31000523AS and others
       - WD Caviar Black: Add 2TB
       - WD VelociRaptor: Add 6 Gb/s models

  [CF] Windows installer: Fix smartctl-run.bat for drive menu (ticket #31).

  [CF] Windows: Create md5/sha1/sha256 checksums of the binaries.
       Add checksums.txt file to binary distribution.

  [CF] Windows: Include drivedb.h into binary distribution.

  [CF] drivedb.h updates:
       - Intel X18-M/X25-M/X25-V G2: Add X25-V 40GB
       - Transcend CompactFlash Cards

  [CF] drivedb.h updates:
       - Seagate Momentus 7200 FDE.2: Add ST9160414ASG
       - Seagate Pipeline HD 5900.1 and 5900.2
       Based on patch provided by Marcin Falkiewicz.

  [CF] Remove unused variable 'reportbug'.

  [CF] Make function PrintOut() local to smartd.cpp, remove it from
       smartctl.cpp.

  [CF] Windows: Improve compatibility with MinGW variants.
       Add configure check for DDK include files.
       Drop support for '-mno-cygwin' from old Cygwin gcc.

  [AS] smartctl.8.in minor update: adding FreeBSD ahci/scsi device hints

  [CF] Fix build if SVN Id keywords are not expanded (ticket #94).

  [CF] Windows: Remove "." from DLL search path to prevent DLL
       preloading attacks.

  [CF] drivedb.h USB update:
       - JMicron 0x152d:0x0551 (ticket #95)
       Add note about port multipliers to smartctl man page.

  [CF] drivedb.h updates:
       - SandForce Driven SSDs: Add Unigen drives
       - Indilinx Barefoot based SSDs: Add ASAX Leopard Hunt II

  [CF] drivedb.h update:
       - Intel X18-M/X25-M G2: Add names of timed workload attributes.
       Document attribute clear command '-t vendor,0x40' on smartctl
       man page.

       Thanks to Artem Danielov from Intel for providing the
       required information and drives for testing.

  [CF] drivedb.h update:
       - SandForce Driven SSDs: Add OCZ drives with form factor info.

  [CF] drivedb.h update:
       - Intel X25-E, X18-M/X25-M (add X18-M, update attributes)

  [CF] configure.in: '--enable-drivedb' is now the default.

  [CF] drivedb.h update:
       - Indilinx Barefoot based SSDs
         (combine and update 5 SSD entries using this controller)

  [CF] drivedb.h update:
       - SandForce Driven SSDs (Demo Drive, OCZ-Agility2/Vertex2/Vertex-LE)

       Thanks to Jeremy Werner (jwerner@sandforce.com) from SandForce for
       providing the required information and a demo drive for testing.

  [CF] drivedb.h update:
       - Add 1.5TB drive to SAMSUNG SpinPoint F3 EG series

  [CF] Add print formats '-v ID,msec24hour32' and '-v ID,raw24/raw32'.
       Used by SSDs with SandForce controller.

  [CF] Allow SMART threshold entries at positions different from
       attribute table. This fixes attribute output for recent
       SSDs with SandForce controller.

  [CF] smartctl: Add option '-t vendor,N' to issue ATA
       command SMART EXECUTE OFF-LINE IMMEDIATE with
       a vendor specific subcommand.

  [CF] drivedb.h update:
       - SAMSUNG SpinPoint V80 series (ticket #85)

  [CF] Linux: Support SATA drives on LSI 3ware 9750 controllers.
       Patch provided by Victor Payno (ticket #86).
       Modified to avoid duplicate code.

  [CF] drivedb.h update:
       - SAMSUNG SpinPoint M7 series

  [CF] drivedb.h USB update:
       - Buffalo JustStore Portable HD-PVU2

  [CF] drivedb.h USB updates:
       - Iomega LDHD-UP (ticket #83)
       - WD Elements Desktop 2TB
       - Maxtor OneTouch (0x0d49:0x7300)

  [MS] drivedb.h updates:
       - Intel X25-M SSD first Generation
       - ExcelStor J8160
       - OCZ Agility2

  [CF] drivedb.h updates:
       - Transcend Solid State Drives (ticket #80)

  [CF] drivedb.h USB update:
       - LaCie Rugged Hard Drive

  [CF] smartctl: Add options '--scan, --scan-open'.

  [CF] Windows: Use also VendorId from IOCTL_STORAGE_QUERY_PROPERTY.

  [CF] smartd: Change defaults of '-C' and '-U' directives to 0 (disabled)
       if attribute name is changed by '-v 19[78],...' directive.

  [CF] configure.in: Fix include path for MinGW.

  [CF] Move 'posix/reg*' to 'regex/reg*'.
       Add configure check for regex.

  [MS] cciss.cpp: avoid redefining be32toh
       megaraid.h: replace use of undefined preprocessor macro BITS_PER_LONG
                   by union construct (thanks to [DL]).
                   Add assert for sizeof(ptr_t) == 8 (thanks to [CF]).

  [CF] Makefile.am: Add os_qnxnto.* to EXTRA_smart*_SOURCES.

  [MS] drivedb.h update:
       - WD My Passport Essential SE 1TB variant (USB interface)

  [CF] Use getopt_long() from getopt/getopt* if necessary.
       Add missing cast to os_qnxnto.cpp.
       This fixes build on QNX (ticket #1).
       Thanks to Stefan (stevestereo) for testing.

  [CF] drivedb.h update:
       - WD Caviar Green (Adv. Format) family

  [CF] drivedb.h USB update:
       - Verbatim External Hard Drive 47519

  [DL] Fix regression in smartctl option '-t select,M-N' which prevents
       that more than one test span can be specified (ticket #75).

  [CF] drivedb.h updates:
       - Add raw64 attributes 1, 210-213 to all SSD drives with
         64-bit attribute format.

  [CF] Support smartd '-l xerror' also for disks which use reserved
       byte as log index.

  [CF] Fix initialization of values missing in smartd '.state' files.

  [CF] Add smartd directive '-l xerror' to check error count from
       the Extended Comprehensive SMART Error Log (ticket #34).

  [CF] Fix max number of cciss devices, 128 devices are supported
       again (ticket #49). Regression was introduced during migration
       to new interface.

  [CF] Update man pages (include Debian patch
       60_remove-redhatism.diff and Debian Bug 570892).

  [CF] Add SVN revision number to man pages.

  [CF] Windows: Read default drivedb.h and smartd.conf from exe
       directory instead of current directory.

  [CF] drivedb.h update:
       - SAMSUNG SpinPoint M series

  [CF] Replace runtime check of byte ordering by compile time check.

  [CF] drivedb.h USB updates:
       - ALi M5621 (unsupported)
       - LaCie with JMicron (ticket #69)
       - JMicron (0x2352)
       - Enable 48-bit commands for Hitachi drive

  [CF] Read USB ID info from drivedb.h (ticket #44).

  [CF] Create branch RELEASE_5_39_DRIVEDB with last drivedb.h file
       compatible with smartmontools 5.39[.1].

  [MS] drivedb.h updates:
       - WD Raptor 80GB variant
       - correct Regex for some WD AV-GP variants
       - Hitachi Ultrastar A7K2000
       - Hitachi Travelstar 5K500.B
       - Hitachi Deskstar 7K1000.C
       - adjust naming of Hitachi Travelstar and Deskstar drives

  [CF] Move 'posix/getopt*' to 'getopt/getopt*'.  Can be used for
       platforms with regex() but without getopt_long() (QNX, ticket #1).

  [CF] smartd '-l selftest' directive: Print info if error count
       decreased.  Avoid misleading warning if error count decreased
       to zero (ticket #67).

  [CF] smartctl: Rework ataPrintMain().  Issue ATA SMART commands only if
       necessary.  Improve handling of SMART STATUS command failure when
       ATA output registers are missing (ticket #27).

  [CF] USB ID updates:
       - A-DATA SH93
       - Hitachi/SimpleTech 1TB

  [CF] configure.in: Print configuration summary.

  [CF] smartctl -l xselftest,selftest: Print old log if extended self-test
       log index is out of range.  Workaround for bad log data from Intel
       X25-M G2 (ticket #66).

  [CF] USB ID updates:
       - LaCie Desktop Hard Drive
       - Prolific PL2507 (unsupported)
       - Seagate FreeAgent Go FW
       - WD My Book Essential

  [CF] Linux: Add '/dev/sd[a-c][a-z]' to smartd DEVICESCAN.

  [CF] smartd: Other config entries may precede DEVICESCAN.
       Very first step towards a more flexible device scanning.

  [CF] Windows: Use '.win64' in names of 64-bit binary packages.
       Use correct 'strip' program when cross-compiling.

  [CF] Add update script to make targets 'dist' and 'clean',
       set +x permission, update svn:ignore.

  [CF] Add 'update-smart-drivedb' script (ticket #59).
       The script updates the drive database from SVN.
       It is installed if '--enable-drivedb' is configured.

  [MS] drivedb.h updates:
       - Seagate Medalist 1720
       - SuperTalent UltraDrive GX SSD
       - Intel X25-M SSD

  [CF] Makefile.am: Fix unix2dos and makensis parameters to allow
       to build the Windows installer on Linux also.

  [CF] Makefile.am: Use a separate build rule for each man page to
       avoid compatibility problems with BSD make.

  [AS] drivedb.h updates:
       - Fujitsu MHZ2 BK series

  [MS] drivedb.h updates:
       - SAMSUNG SpinPoint F3 series
       - SAMSUNG SpinPoint F3 EG series
       - SAMSUNG SpinPoint M5 series
       - Western Digital Caviar Green 6400AADS
       - more Western Digital VelociRaptor variants

  [AS] FreeBSD: disable 48-bit commands in the ata_pass_through interface, 
       there is no 48-bit support in the IOCATAREQUEST ioctl.

  [CF] smartctl: Add option '-l scterc[,READTIME,WRITETIME]' to get/set
       the SCT Error Recovery Control time limit (ticket #50).

       Patch was provided by Richard Gregory:
       http://www.csc.liv.ac.uk/~greg/projects/erc/
       Modified for new ata_pass_through() interface.
       Linux HPT fixes ommitted for now.

  [CF] Fix SCT temperature table commands on big endian CPUs.

  [MS] drivedb.h updates:
       - more Seagate Momentus 5400.6 drives
       - HP 500GB drive MM0500EANCR

  [CF] Windows: Cleanup I/O-control declarations, rely on include
       files if possible.

  [CF] Windows: Compile fixes for 64-bit exe (EXPERIMENTAL).
       Update build info in INSTALL file.

  [CF] drivedb.h update:
       - Patriot Torqx SSD (patch provided by Gianpaolo Cugola)

  [CF] Makefile.am: Avoid duplication of man page filter script.

  [CF] smartd: Add option '-C, --capabilities' if libcap-ng is available
       (ticket #45).
       Support is added if libcap-ng is found during build. This can
       be overridden by configure option '--with-libcap-ng=[auto|yes|no]'.

       Based on Debian patch:
       http://patch-tracker.debian.org/patch/series/view/smartmontools/5.39-3/62_lowcap.patch
       Modified to fix regression (ticket #41, Debian bug 564876).

  [CF] Bugfix release 5.39.1.

  [CF] Linux: Fix spin-up of SATA drive if '-n standby' is used
       (ticket #37).  For some reason, this happens if the SCSI/SAT
       device is opened with O_RDWR instead of O_RDONLY.

  [CF] Windows: Fix parsing of 'tw_cli' output for 3ware 9.5.x release
       (ticket #43).

  [CF] Add USB IDs of Seagate FreeAgent Go, Seagate Expansion Portable
       and WD My Passport (IDE).

  [CF] autogen.sh: Fix version regexp, allow automake 1.11.1.

  [CF] Linux: Allow smartd 'DEVICESCAN -d sat' (ticket #13).
       Detects (S)ATA devices behind a standard SAT layer
       (Vendor ID: "ATA     "), but not USB bridges with SAT support.
       Only added for backward compatibility with 5.38.
       No longer needed as 'DEVICESCAN' without '-d' includes these devices.

  [CF] Add USB ID of Seagate FreeAgent Desktop.

  [CF] smartd: Fix directive '-l selftest' (ticket #36)
       Regression was introduced with r2773.

  [CF] smartd: Don't disable attribute tracking if read thresholds fails.
       Windows: Don't return dummy thresholds if IOCTL_STORAGE_QUERY_PROPERTY
       or 3ware CLI is used to read SMART data.

  [CF] Windows: Print warning if admin rights are missing.

  [CF] Replace some 'EXIT(status)' calls by 'return status'.
       Remove unnecessary casts from 'nonempty()' calls.

  [CF] Windows: Set ata_device::ata_identify_is_cached() return value
       according to I/O-control actually used.

  [CF] Print ATA output registers if SMART status command returns bogus
       register values.

  [CF] Windows: Don't return false ATA version info if IDENTIFY data
       is build from IOCTL_STORAGE_QUERY_PROPERTY result or from 3ware CLI
       output.
       smartctl: Handle missing info about ATA version in '-i' output.

  [CF] smartctl: Don't print log directory if '-q errorsonly' is specified.

  [CF] smartctl: Fix option '-q, --quietmode' (ticket #11).
       Regression was introduced with r2807.

  [CF] drivedb.h update:
       - SAMSUNG SpinPoint F2 EG series

  [CF] Add USB ID of Samsung Story Station.

  [MS] drivedb.h update:
       - Hitachi Travelstar 5K320: some EA models miss last 2 "0" 
         in model string
       - Seagate Barracuda LP series

  [CF] drivedb.h update:
       - Crucial M225 SSD

  [CF] drivedb.h updates:
       - WDC Scorpio Blue Serial ATA (640GB, 750GB, 1TB)
       - WDC My Passport Essential SE

  [CF] Add USB ID of Toshiba PX1270E-1G16.

  [CF] Happy New Year! Update copyright year in version info.

  [CF] drivedb.h update:
       - SAMSUNG SpinPoint M40/60/80 series

  [CF] Add direct access to 48-bit LBA register in 'ata_in/out_regs_48bit'.

  [DL] drivedb.h updates:
       - WDC My Passport Essential/USB (capacity 250GB, 400GB & 500GB)

  [DL] -r ataioctl,2: print text representation of data also (ticket #32)

  [DL] FreeBSD: freebsd_ata_device::ata_pass_through implemented (part of ticket #18)

  [CF] drivedb.h updates:
       - Hitachi Travelstar 7K320 (ticket #28)
       - Hitachi Travelstar 7K500

  [DL] -l gpllog,...: print text representation of data also (ticket #30)

  [DL] FreeBSD: check reallocf() result for failures

  [AS] FreeBSD: fixing crash on kFreeBSD (#29), patch provided by Petr Salinger

  [CF] Makefile.am: 'make check' now tests the syntax of drivedb.h.

  [CF] Cygwin: Open drive database files in text mode.

  [CF] Cygwin: Check for 'syslogd' and 'syslog-ng' in initd script.

  [CF] Windows: Disable Win9x/ME specific code if no longer supported
       by compiler.

  [CF] Add '-v ID,FORMAT:BYTEORDER[,NAME]' to specify byte order
       of attribute raw value.

  [CF] configure.in: Change --with-docdir default from
       'PREFIX/share/doc/smartmontools-VERSION' to
       'DATADIR/doc/smartmontools' to make it consistent with
       --docdir option added in autoconf 2.6x (ticket #24).
       Autoconf 2.5x is still supported.

  [CF] Move drive database entries from 'knowndrives.cpp' to new file
       'drivedb.h'.  This allows to update the drive database from SVN
       if installation was configured with '--enable-drivedb'.
       Remove the Makefile target to create 'drivedb.h'.

  [CF] do_release: Add support to release from a dir below 'branches'.
       Accept partial checkouts.

smartmontools 5.39.1 2010-01-28

  [CF] Linux: Fix spin-up of SATA drive if '-n standby' is used
       (ticket #37).  For some reason, this happens if the SCSI/SAT
       device is opened with O_RDWR instead of O_RDONLY.

  [CF] Windows: Fix parsing of 'tw_cli' output for 3ware 9.5.x release
       (ticket #43).

  [CF] Linux: Allow smartd 'DEVICESCAN -d sat' (ticket #13).
       Detects (S)ATA devices behind a standard SAT layer
       (Vendor ID: "ATA     "), but not USB bridges with SAT support.
       Only added for backward compatibility with 5.38.
       No longer needed as 'DEVICESCAN' without '-d' includes these devices.

  [CF] smartd: Fix directive '-l selftest' (ticket #36)
       Regression was introduced with r2773.

  [CF] smartctl: Don't print log directory if '-q errorsonly' is specified.

  [CF] smartctl: Fix option '-q, --quietmode' (ticket #11).
       Regression was introduced with r2807.

  [CF] Happy New Year! Update copyright year in version info.

  [DL] FreeBSD: check reallocf() result for failures

  [AS] FreeBSD: fixing crash on kFreeBSD (#29), patch provided by Petr Salinger

  [CF] do_release: Add support to release from a dir below 'branches'.
       Accept partial checkouts.

smartmontools 5.39 2009-12-09

  [CF] do_release: Commit CHANGELOG and NEWS also. Allow to review changes.

  [CF] Linux: Add workaround for Adaptec series 2, 5 and 5Z controllers
       with firmware >= 17380.  Patch was provided by Phil Wilson, see:
       http://linux.adaptec.com/2009/07/24/using-smartmontools-538-with-series-255z-controllers-with-firmware-17380-onwards

  [CF] configure.in: Add '-fno-strict-aliasing' to CXXFLAGS if supported.
       This suppresses gcc 4.4.1 warnings on Linux and avoids possible
       unsafe optimizations (ticket #23).
       Patch was provided by Manfred Schwarb.

  [CF] Avoid truncation of configure arguments in '-V' output.

  [AS] Added USB IDs of WD Passport USB Portable

  [CF] Linux: Fix segfault in 3ware interface (ticket #22).

  [MS] knowndrives.cpp updates:
       - Hitachi Deskstar 7K2000
       - Seagate Momentus 7200 FDE.2 series

  [CF] Add USB ID of WD My Passport 070A.
       knowndrives.cpp update:
       - WD My Passport hard drive (USB interface)

  [CF] smartd: Write 'worst' attribute value to '.state' file also.
       This allows to use state persistence with 'raw64' attributes.

  [CF] Rework ATA SMART attribute check in smartctl and smartd.
       smartd: Ignore normalized attribute value and threshold
       if 'raw64' or 'hex64' format is selected.

  [CF] Add USB IDs of Iomega LPHD080-0, 2 Genesys Logic bridges and
       Initio 316000.

  [MS] knowndrives.cpp update: Hitachi Travelstar 5K320 series

  [CF] smartctl: Ignore normalized attribute value and threshold
       if 'raw64' or 'hex64' format is selected.

  [CF] knowndrives.cpp updates:
       - add OCZ-Vertex raw64 attributes
       - add OCZ-Agility
       Thanks to Marcin Marszalek for the patch.

  [CF] Add '-v ID,hex*' print formats. Fix '-v N,FORMAT,NAME' parsing.

  [CF] Add '-v ID,raw64[,...]' print format based on a patch provided
       by Marcin Marszalek.

  [CF] Add '-v ID,RAW_FORMAT[,ATTR_NAME]' option. This allows to add new
       attributes without the need to enhance the '-v' option.
       Rework attribute name and raw value formatting.

  [CF] Fix auto_ptr initialization in linux_scsi_device::autodetect_open().

  [CF] Remove duplicate function smart_device_list::add().
       Replace calls with push_back().

  [MS] attribute update:
       trim attribute names to 23 chars

  [CF] Add smart pointer class template to manage device object pointers.
       Remove related 'delete' calls and 'try/catch' blocks.

  [CF] do_release: Replace generation of '*.asc' by '*.md5' and '*.sha1'.

  [MS] attribute updates:
       - change attributes 202,204,205 to the meanings as found in wdidle3.exe
         retain old entries as comments (possible Fujitsu use)
       - add attribute 240 as found in Fujitsu MHY2xxxBH

  [MS] attributes updates:
       - attributes 225, 232 and 233 for Intel X25-E SSD
       - non-conflicting attributes extracted from wdidle3.exe
         (thanks to Franc Zabkar and Dan Lukes)

  [CF] Update Windows and ./configure info in INSTALL file.

  [CF] Update 'do_release' script for SVN.

  [MS] knowndrives.cpp updates:
       - Western Digital MyPassport Essential hard drive (USB interface)
       - Seagate Momentus 7200.4 series
       - Western Digital Raptor X
       - Intel X25-E SSD

  [CF] knowndrives.cpp updates:
       - New Seagate 7200.11 firmware version
       - Update IBM link

  [CF] smartctl: Use printf() instead of pout() for exception error
       messages to avoid access to bogus 'con->dont_print'.

  [CF] smartd: Add missing help texts for '-A', '-B' and '-s'.

  [CF] Add missing check for log page 0x11 support to smartctl
       '-l sataphy' option.

  [CF] Add USB ID of Freecom Hard Drive XS.

  [AS] Linux: Autodetect DELL PERC and MegaRAID controllers.
       Hiding debug messages coming from megaraid code.

  [AS] Linux: Fixed SATA drives support on megaraid device (see ticket #15).

  [AS] FreeBSD: Removed all old detection code, moving everything to
       the objects. Now we are using CAM/ATA enumerators to guess device
       type.

  [AS] FreeBSD: Added autodetection for the ada disks (untested).
       Code for USB device detection refactored.

  [AS] FreeBSD: cam_get_umassno rewritten using XPT_PATH_INQ

  [AS] FreeBSD: do not open/close cam device on every request for SCSI
       disks. Use com->camdev both for SCSI and ATAPICAM.

  [AS] FreeBSD: added support for the ada disks, based on agapon patch

  [CF] Add names for attributes 184 and 188, see ticket #17.

  [CF] configure.in: Change configure date syntax.
       Add message to '-mno-cygwin' option check.

  [GK] Add names for some attributes used in MLC flash drives:
       175, 176, 177, 181, 182

  [CF] Windows: Check support of gcc '-mno-cygwin' option in configure.
       This option has been removed in Cygwin gcc 4.x.  Update INSTALL
       instructions accordingly.

  [CF] Increase SCSI_TIMEOUT_DEFAULT from 6 to 20 seconds to avoid
       timeouts when a disk spins up from standby mode.

  [CF] Add USB ID of AcomData 504 (OnSpec USB bridge).

  [AS] Correcting manual pages (FreeBSD related)

  [AS] FreeBSD: fix FTBFS on GNU/kFreeBSD (reported by derevko).

  [AS] FreeBSD: Add USB autodetection to smartd DEVICESCAN directive.

  [CF] Add USB ID of Myson Century CS8818, add some comments.

  [CF] Return info strings from 'smart_interface::get_*()' functions as
       'std::string' instead of 'const char *'. Static buffers are no
       longer needed.

  [SZ] FreeBSD: Fix highpoint type detection and ioctl failed for parameter
       error.

  [CF] Linux: Add USB autodetection to smartd DEVICESCAN directive.

  [CF] Add USB IDs of Maxtor Basics Desktop and ISD-300A1.

  [AS] Use malloc() to ensure that the read buffer lands on a single
       page.  This avoids some bugs seen on LSI controlers under
       FreeBSD.

  [CF] Add missing help text for '-d usb*' options.

  [CF] Linux: Dereference '/dev/disk/by-*/*' symlink before device type
       autodetection.

  [AS] FreeBSD: Support SATA disks attached to a SAS controller (based on
       patch from freebsd ports tree).

  [AS] FreeBSD: Added FreeBSD 8 libusb2 device autodetecion, new
       configure check for -lusb.

  [AS] FreeBSD: Added USB device autodetection and fixed -d switch behavior.

  [AS] FreeBSD: Migrate os_freebsd.cpp to new interface.

  [CF] Fix max number of 3ware devices, 128 devices are supported again.
       Regression was introduced during migration to new interface.
       Thanks to Michael Holweg for the problem report.

  [CF] Windows installer: Add 'DisplayVersion' to uninstall registry key.

  [MS] knowndrives.cpp updates:
       - Marvell SSD SD88SA024BA0
       - Fujitsu MHZ2 BH series
       - Fujitsu MHZ2 BJ series
       - Seagate Maxtor DiamondMax 23
       - WD Caviar Green: Add some 32MB cache variants
       - relax OCZ-Vertex pattern

  [CF] Add USB ID of Verbatim FW/USB160.

  [CF] Fix data type bug in checksum test for multi sector logs.

  [CF] Add USB ID of Seagate FreeAgent Go.

  [MS] Add experimental feature to log attribute values at each check 
       cycle (ATA only), activated with the smartd option 
       "-A PREFIX" / "--attributelog=PREFIX".
       Introduce configure options "--enable-attributelog" and
       "--with-attributelog=PREFIX" to enable feature by default.

  [DG] [SAT] Heads up about a non backwardly compatible change
       introduced in draft SAT-2 (sat2r8b.pdf) that will break our
       existing SAT processing code. Action needed if change stands.

  [MS] smartd.cpp: Adjust umask

  [CF] Makefile.am: Remove 'uninstall-docsDATA' target to fix
       'make distcheck' with automake 1.11. The 'make uninstall'
       of examplescripts fails if docdir does no longer exist.

  [CF] Remove 'scsiata.h'. The 'scsiata.cpp' module now implements
       parts of 'dev_interface.h'.

  [CF] smartctl: Don't report an attribute as failed if threshold is 0.

  [CF] Print only one warning on checksum errors in multi sector log.
       Remove casts from calls of checksum().

  [DG] minor changes to SCSI background scan strings

  [MS] knowndrives.cpp updates:
       - Fujitsu MHW2 BJ series
       - WD Caviar Black family

  [MS] Makefile.am: Make creation of svnversion.h independent of
       locale settings

  [CF] Require to specify PORT parameter of '-d usbjmicron' if two disks
       are connected.

  [CF] smartctl: Limit default number of printed entries for
       '-l xerror' to 8, for '-l xselftest' to 25.

  [CF] smartctl: Fix number of entries in '-l xselftest' output.

  [CF] Add USB IDs of a SunplusIT bridge, three WD drives, and an
       unsupported Iomega drive.

  [CF] Makefile.am: Use 'svnversion' instead of 'svn info' to get
       the revision number. This also checks for mixed and modified
       working copies.

  [CF] Remove CVS Id strings from '-V, --version' output.

  [CF] Update CONTRIBUTORS section on man pages.

  [CF] Makefile.am: 'make maintainer-clean' now removes also files
       generated by './autogen.sh'.

  [CF] Invalidate 'do_release' script, it needs some rework for SVN.

  [CF] Update documentation files for SVN.

  [CF] Rename trunk/sm5 to trunk/smartmontools.

  [CF] Print SVN revision number instead of time in version info line.
       Get SVN revision number from svn (if available) or guess from
       Id strings. Rename generated file to svnversion.h.

  [CF] Makefile.am: Modify generation of cvsversion.h for SVN.

  [GP] Convert CVS repository to SVN.

  [CF] smartd: Fix size of monitor flag array from previous commit.

  [CF] Makefile.am: Add missing 'megaraid.h'.

  [CF] smartd: Add '!' flag to '-r' and '-R' directives. If specified,
       message is logged as LOG_CRIT and warning mail is sent if
       attribute normalized or raw value changes.

  [CF] Replace global 'con->...' variables used for selective self-tests
       by local variables.

  [GK] Add names for some attributes used in Samsung MLC drives:
       178-180 & 183

  [CF] smartctl: Add option '-x, --xall' to print all info including
       extended SMART logs and non-SMART info.

  [CF] smartctl: Add '-l xerror,error' and '-l xselftest,selftest' to print
       the old logs if the extended logs are not supported.

  [MS] knowndrives.cpp updates:
       - Western Digital AV-GP series
       - Transcend Solid-State Drive and Transcend Solid-State Drive V series
       - Seagate Momentus 5400.5 series

  [CF] Disable 48-bit ATA commands for JMicron USB bridges by default
       because these commands do not work with all devices.
       Add '-d usbjmicron,x' to enable 48-bit commands.
       Thanks to Alexander Shaduri for the problem report.

  [CF] smartd: Don't ignore the '-n' directive when a self-test is
       scheduled. Start the self-test later when the disk is active
       again.

  [DG] SCSI (SAS): implement '-l sasphy,reset' (reset part was stub
       prior to this)

  [DG] add 'ATA, SCSI command sets and SAT' section to smartctl.8 .
       [SCSI] add 'number of background medium scans' field

  [DG] SCSI (SAS): add '-l sasphy' and '-l sasphy,reset' into smartctl
       to output SAS device phy information (from the Protocol specific
       log page)

  [CF] autogen.sh: Remove 'CYGWIN=check_case:strict', this does no
       longer work on Cygwin 1.7.  Print warning if Automake version
       cannot handle case insensitive filesystems.

  [CF] Remove '#define TRUE/FALSE', use 'bool' and 'true/false'.

  [CF] Add 'options' parameter to SCSI printing routine. Move global
       'con->...' smartctl variables to 'options' parameters of
       printing routines.

  [CF] Windows: Remove outdated entry about undocumented system calls
       from WARNINGS file.

  [CF] Print General Purpose Logs even if GPL feature bit is missing.
       Needed for some older disks which implement READ LOG EXT but
       do not report the GPL feature set.
       Change order of the extended log outputs ('-l xerror',
       '-l xselftest', '-l sataphy'). Extended logs are now printed
       before their old versions.

  [CF] autogen.sh: automake 1.10.2 and 1.11 are OK.

  [CF] Fix syntax error in prototype of 'safe_snprintf()'.
       Thanks to Alexander Shaduri for bug report and patch.

  [DG] SCSI: Fetch load-unload cycle counts.

  [CF] Windows: Add Win-7 and Win2008 to get_os_version_str().

  [CF] smartd: Fix '-M test' directive in conjunction with '-s' option.
       Thanks to Matthias Becher for the problem report.

  [MS] knowndrives.cpp updates:
       - Add Seagate Barracuda 7200.12 series
       - Add Seagate Momentus 5400.4 series
       - Add Hitachi Deskstar 7K1000.B series
       - Add Transcend SSD TS32GSSD25-M
       - Add OCZ Vertex 1199

  [CF] knowndrives.cpp updates:
       Add Samsung S250 series.
       Add '-v 198,increasing' to Samsung P80.
       Replace '#if/#endif' by comment to fix configure option
       '--enable-drivedb'.

  [CF] knowndrives.cpp update:
       Add Seagate 7200.11 with 'CC' firmware which is unaffected
       by the bug. Thanks to Bas Mevissen for the patch.

  [CF] Replace global 'con->...' variables used for drive presets
       by local variables.

  [CF] Simplify '-v' vendor attribute option parsing.
       Add '-v 197,increasing' and '-v 198,increasing' options
       to specifiy that an uncorrectable count is never reset.
       This modifies the printed attribute names and smartd's
       default setting of '-C' and '-U' directives.
       Both '-v' options can also be preset in the drive database.

  [CF] Add '+' modifier to smartd '-C' and '-U' directives.
       If specified, a warning is only printed if the raw value
       increases.

  [CF] Add smartctl option '-l xselftest[,NUM]' to print
       ATA SMART Extended Self-test Log (GP Log 0x07).

  [CF] Add experimental option '-d usbsunplus' for drives behind
       SunplusIT USB bridges. Tested on WinXP with SPIF215(?) in
       TrekStor DataStation maxi m.u.. Many thanks to SunplusIT
       tech support for providing the required information.

  [CF] Windows: Provide a non-console version of smartctl.exe
       as smartctl-nc.exe. This prevents that a new console is
       opened when smartctl is run from a GUI program with
       stdio redirected.
       Used by GSmartControl (http://gsmartcontrol.berlios.de/).

  [CF] Remove support for platforms without getopt_long() in
       smartctl.cpp and smartd.cpp. If getopt_long() is missing,
       ./configure aborts with an explanatory message.
       For now, short option help texts are only removed from
       os_linux.cpp and os_win32.cpp. HAVE_GETOPT_LONG is still
       defined in config.h.

  [CF] Add smartctl '-d test' option to print the result of the
       device type detection.

  [CF] Enhance USB device type autodetection, use bcdDevice if known.
       Add Cypress CY7C68300B/C (AT2LP) to the table.

  [CF] Linux: Add experimental USB device type autodetection.
       Uses USB ID info found through symlink "/sys/block/sdX/device".

  [CF] Windows: Add experimental USB device type autodetection.
       Uses WMI command line tool 'wmic' to query USB ID.

  [CF] Add function smart_interface::get_usb_dev_type_by_id() to map
       USB vendor:product IDs to '-d type' names. Can be used by
       platform dependent layer to autodetect USB devices if ID of
       USB bridge is known.

  [CF] smartd: Log changes of self-test execution status if
       '-l selftest'is specified.

  [CF] knowndrives.cpp update:
       Samsung SpinPoint F1 RE series

  [MS] knowndrives.cpp update:
       Seagate Momentus 5400.6 series

  [CF] Add forgotten SCSI sense checks to class usbjmicron_device.

  [CF] Add new SMART STATUS check command for JMicron USB bridges.
       Should support also older chip versions and prevents a race
       condition.

  [CF] Windows: Fix win_scsi_device::scsi_pass_through() for single byte
       data transfers. Required for JMicron SMART STATUS check.

  [MS] knowndrives.cpp update:
       Add Hitachi Travelstar C4K60 family (1.8" slim drives)

  [MS] Workaround for huge raw values of attribute 9, needed
       for Hitachi Travelstar C4K60. For the Power_On_Minutes case,
       clip the display to 4 bytes and show the remaining part,
       if existent, in parens.
[--snip--]
