smartmontools: upgraded package to upstream

Upgraded sys-apps/smartmontools to version 7.1 on amd64

BUG=none
TEST=Check on SATA and NVMe machines.
Output for power on hours changed, but otherwise, similar to older
versions.

Change-Id: I06d79501448af0c914f5c6ed52334dd536464e61
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/2197748
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>
diff --git a/metadata/md5-cache/sys-apps/smartmontools-6.6-r1 b/metadata/md5-cache/sys-apps/smartmontools-7.1
similarity index 76%
rename from metadata/md5-cache/sys-apps/smartmontools-6.6-r1
rename to metadata/md5-cache/sys-apps/smartmontools-7.1
index ad206fe..1ee3cfe 100644
--- a/metadata/md5-cache/sys-apps/smartmontools-6.6-r1
+++ b/metadata/md5-cache/sys-apps/smartmontools-7.1
@@ -3,12 +3,12 @@
 DESCRIPTION=Tools to monitor storage systems to provide advanced warning of disk degradation
 EAPI=6
 HOMEPAGE=https://www.smartmontools.org
-IUSE=caps +daemon selinux static update_drivedb
+IUSE=caps +daemon selinux static systemd update_drivedb
 KEYWORDS=*
 LICENSE=GPL-2
-RDEPEND=caps? ( static? ( sys-libs/libcap-ng[static-libs] ) !static? ( sys-libs/libcap-ng ) ) kernel_FreeBSD? ( sys-freebsd/freebsd-lib[usb] ) selinux? ( sys-libs/libselinux ) daemon? ( virtual/mailx ) selinux? ( sec-policy/selinux-smartmon ) update_drivedb? ( app-crypt/gnupg || ( net-misc/curl net-misc/wget www-client/lynx dev-vcs/subversion ) )
+RDEPEND=caps? ( static? ( sys-libs/libcap-ng[static-libs] ) !static? ( sys-libs/libcap-ng ) ) kernel_FreeBSD? ( sys-freebsd/freebsd-lib[usb] ) selinux? ( sys-libs/libselinux ) daemon? ( virtual/mailx ) selinux? ( sec-policy/selinux-smartmon ) systemd? ( sys-apps/systemd ) update_drivedb? ( app-crypt/gnupg || ( net-misc/curl net-misc/wget www-client/lynx dev-vcs/subversion ) )
 REQUIRED_USE=( caps? ( daemon ) )
 SLOT=0
-SRC_URI=mirror://sourceforge/smartmontools/smartmontools-6.6.tar.gz
+SRC_URI=mirror://sourceforge/smartmontools/smartmontools-7.1.tar.gz
 _eclasses_=autotools	d0e5375d47f4c809f406eb892e531513	eutils	06133990e861be0fe60c2b428fd025d9	flag-o-matic	5d5921a298e95441da2f85be419894c0	libtool	f143db5a74ccd9ca28c1234deffede96	multilib	b2f01ad412baf81650c23fcf0975fa33	systemd	71fd8d2065d102753fb9e4d20eaf3e9f	toolchain-funcs	209edad4a5c4812e7b2f8021650974f0
