Unbreak build on 4-STABLE and 5.1-RELEASE. Add a warning which states

that 5.1-CURRENT is required in order to monitor ATA devices.
This commit is contained in:
Bruce M Simpson 2003-11-01 02:57:51 +00:00
parent 3b4acd3405
commit 55e0a4a8d6
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=92765
6 changed files with 130 additions and 4 deletions

View file

@ -7,6 +7,7 @@
PORTNAME= smartmontools
PORTVERSION= 5.22
PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}
@ -42,8 +43,10 @@ do-install:
.include <bsd.port.pre.mk>
.if ${OSVERSION} < 500000
IGNORE= smartmontools currently support only FreeBSD 5.x
.if ${OSVERSION} < 501112
pre-everything:
@${ECHO} "WARNING: In order to support monitoring of ATA devices,"
@${ECHO} "${PORTNAME} requires 5.1-CURRENT (__FreeBSD_version 501112)."
.endif
post-install:

View file

@ -0,0 +1,10 @@
--- knowndrives.c.orig Sat Nov 1 02:33:08 2003
+++ knowndrives.c Sat Nov 1 02:33:20 2003
@@ -17,6 +17,7 @@
*
*/
+#include <sys/types.h>
#include <stdio.h>
#include <regex.h>
#include "atacmds.h"

View file

@ -0,0 +1,50 @@
--- os_freebsd.c.orig Sat Nov 1 02:34:37 2003
+++ os_freebsd.c Sat Nov 1 02:40:19 2003
@@ -402,13 +402,17 @@
if (cam_send_ccb(cam_dev,ccb) < 0) {
warn("error sending SCSI ccb");
+ #if __FreeBSD_version > 500000
cam_error_print(cam_dev,ccb,CAM_ESF_ALL,CAM_EPF_ALL,stderr);
+ #endif
cam_freeccb(ccb);
return -1;
}
if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) {
+ #if __FreeBSD_version > 500000
cam_error_print(cam_dev,ccb,CAM_ESF_ALL,CAM_EPF_ALL,stderr);
+ #endif
cam_freeccb(ccb);
return -1;
}
@@ -426,8 +430,10 @@
cam_close_device(cam_dev);
if (report > 0) {
+ int trunc;
+
pout(" status=0\n");
- int trunc = (iop->dxfer_len > 256) ? 1 : 0;
+ trunc = (iop->dxfer_len > 256) ? 1 : 0;
pout(" Incoming data, len=%d%s:\n", (int)iop->dxfer_len,
(trunc ? " [only first 256 bytes shown]" : ""));
@@ -444,6 +450,9 @@
static int get_ata_channel_unit ( const char* name, int* unit, int* dev) {
+#ifndef ATAREQUEST
+ return -1;
+#else
// there is no direct correlation between name 'ad0, ad1, ...' and
// channel/unit number. So we need to iterate through the possible
// channels and check each unit to see if we match names
@@ -483,6 +492,7 @@
return -1;
else
return 0;
+#endif
}

View file

@ -7,6 +7,7 @@
PORTNAME= smartmontools
PORTVERSION= 5.22
PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}
@ -42,8 +43,10 @@ do-install:
.include <bsd.port.pre.mk>
.if ${OSVERSION} < 500000
IGNORE= smartmontools currently support only FreeBSD 5.x
.if ${OSVERSION} < 501112
pre-everything:
@${ECHO} "WARNING: In order to support monitoring of ATA devices,"
@${ECHO} "${PORTNAME} requires 5.1-CURRENT (__FreeBSD_version 501112)."
.endif
post-install:

View file

@ -0,0 +1,10 @@
--- knowndrives.c.orig Sat Nov 1 02:33:08 2003
+++ knowndrives.c Sat Nov 1 02:33:20 2003
@@ -17,6 +17,7 @@
*
*/
+#include <sys/types.h>
#include <stdio.h>
#include <regex.h>
#include "atacmds.h"

View file

@ -0,0 +1,50 @@
--- os_freebsd.c.orig Sat Nov 1 02:34:37 2003
+++ os_freebsd.c Sat Nov 1 02:40:19 2003
@@ -402,13 +402,17 @@
if (cam_send_ccb(cam_dev,ccb) < 0) {
warn("error sending SCSI ccb");
+ #if __FreeBSD_version > 500000
cam_error_print(cam_dev,ccb,CAM_ESF_ALL,CAM_EPF_ALL,stderr);
+ #endif
cam_freeccb(ccb);
return -1;
}
if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) {
+ #if __FreeBSD_version > 500000
cam_error_print(cam_dev,ccb,CAM_ESF_ALL,CAM_EPF_ALL,stderr);
+ #endif
cam_freeccb(ccb);
return -1;
}
@@ -426,8 +430,10 @@
cam_close_device(cam_dev);
if (report > 0) {
+ int trunc;
+
pout(" status=0\n");
- int trunc = (iop->dxfer_len > 256) ? 1 : 0;
+ trunc = (iop->dxfer_len > 256) ? 1 : 0;
pout(" Incoming data, len=%d%s:\n", (int)iop->dxfer_len,
(trunc ? " [only first 256 bytes shown]" : ""));
@@ -444,6 +450,9 @@
static int get_ata_channel_unit ( const char* name, int* unit, int* dev) {
+#ifndef ATAREQUEST
+ return -1;
+#else
// there is no direct correlation between name 'ad0, ad1, ...' and
// channel/unit number. So we need to iterate through the possible
// channels and check each unit to see if we match names
@@ -483,6 +492,7 @@
return -1;
else
return 0;
+#endif
}