2 desc
"Implementation of IEEE 802.1ab (LLDP)"
3 homepage
"https://vincentbernat.github.io/lldpd/"
4 url
"https://media.luffy.cx/files/lldpd/lldpd-1.0.1.tar.gz"
5 sha256
"450b622aac7ae1758f1ef82f3b7b94ec47f2ff33abfb0e6ac82555b9ee55f151"
7 option
"with-snmp", "Build SNMP subagent support"
9 depends_on
"pkg-config" => :build
12 depends_on
"net-snmp" if build
.with
? "snmp"
15 readline
= Formula
["readline"]
18 "--sysconfdir=#{etc}",
19 "--localstatedir=#{var}",
22 "--with-privsep-chroot=/var/empty",
23 "--with-launchddaemonsdir=no",
24 "CPPFLAGS=-I#{readline.include} -DRONLY=1",
25 "LDFLAGS=-L#{readline.lib}",
27 args
<< (build
.with
?("snmp") ? "--with-snmp" : "--without-snmp")
29 system
"./configure", *args
31 system
"make", "install"
39 result
= `dscl . -#{args.join(' ')} 2> /dev/null`
41 raise ErrorDuringExecution
, "Failure while executing dscl: #{args.join(' ')}"
46 # Create user and group if needed
49 unless Kernel
.system
"/usr/bin/dscl . -read /Users/#{u} &> /dev/null"
51 uids
= dscl("list /Users uid")
52 gids
= dscl("list /Groups gid")
54 while uids
=~ Regexp
.new("#{Regexp.escape(uid.to_s)}\n") || gids
=~ Regexp
.new("#{Regexp.escape(uid.to_s)}\n")
58 You need to create a special user to run lldpd
.
59 Just type the following commands
:
60 sudo dscl
. -create
/Groups/#{u}
61 sudo dscl
. -create
/Groups/#{u} PrimaryGroupID #{uid.to_s}
62 sudo dscl
. -create
/Groups/#{u} Password "*"
63 sudo dscl
. -create
/Groups/#{u} RealName "lldpd privilege separation group"
64 sudo dscl
. -create
/Users/#{u}
65 sudo dscl
. -create
/Users/#{u} UserShell /usr/bin/false
66 sudo dscl
. -create
/Users/#{u} NFSHomeDirectory /var/empty
67 sudo dscl
. -create
/Users/#{u} PrimaryGroupID #{uid.to_s}
68 sudo dscl
. -create
/Users/#{u} UniqueID #{uid.to_s}
69 sudo dscl
. -create
/Users/#{u} Password "*"
70 sudo dscl
. -create
/Users/#{u} RealName "lldpd privilege separation user"
76 plist_options
:startup => true
80 additional_args
+= "<string>-x</string>" if build
.with
? "snmp"
82 <?xml
version="1.0" encoding
="UTF-8"?>
83 <!DOCTYPE plist PUBLIC
"-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
87 <string
>#{plist_name}</string>
88 <key
>ProgramArguments
</key
>
90 <string
>#{opt_sbin}/lldpd</string>
93 <key
>RunAtLoad
</key><true/>
94 <key
>KeepAlive
</key><true/>