-_md5_=0ba674ae005a39a959be72efd0dc19ac
+_md5_=2a77e50031761cd53c2c27925a9bfd49
diff --git a/sys-apps/smartmontools/Manifest b/sys-apps/smartmontools/Manifest
index ee05dce..cba1246 100644
--- a/sys-apps/smartmontools/Manifest
+++ b/sys-apps/smartmontools/Manifest
@@ -1 +1 @@
-DIST smartmontools-6.6.tar.gz 903847 SHA256 51f43d0fb064fccaf823bbe68cf0d317d0895ff895aa353b3339a3b316a53054 SHA512 64bb533dac29f62ddd662a16a12c97df1af9cbac9ac526ce7af0b3bff9da49cf265a2030d91a7160452b56a67e80d7f34c9b4e45bbb320114f55695e2cb5cfaf WHIRLPOOL 7a34444977ae069ecf52f9de67077cf67d56a5888bec159ef7e2b19977f821fed8d8b5bca872c6df17cf12a9cb21c0df37dd9bbb44f295774ef93e93f9552bb3
+DIST smartmontools-7.1.tar.gz 971468 BLAKE2B de3e1b10997903cb9bf6107f1bd1be9587b66af08a94e368dc9ed3aa6d69ba93d6b41d1ba60076275603702d9d0b47b26e376d3c9f020eb18fde5af4b686485b SHA512 440b2a957da10d240a8ef0008bd3358b83adb9eaca0f8d3e049b25d56a139c61dcd0bb4b27898faef6f189a27e159bdca3331e52e445c0eebf35e5d930f9e295
diff --git a/sys-apps/smartmontools/files/smartd.systemd b/sys-apps/smartmontools/files/smartd.systemd
deleted file mode 100644
index bdcbdbb..0000000
--- a/sys-apps/smartmontools/files/smartd.systemd
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Self Monitoring and Reporting Technology (SMART) Daemon
-Documentation=man:smartd(8) man:smartd.conf(5)
-
-[Service]
-ExecStart=/usr/sbin/smartd -n
-ExecReload=/bin/kill -HUP $MAINPID
-StandardOutput=syslog
-
-[Install]
-WantedBy=multi-user.target
diff --git a/sys-apps/smartmontools/files/smartmontools-6.6-fix-build-on-musl.patch b/sys-apps/smartmontools/files/smartmontools-6.6-fix-build-on-musl.patch
deleted file mode 100644
index 2cd36e0..0000000
--- a/sys-apps/smartmontools/files/smartmontools-6.6-fix-build-on-musl.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Bug: https://bugs.gentoo.org/644586
-
-Upstream fix: https://www.smartmontools.org/changeset/4603
-
---- smartmontools-6.6/os_linux.cpp
-+++ smartmontools-6.6/os_linux.cpp
-@@ -3177,5 +3177,5 @@
-   char path[128];
-   snprintf(path, sizeof(path), "/sys/block/%s/device", name);
--  char * syshostpath = canonicalize_file_name(path);
-+  char * syshostpath = realpath(name, (char *)0);
-   if (!syshostpath)
-     return false;
diff --git a/sys-apps/smartmontools/files/smartmontools-6.6-set-broadcast-nsid.patch b/sys-apps/smartmontools/files/smartmontools-6.6-set-broadcast-nsid.patch
deleted file mode 100644
index e65504d..0000000
--- a/sys-apps/smartmontools/files/smartmontools-6.6-set-broadcast-nsid.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-fix from upstream
-
-https://www.smartmontools.org/changeset?new=4671@/&old=4670@/
-
-Index: trunk/smartmontools-6.6/ChangeLog
-===================================================================
- 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.
- 
-Index: trunk/smartmontools-6.6/nvmecmds.cpp
-===================================================================
-diff --git smartmontools-6.6/nvmecmds.cpp smartmontools-6.6/nvmecmds.cpp
---- smartmontools-6.6/nvmecmds.cpp	(revision 4670)
-+++ smartmontools-6.6/nvmecmds.cpp	(revision 4671)
-@@ -196,7 +196,8 @@
- }
- 
- // Read NVMe log page with identifier LID.
--bool nvme_read_log_page(nvme_device * device, unsigned char lid, void * data, unsigned size)
-+bool nvme_read_log_page(nvme_device * device, unsigned char lid, void * data,
-+	       		unsigned size, bool broadcast_nsid)
- {
-   if (!(4 <= size && size <= 0x4000 && (size % 4) == 0))
-     throw std::logic_error("nvme_read_log_page(): invalid size");
-@@ -204,7 +205,7 @@
-   memset(data, 0, size);
-   nvme_cmd_in in;
-   in.set_data_in(nvme_admin_get_log_page, data, size);
--  in.nsid = device->get_nsid();
-+  in.nsid = broadcast_nsid ? 0xffffffff : device->get_nsid();
-   in.cdw10 = lid | (((size / 4) - 1) << 16);
- 
-   return nvme_pass_through(device, in);
-@@ -213,7 +214,7 @@
- // Read NVMe Error Information Log.
- bool nvme_read_error_log(nvme_device * device, nvme_error_log_page * error_log, unsigned num_entries)
- {
--  if (!nvme_read_log_page(device, 0x01, error_log, num_entries * sizeof(*error_log)))
-+  if (!nvme_read_log_page(device, 0x01, error_log, num_entries * sizeof(*error_log), true))
-     return false;
- 
-   if (isbigendian()) {
-@@ -234,7 +235,7 @@
- // Read NVMe SMART/Health Information log.
- bool nvme_read_smart_log(nvme_device * device, nvme_smart_log & smart_log)
- {
--  if (!nvme_read_log_page(device, 0x02, &smart_log, sizeof(smart_log)))
-+  if (!nvme_read_log_page(device, 0x02, &smart_log, sizeof(smart_log), true))
-     return false;
- 
-   if (isbigendian()) {
-Index: trunk/smartmontools-6.6/nvmecmds.h
-===================================================================
-diff --git smartmontools-6.6/nvmecmds.h smartmontools-6.6/nvmecmds.h
---- smartmontools-6.6/nvmecmds.h	(revision 4670)
-+++ smartmontools-6.6/nvmecmds.h	(revision 4671)
-@@ -248,7 +248,8 @@
- bool nvme_read_id_ns(nvme_device * device, unsigned nsid, smartmontools::nvme_id_ns & id_ns);
- 
- // Read NVMe log page with identifier LID.
--bool nvme_read_log_page(nvme_device * device, unsigned char lid, void * data, unsigned size);
-+bool nvme_read_log_page(nvme_device * device, unsigned char lid, void * data,
-+	       		unsigned size, bool broadcast_nsid);
- 
- // Read NVMe Error Information Log.
- bool nvme_read_error_log(nvme_device * device, smartmontools::nvme_error_log_page * error_log,
-Index: trunk/smartmontools-6.6/nvmeprint.cpp
-===================================================================
-diff --git smartmontools-6.6/nvmeprint.cpp smartmontools-6.6/nvmeprint.cpp
---- smartmontools-6.6/nvmeprint.cpp	(revision 4670)
-+++ smartmontools-6.6/nvmeprint.cpp	(revision 4671)
-@@ -473,9 +473,21 @@
-   if (options.log_page_size) {
-     // Align size to dword boundary
-     unsigned size = ((options.log_page_size + 4-1) / 4) * 4;
-+    bool broadcast_nsid;
-     raw_buffer log_buf(size);
- 
--    if (!nvme_read_log_page(device, options.log_page, log_buf.data(), size)) {
-+    switch (options.log_page) {
-+    case 1:
-+    case 2:
-+    case 3:
-+      broadcast_nsid = true;
-+      break;
-+    default:
-+      broadcast_nsid = false;
-+      break;
-+    }
-+    if (!nvme_read_log_page(device, options.log_page, log_buf.data(),
-+			    size, broadcast_nsid)) {
-       pout("Read NVMe Log 0x%02x failed: %s\n\n", options.log_page, device->get_errmsg());
-       return retval | FAILSMART;
-     }
diff --git a/sys-apps/smartmontools/metadata.xml b/sys-apps/smartmontools/metadata.xml
index 0ae4667..cb72f51 100644
--- a/sys-apps/smartmontools/metadata.xml
+++ b/sys-apps/smartmontools/metadata.xml
@@ -8,7 +8,6 @@
 <use>
 	<flag name="caps">Build against <pkg>sys-libs/libcap-ng</pkg> to allow smartd to drop its privileges.</flag>
 	<flag name="daemon">Install the monitoring daemon (smartd) and associated scripts.</flag>
-	<flag name="minimal">Do not install the monitoring daemon and associated scripts.</flag>
 	<flag name="update_drivedb">Install a script to update the drivedb file.</flag>
 </use>
 <upstream>
diff --git a/sys-apps/smartmontools/smartmontools-6.6-r1.ebuild b/sys-apps/smartmontools/smartmontools-7.1.ebuild
similarity index 88%
rename from sys-apps/smartmontools/smartmontools-6.6-r1.ebuild
rename to sys-apps/smartmontools/smartmontools-7.1.ebuild
index a78ae0c..16be90c 100644
--- a/sys-apps/smartmontools/smartmontools-6.6-r1.ebuild
+++ b/sys-apps/smartmontools/smartmontools-7.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="6"
@@ -18,7 +18,7 @@
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="caps +daemon selinux static update_drivedb"
+IUSE="caps +daemon selinux static systemd update_drivedb"
 
 DEPEND="
 	caps? (
@@ -34,6 +34,7 @@
 RDEPEND="${DEPEND}
 	daemon? ( virtual/mailx )
 	selinux? ( sec-policy/selinux-smartmon )
+	systemd? ( sys-apps/systemd )
 	update_drivedb? (
 		app-crypt/gnupg
 		|| (
@@ -47,14 +48,8 @@
 
 REQUIRED_USE="( caps? ( daemon ) )"
 
-PATCHES=(
-	"${FILESDIR}"/${P}-fix-build-on-musl.patch
-	"${FILESDIR}"/${P}-set-broadcast-nsid.patch
-)
-
 src_prepare() {
 	default
-
 	eautoreconf
 }
 
@@ -63,14 +58,15 @@
 	# The build installs /etc/init.d/smartd, but we clobber it
 	# in our src_install, so no need to manually delete it.
 	myeconfargs=(
-		--docdir="${EPREFIX}/usr/share/doc/${PF}"
 		--with-drivedbdir="${EPREFIX}/var/db/${PN}" #575292
 		--with-initscriptdir="${EPREFIX}/etc/init.d"
+		#--with-smartdscriptdir="${EPREFIX}/usr/share/${PN}"
 		$(use_with caps libcap-ng)
 		$(use_with selinux)
-		--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+		$(use_with systemd libsystemd)
 		$(use_with update_drivedb gnupg)
 		$(use_with update_drivedb update-smart-drivedb)
+		$(usex systemd "--with-systemdsystemunitdir=$(systemd_get_systemunitdir)" '')
 	)
 	econf "${myeconfargs[@]}"
 }
@@ -83,7 +79,6 @@
 
 		newinitd "${FILESDIR}"/smartd-r1.rc smartd
 		newconfd "${FILESDIR}"/smartd.confd smartd
-		systemd_newunit "${FILESDIR}"/smartd.systemd smartd.service
 	else
 		dosbin smartctl
 		doman smartctl.8
@@ -122,8 +117,8 @@
 
 pkg_postinst() {
 	if use daemon || use update_drivedb; then
-		local initial_db_file="${EPREFIX%/}/usr/share/${PN}/drivedb.h"
-		local db_path="${EPREFIX%/}/var/db/${PN}"
+		local initial_db_file="${EPREFIX}/usr/share/${PN}/drivedb.h"
+		local db_path="${EPREFIX}/var/db/${PN}"
 
 		if [[ ! -f "${db_path}/drivedb.h" ]] ; then
 			# No initial database found