ports/126040: update sysutils/linux-megacli
Ruben van Staveren
ruben at verweg.com
Sun Sep 7 21:30:04 UTC 2008
The following reply was made to PR ports/126040; it has been noted by GNATS.
From: Ruben van Staveren <ruben at verweg.com>
To: Pav Lucistnik <pav at FreeBSD.org>
Cc: bug-followup at FreeBSD.org
Subject: Re: ports/126040: update sysutils/linux-megacli
Date: Sun, 7 Sep 2008 21:02:14 +0000
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
- - Submitters changes except default enabling of rc.d script (As I feel FreeBSD
is not about that, especially with regards to ports)
- - Don't complain about higher compat.linux.osrelease versions
(Mentioned in
http://www.mail-archive.com/freebsd-stable@freebsd.org/msg96860.html)
cd /usr/ports && patch -p0 /path/to/patch
diff -urN sysutils/linux-megacli.orig/Makefile sysutils/linux-megacli/Makefile
- --- sysutils/linux-megacli.orig/Makefile 2008-09-07 22:33:51.000000000 +0200
+++ sysutils/linux-megacli/Makefile 2008-09-07 22:36:13.000000000 +0200
@@ -7,7 +7,7 @@
PORTNAME= megacli
PORTVERSION= 1.01.40
- -PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= sysutils linux
MASTER_SITES= http://www.lsi.com/support/downloads/megaraid/miscellaneous/linux/
PKGNAMEPREFIX= linux-
@@ -23,6 +23,7 @@
USE_LINUX= yes
SUB_FILES= megacli.sh
SUB_FILES+= 407.status-mfi-raid
+SUB_FILES+= mfi_tty_log
# From bsd.linux.rpm.mk
RPM2CPIO?= ${LOCALBASE}/bin/rpm2cpio
@@ -39,6 +40,7 @@
${INSTALL_SCRIPT} ${WRKSRC}/megacli.sh ${PREFIX}/sbin/megacli
${MKDIR} ${PREFIX}/etc/periodic/daily
${INSTALL_SCRIPT} ${WRKSRC}/407.status-mfi-raid ${PREFIX}/etc/periodic/daily
+ ${INSTALL_SCRIPT} ${WRKSRC}/mfi_tty_log ${PREFIX}/etc/rc.d
${INSTALL_PROGRAM} ${WRKSRC}/opt/MegaRAID/MegaCli/MegaCli ${PREFIX}/libexec
post-install:
diff -urN sysutils/linux-megacli.orig/files/407.status-mfi-raid.in sysutils/linux-megacli/files/407.status-mfi-raid.in
- --- sysutils/linux-megacli.orig/files/407.status-mfi-raid.in 2008-09-07 22:33:51.000000000 +0200
+++ sysutils/linux-megacli/files/407.status-mfi-raid.in 2008-09-07 22:36:13.000000000 +0200
@@ -16,6 +16,7 @@
: ${daily_status_mfi_raid_enable:=NO}
: ${daily_status_mfi_raid_verbose:=NO}
: ${daily_status_mfi_raid_persist_logs:=YES}
+: ${daily_status_mfi_raid_tty_log:=NO}
megacli=${megacli:-%%PREFIX%%/sbin/megacli}
logdir=${logdir:-/var/log}
@@ -67,7 +68,8 @@
E=-1; S=-1; D=-1; s=-1; mec=-1; oec=-1; pfc=-1; lpfeqn=-1;
state="";
}
- - /^Enclosure (Number|Device ID):/ { E=$3; }
+ /^Enclosure (Number:/ { E=$3; }
+ /^Enclosure Device ID:/ { E=$4; }
/^Slot Number:/ { S=$3; }
/^Device Id:/ { D=$3; }
/^Sequence Number:/ { s=$3; }
@@ -222,7 +224,31 @@
if test $raid_rc -eq 0; then
echo " No new log messages."
fi
- - [ $rc -eq 0 ] && [ $raid_rc -ne 0 ] && rc=3
+
+ # TTY Log
+ echo "TTY Log:"
+ tty_log=${logdir}/mfi_raid_${ctrl}_tty
+ tty_rc=0
+ case "$daily_status_mfi_raid_tty_log" in
+ [Yy][Ee][Ss])
+ if test ! -f ${tty_log}.today; then
+ touch ${tty_log}.today
+ fi
+ mv -f ${tty_log}.today ${tty_log}.yesterday
+ ${megacli} -FwTermLog Dsply -a${ctrl} > ${tty_log}.today
+ cmp -s ${tty_log}.yesterday ${tty_log}.today
+ tty_rc=$?
+ if test $tty_rc -ne 0; then
+ diff -u ${tty_log}.yesterday ${tty_log}.today | \
+ grep -v '^-\|^$'
+ else
+ echo " No new TTY log messages."
+ fi
+ ;;
+ *)
+ ;;
+ esac
+ [ $rc -eq 0 ] && [ $raid_rc -ne 0 -o $tty_rc -ne 0 ] && rc=3
done
exit ${rc}
diff -urN sysutils/linux-megacli.orig/files/megacli.sh.in sysutils/linux-megacli/files/megacli.sh.in
- --- sysutils/linux-megacli.orig/files/megacli.sh.in 2008-09-07 22:33:51.000000000 +0200
+++ sysutils/linux-megacli/files/megacli.sh.in 2008-09-07 22:36:13.000000000 +0200
@@ -8,11 +8,32 @@
exit 1
fi
- -if ! [ `sysctl -n compat.linux.osrelease` = "2.6.12" ]; then
- - echo "You need to set compat.linux.osrelease to 2.6.12 to run `basename $0`." >&2
- - exit 1
+osrelease=`sysctl -n compat.linux.osrelease`
+
+case $osrelease in
+ 2.6.*)
+ if [ `echo $osrelease | cut -d . -f 3` -lt 12 ]; then
+ osrelease=TOOLOW
+ fi
+ ;;
+ 2.*)
+ if [ `echo $osrelease | cut -d . -f 2` -lt 6 ]; then
+ osrelease=TOOLOW
+ fi
+ ;;
+ *)
+ if [ `echo $osrelease | cut -d . -f 1` -lt 2 ]; then
+ osrelease=TOOLOW
+ fi
+ ;;
+esac
+
+if [ $osrelease = "TOOLOW" ]; then
+ echo "You need to set compat.linux.osrelease to atleast 2.6.12 to run `basename $0`." >&2
+ exit 1
fi
+
lpfs=`mount -t linprocfs | awk 'END{ print NR }'`
if [ ${lpfs} -le 0 ]; then
echo "You need to mount linprocfs to run `basename $0`." >&2
diff -urN sysutils/linux-megacli.orig/files/mfi_tty_log.in sysutils/linux-megacli/files/mfi_tty_log.in
- --- sysutils/linux-megacli.orig/files/mfi_tty_log.in 1970-01-01 01:00:00.000000000 +0100
+++ sysutils/linux-megacli/files/mfi_tty_log.in 2008-09-07 22:36:13.000000000 +0200
@@ -0,0 +1,63 @@
+#!/bin/sh
+#
+# $FreeBSD: src/etc/rc.d/abi,v 1.4.2.4 2007/03/10 14:04:01 yar Exp $
+#
+
+# PROVIDE: mfi_tty_log
+# REQUIRE: abi
+# KEYWORD: nojail
+
+: ${rc_mfi_raid_tty_log:=NO}
+
+. /etc/rc.subr
+
+name="mfi_tty_log"
+start_cmd="${name}_start"
+stop_cmd=":"
+
+mfi_tty_log_start()
+{
+ megacli=${megacli:-%%PREFIX%%/sbin/megacli}
+ logdir=${logdir:-/var/log}
+
+ case "$rc_mfi_raid_tty_log" in
+ [Yy][Ee][Ss])
+ echo
+ echo 'Checking for TTY logs of MFI(4) RAID controllers:'
+ ;;
+ *)
+ return 0
+ ;;
+ esac
+
+ if test `id -u` -ne 0; then
+ echo "You must be root to run `basename $0`." >&2
+ return 1
+ fi
+
+ ADPCOUNT=$(${megacli} -adpCount | \
+ awk '/Controller Count:/ { gsub("\\.", ""); print $3 }')
+
+ case ${ADPCOUNT} in
+ 0) echo "Error: Cannot find an adapter." >&2
+ return 1
+ ;;
+ [1-9]|[1-9][0-9]|[1-2][0-9][0-9])
+ ;;
+ *)
+ echo "Error: Cannot get the number of adapters: ${ADPCOUNT}" >&2
+ return 1
+ ;;
+ esac
+
+ ADPMINIDX=0
+ ADPMAXIDX=`expr ${ADPCOUNT} - 1`
+
+ for ctrl in `jot ${ADPCOUNT} ${ADPMINIDX} ${ADPMAXIDX}`; do
+ tty_log=${logdir}/mfi_raid_${ctrl}_tty.boot
+ echo " Adapter: ${ctrl} - TTY log saved to ${tty_log}"
+ ${megacli} -FwTermLog Dsply -a${ctrl} > ${tty_log}
+ done
+}
+
+run_rc_command "$1"
diff -urN sysutils/linux-megacli.orig/pkg-message sysutils/linux-megacli/pkg-message
- --- sysutils/linux-megacli.orig/pkg-message 2008-09-07 22:33:51.000000000 +0200
+++ sysutils/linux-megacli/pkg-message 2008-09-07 22:52:55.000000000 +0200
@@ -30,7 +30,15 @@
# For daily summary mails and log diffs:
daily_status_mfi_raid_enable="YES"
# In case you want really lots of details enable this:
- - daily_status_mfi_raid_verbose="NO"
+ daily_status_mfi_raid_verbose="YES"
+ # In case you want the tty logs from the controller
+ daily_status_mfi_raid_tty_log="YES"
+
+Add the following to /etc/rc.conf
+
+# Save tty log on reboot (you want this)
+rc_mfi_raid_tty_log="YES"
+
If you find mfi(4) too verbose, see mfi_evt_class_t in
/usr/src/sys/dev/mfi/mfireg.h for values you can use in the
diff -urN sysutils/linux-megacli.orig/pkg-plist sysutils/linux-megacli/pkg-plist
- --- sysutils/linux-megacli.orig/pkg-plist 2008-09-07 22:33:51.000000000 +0200
+++ sysutils/linux-megacli/pkg-plist 2008-09-07 22:36:13.000000000 +0200
@@ -1,6 +1,7 @@
sbin/megacli
libexec/MegaCli
etc/periodic/daily/407.status-mfi-raid
+etc/rc.d/mfi_tty_log
%%PORTDOCS%%%%DOCSDIR%%/readme.txt
%%PORTDOCS%%%%DOCSDIR%%/README-status-mfi-raid.txt
%%PORTDOCS%%@dirrm %%DOCSDIR%%
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)
iD8DBQFIxEFHZ88+mcQxRw0RAgzMAKCEAU0f4TqHi6W02gZmuRnXqBaZAgCfZDqJ
R3SgTUpIuXlzJEBPmLp+j6s=
=fJPp
-----END PGP SIGNATURE-----
More information about the freebsd-ports-bugs
mailing list