f6b041ee96
lldpd is a 802.1AB implementation (LLDP). It discovers L2 neighbors along with some information like hostname, port name, VLAN, etc. Formula comes with support for launchd, creation of privilege separation user and group and optional SNMP support. Closes Homebrew/homebrew#17052. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
61 lines
1.7 KiB
Ruby
61 lines
1.7 KiB
Ruby
require 'formula'
|
|
|
|
class Lldpd < Formula
|
|
homepage 'http://vincentbernat.github.io/lldpd/'
|
|
url 'http://media.luffy.cx/files/lldpd/lldpd-0.7.1.tar.gz'
|
|
sha1 '8eb804ee6b93d12486ee0527828b752dc43158f9'
|
|
|
|
option 'with-snmp', "Build SNMP subagent support"
|
|
option 'with-json', "Build JSON support for lldpcli"
|
|
|
|
depends_on 'pkg-config' => :build
|
|
depends_on 'readline'
|
|
depends_on 'libevent'
|
|
depends_on 'net-snmp' if build.include? 'with-snmp'
|
|
depends_on 'jansson' if build.include? 'with-json'
|
|
|
|
def install
|
|
readline = Formula.factory 'readline'
|
|
args = [ "--prefix=#{prefix}",
|
|
"--with-xml",
|
|
"--with-readline",
|
|
"--with-privsep-chroot=/var/empty",
|
|
"--with-privsep-user=nobody",
|
|
"--with-privsep-group=nogroup",
|
|
"CPPFLAGS=-I#{readline.include} -DRONLY=1",
|
|
"LDFLAGS=-L#{readline.lib}" ]
|
|
args << "--with-snmp" if build.include? 'with-snmp'
|
|
args << "--with-json" if build.include? 'with-json'
|
|
|
|
system "./configure", *args
|
|
system "make"
|
|
system "make install"
|
|
end
|
|
|
|
plist_options :startup => true
|
|
|
|
def plist
|
|
additional_args = ""
|
|
if build.include? 'with-snmp'
|
|
additional_args += "<string>-x</string>"
|
|
end
|
|
return <<-EOS.undent
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>Label</key>
|
|
<string>#{plist_name}</string>
|
|
<key>ProgramArguments</key>
|
|
<array>
|
|
<string>#{opt_prefix}/sbin/lldpd</string>
|
|
#{additional_args}
|
|
</array>
|
|
<key>RunAtLoad</key><true/>
|
|
<key>KeepAlive</key><true/>
|
|
</dict>
|
|
</plist>
|
|
EOS
|
|
end
|
|
|
|
end
|