$Id: ChangeLog 4883 2018-12-30 14:48:54Z chrfranke $

2018-12-30  Christian Franke  <franke@computer.org>

	smartmontools 7.0

2018-12-29  Christian Franke  <franke@computer.org>

	smartctl.8.in: Remove extra quote.

	INSTALL: Update or remove various outdated info.

2018-12-28  Christian Franke  <franke@computer.org>

	configure.ac: Set drivedb.h branch to 7.0.
	update-smart-drivedb.in: Update public key block.
	update-smart-drivedb.8.in: Update key ID.

	Create new branch RELEASE_7_0_DRIVEDB.
	Sign drivedb.h using new key ID 721042C5.

2018-12-27  Christian Franke  <franke@computer.org>

	do_release: Add quotes to AC_INIT regex.

	configure.ac: Update PACKAGE_HOMEPAGE.

	configure.ac: Set release number to 7.0

	smartctl.cpp: Set JSON format version to 1.0 (#766).

	scsiprint.cpp: Omit JSON values for unavailable counters from
	Format Status log page.  This ensures that each JSON value always
	has the same type.

	drivedb.h:
	- SandForce Driven SSDs: Kingston E50 (#756)
	- WDC HGST Ultrastar He10 (#959, #997, #1093, #1111)
	- Toshiba 2.5" HDD MQ04UBF... (USB 3.0) (#937)
	- Seagate Barracuda 7200.10: HP OEM 160GB (#1037)
	- Seagate Constellation ES.3: HP OEM 4TB
	- Seagate Exos 5E8 (#1058)
	- Seagate IronWolf Pro (#1076, GH issues/10, GH issues/14)
	- WD Blue and Green SSDs: Rename, add Green (#980, #1073)

2018-12-20  Donald Pierce  <...>

	drivedb.h:
	- Dell Certified Intel S3520 Series SSDs (#1147)
	- Dell Certified Intel S4x00/D3-S4x10 Series SSDs (#1148)

2018-12-20  Christian Franke  <franke@computer.org>

	drivedb.h:
	- SandForce Driven SSDs: Kingston HyperX Fury (#805)
	- Phison Driven SSDs: PNY CS2211 (#992)
	- JMicron based SSDs: ADATA SX390 (#818),
	  KingSpec KDM-SA.51-008GMJ (#741)
	- SiliconMotion based SSDs: KingSpec KSD, KingSpec T60,
	  Team Group L5Lite 3D (#1144), Transcend ESD400
	- USB: Transcend ESD400 (0x2174:0x2000)

	smartd.cpp: Remove unneeded '.c_str()' call.  Update a comment.

	configure.ac: Use AS_HELP_STRING instead of AC_HELP_STRING
	as suggested by autoupdate.  Add missing check for 'enableval'.

2018-12-16  Christian Franke  <franke@computer.org>

	smartd.8.in: Don't use empty lines before '.SH' macros.

	smartd.cpp: [_WIN32] Remove check for '-m [sys]msgbox'.

	nvmeprint.cpp: Don't print NSID in SMART/Health Information title
	line.  This log is always read with broadcast NSID.

2018-12-16  Giuseppe Iuculano  <iuculano@debian.org>

	cciss.cpp: Fix kFreeBSD build (Debian kfreebsd.patch).

	smartd.service.in: Declaring After=syslog.target is unnecessary by
	now because syslog is socket-activated and will therefore be started
	when needed (Debian removesyslogtarget.patch).

2018-12-11  Christian Franke  <franke@computer.org>

	smartd.conf.5.in: Update DEVICESCAN info and move it up to a
	new section.  Add section header for DEFAULT SETTINGS.

	smartctl.8.in, smartd.8.in, smartd.conf.5.in: Remove EXPERIMENTAL
	notes for features added before 6.5.

	os_linux.cpp: Call realpath() with full /sys/* path instead of
	device name (GH pull/23).  This fixes detection of hpsa devices
	(regression from r4603).

2018-12-11  Harry Mallon  <hjmallon@gmail.com>

	scsinvme.cpp: Fix debug message.

2018-12-05  Christian Franke  <franke@computer.org>

	smartctl.8.in, smartd.conf.5.in: Mark '-d sntjmicron' as
	EXPERIMENTAL.

	drivedb.h: Enable JMicron JMS583 entry, use an internal -d option.
	scsinvme.cpp: Detect this internal -d option and ask user to test
	'-d sntjmicron'.

	scsinvme.cpp: Add missing include of config.h.

2018-12-05  Harry Mallon  <hjmallon@gmail.com>

	Add '-d sntjmicron[,NSID]' device type for NVMe drives behind
	JMicron USB to NVMe bridges (JMS583).

2018-12-04  Christian Franke  <franke@computer.org>

	os_linux.cpp: Add '-d by-id' option to device scanning.
	If specified, scan '/dev/disk/by-id/*' for symlinks to '/dev/sdX'
	and remove duplicates.

2018-12-02  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Samsung based SSDs: CM851 (#1109), SM863a (#1140)
	- SiliconMotion based SSDs: Transcend 420K (GH issues/20),
	  Transcend 630 (#1038)
	- Western Digital Gold: Re-add 8TB *2 variant
	- USB: Buffalo HD-PNTU3 (0x0411:0x01e7), HD-LC3 (0x0411:0x027e)
	- USB: ADATA NH13 (0x125f:0xa13a), HD710P (0x125f:0xa75a)
	- USB: Verbatim External Hard Drive (0x18a5:0x0408) (#1107)

	AUTHORS: Add Harry Mallon.

2018-12-02  Harry Mallon  <hjmallon@gmail.com>

	drivedb.h: USB: LaCie Rugged Mini HDD (0x059f:0x106b)

	Fix many typos.

	ataprint.cpp: Fix Form Factor string with bits set in reserved area
	- Happens with APPLE SSD SD0256F

2018-11-27  Christian Franke  <franke@computer.org>

	os_linux.cpp: Add USB ID detection for '/dev/sgN'.

	smartd_warning.sh.in: Fix typo (#1138).

2018-11-27  Harry Mallon  <hjmallon@gmail.com>

	autogen.sh: allow automake 1.16 and 1.16.1.

2018-11-25  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Crucial/Micron BX/MX1/2/3/500, M5/600, 1100 SSDs: Micron 1100
	  alternative ID string (#1131)
	- SandForce Driven SSDs: Comay BladeDrive E28 (#823),
	  MX-DS FUSION (#900), OCZ Deneva 2 *.C (#1119), OCZ-VERTEX3 LT
	- Phison Driven SSDs: Kingston A400 with extra space in ID (#801)
	- Samsung based SSDs: SM951 *HDGM variant (patch from #1113)
	- SiliconMotion based SSDs: KingDian S400 (#1116)
	- Western Digital Gold: 1TB, 2TB (#1035, #1047), 8TB (#1033),
	  12TB, attribute 22 "Helium_Level" (patch from #1115)

2018-11-25  Cameron Costa  <cameron.costa@intel.com>

	drivedb.h: Intel S4510 M.2 (#1121, #1122, #1123, #1133)

2018-11-13  Christian Franke  <franke@computer.org>

	os_linux.cpp: Drop device scan support for obsolete devfs.
	Implement new version of scan_smart_devices().  This avoids
	duplicates if multiple '-d TYPE' options are specified.

	dev_interface.cpp, dev_interface.h: Add default implementation for
	old version of scan_smart_devices().

2018-11-02  Oleksii Samorukov  <samm@os2.kiev.ua>

	os_darwin.cpp, os_freebsd.cpp: fix return value in error paths
	patch provided by rikard.falkeborn (github)

2018-11-02  Christian Franke  <franke@computer.org>

	json.cpp: Allow UTF-8 characters in strings.

	ataprint.cpp: Add JSON support for '-l defects'.
	Add numeric values to JSON 'interface_speed' info.
	Replace local 'le*_to_uint()' with 'sg_get_unaligned_le*()'.

	ataprint.cpp, ataprint.h: Remove request to send '-l defects' output.
	Remove 'pending_defects_info' flag.
	smartctl.cpp, smartctl.8.in: Add '-l defects' to '-x' output.

2018-10-25  Christian Franke  <franke@computer.org>

	json.cpp, json.h: Add 'pretty' print option.
	smartctl.cpp, smartctl.8.in: Add '--json=c' option to disable
	pretty-printing.

	ataprint.cpp, nvmeprint.cpp, smartctl.cpp: Use const references
	for json::ref function parameters.

	json.cpp, json.h: Clean up usage of 'int64_t' and 'long long'.
	Use PRI?64 instead of "ll?" in printf() format strings.
	This re-enables build on older versions of MinGW.

2018-10-23  Christian Franke  <franke@computer.org>

	json.cpp: Remove extra space after JSON key names.

	json.cpp, json.h: Remove return of self reference from operator=().

	json.cpp, json.h: Change handling of unsafe and 128-bit integers:
	Output as string 'KEY_s' and LE byte array 'KEY_le' if range exceeded
	or verbose mode enabled.
	smartctl.cpp, smartctl.8.in: Add '--json=v' option.

2018-10-17  Christian Franke  <franke@computer.org>

	os_win32/popen_win32.cpp, os_win32/popen.h: New popen()/pclose()
	for Windows.  Unlike MSVCRT _popen(), it does not open a new console.
	os_win32.cpp: Remove run_cmd(), use popen() instead.
	os_win32/daemon_win32.cpp, os_win32/daemon_win32.h: Remove
	daemon_spawn().
	smartd.cpp: Remove _WIN32 specific usage of daemon_spawn(),
	use generic code with popen() also on Windows.
	Place quotes around warning script path on Windows.
	Makefile.am, os_win32/vc14/smart*.vcxproj*: Add new files.

2018-10-17  Rick Chen  <juihsiang.chen@gmail.com>

	scsiprint.cpp: Add SCSI information to JSON output as below:
	- Drive trip temperature (#1079)
	- Error counter log read/write/verify (#1079)
	- Grown defect list (#1082)
	- Percentage used endurance indicator (#1083)

2018-10-14  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Crucial/Micron BX/MX1/2/3/500, M5/600, 1100 SSDs: MX500 M.2
	- Samsung based SSDs: Samsung SM841 (#1043), PM841 (#1052),
	  Samsung 860 EVO (#1034, #1040, #1051, #1059),
	  Samsung 860 PRO (#1010, #1068, #1102, #1103, #1104),
	  Samsung Portable SSD T5 (#1050)
	- USB: Samsung Portable SSD T5 (0x04e8:0x61f5) (#1050)

	os_darwin.cpp: Add missing braces to SMART RETURN STATUS LBA register
	setting.  Detected by g++ 7.3 -Wmisleading-indentation.

2018-10-11  Christian Franke  <franke@computer.org>

	os_win32.cpp: Decode Windows 10 1809 and Server 2019 build number.
	Move "(64)" to end of version info.

	os_linux.cpp: Fix '-d megaraid' open crash on missing /proc/devices.
	There is no /proc/devices on ESXi (see #800) and WSL.

2018-10-09  Christian Franke  <franke@computer.org>

	smartd.cpp: Move code for '--capabilities' to separate functions.

	smartd.cpp: Rework main loop.

	smartctl.cpp, smartd.cpp, os_linux.cpp, os_solaris.cpp:
	Replace all uses of EXIT() macro.  Use early return where possible,
	use throw otherwise.
	utility.h: Remove EXIT() macro.

	utility.cpp: Detect more C++ language versions for -V option.

	drivedb.h:
	- Crucial/Micron BX/MX1/2/3/500, M5/600, 1100 SSDs: Rename,
	  BX500 (#1095)
	- Seagate Samsung SpinPoint F4 EG (AF) (#1090)
	- Seagate Momentus 5400.6: Add '-F xerrorlba' (#1094)
	- USB: JMicron JM562 (0x152d:0x0562) (IDENTIFY only, see #966)
	- USB: VIA VL715 (0x2109:0x0715) (#1098)

2018-10-09  Anthony D'Atri  <anthony.datri@gmail.com>

	drivedb.h: (#1096)
	- Samsung based SSDs: Samsung PM863a (#951, #952, #961, #962, #972)
	- Intel 730 and DC S35x0/3610/3700 Series SSDs: Dell-flavor S3500

2018-10-09  Thomas Niedermeier  <tniedermeier@thomas-krenn.com>

	drivedb.h: Samsung PM883 and SM883 (GH pull/19)

2018-09-27  Christian Franke  <franke@computer.org>

	INSTALL: Update list of default ./configure options.

	utility.cpp: Add check of sg_get_unaligned_[bl]e16() and *32 to
	check_endianness().

	utility.cpp, utility.h: Optionally use C++11 'std::regex' instead of
	POSIX regex(3).
	configure.ac: Add option '--with-cxx11-regex'.

	utility.cpp, utility.h: Simplify 'class regular_expression', remove
	unneeded flag parameters, remove unused function.
	atacmds.cpp, knowndrives.cpp, os_win32.cpp, smartd.cpp: Adjust usage
	accordingly.

	configure.ac, utility.cpp, utility.h: Remove replacement for missing
	'strtoull()'.

	configure.ac: Change default for '--with-nvme-devicescan' to 'yes'
	on Linux and Windows.  Keep 'no' on FreeBSD, NetBSD and Darwin.

2018-09-26  Christian Franke  <franke@computer.org>

	configure.ac: Print warning if systemd(1) is present but
	libsystemd-dev package is missing.

	smartd.cpp: Notify READY=1 to systemd just before first sleep() to
	ensure that the signal handlers are set.

	smartd.cpp: Always ignore failure of ATA SMART ENABLE command if
	'-T permissive' is specified.  Useful for testing on virtual
	machines.

2018-09-21  Christian Franke  <franke@computer.org>

	configure.ac, os_linux.cpp: Remove redundant define WITH_SELINUX.

	configure.ac: Check for 'libcap-ng' only on Linux.
	Rework __USE_MINGW_ANSI_STDIO test for MinGW runtime.
	Print 'deprecated' warning for '--without-working-snprintf'.

	Add systemd(1) notify support to smartd (#1081):
	configure.ac: Add option '--with-libsystemd'.
	Makefile.am: Add linker flag and man page conditional.
	smartd.cpp: If environment variable NOTIFY_SOCKET is set, use
	sd_notify(3) to inform the service manager about state changes.
	smartd.service.in: Set 'Type=notify'.
	smartd.8.in: Document new functionality.

2018-09-16  Christian Franke  <franke@computer.org>

	atacmds.cpp: Avoid possible virtual call in dtor
	(cppcheck 1.84: virtualCallInConstructor).

	os_win32.cpp: Use unsigned int for bit shifts
	(cppcheck 1.84: shiftTooManyBitsSigned).

	Makefile.am: Set HAVE_WORKING_SNPRINTF also in VC14 config.h.

	os_netbsd.cpp: Add spaces between string literals and macros for
	C++11 (g++ -Wliteral-suffix).

	ataprint.cpp: Add JSON support for '-l selective'.

	drivedb.h: Update or remove links in warning messages.

	drivedb.h: Crucial/Micron BX300, MX1/2/3/500, M5/600, 1100 SSDs:
	- Rename,
	- Crucial BX300 (GH pull/16, #963),
	- Crucial MX300 750GB,
	- Crucial MX500 (#977, #994, #995, #1004, #1024),
	- Micron M500IT (#958),
	- Micron 1100 OEM (GH pull/17),
	- fix name of attribute 202 and 248.

2018-09-12  Christian Franke  <franke@computer.org>

	ataprint.cpp: Get JSON values 'temperature.op_limit_min/max' from
	Device Statistics.

	atacmds.h, ataprint.cpp: Print ACS-4 max operating temperature
	from SCT Status.

	Makefile.am: Remove define of 'HAVE_GETOPT_LONG'.
	os*.cpp: Remove remaining checks for 'HAVE_GETOPT_LONG'.

	configure.ac: Remove check for 'uname()'.
	os_generic.cpp, os_qnxnto.cpp: Remove function 'unsupported()'.

	drivedb.h:
	- HGST Deskstar NAS: *6040ALE614 (#935, #1089)
	- HGST Ultrastar DC HC520 (He12) (#1086)

2018-09-12  Anthony D'Atri  <anthony.datri@gmail.com>

	drivedb.h: Micron 5100 Pro / 5200 SSDs (#1071)

2018-09-11  Oleksii Samorukov  <samm@os2.kiev.ua>

	os_freebsd.cpp: Fix build on FreeBSD 12, patch by fernape@

2018-09-10  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Seagate Enterprise Capacity 3.5 HDD: V5.1 (#1087)
	- Seagate Exos X12 HDD (#1042, #1046)
	- Western Digital VelociRaptor (AF): WD5000BHTZ (patch from #1041)

2018-09-10  David Purdy  <david.c.purdy@gmail.com>

	drivedb.h: Phison Driven SSDs: Kingston A400 (#801)

2018-09-02  Christian Franke  <franke@computer.org>

	dev_intelliprop.h: Fix copyright info.

	ataprint.cpp, nvmeprint.cpp: Change JSON value 'power_on_hours'
	to 'power_on_time.hours'.  Add '.minutes' if available.
	scsiprint.cpp: Add JSON values 'power_on_time.hours/minutes' from
	Seagate factory lpage or from background scan lpage.

2018-08-20  Christian Franke  <franke@computer.org>

	Add missing license headers to some source files.

2018-08-19  Christian Franke  <franke@computer.org>

	Add SPDX-License-Identifier to all files with GPL header (#919).
	Remove GPL headers.  Remove outdated info about smartsuite.

	getopt/*, regex/*: Replace with current version from glibc 2.28
	(2018-08-01).  Add _GETOPT/REGEX*_STANDALONE configurations.
	Makefile.am, os_win32/vc14/smart*.vcxproj*: Set *_STANDALONE.
	Add new files.

	examplescripts/README: Update mailing list address.
	os_solaris_ata.s: Remove old mailing list address.

	os_win32/wbemcli_small.h: Remove this file.
	The file <wbemcli.h> is usually provided by recent MinGW packages.
	configure.ac: Remove check for <wbemcli.h>.
	Makefile.am, os_win32/wmiquery.h, os_win32/vc14/smart*.vcxproj*:
	Remove usage of 'wbemcli_small.h'.

	ataprint.cpp, nvmeprint.cpp: Add JSON values 'power_cycle_count'
	and 'power_on_hours'.
	json.cpp, json.h: Add 'set_if_safe_*' member functions.

2018-08-13  Christian Franke  <franke@computer.org>

	ataprint.cpp: Add JSON support for '-l devstat'.
	Add JSON support also for old SCT Status format.

2018-08-10  Christian Franke  <franke@computer.org>

	smartctl.cpp, os_win32/wmiquery.h: Add missing printf() format checks.
	This also silences -Wformat-nonliteral warnings from clang++ 5.0.

	os_win32.cpp: Increase IOCTL_ATA_PASS_THROUGH timeout to 60 seconds.

2018-08-10  Zhdan Bybin  <zhdan.bybin@intel.com>

	drivedb.h:
	- Intel S3520 Series SSDs (#985)
	- Intel S4510/S4610/S4500/S4600 Series SSDs (#912, #928, #1000)

2018-08-04  Christian Franke  <franke@computer.org>

	Remove int64.h, use <inttypes.h> or <stdint.h> instead.

	configure.ac, utility.cpp, utility.h: Add 128-bit unsigned integer
	to string conversion.  Provides full integer precision if compiler
	supports '__int128' (e.g. x86_64 GCC and CLang).
	json.cpp, nvmeprint.cpp: Use these new functions.
	Makefile.am: Adjust config-vc14 target.

2018-08-02  Christian Franke  <franke@computer.org>

	scsicmds.h, scsiprint.cpp: Add support for SAS host managed drives
	(patch from #1045).

2018-08-01  Christian Franke  <franke@computer.org>

	dev_interface.cpp, scsiata.cpp, smartctl.8.in, smartd.conf.5.in:
	Add option '-d scsi+TYPE' to disable SAT auto detection.
	Useful in conjunction with TYPEs 'aacraid' and 'cciss' (#871).

2018-07-31  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Phison Driven SSDs: Kingston DC400 (#933, #1011), move GOODRAM to ...
	- Phison Driven OEM SSDs: ... here, PC Engines msata16d (#967),
	  INTENSO SATA III TOP (#1053)
	- USB: Iomega MDHD500-U (0x059b:0x0274) (#1003)
	- USB: Freecom (0x07ab:0xfc17) (#1049)
	- USB: JMicron JMS539 (0x152d:0x0539/0x2801) (patch from #970)
	- USB: JMicron (0x152d:0x0561) (#945)
	- USB: JMicron JMS567 (0x152d:0x2567) (#948)
	- USB: JMicron (0x152d:0x578e) (#987)

	json.cpp: Add missing ';' to '--json=g' output of 128-bit values.

2018-07-29  Christian Franke  <franke@computer.org>

	os_win32.cpp: Decode Windows Server 1803 build number.
	Improve search for actual CSMI port number.

2018-06-21  Christian Franke  <franke@computer.org>

	os_linux.cpp: Rework handling of glob() return code.
	Don't abort device scan on missing '/dev/discs' (#1036).

	os_win32.cpp: Decode Windows 10 1803 build number.
	Silence g++ 7.3 -Wformat-truncation warning.

2018-04-19  Christian Franke  <franke@computer.org>

	utility.cpp, utility.h: Use array reference for buffer parameter
	of dateandtimezoneepoch().  Remove no longer used dateandtimezone().

	utility.cpp: Add check of sg_get_unaligned_[bl]e64() to
	check_endianness().

2018-04-16  Douglas Gilbert  <dgilbert@interlog.com>

	switch usage of unaligned.h to sg_unaligned.h which is functionally
	the same. sg_unaligned.h is the same header used by libsgutils which
	is the basis of the sg3_utils, sdparm and ddpt packages available on
	many of the same architectures as smartmontools is. This change
	introduces a "sg_" prefix on the inline functions defined
	sg_unaligned.h . The new header has specializations for big and little
	endian machines that depends on the non-standard bswap_16(), bswap_32()
	and bswap_64() calls. They are defined in the byteswap.h header which is
	a GNU extension. According to the 'net both gcc and clang use intrinsics
	{assembler ?} to implement these calls. If the byteswap.h header is not
	present on the build machine, the generic implementations will be
	used for the "unaligned" family of functions. Additionally the generic
	implementations can be imposed with './configure --disable-fast-lebe'.
	Developers may need to use './autogen.sh' prior to their normal build
	sequence. Please report any problems to the author.

2018-03-28  Christian Franke  <franke@computer.org>

	ataprint.cpp, nvmeprint.cpp, scsiprint.cpp:
	Output JSON 'user_capacity' as 'blocks' and 'bytes'.
	Handle both as unsafe ints.

	smartd.cpp: Ignore remaining percentage in initial check of
	self-test execution status.

	scsiata.cpp: Fix device type info for 'usbcypress'.

	os_linux.cpp: Fix device scan crash on missing /proc/devices.

	update-smart-drivedb.in, update-smart-drivedb.8.in:
	Add option '-u github'.

2018-03-20  Christian Franke  <franke@computer.org>

	nvmeprint.cpp: Add initial JSON support for '-i', '-H' and '-A'.

	json.cpp, json.h: Add support for 64 and 128 bit unsigned
	integers.  Add 'set_unsafe_*()' member functions to print unsigned
	integers >= 53 bit as JSON number and string.

2018-03-07  Douglas Gilbert  <dgilbert@interlog.com>

	smartd.cpp:
	- continue to use READ CAPACITY(10) first on unseen
	  SCSI devices but once we discover the need for
	  READ CAPACITY(16) use it for subsequent accesses
	dev_interface.h: 
	- struct scsi_device: add set_rcap16_first() and
	  use_rcap16() const methods
	scsicmds.cpp:
	- use scsi_device::set_rcap16_first() when READ
	  CAPACITY(10) reports 32 bits can't represent the
	  number of blocks

2018-03-06  Alex Samorukov <samm@os2.kiev.ua>

	drivedb.h: 
	- add Transcend PSD SSD family (#979)
	- add Toshiba HK4R Series SSD (#898)
	- extend Western Digital Re regexp (#896)
	- extend Wester Digital Se regexp (#953)
	- add Smartbuy ignition plus (#976)

2018-03-05  Gabriele Pohl <contact@dipohl.de>

	drivedb.h:
	- Add Seagate IronWolf 12TB ST12000VN0007-2GS116 (#988)

2018-03-05  Alex Samorukov <samm@os2.kiev.ua>

	drivedb.h: add Seagate Barracuda Pro family (#981)

2018-03-01  Alex Samorukov <samm@os2.kiev.ua>

	os_freebsd.cpp: Fix build under -CURRENT (patch by cy@)

2018-02-28  Alex Samorukov <samm@os2.kiev.ua>

	drivedb.h:
	- Add SanDisk SDSSDH2128G (#982)

2018-02-27  Alex Samorukov <samm@os2.kiev.ua>

	drivedb.h:
	- extend PLEXTOR PX regexp (#934)
	- add Seagate Enterprise NAS HDD family (#946)
	- add SanDisk SDSA6MM-* family (#965)
	- fix Seagate Laptop HDD regexp (#955)
	- add Seagate Barracuda Compute series (#927)
	- extend Seagate Enterprise Capacity 3.5 HDD regexp (#956)

2018-02-26  Alex Samorukov <samm@os2.kiev.ua>

	drivedb.h:
	- add Seagate XF1230 SSD (GH: issues/4)
	- add Intel SSD Pro 5400s Series (GH: pull/5)
	- add SanDisk-SD8SN8U-256G-1006 (GH: pull/3)
	- add Toshiba Q300 SSD series (#932)
	- extend HGST Deskstar NAS regexp (#975)
	- add KINGSTON SNS4151S316GD SSD (#902)

2018-02-20  Christian Franke  <franke@computer.org>

	os_netbsd.cpp: Apply patch-os_netbsd.cpp 1.1 (2017-12-15) from
	pkgsrc.se/sysutils/smartmontools: Add missing <sys/stat.h>.

	configure.ac, int64.h: Remove support for pre-C99 environments without
	<inttypes.h> and <stdint.h>.

	configure.ac: Add '-Wformat=2 -fstack-protector-strong' unless
	CXXFLAGS include other '-W' or '-f' options.

2018-02-16  Christian Franke  <franke@computer.org>

	drivedb.h:
	- USB: Default to '-d sat' for Toshiba (0x0480), Seagate (0x0bc2),
	Western Digital (0x1058), Initio (0x13fd), ASMedia (0x174c).
	Keep known exceptions.  Merge some entries.

2018-02-08  Douglas Gilbert  <dgilbert@interlog.com>

	nvme on windows: just some code comments. Seems as though
	W10 tries to completely neuter the idea of a pass-through.

2018-01-06  Douglas Gilbert  <dgilbert@interlog.com>

	scsi subsystem: improve dStrHex() signature, adjust
	invocations. Adjust scsi_format_id_string() signature.
	Add smartctl support for Pending Defects (sub-)log page;
	seems similar to 'smartctl -l defects' but that is ATA
	only. Needs to be generalized (as it will probably appear
	in NVMe also).

2018-01-04  Douglas Gilbert  <dgilbert@interlog.com>

	scsi subsystem: preparation for decoding more log pages.

2018-01-01  Alex Samorukov <samm@os2.kiev.ua>

	os_freebsd.cpp: fix build with CLANG/6. Patch provided by
	Dimitry Andric, PR 224826

2018-01-01  Christian Franke  <franke@computer.org>

	Happy New Year! Update copyright year in version info.

2017-12-30  Douglas Gilbert  <dgilbert@interlog.com>

	scsi subsystem: add code to check for both log pages
	and subpages, subpages were not checked for previously.
	Add decoding for Format Status log page. Associated
	cleanups. Tighten checking for Seagate and Hitachi
	vendor specific log pages; '-T permissive' will relax
	checks back to the situation before this patch

2017-12-29  Douglas Gilbert  <dgilbert@interlog.com>

	unaligned.h: fix inconsistency in function argument
	of get_unaligned_be24()

2017-12-29  Douglas Gilbert  <dgilbert@interlog.com>

	Add --enable-scsi-cdb-check option to ./configure that
	results in a SCSI cdb sanity check prior to SCSI generic
	pass-through in Linux. [So it does not sanity check
	Megaraid and 3ware (etc) pass-throughs (but could).] When
	selected defines SCSI_CDB_CHECK in config.h . This may be
	temporary. This patch is an attempt to catch strange
	frames (perhaps SATA FIS) being sent to the SCSI
	pass-through.

2017-12-29  Douglas Gilbert  <dgilbert@interlog.com>

	Rework scsiGetSize() and remove scsiGetProtPBInfo().
	Convert scsicmds.cpp to use unaligned.h get and put.

2017-12-27  Alex Samorukov <samm@os2.kiev.ua>

	Add unaligned.h header file to the Makefile.am

2017-12-27  Douglas Gilbert  <dgilbert@interlog.com>

	Add unaligned.h header file; has get and put variants of
	unaligned be16,24,32,48,64 and le16,24,32,48,64 copies
	plus all_zeros() and all_ffs() helpers. All inline.

2017-12-27  Douglas Gilbert  <dgilbert@interlog.com>

	Remove UINT8, INT8, UINT32 and INT32 typedefs in favour
	of the types from <stdint.h>; for example uint8_t

2017-12-27  Douglas Gilbert  <dgilbert@interlog.com>

	nvmecmds.cpp: according to NVMe 1.3a spec, the SMART/
	health information log page is global and should take
	the global nsid (all ff_s). It also says the Error
	info lpage is "global. Broke WD Black PCIe (NVMe)
	SSD but worked on Intel SSDs. Fix; could break others.

2017-12-27  Douglas Gilbert  <dgilbert@interlog.com>

	os_freebsd.cpp: on error was setting set_nvme_err() to 1,
	not the actual NVMe status value; fix.

2017-12-24  Alex Samorukov  <samm@os2.kiev.ua>
	CircleCI: add FreeBSD cross compilation

2017-12-22  Alex Samorukov  <samm@os2.kiev.ua>
	configure.ac: add -lsbuf to FreeBSD libs to fix static builds.

2017-12-21  Douglas Gilbert  <dgilbert@interlog.com>

	scsiprint.cpp: Start some JSON work. Other cleanups and helper
	functions; potentially new header for those helpers.

2017-12-17  Christian Franke  <franke@computer.org>

	ataprint.cpp: Add JSON support for '-g all', '-l scterc' and
	'-l scttemp'.

	ataprint.cpp: Don't print obsolete SCT Support Level (#940).

2017-12-14  Christian Franke  <franke@computer.org>

	ataprint.cpp: JSON '-A' output: Add booleans and string for attribute
	flags.  Remove string array.  Rename table.

	ataprint.cpp: Add JSON support for '-l [x]error'.

2017-12-13  Christian Franke  <franke@computer.org>

	smartctl.cpp, smartctl.8.in: Rename '--json=a' to '--json=o'.

	smartctl.cpp: Show command line error messages in JSON output.

	ataprint.cpp: Add JSON support for '-l [x]selftest' and
	'-l directory'.

	atacmds.cpp, atacmds.h: Move self-test print functions to ...
	ataprint.cpp: ... here.
	smartd.cpp: Rework self-test error counting.

	ataprint.cpp: Add JSON support for '-c'.

	atacmds.cpp, atacmds.h: Change return type of capability checks to
	bool.  Declare simple checks inline.

2017-12-07  Christian Franke  <franke@computer.org>

	json.cpp: Avoid 'cbegin()' and 'cend()' to fix build with older
	libstdc++.

	json.cpp, json.h, smartctl.cpp, smartctl.8.in: Add '--json=s' option.
	Outputs JSON object elements sorted by key.
	Add '--json=g' option.  Outputs JSON structure suitable for grep.

2017-12-05  Christian Franke  <franke@computer.org>

	ataprint.cpp: Add JSON support for '-l sataphy'.

	smartctl.cpp: Add JSON support for '--scan'.
	Add similar device info to regular JSON output.
	ataprint.cpp, scsiprint.cpp: Remove now duplicate "protocol" element.

	smartctl.cpp: Silence false positive warnings from clang analyzer.

2017-12-02  Christian Franke  <franke@computer.org>

	Add initial support for smartctl JSON output mode (#766):
	json.cpp, json.h: New files with JSON support class.
	Makefile.am, os_win32/vc14/smartctl.vcxproj*: Add new files.
	ataprint.cpp: Add initial JSON support for -i, -H, -A and -l [x]error.
	scsiprint.cpp: Add initial JSON support for -i and -H.
	smartctl.cpp, smartctl.h: Add '-j, --json' option, global JSON object
	and new print functions.
	smartctl.8.in: Document new functionality.

	atacmds.cpp: Remove no longer needed variable 'must_swap'.

	os_win32.cpp: Remove include of smartctl.h, add extern declaration.
	Decode Windows Server 1709 build number.

	configure.ac, os_linux.cpp: Always include <sys/sysmacros.h> if available.
	This silences a 'deprecated' warning from glibc 2.25 headers.

2017-11-20  Alex Samorukov  <samm@os2.kiev.ua>

	os_netbsd.cpp (fix regressions in smartmontools 6.6)
	 - fix BE platforms support, tested on sparc64 (#943)
	 - fix name based device type detection (#943)
	 - Add byte-swapping for IDENTIFY command and remove related hacks from the
	   atacmds.cpp (#117)

2017-11-18  Alex Samorukov  <samm@os2.kiev.ua>

	drivedb.h:
	- Add Swissbit C440 industrial cf card series (#942)
	- Fix Innolite Satadom D150QV entry (#939)

2017-11-16  Christian Franke  <franke@computer.org>

	smartd.initd.in: Remove FreeBSD section.

	os_linux.cpp: Add missing braces to 3ware SELinux code.
	This possibly harmless bug was introduced ~10 years ago in r2510.
	It is now detected by g++ 6.3 -Wmisleading-indentation warning.

	update-smart-drivedb.in: Include configured PATH in help and
	error messages.  Allow digits in SVN Id user name.

	configure.ac: Prepend '/usr/local/bin' to default for
	'--with-scriptpath' (#941).

2017-11-15  Christian Franke  <franke@computer.org>

	smartd.cpp: Use 'sigaction()' instead of deprecated 'sigset()'
	or 'signal()'.
	configure.ac: Add '--with-signal-func' to select old function
	if needed.

	configure.ac: Remove '-with-initscriptdir=[auto|yes]' heuristics.
	The default init script is no longer useful on most platforms.
	INSTALL: Update related documentation.

	configure.ac, Makefile.am: Use smartd.cygwin.initd.in on Cygwin.
	smartd.cygwin.initd.in: New file.
	smartd.initd.in: Remove Cygwin section.

	configure.ac: Make some header checks platform specific.
	Print '--with-nvme-devicescan' warning also on FreeBSD.
	Remove '--with-solaris-sparc-ata' warning.

	examplescripts/Example6: Add enhancements from Fedora package.

2017-11-13  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Western Digital Red: WD80EZZX
	- USB: WD My Book (0x1058:0x25ee) (Red Hat Bugzilla 1446533)

2017-11-13  Matt Coates  <me@mattjackets.com>

	drivedb.h: USB: Seagate Backup Plus 4TB (0x0bc2:0xab43) (#926)

2017-11-10  Alex Samorukov  <samm@os2.kiev.ua>

	drivedb.h: add SanDisk iSSD SDIS6BM (#923)

2017-11-08  Christian Franke  <franke@computer.org>

	Makefile.am, os_win32/installer.nsi: Add VERSIONINFO resource to
	installer.

	os_win32/installer.nsi: Remove get/set of old 'Install_Dir' registry
	entry.  No longer needed for recent versions of GSmartControl.
	Remove deletion of old .exe.manifest files.
	Search also for 64-bit version of Notepad++.

	ataprint.cpp: Fix detection of Device Statistics log with
	256 sectors (#922).

	os_linux.cpp: Use 'realpath()' (BSD, POSIX) instead of
	'canonicalize_file_name()' (GNU extension).
	This fixes build on systems with musl libc (#921).

2017-11-06  Alex Samorukov <samm@os2.kiev.ua>

	os_freebsd.cpp: implement NVMe device scan (#687)
	os_freebsd.cpp: show hint if /dev/nvd* is specified as device name

2017-11-05  Christian Franke  <franke@computer.org>

	configure.ac: Add separate version number for drivedb.h branch.

2017-11-05  Christian Franke  <franke@computer.org>

	smartmontools 6.6

2017-11-04  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Apple SD/SM/TS...E/F/G SSDs: Rename, add 1TB
	- Innodisk 3IE3/3ME3/3ME4 SSDs: Rename, add 3ME4
	- Intel 730 and DC S35x0/3610/3700 Series SSDs: 150GB, *G7
	  (ticket #750)
	- USB: Toshiba Canvio (0x0480:0xa202, 0xa207)
	- USB: Seagate Expansion Desktop (0x0bc2:0x3330)
	- USB: Maxtor D3 Station 3TB (0x0bc2:0x6123)
	- USB: Seagate Backup Plus 4TB (0x0bc2:0xab1e)
	- USB: JMicron (0x152d:0x0579)
	- USB: Hitachi Touro Mobile (0x4971:0x1023)
	- USB: JMicron JMS566 (0xa152:0xb566)
	- USB: LogiLink PCCloneEX Lite (0xabcd:0x6104)

	smartd.conf.5.in: Fix conditionals of platform specific samples.

	smartctl.8.in, smartd.conf.5.in: Shorten or remove info about
	very old 3ware controllers.

	smartctl.8.in: Add '-g' to '-x' documentation.
	Avoid a very long line.

	smartctl.cpp: Improve help text formatting.

2017-11-03  Christian Franke  <franke@computer.org>

	update-smart-drivedb.8.in: Update mailing list link.
	update-smart-drivedb.in: Update mailing list comment.

	utility.cpp: Silence g++ 7.1 -Wformat-truncation warning.

	atacmds.cpp, dev_areca.cpp, os_linux.cpp: Add comments to silence
	g++ 7.1 -Wimplicit-fallthrough=[1-4] warnings.

	os_linux.cpp: Fix indentation (g++ 6.3: -Wmisleading-indentation).

	nvmeprint.cpp: Print IEEE EUI-64 of namespace.

2017-10-29  Christian Franke  <franke@computer.org>

	smartctl.8.in: Add notes about SMART commands obsoleted in ACS-4.
	Remove some outdated info.

	smartctl.8.in, smartd.8.in, smartd.conf.5.in: Enable NVMe sections
	for Darwin.

	os_win32/installer.nsi: Update links.
	Remove outdated uninstall commands.

	INSTALL: Update ./configure description and OS info.

	ataidentify.cpp, ataprint.cpp: Minor ACS-4 additions.

	ataprint.cpp, ataprint.h, smartctl.cpp: Add option '-l defects'
	to print ATA ACS-4 Pending Defects log (ticket #909).
	smartctl.8.in: Document '-l defects'.

2017-10-25  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Samsung based SSDs: PM871b (tickets #895, #903)
	- Seagate Enterprise Capacity 3.5 HDD: 4TB (fix for #913)
	- Western Digital Red Pro: 6TB (ticket #785)

	os_win32/smartd_warning.cmd: Add ability to run PowerShell scripts
	with '-M exec'.
	smartd.conf.5.in: Document new functionality.  Fix typo.

2017-10-25  Alex Samorukov <samm@os2.kiev.ua>

	drivedb.h:
	 - add SATA Voyager GTX (#893)

2017-10-24  Christian Franke  <franke@computer.org>

	do_release: Update code signing key id.

	update-smart-drivedb.in: Add new mailing list address to database
	signing key.

2017-10-24  Alex Samorukov <samm@os2.kiev.ua>

	drivedb.h:
	 - add USB Voyager GTX (#893)
	 - add Phison based OEM SSD based on the firmware name (#853, #831)
	 - add Ultrastar 7K2 series (#892)
	 - add LITEON ZETA (LMH-*V2M-*) (#794)

2017-10-22  Christian Franke  <franke@computer.org>

	os_win32.cpp: Decode Windows 10 1709 build number.

	configure.ac: Fail instead of warn if no compiler option to accept
	C++11 found and '--with-cxx11-option' is not specified.

2017-10-19  Alex Samorukov <samm@os2.kiev.ua>

	scsicmds.h: increase SCSI_TIMEOUT_DEFAULT to 1 minute to work on the
	big JBOD arrays (#917)

2017-10-15  Christian Franke  <franke@computer.org>
