From bz@zabbadoz.net  Sun Jun 11 11:42:20 2006
Return-Path: <bz@zabbadoz.net>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 53DB216A418
	for <freebsd-gnats-submit@freebsd.org>; Sun, 11 Jun 2006 11:42:20 +0000 (UTC)
	(envelope-from bz@zabbadoz.net)
Received: from transport.cksoft.de (transport.cksoft.de [62.111.66.27])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3281E43D46
	for <freebsd-gnats-submit@freebsd.org>; Sun, 11 Jun 2006 11:42:16 +0000 (GMT)
	(envelope-from bz@zabbadoz.net)
Received: from transport.cksoft.de (localhost [127.0.0.1])
	by transport.cksoft.de (Postfix) with ESMTP id 084351FFAD3
	for <freebsd-gnats-submit@freebsd.org>; Sun, 11 Jun 2006 13:42:15 +0200 (CEST)
Received: by transport.cksoft.de (Postfix, from userid 66)
	id 8F8251FFAD0; Sun, 11 Jun 2006 13:42:11 +0200 (CEST)
Received: from storage.int.zabbadoz.net (storage.int.zabbadoz.net [10.111.66.189])
	by mail.int.zabbadoz.net (Postfix) with ESMTP id 609D64448D6
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 11 Jun 2006 11:41:37 +0000 (UTC)
Received: by storage.int.zabbadoz.net (Postfix, from userid 1060)
	id E6C36489B53; Sun, 11 Jun 2006 10:34:46 +0000 (UTC)
Message-Id: <20060611103446.E6C36489B53@storage.int.zabbadoz.net>
Date: Sun, 11 Jun 2006 10:34:46 +0000 (UTC)
From: "Bjoern A. Zeeb" <bzeeb+freebsdports@zabbadoz.net>
Reply-To: "Bjoern A. Zeeb" <bzeeb+freebsdports@zabbadoz.net>
To: FreeBSD-gnats-submit@freebsd.org
Cc: "Bjoern A. Zeeb" <bzeeb+freebsdports@zabbadoz.net>
Subject: [new port] sysutils/amrstat
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         98803
>Category:       ports
>Synopsis:       [new port] sysutils/amrstat
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    bz
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 11 11:50:09 GMT 2006
>Closed-Date:    Sun Jun 11 12:42:56 GMT 2006
>Last-Modified:  Sat Dec 30 15:50:11 GMT 2006
>Originator:     Bjoern A. Zeeb
>Release:        FreeBSD 7.0-CURRENT amd64
>Organization:
Zabbadoz.NeT
>Environment:
System: FreeBSD foo 7.0-CURRENT FreeBSD 7.0-CURRENT #4: Tue Jun  6 19:19:12 UTC 2006 bz@foo:/path/to/HEAD/sys/KERNEL amd64

>Description:
	new port sysutils/amrstat:

	This port provides an utility for getting information from
	LSI Logic's MegaRAID RAID controllers.

	It also includes a daily periodic script that (optionally)
	also makes use of sysutils/megarc.

>How-To-Repeat:
>Fix:

The port source is also available as tarball from
http://sources.zabbadoz.net/freebsd/ports/experimental/ \
	sysutils-amrstat-20060611-01.tar


# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	sysutils/amrstat/
#	sysutils/amrstat/Makefile
#	sysutils/amrstat/pkg-descr
#	sysutils/amrstat/distinfo
#	sysutils/amrstat/pkg-plist
#	sysutils/amrstat/files
#	sysutils/amrstat/files/407.status-amr-raid.in
#
echo c - sysutils/amrstat/
mkdir -p sysutils/amrstat/ > /dev/null 2>&1
echo x - sysutils/amrstat/Makefile
sed 's/^X//' >sysutils/amrstat/Makefile << 'END-of-sysutils/amrstat/Makefile'
X# Ports collection makefile for:  amrstat
X# Date created:                   2006-04-11
X# Whom:                           "Bjoern A. Zeeb" <bzeeb+freebsd+ports@zabbadoz.net>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	amrstat
XPORTVERSION=	20060414
XCATEGORIES=	sysutils
XMASTER_SITES=	http://people.freebsd.org/~jkim/
XDISTNAME=	${PORTNAME}-${PORTVERSION}
X
XMAINTAINER=	bzeeb+freebsd+ports@zabbadoz.net
XCOMMENT=	Utility for LSI Logic's MegaRAID RAID controllers
X
XOPTIONS=	MEGARC "Also install LSI megarc binary port.." off
X
X.include <bsd.port.pre.mk>
X
X# We may want this for periodic script and to actually be able
X# to fix something in case amrstat reports degraded RAID.
X.if defined(WITH_MEGARC)
XRUN_DEPENDS=	${LOCALBASE}/sbin/megarc:${PORTSDIR}/sysutils/megarc
X.endif
X
XUSRSRC?=	/usr/src
XSYSDIR=		${USRSRC}/sys
XAMRSRC=		${SYSDIR}/dev/amr
X
XMAKE_ENV=	SYSDIR=${SYSDIR}
XALL_TARGET=	${PORTNAME}
X
XLOCALSRCDIR=	${.CURDIR}/files
XPERIODICSCRIPT=	407.status-amr-raid
X
XNO_WRKSUBDIR=	yes
X
XSUB_FILES+=	${PERIODICSCRIPT}
X
Xpost-extract:
X	@if [ ! -d ${AMRSRC} ]; then \
X		${ECHO} "=================================================="; \
X		${ECHO} "You need amr(4) sources in"; \
X		${ECHO} "    ${AMRSRC}"; \
X		${ECHO} "to build this port."; \
X		${ECHO} "If your sources are not in ${USRSRC} set USRSRC."; \
X		${ECHO} "=================================================="; \
X		exit 1; \
X	fi
X	${RM} -f ${WRKSRC}/amrstat
X
Xdo-install:
X	${INSTALL_PROGRAM} ${WRKSRC}/amrstat ${PREFIX}/sbin
X	${INSTALL_SCRIPT} -d ${PREFIX}/etc/periodic/daily
X	${INSTALL_SCRIPT} ${WRKDIR}/${PERIODICSCRIPT} ${PREFIX}/etc/periodic/daily
X
X.include <bsd.port.post.mk>
END-of-sysutils/amrstat/Makefile
echo x - sysutils/amrstat/pkg-descr
sed 's/^X//' >sysutils/amrstat/pkg-descr << 'END-of-sysutils/amrstat/pkg-descr'
XThis port provides an utility for getting information from
XLSI Logic's MegaRAID RAID controllers.
X
XWWW: http://lists.freebsd.org/pipermail/freebsd-scsi/2006-February/002294.html
END-of-sysutils/amrstat/pkg-descr
echo x - sysutils/amrstat/distinfo
sed 's/^X//' >sysutils/amrstat/distinfo << 'END-of-sysutils/amrstat/distinfo'
XMD5 (amrstat-20060414.tar.gz) = 851dc6d87ec2dc9c58c2c209df021a5e
XSHA256 (amrstat-20060414.tar.gz) = 2d512aa700c1d965f70826a0acf41fbd2fe40f94bf110c5c4d2aad0887e27556
XSIZE (amrstat-20060414.tar.gz) = 30477
END-of-sysutils/amrstat/distinfo
echo x - sysutils/amrstat/pkg-plist
sed 's/^X//' >sysutils/amrstat/pkg-plist << 'END-of-sysutils/amrstat/pkg-plist'
Xsbin/amrstat
Xetc/periodic/daily/407.status-amr-raid
X@dirrmtry etc/periodic/daily
X@dirrmtry etc/periodic
END-of-sysutils/amrstat/pkg-plist
echo c - sysutils/amrstat/files
mkdir -p sysutils/amrstat/files > /dev/null 2>&1
echo x - sysutils/amrstat/files/407.status-amr-raid.in
sed 's/^X//' >sysutils/amrstat/files/407.status-amr-raid.in << 'END-of-sysutils/amrstat/files/407.status-amr-raid.in'
X#!/bin/sh
X#
X# Show status of LSI Logic's MegaRAID RAID controllers.
X#
X# $FreeBSD$
X#
X
X# If there is a global system configuration file, suck it in.
X#
Xif [ -r /etc/defaults/periodic.conf ]
Xthen
X    . /etc/defaults/periodic.conf
X    source_periodic_confs
Xfi
X
X# Defaults.
X: ${daily_status_amr_raid_enable:=NO}
X: ${daily_status_amr_raid_megarc_enable:=NO}
X
Xamrstat=${amrstat:-%%PREFIX%%/sbin/amrstat}
Xmegarc=${megarc:-%%PREFIX%%/sbin/megarc}
Xlogdir=${logdir:-/var/log}
X
Xcase "$daily_status_amr_raid_enable" in
X    [Yy][Ee][Ss])
X	echo
X	echo 'Checking status of amr(4) raid controllers:'
X
X	rc=0
X
X	# Checking each controller.
X	for ctrl in `ls -1 /dev/amr[0-9]* | sed -e 's,/dev/amr,,g'`
X	     do
X		echo ""
X		echo "Controller ${ctrl}:"
X		ctrl_log=${logdir}/amr_raid_${ctrl}
X		if test ! -f ${ctrl_log}.today; then
X			touch ${ctrl_log}.today
X		fi
X		mv -f ${ctrl_log}.today ${ctrl_log}.yesterday
X		${amrstat} -c ${ctrl} -g > ${ctrl_log}.today
X		if test -x ${megarc}; then
X		case "$daily_status_amr_raid_megarc_enable" in
X		    [Yy][Ee][Ss])
X			${megarc} -dispCfg -a0 | col -b | grep -v Scanning | \
X			    sed -e '/^A/s/.*/        .../g' >> ${ctrl_log}.today
X		    ;;
X		*)  ;;
X		esac
X		fi
X		lines=`wc -l ${ctrl_log}.today | awk '{ print $1 }'`
X		diff -u -${lines} ${ctrl_log}.yesterday ${ctrl_log}.today
X		raid_rc=$?
X		if test $raid_rc -eq 0; then
X			cat  ${ctrl_log}.today
X		fi
X		[ $rc -eq 0 ] && [ $raid_rc -ne 0 ] && rc=3
X
X		# Checking alarms.
X		#if test -x ${megarc}; then
X		#case "$daily_status_amr_raid_megarc_enable" in
X		#    [Yy][Ee][Ss])
X		#	echo "Alarms:"
X		#	alarms_log=${logdir}/amr_raid_alarms
X		# ----------------------------------------
X		# There seems to be following option but does not seem to
X		# show anything sor me so I cannot verify that it is what
X		# I expect:
X		#	${megarc} -getNVRAMLog -a${ctrl}
X		# For me IPMI has some logs though:
X		#   DATE sel[1]:
X		#     A Drive - Slot/Connector - Fault - Drive Array - Slot 2
X		# ----------------------------------------
X		# Keep following commented out until someone confirms that it
X		# does something useful for him.
X		# ----------------------------------------
X		#	if test ! -f ${alarms_log}.today; then
X		#		touch ${alarms_log}.today
X		#	fi
X		#	mv -f ${alarms_log}.today ${alarms_log}.yesterday
X		#	raid_rc=0
X		#	${megarc} -getNVRAMLog -a${ctrl} > ${alarms_log}.today
X		#	cmp -zs ${alarms_log}.yesterday ${alarms_log}.today
X		#	raid_rc=$?
X		#	if test $raid_rc -ne 0; then
X		#		diff -u ${alarms_log}.yesterday ${alarms_log}.today
X		#	else
X		#		echo "  No new alarms."
X		#	fi
X		#	[ $rc -eq 0 ] && [ $raid_rc -ne 0 ] && rc=3
X		#    ;;
X		#*)  ;;
X		#esac
X		#fi
X
X	     done
X	;;
X
X    *)  rc=0;;
Xesac
X
Xexit $rc
X
X# end
END-of-sysutils/amrstat/files/407.status-amr-raid.in
exit

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->erwin 
Responsible-Changed-By: erwin 
Responsible-Changed-When: Sun Jun 11 11:56:42 UTC 2006 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=98803 
State-Changed-From-To: open->closed 
State-Changed-By: erwin 
State-Changed-When: Sun Jun 11 12:42:48 UTC 2006 
State-Changed-Why:  
Port added, thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=98803 

