Hi Michael:

Just updated ganglia.spec.in -- if you can please send me a patch
against it, that would be great!

Thanks,

Bernard

On 4/4/07, Bernard Li <[EMAIL PROTECTED]> wrote:
Hi Michael:

Just a heads up -- hopefully I'll check in Marcus' patch for
ganglia.spec.in tonight -- you might want to wait for that otherwise
you may potentially get conflicts for your patch.

Thanks,

Bernard

On 4/3/07, Bernard Li <[EMAIL PROTECTED]> wrote:
> Great, once you have a patch, I will review it and check it into the
> repo...  hopefully along with Marcus' patches which has been sitting
> in bugzilla for a while...
>
> Cheers,
>
> Bernard
>
> On 4/3/07, Michael Perzl <[EMAIL PROTECTED]> wrote:
> > Hi Bernard,
> >
> > you are right with ppc and ppc64 for Linux on PowerPC. Therefore, I am
> > currently experiencing with "%ifos aix" etc. and I will let you know if
> > this works better.
> >
> > I will also add an entry to %changelog as well as provide you with the
> > context diff as requested in your other email once the SPEC seems works
> > reliably... I will keep you posted.
> >
> > Regards,
> > Michael
> >
> > Bernard Li wrote:
> > > Hi Michael:
> > >
> > > Quick comment -- you used "%ifarch ppc" to specify operations for AIX,
> > > however, doesn't Linux also support ppc?  I know that for the newer
> > > PowerPC the arch is ppc64, not sure about the older ones though.
> > >
> > > P.S. Please also add an entry for %changelog.
> > >
> > > Thanks,
> > >
> > > Bernard
> > >
> > > On 4/2/07, Michael Perzl <[EMAIL PROTECTED]> wrote:
> > >> Hi Bernard,
> > >>
> > >> ok, here you go.... the SPEC file as attachment.
> > >>
> > >> Some remarks still:
> > >>
> > >> a) Lines #39-#41 I couldn't get RPM v3.0.5 on AIX get to understand that
> > >> "%if" directive, also when I googled I think that the "%if" statement is
> > >> not supported with RPM v.3.05, so I commented those 3 lines for the
> > >> moment.
> > >> b) Line #387 ("%config(noreplace) %{web_prefixdir}/conf.php") gave me
> > >> always "file listed twice" RPM errors so I commented it for the moment.
> > >>
> > >> Regards,
> > >> Michael
> > >>
> > >> Bernard Li wrote:
> > >> > Hi Michael:
> > >> >
> > >> > Filing a bug and attaching the patch would be nice.  Or you could just
> > >> > post it here.
> > >> >
> > >> > Thanks,
> > >> >
> > >> > Bernard
> > >> >
> > >> > On 4/2/07, Michael Perzl <[EMAIL PROTECTED]> wrote:
> > >> >> Hi Bernard,
> > >> >>
> > >> >> I now have a consolidated SPEC file (I think it is ugly :-) ), so
> > >> how do
> > >> >> you want me to send it to you (I guess not posting to the mailing
> > >> list
> > >> >> :-) ) ?
> > >> >>
> > >> >> Regards,
> > >> >> Michael
> > >> >>
> > >> >> Bernard Li wrote:
> > >> >> > Hi Michael:
> > >> >> >
> > >> >> > Thanks for looking into this.  Yes, I am aware the spec file may
> > >> get
> > >> >> > bloated but I think ultimately this will be better for one (or more
> > >> >> > person) to manage (as opposed to managing multiple files).
> > >> >> >
> > >> >> > What do other devs/users think?
> > >> >> >
> > >> >> > BTW, I'm cc: Marcus to see if he has any specific insights on
> > >> this :-)
> > >> >> >
> > >> >> > Cheers,
> > >> >> >
> > >> >> > Bernard
> > >> >> >
> > >> >> > On 4/2/07, Michael Perzl <[EMAIL PROTECTED]> wrote:
> > >> >> >> Hi Bernard,
> > >> >> >>
> > >> >> >> I took a closer look and though I think it could be done it
> > >> might be
> > >> >> >> very ugly for the following reasons:
> > >> >> >>
> > >> >> >> - AIX is still using RPM version 3.0.5 and I am not aware of any
> > >> >> >> intentions to upgrade anytime soon
> > >> >> >> - Like I said I think it could be consolidated, however, that
> > >> would
> > >> >> >> probably require tons of "%ifarch ppc" and "%ifnarch ppc" defines
> > >> >> which
> > >> >> >> would make the SPEC file rather hard to read
> > >> >> >> - AIX RPM is installing all the software under the /opt/freeware
> > >> >> >> directory hierarchy (to better distinguish from the AIX base
> > >> >> filesets),
> > >> >> >> therefore lots of different file locations in the SPEC file would
> > >> >> have
> > >> >> >> to "ifdef'ed" as mentioned above.
> > >> >> >> - All the Linux specific stuff like "chkconfig" would have to be
> > >> >> >> "%ifdef'ed" appropriately.
> > >> >> >>
> > >> >> >> A quick solution would probably to just rename the committed
> > >> >> >> ganglia.aix.spec to maybe ganglia.spec.aix so your rpmbuild
> > >> command
> > >> >> >> doesn't get mixed up.
> > >> >> >>
> > >> >> >> I'll give it a try and see how far I get along but the end result
> > >> >> might
> > >> >> >> be ugly :-)
> > >> >> >>
> > >> >> >> Regards,
> > >> >> >> Michael
> > >> >> >>
> > >> >> >> Bernard Li wrote:
> > >> >> >> > Hi Michael:
> > >> >> >> >
> > >> >> >> > Any chance you can also work on merging the ganglia.aix.spec
> > >> >> file back
> > >> >> >> > to the mainstream .spec file?  I'm about to change
> > >> configure.in to
> > >> >> >> > only include the specific spec file depending on the OS, but I
> > >> >> think
> > >> >> >> > the better solution is just to merge the two.  Right now I
> > >> >> cannot just
> > >> >> >> > generate the distribution tarball and run 'rpmbuild -ta' since
> > >> >> there
> > >> >> >> > are 2 spec files.
> > >> >> >> >
> > >> >> >> > Thanks in advance,
> > >> >> >> >
> > >> >> >> > Bernard
> > >> >> >> >
> > >> >> >> > On 4/2/07, Michael Perzl <[EMAIL PROTECTED]> wrote:
> > >> >> >> >>
> > >> >> >> >>  Hi Martin,
> > >> >> >> >>
> > >> >> >> >>  if possible I would like to somehow take my version (after
> > >> some
> > >> >> >> >> reviewing)
> > >> >> >> >> :-)    , as it contains all the new POWER5 stuff already.
> > >> >> >> >>
> > >> >> >> >>  My understanding is - as it would require some changes to
> > >> >> protocol.x
> > >> >> >> >> - that
> > >> >> >> >> my changes won't have a chance to get into the core Ganglia
> > >> source
> > >> >> >> code
> > >> >> >> >> until version 3.1 comes along.
> > >> >> >> >>
> > >> >> >> >>  This code and everything else (RPMs) can be found on my
> > >> website
> > >> >> >> >> http://www.perzl.org/ganglia/.
> > >> >> >> >>
> > >> >> >> >>  This stuff is actually in use at quite many customer sites
> > >> >> already
> > >> >> >> >> (runs on
> > >> >> >> >> AIX 4.3.3, 5.1, 5.2 and 5.3) so I would like to keep that
> > >> >> >> >> POWER5-stuff in if
> > >> >> >> >> possible. Actually, an AIX gmond implementation without the
> > >> >> >> POWER5-stuff
> > >> >> >> >> based on my implementation could be done very easy (just
> > >> stripping
> > >> >> >> >> off the
> > >> >> >> >> POWER5-addons).
> > >> >> >> >>
> > >> >> >> >>  Regards,
> > >> >> >> >>  Michael
> > >> >> >> >>
> > >> >> >> >>  Martin Knoblauch wrote:
> > >> >> >> >>  Michael, Andreas,
> > >> >> >> >>
> > >> >> >> >>  any chance that you could consolidate the two versions of
> > >> the AIX
> > >> >> >> >> metrics that seem to be around? Seem you are the ones who have
> > >> >> worked
> > >> >> >> >> most recently on the AIX implementation.
> > >> >> >> >>
> > >> >> >> >> Cheers
> > >> >> >> >> Martin
> > >> >> >> >>
> > >> >> >> >> --- Michael Perzl <[EMAIL PROTECTED]> wrote:
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  Andreas,
> > >> >> >> >>
> > >> >> >> >> thank you for taking the blame but you are off the hook
> > >> here. ;-)
> > >> >> >> >>
> > >> >> >> >> If I understood David correctly, he is using my AIX Ganglia RPM
> > >> >> >> >> packages
> > >> >> >> >> with POWER5 extensions. Here most if not all implementation
> > >> of how
> > >> >> >> >> the
> > >> >> >> >> metrics are collected under AIX have been changed.
> > >> Everything is
> > >> >> >> >> documented on my homepage (http://www.perzl.org/ganglia/)
> > >> though.
> > >> >> >> >> So everything what goes wrong here is entiremy my fault :-[
> > >> >> >> >>
> > >> >> >> >> After some investigating and some discussions with Nigel I have
> > >> >> come
> > >> >> >> >> to
> > >> >> >> >> terms with the following facts regarding the bytes_in/bytes_out
> > >> >> >> >> problem:
> > >> >> >> >> - libperfstat (the library on AIX which obtains all the system
> > >> >> >> >> performance data) uses u_longlong_t data types (these are
> > >> >> definitely
> > >> >> >> >> 64-bit large).
> > >> >> >> >> - The AIX kernel internally, though, may probably not be using
> > >> >> 64-bit
> > >> >> >> >>
> > >> >> >> >> data types - more realistic is probably unsigned 32-bit - in
> > >> order
> > >> >> >> >> not
> > >> >> >> >> to break compatibility (my personal opinion)
> > >> >> >> >> - The consequence now is that integer overrun may occur much
> > >> >> easier
> > >> >> >> >> with
> > >> >> >> >> 32-bit data types than with 64-bit data types (we all probably
> > >> >> don't
> > >> >> >> >> live long enough to see that happen).
> > >> >> >> >>
> > >> >> >> >> Please take a look at my implementation of the bytes_in metric
> > >> >> (the
> > >> >> >> >> bytes_out implementation is accordingly):
> > >> >> >> >>
> > >> >> >> >> 01 g_val_t
> > >> >> >> >> 02 bytes_in_func( void )
> > >> >> >> >> 03 {
> > >> >> >> >> 04 g_val_t val;
> > >> >> >> >> 05 perfstat_netinterface_total_t n;
> > >> >> >> >> 06 static u_longlong_t last_bytes_in = 0, bytes_in;
> > >> >> >> >> 07 static double last_time = 0.0;
> > >> >> >> >> 08 double now, delta_t;
> > >> >> >> >> 09 struct timeval timeValue;
> > >> >> >> >> 10 struct timezone timeZone;
> > >> >> >> >> 11
> > >> >> >> >> 12 gettimeofday( &timeValue, &timeZone );
> > >> >> >> >> 13
> > >> >> >> >> 14 now = (double) (timeValue.tv_sec - boottime) +
> > >> >> >> >> (timeValue.tv_usec
> > >> >> >> >> / 1000000.0);
> > >> >> >> >> 15
> > >> >> >> >> 16 if (perfstat_netinterface_total( NULL, &n, sizeof(
> > >> >> >> >> perfstat_netinterface_total_t ), 1 ) == -1)
> > >> >> >> >> 17 val.f = 0.0;
> > >> >> >> >> 18 else
> > >> >> >> >> 19 {
> > >> >> >> >> 20 bytes_in = n.ibytes;
> > >> >> >> >> 21
> > >> >> >> >> 22 delta_t = now - last_time;
> > >> >> >> >> 23
> > >> >> >> >> 24 if ( delta_t )
> > >> >> >> >> 25 val.f = (double) (bytes_in - last_bytes_in) / delta_t;
> > >> >> >> >> 26 else
> > >> >> >> >> 27 val.f = 0.0;
> > >> >> >> >> 28
> > >> >> >> >> 29 last_bytes_in = bytes_in;
> > >> >> >> >> 30 }
> > >> >> >> >> 31
> > >> >> >> >> 32 last_time = now;
> > >> >> >> >> 33
> > >> >> >> >> 34 return( val );
> > >> >> >> >> 35 }
> > >> >> >> >>
> > >> >> >> >> In my opinion the overrun occurs in line #25 when "bytes_in <
> > >> >> >> >> last_bytes_in".
> > >> >> >> >> In my naivity I had assumed as both are of type u_longlong_t
> > >> >> that an
> > >> >> >> >> integer overrun might never happen.
> > >> >> >> >>
> > >> >> >> >> So to solve the overrun a check for "bytes_in < last_bytes_in"
> > >> >> must
> > >> >> >> >> be
> > >> >> >> >> introduced, something like:
> > >> >> >> >>
> > >> >> >> >> u_longlong_t d;
> > >> >> >> >> d = bytes_in - last_bytes_in;
> > >> >> >> >> if (d < 0) d += ULONG_MAX;
> > >> >> >> >>
> > >> >> >> >> and line #25 would essentially become
> > >> >> >> >> 25 val.f = (double) d / delta_t;
> > >> >> >> >>
> > >> >> >> >> Comments ?
> > >> >> >> >>
> > >> >> >> >> Regards,
> > >> >> >> >> Michael
> > >> >> >> >>
> > >> >> >> >> PS: David, the reason why you don't see it happen with
> > >> pkts_in and
> > >> >> >> >> pkts_out is that probably no overrun so far has occurred but at
> > >> >> some
> > >> >> >> >> point it will also happen.
> > >> >> >> >>
> > >> >> >> >> PPS: David, if this is a solution (I want some comments on that
> > >> >> >> >> before,
> > >> >> >> >> though) then I would be building new RPMs with the then
> > >> hopefully
> > >> >> >> >> correct code.
> > >> >> >> >>
> > >> >> >> >> Andreas Schoenfeld wrote:
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  Hi David and Martin,
> > >> >> >> >>
> > >> >> >> >> I suppose the network code is still the code I wrote, so
> > >> there are
> > >> >> >> >>
> > >> >> >> >>  two
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  problems I know of:
> > >> >> >> >> 1. yes there is a problem with owerflows
> > >> >> >> >> 2. the shown network traffic is the sum of all network
> > >> interfaces
> > >> >> >> >> including local loopback devices (lo0...).
> > >> >> >> >>
> > >> >> >> >> Both Problems could lead to astonishing data transfer rate in
> > >> >> >> >>
> > >> >> >> >>  ganglia.
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  Sorry I had promised to fix the problems, but there was to
> > >> much
> > >> >> >> >>
> > >> >> >> >>  other
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  work ...
> > >> >> >> >>
> > >> >> >> >> Best regards
> > >> >> >> >>  Andreas
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  Date: Thu, 29 Mar 2007 08:21:38 -0700 (PDT)
> > >> >> >> >> From: Martin Knoblauch <[EMAIL PROTECTED]>
> > >> >> >> >> Subject: Re: [Ganglia-general] Help! I have a petabyte/s
> > >> network
> > >> >> >> >> To: David Wong <[EMAIL PROTECTED]>,
> > >> >> >> >>
> > >> >> >> >>  [EMAIL PROTECTED],
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  [EMAIL PROTECTED]
> > >> >> >> >> Message-ID: <[EMAIL PROTECTED]>
> > >> >> >> >> Content-Type: text/plain; charset=iso-8859-1
> > >> >> >> >>
> > >> >> >> >> David,
> > >> >> >> >>
> > >> >> >> >>  good catch. I will have to look at it for a bit.
> > >> >> >> >>
> > >> >> >> >> Cheers
> > >> >> >> >> Martin
> > >> >> >> >> --- David Wong <[EMAIL PROTECTED]> wrote:
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  I don't write much code nowadays, so I'm going to need a
> > >> lot of
> > >> >> >> >>
> > >> >> >> >>  help
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  with this.
> > >> >> >> >>
> > >> >> >> >> I dug through the ganglia code and I found this interesting
> > >> >> >> >>
> > >> >> >> >>  tidbit in
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  libmetrics/aix/metrics.c which may be indicative of the
> > >> problem.
> > >> >> >> >>
> > >> >> >> >> There's an assignment from cur_ninfo.ibytes to
> > >> >> >> >>
> > >> >> >> >>  cur_net_stat.ibytes,
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  but
> > >> >> >> >> the types of the two variables are different.
> > >> >> >> >>
> > >> >> >> >> net_stat::ibytes is a double:
> > >> >> >> >>
> > >> >> >> >> struct net_stat{
> > >> >> >> >>  double ipackets;
> > >> >> >> >>  double opackets;
> > >> >> >> >>  double ibytes;
> > >> >> >> >>  double obytes;
> > >> >> >> >> } cur_net_stat;
> > >> >> >> >>
> > >> >> >> >> and we have *ninfo declared here:
> > >> >> >> >>
> > >> >> >> >> perfstat_netinterface_total_t ninfo[2],*last_ninfo,
> > >> *cur_ninfo ;
> > >> >> >> >>
> > >> >> >> >> libperfstat.h has perfstat_netinterface_total_t::ibytes as
> > >> >> >> >> u_longlong_t.
> > >> >> >> >>
> > >> >> >> >> Does this code try to do what I think it is doing, i.e. assign
> > >> >> >> >>
> > >> >> >> >>  an
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  unsigned 64 bit integer to a signed 64bit integer?
> > >> >> >> >>
> > >> >> >> >> I'm willing to test the code if someone who's more adept at
> > >> >> >> >>
> > >> >> >> >>  coding
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  and
> > >> >> >> >> building will take on the challenge.
> > >> >> >> >>
> > >> >> >> >> It looks to me that the type mismatch will have to fixed in a
> > >> >> >> >>
> > >> >> >> >>  few
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  places, such as CALC_NETSTAT, and we'll have to add an
> > >> unsigned
> > >> >> >> >>
> > >> >> >> >>  long
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>  long to g_val_t too. Those are the ones I can see so far.
> > >> >> >> >>
> > >> >> >> >> David Wong
> > >> >> >> >> Senior Systems Engineer
> > >> >> >> >> Management Dynamics, Inc.
> > >> >> >> >> Phone: 201-804-6127
> > >> >> >> >> [EMAIL PROTECTED]
> > >> >> >> >>
> > >> >> >> >> -----Original Message-----
> > >> >> >> >> From: Martin Knoblauch [mailto:[EMAIL PROTECTED]
> > >> >> >> >> Sent: Wednesday, March 28, 2007 12:00 PM
> > >> >> >> >> To: David Wong; [EMAIL PROTECTED]
> > >> >> >> >> Subject: Re: [Ganglia-general] Help! I have a petabyte/s
> > >> network
> > >> >> >> >>
> > >> >> >> >> David,
> > >> >> >> >>
> > >> >> >> >>  as far as I remember, the AIX metrics code had an
> > >> >> >> >> overflow/wrap-around
> > >> >> >> >> problem prior to 3.0.4. Maybe the fixes are not thorough
> > >> enough.
> > >> >> >> >>
> > >> >> >> >>  The packets/sec are of course less affected.
> > >> >> >> >>
> > >> >> >> >> Cheers
> > >> >> >> >> Martin
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >> ------------------------------------------------------
> > >> >> >> >> Martin Knoblauch
> > >> >> >> >> email: k n o b i AT knobisoft DOT de
> > >> >> >> >> www: http://www.knobisoft.de
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >>
> > >> >>
> > >> -------------------------------------------------------------------------
> > >>
> > >> >>
> > >> >> >>
> > >> >> >> >>
> > >> >> >> >> Take Surveys. Earn Cash. Influence the Future of IT
> > >> >> >> >> Join SourceForge.net's Techsay panel and you'll get the
> > >> chance to
> > >> >> >> >> share your
> > >> >> >> >> opinions on IT & business topics through brief surveys-and earn
> > >> >> cash
> > >> >> >> >>
> > >> >> >>
> > >> >>
> > >> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> > >>
> > >> >>
> > >> >> >>
> > >> >> >> >>
> > >> >> >> >> _______________________________________________
> > >> >> >> >> Ganglia-developers mailing list
> > >> >> >> >> Ganglia-developers@lists.sourceforge.net
> > >> >> >> >> https://lists.sourceforge.net/lists/listinfo/ganglia-developers
> > >> >> >> >>
> > >> >> >> >>
> > >> >> >> >
> > >> >> >>
> > >> >> >
> > >> >>
> > >> >
> > >>
> > >> #
> > >> # $Id: ganglia.spec.in 689 2006-12-01 14:05:16Z efocht $
> > >> #
> > >> # ganglia.spec.  Generated from ganglia.spec.in by configure.
> > >> #
> > >> # IMPORTANT NOTE:
> > >> # This spec file has a noarch section.  RPM is braindead in that it
> > >> cannot
> > >> # build mixed architecture packages.  As a workaround, you must build
> > >> # the RPMs using the following commandline
> > >> #
> > >> # % rpmbuild -ta --target noarch,i386 ganglia-3.0.4.tar.gz
> > >> #
> > >> Summary: Ganglia Distributed Monitoring System
> > >> Name: ganglia
> > >> Version: 3.0.4
> > >> URL: http://ganglia.info/
> > >> Release: 1
> > >> License: BSD
> > >> Vendor: Ganglia Development Team
> > >> <ganglia-developers@lists.sourceforge.net>
> > >> Group: System Environment/Base
> > >>
> > >> Source: %{name}-%{version}.tar.gz
> > >> %ifarch ppc
> > >> Source1: gmond.aix.init
> > >> Source2: gmetad.aix.init
> > >> %endif
> > >>
> > >> Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root
> > >>
> > >> %ifarch ppc
> > >> Prefix: /opt/freeware
> > >> %else
> > >> Prefix: /usr
> > >> %endif
> > >>
> > >> %ifnarch noarch
> > >> %ifnarch ppc
> > >> BuildRequires: libpng-devel, libart_lgpl-devel, gcc-c++
> > >> ##%if %{?suse_version:1}0
> > >> ##BuildRequires: rrdtool, freetype2-devel
> > >> ##%endif
> > >> %endif
> > >> %ifarch ppc
> > >> BuildRequires: rrdtool-devel
> > >> %else
> > >> BuildRequires: rrdtool-devel, freetype-devel
> > >> %endif
> > >> %endif
> > >>
> > >> %description
> > >> Ganglia is a scalable, real-time monitoring and execution environment
> > >>
> > >> ######################################################################
> > >> ################## noarch section ####################################
> > >> ######################################################################
> > >> %ifarch noarch
> > >> %package web
> > >> Summary: Ganglia Web Frontend
> > >> Group: System Environment/Base
> > >> Obsoletes: ganglia-webfrontend
> > >> Provides: ganglia-webfrontend
> > >> # We should put rrdtool as a Requires too but rrdtool rpm support is
> > >> very weak
> > >> # so most people install from source
> > >> #Requires: ganglia-gmetad >=  3.0.4
> > >> %define web_prefixdir /var/www/html/ganglia
> > >> Prefix: %{web_prefixdir}
> > >>
> > >> %description web
> > >> This package provides a web frontend to display the XML tree
> > >> published by
> > >> ganglia, and to provide historical graphs of collected metrics. This
> > >> website is
> > >> written in the PHP4 language.
> > >>
> > >> #######################################################################
> > >> #######################################################################
> > >> %else
> > >>
> > >> %package gmetad
> > >> Summary: Ganglia Meta daemon http://ganglia.sourceforge.net/
> > >> Group: System Environment/Base
> > >> Obsoletes: ganglia-monitor-core-gmetad ganglia-monitor-core
> > >>
> > >> %description gmetad
> > >> Ganglia is a scalable, real-time monitoring and execution environment
> > >> with all execution requests and statistics expressed in an open
> > >> well-defined XML format.
> > >>
> > >> This gmetad daemon aggregates monitoring data from several clusters
> > >> to form a monitoring grid. It also keeps metric history using rrdtool.
> > >>
> > >> %package gmond
> > >> Summary: Ganglia Monitor daemon http://ganglia.sourceforge.net/
> > >> Group: System Environment/Base
> > >> Obsoletes: ganglia-monitor-core-gmond ganglia-monitor-core
> > >>
> > >> %description gmond
> > >> Ganglia is a scalable, real-time monitoring and execution environment
> > >> with all execution requests and statistics expressed in an open
> > >> well-defined XML format.
> > >>
> > >> This gmond daemon provides the ganglia service within a single
> > >> cluster or
> > >> Multicast domain.
> > >>
> > >> %package devel
> > >> Summary: Ganglia Library http://ganglia.sourceforge.net/
> > >> Group: System Environment/Base
> > >> Obsoletes: ganglia-monitor-core-lib
> > >>
> > >> %description devel
> > >> The Ganglia Monitoring Core library provides a set of functions that
> > >> programmers
> > >> can use to build scalable cluster or grid applications
> > >>
> > >> %endif
> > >>
> > >> ##
> > >> ## PREP
> > >> ##
> > >>
> > >> %prep
> > >> %setup
> > >>
> > >> ##
> > >> ## BUILD
> > >> ##
> > >> %build
> > >> %ifarch x86_64
> > >> ./configure --prefix=/usr --with-gmetad --libdir=/usr/lib64
> > >> %endif
> > >> %ifarch ppc
> > >> export CC=xlc_r
> > >> export CFLAGS="-O"
> > >> ./configure --prefix=/opt/freeware --disable-shared --enable-static
> > >> CFLAGS="-I/opt/freeware/include" CPPFLAGS="-I/opt/freeware/include"
> > >> LDFLAGS="-L/opt/freeware/lib" --with-gmetad
> > >> make
> > >> ## this is necessary to get around the stupid gmetad shared library
> > >> link to expa
> > >> t
> > >> cd srclib/expat
> > >> make clean
> > >> ./configure --prefix=/opt/freeware --disable-shared --enable-static
> > >> cd ../..
> > >> cd gmetad
> > >> make clean
> > >> cd ..
> > >> %else
> > >> ./configure --prefix=/usr --with-gmetad
> > >> %endif
> > >> %ifnarch noarch
> > >> make
> > >> %endif
> > >>
> > >> ##
> > >> ## PRE
> > >> ##
> > >> %pre
> > >>
> > >> %ifnarch noarch
> > >> ##
> > >> ## POST GMETA
> > >> ##
> > >> %post gmetad
> > >> %ifnarch ppc
> > >> /sbin/chkconfig --add gmetad
> > >>
> > >> if [ "$1" == "1" ]; then
> > >>    # Installing new package - start gmetad
> > >>    /etc/init.d/gmetad start
> > >> elif [ "$1" -gt "1" ]; then
> > >>    # Upgrading ganglia package - restart gmetad
> > >>    /etc/init.d/gmetad restart
> > >> fi
> > >> %endif
> > >>
> > >>
> > >> ##
> > >> ## POST GMOND
> > >> ##
> > >> %post gmond
> > >> %ifnarch ppc
> > >> /sbin/chkconfig --add gmond
> > >>
> > >> if [ "$1" == "1" ]; then
> > >>    # Installing new package - start gmond
> > >>    /etc/init.d/gmond start
> > >> elif [ "$1" -gt "1" ]; then
> > >>    # Upgrading ganglia package - restart gmond
> > >>    /etc/init.d/gmond restart
> > >> fi
> > >>
> > >> `rpm -q ganglia-monitor-core-gmond| grep "is not installed" >
> > >> /dev/null 2>&1`
> > >> if [[ $? != 0 ]]; then
> > >>   # They have an old configuration file format
> > >>   echo "-----------------------------------------------------------"
> > >>   echo "IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT"
> > >>   echo "-----------------------------------------------------------"
> > >>   echo "It appears that you are upgrading from ganglia gmond version"
> > >>   echo "2.5.x.  The configuration file has changed and you need to "
> > >>   echo "convert your old 2.5.x configuration file to the new format."
> > >>   echo ""
> > >>   echo "To convert your old configuration file to the new format"
> > >>   echo "simply run the command:"
> > >>   echo ""
> > >>   echo "% gmond --convert old.conf > new.conf"
> > >>   echo ""
> > >>   echo "This conversion was not made automatic to prevent unknowningly"
> > >>   echo "altering your configuration without your notice."
> > >> fi
> > >> %endif
> > >>
> > >>
> > >> ##
> > >> ## PREUN GMETA
> > >> ##
> > >> %preun gmetad
> > >> if [ "$1" = 0 ]
> > >> then
> > >> %ifnarch ppc
> > >>    /etc/init.d/gmetad stop
> > >>    /sbin/chkconfig --del gmetad
> > >> %else
> > >>    /etc/rc.d/init.d/gmetad stop
> > >> %endif
> > >> fi
> > >>
> > >> ##
> > >> ## PREUN GMON
> > >> ##
> > >> %preun gmond
> > >> if [ "$1" = 0 ]
> > >> then
> > >> %ifnarch ppc
> > >>    /etc/init.d/gmond stop
> > >>    /sbin/chkconfig --del gmond
> > >> %else
> > >>    /etc/rc.d/init.d/gmond stop
> > >> %endif
> > >> fi
> > >>
> > >> #ifnarch noarch
> > >> %endif
> > >>
> > >> ##
> > >> ## INSTALL
> > >> ##
> > >> %install
> > >> ## Flush any old RPM build root
> > >> %__rm -rf $RPM_BUILD_ROOT
> > >>
> > >> %ifarch noarch
> > >>
> > >> %__mkdir -p $RPM_BUILD_ROOT/%{web_prefixdir}
> > >> %__cp -rf %{_builddir}/%{name}-%{version}/web/*
> > >> $RPM_BUILD_ROOT/%{web_prefixdir}
> > >>
> > >> %else
> > >>
> > >> %ifnarch ppc
> > >>
> > >> ## Create the directory structure
> > >> %__mkdir -p $RPM_BUILD_ROOT/etc/init.d
> > >> %__mkdir -p $RPM_BUILD_ROOT/var/lib/ganglia/rrds
> > >> %__mkdir -p $RPM_BUILD_ROOT/usr/share/man/man5
> > >>
> > >> ## Move the files into the structure
> > >> if [ -f /etc/SuSE-release ]; then
> > >>    %__cp -f %{_builddir}/%{name}-%{version}/gmond/gmond.init.SuSE
> > >> $RPM_BUILD_ROOT/etc/init.d/gmond
> > >>    %__cp -f %{_builddir}/%{name}-%{version}/gmetad/gmetad.init.SuSE
> > >> $RPM_BUILD_ROOT/etc/init.d/gmetad
> > >> else
> > >>    %__cp -f %{_builddir}/%{name}-%{version}/gmond/gmond.init
> > >> $RPM_BUILD_ROOT/etc/init.d/gmond
> > >>    %__cp -f %{_builddir}/%{name}-%{version}/gmetad/gmetad.init
> > >> $RPM_BUILD_ROOT/etc/init.d/gmetad
> > >> fi
> > >>
> > >> # We just output the default gmond.conf from gmond using the '-t' flag
> > >> %{_builddir}/%{name}-%{version}/gmond/gmond -t >
> > >> $RPM_BUILD_ROOT/etc/gmond.conf
> > >> %__cp -f %{_builddir}/%{name}-%{version}/gmetad/gmetad.conf
> > >> $RPM_BUILD_ROOT/etc/gmetad.conf
> > >>
> > >> %__make DESTDIR=$RPM_BUILD_ROOT install
> > >> %__make -C gmond gmond.conf.5
> > >> %__cp -f %{_builddir}/%{name}-%{version}/gmond/gmond.conf.5
> > >> $RPM_BUILD_ROOT/usr/share/man/man5/gmond.conf.5
> > >>
> > >> %else
> > >>
> > >> make DESTDIR=$RPM_BUILD_ROOT install
> > >>
> > >> ## Create the directory structure
> > >> %__mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
> > >> %__mkdir -p $RPM_BUILD_ROOT/var/lib/ganglia/rrds
> > >> %__mkdir -p $RPM_BUILD_ROOT/opt/freeware/man/man5
> > >>
> > >> ## Move the files into the structure
> > >> %__cp -f %{_builddir}/%{name}-%{version}/gmond/gmond.init
> > >> $RPM_BUILD_ROOT/etc/rc
> > >> .d/init.d/gmond
> > >> %__cp -f %{_builddir}/%{name}-%{version}/gmetad/gmetad.init
> > >> $RPM_BUILD_ROOT/etc/
> > >> rc.d/init.d/gmetad
> > >> # We just output the default gmond.conf from gmond using the '-t' flag
> > >> %{_builddir}/%{name}-%{version}/gmond/gmond -t >
> > >> $RPM_BUILD_ROOT/etc/gmond.conf
> > >> %__cp -f %{_builddir}/%{name}-%{version}/gmetad/gmetad.conf
> > >> $RPM_BUILD_ROOT/etc/
> > >> gmetad.conf
> > >>
> > >> %__cp -f %{_builddir}/%{name}-%{version}/gmond/gmond.conf.5
> > >> $RPM_BUILD_ROOT/opt/
> > >> freeware/man/man5/gmond.conf.5
> > >>
> > >> mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d/
> > >> install -m 0755 %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/gmond
> > >> install -m 0755 %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/gmetad
> > >>
> > >> mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc2.d/
> > >> mkdir -p $RPM_BUILD_ROOT/etc/rc.d/rc3.d/
> > >> ln -sf '../init.d/gmond' $RPM_BUILD_ROOT/etc/rc.d/rc2.d/Sgmond
> > >> ln -sf '../init.d/gmond' $RPM_BUILD_ROOT/etc/rc.d/rc2.d/Kgmond
> > >> ln -sf '../init.d/gmond' $RPM_BUILD_ROOT/etc/rc.d/rc3.d/Sgmond
> > >> ln -sf '../init.d/gmond' $RPM_BUILD_ROOT/etc/rc.d/rc3.d/Kgmond
> > >> ln -sf '../init.d/gmetad' $RPM_BUILD_ROOT/etc/rc.d/rc2.d/Sgmetad
> > >> ln -sf '../init.d/gmetad' $RPM_BUILD_ROOT/etc/rc.d/rc2.d/Kgmetad
> > >> ln -sf '../init.d/gmetad' $RPM_BUILD_ROOT/etc/rc.d/rc3.d/Sgmetad
> > >> ln -sf '../init.d/gmetad' $RPM_BUILD_ROOT/etc/rc.d/rc3.d/Kgmetad
> > >>
> > >> %endif
> > >>
> > >> %endif
> > >>
> > >> %ifnarch noarch
> > >> ##
> > >> ## FILES GMETA
> > >> ##
> > >>
> > >> %files gmetad
> > >> %defattr(-,root,root)
> > >> %attr(0755,nobody,nobody)/var/lib/ganglia/rrds
> > >> %ifnarch ppc
> > >> /usr/sbin/gmetad
> > >> /etc/init.d/gmetad
> > >> %else
> > >> /opt/freeware/sbin/gmetad
> > >> /etc/rc.d/init.d/gmetad
> > >> /etc/rc.d/rc2.d/Sgmetad
> > >> /etc/rc.d/rc2.d/Kgmetad
> > >> /etc/rc.d/rc3.d/Sgmetad
> > >> /etc/rc.d/rc3.d/Kgmetad
> > >> %endif
> > >> %config(noreplace) /etc/gmetad.conf
> > >>
> > >>
> > >> ##
> > >> ## FILES GMOND
> > >> ##
> > >> %files gmond
> > >> %defattr(-,root,root)
> > >> %ifnarch ppc
> > >> %attr(0500,root,root)/usr/bin/gmetric
> > >> %attr(0555,root,root)/usr/bin/gstat
> > >> /usr/sbin/gmond
> > >> /etc/init.d/gmond
> > >> %attr(0555,root,root)/usr/share/man/man5/gmond.conf.5*
> > >> %else
> > >> %attr(0500,root,root)/opt/freeware/bin/gmetric
> > >> %attr(0555,root,root)/opt/freeware/bin/gstat
> > >> /opt/freeware/sbin/gmond
> > >> %attr(0555,root,root)/opt/freeware/man/man5/gmond.conf.5*
> > >> %config(noreplace) /etc/gmond.conf
> > >> /etc/rc.d/init.d/gmond
> > >> /etc/rc.d/rc2.d/Sgmond
> > >> /etc/rc.d/rc2.d/Kgmond
> > >> /etc/rc.d/rc3.d/Sgmond
> > >> /etc/rc.d/rc3.d/Kgmond
> > >> %endif
> > >> %config(noreplace) /etc/gmond.conf
> > >>
> > >> ##
> > >> ## FILES DEVEL
> > >> ##
> > >> %files devel
> > >> %ifnarch ppc
> > >> /usr/include/ganglia.h
> > >> /usr/%{_lib}/libganglia*
> > >> /usr/bin/ganglia-config
> > >> %else
> > >> /opt/freeware/include/ganglia.h
> > >> /opt/freeware/lib/libganglia*
> > >> /opt/freeware/bin/ganglia-config
> > >> %endif
> > >>
> > >> %else
> > >>
> > >> ##
> > >> ## FILES WEB
> > >> ##
> > >> %files web
> > >> %defattr(-,root,root)
> > >> %{web_prefixdir}
> > >> ####%config(noreplace) %{web_prefixdir}/conf.php
> > >>
> > >> %endif
> > >>
> > >> ##
> > >> ## CLEAN
> > >> ##
> > >> %clean
> > >> %__rm -rf $RPM_BUILD_ROOT
> > >>
> > >> ##
> > >> ## CHANGELOG
> > >> ##
> > >> %changelog
> > >> * Mon Aug 28 2006 Bernard Li <[EMAIL PROTECTED]>
> > >> - Added gcc-c++ to BuildRequires
> > >> * Sun Jul 23 2006 Bernard Li <[EMAIL PROTECTED]>
> > >> - Changed make install prefix=$RPM_BUILD_ROOT/usr to
> > >>   make DESTDIR=$RPM_BUILD_ROOT install (suggested by Jarod Wilson
> > >>   <[EMAIL PROTECTED]>)
> > >> * Mon Jun 05 2006 Bernard Li <[EMAIL PROTECTED]>
> > >> - Changed /etc/rc.d/init.d -> /etc/init.d
> > >> * Mon May 22 2006 Bernard Li <[EMAIL PROTECTED]>
> > >> - Add rrdtool/rrdtool-devel, freetype2-devel/freetype-devel,
> > >>   libart_lgpl-devel to BuildRequires
> > >> - Use /usr/lib64 for x86_64
> > >> * Sun May 21 2006 Bernard Li <[EMAIL PROTECTED]>
> > >> - Correct init scripts dir for SuSE
> > >> - Add BuildRequires for libpng-devel
> > >> * Fri Feb 25 2006 Bernard Li <[EMAIL PROTECTED]>
> > >> - Use SuSE specific init scripts if /etc/SuSE-release file exists
> > >> * Fri Dec 10 2004 Matt Massie <[EMAIL PROTECTED]>
> > >> - Updated the spec file for 2.6.0 release
> > >> * Tue Apr 13 2004 Brooks Davis <[EMAIL PROTECTED]>
> > >> - Use the autoconf variable varstatedir instead of /var/lib for
> > >> consistancy.
> > >> * Thu Feb 19 2004 Matt Massie <[EMAIL PROTECTED]>
> > >> - Removed the /usr/include/ganglia directory from the lib rpm and
> > >>   changed the deprecated Copyright to License
> > >> * Mon Oct 14 2002 Federico Sacerdoti <[EMAIL PROTECTED]>
> > >> - Split package into -gmetad and -gmond subpackages for clarity,
> > >>   and separation of purpose/functionality.
> > >> * Thu Sep 19 2002 Federico Sacerdoti <[EMAIL PROTECTED]>
> > >> - Added config files, made /var/lib/ganglia for RRD storage.
> > >> * Mon Mar 11 2002 Matt Massie <[EMAIL PROTECTED]>
> > >> - Added support for libganglia, added Prefix: for RPM relocation
> > >> * Wed Feb 27 2002 Matt Massie <[EMAIL PROTECTED]>
> > >> - Merge gmetric and gmond together into one RPM.  Fix some small bugs.
> > >> * Fri Nov  2 2001 Matt Massie <[EMAIL PROTECTED]>
> > >> - initial release
> > >>
> > >>
> > >
> >
>


Reply via email to