]>
git.ipfire.org Git - thirdparty/lldpd.git/blob - osx/lldpd.rb
2 desc
"Implementation of IEEE 802.1ab (LLDP)"
3 homepage
"https://vincentbernat.github.io/lldpd/"
4 url
"https://media.luffy.cx/files/lldpd/lldpd-0.9.8.tar.gz"
5 sha256
"9ee494e91bc33938575b2c09b26188c486ef8eac6e2155d250c189cc4e988c4f"
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/>