diff options
| author | Adam Vandenberg | 2010-09-08 05:34:11 -0700 |
|---|---|---|
| committer | Adam Vandenberg | 2010-09-08 05:34:11 -0700 |
| commit | feb8539afc4da4a45a348f1a34a1ef6cbf0de383 (patch) | |
| tree | 958fb4e459f82c7dbe6dd6021c31fefc5d5a9795 /Library/Formula | |
| parent | 1db9d0befbaf56c6f65ab16b4bdbf2da00c390d5 (diff) | |
| download | homebrew-feb8539afc4da4a45a348f1a34a1ef6cbf0de383.tar.bz2 | |
ganglia patches for os x
Diffstat (limited to 'Library/Formula')
| -rw-r--r-- | Library/Formula/ganglia.rb | 185 |
1 files changed, 174 insertions, 11 deletions
diff --git a/Library/Formula/ganglia.rb b/Library/Formula/ganglia.rb index 55dfa78fd..747b1c77b 100644 --- a/Library/Formula/ganglia.rb +++ b/Library/Formula/ganglia.rb @@ -5,34 +5,197 @@ class Ganglia <Formula homepage 'http://ganglia.sourceforge.net/' md5 '6aa5e2109c2cc8007a6def0799cf1b4c' + depends_on 'confuse' + depends_on 'pcre' + depends_on 'rrdtool' + def patches - # "kvm.h" was removed in OS X 10.5 - # Seems to build without the include, though. + # fixes build on Leopard and newer, which lack kvm.h and its corresponding /dev/ node + # Patch sent upstream: http://bugzilla.ganglia.info/cgi-bin/bugzilla/show_bug.cgi?id=258 + # Also, for some reason, having inline or static keywords in gperf generated files + # causes missing symbol link errors - manually patch those out for now. DATA end def install - system "./configure", "--disable-debug", "--disable-dependency-tracking", - "--disable-python", - "--prefix=#{prefix}", - "--sysconfdir=#{etc}" + # ENV var needed to confirm putting the config in the prefix until 3.2 + ENV['GANGLIA_ACK_SYSCONFDIR'] = '1' + + # Grab the standard autogen.sh and run it twice, + # to update libtool + curl "http://buildconf.git.sourceforge.net/git/gitweb.cgi?p=buildconf/buildconf;a=blob_plain;f=autogen.sh;hb=HEAD", "-o", "autogen.sh" + ENV['LIBTOOLIZE'] = "/usr/bin/glibtoolize" + + ENV['PROJECT'] = "ganglia" + system "/bin/sh ./autogen.sh --download" + + Dir.chdir "libmetrics" do + ENV['PROJECT'] = "libmetrics" + system "/bin/sh ../autogen.sh --download" + end + + # Regenerate libtool, etc - now using the autogen.sh script above + #system "autoreconf -fiv" + #Dir.chdir "libmetrics" do + # system "autoreconf -fiv" + #end + + # configure + system "./configure", + "--disable-debug", + "--disable-dependency-tracking", + "--prefix=#{prefix}", + "--sbindir=#{bin}", # brew doesn't do things with prefix/sbin + "--sysconfdir=#{HOMEBREW_PREFIX}/etc", + "--with-gexec", + "--with-gmetad" + + # build and install system "make install" + + Dir.chdir "web" do + system "make", "conf.php" + system "make", "version.php" + + inreplace "conf.php", "/usr/bin/rrdtool", "#{HOMEBREW_PREFIX}/bin/rrdtool" + end + + # Generate the default config file + Dir.chdir "#{prefix}" do + system "bin/gmond -t > #{HOMEBREW_PREFIX}/etc/gmond.conf" unless File.exists? "#{HOMEBREW_PREFIX}/etc/gmond.conf" + end + + # Install the web files + (share + "ganglia").install "web" + + # Install man pages man1.install Dir['mans/*'] end -end + def caveats; <<-EOS.undent + If you did not have the config file + #{HOMEBREW_PREFIX}/etc/gmond.conf + one was created for you. + + You might want to copy + #{prefix}/share/ganglia/web/* to someplace + served by a PHP-capable web server. + EOS + end +end __END__ +diff --git a/libmetrics/config.h.in b/libmetrics/config.h.in +index 1ff64b1..13087c6 100644 +--- a/libmetrics/config.h.in ++++ b/libmetrics/config.h.in +@@ -152,6 +152,9 @@ + /* Define to 1 if you have the <sys/fs/s5param.h> header file. */ + #undef HAVE_SYS_FS_S5PARAM_H + ++/* Define to 1 if you have the <kvm.h> header file. */ ++#undef HAVE_KVM_H ++ + /* Define to 1 if you have the <sys/mount.h> header file. */ + #undef HAVE_SYS_MOUNT_H + +diff --git a/libmetrics/configure.in b/libmetrics/configure.in +index 213d162..b5aa98e 100644 +--- a/libmetrics/configure.in ++++ b/libmetrics/configure.in +@@ -31,7 +31,7 @@ AC_HAVE_LIBRARY(nsl) + # Checks for header files. + AC_HEADER_DIRENT + AC_HEADER_STDC +-AC_CHECK_HEADERS([fcntl.h inttypes.h limits.h nlist.h paths.h stdlib.h strings.h sys/filsys.h sys/fs/s5param.h sys/mount.h sys/param.h sys/socket.h sys/statfs.h sys/statvfs.h sys/systeminfo.h sys/time.h sys/vfs.h unistd.h utmp.h sys/sockio.h]) ++AC_CHECK_HEADERS([fcntl.h inttypes.h limits.h nlist.h paths.h stdlib.h strings.h sys/filsys.h sys/fs/s5param.h sys/mount.h sys/param.h sys/socket.h sys/statfs.h sys/statvfs.h sys/systeminfo.h sys/time.h sys/vfs.h unistd.h utmp.h sys/sockio.h kvm.h]) + AC_CHECK_HEADERS([rpc/rpc.h],, + [AC_MSG_ERROR([your system is missing the Sun RPC (ONC/RPC) libraries])]) + diff --git a/libmetrics/darwin/metrics.c b/libmetrics/darwin/metrics.c -index 498ed8f..66f9b2b 100644 +index 498ed8f..bfa09a1 100644 --- a/libmetrics/darwin/metrics.c +++ b/libmetrics/darwin/metrics.c -@@ -11,7 +11,7 @@ +@@ -9,9 +9,17 @@ + * + */ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ #include <stdlib.h> #include "interface.h" --#include <kvm.h> -+// #include <kvm.h> ++ ++#if defined(HAVE_LIBKVM) && defined(HAVE_KVM_H) + #include <kvm.h> ++#endif ++ #include <sys/sysctl.h> #include <mach/mach_init.h> + +diff --git a/gmetad/type_hash.c b/gmetad/type_hash.c +index 519513d..3f65efa 100644 +--- a/gmetad/type_hash.c ++++ b/gmetad/type_hash.c +@@ -46,14 +46,7 @@ struct type_tag; + #define MAX_HASH_VALUE 21 + /* maximum key range = 18, duplicates = 0 */ + +-#ifdef __GNUC__ +-__inline +-#else +-#ifdef __cplusplus +-inline +-#endif +-#endif +-static unsigned int ++unsigned int + type_hash (str, len) + register const char *str; + register unsigned int len; +@@ -124,12 +117,6 @@ static struct type_tag types[] = + {"double", FLOAT} + }; + +-#ifdef __GNUC__ +-__inline +-#ifdef __GNUC_STDC_INLINE__ +-__attribute__ ((__gnu_inline__)) +-#endif +-#endif + struct type_tag * + in_type_list (str, len) + register const char *str; +diff --git a/gmetad/xml_hash.c b/gmetad/xml_hash.c +index 5c21755..04910b3 100644 +--- a/gmetad/xml_hash.c ++++ b/gmetad/xml_hash.c +@@ -42,13 +42,6 @@ struct xml_tag; + #define MAX_HASH_VALUE 44 + /* maximum key range = 42, duplicates = 0 */ + +-#ifdef __GNUC__ +-__inline +-#else +-#ifdef __cplusplus +-inline +-#endif +-#endif + static unsigned int + xml_hash (str, len) + register const char *str; +@@ -86,12 +79,6 @@ xml_hash (str, len) + return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]]; + } + +-#ifdef __GNUC__ +-__inline +-#ifdef __GNUC_STDC_INLINE__ +-__attribute__ ((__gnu_inline__)) +-#endif +-#endif + struct xml_tag * + in_xml_list (str, len) + register const char *str; |
