From owner-freebsd-ports-bugs@FreeBSD.ORG Sun Sep 7 21:30:04 2008 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D30491065671 for ; Sun, 7 Sep 2008 21:30:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id D11F68FC18 for ; Sun, 7 Sep 2008 21:30:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m87LU4sp070110 for ; Sun, 7 Sep 2008 21:30:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m87LU4ln070106; Sun, 7 Sep 2008 21:30:04 GMT (envelope-from gnats) Date: Sun, 7 Sep 2008 21:30:04 GMT Message-Id: <200809072130.m87LU4ln070106@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org From: Ruben van Staveren Cc: Subject: Re: ports/126040: update sysutils/linux-megacli X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Ruben van Staveren List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Sep 2008 21:30:04 -0000 The following reply was made to PR ports/126040; it has been noted by GNATS. From: Ruben van Staveren To: Pav Lucistnik Cc: bug-followup@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-----