0e96e485d6
net-snmp has some fixes in HEAD for us coming in 5.7.2. It fails on ML due to the same problem it has with Lion, a missing header, and that's what's being fixed. It aslo can't build the perl bindings because it wants to write to `/Library/Perl` - Duplicate the Lion path for ML and create `darwin12.h` - Add `--enable-ipv6` - Add `--with-logfile=#{var}/log/snmpd.log` fixes `/var/log/snmpd.log` - Add `--disable-embedded-perl` - Add `--without-perl-modules` - Add `--disable-debugging` - Remove an unused function `header_created?` Fixes Homebrew/homebrew#14990. Closes Homebrew/homebrew#15009. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
338 lines
9.1 KiB
Ruby
338 lines
9.1 KiB
Ruby
require 'formula'
|
|
|
|
class NetSnmp < Formula
|
|
homepage 'http://www.net-snmp.org/'
|
|
url 'http://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.1/net-snmp-5.7.1.tar.gz'
|
|
sha1 'ddb82ce1112ef0642869d3c8d7c7e585f151849a'
|
|
|
|
def patches
|
|
# Fixes compile error on Lion, missing header darwin11.h
|
|
# Fixes compile error on Mt. Lion, missing header darwin12.h
|
|
# The patch is reported upstream and fixed in HEAD. Remove at 5.7.2.
|
|
# https://sourceforge.net/tracker/?func=detail&aid=3514049&group_id=12694&atid=312694
|
|
DATA
|
|
end
|
|
|
|
def install
|
|
system "./configure", "--disable-debugging",
|
|
"--prefix=#{prefix}",
|
|
"--enable-ipv6",
|
|
"--with-defaults",
|
|
"--with-persistent-directory=#{var}/db/net-snmp",
|
|
"--with-logfile=#{var}/log/snmpd.log",
|
|
"--with-mib-modules=host ucd-snmp/diskio",
|
|
"--without-rpm",
|
|
"--without-kmem-usage",
|
|
"--disable-embedded-perl",
|
|
"--without-perl-modules"
|
|
system "make"
|
|
system "make install"
|
|
end
|
|
end
|
|
|
|
__END__
|
|
diff --git a/include/net-snmp/system/darwin11.h b/include/net-snmp/system/darwin11.h
|
|
new file mode 100644
|
|
index 0000000..fd5d9ab
|
|
--- /dev/null
|
|
+++ b/include/net-snmp/system/darwin11.h
|
|
@@ -0,0 +1,148 @@
|
|
+/*
|
|
+ * While Darwin 10 (aka, Mac OS X 10.6 Snow Leopard) is "BSD-like", it differs
|
|
+ * substantially enough to not warrant pretending it is a BSD flavor.
|
|
+ * This first section are the vestigal BSD remnants.
|
|
+ */
|
|
+/* Portions of this file are subject to the following copyright(s). See
|
|
+ * the Net-SNMP's COPYING file for more details and other copyrights
|
|
+ * that may apply:
|
|
+ */
|
|
+/*
|
|
+ * Portions of this file are copyrighted by:
|
|
+ * Copyright (C) 2007 Apple, Inc. All rights reserved.
|
|
+ * Use is subject to license terms specified in the COPYING file
|
|
+ * distributed with the Net-SNMP package.
|
|
+ */
|
|
+
|
|
+/*
|
|
+ * BSD systems use a different method of looking up sockaddr_in values
|
|
+ */
|
|
+/* #define NEED_KLGETSA 1 */
|
|
+
|
|
+/*
|
|
+ * ARP_Scan_Next needs a 4th ifIndex argument
|
|
+ */
|
|
+#define ARP_SCAN_FOUR_ARGUMENTS 1
|
|
+
|
|
+#define CHECK_RT_FLAGS 1
|
|
+
|
|
+/*
|
|
+ * this is not good enough before freebsd3!
|
|
+ */
|
|
+/* #undef HAVE_NET_IF_MIB_H */
|
|
+
|
|
+/*
|
|
+ * This section adds the relevant definitions from generic.h
|
|
+ * (a file we don't include here)
|
|
+ */
|
|
+
|
|
+/*
|
|
+ * udp_inpcb list symbol, e.g. for mibII/udpTable.c
|
|
+ */
|
|
+#define INP_NEXT_SYMBOL inp_next
|
|
+
|
|
+/*
|
|
+ * This section defines Mac OS X 10.5 (and later) specific additions.
|
|
+ */
|
|
+#define darwin 11
|
|
+#ifndef darwin11
|
|
+# define darwin11 darwin
|
|
+#endif
|
|
+
|
|
+/*
|
|
+ * Mac OS X should only use the modern API and definitions.
|
|
+ */
|
|
+#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
|
|
+#define NETSNMP_NO_LEGACY_DEFINITIONS 1
|
|
+#endif
|
|
+
|
|
+/*
|
|
+ * looks like the IFTable stuff works better than the mibII versions
|
|
+ */
|
|
+
|
|
+#define NETSNMP_INCLUDE_IFTABLE_REWRITES
|
|
+
|
|
+/*
|
|
+ * use new host resources files as well
|
|
+ */
|
|
+#define NETSNMP_INCLUDE_HRSWINST_REWRITES
|
|
+#define NETSNMP_INCLUDE_HRSWRUN_REWRITES
|
|
+#undef NETSNMP_INCLUDE_HRSWRUN_WRITE_SUPPORT
|
|
+#define NETSNMP_CAN_GET_DISK_LABEL 1
|
|
+
|
|
+/*
|
|
+ * Enabling this restricts the compiler to mostly public APIs.
|
|
+ */
|
|
+#ifndef __APPLE_API_STRICT_CONFORMANCE
|
|
+#define __APPLE_API_STRICT_CONFORMANCE 1
|
|
+#endif
|
|
+#ifndef __APPLE_API_UNSTABLE
|
|
+#define __APPLE_API_UNSTABLE 1
|
|
+#endif
|
|
+
|
|
+/*
|
|
+ * Darwin's tools are capable of building multiple architectures in one pass.
|
|
+ * As a result, platform definitions should be deferred until compile time.
|
|
+ */
|
|
+#ifdef BYTE_ORDER
|
|
+# undef WORDS_BIGENDIAN
|
|
+# if BYTE_ORDER == BIG_ENDIAN
|
|
+# define WORDS_BIGENDIAN 1
|
|
+# endif
|
|
+#endif
|
|
+
|
|
+/*
|
|
+ * Darwin's tools are capable of building multiple architectures in one pass.
|
|
+ * As a result, platform definitions should be deferred until compile time.
|
|
+ */
|
|
+#ifdef BYTE_ORDER
|
|
+# undef WORDS_BIGENDIAN
|
|
+# if BYTE_ORDER == BIG_ENDIAN
|
|
+# define WORDS_BIGENDIAN 1
|
|
+# endif
|
|
+#endif
|
|
+
|
|
+/*
|
|
+ * Although Darwin does have an fstab.h file, getfsfile etc. always return null.
|
|
+ * At least, as of 5.3.
|
|
+ */
|
|
+#undef HAVE_FSTAB_H
|
|
+
|
|
+#define SWAPFILE_DIR "/private/var/vm"
|
|
+#define SWAPFILE_PREFIX "swapfile"
|
|
+
|
|
+/*
|
|
+ * These apparently used to be in netinet/tcp_timers.h, but went away in
|
|
+ * 10.4.2. Define them here til we find out a way to get the real values.
|
|
+ */
|
|
+#define TCPTV_MIN ( 1*PR_SLOWHZ) /* minimum allowable value */
|
|
+#define TCPTV_REXMTMAX ( 64*PR_SLOWHZ) /* max allowable REXMT value */
|
|
+
|
|
+/*
|
|
+ * Because Mac OS X is built on Mach, it does not provide a BSD-compatible
|
|
+ * VM statistics API.
|
|
+ */
|
|
+#define USE_MACH_HOST_STATISTICS 1
|
|
+
|
|
+/*
|
|
+ * This tells code that manipulates IPv6 that the structures are unified,
|
|
+ * i.e., IPv4 and IPv6 use the same structs.
|
|
+ * This should eventually be replaced with a configure directive.
|
|
+ */
|
|
+/* #define USE_UNIFIED_IPV6_STRUCTS 1 */
|
|
+#undef STRUCT_in6pcb_HAS_inp_vflag
|
|
+
|
|
+/*
|
|
+ * utility macro used in several darwin specific files
|
|
+ */
|
|
+#define SNMP_CFRelease(x) do { if (x) { CFRelease(x); x = NULL; } } while(0)
|
|
+
|
|
+/*
|
|
+ * Mac OS X runs on both PPC and Intel hardware,
|
|
+ * which handle udpTable index values differently
|
|
+ */
|
|
+#include <TargetConditionals.h>
|
|
+#ifdef TARGET_RT_LITTLE_ENDIAN
|
|
+#define UDP_ADDRESSES_IN_HOST_ORDER 1
|
|
+#endif
|
|
+
|
|
--- /dev/null
|
|
+++ b/include/net-snmp/system/darwin12.h
|
|
@@ -0,0 +1,148 @@
|
|
+/*
|
|
+ * While Darwin 10 (aka, Mac OS X 10.6 Snow Leopard) is "BSD-like", it differs
|
|
+ * substantially enough to not warrant pretending it is a BSD flavor.
|
|
+ * This first section are the vestigal BSD remnants.
|
|
+ */
|
|
+/* Portions of this file are subject to the following copyright(s). See
|
|
+ * the Net-SNMP's COPYING file for more details and other copyrights
|
|
+ * that may apply:
|
|
+ */
|
|
+/*
|
|
+ * Portions of this file are copyrighted by:
|
|
+ * Copyright (C) 2007 Apple, Inc. All rights reserved.
|
|
+ * Use is subject to license terms specified in the COPYING file
|
|
+ * distributed with the Net-SNMP package.
|
|
+ */
|
|
+
|
|
+/*
|
|
+ * BSD systems use a different method of looking up sockaddr_in values
|
|
+ */
|
|
+/* #define NEED_KLGETSA 1 */
|
|
+
|
|
+/*
|
|
+ * ARP_Scan_Next needs a 4th ifIndex argument
|
|
+ */
|
|
+#define ARP_SCAN_FOUR_ARGUMENTS 1
|
|
+
|
|
+#define CHECK_RT_FLAGS 1
|
|
+
|
|
+/*
|
|
+ * this is not good enough before freebsd3!
|
|
+ */
|
|
+/* #undef HAVE_NET_IF_MIB_H */
|
|
+
|
|
+/*
|
|
+ * This section adds the relevant definitions from generic.h
|
|
+ * (a file we don't include here)
|
|
+ */
|
|
+
|
|
+/*
|
|
+ * udp_inpcb list symbol, e.g. for mibII/udpTable.c
|
|
+ */
|
|
+#define INP_NEXT_SYMBOL inp_next
|
|
+
|
|
+/*
|
|
+ * This section defines Mac OS X 10.5 (and later) specific additions.
|
|
+ */
|
|
+#define darwin 12
|
|
+#ifndef darwin12
|
|
+# define darwin12 darwin
|
|
+#endif
|
|
+
|
|
+/*
|
|
+ * Mac OS X should only use the modern API and definitions.
|
|
+ */
|
|
+#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
|
|
+#define NETSNMP_NO_LEGACY_DEFINITIONS 1
|
|
+#endif
|
|
+
|
|
+/*
|
|
+ * looks like the IFTable stuff works better than the mibII versions
|
|
+ */
|
|
+
|
|
+#define NETSNMP_INCLUDE_IFTABLE_REWRITES
|
|
+
|
|
+/*
|
|
+ * use new host resources files as well
|
|
+ */
|
|
+#define NETSNMP_INCLUDE_HRSWINST_REWRITES
|
|
+#define NETSNMP_INCLUDE_HRSWRUN_REWRITES
|
|
+#undef NETSNMP_INCLUDE_HRSWRUN_WRITE_SUPPORT
|
|
+#define NETSNMP_CAN_GET_DISK_LABEL 1
|
|
+
|
|
+/*
|
|
+ * Enabling this restricts the compiler to mostly public APIs.
|
|
+ */
|
|
+#ifndef __APPLE_API_STRICT_CONFORMANCE
|
|
+#define __APPLE_API_STRICT_CONFORMANCE 1
|
|
+#endif
|
|
+#ifndef __APPLE_API_UNSTABLE
|
|
+#define __APPLE_API_UNSTABLE 1
|
|
+#endif
|
|
+
|
|
+/*
|
|
+ * Darwin's tools are capable of building multiple architectures in one pass.
|
|
+ * As a result, platform definitions should be deferred until compile time.
|
|
+ */
|
|
+#ifdef BYTE_ORDER
|
|
+# undef WORDS_BIGENDIAN
|
|
+# if BYTE_ORDER == BIG_ENDIAN
|
|
+# define WORDS_BIGENDIAN 1
|
|
+# endif
|
|
+#endif
|
|
+
|
|
+/*
|
|
+ * Darwin's tools are capable of building multiple architectures in one pass.
|
|
+ * As a result, platform definitions should be deferred until compile time.
|
|
+ */
|
|
+#ifdef BYTE_ORDER
|
|
+# undef WORDS_BIGENDIAN
|
|
+# if BYTE_ORDER == BIG_ENDIAN
|
|
+# define WORDS_BIGENDIAN 1
|
|
+# endif
|
|
+#endif
|
|
+
|
|
+/*
|
|
+ * Although Darwin does have an fstab.h file, getfsfile etc. always return null.
|
|
+ * At least, as of 5.3.
|
|
+ */
|
|
+#undef HAVE_FSTAB_H
|
|
+
|
|
+#define SWAPFILE_DIR "/private/var/vm"
|
|
+#define SWAPFILE_PREFIX "swapfile"
|
|
+
|
|
+/*
|
|
+ * These apparently used to be in netinet/tcp_timers.h, but went away in
|
|
+ * 10.4.2. Define them here til we find out a way to get the real values.
|
|
+ */
|
|
+#define TCPTV_MIN ( 1*PR_SLOWHZ) /* minimum allowable value */
|
|
+#define TCPTV_REXMTMAX ( 64*PR_SLOWHZ) /* max allowable REXMT value */
|
|
+
|
|
+/*
|
|
+ * Because Mac OS X is built on Mach, it does not provide a BSD-compatible
|
|
+ * VM statistics API.
|
|
+ */
|
|
+#define USE_MACH_HOST_STATISTICS 1
|
|
+
|
|
+/*
|
|
+ * This tells code that manipulates IPv6 that the structures are unified,
|
|
+ * i.e., IPv4 and IPv6 use the same structs.
|
|
+ * This should eventually be replaced with a configure directive.
|
|
+ */
|
|
+/* #define USE_UNIFIED_IPV6_STRUCTS 1 */
|
|
+#undef STRUCT_in6pcb_HAS_inp_vflag
|
|
+
|
|
+/*
|
|
+ * utility macro used in several darwin specific files
|
|
+ */
|
|
+#define SNMP_CFRelease(x) do { if (x) { CFRelease(x); x = NULL; } } while(0)
|
|
+
|
|
+/*
|
|
+ * Mac OS X runs on both PPC and Intel hardware,
|
|
+ * which handle udpTable index values differently
|
|
+ */
|
|
+#include <TargetConditionals.h>
|
|
+#ifdef TARGET_RT_LITTLE_ENDIAN
|
|
+#define UDP_ADDRESSES_IN_HOST_ORDER 1
|
|
+#endif
|
|
+
|