ports/161018: [MAINTAINER] sysutils/smartmontools: [SUMMARIZE CHANGES]
Alex Samorukov
samm at os2.kiev.ua
Sun Sep 25 19:40:09 UTC 2011
>Number: 161018
>Category: ports
>Synopsis: [MAINTAINER] sysutils/smartmontools: [SUMMARIZE CHANGES]
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: maintainer-update
>Submitter-Id: current-users
>Arrival-Date: Sun Sep 25 19:40:08 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator: Alex Samorukov
>Release: FreeBSD 8.2-RELEASE i386
>Organization:
NetArt s.r.o.
>Environment:
System: FreeBSD bsd 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Feb 18 02:24:46 UTC 2011
>Description:
This patch from upstream address 2 issues:
1) SMART health status is always "GOOD" with atacam driver.
2) Command "-l scterc" is broken on ata and atacam drivers.
See https://sourceforge.net/apps/trac/smartmontools/ticket/198 for more
details.
Added file(s):
- files/patch-os_freebsd
Generated with FreeBSD Port Tools 0.99
>How-To-Repeat:
>Fix:
--- smartmontools-5.41_3.patch begins here ---
diff -ruN --exclude=CVS /usr/ports/sysutils/smartmontools/Makefile /root/smartmontools/Makefile
--- /usr/ports/sysutils/smartmontools/Makefile 2011-07-22 08:38:53.000000000 +0200
+++ /root/smartmontools/Makefile 2011-09-25 21:09:31.000000000 +0200
@@ -7,7 +7,7 @@
PORTNAME= smartmontools
PORTVERSION= 5.41
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= sysutils
MASTER_SITES= SF
diff -ruN --exclude=CVS /usr/ports/sysutils/smartmontools/files/patch-os_freebsd /root/smartmontools/files/patch-os_freebsd
--- /usr/ports/sysutils/smartmontools/files/patch-os_freebsd 1970-01-01 01:00:00.000000000 +0100
+++ /root/smartmontools/files/patch-os_freebsd 2011-09-25 21:06:22.000000000 +0200
@@ -0,0 +1,51 @@
+Index: os_freebsd.cpp
+===================================================================
+--- os_freebsd.cpp (revision 3407)
++++ os_freebsd.cpp (revision 3419)
+@@ -287,12 +287,12 @@
+ request.flags=ATA_CMD_CONTROL;
+ break;
+ case ata_cmd_in::data_in:
+- request.flags=ATA_CMD_READ;
++ request.flags=ATA_CMD_READ | ATA_CMD_CONTROL;;
+ request.data=(char *)in.buffer;
+ request.count=in.size;
+ break;
+ case ata_cmd_in::data_out:
+- request.flags=ATA_CMD_WRITE;
++ request.flags=ATA_CMD_WRITE | ATA_CMD_CONTROL;
+ request.data=(char *)in.buffer;
+ request.count=in.size;
+ break;
+@@ -405,11 +405,8 @@
+ request->count,
+ request->timeout * 1000); // timeout in seconds
+
++ ccb.ataio.cmd.flags = CAM_ATAIO_NEEDRESULT;
+ // ata_28bit_cmd
+- if (request->flags == ATA_CMD_CONTROL)
+- ccb.ataio.cmd.flags = CAM_ATAIO_NEEDRESULT;
+- else
+- ccb.ataio.cmd.flags = 0;
+ ccb.ataio.cmd.command = request->u.ata.command;
+ ccb.ataio.cmd.features = request->u.ata.feature;
+ ccb.ataio.cmd.lba_low = request->u.ata.lba;
+@@ -435,7 +432,17 @@
+ return -1;
+ }
+
+- request->u.ata.count = ccb.ataio.res.sector_count;
++ request->u.ata.lba =
++ ((u_int64_t)(ccb.ataio.res.lba_low)) |
++ ((u_int64_t)(ccb.ataio.res.lba_mid) << 8) |
++ ((u_int64_t)(ccb.ataio.res.lba_high) << 16) |
++ ((u_int64_t)(ccb.ataio.res.lba_low_exp) << 24) |
++ ((u_int64_t)(ccb.ataio.res.lba_mid_exp) << 32) |
++ ((u_int64_t)(ccb.ataio.res.lba_high_exp) << 40);
++
++ request->u.ata.count = ccb.ataio.res.sector_count | (ccb.ataio.res.sector_count_exp << 8);
++ request->error = ccb.ataio.res.error;
++
+ return 0;
+ }
+
--- smartmontools-5.41_3.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list