From: "Oleg Gawriloff" <barzog@telecom.by>
To: <bug-followup@FreeBSD.org>, <bzeeb+freebsdports@zabbadoz.net>
Cc:  
Subject: Re: ports/98803: [new port] sysutils/amrstat
Date: Sat, 30 Dec 2006 14:24:49 +0200

 Supplied binary file in archive runs on 5.4 without problem.
 uname -a
 FreeBSD albatros.telecom.by 5.4-RELEASE-p13 FreeBSD 5.4-RELEASE-p13 #1: Mon
 Jun  5 14:04:54 EEST 2006
 root@albatros.telecom.by:/usr/src/sys/i386/compile/ALBATROS  i386
 
 sudo ./amrstat -g
 Product                 <MegaRAID SATA 150-6D>
 Firmware                713N
 BIOS                    G119
 SCSI channels           1
 Fibre loops             0
 Memory size             64 MB
 Battery status          not present, charge unknown
 Logical volume 0        optimal (372.61 GB, RAID0)
 Logical volume 1        optimal (372.61 GB, RAID0)
 Logical volume 2        optimal (372.61 GB, RAID0)
 Logical volume 3        optimal (372.61 GB, RAID0)
 Logical volume 4        optimal (372.61 GB, RAID0)
 Logical volume 5        optimal (372.61 GB, RAID0)
 Physical drive 0:0      online
 Physical drive 0:1      online
 Physical drive 0:2      online
 Physical drive 0:3      online
 Physical drive 0:4      online
 Physical drive 0:5      online
 
 But does not compiles:
 cc -O -pipe -march=pentiumpro -static -Wall -Werror -I/usr/src/sys/dev/amr
 -o amrstat amrstat.c
 amrstat.c: In function `describe_drive':
 amrstat.c:539: error: structure has no member named `ae_pdrivestate'
 amrstat.c:550: error: structure has no member named `ae_pdrivestate'
 amrstat.c:556: error: structure has no member named `ae_pdrivestate'
 *** Error code 1
 
 Stop in /usr/local/src/amrstat.
 
 Signed, Oleg Gawriloff. 
 
