$Id: ChangeLog 5714 2025-04-30 07:43:44Z chrfranke $

2025-04-30  Christian Franke  <franke@computer.org>

	smartmontools 7.5

2025-04-29  Christian Franke  <franke@computer.org>

	nvmeprint.cpp: Add NSID to JSON output of SMART/Health information.

	ataprint.cpp: ACS-6 updates.

	popen_as_ugid.cpp: Add missing config.h.

	os_win32/update-smart-drivedb.ps1.in: Print download command if
	'-Verbose' is used.

	os_win32/smartd_mailer.conf.sample.ps1: Add encryption sample.

2025-04-27  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Phison Driven SSDs: PNY CS900/1311/2211 1TB, 2TB (GH pull/201).
	- Hitachi/HGST Ultrastar 7K4000: HITACHI variant (#1791),
	  4.5TB (GH pull/305).
	- Western Digital Ultrastar HC*: Attribute 22 is in "DEFAULT" entry.
	- Seagate Exos X20/X22: Rename, add X22 (#1932).
	- Seagate IronWolf: Attribute 188 (GH issues/319), *VN000,
	  *VN002 (GH issues/246), *VN006 (#1687, GH issues/157), 14TB, 16TB.
	- Seagate IronWolf Pro: 16TB (#1836), 18TB, 20TB.
	- USB: Fujitsu (0x04c5:0x11bc) (#1938).
	- USB: ADATA HD680 (0x125f:0xa85a) (#1764).

2025-04-26  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Micron 5100 / 52x0 / 5300 / 5400 SSDs: 5400 *_SED variant (#1950).
	- Phison Driven OEM SSDs: Gigastone GSTB512G (#1947).
	- Silicon Motion based SSDs: Transcend SSD230S 2/4TB
	  (GH issues/240, GH pull/241).
	- Silicon Motion based OEM SSDs: Intenso M.2 SSD High (#1945),
	  Intenso SSD Sata III/S0222A0 (#1948).
	- SSSTC ERX GD/CD Series SSDs: 7.68TB, 15.36TB (#1946).
	- Seagate Exos 7E8: OOS6000G (GH issues/320).
	- Seagate Exos X20: OOS20000G.

2025-04-26  Michael Brünen  <mibruenen@gmail.com>

	drivedb.h:
	- WD Ultrastar DC HC530: Attribute 188.
	- Seagate Enterprise Capacity 3.5 HDD v7 SED.
	- Seagate Exos 7E8: Attribute 188.
	- Seagate Exos X16: Attributes 1, 7 and 188.
	- Seagate IronWolf Pro: Attribute 188, 22TB, *NT001 variant.

	(GH pull/247)

2025-04-25  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Bump branch VERSION to 7.5.
	- JMicron JMS581 (0x152d:0xb581) (GH issues/275).

	configure.ac: Use RELEASE_7_5_DRIVEDB for drivedb.h updates.

	update-smart-drivedb.*: Use current gpg key also for 7.5 branch.

	Create new branch RELEASE_7_5_DRIVEDB.

2025-04-22  Christian Franke  <franke@computer.org>

	smartd.conf.5.in: Document '-H MASK'.

	smartd.cpp: Allow to configure checked NVMe Critical Warning bits.

	Add optional MASK parameter to '-H' directive to specify the bits
	to check (#1715).

	smartd.cpp: Fix validity check for SCSI attribute log (#1245).

	smartd.cpp: Add missing 'static'.

	smartd.8.in, smartd.conf.5.in: Update EXPERIMENTAL notes.

2025-04-21  Christian Franke  <franke@computer.org>

	man pages: Enable NVMe related information for all platforms.

	smartd.conf.5.in: Remove outdated information about old controllers.

	smartd.8.in: Rework '-A' and '-s' and add NVMe info.

	smartd.conf.5.in: Rework '-H -f -p -u -t -a' and add NVMe info.

	smartd.cpp: Handle only 'Available Spare' as prefailure value.

	Enable logging of 'Percentage Used' and 'Media and Data Integrity
	Errors' with '-u' instead of '-p'.  Enable LOG_CRIT with '-f'.

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

	smartd.cpp: Report changes of prefailure NVMe SMART/Health values.

	If '-p' directive is enabled (default), changes of 'Available Spare'
	(#1716), 'Percentage Used' and 'Media and Data Integrity Errors' are
	logged as LOG_INFO or LOG_CRIT.

	smartd.cpp: Fix format string of NVMe attribute log.

2025-04-15  Christian Franke  <franke@computer.org>

	smartd.cpp: Add NVMe attribute logs.

	(#1190, GH pull/221, GH pull/281)

2025-04-14  Christian Franke  <franke@computer.org>

	nvmeprint.cpp: Add JSON support for NVMe capabilities.

2025-04-13  Christian Franke  <franke@computer.org>

	do_release: Set SOURCE_DATE_EPOCH for reproducible tarball.

2025-04-02  Lucas Holt  <luke@foolishgames.com>

	configure.ac: Treat MidnightBSD like FreeBSD for host detection.

	(GH pull/333)

2025-03-27  Christian Franke  <franke@computer.org>

	farmprint.cpp: Suppress serial and WWN if '-q noserial' is used.

	smartctl.8.in: Document that '-x' no longer includes '-g wcreorder'.

	ataprint.cpp: Add JSON values 'power_mode.*' (based on GH/pull 239).

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

	scsinvme.cpp: Add NVMe/SAT autodetection if '-d snt*/sat' is used.

	dev_interface.h: Make 'smart_interface::get_sat_device()' public.
	This allows usage within 'autodetect_open()' functions.

	scsinvme.cpp: Remove unneeded function 'sntjmicron_device::open()'.

	scsinvme.cpp: Remove outdated check for 'sntjmicron#please_try'.

	smartctl.cpp: Exclude '-g wcreorder' from '-x' (#1702).

	ATA ACS only offers a support check for the SCT FEATURE CONTROL
	command, but not for its GET WRITE CACHE REORDERING subcommand.
	If this subcommand fails, the next ATA command (SMART READ DATA)
	may also fail in some cases.

2025-03-17  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Swissbit X-7x Family SATA SSD: Simplify regex, add testcase
	  comments (from #1781, #1800, GH pull/322).
	- Swissbit X-8x Family SATA SSD: Add testcase comments
	  (from #1801, GH pull/322).
	- Phison Driven SSDs: DGSR2*GP13T (#1917), PS3110 256GB (#1829),
	  S11-*-PHISON-SSD-B27.
	- Phison Driven OEM SSDs: Goodram CX400 G2 (#1928).
	- USB: Buffalo (0x0411:0x0...): Merge '-d sat' entries.
	- USB: Buffalo SSD-PSTA/N (0x0411:0x039d) (GH pull/307).
	- USB: Packard Bell Carbon (0x0766:0x0017) (#1933).

2025-03-17  Glucy2 <glucy-2@outlook.com>

	drivedb.h: add Realtek RTL9220 (0x0bda:0x9220)

	(GH pull/327)

2025-03-17  Daniel SWB  <daniel.swb.gh@gmail.com>

	drivedb.h: Swissbit X-7x, X-8x family SATA SSD

	(GH pull/322)

2025-03-14  Christian Franke  <franke@computer.org>

	os_linux.cpp: Drop autodetection of deprecated type 'marvell'.

2025-03-14  ThunderEX  <thunderex@gmail.com>

	farmprint.cpp: Fix unit of write power on time.

	(GH pull/328)

2025-02-24  Ross Lagerwall  <ross.lagerwall@citrix.com>

	scsicmds.cpp:
	- Fix buffer overflow parsing VPD page 0x83 (#1934)
	- Fix handling multiple designators in VPD page (#1934)

2025-02-15  Christian Franke  <franke@computer.org>

	ataprint.cpp: Add support for '-l farm -T permissive'.

	Overrides the FARM support check for rebranded Seagate drives
	(see GH issues/320).

2025-02-05  Christian Franke  <franke@computer.org>

	drivedb.h:
	- USB: HP x911w (0x03f0:0x0c5c) (GH issues/315).
	- USB: Add Samsung Portable SSD T9 (0x04e8:0x61fd) (#1904).
	- USB: Asus Arion (0x0b05:0x1932) (GH issues/303).
	- USB: WD Elements SE SSD (0x1058:0x266e) (GH issues/230).
	- USB: TeamGroup C212 flash drive (0x13fe:0x6500) (GH issues/302).
	- USB: TerraMaster D4-320 (0x5432:0x235c) (#1925).
	- USB: Sabrent EC-SSHD (0x5910:0x13fd).

2025-02-02  Christian Franke  <franke@computer.org>

	*print.cpp: Add JSON values for endurance and available spare.

	'endurance_used.current_percent' is added for ATA, SCSI and NVMe,
	'spare_available.{current,threshold}_percent' are added for ATA and
	NVMe.

	smartd.cpp: Drop support for platforms without 'sigaction()'.

	configure.ac: Fail if '--with-signal-func' is used.

	configure.ac: Remove defunct '--with-solaris-sparc-ata'.

	configure.ac: Change default for '--with-nvme-devicescan' to 'yes' on
	NetBSD.  Update related warnings.

2025-01-26  Christian Franke  <franke@computer.org>

	drivedb.h: Drop maintenance of 6.5-6.6 branches.

	drivedb.h:
	- SandForce Driven SSDs: OCZ-VERTEX3.20 (#1924).
	- Intel/Solidigm S46x0/S45x0 Series SSDs: Rename, add Solidigm (#1878).
	- Marvell based SanDisk SSDs: SDSSDH3* with extra space char (#1918).
	- Silicon Motion based SSDs: AMD R5SL (#1744), DEXP C100 (#1919),
	  TCSUNBOW X3 480GB (#1786).
	- Silicon Motion based OEM SSDs: INTENSO SSD/W0413A0 (#1740),
	  W0714A0 (#1858), SPCC M.2 SSD/U1209A0 (#1841), Vi550 S3 (#1899).

2025-01-24  Christian Franke  <franke@computer.org>

	scsiprint.cpp: Re-add JSON value 'model_name'.

	This fixes a regression from r5286 (smartmontools 7.3).
	Keep 'scsi_model_name' to provide backward compatibility with
	release 7.3 and 7.4.

2025-01-24  Andrew Sayers  <andrew-github.com@pileofstuff.org>

	smartd.service: silence "Referenced but unset environment variable" warning

	(GH pull/316)

2025-01-15  Oleksii Samorukov <samm@os2.kiev.ua>

	sntjmicron: workaround to avoid USB reset on selftest log query (GH: #256).

2025-01-02  Christian Franke  <franke@computer.org>

	smartd.cpp: Avoid invalid "old test ... not run" message.

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

	Happy New Year!  Update copyright year in version info.

2024-12-10  Christian Franke  <franke@computer.org>

	smartctl.8.in, smartd.conf.5.in: Document '-d jmb39x-q2,...'.

2024-12-10  Rodrigo Araujo  <araujo.rm@gmail.com>

	dev_jmb39x_raid.cpp: support QNAP-TR002 NAS

	Add '-d jmb39x-q2,...' device type for JMB39x
	protocol variant used by QNAP-TR002 NAS.
	(#1290, GH pull/306)

2024-11-30  Christian Franke  <franke@computer.org>

	os_win32.cpp: Decode Windows Server 2025 build number.

2024-11-20  Eaton Zveare  <eaton@eaton-works.com>

	Increase WMI timeout on Windows to address issues when
	reading USB device ID.

	(GH pull/277)

2024-11-20  Robin Schneider  <ypid@riseup.net>

	man pages: Fix typo, '-l directory,q' was mentioned but only
	'-l directory,g' is supported.

	(GH pull/298)

2024-11-18  Martin Ziemer  <horrad@horrad.de>

	openbsd_nvme_ioctl.h, os_openbsd.cpp: Enable NVMe on OpenBSD
	smartctl.8.in, smartd.8.in: Add OpenBSD in documentation for NVMe

	(#729, GH pull/299)

2024-11-17  Christian Franke  <franke@computer.org>

	smartd.cpp: Ignore NSID in duplicate check of single namespace
	devices.

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

	smartd.cpp: Ignore individual temperature sensors (#1850).
	Some devices use these to report other values like maximum
	temperature.

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

	smartd.cpp: Add support for NVMe self-tests.

	Support '-l selftest', '-l selfteststs' and '-s ...' for NVMe
	(#1649, #1813, GH issues/218, GH pull/219).
	Minor rework of ATA/SCSI self-test code to re-use its count/hours
	heuristics which detects new self-test errors.

	smartd.conf.5.in: Document this new feature.

2024-10-26  Christian Franke  <franke@computer.org>

	autogen.sh: Add check for CR/LF, remove Cygwin specific check.

2024-10-26  Aleksander Jan Bajkowski  <olek2@wp.pl>

	autogen.sh: Allow to build with automake 1.17 (GH pull/292).

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

	nvmeprint.cpp: Support SMART/Health Information per namespace.
	nvmecmds.*: Add parameter 'nsid' to 'nvme_read_smart_log()'.
	smartctl.8.in: Document this new feature.

	nvmecmds.h: Add 'nvme_broadcast_nsid' and use it where applicable.

	smartctl.8.in: Update documentation of NVMe '-l selftest'.

2024-10-23  Ameer Hamza  <ahamza@ixsystems.com>

	nvmeprint.cpp: fix self-test for devices with multiple namespaces.
	Use broadcast NSID for (06h) log page access to prevent `Invalid
	Field in Command` error when accessing the log page. Also, use
	device NSID for both single and multi namespace devices when
	issuing the Device Self-test (14h) command.

2024-10-16  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Micron 5100 / 52x0 / 5300 / 5400 SSDs: 5300 variant without vendor
	  prefix (#1877).
	- Toshiba 2.5" HDD MQ04UBB... (USB, SMR) (#1400, #1821, #1832).
	- Toshiba MG11 Cloud-scale Capacity HDD.
	- Seagate Exos X18 (#1552, #1742, #1763, #1871, #1872, GH pull/225).
	- Seagate Exos X20 (#1567, #1882).
	- Seagate Exos X24.
	- WD Blue / Red / Green SSDs: SanDisk Portable SSD (#1743).
	- USB: Sandisk SDSSDE30-2T00 (0x0781:0x55b0) (#1743).

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

	drivedb.h:
	- USB: Genesis Logic (0x05e3:0x0761) (GH issues/259).
	- USB: SanDisk Extreme (0x0781:0x55ae) (GH issues/273).
	- USB: Kingston XS1000 (0x0951:0x1780) (part of #1834).
	- USB: Realtek RTL9201 (0x0bda:0x9201) (part of #1841,
	  GH issues/268, /270).
	- USB: Apacer AC633 (0x1005:0xc004) (#1893).
	- USB: TerraMaster D2-320 (0x1352:0xa006) (GH issues/283).
	- USB: JMicron (0x152d:0xa578).
	- USB: JMicron (0x152d:0xa580) (GH pull/276, GH issues/289).
	- USB: Terramaster D4-320 (0x235c:0xa006) (#1856, #1874).
	- USB: HIKSEMI (0x2bdf:0x0580) (#1883).
	- USB: DockCase 10s PLP (0x31db:0x0716) (GH issues/284).
	- USB: Hitachi Touro Desk Pro (0x4971:0x1013).

	nvmecmds.cpp: Map 'Set Feature' related errors to EINVAL (#1835).

	ataprint.cpp: Don't return failure if '-l scterc' is not supported.

	Only return failure (exit status 4) if a SCT command failed or an
	attempt to set ERC ('-l scterc,...') failed (#1892).

2024-10-05  Christian Franke  <franke@computer.org>

	scsicmds.cpp: Fix range checks of mode page offset and VPD inquiry
	(GH issues/272).

2024-09-29  Ru Wang  <ru.wang@seagate.com>

	farmprint.cpp (GH pull/285):
	- Fix SATA decode of dateOfAssembly.
	- Uninitialized string (part from GH issues/272).

2024-09-23  Christian Franke  <franke@computer.org>

	os_win32.cpp: Decode Windows 11 23H2 and 24H2 build numbers.

	drivedb.h:
	- Toshiba MG09ACA... Enterprise Capacity HDD: 10-14GB,
	  Lenovo OEM (#1876).
	- Toshiba MG10ADA... Enterprise Capacity HDD
	- Seagate Barracuda 7200.12: Suppress warning if HP firmware (#1847).
	- Seagate Barracuda 7200.12: Attributes 188 and 240 (#1855).
	- Seagate BarraCuda 3.5 (CMR): Reformat regexp.
	- Seagate Constellation ES.2: IBM OEM (#1431).

2024-05-08  Christian Franke  <franke@computer.org>

	smartctl.cpp, smartd.cpp: Fix segfault on missing option argument (#1830).

	getopt*() from musl libc sets 'optind = argc + 1' if the argument of
	a short option is missing.

2024-04-26  Christian Franke  <franke@computer.org>

	os_win32/vc1[67]/*: Set svn:eol-style=CRLF, MSVC does not preserve LF.

2024-04-06  Christian Franke  <franke@computer.org>

	drivedb.h: move Toshiba and WDC "Helium" attributes to "DEFAULT" entry.
	Drop maintenance of 6.0-6.4 branches due to missing "DEFAULT" entry.

	drivedb.h:
	- Western Digital Ultrastar (He10/12): move WD40EZAZ to Blue (SMR).
	- Western Digital Blue (CMR): rename, add *EAZZ (#1576, GH issue/192) and other.
	- Western Digital Blue (SMR): 3TB, *BX variant.
	- Western Digital Red (CMR): rename, add 3TB, move *EF[ABFG]X* to Red Plus.
	- Western Digital Red Plus (#1675, #1704, GH pull/79).
	- Western Digital Red Pro: 12TB (#1676), 14TB, 20TB and attribute 90 (#1731).

2024-04-02 Gabriele Pohl  <contact@dipohl.de>

	drivedb.h:
	- Western Digital Ultrastar (He10/12): WDC WD40EDAZ-11SLVB0 (#1411)
	- Western Digital Red Pro: WDC WD161KFGX-68AFPN0, 
	  WDC WD181KFGX-68AFPN0 (#1611, GH issues/173 and 
	  reported by Ben Lovett via Smartmontools-database 2023-05-21)
	- Toshiba 2.5\" HDD MQ01ABF...: TOSHIBA MQ01ABF032 ((based on patch from #1804)
	- Toshiba N300/MN NAS HDD: TOSHIBA HDWG51J and rest from product sheet
	  reported by Andreas Bofjall via Smartmontools-database 2024-02-29

2024-03-29  Christian Franke  <franke@computer.org>

	man pages: Remove EXPERIMENTAL notes for features added before 7.3.

	nvmeprint.cpp: Print NSID used for self-tests and '-l nvmelog'.

	nvmeprint.cpp: Fix self-test for single namespace devices.
	Use broadcast NSID if only one namespace is supported
	(#1741, GH issues/217).
	smartctl.8.in: Document new behavior.

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

	drivedb.h:
	- USB: Kingston DataTraveller (0x0951:0x177f) (#1756).
	- USB: Asus (0x0b05:0x17f8) (#1810).
	- USB: TerraMaster (0x1000:0x1352) (#1818).
	- USB: Kingston (0x11b0:0x6388).
	- USB: JMicron (0x152d:0x0580) (#1766, #1788).
	- USB: JMicron (0x152d:0xb567) (#1797).
	- USB: Pinas (0x174e:0x1155, 0x1741:0x1156) (#1772, GH pull/253).
	- USB: Verbatim (0x18a5:0x0446) (#1812).
	- USB: Actions AM8180 (0x1de1:0xe101) (#1681).
	- USB: Transcend ESD310 (0x2174:0x2100) (#1767).
	- USB: KIOXIA (0x30de:0x1000).

2024-03-25  Christian Franke  <franke@computer.org>

	drivedb.h:
	- SSSTC ERX GD/CD Series SSDs: update attributes, add 3.8TB, (#1799).
	- SK hynix SATA SSDs: update attributes, add SE5110 (#1776, #1811),
	  HFS*FEH-B* variants (#1739, #1758, #1805, #1809),
	  HFS*H2X069N variants (#1686).

2024-01-24  Christian Franke  <franke@computer.org>

	Fix or disable all warnings from shellcheck.

2024-01-23  Christian Franke  <franke@computer.org>

	Makefile.am: Add target 'shellcheck'.

2024-01-19  Christian Franke  <franke@computer.org>

	os_win32/installer.nsi: Avoid that code signing invalidates the
	uninstaller.

2024-01-17  Christian Franke  <franke@computer.org>

	utility.cpp: Add git commit hash to '-V' output if available.

	Set version information also for builds from GH R/O mirror.

	Makefile.am: Move creation of svnversion.sh to ...
	getversion.sh: ... this new script.  Add git support.
	configure.ac: Remove IS_SVN_BUILD check.

2024-01-12  Christian Franke  <franke@computer.org>

	Fix start of smartd on systems with large fd limits (GH issues/235).

	smartd.cpp, popen_as_ugid.cpp: Use 'close_range()' if available.
	Otherwise limit the number of unneeded 'close()' calls.
	configure.ac: Check for 'close_range()'.

	drivedb.h:
	- Toshiba MD04ACA... Enterprise HDD: re-add, regression from r5211.
	- Toshiba MG04ACA... Enterprise HDD: 1TB (#1794).
	- Toshiba MG08ADA... Enterprise Capacity HDD (#1550, #1794).
	- Toshiba X300: HDWR480 (#1537), HDWR31E, HDWR51J.

2024-01-10 Oleksii Samorukov <samm@os2.kiev.ua>

	drivedb.h: extend JMS583 USB id (#1795)

2024-01-03 Gabriele Pohl  <contact@dipohl.de>

	drivedb.h:
	- Marvell based SanDisk SSDs: SanDisk SSD6SP1M128G110 (#1021)
	- SandForce Driven SSDs: SanDisk SD8SBAT128G1002 (#1232)
	- Samsung based SSDs: MK000480GZXRA (#1600)

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

	CI: drop EoL FreeBSD 12, add FreeBSD 14.0, upgrade cppcheck

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

	Happy New Year!  Update copyright year in version info.

2023-12-31  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Toshiba MG10AFA... Enterprise Capacity HDD.
	- USB: Seagate FireCuda Gaming SSD (0x0bc2:0xaa1a, #1783).

2023-12-30 Gabriele Pohl  <contact@dipohl.de>

	drivedb.h:
	- Marvell based SanDisk SSDs: SanDisk SD8TB8U-*-1016 variant (#984)
	- Silicon Motion based OEM SSDs: INTENSO/V0718B0 (#1761)
	- Silicon Motion based OEM SSDs: Intenso SSD SATAIII/W0825A0(#1762)

2023-12-23 Gabriele Pohl  <contact@dipohl.de>

	drivedb.h:
	- Toshiba S300 (SMR): TOSHIBA HDWT8*, HDWT7* (based on patch from #1605)
	- Silicon Motion based OEM SSDs: INTENSO/V0609A0
	  Fix wrong digit in firmware regex (earlier added in #1706)
	- Silicon Motion based OEM SSDs: firmware regex for INTENSO SSD/V1027A0
	  reported by Jules Kerssemakers via Smartmontools-database 2023-08-21
	- Western Digital Red: WDC WD120EFBX-68B0EN0 and rest from product sheet (GH issues/210).

2023-12-22  cyrozap  <cyrozap@gmail.com>

	scsinvme.cpp: Fix sntasmedia "Get Log Page" passthrough

2023-12-19  Christian Franke  <franke@computer.org>

	os_win32/update-smart-drivedb.ps1.in: Fix call of external commands.
	This fixes the call of gpg if gpg.exe appears more than once in the
	PATH (#1782).  Print gpg[conf].exe location if -Verbose is used.

	smartctl.8.in, smartd.conf.5.in: Fix max number of 'cciss' drives
	(see GH issues/228 and ticket #49).

2023-12-18  Christian Franke  <franke@computer.org>

	drivedb.h:
	- Intel S4510/S4610/S4500/S4600 Series SSDs: 7.68TB (GH pull/103).
	- Marvell based SanDisk SSDs: SD7SB7S960G (GH issues/211).
	- SanDisk based SSDs: SDSA6D* variant (#1721).
	- HGST Ultrastar HC310/320: *A6L1 variant (GH pull/77).

2023-12-18  Werner Fischer  <tk-wfischer@users.noreply.github.com>

	drivedb.h: Add ATP SATA III SSDs (GH pull/191)

	- Add ATP Electronics Value Line and Superior Line SATA SSDs
	- Distinguish between them based on firmware versions
	- SSDs:
	  - Value LIne (Phison based)
	  - Superior Line (Silicon Motion based)

2023-12-13  Gabriele Pohl  <contact@dipohl.de>

	drivedb.h:
	- SandForce Driven SSDs: SanDisk SD8SNAT128G1002 (#799)
	- WD Blue / Red / Green SSDs: WD Blue SA510 2.5 1000GB (#1659)
	- Marvell based SanDisk SSDs: SanDisk SD9SN8W128G1020 (#1569)

2023-12-12  Gabriele Pohl  <contact@dipohl.de>

	drivedb.h:
	- Vendor attribute names for SandForce Driven SSDs: SanDisk SDSSDA240G
	  (#1317) Patch by Artem S. Tashkinov
	- SandForce Driven SSDs: SanDisk SD8SFAT128G1122 (#712)

2023-12-11  Gabriele Pohl  <contact@dipohl.de>

	drivedb.h:
	- Phison Driven SSDs: SEDC600M(480|960|1920|3840|7680)G (#1726)
	- Western Digital Red: WDC WD[2-8]0EFPX (2TB, 3TB, 4TB, 6TB, 8TB) (#1723, #1736)

2023-12-10  Gabriele Pohl  <contact@dipohl.de>

	drivedb.h:
	- Toshiba N300/MN NAS HDD: TOSHIBA HDWG440 (#1749)
	- Marvell based SanDisk SSDs: SanDisk SDSSDH3 512G (#1768)

2023-10-17  Douglas Gilbert  <dgilbert@interlog.com>

	scsiprint.cpp : missed a "not" in the following description

2023-10-16  Douglas Gilbert  <dgilbert@interlog.com>

	scsiprint.cpp : most SCSI disks do not get formatted in their
	lifetime. The Format status lpage is present on most recent disks
	and is checked when the --xall option is given. In the common case
	where a format has not been performed (since manufacture) this
	leads to 5 lines of <not available> output starting with:
		Grown defects during certification <not available>
	Detect this situation before printing any of those 5 lines
	and replace those 5 lines with 1 line:
		Format status indicates no format since manufacture

2023-10-12  Douglas Gilbert  <dgilbert@interlog.com>

	scsiprint.cpp : misplaced else corrupted the output of the Format
	Status log page.

2023-09-16  Oleksii Samorukov  <samm@os2.kiev.ua>

	CI: export SOURCE_DATE_EPOCH on macOS as tools are expecting it as an
	environment variable
	macOS: set files timestamps in the ISO to SOURCE_DATE_EPOCH value

2023-09-15  Oleksii Samorukov  <samm@os2.kiev.ua>

	Makefile.am: set env ZERO_AR_DATE=1 if for reproducible builds on macOS.
	macOS: use xorriso instead of mkisofs for reproducible builds
	macOS: remove timestamps from cpio and gzip
	macOS: reset timestamps before calling cpio

2023-09-11  Christian Franke  <franke@computer.org>

	Makefile.am: Add 'dist-xz' and 'dist-zstd' rules for reproducible
	builds.  Silence 'dist-win32' rule and add warning.

	ataprint.cpp: Don't print error log entries if error count is
	zero (#1745).

2023-09-07  Christian Franke  <franke@computer.org>

	Makefile.am: Use same timestamp for all EXE files.
	Minor update of clean targets.  Simplify gzip command.

	Makefile.am: Prevent that gzip stores the original timestamp.

	Makefile.am: Add custom rule for reproducible builds of source
	tarball.

	Makefile.am: Silence custom rules if 'make V=0' is used.
	autogen.sh, configure.ac: Require automake >= 1.13.

	Makefile.am: Silence automake warning about duplicate '.PHONY'.
	Remove no longer needed SET_MAKE.

2023-08-22  Christian Franke  <franke@computer.org>

	Makefile.am: Replace remaining elements which require GNU make.
	Expand remaining '%'-pattern rules.
	Use actual file instead of '$<' and '$^' in non-implicit rules.
	Remove the no longer used target 'txtman'.

2023-08-21  Christian Franke  <franke@computer.org>

	Allow reproducible builds of the Windows installer.

	configure.ac: Propagate SOURCE_DATE_EPOCH to Makefile.
	Makefile.am: Add SOURCE_DATE_EPOCH to CPPFLAGS.
	Set SOURCE_DATE_EPOCH if PDF man page is generated.
	Remove "Time: ..." from HTML man page.
	Use 'pe32edit.sh' to modify 'smartctl-nc.exe'.
	Rework target 'distdir-win32':  Set file header timestamps
	of all EXE files to SOURCE_DATE_EPOCH.  Set last modification
	time of all generated files to SOURCE_DATE_EPOCH.
	os_win32/pe32edit.sh: New bash script to set timestamp and
	subsystem in the PE32 file header.

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

	drivedb.h:
	- Apacer SSDs: AP1TPPSS25-R (#1640).
	- Crucial/Micron RealSSD C300/P300: C300-MTFDBAK* (#1421),
	  MTFDBAK* (#1728).
	- Micron 5100 / 52x0 / 5300 / 5400 SSDs: 5200 240GB.
	- Intel 53x and Pro 1500/2500 Series SSDs: *A5L variant (#1435).
	- Intel 730 and DC S35x0/3610/3700 Series SSDs: S3500 HPE (#1651).
	- Samsung based SSDs: PM897 HPE (#1650), Attribute 252 (#1734).

2023-08-18  Alex Samorukov <samm@os2.kiev.ua>

	drivedb.h:
	- Other World Computing USB3 to SATA (GH: #206)

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

	smartmontools 7.4

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

	drivedb.h:
	- Apacer AS340/350 SSDs: Rename, add AS350 (#1444).
	- Phison Driven SSDs: Corsair Force LE (#1348), Patriot Ignite,
	  PNY CS* 500GB.
	- Phison Driven OEM SSDs: Hoodisk (GH issues/195), Kingmax (#1699).
	- Silicon Motion based SSDs: Mushkin *-LT variant.
	- SK hynix SATA SSDs: Add attribute 249 (GH pull/107), remove
	  duplicate regex.

2023-07-30  Christian Franke  <franke@computer.org>

	drivedb.h:
	- ATP SATA III aMLC M.2 2242/80 SSDs: Rename, add 2280 (#1717).
	- Silicon Motion based SSDs: ADATA SU630 (#1713), LITEON LCH (#1727),
	  NFORCE SSZS13 (#1707), ONDA S-12 (#1698), Patriot P210.
	- Silicon Motion based OEM SSDs: Intenso (#1700, #1706, #1732),
	  Netac Z Slim (#1656), SPCC M.2 SSD (#1662).
	- USB: Netac Z Slim (0x0dd8:0x0562) (#1656).
	- USB: ASMedia ASM2364 (0x174c:0x2364).

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

	drivedb.h:
	- USB: Samsung Portable SSD T7 Shield (0x04e8:0x61fb) (#1730, #1733)
	- USB: ASMedia ASM1352-PM (0x174d:0x1352) (GH/pull 181)
	- USB: JMicron JMS578 (0xab12:0x34cd) (#1737)

2023-07-25  Christian Franke  <franke@computer.org>

	nvmeprint.cpp: Add JSON support for '-l error' and '-l selftest'.

2023-07-24  Christian Franke  <franke@computer.org>

	man pages: Set svn:eol-style=LF to be compatible with Cygwin sed.

	man pages: Use CW font only if troff is used.
	This silences a related warning from groff.

	smartd.cpp: Don't write Copyright line to syslog.
	This prevents that logfile analyzers need an extra suppression rule
	(Red Hat Bugzilla 673758 and 1162741).
	utility.cpp, utility.h: Enhance 'format_version_info()' accordingly.
	smartctl.cpp: Adjust function call.

	nvmeprint.cpp: Add NVMe 2.0 capability flags.

	ataidentify.cpp, ataprint.cpp: ACS-4/5/6 enhancements.

	smartd.cpp: Don't write attrlog if ATA attributes were not read.
	Improvement of original fix r5116.

	os_win32/update-smart-drivedb.ps1.in: Fix typo, update help text.

	smartd.conf: Align help text with 'smartd -D' output.

	smartd.conf, smartd.conf.5.in: Remove outdated examples.

	smartd.conf: Remove SVN Id string
	(Debian 54_remove-Id-from-smartd.conf.diff).

	smartd.conf, smartd.conf.5.in: Add examples for '-d cciss,N' on Linux
	(based on Debian 61_cciss-doc.patch).

	smartctl.8.in: Minor rework of '-a' and '-x' sections.
	Merge duplicate info about TapeAlert.
	Note that admin rights are not needed for Windows NVMe driver.
	Note that the NVMe error log is not persistent.

	smartctl.8.in, smartd.conf.5.in: Update sections '-d usbasm1352r'
	and '-d usbjmicron'.

	smartd.conf.5.in: Remove example for deprecated '-d intelliprop,N'.

	smartctl.8.in, smartd.conf.5.in: Fix typos.

	man pages: Silence harmless warnings from 'mandoc -T lint'.
	Fix bogus bold font setting (Debian Bug 1041295).

	man pages: Add release numbers to EXPERIMENTAL notes.
	Keep notes of previous release 7.3.

2023-07-16  Christian Franke  <franke@computer.org>

	os_win32/installer.nsi: Rework InstType names, default to x86_64.
	64-bit executables are now archived in 'bin' directory, 32-bit
	executables in 'bin32'.  Update links to NSIS examples.

	configure.ac: Don't fail if libcap-ng or libsystemd libs are missing.
	No appropriate library may be provided if 'LDFLAGS=-static' is used.

	Makefile.am: Add *.cmd and *.ps1 to Windows checksum*.txt files.

	configure.ac: Fix 'makensis' search for 64-bit Cygwin and MSYS2.
	Makefile.am: Remove conditional 'OS_WIN32_NSIS'.

2023-07-10  Christian Franke  <franke@computer.org>

	utility.cpp: Add workaround for limited 'TZ' support of MSVCRT
	version of 'tzset()'.

	utility.cpp, os_win32/syslog_win32.cpp: Use '_localtime64_s()' on
	Windows to avoid conflict with C11 variant of 'localtime_s()'
	(cppcheck 2.11: uninitvar false positive).

	os_win32/syslog_win32.cpp: Replace tabs.
	Use declaration statements.  Update comments.

	dev_interface.cpp: Don't pass local buffer address to caller
	(cppcheck 2.11: autoVariables).

	scsiprint.cpp: Remove unused code, remove unused variable
	(cppcheck 2.11: knownConditionTrueFalse, unusedVariable).

	smartd.cpp: Print SCSI Inquiry error code.
	Silences 'Dead nested assignment' report from clang analyzer.

2023-07-08  Christian Franke  <franke@computer.org>

	CI: Move docker base image from ubuntu:18.04 to debian:12.
	Update Dockerfile and .circleci/config.yml accordingly.

2023-07-02  Christian Franke  <franke@computer.org>

	cppcheck.sh: Mark cppcheck 2.11 as tested.
	Adjust suppress options and defines.

2023-06-27  Oleksij Samorukov <samm@os2.kiev.ua>

	CI: build darwin packages for arm64/x86_64, drop i386 support

2023-06-26  Christian Franke  <franke@computer.org>

	ataprint.cpp, farmprint.cpp, scsiprint.cpp: Unify FARM related
	messages.

2023-06-25  Christian Franke  <franke@computer.org>

	smartctl.cpp: Don't include '-l farm' in '-x'.
	Suggest it if supported.

	ataprint.cpp: Suggest '-x' option if only '-a' is used.
	ataprint.h, smartctl.cpp: Add 'ata_print_options.a_option' flag.

	scsiata.cpp: Suppress NO DATA commands for '-d usbasm1352r,N' device
	type.
	Test results from GH issues/167 suggest that these commands are not
	supported or require different parameters.

2023-06-13  Christian Franke  <franke@computer.org>

	utility.h: Fix check for __USE_MINGW_ANSI_STDIO.
	Recent versions of MinGW-w64 define __USE_MINGW_ANSI_STDIO=0 if
	disabled.

	configure.ac: Don't define __USE_MINGW_ANSI_STDIO if UCRT is used.

	configure.ac: Disable ASLR workarounds for newer versions of
	MinGW-w64.

	configure.ac: Skip _FORTIFY_SOURCE support check if 'nm' is missing.

	configure.ac: MinGW: Fail if 'windres' is missing, warn if 'windmc'
	is missing.

	Makefile.am: Allow MinGW builds also if the 'windmc' tool is missing.

	smartd.cpp: Always notify READY=1 to systemd before 'exit(0)'.
	The prevents that systemd reports the service as failed if no device
	is present and '-q *nodev0*' is used (Debian Bug 1029210).
	Log the exit status also if exiting during first pass.

2023-05-30  Christian Franke  <franke@computer.org>

	nvmecmds.cpp, nvmprint.cpp: Also suppress NVMe Namespace IEEE EUI-64
	info if '-q noserial' is specified.
	smartctl.8.in: Update '-q noserial' documentation.

	smartd.cpp: Don't report new non-device related errors as critical
	(#1222).
	smartd.conf.5.in: Document new functionality.

2023-05-29  Christian Franke  <franke@computer.org>

	Add error messages for NVMe status values.
	dev_interface.cpp: Add message to 'set_nvme_err()'.
	nvmecmds.cpp, nvmecmds.h: Add functions 'nvme_status_*()'.
	nvmeprint.cpp: Add message to '-l error' output (related: #1300).

2023-03-21  Douglas Gilbert  <dgilbert@interlog.com>

	tweak to suppress a warning from gcc/g++ 9.3

2023-03-15  Douglas Gilbert  <dgilbert@interlog.com>

	expand functionality of json::str2key() . It's job is to convert
	a C string to a JSON name in "snake" format. That format is lower
	case alphanumeric with all other characters replaced by
	an '_' (underscore). This change further removes all leading and
	trailing underscores plus repeated underscores within the name are
	compressed to a single underscore. In the degenerate case, for
	example a string like "!@#$" (i.e. no alphanumeric characters), a
	single underscore is output (but is most likely an error). Typical
	example: "$Output power  (mW)" is converted to "output_power_mw".

2023-03-14  Christian Franke  <franke@computer.org>

	farmprint.cpp, os_freebsd.cpp: Use 'snprintf()' instead of
	'sprintf()'.

	farmprint.cpp: Avoid unneeded copy of json::ref.

2023-03-13  Christian Franke  <franke@computer.org>

	cppcheck.sh: Mark cppcheck 2.10 as tested.

	farmprint.cpp: Fix loop conditions which may result in infinite
	loops (GH code-scanning/312 - 315: Comparison of narrow type with
	wide type in loop condition).

	Fix MSVC builds.
	os_win32/vc*/smartctl.vcxproj*: Add new FARM files.
	scsicmds.cpp: Remove unneeded <unistd.h>.

	farmprint.cpp: Increase buffer size of 'worldWideName'
	(GH code-scanning/316 and 317: Potentially overrunning write).
	Use 'snprintf()' instead of 'sprintf()'.

2023-03-13  Michael Cordle  <michael.a.cordle@seagate.com>

	Large update adding pulling and parsing of Seagate's vendor-specific
	Field Access Reliability Metrics (FARM) log to supported ATA and SCSI
	drives (GH pull/180).
	Running smartctl with '-l farm' will print the top predictive metrics
	from FARM for drive health monitoring. Can be printed with plain-text
	or JSON ('-j'). FARM can also be printed with '-a' and '-x', but no
	error messages will be printed, unlike '-l farm'.

	farmcmds.h: Add structures to store FARM data.
	farmcmds.cpp: Add functions to pull FARM data from drive.
	farmprint.h: Add function declarations for printing FARM data.
	farmprint.cpp: Add function definitions for printing FARM data.
	ataprint.h: Add checking FARM command-line option.
	ataprint.cpp: Add checking if drive is Seagate and supports FARM.
	scsiprint.h: Add checking FARM command-line option.
	scsiprint.cpp: Add checking if drive is Seagate and supports FARM.
	smartctl.cpp: Add command-line option parsing for FARM.
	smartctl.8.in: Add '-l farm' description to manual.
	Makefile.am: Add new FARM files.
	AUTHORS: Add myself and Natan Lidukhover to list of contributors.

2023-02-17  Steven Song  <steven.song@3snic.com>

	os_linux.cpp: Fix CK_COND issue for SATA disk and use C++11 or
	later structure initialization (#1694).

2023-02-14  WHR  <whr@rivoreo.one>

	atacmds.cpp: fix a logical error in function ataReadExtSelfTestLog
	where it failed to byte-swap timestamp values on big-endian
	platforms except in the first log entry (#1696).

2023-02-11  Douglas Gilbert  <dgilbert@interlog.com>

	more RSOC work (see 2023-01-11 patch). Simplify
	scsiPrintMain(). Use Read capacity (16) if RSOC
	says it is supported; previously often tried
	Read capacity (10) first. A small cleanup after
	report from clang++ --analyze

2023-02-10  Douglas Gilbert  <dgilbert@interlog.com>

	correct SPC-6 proposed version number [-->0xd]

2023-02-10  Douglas Gilbert  <dgilbert@interlog.com>

	cleanup for previous commit [add smartctl support
[--snip--]
