smartmontools: fix 6.6 -> 7.0 NVMe SMART data readout regression. Bump.diff -r1.33 -r1.34 pkgsrc/sysutils/smartmontools/Makefile
(tnn)
@@ -1,16 +1,17 @@ | @@ -1,16 +1,17 @@ | |||
1 | # $NetBSD: Makefile,v 1.33 2019/01/18 00:28:24 tnn Exp $ | 1 | # $NetBSD: Makefile,v 1.34 2019/01/18 02:04:43 tnn Exp $ | |
2 | 2 | |||
3 | DISTNAME= smartmontools-7.0 | 3 | DISTNAME= smartmontools-7.0 | |
4 | PKGREVISION= 1 | |||
4 | CATEGORIES= sysutils | 5 | CATEGORIES= sysutils | |
5 | MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=smartmontools/} | 6 | MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=smartmontools/} | |
6 | 7 | |||
7 | MAINTAINER= pkgsrc-users@NetBSD.org | 8 | MAINTAINER= pkgsrc-users@NetBSD.org | |
8 | HOMEPAGE= http://smartmontools.sourceforge.net/ | 9 | HOMEPAGE= http://smartmontools.sourceforge.net/ | |
9 | COMMENT= Control and monitor storage systems using SMART | 10 | COMMENT= Control and monitor storage systems using SMART | |
10 | LICENSE= gnu-gpl-v2 | 11 | LICENSE= gnu-gpl-v2 | |
11 | 12 | |||
12 | ONLY_FOR_PLATFORM= Darwin-*-* DragonFly-*-* FreeBSD-*-* Linux-*-* | 13 | ONLY_FOR_PLATFORM= Darwin-*-* DragonFly-*-* FreeBSD-*-* Linux-*-* | |
13 | ONLY_FOR_PLATFORM+= NetBSD-*-* OpenBSD-*-* SunOS-*-* | 14 | ONLY_FOR_PLATFORM+= NetBSD-*-* OpenBSD-*-* SunOS-*-* | |
14 | 15 | |||
15 | USE_LANGUAGES= c c++03 | 16 | USE_LANGUAGES= c c++03 | |
16 | USE_TOOLS+= gmake | 17 | USE_TOOLS+= gmake | |
@@ -21,14 +22,17 @@ OWN_DIRS= ${PKG_SYSCONFDIR}/smartd_warn | @@ -21,14 +22,17 @@ OWN_DIRS= ${PKG_SYSCONFDIR}/smartd_warn | |||
21 | EGDIR= ${PREFIX}/share/examples/smartmontools | 22 | EGDIR= ${PREFIX}/share/examples/smartmontools | |
22 | CONF_FILES= ${EGDIR}/smartd.conf ${PKG_SYSCONFDIR}/smartd.conf | 23 | CONF_FILES= ${EGDIR}/smartd.conf ${PKG_SYSCONFDIR}/smartd.conf | |
23 | CONF_FILES_PERMS= ${EGDIR}/smartd_warning.sh \ | 24 | CONF_FILES_PERMS= ${EGDIR}/smartd_warning.sh \ | |
24 | ${PKG_SYSCONFDIR}/smartd_warning.sh \ | 25 | ${PKG_SYSCONFDIR}/smartd_warning.sh \ | |
25 | ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0755 | 26 | ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0755 | |
26 | RCD_SCRIPTS= smartd | 27 | RCD_SCRIPTS= smartd | |
27 | 28 | |||
28 | CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} | 29 | CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} | |
29 | CONFIGURE_ARGS+= --docdir=${PREFIX}/share/doc/smartmontools | 30 | CONFIGURE_ARGS+= --docdir=${PREFIX}/share/doc/smartmontools | |
30 | INSTALL_MAKE_FLAGS= ${MAKE_FLAGS} sysconfdir=${EGDIR} | 31 | INSTALL_MAKE_FLAGS= ${MAKE_FLAGS} sysconfdir=${EGDIR} | |
31 | 32 | |||
32 | INSTALLATION_DIRS= ${EGDIR} | 33 | INSTALLATION_DIRS= ${EGDIR} | |
33 | 34 | |||
35 | CFLAGS+=-O0 -ggdb -g3 | |||
36 | CXXFLAGS+=-O0 -ggdb -g3 | |||
37 | ||||
34 | .include "../../mk/bsd.pkg.mk" | 38 | .include "../../mk/bsd.pkg.mk" |
@@ -1,8 +1,9 @@ | @@ -1,8 +1,9 @@ | |||
1 | $NetBSD: distinfo,v 1.32 2019/01/18 00:28:24 tnn Exp $ | 1 | $NetBSD: distinfo,v 1.33 2019/01/18 02:04:43 tnn Exp $ | |
2 | 2 | |||
3 | SHA1 (smartmontools-7.0.tar.gz) = 00e6a7bb26b283695ab0deaf521be6723ba44f0a | 3 | SHA1 (smartmontools-7.0.tar.gz) = 00e6a7bb26b283695ab0deaf521be6723ba44f0a | |
4 | RMD160 (smartmontools-7.0.tar.gz) = db20533115aa05a52836dbef0006c664083fbe90 | 4 | RMD160 (smartmontools-7.0.tar.gz) = db20533115aa05a52836dbef0006c664083fbe90 | |
5 | SHA512 (smartmontools-7.0.tar.gz) = 96e18a201182579f699d541539ce393e7bc2191e027cfdf7f87455a63da3a14451574f8fe391232047ac941ace453a017193d0a4987a4edb8f7ed9d5007f0512 | 5 | SHA512 (smartmontools-7.0.tar.gz) = 96e18a201182579f699d541539ce393e7bc2191e027cfdf7f87455a63da3a14451574f8fe391232047ac941ace453a017193d0a4987a4edb8f7ed9d5007f0512 | |
6 | Size (smartmontools-7.0.tar.gz) = 944925 bytes | 6 | Size (smartmontools-7.0.tar.gz) = 944925 bytes | |
7 | SHA1 (patch-aa) = bd08aff267f0e9e9307ebc57858e61e35144bf16 | 7 | SHA1 (patch-aa) = bd08aff267f0e9e9307ebc57858e61e35144bf16 | |
8 | SHA1 (patch-ag) = 01b0b35d89d6d6a11b13b3c05a141c46a0c1590b | 8 | SHA1 (patch-ag) = 01b0b35d89d6d6a11b13b3c05a141c46a0c1590b | |
9 | SHA1 (patch-nvmecmds.cpp) = 0fec043f00b4a7fde2974e1a4670ce42343f2d52 |
$NetBSD: patch-nvmecmds.cpp,v 1.1 2019/01/18 02:04:43 tnn Exp $
It looks from the code like it is supposed to work to read the SMART data
by calling the nvme passthrough ioctl with broadcast nsid.
But it doesn't seem to work on NetBSD? So use the explicit nsid instead.
--- nvmecmds.cpp.orig 2018-08-19 18:45:53.000000000 +0000
+++ nvmecmds.cpp
@@ -207,7 +207,11 @@ bool nvme_read_log_page(nvme_device * de
// 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), true))
+ bool use_broadcast_nsid = true;
+#if defined(__NetBSD__)
+ use_broadcast_nsid = false;
+#endif
+ if (!nvme_read_log_page(device, 0x01, error_log, num_entries * sizeof(*error_log), use_broadcast_nsid))
return false;
if (isbigendian()) {
@@ -228,7 +232,11 @@ bool nvme_read_error_log(nvme_device * d
// 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), true))
+ bool use_broadcast_nsid = true;
+#if defined(__NetBSD__)
+ use_broadcast_nsid = false;
+#endif
+ if (!nvme_read_log_page(device, 0x02, &smart_log, sizeof(smart_log), use_broadcast_nsid))
return false;
if (isbigendian()) {