ganglia patches for os x
This commit is contained in:
parent
8c92bebdf2
commit
0328eaac53
1 changed files with 174 additions and 11 deletions
|
@ -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
|
||||
|
||||
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;
|
||||
|
|
Loading…
Reference in a new issue