Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Sep 2008 21:30:04 GMT
From:      Ruben van Staveren <ruben@verweg.com>
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/126040: update sysutils/linux-megacli
Message-ID:  <200809072130.m87LU4ln070106@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/126040; it has been noted by GNATS.

From: Ruben van Staveren <ruben@verweg.com>
To: Pav Lucistnik <pav@FreeBSD.org>
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-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809072130.m87LU4ln070106>