Package: smartmontools Version: 7.4-2 Severity: minor Tags: patch * What led up to the situation?
Checking for defects with a new version test-[g|n]roff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z < "man page" [Use "groff -e ' $' -e '\\~$' <file>" to find obvious trailing spaces.] ["test-groff" is a script in the repository for "groff"; is not shipped] (local copy and "troff" slightly changed by me). [The fate of "test-nroff" was decided in groff bug #55941.] * What was the outcome of this action? troff:<stdin>:34: warning: trailing space in the line troff:<stdin>:35: warning: trailing space in the line troff:<stdin>:92: warning: font name 'CW' is deprecated troff:<stdin>:806: warning: trailing space in the line troff:<stdin>:807: warning: trailing space in the line troff:<stdin>:821: warning: trailing space in the line troff:<stdin>:822: warning: trailing space in the line an.tmac:<stdin>:942: style: 1 leading space(s) on input line an.tmac:<stdin>:946: style: 1 leading space(s) on input line an.tmac:<stdin>:950: style: 1 leading space(s) on input line an.tmac:<stdin>:955: style: 1 leading space(s) on input line an.tmac:<stdin>:960: style: 1 leading space(s) on input line an.tmac:<stdin>:965: style: 1 leading space(s) on input line an.tmac:<stdin>:971: style: 1 leading space(s) on input line an.tmac:<stdin>:976: style: 1 leading space(s) on input line an.tmac:<stdin>:988: style: 1 leading space(s) on input line * What outcome did you expect instead? No output (no warnings). -.- General remarks and further material, if a diff-file exist, are in the attachments. -- System Information: Debian Release: trixie/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 6.12.12-amd64 (SMP w/2 CPU threads; PREEMPT) Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: sysvinit (via /sbin/init) Versions of packages smartmontools depends on: ii debianutils 5.21 ii libc6 2.40-6 ii libcap-ng0 0.8.5-4 ii libgcc-s1 14.2.0-16 ii libselinux1 3.7-3.1 ii libstdc++6 14.2.0-16 ii libsystemd0 257.2-3 ii sysvinit-utils 3.14-1 smartmontools recommends no packages. Versions of packages smartmontools suggests: ii curl 8.12.0+git20250209.89ed161+ds-1 ii gpg 2.2.46-1+b1 pn gsmartcontrol <none> ii lynx 2.9.2-1 pn mailx | mailutils <none> pn smart-notifier <none> ii wget 1.24.5-2+b1 -- no debconf information
Input file is smartd.conf.5 Output from "mandoc -T lint smartd.conf.5": (shortened list) Remove trailing space with: sed -e 's/ *$//' 1 input text line longer than 80 bytes: If \*(Aq@ALL\*(Aq is... 1 line scope broken: SH breaks TP -.-. Output from "test-groff -mandoc -t -ww -z smartd.conf.5": (shortened list) Remove trailing space with: sed -e 's/ *$//' 1 font name 'CW' is deprecated 6 trailing space in the line -.-. Change '-' (\-) to '\(en' (en-dash) for a (numeric) range. GNU gnulib has recently (2023-06-18) updated its "build_aux/update-copyright" to recognize "\(en" in man pages. smartd.conf.5:2:Copyright (C) 2002-10 Bruce Allen smartd.conf.5:3:Copyright (C) 2004-23 Christian Franke smartd.conf.5:115:# Start short self\-tests daily between 1\-2, 2\-3, and smartd.conf.5:116:# 3\-4 am. smartd.conf.5:135:# Start short self\-tests daily between 1\-2, 2\-3, and smartd.conf.5:136:# 3\-4 am. smartd.conf.5:145:# 1 am and 2\-3 am smartd.conf.5:175:# Start short self\-tests daily between 1\-2, 2\-3, and smartd.conf.5:176:# 3\-4 am. smartd.conf.5:194:# between midnight and 1 am and 2\-3 am. smartd.conf.5:955:\fB \-s L/../../7/04:003-010\fP smartd.conf.5:960:\fB \-s L/../../7/04:001-010\fP smartd.conf.5:983: smartctl \-t select,0\-99999999 /dev/sda smartd.conf.5:988:\fB \-s n/../../[1\-5]/12\fP smartd.conf.5:1614:RM100-08) some of the two- and four-byte quantities in the SMART data smartd.conf.5:1628:\- Some Samsung disks (at least SP2514N with Firmware VF100-37) report -.-. Change a HYPHEN-MINUS (code 0x2D) to a minus(-dash) (\-), if it is in front of a name for an option, is a symbol for standard input, is a single character used to indicate an option, or is in the NAME section (man-pages(7)). N.B. - (0x2D), processed as a UTF-8 file, is changed to a hyphen (0x2010, groff \[u2010] or \[hy]) in the output. 171:# \ /dev/sda -d cciss,0 -a -s (L/../../7/02|S/../.././02) -m root 172:# \ /dev/sda -d cciss,1 -a -s (L/../../7/03|S/../.././03) -m root 1364:.\"# \ \ PowerShell -NoProfile -ExecutionPolicy Bypass ^ 1365:.\"# \ \ \ \ \ \ \ \ \ \ \ \ \ -Command ^& \*(Aq%SMARTD_MAILER%\*(Aq -.-. Add a "\&" after "e.g." and "i.e.", or use English words (man-pages(7)). Abbreviation points should be protected against being interpreted as an end of sentence, if they are not, and that independent of the current place on the line. 761:related (e.g. invalid command, invalid field in command, ...), a LOG_INFO -.-. Wrong distance between sentences in the input file. Separate the sentences and subordinate clauses; each begins on a new line. See man-pages(7) ("Conventions for source file layout") and "info groff" ("Input Conventions"). The best procedure is to always start a new sentence on a new line, at least, if you are typing on a computer. Remember coding: Only one command ("sentence") on each (logical) line. E-mail: Easier to quote exactly the relevant lines. Generally: Easier to edit the sentence. Patches: Less unaffected text. Search for two adjacent words is easier, when they belong to the same line, and the same phrase. The amount of space between sentences in the output can then be controlled with the ".ss" request. Mark a final abbreviation point as such by suffixing it with "\&". Some sentences (etc.) do not begin on a new line. 34:[This man page is generated for the Linux version of smartmontools. \"# 169:# uses the cciss driver. Start long tests on Sunday nights and short -.-. Split lines longer than 80 characters into two or more lines. Appropriate break points are the end of a sentence and a subordinate clause; after punctuation marks. Line 355, length 82 \*(Aq\-s\*(Aq, and \*(Aq\-M\*(Aq, the Directives below are ignored for SCSI disks. Line 1099, length 84 If \*(Aq@ALL\*(Aq is specified, all scripts in /etc/smartmontools/smartd_warning.d/* -.-. Use \(en (en-dash) for a dash at the beginning (en) of a line, or between space characters, not a minus (\-) or a hyphen (-), except in the NAME section. smartd.conf.5:385:\- attempt to guess the device type from the device name or from smartd.conf.5:391:\- the device type is ATA. This prevents smartd.conf.5:397:\- the device type is SCSI. This prevents smartd.conf.5:404:\- the device type is NVM Express (NVMe). smartd.conf.5:413:\- the device type is SCSI to ATA Translation (SAT). smartd.conf.5:425:\- [NEW EXPERIMENTAL SMARTD 7.4 FEATURE] smartd.conf.5:435:\- this device type is for ATA disks that are behind a Cypress USB to PATA smartd.conf.5:442:\- this device type is for SATA disks that are behind a JMicron USB to smartd.conf.5:465:\- this device type is for SATA disks that are behind a Prolific smartd.conf.5:469:\- this device type is for SATA disks that are behind a SunplusIT USB to SATA smartd.conf.5:473:\- [NEW EXPERIMENTAL SMARTD 7.3 FEATURE] smartd.conf.5:478:\- this device type is for NVMe disks that are behind a JMicron USB to NVMe smartd.conf.5:485:\- this device type is for NVMe disks that are behind a Realtek USB to NVMe smartd.conf.5:491:\- [Linux only] (deprecated and subject to remove). smartd.conf.5:496:\- [FreeBSD and Linux only] the device consists of one or more SCSI/SAS disks smartd.conf.5:508:\- [Linux, Windows and Cygwin only] the device consists of one or more smartd.conf.5:519:\- [FreeBSD and Linux only] the device consists of one or more ATA disks smartd.conf.5:535:\- [FreeBSD, Linux, Windows and Cygwin only] the device consists of one or smartd.conf.5:544:\- [FreeBSD, Linux, Windows and Cygwin only] the device consists of one smartd.conf.5:553:\- [FreeBSD and Linux only] the device consists of one or more SCSI/SAS or smartd.conf.5:562:\- [FreeBSD and Linux only] the device consists of one or more ATA disks smartd.conf.5:577:\- [Linux only: NEW EXPERIMENTAL SMARTD 7.4 FEATURE] smartd.conf.5:586:\- (deprecated and subject to remove). smartd.conf.5:589:\- the device consists of multiple SATA disks connected to a JMicron JMB39x smartd.conf.5:597:\- the device consists of multiple SATA disks connected to a JMicron JMS56x smartd.conf.5:602:\- the device specified by this configuration entry should be ignored. smartd.conf.5:611:\- the device or its media is removable. This indicates to smartd.conf.5:652:\- \fBsmartd\fP will poll (check) the device regardless of its power smartd.conf.5:658:\- check the device unless it is in SLEEP mode. smartd.conf.5:661:\- check the device unless it is in SLEEP or STANDBY mode. In smartd.conf.5:667:\- check the device unless it is in SLEEP, STANDBY or IDLE mode. smartd.conf.5:691:\- do not try to monitor the disk if a mandatory SMART command fails, but smartd.conf.5:695:\- try to monitor the disk even if it appears to lack SMART smartd.conf.5:744:\- [ATA] report if the number of ATA errors reported in the Summary SMART smartd.conf.5:749:\- [NVMe] report if the "Number of Error Information Log Entries" from the smartd.conf.5:768:\- [ATA] report if the number of ATA errors reported in the Extended smartd.conf.5:778:\- [NVMe] same as \*(Aq\-l error\*(Aq. smartd.conf.5:782:\- report if the number of failed tests reported in the SMART smartd.conf.5:801:\- [ATA only] report if the Offline Data Collection status has changed smartd.conf.5:817:\- [ATA only] report if the Self-Test execution status has changed smartd.conf.5:836:\- [ATA only] sets the SCT Error Recovery Control settings to the specified smartd.conf.5:850:\- [ATA only] Sets the Automatic Acoustic Management (AAM) feature. smartd.conf.5:853:\- [ATA only] Sets the Advanced Power Management (APM) feature. smartd.conf.5:856:\- [ATA only] Sets the read look-ahead feature. smartd.conf.5:859:\- [ATA only] Sets ATA Security feature to frozen mode. smartd.conf.5:862:\- [ATA only] Sets the standby (spindown) timer and places the drive in the smartd.conf.5:866:\- [ATA only] Sets the volatile write cache feature. smartd.conf.5:869:\- [ATA only] Sets the DSN feature. smartd.conf.5:1136:\- send only one warning email for each type of disk problem detected. This smartd.conf.5:1140:\- [NEW EXPERIMENTAL SMARTD 7.4 FEATURE] smartd.conf.5:1145:\- send additional warning reminder emails, once per day, for each type smartd.conf.5:1150:\- send additional warning reminder emails, after a one-day interval, smartd.conf.5:1164:\- send a single test email smartd.conf.5:1174:\- run the executable PATH instead of the default mail command, when smartd.conf.5:1603:\- Assume that the device firmware obeys the ATA specifications. This smartd.conf.5:1608:\- Suppresses read attempts of SMART or GP Log Directory. smartd.conf.5:1613:\- In some Samsung disks (example: model SV4012H Firmware Version: smartd.conf.5:1623:\- In some Samsung disks the number of ATA errors reported is byte swapped. smartd.conf.5:1628:\- Some Samsung disks (at least SP2514N with Firmware VF100-37) report smartd.conf.5:1634:\- This only affects \fBsmartctl\fP. smartd.conf.5:1647:\- Raw Attribute number 197 (Current Pending Sector Count) is not smartd.conf.5:1652:\- Raw Attribute number 198 (Offline Uncorrectable Sector Count) is not smartd.conf.5:1662:\- use any presets that are available for this drive. This is the default. smartd.conf.5:1665:\- do not use any presets for this drive. smartd.conf.5:1668:\- show the presets listed for this drive in the database. smartd.conf.5:1671:\- show the presets that are available for all drives and then exit. -.-. Split a punctuation from a single argument, if a two-font macro is meant. 347:.B For an ATA device, 351:.B If a SCSI disk is listed, -.-. Put a parenthetical sentence, phrase on a separate line, if not part of a code. See man-pages(7), item "semantic newline". Not considered in a patch, too many lines. [List of affected lines removed] -.-. Remove quotes when there is a printable but no space character between them and the quotes are not for emphasis (markup), for example as an argument to a macro. 28:.TH SMARTD.CONF 5 "2023-08-01" "smartmontools-7.4" "SMART Monitoring Tools" -.-. Add lines to use the CR font for groff instead of CW. .ie \n(.g .ft CR .el .ft CW 16:.if t .ft CW -.-. Output from "test-groff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z ": troff:<stdin>:34: warning: trailing space in the line troff:<stdin>:35: warning: trailing space in the line troff:<stdin>:92: warning: font name 'CW' is deprecated troff:<stdin>:806: warning: trailing space in the line troff:<stdin>:807: warning: trailing space in the line troff:<stdin>:821: warning: trailing space in the line troff:<stdin>:822: warning: trailing space in the line an.tmac:<stdin>:942: style: 1 leading space(s) on input line an.tmac:<stdin>:946: style: 1 leading space(s) on input line an.tmac:<stdin>:950: style: 1 leading space(s) on input line an.tmac:<stdin>:955: style: 1 leading space(s) on input line an.tmac:<stdin>:960: style: 1 leading space(s) on input line an.tmac:<stdin>:965: style: 1 leading space(s) on input line an.tmac:<stdin>:971: style: 1 leading space(s) on input line an.tmac:<stdin>:976: style: 1 leading space(s) on input line an.tmac:<stdin>:988: style: 1 leading space(s) on input line
--- smartd.conf.5 2025-02-15 17:00:13.237532224 +0000 +++ smartd.conf.5.new 2025-02-15 18:29:30.100905252 +0000 @@ -1,6 +1,6 @@ .ig -Copyright (C) 2002-10 Bruce Allen -Copyright (C) 2004-23 Christian Franke +Copyright (C) 2002\(en10 Bruce Allen +Copyright (C) 2004\(en23 Christian Franke SPDX-License-Identifier: GPL-2.0-or-later @@ -13,7 +13,10 @@ $Id: smartd.conf.5.in 5521 2023-07-24 16 .if n .sp .. .de Vb \" Begin verbatim text -.if t .ft CW +.if t \{\ +. ie \\n(.g .ft CR +. el .ft CW +.\} .if n .ft R .nf .ne \\$1 @@ -25,14 +28,14 @@ $Id: smartd.conf.5.in 5521 2023-07-24 16 .\" Use groff extension \(aq (apostrophe quote, ASCII 0x27) if possible .ie \n(.g .ds Aq \(aq .el .ds Aq ' -.TH SMARTD.CONF 5 "2023-08-01" "smartmontools-7.4" "SMART Monitoring Tools" +.TH SMARTD.CONF 5 2023-08-01 smartmontools-7.4 "SMART Monitoring Tools" .SH NAME \fBsmartd.conf\fP \- SMART Disk Monitoring Daemon Configuration File\fP .Sp .SH DESCRIPTION .\" %IF NOT OS ALL -[This man page is generated for the Linux version of smartmontools. \"# -It does not contain info specific to other platforms.] \"# +[This man page is generated for the Linux version of smartmontools.\"# +It does not contain info specific to other platforms.]\"# .PP \"# .\" %ENDIF NOT OS ALL \fB/etc/smartd.conf\fP is the configuration file for the \fBsmartd\fP @@ -112,8 +115,8 @@ Section below! .\" %IF OS FreeBSD Linux # # Disks connected to a MegaRAID controller -# Start short self\-tests daily between 1\-2, 2\-3, and -# 3\-4 am. +# Start short self\-tests daily between 1\(en2, 2\(en3, and +# 3\(en4 am. .\" %ENDIF OS FreeBSD Linux .\" %IF OS Linux # Linux: @@ -132,8 +135,8 @@ Section below! .\" %IF OS Linux # # Three disks connected to an AacRaid controller -# Start short self\-tests daily between 1\-2, 2\-3, and -# 3\-4 am. +# Start short self\-tests daily between 1\(en2, 2\(en3, and +# 3\(en4 am. /dev/sda \-d aacraid,0,0,66 \-a \-s S/../.././01 /dev/sda \-d aacraid,0,0,67 \-a \-s S/../.././02 /dev/sda \-d aacraid,0,0,68 \-a \-s S/../.././03 @@ -142,7 +145,7 @@ Section below! # # Two SATA (not SAS) disks on a 3ware 9750 controller. # Start long self\-tests Sundays between midnight and -# 1 am and 2\-3 am +# 1 am and 2\(en3 am .\" %ENDIF OS FreeBSD Linux .\" %IF OS Linux # under Linux @@ -166,14 +169,14 @@ Section below! .\" %IF OS FreeBSD Linux # # Monitor 2 disks connected to the first HP SmartArray controller which -# uses the cciss driver. Start long tests on Sunday nights and short +# uses the cciss driver. Start long tests on Sunday nights and short # self-tests every night and send errors to root -# \ /dev/sda -d cciss,0 -a -s (L/../../7/02|S/../.././02) -m root -# \ /dev/sda -d cciss,1 -a -s (L/../../7/03|S/../.././03) -m root +# \ /dev/sda \-d cciss,0 \-a \-s (L/../../7/02|S/../.././02) \-m root +# \ /dev/sda \-d cciss,1 \-a \-s (L/../../7/03|S/../.././03) \-m root # # Three SATA disks on a HighPoint RocketRAID controller. -# Start short self\-tests daily between 1\-2, 2\-3, and -# 3\-4 am. +# Start short self\-tests daily between 1\(en2, 2\(en3, and +# 3\(en4 am. .\" %ENDIF OS FreeBSD Linux .\" %IF OS Linux # under Linux @@ -191,7 +194,7 @@ Section below! # # Two SATA disks connected to a HighPoint RocketRAID # via a pmport device. Start long self\-tests Sundays -# between midnight and 1 am and 2\-3 am. +# between midnight and 1 am and 2\(en3 am. .\" %ENDIF OS FreeBSD Linux .\" %IF OS Linux # under Linux @@ -239,9 +242,8 @@ Section below! .Ve .Sp .B If a cciss controller is used -then the corresponding block device (/dev/sd?) must be listed, +then the corresponding block device (/dev/sd?\&) must be listed, along with the \'\-d cciss,N\' Directive (see below). -.TP .SH DEVICESCAN If a non-comment entry in the configuration file is the text string .B DEVICESCAN @@ -311,7 +313,7 @@ as defaults for the next device entries. This configuration: .PP .Vb 7 -\ \ DEFAULT \-a \-R5! \-W 2,40,45 \-I 194 \-s L/../../7/00 \-m ad...@example.com +\ \ DEFAULT \-a \-R5!\& \-W 2,40,45 \-I 194 \-s L/../../7/00 \-m ad...@example.com \ \ /dev/sda \ \ /dev/sdb \ \ /dev/sdc @@ -323,9 +325,9 @@ This configuration: has the same effect as: .PP .Vb 5 -\ \ /dev/sda \-a \-R5! \-W 2,40,45 \-I 194 \-s L/../../7/00 \-m ad...@example.com -\ \ /dev/sdb \-a \-R5! \-W 2,40,45 \-I 194 \-s L/../../7/00 \-m ad...@example.com -\ \ /dev/sdc \-a \-R5! \-W 2,40,45 \-I 194 \-s L/../../7/00 \-m ad...@example.com +\ \ /dev/sda \-a \-R5!\& \-W 2,40,45 \-I 194 \-s L/../../7/00 \-m ad...@example.com +\ \ /dev/sdb \-a \-R5!\& \-W 2,40,45 \-I 194 \-s L/../../7/00 \-m ad...@example.com +\ \ /dev/sdc \-a \-R5!\& \-W 2,40,45 \-I 194 \-s L/../../7/00 \-m ad...@example.com \ \ /dev/sdd \-H \-m ad...@example.com \ \ /dev/sde \-d removable \-H \-m ad...@example.com .Ve @@ -344,30 +346,31 @@ configuration file. Note that The Directives below may appear in any order, following the device name. .PP -.B For an ATA device, +.BR "For an ATA device" , if no Directives appear, then the device will be monitored as if the \*(Aq\-a\*(Aq Directive (monitor all SMART properties) had been given. .PP -.B If a SCSI disk is listed, +.BR "If a SCSI disk is listed" , it will be monitored at the maximum implemented level: roughly equivalent to using the \*(Aq\-H \-l selftest\*(Aq options for an ATA disk. So with the exception of \*(Aq\-d\*(Aq, \*(Aq\-m\*(Aq, \*(Aq\-l selftest\*(Aq, -\*(Aq\-s\*(Aq, and \*(Aq\-M\*(Aq, the Directives below are ignored for SCSI disks. +\*(Aq\-s\*(Aq, and \*(Aq\-M\*(Aq, +the Directives below are ignored for SCSI disks. For SCSI disks, the \*(Aq\-m\*(Aq Directive sends a warning email if the SMART status indicates a disk failure or problem, if the SCSI inquiry about disk status fails, or if new errors appear in the self-test log. .\" %IF OS FreeBSD Linux .PP .B If a 3ware controller is used -then the corresponding SCSI (/dev/sd?) or character device (/dev/twe?, -/dev/twa?, /dev/twl? or /dev/tws?) must be listed, along with the +then the corresponding SCSI (/dev/sd?\&) or character device (/dev/twe?, +/dev/twa?, /dev/twl?\& or /dev/tws?\&) must be listed, along with the \*(Aq\-d 3ware,N\*(Aq Directive (see below). The individual ATA disks hosted by the 3ware controller appear to \fBsmartd\fP as normal ATA devices. Hence all the ATA directives can be used for these disks (but see note below). .PP .B If an Areca controller is used -then the corresponding device (SCSI /dev/sg? on Linux or /dev/arcmsr0 on +then the corresponding device (SCSI /dev/sg?\& on Linux or /dev/arcmsr0 on FreeBSD) must be listed, along with the \*(Aq\-d areca,N\*(Aq Directive (see below). The individual SATA disks hosted by the Areca controller appear to \fBsmartd\fP @@ -382,26 +385,26 @@ Specifies the type of the device. The valid arguments to this directive are: .Sp .I auto -\- attempt to guess the device type from the device name or from +\(en attempt to guess the device type from the device name or from controller type info provided by the operating system or from a matching USB ID entry in the drive database. This is the default. .Sp .I ata -\- the device type is ATA. This prevents +\(en the device type is ATA. This prevents \fBsmartd\fP from issuing SCSI commands to an ATA device. .Sp .\" %IF NOT OS Darwin .I scsi -\- the device type is SCSI. This prevents +\(en the device type is SCSI. This prevents \fBsmartd\fP from issuing ATA commands to a SCSI device. .Sp .\" %ENDIF NOT OS Darwin .\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin .I nvme[,NSID] -\- the device type is NVM Express (NVMe). +\(en the device type is NVM Express (NVMe). The optional parameter NSID specifies the namespace id (in hex) passed to the driver. Use 0xffffffff for the broadcast namespace id. @@ -410,7 +413,7 @@ The default for NSID is the namespace id .\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin .\" %IF NOT OS Darwin .I sat[,auto][,N] -\- the device type is SCSI to ATA Translation (SAT). +\(en the device type is SCSI to ATA Translation (SAT). This is for ATA disks that have a SCSI to ATA Translation Layer (SATL) between the disk and the operating system. SAT defines two ATA PASS THROUGH SCSI commands, one 12 bytes long and @@ -422,7 +425,7 @@ is only used if the SCSI INQUIRY data re Otherwise device type SCSI (for SCSI/SAS disks) is used. .Sp .I usbasm1352r,PORT -\- [NEW EXPERIMENTAL SMARTD 7.4 FEATURE] +\(en [NEW EXPERIMENTAL SMARTD 7.4 FEATURE] this device type is for one or two SATA disks that are behind an ASMedia ASM1352R USB to SATA (RAID) bridge. The parameter PORT (0 or 1) selects the disk to monitor. @@ -432,14 +435,14 @@ This monitors either the first disk or t connected to the first port. .Sp .I usbcypress -\- this device type is for ATA disks that are behind a Cypress USB to PATA +\(en this device type is for ATA disks that are behind a Cypress USB to PATA bridge. This will use the ATACB proprietary scsi pass through command. The default SCSI operation code is 0x24, but although it can be overridden with \*(Aq\-d usbcypress,0xN\*(Aq, where N is the scsi operation code, you're running the risk of damage to the device or filesystems on it. .Sp .I usbjmicron[,p][,x][,PORT] -\- this device type is for SATA disks that are behind a JMicron USB to +\(en this device type is for SATA disks that are behind a JMicron USB to PATA/SATA bridge. The 48-bit ATA commands (required e.g.\& for \*(Aq\-l xerror\*(Aq, see below) do not work with all of these bridges and are therefore disabled by default. @@ -462,38 +465,38 @@ Newer Prolific firmware requires a modif Note that this does not yet support the SMART status command. .Sp .I usbprolific -\- this device type is for SATA disks that are behind a Prolific +\(en this device type is for SATA disks that are behind a Prolific PL2571/2771/2773/2775 USB to SATA bridge. .Sp .I usbsunplus -\- this device type is for SATA disks that are behind a SunplusIT USB to SATA +\(en this device type is for SATA disks that are behind a SunplusIT USB to SATA bridge. .Sp .I sntasmedia -\- [NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +\(en [NEW EXPERIMENTAL SMARTD 7.3 FEATURE] this device type is for NVMe disks that are behind an ASMedia USB to NVMe bridge. .Sp .I sntjmicron[,NSID] -\- this device type is for NVMe disks that are behind a JMicron USB to NVMe +\(en this device type is for NVMe disks that are behind a JMicron USB to NVMe bridge. The optional parameter NSID specifies the namespace id (in hex) passed to the driver. The default namespace id is the broadcast namespace id (0xffffffff). .Sp .I sntrealtek -\- this device type is for NVMe disks that are behind a Realtek USB to NVMe +\(en this device type is for NVMe disks that are behind a Realtek USB to NVMe bridge. .Sp .\" %ENDIF NOT OS Darwin .\" %IF OS Linux .I marvell -\- [Linux only] (deprecated and subject to remove). +\(en [Linux only] (deprecated and subject to remove). .Sp .\" %ENDIF OS Linux .\" %IF OS FreeBSD Linux .I megaraid,N -\- [FreeBSD and Linux only] the device consists of one or more SCSI/SAS disks +\(en [FreeBSD and Linux only] the device consists of one or more SCSI/SAS disks connected to a MegaRAID controller. The non-negative integer N (in the range of 0 to 127 inclusive) denotes which disk on the controller is monitored. @@ -505,7 +508,7 @@ Please see the \fBsmartctl\fP(8) man pag .\" %ENDIF OS FreeBSD Linux .\" %IF OS Linux Windows Cygwin .I aacraid,H,L,ID -\- [Linux, Windows and Cygwin only] the device consists of one or more +\(en [Linux, Windows and Cygwin only] the device consists of one or more SCSI/SAS or SATA disks connected to an AacRaid controller. The non-negative integers H,L,ID (Host number, Lun, ID) denote which disk on the controller is monitored. @@ -516,7 +519,7 @@ Please see the \fBsmartctl\fP(8) man pag .\" %ENDIF OS Linux Windows Cygwin .\" %IF OS FreeBSD Linux .I 3ware,N -\- [FreeBSD and Linux only] the device consists of one or more ATA disks +\(en [FreeBSD and Linux only] the device consists of one or more ATA disks connected to a 3ware RAID controller. The non-negative integer N (in the range from 0 to 127 inclusive) denotes which disk on the controller is monitored. @@ -532,7 +535,7 @@ Please see the \fBsmartctl\fP(8) man pag .\" %ENDIF OS FreeBSD Linux .\" %IF OS FreeBSD Linux Windows Cygwin .I areca,N -\- [FreeBSD, Linux, Windows and Cygwin only] the device consists of one or +\(en [FreeBSD, Linux, Windows and Cygwin only] the device consists of one or more SATA disks connected to an Areca SATA RAID controller. The positive integer N (in the range from 1 to 24 inclusive) denotes which disk on the controller is monitored. @@ -541,7 +544,7 @@ areca_disk_XX with XX in the range from Please see the \fBsmartctl\fP(8) man page for further details. .Sp .I areca,N/E -\- [FreeBSD, Linux, Windows and Cygwin only] the device consists of one +\(en [FreeBSD, Linux, Windows and Cygwin only] the device consists of one or more SATA or SAS disks connected to an Areca SAS RAID controller. The integer N (range 1 to 128) denotes the channel (slot) and E (range 1 to 8) denotes the enclosure. @@ -550,7 +553,7 @@ Important: This requires Areca SAS contr .\" %ENDIF OS FreeBSD Linux Windows Cygwin .\" %IF OS FreeBSD Linux .I cciss,N -\- [FreeBSD and Linux only] the device consists of one or more SCSI/SAS or +\(en [FreeBSD and Linux only] the device consists of one or more SCSI/SAS or SATA disks connected to a cciss RAID controller. The non-negative integer N (in the range from 0 to 15 inclusive) denotes which disk on the controller is monitored. @@ -559,7 +562,7 @@ with XX in the range from 00 to 15 inclu Please see the \fBsmartctl\fP(8) man page for further details. .Sp .I hpt,L/M/N -\- [FreeBSD and Linux only] the device consists of one or more ATA disks +\(en [FreeBSD and Linux only] the device consists of one or more ATA disks connected to a HighPoint RocketRAID controller. The integer L is the controller id, the integer M is the channel number, and the integer N is the PMPort number if it is available. The allowed values of L are @@ -574,7 +577,7 @@ Please see the \fBsmartctl\fP(8) man pag .\" %ENDIF OS FreeBSD Linux .\" %IF OS Linux .I sssraid,E,S -\- [Linux only: NEW EXPERIMENTAL SMARTD 7.4 FEATURE] +\(en [Linux only: NEW EXPERIMENTAL SMARTD 7.4 FEATURE] the device consists of one or more SCSI/SAS or SATA disks connected to a SSSRAID controller. The non-negative integer E (in the range of 0 to 8) denotes the enclosure @@ -583,10 +586,10 @@ Please see the \fBsmartctl\fP(8) man pag .Sp .\" %ENDIF OS Linux .I intelliprop,N[+TYPE] -\- (deprecated and subject to remove). +\(en (deprecated and subject to remove). .Sp .I jmb39x[\-q],N[,sLBA][,force][+TYPE] -\- the device consists of multiple SATA disks connected to a JMicron JMB39x +\(en the device consists of multiple SATA disks connected to a JMicron JMB39x RAID port multiplier. The suffix \*(Aq\-q\*(Aq selects a slightly different command variant used by some QNAP NAS devices. @@ -594,12 +597,12 @@ The integer N is the port number from 0 Please see the \fBsmartctl\fP(8) man page for further details. .Sp .I jms56x,N[,sLBA][,force][+TYPE] -\- the device consists of multiple SATA disks connected to a JMicron JMS56x +\(en the device consists of multiple SATA disks connected to a JMicron JMS56x USB to SATA RAID bridge. See \*(Aqjmb39x...\*(Aq above for valid arguments. .Sp .I ignore -\- the device specified by this configuration entry should be ignored. +\(en the device specified by this configuration entry should be ignored. This allows one to ignore specific devices which are detected by a following DEVICESCAN configuration line. It may also be used to temporary disable longer multi-line configuration @@ -608,7 +611,7 @@ This Directive may be used in conjunctio Directives. .Sp .I removable -\- the device or its media is removable. This indicates to +\(en the device or its media is removable. This indicates to \fBsmartd\fP that it should continue (instead of exiting, which is the default behavior) if the device does not appear to be present when @@ -649,22 +652,22 @@ by periodic \fBsmartd\fP polling. The a are: .Sp .I never -\- \fBsmartd\fP will poll (check) the device regardless of its power +\(en \fBsmartd\fP will poll (check) the device regardless of its power mode. This may cause a disk which is spun-down to be spun-up when \fBsmartd\fP checks it. This is the default behavior if the '\-n' Directive is not given. .Sp .I sleep -\- check the device unless it is in SLEEP mode. +\(en check the device unless it is in SLEEP mode. .Sp .I standby -\- check the device unless it is in SLEEP or STANDBY mode. In +\(en check the device unless it is in SLEEP or STANDBY mode. In these modes most disks are not spinning, so if you want to prevent a laptop disk from spinning up each time that \fBsmartd\fP polls, this is probably what you want. .Sp .I idle -\- check the device unless it is in SLEEP, STANDBY or IDLE mode. +\(en check the device unless it is in SLEEP, STANDBY or IDLE mode. In the IDLE state, most disks are still spinning, so this is probably not what you want. .Sp @@ -688,11 +691,11 @@ should be of SMART command failures. Th Directive are: .Sp .I normal -\- do not try to monitor the disk if a mandatory SMART command fails, but +\(en do not try to monitor the disk if a mandatory SMART command fails, but continue if an optional SMART command fails. This is the default. .Sp .I permissive -\- try to monitor the disk even if it appears to lack SMART +\(en try to monitor the disk even if it appears to lack SMART capabilities. This may be required for some old disks (prior to ATA-3 revision 4) that implemented SMART before the SMART standards were incorporated into the ATA/ATAPI Specifications. @@ -741,12 +744,12 @@ Reports increases in the number of error valid arguments to this Directive are: .Sp .I error -\- [ATA] report if the number of ATA errors reported in the Summary SMART +\(en [ATA] report if the number of ATA errors reported in the Summary SMART error log has increased since the last check. .Sp .\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin .I error -\- [NVMe] report if the "Number of Error Information Log Entries" from the +\(en [NVMe] report if the "Number of Error Information Log Entries" from the SMART/Health Information log has increased since the last check. .br [NEW EXPERIMENTAL SMARTD 7.4 FEATURE] @@ -758,14 +761,14 @@ This is useful because the NVMe Error In across power cycles or device resets. .br If all new errors are either no longer present in the log or are not device -related (e.g. invalid command, invalid field in command, ...), a LOG_INFO +related (e.g.\& invalid command, invalid field in command, ...), a LOG_INFO message is generated instead. This avoids misleading warnings if the operating system issues unsupported commands and the device firmware also logs these kind of errors. .Sp .\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin .I xerror -\- [ATA] report if the number of ATA errors reported in the Extended +\(en [ATA] report if the number of ATA errors reported in the Extended Comprehensive SMART error log has increased since the last check. .Sp If both \*(Aq\-l error\*(Aq and \*(Aq\-l xerror\*(Aq are specified, smartd @@ -775,11 +778,11 @@ checks the maximum of both values. .Sp .\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin .I xerror -\- [NVMe] same as \*(Aq\-l error\*(Aq. +\(en [NVMe] same as \*(Aq\-l error\*(Aq. .\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin .Sp .I selftest -\- report if the number of failed tests reported in the SMART +\(en report if the number of failed tests reported in the SMART Self-Test Log has increased since the last check, or if the timestamp associated with the most recent failed test has increased. Note that such errors will \fBonly\fP be logged if you run self-tests on the @@ -798,13 +801,13 @@ number of failed self tests dropped to 0 an extended self-test is run after all bad sectors have been reallocated. .Sp .I offlinests[,ns] -\- [ATA only] report if the Offline Data Collection status has changed +\(en [ATA only] report if the Offline Data Collection status has changed since the last check. The report will be logged as LOG_CRIT if the new status indicates an error. With some drives the status often changes, therefore \*(Aq\-l offlinests\*(Aq is not enabled by \*(Aq\-a\*(Aq Directive. .\" %IF NOT OS Cygwin Windows -Appending ',ns' (no standby) to this directive is not implemented \"# -on Linux. \"# +Appending ',ns' (no standby) to this directive is not implemented\"# +on Linux.\"# .\" %ENDIF NOT OS Cygwin Windows .\"# .\" %IF OS Cygwin Windows .\"# .Sp @@ -814,12 +817,12 @@ on Linux. \"# .\"# .\" %ENDIF OS Cygwin Windows .Sp .I selfteststs[,ns] -\- [ATA only] report if the Self-Test execution status has changed +\(en [ATA only] report if the Self-Test execution status has changed since the last check. The report will be logged as LOG_CRIT if the new status indicates an error. .\" %IF NOT OS Cygwin Windows -Appending ',ns' (no standby) to this directive is not implemented \"# -on Linux. \"# +Appending ',ns' (no standby) to this directive is not implemented\"# +on Linux.\"# .\" %ENDIF NOT OS Cygwin Windows .\"# .\" %IF OS Cygwin Windows .\"# .Sp @@ -833,7 +836,7 @@ on Linux. \"# .\"# .\" %ENDIF OS Cygwin Windows .Sp .I scterc,READTIME,WRITETIME -\- [ATA only] sets the SCT Error Recovery Control settings to the specified +\(en [ATA only] sets the SCT Error Recovery Control settings to the specified values (deciseconds) when \fBsmartd\fP starts up and has no further effect. Values of 0 disable the feature, other values less than 65 are probably not supported. For RAID configurations, this is typically set to @@ -847,26 +850,26 @@ further effect. Valid arguments are: .Sp .I aam,[N|off] -\- [ATA only] Sets the Automatic Acoustic Management (AAM) feature. +\(en [ATA only] Sets the Automatic Acoustic Management (AAM) feature. .Sp .I apm,[N|off] -\- [ATA only] Sets the Advanced Power Management (APM) feature. +\(en [ATA only] Sets the Advanced Power Management (APM) feature. .Sp .I lookahead,[on|off] -\- [ATA only] Sets the read look-ahead feature. +\(en [ATA only] Sets the read look-ahead feature. .Sp .I security-freeze -\- [ATA only] Sets ATA Security feature to frozen mode. +\(en [ATA only] Sets ATA Security feature to frozen mode. .Sp .I standby,[N|off] -\- [ATA only] Sets the standby (spindown) timer and places the drive in the +\(en [ATA only] Sets the standby (spindown) timer and places the drive in the IDLE mode. .Sp .I wcache,[on|off] -\- [ATA only] Sets the volatile write cache feature. +\(en [ATA only] Sets the volatile write cache feature. .Sp .I dsn,[on|off] -\- [ATA only] Sets the DSN feature. +\(en [ATA only] Sets the DSN feature. .TP .B \-s REGEXP Run Self-Tests or Offline Immediate Tests, at scheduled times. A @@ -950,14 +953,14 @@ To enable staggered tests with delays in \fB \-s L/../../7/04:003\fP .br To enable staggered tests with delays 0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, -0, ... hours, use: +0, ...\& hours, use: .br -\fB \-s L/../../7/04:003-010\fP +\fB \-s L/../../7/04:003\(en010\fP .br -To enable staggered tests with delays 0, 1, 2, ..., 9, 10, 0, ... hours, +To enable staggered tests with delays 0, 1, 2, ..., 9, 10, 0, ...\& hours, use: .br -\fB \-s L/../../7/04:001-010\fP +\fB \-s L/../../7/04:001\(en010\fP .br To schedule a long Self-Test between 10\(en11 pm on the first and fifteenth day of each month, use: @@ -980,12 +983,12 @@ a full disk test can be performed by sev To setup a full test of a 1 TB disk within 20 days (one 50 GB span each day), run this command once: .nf - smartctl \-t select,0\-99999999 /dev/sda + smartctl \-t select,0\(en99999999 /dev/sda .fi To run the next test spans on Monday\(enFriday between 12\(en13 am, run smartd with this directive: .br -\fB \-s n/../../[1\-5]/12\fP +\fB \-s n/../../[1\(en5]/12\fP .Sp Scheduled tests are run immediately following the regularly-scheduled device polling, if the current local date, time, and test type, match @@ -1096,8 +1099,8 @@ If a word of the comma separated list ha script /etc/smartmontools/smartd_warning.d/plugin is run and the word is removed from the list before sending mail. The string \*(Aqplugin\*(Aq may be any valid name except \*(AqALL\*(Aq. -If \*(Aq@ALL\*(Aq is specified, all scripts in /etc/smartmontools/smartd_warning.d/* -are run instead. +If \*(Aq@ALL\*(Aq is specified, +all scripts in /etc/smartmontools/smartd_warning.d/* are run instead. This is handled by the script /usr/share/smartmontools/smartd_warning.sh (see also \*(Aq\-M exec\*(Aq below). Plugin scripts without execute permission are silently ignored. @@ -1133,21 +1136,21 @@ The valid arguments to the \-M Directive three): .Sp .I once -\- send only one warning email for each type of disk problem detected. This +\(en send only one warning email for each type of disk problem detected. This is the default unless state persistence (\*(Aq\-s\*(Aq option) is enabled. .Sp .I always -\- [NEW EXPERIMENTAL SMARTD 7.4 FEATURE] +\(en [NEW EXPERIMENTAL SMARTD 7.4 FEATURE] send additional warning reminder emails, upon each check, for each type of disk problem detected. .Sp .I daily -\- send additional warning reminder emails, once per day, for each type +\(en send additional warning reminder emails, once per day, for each type of disk problem detected. This is the default if state persistence (\*(Aq\-s\*(Aq option) is enabled. .Sp .I diminishing -\- send additional warning reminder emails, after a one-day interval, +\(en send additional warning reminder emails, after a one-day interval, then a two-day interval, then a four-day interval, and so on for each type of disk problem detected. Each interval is twice as long as the previous interval. @@ -1161,7 +1164,7 @@ reset. If the problem reappears a new w In addition, one may add zero or more of the following Directives: .Sp .I test -\- send a single test email +\(en send a single test email immediately upon \fBsmartd\fP startup. This allows one to verify that email is delivered correctly. @@ -1171,7 +1174,7 @@ will also send the normal email warnings \*(Aq\-m\*(Aq Directive, in addition to the single test email! .Sp .I exec PATH -\- run the executable PATH instead of the default mail command, when +\(en run the executable PATH instead of the default mail command, when \fBsmartd\fP needs to send email. PATH must point to an executable binary file or script. @@ -1361,8 +1364,8 @@ command-line arguments, for example: .\"# \*(Aq\-M exec\*(Aq, the script is run as follows with no STDIN, regardless .\"# of \*(Aq\-m ADD\*(Aq setting: .\"# .Vb 2 -.\"# \ \ PowerShell -NoProfile -ExecutionPolicy Bypass ^ -.\"# \ \ \ \ \ \ \ \ \ \ \ \ \ -Command ^& \*(Aq%SMARTD_MAILER%\*(Aq +.\"# \ \ PowerShell \-NoProfile \-ExecutionPolicy Bypass ^ +.\"# \ \ \ \ \ \ \ \ \ \ \ \ \ \-Command ^& \*(Aq%SMARTD_MAILER%\*(Aq .\"# .Ve .\"# .Sp .\"# .\" %ENDIF OS Windows @@ -1600,17 +1603,17 @@ known and understood device firmware bug multiple times. The valid arguments are: .Sp .I none -\- Assume that the device firmware obeys the ATA specifications. This +\(en Assume that the device firmware obeys the ATA specifications. This is the default, unless the device has presets for \*(Aq\-F\*(Aq in the drive database. Using this directive will override any preset values. .Sp .I nologdir -\- Suppresses read attempts of SMART or GP Log Directory. +\(en Suppresses read attempts of SMART or GP Log Directory. Support for all standard logs is assumed without an actual check. Some Intel SSDs may freeze if log address 0 is read. .Sp .I samsung -\- In some Samsung disks (example: model SV4012H Firmware Version: +\(en In some Samsung disks (example: model SV4012H Firmware Version: RM100-08) some of the two- and four-byte quantities in the SMART data structures are byte-swapped (relative to the ATA specification). Enabling this option tells \fBsmartd\fP to evaluate these quantities @@ -1620,18 +1623,18 @@ are (1) no self-test log printed, even t (3) strange and impossible values for the ATA error log timestamps. .Sp .I samsung2 -\- In some Samsung disks the number of ATA errors reported is byte swapped. +\(en In some Samsung disks the number of ATA errors reported is byte swapped. Enabling this option tells \fBsmartd\fP to evaluate this quantity in byte-reversed order. .Sp .I samsung3 -\- Some Samsung disks (at least SP2514N with Firmware VF100-37) report +\(en Some Samsung disks (at least SP2514N with Firmware VF100-37) report a self-test still in progress with 0% remaining when the test was already completed. If this directive is specified, \fBsmartd\fP will not skip the next scheduled self-test (see Directive \*(Aq\-s\*(Aq above) in this case. .Sp .I xerrorlba -\- This only affects \fBsmartctl\fP. +\(en This only affects \fBsmartctl\fP. .Sp [Please see the \fBsmartctl \-F\fP command-line option.] .TP @@ -1644,12 +1647,12 @@ Please see \fBsmartctl \-v\fP command-li The following arguments affect smartd warning output: .Sp .I 197,increasing -\- Raw Attribute number 197 (Current Pending Sector Count) is not +\(en Raw Attribute number 197 (Current Pending Sector Count) is not reset if uncorrectable sectors are reallocated. This sets \*(Aq\-C 197+\*(Aq if no other \*(Aq\-C\*(Aq directive is specified. .Sp .I 198,increasing -\- Raw Attribute number 198 (Offline Uncorrectable Sector Count) is not +\(en Raw Attribute number 198 (Offline Uncorrectable Sector Count) is not reset if uncorrectable sectors are reallocated. This sets \*(Aq\-U 198+\*(Aq if no other \*(Aq\-U\*(Aq directive is specified. .TP @@ -1659,16 +1662,16 @@ that are available for this drive. The valid arguments to this Directive are: .Sp .I use -\- use any presets that are available for this drive. This is the default. +\(en use any presets that are available for this drive. This is the default. .Sp .I ignore -\- do not use any presets for this drive. +\(en do not use any presets for this drive. .Sp .I show -\- show the presets listed for this drive in the database. +\(en show the presets listed for this drive in the database. .Sp .I showall -\- show the presets that are available for all drives and then exit. +\(en show the presets that are available for all drives and then exit. .Sp [Please see the .B smartctl \-P @@ -1741,7 +1744,7 @@ It appends the output of to the output of the smartd email warning message and sends it to ADDRESS. .Sp .Vb 4 -#! /bin/sh +#!\& /bin/sh # Save the email message (STDIN) to a file: cat > /root/msg @@ -1760,7 +1763,7 @@ PATH\*(Aq. It warns all users about a d then powers down the machine. .Sp .Vb 4 -#! /bin/sh +#!\& /bin/sh # Warn all users of a problem wall <<EOF
Any program (person), that produces man pages, should check the output for defects by using (both groff and nroff) [gn]roff -mandoc -t -ww -b -z -K utf8 <man page> The same goes for man pages that are used as an input. For a style guide use mandoc -T lint -.- Any "autogenerator" should check its products with the above mentioned 'groff', 'mandoc', and additionally with 'nroff ...'. It should also check its input files for too long (> 80) lines. This is just a simple quality control measure. The "autogenerator" may have to be corrected to get a better man page, the source file may, and any additional file may. Common defects: Not removing trailing spaces (in in- and output). The reason for these trailing spaces should be found and eliminated. "git" has a "tool" to point out whitespace, see for example "git-apply(1)" and git-config(1)") Not beginning each input sentence on a new line. Line length and patch size should thus be reduced. The script "reportbug" uses 'quoted-printable' encoding when a line is longer than 1024 characters in an 'ascii' file. See man-pages(7), item "semantic newline". -.- The difference between the formatted output of the original and patched file can be seen with: nroff -mandoc <file1> > <out1> nroff -mandoc <file2> > <out2> diff -d -u <out1> <out2> and for groff, using \"printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - \" instead of 'nroff -mandoc' Add the option '-t', if the file contains a table. Read the output from 'diff -d -u ...' with 'less -R' or similar. -.-. If 'man' (man-db) is used to check the manual for warnings, the following must be set: The option \"-warnings=w\" The environmental variable: export MAN_KEEP_STDERR=yes (or any non-empty value) or (produce only warnings): export MANROFFOPT=\"-ww -b -z\" export MAN_KEEP_STDERR=yes (or any non-empty value) -.-