CHANGELOG for smartmontools

$Id: CHANGELOG 3054 2010-01-28 20:48:28Z 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 Frézou
[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 Mäkisara
[EM]  Eduard Martinescu
[FM]  Frédéric 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.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.

  [CF] Add experimental option '-d usbjmicron[,PORT]' for drives
       behind JMicron USB bridges. Tested on WinXP with JM20336 in
       AixCase AIX-ESU35CD. Many thanks to JMicron tech support
       for providing the required information.

  [MS] knowndrives.cpp update:
       Add WD Caviar Green 8MB and 32MB cache variants, stretch to 2TB.
 
  [CF] knowndrives.cpp updates: Add more entries for Samsung P80 disks
       with old and unknown firmware. Remove old entries which would
       match any new Samsung model reusing old firmware version number.

  [CF] Windows: Add a workaround for missing multi-sector support
       for ATA READ LOG EXT command.

  [CF] Fix Extended Comprehensive Error Log index base.
       Add workaround for Samsung disks using reserved byte as index.

  [CF] knowndrives.cpp updates: Update bug warnings for
       Seagate 7200.11, ES.2 and DiamondMax 22. Add new entries
       for fixed firmware versions.

  [CF] Add smartctl option '-l xerror[,NUM]' to print
       ATA SMART Extended Comprehensive Error Log (GP Log 0x03).

  [MS] knowndrives.cpp update:
       Added remaining WD Scorpio Blue SATA II drives

  [CF] Minor fix to remove ID 0 from 'smartctl -l sataphy ...' output.

  [CF] knowndrives.cpp updates: Add warnings about possible firmware
       bugs to Seagate 7200.11, ES.2 and DiamondMax 22 entries.

  [CF] knowndrives.cpp updates: Add Samsung SpinPoint F1 series.

  [CF] Windows: Fix return value of scsi_pass_through(). Regression
       was introduced during migration to new interface. SAT over USB
       now works on XP (both '-d sat,12' and '-d sat,16').

  [MS] knowndrives.cpp updates:
       - Added Western Digital RE2-GP family
       - Added Hitachi Travelstar E5K160 family
       - Allow uppercase variants of Hitachi 5K160 drives

  [CF] Fix smartctl crash on '-l directory,[gs]'. Allow to override
       missing GPL feature bit or missing log dir entry with
       '-T permissive' option.

  [SZ] os_freebsd.cpp, os_freebsd.h updates:
       Support HighPoint RocketRAID controller under FreeBSD

  [MS] knowndrives.cpp updates:
       - Added Western Digital RE3 32MB cache variants
       - Added WD Caviar Green 32MB cache variant (WD10EADS)
       - Added WD Scorpio Black family

  [DG] Accept half healthy (and half unhealthy) indication from the
       SMART RETURN STATUS. This makes allowance for SAT implementations
       (e.g. via USB) that truncate the SCSI sense buffer to 18 bytes.
       This truncation causes the SMART RETURN STATUS indication to be
       half health or unhealthy. If the half indication is used, then
       warn if '-r ioctl' is given.

  [MS] knowndrives.cpp updates:
       - Added Apple SSD
       - Added Seagate U8 family

  [DL] os_freebsd.cpp:
       Added support for CHECK_POWER_MODE and WRITE_LOG commands

  [MS] knowndrives.cpp update:
       There seem to exist WD Raptors with SATA II interface, add them.

  [MS] knowndrives.cpp updates:
       - Added remaining Seagate Barracuda 7200.11 drives
       - Added HP 1TB SATA disk

  [MS] knowndrives.cpp updates:
       - Added Maxtor 92040U6 (DiamondMax Plus 6800)
       - Added Seagate Maxtor DiamondMax 21 500GB version
       - Added QUANTUM FIREBALLlct15 22
       - Added QUANTUM FIREBALL CR6.4A
       - Added QUANTUM FIREBALLP LM20.4
       - Added SUN branded Toshiba MK4019GAX
       - Added TOSHIBA MK1016GAP and relatives: MK1[05]1[67]GAP
       - Added Western Digital WD800AB and WD2500AB
       - Some Hitachi 7K160 drives have garbage at end of name: permit it

  [CF] Add smartd '-n powermode,N' directive parameter to limit the
       number of skipped checks. Thanks to Michal Hlavinka for the patch.

  [MS] knowndrives.cpp updates:
       - Added Hitachi Endurastar J4K30/N4K30
       - Added Hitachi Travelstar 4K120 series
       - Some Hitachi 7K80 drives have garbage at end of name: permit it
       - IBM Travelstar 6GN series

  [MS] knowndrives.cpp updates:
       - Added Quantum Fireball ST4300A
       - Added Asus-Phison SSD (solid state disk)
       - Added Seagate DB35.3 Series
       - Added remaining disks of the Seagate SV35.2 Series

  [MS] Fix trivial compile error with "-pedantic"

  [MS] Workaround for huge raw values of Reallocated_Sector_Ct and
       Reallocated_Event_Ct for newer Fujitsu disks (only the lower
       16 bits seem to be meaningful). Clip the display to 16 bits
       and show the remaining part, if existent, in parens. Patch by [CF].

  [CF] smartd DEVICESCAN: Fix autodetection of SAT devices.
       Thanks to Stanislav Brabec for bug report and testing.

  [MS] knowndrives.cpp update:
       Convert file to full string regex: remove "^$" from pattern

  [MS] knowndrives.cpp updates:
       - Added Seagate Momentus 5400 PSD series (hybrid drives)
       - Added Seagate Momentus 7200.3 series
       - Added Hitachi Deskstar 7K250 (SUN branded)
       - There are Hitachi Travelstar 5K250 drives with capital "HITACHI"
       - Correct regex for Maxtor VL 30 drives

  [CF] Add configure options '--enable-savestates' and
       '--with-savestates=PREFIX' to enable smartd persistence
       ('-s' option) by default.

  [CF] smartd: Add '-s ([cnr]/../.././..)' directive to run scheduled
       selective self-tests. Useful to perform full tests of large disks
       not running 24x7.

  [CF] Allow to read local drive database entries from optional file
       '${sysconfdir}/smart_drivedb.h'.
       Add configure options '--enable-drivedb' and '--with-drivedbdir=DIR'.
       If specified, drive database is read from '${drivedbdir}/drivedb.h'.
       (default '${prefix}/share/smartmontools/drivedb.h'). This file
       is build from knowndrives.cpp.

  [MS] knowndrives.cpp updates:
       - Added 640GB variants of Western Digital AAKS and AACS drives
       - Added Western Digital AV ATA family
       - Added 160GB variant of Hitachi P7K500
       - Added 500GB variant of Hitachi 7K1000
       - Some cleanup for Quantum disks
       - Added Seagate Maxtor DiamondMax 22 family

  [CF] Use full string match for regexp in drive database.

  [CF] Add option '-d sat+TYPE' to use SAT with controllers which
       require option '-d TYPE'. Should work with '-d sat+megaraid,N'.
       As a side effect, '-d usbcypress+TYPE' is also supported.

  [CF] Add parser to read drive database from a file. Add '-B' option
       to smartctl and smartd to specify database file name. File syntax
       is identical to the C/C++ syntax used to inialize the internal
       database array.

  [CF] New syntax for drive database: Specify presets by strings
       with '-v' and '-F' options. Use empty strings instead of NULL.

  [JPH] Added Linux support for viewing disks behind MegaRAID
  	controllers

  [CF] smartd: Improve min/max temperature recording in conjunction
       with '-s' option.

  [CF] Add a wrapper class for FILE *.

  [CF] smartd: Add experimental support for state persistence (ATA only).
       Add option '-s' to specify path prefix for state files.
       Rework scheduled self-test detection to support persistence.
       If any test schedules are within downtime, the highest priority
       test is run after next startup.

  [CF] Remove casts from 'format_ata_string()' calls.

  [CF] Minor changes to fix errors and warnings from Cygwin gcc 4.3.0.

  [CF] smartd: Remove SCSITIMEOUT code. According to smartd.h 1.54 CVS log
       from 2003-10-27, it did never work.

  [CF] Remove dependencies ataprint.cpp and scsiprint.cpp from smartd.
       Move common ATA functions from ataprint.cpp to atacmds.cpp.
       Module scsiprint.cpp was apparently never used in smartd.

  [CF] Move smartd local declarations from smartd.h and utility.h to
       smartd.cpp. Remove smartd.h.

  [CF] Fixed extra '\n' in "Offline data collection status" output.
       Thanks to Alexander Shaduri for the patch.

  [CF] smartd: Separate device configuration data from device state data.
       Use references instead of pointers for configuration and state data.

  [CF] Add const-correctness and static to ATA support functions.

  [CF] Add a wrapper class for regex.

  [CF] Simplify 'create_vendor_attribute_arg_list()'.

  [CF] smartd: Rework of main data structures. Remove explicit memory
       allocations, use STL containers and structs with value semantics
       instead. Remove old malloc/free based memory management helper
       functions unless old interface is still in use.

  [CF] Linux: Cleanup device scan, remove name list, create objects directly.

  [CF] Linux: Cleanup smart_device::open(), type strings are no longer used.

  [CF] Remove CONTROLLER_* defines and variables unless old interface
       is still in use.

  [CF] Linux: Migrate 3ware interface to 'ata_pass_through()'.
       Multi-sector support is not complete yet. 48-bit commands
       possibly work.
       WARNING: Not tested, please review code before first test!

  [CF] Linux: Migrate os_linux.cpp to new interface.

  [CF] Add direct access to 16-bit registers in 'ata_in/out_regs_48bit'.

  [CF] Add 'ata_cmd_is_ok()' parameter check,
       remove 'ata_pass_through_28/48bit()' functions.

  [CF] Add CVS date/time from cvsversion.h to man pages also.

  [CF] Add configure option '--with-os-deps='os_module.o ...' to specify
       alternate OS interface modules. Useful for testing during migration.

  [CF] Remove declarations of 'optarg', 'optind', ..., include <unistd.h>
       instead. This fixes 'auto-importing' linker warnings on Cygwin.

  [CF] Add '-l sataphy[,reset]' to print SATA Phy Event Counters.

  [CF] Add '-l gplog,ADDR[,FIRST[-LAST|+SIZE]]' and '-l smartlog,...'
       to dump any log page accessible via GP or SMART read log commands.

  [CF] Enhance '-l directory' to print both GP and SMART Log directories.
       Add '-l directory[,gs]' modifiers to select GP or SMART log.
       Enhance 'ata_cmd_in' parameter struct for 48-bit commands.

  [CF] Windows: Add full ATA pass through support including 48-bit commands.

  [CF] Windows: Migrate os_win32.cpp to new interface.

  [CF] SAT: Add full ATA pass through support including 48-bit commands.

  [MS] knowndrives.cpp update
       - Added FUJITSU MHZ2250BS G2 and family

  [MS] knowndrives.cpp updates
       - Added Maxtor DiamondMax 60 94098H6
       - Added Maxtor DiamondMax 1280 84000A6 and family
       - Added Maxtor DiamondMax VL 30 31536H2 (ATA100) and family
       - Some Seagate Barracuda 7200.9 have garbage at end of name: permit it
       - Added Seagate Barracuda ATA ST320430A and family
       - Regression from previous checkin: add WD RE2 WD...0ABYS again
       - Added WD RE3 WD5002ABYS and family
       - Added Quantum Fireball CR13.0A
       - Added Hitachi Travelstar 5K250 HTS542525K9SA00 and family
       - Added WD AC420400D and add whole range of AC.... which
           have 5400rpm or higher (i.e. PIO-only drives omitted)

  [MS] knowndrives.cpp updates
       - WD: Separated entries for EIDE and SATA
       - WD: Separated entries for Caviar SE, SE16, RE, RE2
       - WD Named: WD Caviar AC series
       - WD Renamed: WD Caviar RE/RE2 -> WD RE/RE2
       - WD Renamed: WD Caviar SE/SE16 WD....AA[A-Z][A-Z] -> WD Caviar Blue
       - WD Renamed: WD Scorpio WD....BEV[A-Z] -> WD Scorpio Blue
       - Added WD Scorpio Blue WD3200BEVT
       - Added WD RE2 WD5001ABYS and family
       - Added WD Caviar Green WD5000AACS and family
       - Added WD VelociRaptor WD3000GLFS and family
       - Added Seagate Barracuda ES.2 ST31000340NS and family
       - Added Samsung SP80A4H
       - Added Maxtor DiamondMax 21 STM3160215AS and STM3320620AS
       - Added Seagate Barracuda 7200.7 ST380819AS
       - Added Maxtor DiamondMax 10 6B100P0
       - Added Seagate SV35.2 Series
       - Added Fujitsu MHY2120BH and family
       - Added Fujitsu MHW2080BH PL (PL variant)
       - Added Toshiba MK3252GSX and family

  [BA] Fix smartctl bug: when running in silent mode '-q errorsonly'
       do not print the Selective Self-test log.  Any errors will
       ALREADY appear in the SMART Self-test log.

  [CF] Add missing 'const' and other minor fixes to prevent gcc warnings.

  [OB] Added information message about supported Areca firmware versions.
       It's displayed in case the ATA device identification fails.

  [CF] Add configuration file for Doxygen.

  [CF] Add new object oriented interface to access ATA and SCSI devices.
       smartctl and smartd are modified to use the new classes in
       'dev_interface.{h,cpp}'. The template class in 'dev_tunnelled.h'
       is used in 'scsiata.cpp'. The code in 'dev_ata_cmd_set.{h,cpp}'
       supports migration from old function 'ata_command_interface()'.
       All existing 'os_*.cpp' modules should still work without any changes.
       The required adapter classes from 'dev_legacy.cpp' are automatically
       added by configure if necessary.

  [BA] Updated smartd and smartctl and smartd.conf man-page documentation
       to reflect support for Areca SATA RAID controller cards.

  [OB] Added support for Areca controllers to smartd. Extensive tests
       as well as documentation are still pending however.

  [OB] Implemented device locking for Areca controllers in smartctl

  [BA] Fixed selective self-test code.  Data structure revision number
       may be != 1 if no selective self-test has ever been run.  Host
       MUST set this value (at least at the first selective self-test
       instance).  Thanks to Curtis Stevens of WDC for clarification.

  [MC] usbcypress autodetection

  [BA] Starting to commit Areca code.  For now just smartctl.
       More changes and documentation coming soon.
       Need Areca firmware version 1.45 dated 10 June 2008 or later.
       May need changes in opening /dev/sg and file locking.
       Many thanks to Hank Wu!

  [CF] smartd: Fix too small name buffer for 3ware with >100 devices.

  [JH] now C++ Support for QNX Target
       already tested for QNX 6.3.2 on x86 and armle target
   
  [CF] Allow to set BUILD_INFO from make command line.

  [CF] Windows: Add MSVC8 support, remove MSVC6 project files.

  [MC] Add usbcypress device support for smartd.

  [CF] Add output of latest CVS date/time stamp to version info.
       New file cvsversion.h is generated by Makefile.
       Move formatting of version info to utility.cpp.

  [AR] Fix bug in 3ware node creation where nodes would be created
       then deleted, then recreated.

  [BA] Add missing CCISS cvs version tags to '-V' printouts.

  [TS] Linux: Ensure the 3ware device nodes are created with a correct
       SELinux security context.

  [AR] Add support for up to 128 devices on 3ware controllers.

  [CF] C++: Added new main() with exception handlers, replaced
       exit(x) with throw(x), removed global variable 'exitstatus'.
       Necessary for future changes, because exit() does not call
       any destructors.

  [SS] FreeBSD: plug file descriptor leak in smartd (only happens with
       CISS devices).  Reported by Vadim Ostranitsyn.

  [SS] FreeBSD: allow smartctl to interact with SCSI /dev/pass devices,
       thus enabling it to work with RAID controllers that expose disks
       via these devices.  From scottl@ via FreeBSD ports.

  [MC] Add usbcypress device support for smartctl.

  [KS] INSTALL on Solaris: updated description to use C++ compiler.

  [KS] configure.in on Solaris: added options for Sun's compiler to
       suppress trivial warnings.

  [KS] configure.in on Solaris: added direction to search suitable
       libraries for getaddrinfo().

  [TS] smartd on Linux: remove forgotten return from deviceopen();
       SCSI device descriptors had the FD_CLOEXEC flag unset.

  [CF] Added 'const' to avoid warning on depreciated string constant
       to 'char *' conversion.

  [CF] autogen.sh: automake 1.10.1 is OK. Updated message texts.

  [BA] removed smartmontools.spec file (now in CVS Attic).  This
       was not being used by RH or FC anyhow, and was out of
       date and not maintained.

  [BA] smartd on Linux: sets FD_CLOEXEC on the opened device file
       descriptor.  The descriptor is otherwise leaked to other
       applications (mail sender) which may be considered a security
       risk and may result in AVC messages on SELinux-enabled systems.
       Thanks to: Tomá Smetana" <tsmetana@redhat.com>.

  [BA] smartd: when sending email, to gather information about the
       host for the body of the email, eliminate gethostbyname()
       in favor of the IPv6-friendly function getaddrinfo() if the
       latter is available.  Info may be found here
       http://udrepper.livejournal.com/16116.html
       and here
       http://people.redhat.com/drepper/userapi-ipv6.html
       Thanks to: Tomá Smetana" <tsmetana@redhat.com>.

       Smartmontools developers: please check that smartd still LINKS
       properly on your systems.

  [BA] Fix ugly syntax bug in os_freebsd.cpp.  How did this go
       undetected for so long??

SMARTMONTOOLS STABLE RELEASE 5.38 2008/03/10

  [KS] Solaris/x86: modified configure.in for Sun's compiler.

  [BA] smartd.initd.in addition from Erwan Velu <erwan@seanodes.com>

  [BA] smartd fixes:

       - On Linux, DEVICESCAN now automatically recognizes SATA devices
         behind libata, and SATA devices behind the Marvell driver, and
         treats them correctly.

       - On Linux, a '-d sat' or '-d marvell' is automatically added
         if libata or the marvell driver are recognized behind a SCSI
         device type

  [SS] (Maybe) fix attribute autosave in FreeBSD.

  [SS] Major NetBSD-specific bugfixes:
       - handle actual SCSI and ATA errors and not only ioctl() errors;
       - set up I/O request properly for AUTO_OFFLINE and AUTOSAVE commands (inspired by
         similar change in os_freebsd.cpp);
       - handle AUTO_OFFLINE and AUTOSAVE like STATUS_CHECK (like os_linux.cpp does).

  [GG] add kfreebsd gnu support to configure.in

  [BA] Fix auto-offline support in FreeBSD.  Thanks to
       Cyrus Rahman <crahman@gmail.com> for the patch, and
       Eduard Martinescu for blessing it.

  [DG] smartd re-opens "SCSI" devices as ATA devices if a SAT layer is
       detected (smartd bug IMO). In Linux this upsets scsi generic
       device nodes (e.g. /dev/sg0). Detect the re-open in os_linux.cpp
       and set the O_RDWR flag (ATA uses the O_RDONLY flag).

  [CF] Drive database: Added Fujitsu MHW2 BH, Maxtor DiamondMax 17, 20, 21,
       Hitachi Travelstar 4K40, 5K120, 7K200, Deskstar 7K160, T7K500,
       T7K1000, Toshiba 1.8", Seagate Momentus 5400.3, 5400.3 ED, 7200.2,
       Barracuda 7200.11 and ES.
       Updated Toshiba 2.5", Seagate Barracuda 7200.9 and 7200.10.
       Added missing "(Hitachi )?" to Travelstar entries.

  [CF] Drive database: Added several Western Digital Caviar and Scorpio
       drives, added Caviar RE EIDE family.

  [CF] Drive database: Added Samsung P80 series with *-25 firmware.

  [CF] Replaced 'head [-n] -1' by 'sed 1...' in autogen.sh to avoid
       portability issues.

  [BA] Fixed autogen.sh script so that it uses 'grep -n 1' if 'grep -1'
       fails.  Needed for Mac OS X 10.4. Uck.
 
  [CF] Windows: Added IOCTL_STORAGE_PREDICT_FAILURE. This allows access
       to ATA SMART status and data if other calls do not work.
       Thanks to Jaroslaw Kowalski for pointing this out.
       Added support to use this function without admin rights.

  [CF] Added ATA-8 revision 4c message text.

  [CF] Added compiler.h to cciss_ioctl.h header check to prevent
       configure warning.

  [SS] DragonFly support added (using os_freebsd code; untested).

  [CF] smartctl: Fixed ATA identify byte swapping issue on big-endian
       platforms. This regression was introduced by the change for
       '-F swapid'. Thanks to Matthew Butch for bug report and testing.

  [DG] SAT/SCSI: Improve SAT error processing code. Aborted commands from
       ATA devices (typically because SMART was disabled) were not being
       properly detected.

  [GG] smartd: wait for the pid file to show up, return an error if it doesn't

  [JH] fix bad return code (get STATUS) for QNX Part

  [JH] initial porting to QNX Neutrino 6.3.2
       need at this time a prerelease devb-eide driver and libcam.so.2
       only tested for X86 Target, but devb-eide and lobcam.so.2 available for X86/ARM
       the officional driver coming soon with the next QNX release