Responsible-Changed-From-To: erwin->bz 
Responsible-Changed-By: bz 
Responsible-Changed-When: Sat Dec 30 15:07:25 UTC 2006 
Responsible-Changed-Why:  
Change responsible to me so I get follow-ups. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=98803 

From: "Bjoern A. Zeeb" <bzeeb+freebsdports@zabbadoz.net>
To: Oleg Gawriloff <barzog@telecom.by>
Cc: "Bjoern A. Zeeb" <bzeeb+freebsdports@zabbadoz.net>,
	bug-followup@FreeBSD.org
Subject: Re: ports/98803: [new port] sysutils/amrstat
Date: Sat, 30 Dec 2006 15:06:45 +0000 (UTC)

 On Sat, 30 Dec 2006, Oleg Gawriloff wrote:
 
 Hi,
 
 > Supplied binary file in archive runs on 5.4 without problem.
 
 depending on which bindary you refer to you might be lucky or not.
 I don't know about the current state of amr(4) in RELENG_5 to be
 honest and I won't be able to test/verify/... anything.
 
 > uname -a
 > FreeBSD albatros.telecom.by 5.4-RELEASE-p13 FreeBSD 5.4-RELEASE-p13 #1: Mon
 > Jun  5 14:04:54 EEST 2006
 > root@albatros.telecom.by:/usr/src/sys/i386/compile/ALBATROS  i386
 >
 > sudo ./amrstat -g
 > ...
 >
 > But does not compiles:
 > cc -O -pipe -march=pentiumpro -static -Wall -Werror -I/usr/src/sys/dev/amr
 > -o amrstat amrstat.c
 > amrstat.c: In function `describe_drive':
 > amrstat.c:539: error: structure has no member named `ae_pdrivestate'
 > amrstat.c:550: error: structure has no member named `ae_pdrivestate'
 > amrstat.c:556: error: structure has no member named `ae_pdrivestate'
 > *** Error code 1
 >
 > Stop in /usr/local/src/amrstat.
 
 yes, we know. That's why the port has:
 
 .if ${OSVERSION} < 600105
 IGNORE=	does not build on FreeBSD 6.0 or earlier
 .endif
 
 Basically noone was interested in backporting amrstat to also compile
 on 5.x (and maybe some src/sys/dev/amr changes would still be needed
 too).
 
 If you want to backport and can test it you can send patches to
 Jung-uk Kim (jkim@) and me (or just a follow up to the PR) and
 I'll of course update the port if it looks ok:-)
 
 
 Greetings
 Bjoern
 
 -- 
 Bjoern A. Zeeb				bzeeb at Zabbadoz dot NeT
>Unformatted:
