From blair at orcaware.com Fri Sep 2 07:31:23 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Fri, 2 Sep 2005 07:31:23 -0700 Subject: [Orca-checkins] r481 - orca/trunk/lib/Orca Message-ID: <200509021431.j82EVNE1026629@orca1.orcaware.com> Author: blair at orcaware.com Date: Fri Sep 2 07:30:26 2005 New Revision: 481 Modified: orca/trunk/lib/Orca/Utils.pm Log: Fix a problem with \ appearing in URLs because Internet Explorer will convert these to /'s, causing URLs to fail to download. * lib/Orca/Utils.pm (name_to_fsname): Convert \'s to |'s. Modified: orca/trunk/lib/Orca/Utils.pm ============================================================================== --- orca/trunk/lib/Orca/Utils.pm (original) +++ orca/trunk/lib/Orca/Utils.pm Fri Sep 2 07:30:26 2005 @@ -110,7 +110,16 @@ my ($name, $postfix_length) = @_; $name =~ s/:/_/g; + + # When Internet Explorer sees a \ in a URL, it converts it into a / + # when it makes a request to a web server which will fail, so change + # the \ to a |. + $name =~ s:\\:|:g; + + # A / cannot appear in a filename because it'll look like a + # directory. $name =~ s:/:_per_:g; + $name =~ s:\s+:_:g; $name =~ s:%:_pct_:g; $name =~ s:#:_num_:g; @@ -139,11 +148,12 @@ my $trim_length = $max_filename_length - 23 - $postfix_length; $name = substr($name, 0, $trim_length) . "-$md5"; - # Be careful to convert any /, \ or + characters to _. The / - # character definitely needs to be modified since / is a valid + # Be careful to convert any / or + characters to _ and any \'s to + # |'s. The / character needs to be changed since / is a valid # base64 character and can't be used since we don't want a # directory. - $name =~ s:[/\\\+]:_:g; + $name =~ s:[/\+]:_:g; + $name =~ s:[\\]:|:g; } $name; From blair at orcaware.com Fri Sep 2 07:32:39 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Fri, 2 Sep 2005 07:32:39 -0700 Subject: [Orca-checkins] r482 - orca/trunk/lib/Orca Message-ID: <200509021432.j82EWdTo026912@orca1.orcaware.com> Author: blair at orcaware.com Date: Fri Sep 2 07:31:47 2005 New Revision: 482 Modified: orca/trunk/lib/Orca/Utils.pm Log: Remove an unused function. * lib/Orca/Utils.pm (old_name_to_fsname): Remove this function as it is no longer being used. Modified: orca/trunk/lib/Orca/Utils.pm ============================================================================== --- orca/trunk/lib/Orca/Utils.pm (original) +++ orca/trunk/lib/Orca/Utils.pm Fri Sep 2 07:31:47 2005 @@ -159,22 +159,6 @@ $name; } -sub old_name_to_fsname { - my $name = shift; - $name =~ s/:/_/g; - $name =~ s:/:_per_:g; - $name =~ s:\s+:_:g; - $name =~ s:%:_percent_:g; - $name =~ s:#:_number_:g; - $name =~ s:\*:_X_:g; - $name =~ s:([_,]){2,}:$1:g; - - # Remove trailing _'s. - $name =~ s:_+$::; - $name =~ s:_+,:,:g; - $name; -} - # Find all files matching a particular Perl regular expression and # return file ids. sub perl_glob { From blair at orcaware.com Fri Sep 2 19:16:01 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Fri, 2 Sep 2005 19:16:01 -0700 Subject: [Orca-checkins] r483 - orca/trunk/data_gatherers/procallator Message-ID: <200509030216.j832G188013586@orca1.orcaware.com> Author: blair at orcaware.com Date: Fri Sep 2 19:15:08 2005 New Revision: 483 Modified: orca/trunk/data_gatherers/procallator/procallator.pl.in Log: Minor formatting cleanup. * data_gatherers/procallator/procallator.pl.in: Reformat some lines to fit in 80 characters. Modified: orca/trunk/data_gatherers/procallator/procallator.pl.in ============================================================================== --- orca/trunk/data_gatherers/procallator/procallator.pl.in (original) +++ orca/trunk/data_gatherers/procallator/procallator.pl.in Fri Sep 2 19:15:08 2005 @@ -1,7 +1,7 @@ #!/usr/bin/perl -w # -# Performance statistics collector for /proc statistics for use -# with Linux 2.2, 2.4 & 2.6 kernels. +# Performance statistics collector for /proc statistics for use with +# Linux 2.2, 2.4 & 2.6 kernels. # # Copyright (C) 2001 Guilherme Carvalho Chehab. # @@ -10,22 +10,22 @@ # $LastChangedDate$ # $LastChangedBy$ # -#This program is free software; you can redistribute it and/or -#modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 -#of the License, or (at your option) any later version. +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. # -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -# -#You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. -# Config variables +# Config variables. $PROC = "@PROC_DIR@"; # Proc directory, usually /proc $INTERVAL = 300; # Interval between each measure, in seconds From blair at orcaware.com Fri Sep 2 19:46:32 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Fri, 2 Sep 2005 19:46:32 -0700 Subject: [Orca-checkins] r484 - orca/trunk/data_gatherers/procallator Message-ID: <200509030246.j832kWru014272@orca1.orcaware.com> Author: blair at orcaware.com Date: Fri Sep 2 19:45:42 2005 New Revision: 484 Modified: orca/trunk/data_gatherers/procallator/procallator.pl.in Log: First pass at a perl cleanup of procallator. * data_gatherers/procallator/procallator.pl.in: Use Sys::Hostname instead of `hostname`. Use mkdir() instead of `mkdir`. Add warnings anytime open() fails. Warn Reformat some lines to fit in 80 characters. Modified: orca/trunk/data_gatherers/procallator/procallator.pl.in ============================================================================== --- orca/trunk/data_gatherers/procallator/procallator.pl.in (original) +++ orca/trunk/data_gatherers/procallator/procallator.pl.in Fri Sep 2 19:45:42 2005 @@ -25,16 +25,17 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. +use Sys::Hostname; + # Config variables. $PROC = "@PROC_DIR@"; # Proc directory, usually /proc $INTERVAL = 300; # Interval between each measure, in seconds $COMPRESS = "@COMPRESSOR@"; # Compressor... -$COMPRESS = "/usr/bin/gzip" if ($COMPRESS eq ""); # Get a default +$COMPRESS = "@GZIP@" if $COMPRESS eq ""; # Get a default -$HOSTNAME = `/bin/hostname`; -chomp $HOSTNAME; +$HOSTNAME = hostname; $DEST_DIR = "@VAR_DIR@/procallator/$HOSTNAME"; # Destination dir for output files @@ -60,11 +61,13 @@ # Create output dir if needed if ( !-d $DEST_DIR && !$DEBUG ) { - `mkdir -p $DEST_DIR`; + mkdir($DEST_DIR) + or die "$0: cannot mkdir '$DEST_DIR': $!\n"; } # Read kernel version -open( F_VERSION, "<$PROC/version" ); +open(F_VERSION, "$PROC/version") + or die "$0: cannot open '$PROC/version' for reading: $!\n"; ( $os, $line, $version ) = split / +/, , 4; close(F_VERSION); @@ -92,16 +95,23 @@ $locltime = sprintf "%02d:%02d:%02d", $hour, $min, $sec; # Get uptime - open( F_UPTIME, "<$PROC/uptime" ); + open(F_UPTIME, "$PROC/uptime") + or warn "$0: cannot open '$PROC/uptime' for reading: $!\n"; ($uptime) = split / +/, ; close(F_UPTIME); # insert in output table - put_output( "timestamp", $timestamp[$r], "locltime", $locltime, "uptime", - $uptime ); + put_output("timestamp", + $timestamp[$r], + "locltime", + $locltime, + "uptime", + $uptime); # Read load average - open( F_LOADAVG, "<$PROC/loadavg" ); + open(F_LOADAVG, "$PROC/loadavg") + or warn "$0: cannot open '$PROC/loadavg' for reading: $!\n"; + ( $runq_1, $runq_5, $runq_15, $proc_run, $procs[$r], $last_pid ) = split / +|\//, ; chomp $last_pid; @@ -113,7 +123,8 @@ ); # Read system stats - open( F_STAT, "<$PROC/stat" ); + open(F_STAT, "$PROC/stat") + or warn "$0: cannot open '$PROC/stat' for reading: $!\n"; $n_cpus = 0; while ( $line = ) { chomp($line); @@ -289,9 +300,11 @@ } } - # In kernel 2.6 paging and swapping information must be computed on other file + # In kernel 2.6 paging and swapping information must be computed + # on other file. if ( $version =~ /^2\.6/ ) { - open( F_VMSTAT, "<$PROC/vmstat" ); + open(F_VMSTAT, "$PROC/vmstat") + or warn "$0: cannot open '$PROC/vmstat' for reading: $!\n"; while ( $line = ) { # Not sure about the meaning of these @@ -319,8 +332,9 @@ $dsk_wio_t[$r], $dsk_wblk_t[$r] ) = ( 0, 0, 0, 0 ); - open( F_DSKSTAT, "<$PROC/partitions" ) if ( $minor == 4 ); - open( F_DSKSTAT, "<$PROC/diskstats" ) if ( $minor > 4 ); + my $filename = 4 == $minor ? 'partitions' : 'diskstats'; + open(F_DSKSTAT, "$PROC/$filename") + or warn "$0: cannot open '$PROC/$filename' for reading: $!\n"; $i = 0; while ( $line = ) { @@ -431,7 +445,8 @@ close(F_STAT); # Get memory occupation - open( F_MEMINFO, "<$PROC/meminfo" ); + open( F_MEMINFO, "$PROC/meminfo" ) + or warn "$0: cannot open '$PROC/meminfo' for reading: $!\n"; if ( $version !~ /^2\.6/ ) { ; ( @@ -488,7 +503,8 @@ ); # Get network interface statistics - open( F_NET_DEV, "<$PROC/net/dev" ); + open(F_NET_DEV, "$PROC/net/dev") + or warn "$0: cannot open '$PROC/net/dev' for reading: $!\n"; $i = 0; while ( $line = ) { if ( $line =~ /:/ ) { @@ -552,7 +568,9 @@ if ( $k == 1 ) { if ( $minor >= 4 ) { - open( F_SNMP, "<$PROC/net/netstat" ); + open(F_SNMP, "$PROC/net/netstat") + or warn "$0: cannot open '$PROC/net/netstat' for ", + "reading: $!\n"; } else { next; @@ -560,7 +578,8 @@ } else { - open( F_SNMP, "<$PROC/net/snmp" ); + open(F_SNMP, "$PROC/net/snmp") + or warn "$0: cannot open '$PROC/net/snmp' for reading: $!\n"; } $j = 0; @@ -616,7 +635,8 @@ # Get NFS Client statistics if ( -f "$PROC/net/rpc/nfs" ) { - open( F_NFS, "<$PROC/net/rpc/nfs" ); + open(F_NFS, "$PROC/net/rpc/nfs") + or warn "$0: cannot open '$PROC/net/rpc/nfs' for reading: $!\n"; while ( $line = ) { if ( $line =~ /rpc/ ) { @@ -815,8 +835,9 @@ } # Get NFS Server statistics - if ( -f "$PROC/net/rpc/nfsd" ) { - open( F_NFS, "<$PROC/net/rpc/nfsd" ); + if (-f "$PROC/net/rpc/nfsd") { + open(F_NFS, "$PROC/net/rpc/nfsd") + or warn "$0: cannot open '$PROC/net/rpc/nfsd' for reading: $!\n"; while ( $line = ) { if ( $line =~ /rpc/ ) { @@ -1058,7 +1079,8 @@ my $t; # check if new file is not required - open( F_OUT, ">>$out_filename[$r]" ) or die "Could not open output"; + open(F_OUT, ">>$out_filename[$r]") or + die "$0: cannot open '$out_filename[$r]' for writing: $!\n"; if ( !$rate_ok ) { for ( $t = 0 ; $t < $n_cols[$r] ; $t++ ) { @@ -1098,7 +1120,7 @@ $out[0][ $n_cols[$r] ] = $a[$t]; $out[1][ $n_cols[$r] ] = $a[ $t + 1 ]; if ($DEBUG) { - print $out[0][ $n_cols[$r] ] . ": " . $out[1][ $n_cols[$r] ] . "\n"; + print $out[0][ $n_cols[$r] ], ": ", $out[1][ $n_cols[$r] ], "\n"; } } } From blair at orcaware.com Mon Sep 5 14:33:38 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Mon, 5 Sep 2005 14:33:38 -0700 Subject: [Orca-checkins] r485 - in orca/trunk: . packages/Time-HiRes-1.73 packages/Time-HiRes-1.73/hints packages/Time-HiRes-1.73/t Message-ID: <200509052133.j85LXc1I023363@orca1.orcaware.com> Author: blair at orcaware.com Date: Mon Sep 5 14:32:43 2005 New Revision: 485 Added: orca/trunk/packages/Time-HiRes-1.73/ - copied from r484, /orca/trunk/packages/Time-HiRes-1.68/ Removed: orca/trunk/packages/Time-HiRes-1.68/ Modified: orca/trunk/configure.in orca/trunk/packages/Time-HiRes-1.73/Changes orca/trunk/packages/Time-HiRes-1.73/HiRes.pm orca/trunk/packages/Time-HiRes-1.73/HiRes.xs orca/trunk/packages/Time-HiRes-1.73/META.yml orca/trunk/packages/Time-HiRes-1.73/Makefile.PL orca/trunk/packages/Time-HiRes-1.73/README orca/trunk/packages/Time-HiRes-1.73/hints/solaris.pl orca/trunk/packages/Time-HiRes-1.73/t/HiRes.t Log: Upgrade Time::HiRes from 1.68 to 1.73. * configure.in: Bump Time::HiRes's version number to 1.73. * packages/Time-HiRes-1.73: Renamed from packages/Time-HiRes-1.68. Directory contents updated from Time-HiRes-1.73.tar.gz. Modified: orca/trunk/configure.in ============================================================================== --- orca/trunk/configure.in (original) +++ orca/trunk/configure.in Mon Sep 5 14:32:43 2005 @@ -39,8 +39,8 @@ RRDTOOL_VER=1.000502 STORABLE_DIR=Storable-2.15 STORABLE_VER=2.15 -TIME_HIRES_DIR=Time-HiRes-1.68 -TIME_HIRES_VER=1.68 +TIME_HIRES_DIR=Time-HiRes-1.73 +TIME_HIRES_VER=1.73 AC_SUBST(DATA_DUMPER_DIR) AC_SUBST(DATE_PARSE_DIR) Modified: orca/trunk/packages/Time-HiRes-1.73/Changes ============================================================================== --- /orca/trunk/packages/Time-HiRes-1.68/Changes (original) +++ orca/trunk/packages/Time-HiRes-1.73/Changes Mon Sep 5 14:32:43 2005 @@ -1,5 +1,40 @@ Revision history for Perl extension Time::HiRes. +1.73 - Time::HiRes::nanosleep support for Solaris [PATCH] + (POSIX::uname() not available if building with core perl, + from Gisle Aas, via perl5-porters, perl change #25295) + +1.72 - going back to the 1.68 loader setup (using DynaLoader) + since too many weird things starting breaking + - fix a typo in Jos? Auguste-Etienne's name + +1.71 - a thinko in the nanosleep() detection + - move more changes stuff from the README to Changes + - add -w to the Makefile.PL + +1.70 - oops in 1.69 about @ISA (not affecting anything but silly) + - add copyright 2005 to HiRes.pm + - add copyright and license to HiRes.xs + - add copyrights 2003, 2004, 2005 to README + +1.69 - actually run a test for nanosleep + (if there is no $Config{d_nanosleep}) since e.g. in AIX 4.2 + it seems that one can link in nanosleep() but then calling + it fails instantly and sets errno to ENOSYS (Not implemented). + This may be fixable in the AIX case by figuring out the right + (realtime POSIX?) libs and whatnot, but in the general case + running a real test case is better. (Of course, this change + will no doubt run into portability problems because of the + execution step...) Note that because of hysterical raisins + most Perls do NOT have $Config{d_nanosleep} (scanning for + it by Configure would in many platforms require linking in + things like -lrt, which would in many platforms be a bad idea + for Perl itself). + (from Jos? Auguste-Etienne) + - support XSLoader also since it's much faster + (from Alexey Tourbin) + - add SEE ALSO (BSD::Resource and Time::TAI64) + 1.68 - somehow 1.67 had a lot of doubled lines (a major cut-and-paste error suspected), but miraculously it still worked since the @@ -251,10 +286,23 @@ the IVSIZE might not be defined) - define NVgf if needed - grab the typemap from 5.8.0 for the NV stuff + + 1.31 and 1.32 add more backward compatibility (now all the way + back to Perl 5.00404), and using nanosleep() (if available) for + subsecond sleeps. + 1.30 - release 1.29_02 as 1.30 + 1.30 adds all the changes made during the Perl 5.6->5.7->5.8 + development cycle. Most notably portability across platforms has been + enhanced, and the interval timers (setitimer, getitimer) have been + added. Note that the version of Time::HiRes that is included in Perl + 5.8.0 calls itself 1.20_00, but it is equivalent to this Time::HiRes + version. Note also that in 1.30 Wegscheid turns over the maintenance + to Jarkko Hietaniemi. + 1.29_02 - fix a silly unclosed comment typo in HiRes.xs @@ -360,6 +408,10 @@ - hopefully correct "-lc" fix for SCO. - add PPD stuff + 1.20 adds a platform neutral set of C accessible routines if you are + running 5.005+. All other changes are packaging changes and build + fixes(?) for statically linked Perl, SCO, and VMS. + 1.19 Tue Sep 29 22:30 1998 - put VMS gettimeofday() in. Patch is from Sebastian Bazley @@ -371,6 +423,8 @@ - fix Makefile.PL (more) so that detection of gettimeofday is more correct. + 1.19 has better VMS support. + 1.18 Mon Jul 6 22:40 1998 - add usleep() for Win32. - fix Makefile.PL to fix reported HP/UX feature where unresolved @@ -378,6 +432,9 @@ x bit set). Thanks to David Kozinn for report and explanation. Problems with the fix are mine :) + 1.18 has limited Win32 support (no ualarm). Added usleep for Win32. + Probably buggy. I'm sure I'll hear. + 1.17 Wed Jul 1 20:10 1998 - fix setitimer calls so microseconds is not more than 1000000. Hp/UX 9 doesn't like that. Provided by Roland B Robert, PhD. @@ -389,6 +446,22 @@ 1.16 Wed Nov 12 21:05 1997 - add missing EXTEND in new gettimeofday scalar code. + 1.16+ should be closer to building out of the box on Linux. Thanks + to Gisle Aas for patches, and the ualarm equivalent using setitimer. + + If your underlying operating system doesn't implement ualarm(), then + a fake using setitimer() will be made. If the OS is missing usleep(), + a fake one using select() will be made. If a fake can't be made for + either ualarm() or usleep(), then the corresponding Perl function will + not be available. If the OS is missing gettimeofday(), you will get + unresolved externals, either at link- or run-time. + + This is an improvement; the package used to not even build if + you were missing any of these bits. Roderick Schertler + + did all the conditional compilation stuff, + look at HiRes.pm and the test suites; it's good educational reading. + 1.15 Mon Nov 10 21:30 1997 - HiRes.pm: update pod. Provided by Gisle Aas. - HiRes.xs: if gettimeofday() called in scalar context, do Modified: orca/trunk/packages/Time-HiRes-1.73/HiRes.pm ============================================================================== --- /orca/trunk/packages/Time-HiRes-1.68/HiRes.pm (original) +++ orca/trunk/packages/Time-HiRes-1.73/HiRes.pm Mon Sep 5 14:32:43 2005 @@ -15,7 +15,7 @@ d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer d_nanosleep); -$VERSION = '1.68'; +$VERSION = '1.73'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @@ -24,7 +24,10 @@ ($constname = $AUTOLOAD) =~ s/.*:://; die "&Time::HiRes::constant not defined" if $constname eq 'constant'; my ($error, $val) = constant($constname); - if ($error) { die $error; } + if ($error) { + my (undef,$file,$line) = caller; + die "$error at $file line $line.\n"; + } { no strict 'refs'; *$AUTOLOAD = sub { $val }; @@ -111,9 +114,9 @@ then carefully read your C C API documentation for any peculiarities. -Unless using C for mixing sleeping with signals, give -some thought to whether Perl is the tool you should be using for -work requiring nanosecond accuracies. +If you are using C for something else than mixing sleeping +with signals, give some thought to whether Perl is the tool you should +be using for work requiring nanosecond accuracies. The following functions can be imported from this module. No functions are exported by default. @@ -326,8 +329,8 @@ Both functions return equivalent information (like C) but with different representations. The names C and C were selected mainly because they are operating system independent. -(C is Unix-centric, though some platforms like VMS have -emulations for it.) +(C is Unix-centric, though some platforms like Win32 and +VMS have emulations for it.) Here is an example of using C from C: @@ -363,6 +366,10 @@ drift off from the system clock (and the original time()) by up to 0.5 seconds. Time::HiRes will notice this eventually and recalibrate. +=head1 SEE ALSO + +L, L. + =head1 AUTHORS D. Wegscheid @@ -374,7 +381,7 @@ Copyright (c) 1996-2002 Douglas E. Wegscheid. All rights reserved. -Copyright (c) 2002,2003,2004 Jarkko Hietaniemi. All rights reserved. +Copyright (c) 2002, 2003, 2004, 2005 Jarkko Hietaniemi. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Modified: orca/trunk/packages/Time-HiRes-1.73/HiRes.xs ============================================================================== --- /orca/trunk/packages/Time-HiRes-1.68/HiRes.xs (original) +++ orca/trunk/packages/Time-HiRes-1.73/HiRes.xs Mon Sep 5 14:32:43 2005 @@ -1,3 +1,13 @@ +/* + * + * Copyright (c) 1996-2002 Douglas E. Wegscheid. All rights reserved. + * + * Copyright (c) 2002,2003,2004,2005 Jarkko Hietaniemi. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the same terms as Perl itself. + */ + #ifdef __cplusplus extern "C" { #endif Modified: orca/trunk/packages/Time-HiRes-1.73/META.yml ============================================================================== --- /orca/trunk/packages/Time-HiRes-1.68/META.yml (original) +++ orca/trunk/packages/Time-HiRes-1.73/META.yml Mon Sep 5 14:32:43 2005 @@ -1,7 +1,7 @@ # http://module-build.sourceforge.net/META-spec.html #XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# name: Time-HiRes -version: 1.68 +version: 1.73 version_from: HiRes.pm installdirs: perl requires: Modified: orca/trunk/packages/Time-HiRes-1.73/Makefile.PL ============================================================================== --- /orca/trunk/packages/Time-HiRes-1.68/Makefile.PL (original) +++ orca/trunk/packages/Time-HiRes-1.73/Makefile.PL Mon Sep 5 14:32:43 2005 @@ -1,3 +1,10 @@ +#!/usr/bin/perl +# +# In general we trust %Config, but for nanosleep() this trust +# may be misplaces (it may be linkable but not really functional). +# Use $ENV{FORCE_NANOSLEEP_SCAN} to force rescanning whether there +# really is hope. + require 5.002; use Config; @@ -7,7 +14,7 @@ my $VERBOSE = $ENV{VERBOSE}; my $DEFINE; my $LIBS = []; -my $XSOPT; +my $XSOPT = ''; use vars qw($self); # Used in 'sourcing' the hints. @@ -135,16 +142,30 @@ printf "cccmd = $cccmd\n" if $VERBOSE; my $res = system($cccmd); $ok = defined($res) && $res==0 && -s $tmp_exe && -x _; + + if ( $ok && exists $args{run} && $args{run}) { + my $abs_tmp_exe = + File::Spec-> + catfile(File::Spec->rel2abs(File::Spec->curdir), + $tmp_exe); + printf "Running $abs_tmp_exe..." if $VERBOSE; + if (system($abs_tmp_exe) == 0) { + $ok = 1; + } else { + $ok = 0; + print "[ system('$abs_tmp_exe') failed: status $? ] "; + } + } unlink("$tmp.c", $tmp_exe); } } - $ok; + return $ok; } sub has_gettimeofday { # confusing but true (if condition true ==> -DHAS_GETTIMEOFDAY already) - return 0 if $Config{d_gettimeod} eq 'define'; + return 0 if $Config{d_gettimeod}; return 1 if try_compile_and_link(< 1); +#include +#include +#include +#include +#include + +/* int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); */ + +int main() { + struct timespec ts1, ts2; + int ret; + ts1.tv_sec = 0; + ts1.tv_nsec = 750000000; + ts2.tv_sec = 0; + ts2.tv_nsec = 0; + errno = 0; + ret = nanosleep(&ts1, &ts2); /* E.g. in AIX nanosleep() fail and set errno to ENOSYS. */ + ret == 0 ? exit(0) : exit(errno ? errno : -1); +} +EOM +} + sub has_include { my ($inc) = @_; return 1 if @@ -327,7 +374,7 @@ } else { print "NOT found.\n"; print "Let's see if you have select()... "; - if ($Config{'d_select'} eq 'define') { + if ($Config{'d_select'}) { print "found.\n"; print "We can make a Time::HiRes::usleep().\n"; } else { @@ -338,13 +385,14 @@ print "Looking for nanosleep()... "; my $has_nanosleep; - if (exists $Config{d_nanosleep}) { + if (exists $Config{d_nanosleep} && !$ENV{FORCE_NANOSLEEP_SCAN}) { + # Believe $Config{d_nanosleep}. if ($Config{d_nanosleep}) { $has_nanosleep++; $DEFINE .= ' -DTIME_HIRES_NANOSLEEP'; } } elsif ($^O ne 'mpeix' && # MPE/iX falsely finds nanosleep. - has_x ("nanosleep (NULL, NULL)")) { + has_nanosleep()) { $has_nanosleep++; $DEFINE .= ' -DTIME_HIRES_NANOSLEEP'; } Modified: orca/trunk/packages/Time-HiRes-1.73/README ============================================================================== --- /orca/trunk/packages/Time-HiRes-1.68/README (original) +++ orca/trunk/packages/Time-HiRes-1.73/README Mon Sep 5 14:32:43 2005 @@ -3,41 +3,6 @@ Implement usleep, ualarm, and gettimeofday for Perl, as well as wrappers to implement time, sleep, and alarm that know about non-integral seconds. -1.31 and 1.32 add more backward compatibility (now all the way back to -Perl 5.00404), and using nanosleep() (if available) for subsecond sleeps. - -1.30 adds all the changes made during the Perl 5.6->5.7->5.8 development -cycle. Most notably portability across platforms has been enhanced, -and the interval timers (setitimer, getitimer) have been added. -Note that the version of Time::HiRes that is included in Perl 5.8.0 -calls itself 1.20_00, but it is equivalent to this Time::HiRes version. -Note also that in 1.30 Wegscheid turns over the maintenance to Jarkko -Hietaniemi. - -1.20 adds a platform neutral set of C accessible routines if you are running -5.005+. All other changes are packaging changes and build fixes(?) for -statically linked Perl, SCO, and VMS. - -1.19 has better VMS support. - -1.18 has limited Win32 support (no ualarm). Added usleep for Win32. -Probably buggy. I'm sure I'll hear. - -1.16+ should be closer to building out of the box on Linux. Thanks -to Gisle Aas for patches, and the ualarm equivalent using setitimer. - -If your underlying operating system doesn't implement ualarm(), then a fake -using setitimer() will be made. If the OS is missing usleep(), a fake one -using select() will be made. If a fake can't be made for either ualarm() or -usleep(), then the corresponding Perl function will not be available. If the -OS is missing gettimeofday(), you will get unresolved externals, either at -link- or run-time. - -This is an improvement; the package used to not even build if you were -missing any of these bits. Roderick Schertler did all -the conditional compilation stuff, look at HiRes.pm and the test suites; -it's good educational reading. - Note: the tests of this module are by definition time sensitive: under heavy loads the tests may fail. Reasonable relaxed criteria are being used for the tests but sometimes you may still see transient failures. @@ -46,16 +11,16 @@ Also, older versions of Perl do not support '-nolinenumbers' on the XSUBPP command, however, 5.004_03 requires it (on my box, anyway) since the #line -generating code in XSUBPP appears to have problems with #ifdef'd .xs code. If -xsubpp complains about usage when you do a make, look at the top of the -Makefile.PL and comment out the "$XSOPT=" line. Or upgrade to a newer version -of Perl. +generating code in XSUBPP appears to have problems with #ifdef'd .xs code. +If xsubpp complains about usage when you do a make, look at the top of +the Makefile.PL and comment out the "$XSOPT=" line. Or upgrade to a +newer version of Perl. POD documentation is embedded. Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002 Douglas E. Wegscheid. -Copyright (c) 2002 Jarkko Hietaniemi. All rights reserved. +Copyright (c) 2002, 2003, 2004, 2005 Jarkko Hietaniemi. All rights reserved. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Modified: orca/trunk/packages/Time-HiRes-1.73/hints/solaris.pl ============================================================================== --- /orca/trunk/packages/Time-HiRes-1.68/hints/solaris.pl (original) +++ orca/trunk/packages/Time-HiRes-1.73/hints/solaris.pl Mon Sep 5 14:32:43 2005 @@ -1,6 +1,7 @@ -use POSIX qw(uname); # 2.6 has nanosleep in -lposix4, after that it's in -lrt -if (substr((uname())[2], 2) <= 6) { +my $r = `/usr/bin/uname -r`; +chomp($r); +if (substr($r, 2) <= 6) { $self->{LIBS} = ['-lposix4']; } else { $self->{LIBS} = ['-lrt']; Modified: orca/trunk/packages/Time-HiRes-1.73/t/HiRes.t ============================================================================== --- /orca/trunk/packages/Time-HiRes-1.68/t/HiRes.t (original) +++ orca/trunk/packages/Time-HiRes-1.73/t/HiRes.t Mon Sep 5 14:32:43 2005 @@ -14,7 +14,7 @@ BEGIN { $| = 1; print "1..28\n"; } -END {print "not ok 1\n" unless $loaded;} +END { print "not ok 1\n" unless $loaded } use Time::HiRes qw(tv_interval); From blair at orcaware.com Thu Sep 8 20:28:46 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 8 Sep 2005 20:28:46 -0700 Subject: [Orca-checkins] r486 - orca/trunk/packages/Storable-2.15/t Message-ID: <200509090328.j893Skqt004172@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 8 20:27:49 2005 New Revision: 486 Added: orca/trunk/packages/Storable-2.15/t/sig_die.t Log: Add a file inadvertently not included Storable was upgraded to version 2.15. * packages/Storable-2.15/t/sig_die.t: New file from Storable 2.15's tarball. Added: orca/trunk/packages/Storable-2.15/t/sig_die.t ============================================================================== --- (empty file) +++ orca/trunk/packages/Storable-2.15/t/sig_die.t Thu Sep 8 20:27:49 2005 @@ -0,0 +1,44 @@ +#!./perl +# +# Copyright (c) 2002 Slaven Rezic +# +# You may redistribute only under the same terms as Perl 5, as specified +# in the README file that comes with the distribution. +# + +sub BEGIN { + if ($ENV{PERL_CORE}){ + chdir('t') if -d 't'; + @INC = ('.', '../lib'); + } else { + unshift @INC, 't'; + } + require Config; import Config; + if ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bStorable\b/) { + print "1..0 # Skip: Storable was not built\n"; + exit 0; + } +} + +use strict; +BEGIN { + if (!eval q{ + use Test::More; + 1; + }) { + print "1..0 # skip: tests only work with Test::More\n"; + exit; + } +} + +BEGIN { plan tests => 1 } + +my @warns; +$SIG{__WARN__} = sub { push @warns, shift }; +$SIG{__DIE__} = sub { require Carp; warn Carp::longmess(); warn "Evil die!" }; + +require Storable; + +Storable::dclone({foo => "bar"}); + +is(join("", @warns), "", "__DIE__ is not evil here"); From blair at orcaware.com Thu Sep 8 20:32:38 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 8 Sep 2005 20:32:38 -0700 Subject: [Orca-checkins] r487 - orca/trunk/lib/Orca Message-ID: <200509090332.j893Wcpr004475@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 8 20:31:43 2005 New Revision: 487 Modified: orca/trunk/lib/Orca/ImageFile.pm Log: XHTML correctness fix. * lib/Orca/ImageFile.pm (image_src_size): In the returned image size HTML snippet, put the image width and height in double quotes so that the string is valid XHTML. Modified: orca/trunk/lib/Orca/ImageFile.pm ============================================================================== --- orca/trunk/lib/Orca/ImageFile.pm (original) +++ orca/trunk/lib/Orca/ImageFile.pm Thu Sep 8 20:31:43 2005 @@ -317,7 +317,8 @@ # empty string or the size of the image. sub image_src_size { if ($_[0]->[I_IMAGE_HEIGHT] and $_[0]->[I_IMAGE_WIDTH]) { - return "width=$_[0]->[I_IMAGE_WIDTH] height=$_[0]->[I_IMAGE_HEIGHT]"; + return "width=\"$_[0]->[I_IMAGE_WIDTH]\" " . + "height=\"$_[0]->[I_IMAGE_HEIGHT]\""; } else { return ''; } From blair at orcaware.com Thu Sep 8 20:41:02 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 8 Sep 2005 20:41:02 -0700 Subject: [Orca-checkins] r488 - orca/trunk/data_gatherers/procallator Message-ID: <200509090341.j893f25I008435@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 8 20:39:44 2005 New Revision: 488 Modified: orca/trunk/data_gatherers/procallator/procallator.pl.in Log: Remove trailing whitespace. * data_gatherers/procallator/procallator.pl.in: Remove trailing whitespace. Modified: orca/trunk/data_gatherers/procallator/procallator.pl.in ============================================================================== --- orca/trunk/data_gatherers/procallator/procallator.pl.in (original) +++ orca/trunk/data_gatherers/procallator/procallator.pl.in Thu Sep 8 20:39:44 2005 @@ -111,7 +111,7 @@ # Read load average open(F_LOADAVG, "$PROC/loadavg") or warn "$0: cannot open '$PROC/loadavg' for reading: $!\n"; - + ( $runq_1, $runq_5, $runq_15, $proc_run, $procs[$r], $last_pid ) = split / +|\//, ; chomp $last_pid; From blair at orcaware.com Thu Sep 8 20:44:55 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 8 Sep 2005 20:44:55 -0700 Subject: [Orca-checkins] r489 - in orca/trunk: . data_gatherers/aix Message-ID: <200509090344.j893itVr008794@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 8 20:44:01 2005 New Revision: 489 Modified: orca/trunk/CHANGES orca/trunk/data_gatherers/aix/orca-aix-stat.pl.in orca/trunk/data_gatherers/hp/orca-hp-stat.pl.in Log: Remove some stutters. * CHANGES, * data_gatherers/aix/orca-aix-stat.pl.in, * data_gatherers/hp/orca-hp-stat.pl.in: Remove some stutters. Modified: orca/trunk/CHANGES ============================================================================== --- orca/trunk/CHANGES (original) +++ orca/trunk/CHANGES Thu Sep 8 20:44:01 2005 @@ -179,10 +179,9 @@ match each regular expression in a global integer array, count_procs_results. * orcallator/start_orcallator.sh.in: - Set WEB_SERVER to httpd and and WEB_SERVER_SECURE to - httpsd and export them both into the environment for - orcallator.se to use. Add documentation for these two - variables. + Set WEB_SERVER to httpd and WEB_SERVER_SECURE to httpsd and + export them both into the environment for orcallator.se to + use. Add documentation for these two variables. Wed Aug 7 19:57:45 PDT 2002 Blair Zajac Modified: orca/trunk/data_gatherers/aix/orca-aix-stat.pl.in ============================================================================== --- orca/trunk/data_gatherers/aix/orca-aix-stat.pl.in (original) +++ orca/trunk/data_gatherers/aix/orca-aix-stat.pl.in Thu Sep 8 20:44:01 2005 @@ -12,11 +12,11 @@ # system performance statistics and writes them out to datafile named # HOSTNAME/stats.YYYY-MM-DD-HHmm under the OUT_ROOT directory. # -# It runs for the the numbers specified by DURATION collecting data -# every INTERVAL number of seconds. After DURATION, the script -# closes and compresses it's datafile via /usr/bin/compress and then -# exits. If DURATION=24 and INTERVAL=300 (recommended) then the -# following cron entry would collect continuous stats for a system: +# It runs for the numbers specified by DURATION collecting data every +# INTERVAL number of seconds. After DURATION, the script closes and +# compresses it's datafile via /usr/bin/compress and then exits. If +# DURATION=24 and INTERVAL=300 (recommended) then the following cron +# entry would collect continuous stats for a system: # # 0 0 * * * //orca-aix-stat.pl # Modified: orca/trunk/data_gatherers/hp/orca-hp-stat.pl.in ============================================================================== --- orca/trunk/data_gatherers/hp/orca-hp-stat.pl.in (original) +++ orca/trunk/data_gatherers/hp/orca-hp-stat.pl.in Thu Sep 8 20:44:01 2005 @@ -12,11 +12,11 @@ # system performance statistics and writes them out to datafile named # HOSTNAME/stats.YYYY-MM-DD-HHmm under the OUT_ROOT directory. # -# It runs for the the numbers specified by DURATION collecting data -# every INTERVAL number of seconds. After DURATION, the script -# closes and compresses it's datafile via /usr/bin/compress and then -# exits. If DURATION=24 and INTERVAL=300 (recommended) then the -# following cron entry would collect continuous stats for a system: +# It runs for the numbers specified by DURATION collecting data every +# INTERVAL number of seconds. After DURATION, the script closes and +# compresses it's data file via /usr/bin/compress and then exits. If +# DURATION=24 and INTERVAL=300 (recommended) then the following cron +# entry would collect continuous stats for a system: # # 0 0 * * * //orca-hp-stat.pl # From blair at orcaware.com Thu Sep 8 20:52:52 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 8 Sep 2005 20:52:52 -0700 Subject: [Orca-checkins] r490 - in orca/trunk: contrib contrib/rotate_orca_graphs data_gatherers data_gatherers/aix data_gatherers/hp data_gatherers/orca_services data_gatherers/orcallator data_gatherers/winallator docs lib lib/SE/3.2.1 lib/SE/3.3 lib/SE/3.3.1 lib/SE/3.4 orca packages Message-ID: <200509090352.j893qqqI009403@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 8 20:51:41 2005 New Revision: 490 Modified: orca/trunk/config/PerlHead1.in (props changed) orca/trunk/config/PerlHead2.in (props changed) orca/trunk/config/acinclude.m4 (props changed) orca/trunk/config/check_for_perl_mod (props changed) orca/trunk/config/config.guess (props changed) orca/trunk/config/config.sub (props changed) orca/trunk/config/install-sh (props changed) orca/trunk/config/mkinstalldirs (props changed) orca/trunk/contrib/Makefile.in (props changed) orca/trunk/contrib/rotate_orca_graphs/Makefile.in (props changed) orca/trunk/contrib/rotate_orca_graphs/rotate_orca_graphs.sh.in (props changed) orca/trunk/data_gatherers/Makefile.in (props changed) orca/trunk/data_gatherers/aix/Makefile.in (props changed) orca/trunk/data_gatherers/aix/orca-aix-stat.pl.in (props changed) orca/trunk/data_gatherers/aix/orcallatorAIX.cfg (props changed) orca/trunk/data_gatherers/aix/orcallatorTSM.cfg (props changed) orca/trunk/data_gatherers/hp/Makefile.in (props changed) orca/trunk/data_gatherers/hp/hporcallator.cfg (props changed) orca/trunk/data_gatherers/hp/orca-hp-stat.pl.in (props changed) orca/trunk/data_gatherers/orca_services/Makefile.in (props changed) orca/trunk/data_gatherers/orca_services/S99orca_services.sh.in (props changed) orca/trunk/data_gatherers/orca_services/orca_services.cfg.in (props changed) orca/trunk/data_gatherers/orca_services/orca_services.pl.in (props changed) orca/trunk/data_gatherers/orca_services/orca_services_running.pl.in (props changed) orca/trunk/data_gatherers/orca_services/restart_orca_services.sh.in (props changed) orca/trunk/data_gatherers/orca_services/start_orca_services.sh.in (props changed) orca/trunk/data_gatherers/orca_services/stop_orca_services.sh.in (props changed) orca/trunk/data_gatherers/orcallator/Makefile.in (props changed) orca/trunk/data_gatherers/orcallator/S99orcallator.sh.in (props changed) orca/trunk/data_gatherers/orcallator/orcallator.cfg.in (props changed) orca/trunk/data_gatherers/orcallator/orcallator.se (props changed) orca/trunk/data_gatherers/orcallator/orcallator_running.pl.in (props changed) orca/trunk/data_gatherers/orcallator/restart_orcallator.sh.in (props changed) orca/trunk/data_gatherers/orcallator/start_orcallator.sh.in (props changed) orca/trunk/data_gatherers/orcallator/stop_orcallator.sh.in (props changed) orca/trunk/data_gatherers/winallator/Makefile.in (props changed) orca/trunk/data_gatherers/winallator/winallator.cfg.in (props changed) orca/trunk/docs/ARCHITECTURE (props changed) orca/trunk/docs/Makefile.in (props changed) orca/trunk/docs/REQUIREMENTS (props changed) orca/trunk/lib/Makefile.in (props changed) orca/trunk/lib/SE/3.2.1/live_rules.se (props changed) orca/trunk/lib/SE/3.2.1/orca_p_netstat_class.se (props changed) orca/trunk/lib/SE/3.2.1/orca_p_vmstat_class.se (props changed) orca/trunk/lib/SE/3.2.1/orca_process_class.se (props changed) orca/trunk/lib/SE/3.2.1/tapeinfo.se (props changed) orca/trunk/lib/SE/3.2.1/workinfo_class.se (props changed) orca/trunk/lib/SE/3.3.1/live_rules.se (props changed) orca/trunk/lib/SE/3.3.1/orca_p_netstat_class.se (props changed) orca/trunk/lib/SE/3.3.1/orca_p_vmstat_class.se (props changed) orca/trunk/lib/SE/3.3.1/orca_process_class.se (props changed) orca/trunk/lib/SE/3.3.1/tapeinfo.se (props changed) orca/trunk/lib/SE/3.3.1/workinfo_class.se (props changed) orca/trunk/lib/SE/3.3/live_rules.se (props changed) orca/trunk/lib/SE/3.3/orca_p_netstat_class.se (props changed) orca/trunk/lib/SE/3.3/orca_p_vmstat_class.se (props changed) orca/trunk/lib/SE/3.3/orca_process_class.se (props changed) orca/trunk/lib/SE/3.3/tapeinfo.se (props changed) orca/trunk/lib/SE/3.3/workinfo_class.se (props changed) orca/trunk/lib/SE/3.4/live_rules.se (props changed) orca/trunk/lib/SE/3.4/orca_p_netstat_class.se (props changed) orca/trunk/lib/SE/3.4/orca_p_vmstat_class.se (props changed) orca/trunk/lib/SE/3.4/orca_process_class.se (props changed) orca/trunk/lib/SE/3.4/workinfo_class.se (props changed) orca/trunk/lib/download.cfg (props changed) orca/trunk/lib/homesteaders.cfg (props changed) orca/trunk/lib/keynote.cfg (props changed) orca/trunk/lib/orca_logo.gif.hex (props changed) orca/trunk/lib/rothschild_image_logo.png.hex (props changed) orca/trunk/lib/rrdtool_logo.gif.hex (props changed) orca/trunk/lib/time_gets.cfg (props changed) orca/trunk/orca/Makefile.in (props changed) orca/trunk/orca/orca.pl.in (props changed) orca/trunk/packages/Makefile.in (props changed) Log: Set svn:eol-style to native on almost every file in the repository. * config/acinclude.m4, * config/check_for_perl_mod, * config/config.guess, * config/config.sub, * config/install-sh, * config/mkinstalldirs, * config/PerlHead1.in, * config/PerlHead2.in, * contrib/Makefile.in, * contrib/rotate_orca_graphs/Makefile.in, * contrib/rotate_orca_graphs/rotate_orca_graphs.sh.in, * data_gatherers/aix/Makefile.in, * data_gatherers/aix/orca-aix-stat.pl.in, * data_gatherers/aix/orcallatorAIX.cfg, * data_gatherers/aix/orcallatorTSM.cfg, * data_gatherers/hp/hporcallator.cfg, * data_gatherers/hp/Makefile.in, * data_gatherers/hp/orca-hp-stat.pl.in, * data_gatherers/Makefile.in, * data_gatherers/orcallator/Makefile.in, * data_gatherers/orcallator/orcallator.cfg.in, * data_gatherers/orcallator/orcallator_running.pl.in, * data_gatherers/orcallator/orcallator.se, * data_gatherers/orcallator/restart_orcallator.sh.in, * data_gatherers/orcallator/S99orcallator.sh.in, * data_gatherers/orcallator/start_orcallator.sh.in, * data_gatherers/orcallator/stop_orcallator.sh.in, * data_gatherers/orca_services/Makefile.in, * data_gatherers/orca_services/orca_services.cfg.in, * data_gatherers/orca_services/orca_services.pl.in, * data_gatherers/orca_services/orca_services_running.pl.in, * data_gatherers/orca_services/restart_orca_services.sh.in, * data_gatherers/orca_services/S99orca_services.sh.in, * data_gatherers/orca_services/start_orca_services.sh.in, * data_gatherers/orca_services/stop_orca_services.sh.in, * data_gatherers/winallator/Makefile.in, * data_gatherers/winallator/winallator.cfg.in, * docs/ARCHITECTURE, * docs/Makefile.in, * docs/REQUIREMENTS, * lib/download.cfg, * lib/homesteaders.cfg, * lib/keynote.cfg, * lib/Makefile.in, * lib/orca_logo.gif.hex, * lib/rothschild_image_logo.png.hex, * lib/rrdtool_logo.gif.hex, * lib/SE/3.2.1/live_rules.se, * lib/SE/3.2.1/orca_p_netstat_class.se, * lib/SE/3.2.1/orca_process_class.se, * lib/SE/3.2.1/orca_p_vmstat_class.se, * lib/SE/3.2.1/tapeinfo.se, * lib/SE/3.2.1/workinfo_class.se, * lib/SE/3.3.1/live_rules.se, * lib/SE/3.3.1/orca_p_netstat_class.se, * lib/SE/3.3.1/orca_process_class.se, * lib/SE/3.3.1/orca_p_vmstat_class.se, * lib/SE/3.3.1/tapeinfo.se, * lib/SE/3.3.1/workinfo_class.se, * lib/SE/3.3/live_rules.se, * lib/SE/3.3/orca_p_netstat_class.se, * lib/SE/3.3/orca_process_class.se, * lib/SE/3.3/orca_p_vmstat_class.se, * lib/SE/3.3/tapeinfo.se, * lib/SE/3.3/workinfo_class.se, * lib/SE/3.4/live_rules.se, * lib/SE/3.4/orca_p_netstat_class.se, * lib/SE/3.4/orca_process_class.se, * lib/SE/3.4/orca_p_vmstat_class.se, * lib/SE/3.4/workinfo_class.se, * lib/time_gets.cfg, * orca/Makefile.in, * orca/orca.pl.in, * packages/Makefile.in: Set svn:eol-style to native. From blair at orcaware.com Thu Sep 8 21:08:55 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 8 Sep 2005 21:08:55 -0700 Subject: [Orca-checkins] r491 - orca/trunk/data_gatherers/procallator Message-ID: <200509090408.j8948tmk014840@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 8 21:07:03 2005 New Revision: 491 Modified: orca/trunk/data_gatherers/procallator/procallator.cfg.in Log: Remove gratuitous differences between orcallator's and procallator's configuration files so that diffs between them so substantial changes. * data_gatherers/procallator/procallator.cfg.in: Remove insignificant differences between this file and orcallator.cfg.in. Modified: orca/trunk/data_gatherers/procallator/procallator.cfg.in ============================================================================== --- orca/trunk/data_gatherers/procallator/procallator.cfg.in (original) +++ orca/trunk/data_gatherers/procallator/procallator.cfg.in Thu Sep 8 21:07:03 2005 @@ -5,7 +5,6 @@ # $LastChangedDate$ # $LastChangedBy$ - # Require at least this version of Orca. require Orca 0.28.0 @@ -42,27 +41,28 @@ # This defines the email address of people to warn when a file that is # being updated constantly stops being updated. For mathematical -# expressions use the word `interval' to get the interval number for +# expressions use the word 'interval' to get the interval number for # the data source. warn_email @WARN_EMAIL@ late_interval interval + 30 # These parameters specify which plots to generate. -generate_hourly_plot 0 -generate_daily_plot 1 -generate_weekly_plot 1 -generate_monthly_plot 1 -generate_quarterly_plot 1 -generate_yearly_plot 1 +generate_hourly_plot 0 +generate_daily_plot 1 +generate_weekly_plot 1 +generate_monthly_plot 1 +generate_quarterly_plot 1 +generate_yearly_plot 1 # This sets the HTML markup that is placed at the very top of every -# web page and is primarly used to display the site's logo. -html_page_header

Put your site's logo here.

+# web page and is primarily used to display the site's logo. +html_page_header

Put your site's logo here.

-# This sets the text that is placed in the pages' -# element and just after the html_page_header HTML markup text is -# placed on the page. -html_top_title Orca Host Status +# This sets the text, that should not be HTML markup, that is used +# only in the main index.html file. It is used in the +# element and also placed in the HTML body after the html_page_header +# in a

element index.html file. +html_top_title Orca Host Status # This sets the HTML markup that is placed at the bottom of every web # page. From blair at orcaware.com Thu Sep 8 21:24:37 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 8 Sep 2005 21:24:37 -0700 Subject: [Orca-checkins] r492 - in orca/trunk: . data_gatherers data_gatherers/orca_services data_gatherers/procallator Message-ID: <200509090424.j894ObTY016182@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 8 21:23:43 2005 New Revision: 492 Modified: orca/trunk/INSTALL orca/trunk/Makefile.in orca/trunk/data_gatherers/Makefile.in orca/trunk/data_gatherers/orca_services/Makefile.in orca/trunk/data_gatherers/orca_services/README orca/trunk/data_gatherers/orcallator/Makefile.in orca/trunk/data_gatherers/procallator/Makefile.in Log: The make targets orcallator_run_at_boot, orca_services_run_at_boot procallator_run_at_boot only work on systems which have chkconfig, which are normally RedHat based ones, so append to all of the target names the string "_using_chkconfig". More targets for Debian based systems will be coming. * data_gatherers/Makefile.in, * data_gatherers/orcallator/Makefile.in, * data_gatherers/orca_services/Makefile.in, * data_gatherers/procallator/Makefile.in, * Makefile.in (orcallator_run_at_boot_using_chkconfig): Renamed from orcallator_run_at_boot. (orca_services_run_at_boot_using_chkconfig): Renamed from orca_services_run_at_boot. (procallator_run_at_boot_using_chkconfig): Renamed from procallator_run_at_boot. (orcallator_run_at_boot_using_chk): Renamed from orcallator_run_at_boot. * INSTALL, * data_gatherers/orca_services/README: Update the documentation to use the new make target names. Modified: orca/trunk/INSTALL ============================================================================== --- orca/trunk/INSTALL (original) +++ orca/trunk/INSTALL Thu Sep 8 21:23:43 2005 @@ -349,9 +349,13 @@ /etc/init.d/orcallator and set up symbolic links from that file to the appropriate K* and S* files in /etc/rc?.d/. - To make installing this easier, you can run + To make installing this easier, there are several make targets + available for different operating systems. - % make orcallator_run_at_boot + For systems with chkconfig, which are normally RedHat based + ones, run + + % make orcallator_run_at_boot_using_chkconfig from either the top of the Orca source tree or from the data_gatherers/orcallator directory. This will first delete @@ -396,9 +400,13 @@ into /etc/init.d/procallator and set up symbolic links from that file to the appropriate K* and S* files in /etc/rc?.d/. - To make installing this easier, you can run + To make installing this easier, there are several make targets + available for different operating systems. + + For systems with chkconfig, which are normally RedHat based + ones, run - % make procallator_run_at_boot + % make procallator_run_at_boot_using_chkconfig from either the top of the Orca source tree or from the data_gatherers/procallator directory. This uses Linux's Modified: orca/trunk/Makefile.in ============================================================================== --- orca/trunk/Makefile.in (original) +++ orca/trunk/Makefile.in Thu Sep 8 21:23:43 2005 @@ -28,14 +28,14 @@ install_contrib: cd contrib && $(MAKE) install_contrib -orcallator_run_at_boot: - cd data_gatherers/orcallator && $(MAKE) orcallator_run_at_boot +orcallator_run_at_boot_using_chkconfig: + cd data_gatherers/orcallator && $(MAKE) orcallator_run_at_boot_using_chkconfig -orca_services_run_at_boot: - cd data_gatherers/orca_services && $(MAKE) orca_services_run_at_boot +orca_services_run_at_boot_using_chkconfig: + cd data_gatherers/orca_services && $(MAKE) orca_services_run_at_boot_using_chkconfig -procallator_run_at_boot: - cd data_gatherers/procallator && $(MAKE) procallator_run_at_boot +procallator_run_at_boot_using_chkconfig: + cd data_gatherers/procallator && $(MAKE) procallator_run_at_boot_using_chkconfig clean: clean-recursive clean-local Modified: orca/trunk/data_gatherers/Makefile.in ============================================================================== --- orca/trunk/data_gatherers/Makefile.in (original) +++ orca/trunk/data_gatherers/Makefile.in Thu Sep 8 21:23:43 2005 @@ -29,14 +29,14 @@ test: check -orcallator_run_at_boot: - cd orcallator && $(MAKE) orcallator_run_at_boot +orcallator_run_at_boot_using_chkconfig: + cd orcallator && $(MAKE) orcallator_run_at_boot_using_chkconfig -orca_services_run_at_boot: - cd orca_services && $(MAKE) orca_services_run_at_boot +orca_services_run_at_boot_using_chkconfig: + cd orca_services && $(MAKE) orca_services_run_at_boot_using_chkconfig -procallator_run_at_boot: - cd procallator && $(MAKE) procallator_run_at_boot +procallator_run_at_boot_using_chkconfig: + cd procallator && $(MAKE) procallator_run_at_boot_using_chkconfig clean: clean-recursive clean-local Modified: orca/trunk/data_gatherers/orca_services/Makefile.in ============================================================================== --- orca/trunk/data_gatherers/orca_services/Makefile.in (original) +++ orca/trunk/data_gatherers/orca_services/Makefile.in Thu Sep 8 21:23:43 2005 @@ -68,7 +68,7 @@ $(INSTALL) -m 0644 orca_services.cfg $(DESTDIR)$(sysconfdir) || exit 1; \ fi -orca_services_run_at_boot: all +orca_services_run_at_boot_using_chkconfig: all test "$(INIT_D_DIR)" test "$(RCX_D_CONTAINING_DIR)" -$(RM) $(INIT_D_DIR)/orca_services Modified: orca/trunk/data_gatherers/orca_services/README ============================================================================== --- orca/trunk/data_gatherers/orca_services/README (original) +++ orca/trunk/data_gatherers/orca_services/README Thu Sep 8 21:23:43 2005 @@ -75,9 +75,10 @@ make make install - * if orca_services should run at boottime + If orca_services should run at boot time, for systems with chkconfig, + which are normally RedHat based systems, run - make orca_services_run_at_boot + make orca_services_run_at_boot_using_chkconfig Most of the skeleton code of orca_services comes from orcallator. So everything is very similar. Modified: orca/trunk/data_gatherers/orcallator/Makefile.in ============================================================================== --- orca/trunk/data_gatherers/orcallator/Makefile.in (original) +++ orca/trunk/data_gatherers/orcallator/Makefile.in Thu Sep 8 21:23:43 2005 @@ -66,7 +66,7 @@ $(INSTALL) -m 0644 orcallator.cfg $(DESTDIR)$(sysconfdir) || exit 1; \ fi -orcallator_run_at_boot: all +orcallator_run_at_boot_using_chkconfig: all test "$(INIT_D_DIR)" test "$(RCX_D_CONTAINING_DIR)" -$(RM) $(INIT_D_DIR)/orcallator Modified: orca/trunk/data_gatherers/procallator/Makefile.in ============================================================================== --- orca/trunk/data_gatherers/procallator/Makefile.in (original) +++ orca/trunk/data_gatherers/procallator/Makefile.in Thu Sep 8 21:23:43 2005 @@ -62,7 +62,7 @@ $(INSTALL) -m 0644 procallator.cfg $(DESTDIR)$(sysconfdir) || exit 1; \ fi -procallator_run_at_boot: all +procallator_run_at_boot_using_chkconfig: all test "$(INIT_D_DIR)" -$(RM) $(INIT_D_DIR)/procallator $(INSTALL) -m 0744 S99procallator $(INIT_D_DIR)/procallator From blair at orcaware.com Tue Sep 13 22:58:28 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Tue, 13 Sep 2005 22:58:28 -0700 Subject: [Orca-checkins] r493 - in orca/trunk: . data_gatherers Message-ID: <200509140558.j8E5wSs9004189@orca1.orcaware.com> Author: blair at orcaware.com Date: Tue Sep 13 22:57:23 2005 New Revision: 493 Modified: orca/trunk/INSTALL orca/trunk/Makefile.in orca/trunk/data_gatherers/Makefile.in orca/trunk/data_gatherers/orcallator/Makefile.in Log: Revert the portions of revision 492 where the target 'orcallator_run_at_boot' was renamed to 'orcallator_run_at_boot_using_chkconfig', since orcallator is Solaris specific and Solaris does not have chkconfig. * data_gatherers/Makefile.in, * data_gatherers/orcallator/Makefile.in, * Makefile.in (orcallator_run_at_boot): Renamed from orcallator_run_at_boot_using_chkconfig. * INSTALL, Update the documentation to use the original orcallator target name. Modified: orca/trunk/INSTALL ============================================================================== --- orca/trunk/INSTALL (original) +++ orca/trunk/INSTALL Tue Sep 13 22:57:23 2005 @@ -355,7 +355,7 @@ For systems with chkconfig, which are normally RedHat based ones, run - % make orcallator_run_at_boot_using_chkconfig + % make orcallator_run_at_boot from either the top of the Orca source tree or from the data_gatherers/orcallator directory. This will first delete Modified: orca/trunk/Makefile.in ============================================================================== --- orca/trunk/Makefile.in (original) +++ orca/trunk/Makefile.in Tue Sep 13 22:57:23 2005 @@ -28,8 +28,8 @@ install_contrib: cd contrib && $(MAKE) install_contrib -orcallator_run_at_boot_using_chkconfig: - cd data_gatherers/orcallator && $(MAKE) orcallator_run_at_boot_using_chkconfig +orcallator_run_at_boot: + cd data_gatherers/orcallator && $(MAKE) orcallator_run_at_boot orca_services_run_at_boot_using_chkconfig: cd data_gatherers/orca_services && $(MAKE) orca_services_run_at_boot_using_chkconfig Modified: orca/trunk/data_gatherers/Makefile.in ============================================================================== --- orca/trunk/data_gatherers/Makefile.in (original) +++ orca/trunk/data_gatherers/Makefile.in Tue Sep 13 22:57:23 2005 @@ -29,8 +29,8 @@ test: check -orcallator_run_at_boot_using_chkconfig: - cd orcallator && $(MAKE) orcallator_run_at_boot_using_chkconfig +orcallator_run_at_boot: + cd orcallator && $(MAKE) orcallator_run_at_boot orca_services_run_at_boot_using_chkconfig: cd orca_services && $(MAKE) orca_services_run_at_boot_using_chkconfig Modified: orca/trunk/data_gatherers/orcallator/Makefile.in ============================================================================== --- orca/trunk/data_gatherers/orcallator/Makefile.in (original) +++ orca/trunk/data_gatherers/orcallator/Makefile.in Tue Sep 13 22:57:23 2005 @@ -66,7 +66,7 @@ $(INSTALL) -m 0644 orcallator.cfg $(DESTDIR)$(sysconfdir) || exit 1; \ fi -orcallator_run_at_boot_using_chkconfig: all +orcallator_run_at_boot: all test "$(INIT_D_DIR)" test "$(RCX_D_CONTAINING_DIR)" -$(RM) $(INIT_D_DIR)/orcallator From blair at orcaware.com Thu Sep 15 21:03:59 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 15 Sep 2005 21:03:59 -0700 Subject: [Orca-checkins] r494 - orca/trunk/data_gatherers/procallator Message-ID: <200509160403.j8G43xdL002231@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 15 21:03:03 2005 New Revision: 494 Modified: orca/trunk/data_gatherers/procallator/Makefile.in Log: Ensure the $(CHKCONFIG) is set before using it. * data_gatherers/procallator/Makefile.in (procallator_run_at_boot_using_chkconfig): Before trying to do install procallator to start at boot time, ensure that $(CHKCONFIG) is set. Modified: orca/trunk/data_gatherers/procallator/Makefile.in ============================================================================== --- orca/trunk/data_gatherers/procallator/Makefile.in (original) +++ orca/trunk/data_gatherers/procallator/Makefile.in Thu Sep 15 21:03:03 2005 @@ -63,6 +63,7 @@ fi procallator_run_at_boot_using_chkconfig: all + test "$(CHKCONFIG)" test "$(INIT_D_DIR)" -$(RM) $(INIT_D_DIR)/procallator $(INSTALL) -m 0744 S99procallator $(INIT_D_DIR)/procallator From blair at orcaware.com Thu Sep 15 21:12:01 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 15 Sep 2005 21:12:01 -0700 Subject: [Orca-checkins] r495 - orca/trunk/data_gatherers/orcallator Message-ID: <200509160412.j8G4C1UQ002661@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 15 21:11:11 2005 New Revision: 495 Modified: orca/trunk/data_gatherers/orcallator/S99orcallator.sh.in Log: Better warning if a script is missing. * data_gatherers/orcallator/S99orcallator.sh.in If the stop_orcallator script does not exist or is not executable, then warn about it. Modified: orca/trunk/data_gatherers/orcallator/S99orcallator.sh.in ============================================================================== --- orca/trunk/data_gatherers/orcallator/S99orcallator.sh.in (original) +++ orca/trunk/data_gatherers/orcallator/S99orcallator.sh.in Thu Sep 15 21:11:11 2005 @@ -25,6 +25,8 @@ stop) if test -x $stop_orcallator; then $stop_orcallator + else + echo "$0: $stop_orcallator does not exist or is not executable." fi ;; From blair at orcaware.com Thu Sep 22 21:42:35 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 22 Sep 2005 21:42:35 -0700 Subject: [Orca-checkins] r496 - orca/trunk/data_gatherers/procallator Message-ID: <200509230442.j8N4gZM9008345@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 22 21:41:44 2005 New Revision: 496 Modified: orca/trunk/data_gatherers/procallator/procallator.pl.in Log: On a 2.6 kernel, procallator's cached memory statistic value (Cached in /proc/meminfo) gets clobbered by the regular expression match that also matches on SwapCached. Suggested by: John Coleman * data_gatherers/procallator/procallator.pl.in: Instead of using regular expressions to match the data in /proc/mmeminfo, split the fields out and then use eq. Modified: orca/trunk/data_gatherers/procallator/procallator.pl.in ============================================================================== --- orca/trunk/data_gatherers/procallator/procallator.pl.in (original) +++ orca/trunk/data_gatherers/procallator/procallator.pl.in Thu Sep 22 21:41:44 2005 @@ -459,32 +459,27 @@ } else { while ( $line = ) { - if ( $line =~ /MemTotal/ ) { - ( $dumb, $mem_total ) = split / +/, $line; - } - if ( $line =~ /MemFree/ ) { - ( $dumb, $mem_free ) = split / +/, $line; - } - if ( $line =~ /Buffers/ ) { - ( $dumb, $mem_buff ) = split / +/, $line; - } - if ( $line =~ /Cached/ ) { - ( $dumb, $mem_cchd ) = split / +/, $line; - } - if ( $line =~ /Shared/ ) { - ( $dumb, $mem_shrd ) = split / +/, $line - ; # It does not exist anymore -- maybe get will have to get from /proc/sysvipc/shm ? - } - - #if ( $line=~/SwapCached/) { - # ($dumb, $mem_swpcchd)= split / +/,$line; - #} - if ( $line =~ /SwapTotal/ ) { - ( $dumb, $swp_total ) = split / +/, $line; - } - if ( $line =~ /SwapFree/ ) { - ( $dumb, $swp_free ) = split / +/, $line; - } + ( $dumb, $value ) = split / +/, $line; + if ( $dumb eq 'MemTotal:' ) { + $mem_total = $value; + } elsif ( $dumb eq 'MemFree:' ) { + $mem_free = $value; + } elsif ( $dumb eq 'Buffers:' ) { + $mem_buff = $value; + } elsif ( $dumb eq 'Cached:' ) { + $mem_cchd = $value; + } elsif ( $dumb eq 'Shared:' ) { + # It does not exist anymore -- maybe get will have to + # get from /proc/sysvipc/shm? + $mem_shrd = $value; + } elsif ( $dumb eq 'SwapTotal:' ) { + $swp_total = $value; + } elsif ( $dumb eq 'SwapFree:' ) { + $swp_free = $value; + } + # elsif ( $dump eq 'SwapCached:' ) { + # $mem_swpcchd = $value; + # } } $mem_used = $mem_total - $mem_free; $swp_used = $swp_total - $swp_free; From blair at orcaware.com Thu Sep 22 22:13:19 2005 From: blair at orcaware.com (blair at orcaware.com) Date: Thu, 22 Sep 2005 22:13:19 -0700 Subject: [Orca-checkins] r497 - orca/trunk/data_gatherers/procallator Message-ID: <200509230513.j8N5DJ8B010381@orca1.orcaware.com> Author: blair at orcaware.com Date: Thu Sep 22 22:12:30 2005 New Revision: 497 Modified: orca/trunk/data_gatherers/procallator/procallator.pl.in Log: Declare all variables in procallator so that 'use strict' can be used. Tweak the patch to not 'use diagnostics'. Patch by: Frank Torres Tweaked by: Blair Zajac * data_gatherers/procallator/procallator.pl.in: Declare all variables with my at global scope. This is a great first step in having variables declared in the scope they are used. Use strict. Remove the #!/usr/bin/perl -w at the top of the file, as this is prepended to the file by the Makefile. Modified: orca/trunk/data_gatherers/procallator/procallator.pl.in ============================================================================== --- orca/trunk/data_gatherers/procallator/procallator.pl.in (original) +++ orca/trunk/data_gatherers/procallator/procallator.pl.in Thu Sep 22 22:12:30 2005 @@ -1,5 +1,3 @@ -#!/usr/bin/perl -w -# # Performance statistics collector for /proc statistics for use with # Linux 2.2, 2.4 & 2.6 kernels. # @@ -25,32 +23,120 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. +use strict; + use Sys::Hostname; # Config variables. -$PROC = "@PROC_DIR@"; # Proc directory, usually /proc -$INTERVAL = 300; # Interval between each measure, in seconds +my $PROC = "@PROC_DIR@"; # Proc directory, usually /proc +my $INTERVAL = 300; # Interval between each measure, in seconds -$COMPRESS = "@COMPRESSOR@"; # Compressor... -$COMPRESS = "@GZIP@" if $COMPRESS eq ""; # Get a default +my $COMPRESS = "@COMPRESSOR@"; # Compressor... +$COMPRESS = "@GZIP@" unless length $COMPRESS; # Get a default -$HOSTNAME = hostname; -$DEST_DIR = +my $HOSTNAME = hostname; +my $DEST_DIR = "@VAR_DIR@/procallator/$HOSTNAME"; # Destination dir for output files -#$DEST_DIR="/tmp"; # Destination dir for output files -# # Output Options -$NFS_PROTO_DETAILS = 0; # Include per NFS per protocol versions stats on output +# Include per NFS per protocol versions stats on output +my $NFS_PROTO_DETAILS = 0; # Initializations -$DEBUG = 0; -$r = 0; # Rotating index for measuring counter differences -$rate_ok = 0; # Check if is ok to calculate rates -$num = 0; # Serial number of output file -$n_cols[0] = 0; -$n_cols[1] = 0; +my $DEBUG = 0; +my $r = 0; # Rotating index for measuring counter differences +my $rate_ok = 0; # Check if is ok to calculate rates +my $num = 0; # Serial number of output file +my @n_cols; + +# +# Initializations. +# + +# This section only contains scalars. Also all scalars are undefined. +my ($i, $j); +my ($os, $line, $version, $isdst, $dumb); +my ($n_nets, $n_dsk, $line2, $cat, $net_parms, $n_fs, $cpu); + +# This section contains time based scalars. +my ($sec, $min, $hour, $mday, $mon, $year, $yday); +my ($locltime, $uptime); + +# This section deals with runq/proc. +my ($runq_1, $runq_5, $runq_15, $proc_run); +my ($n_cpus, $last_pid, $proc_block); + +# This section deals with memory. +my ($mem_total, $mem_used, $mem_free, $mem_shrd, $mem_buff); +my ($mem_cchd, $swp_total, $swp_used, $swp_free); + +# This section contains arrays. +my (@df, @fs, @out_filename, @out); +my (@timestamp, @yday, @procs, @cpu, @usr, @nice, @sys); +my (@idle, @wait, @hi, @si, @total, @dumb, @dumb2); +my (@name, @rdops, @rdops_seq, @rdsct, @rdtm, @wrops); +my (@wrops_seq, @wrsct, @wrtm, @ioqueue, @iotm); + +# This section is disk related. +my (@dsk, @dsk_rio_t, @dsk_wio_t, @page_in, @page_out); +my (@dsk_stat_t, @dsk_rblk_t, @dsk_wblk_t); +my (@dsk_maj, @dsk_min, @dsk_stat, @dsk_rio, @dsk_rblk); +my (@dsk_wio, @dsk_wblk); + +# This section is memory/cpu related. +my (@swap_in, @swap_out, @ctxt, @intr); +my (@usr_100, @nice_100, @sys_100, @idle_100, @wait_100); +my (@weightiotm, @ops_seq); + +# This section looks to be ifconfig/nic. +my (@if_name, @if_in_b, @if_in_p); +my (@if_in_e, @if_in_d, @if_in_ff, @if_in_fr, @if_in_c); +my (@if_in_m, @if_out_b, @if_out_p, @if_out_e, @if_out_d); +my (@if_out_ff, @if_out_cl, @if_out_ca, @if_out_cp); +my (@net_parm, @nfs_c_rpc_calls, @nfs_c_rpc_retrs); +my (@nfs_c_rpc_auth, @nfs_c_p2_getattr); +my (@nfs_c_p2_setattr, @nfs_c_p2_root, @nfs_c_p2_lookup); +my (@nfs_c_p2_readlink, @nfs_c_p2_read); +my (@nfs_c_p2_wrcache, @nfs_c_p2_write, @nfs_c_p2_create); +my (@nfs_c_p2_remove, @nfs_c_p2_rename, @nfs_c_p2_link); +my (@nfs_c_p2_symlink, @nfs_c_p2_mkdir, @nfs_c_p2_rmdir); +my (@nfs_c_p2_readdir, @nfs_c_p2_fsstat); +my (@nfs_c_p3_getattr, @nfs_c_p3_setattr); +my (@nfs_c_p3_lookup, @nfs_c_p3_access); +my (@nfs_c_p3_readlink, @nfs_c_p3_read, @nfs_c_p3_write); +my (@nfs_c_p3_create, @nfs_c_p3_mkdir, @nfs_c_p3_symlink); +my (@nfs_c_p3_mknod, @nfs_c_p3_remove, @nfs_c_p3_rmdir); +my (@nfs_c_p3_rename, @nfs_c_p3_link, @nfs_c_p3_readdir); +my (@nfs_c_p3_readdirplus, @nfs_c_p3_fsstat); +my (@nfs_c_p3_fsinfo, @nfs_c_p3_pathconf); +my (@nfs_c_p3_commit, @nfs_c_p4_getattr); +my (@nfs_c_p4_setattr, @nfs_c_p4_lookup); +my (@nfs_c_p4_access, @nfs_c_p4_readlink, @nfs_c_p4_read); +my (@nfs_c_p4_write, @nfs_c_p4_create, @nfs_c_p4_mkdir); +my (@nfs_c_p4_symlink, @nfs_c_p4_mknod, @nfs_c_p4_remove); +my (@nfs_c_p4_rmdir, @nfs_c_p4_rename, @nfs_c_p4_link); +my (@nfs_c_p4_readdir, @nfs_c_p4_readdirplus); +my (@nfs_c_p4_fsstat, @nfs_c_p4_fsinfo); +my (@nfs_c_p4_pathconf, @nfs_c_p4_commit); +my (@nfs_s_rpc_calls, @nfs_s_rpc_badcalls); +my (@nfs_s_rpc_badauth, @nfs_s_rpc_badclnt); +my (@nfs_s_rpc_xdrcall, @nfs_s_p2_getattr); +my (@nfs_s_p2_setattr, @nfs_s_p2_root, @nfs_s_p2_lookup); +my (@nfs_s_p2_readlink, @nfs_s_p2_read); +my (@nfs_s_p2_wrcache, @nfs_s_p2_write, @nfs_s_p2_create); +my (@nfs_s_p2_remove, @nfs_s_p2_rename, @nfs_s_p2_link); +my (@nfs_s_p2_symlink, @nfs_s_p2_mkdir, @nfs_s_p2_rmdir); +my (@nfs_s_p2_readdir, @nfs_s_p2_fsstat); +my (@nfs_s_p3_getattr, @nfs_s_p3_setattr); +my (@nfs_s_p3_lookup, @nfs_s_p3_access); +my (@nfs_s_p3_readlink, @nfs_s_p3_read, @nfs_s_p3_write); +my (@nfs_s_p3_create, @nfs_s_p3_mkdir, @nfs_s_p3_symlink); +my (@nfs_s_p3_mknod, @nfs_s_p3_remove, @nfs_s_p3_rmdir); +my (@nfs_s_p3_rename, @nfs_s_p3_link, @nfs_s_p3_readdir); +my (@nfs_s_p3_readdirplus, @nfs_s_p3_fsstat); +my (@nfs_s_p3_fsinfo, @nfs_s_p3_pathconf); +my (@nfs_s_p3_commit, @nfs_s_p4_compound); if ( !$DEBUG ) { use POSIX qw(setsid); @@ -459,6 +545,7 @@ } else { while ( $line = ) { + my $value; ( $dumb, $value ) = split / +/, $line; if ( $dumb eq 'MemTotal:' ) { $mem_total = $value;