]>
git.ipfire.org Git - thirdparty/lldpd.git/blob - osx/lldpd.rb
2 desc
"Implementation library for LLDP"
3 homepage
"https://vincentbernat.github.io/lldpd/"
4 url
"http://media.luffy.cx/files/lldpd/lldpd-0.7.15.tar.gz"
5 sha256
"c891d6d4480a6a890561ac43d8cc923bd027deb82a3999d65f37d96ca368c246"
7 option
"with-snmp", "Build SNMP subagent support"
8 option
"with-json", "Build JSON support for lldpcli"
10 depends_on
"pkg-config" => :build
13 depends_on
"net-snmp" if build
.with
? "snmp"
14 depends_on
"jansson" if build
.with
? "json"
17 readline
= Formula
["readline"]
18 args
= ["--prefix=#{prefix}",
19 "--sysconfdir=#{etc}",
20 "--localstatedir=#{var}",
23 "--with-privsep-chroot=/var/empty",
24 "--with-launchddaemonsdir=no",
25 "CPPFLAGS=-I#{readline.include} -DRONLY=1",
26 "LDFLAGS=-L#{readline.lib}"]
27 args
<< (build
.with
?("snmp") ? "--with-snmp" : "--without-snmp")
28 args
<< (build
.with
?("json") ? "--with-json" : "--without-json")
30 system
"./configure", *args
32 system
"make", "install"
36 result
= `dscl . -#{args.join(' ')} 2> /dev/null`
38 raise ErrorDuringExecution
, "Failure while executing dscl: #{args.join(' ')}"
43 # Create user and group if needed
46 unless Kernel
.system
"/usr/bin/dscl . -read /Users/#{u} &> /dev/null"
48 uids
= dscl("list /Users uid")
49 gids
= dscl("list /Groups gid")
51 while uids
=~ Regexp
.new("#{Regexp.escape(uid.to_s)}\n") || gids
=~ Regexp
.new("#{Regexp.escape(uid.to_s)}\n")
55 You need to create a special user to run lldpd.
56 Just type the following commands:
57 sudo dscl . -create /Groups/#{u}
58 sudo dscl . -create /Groups/#{u} PrimaryGroupID #{uid.to_s}
59 sudo dscl . -create /Groups/#{u} Password "*"
60 sudo dscl . -create /Groups/#{u} RealName "lldpd privilege separation group"
61 sudo dscl . -create /Users/#{u}
62 sudo dscl . -create /Users/#{u} UserShell /usr/bin/false
63 sudo dscl . -create /Users/#{u} NFSHomeDirectory /var/empty
64 sudo dscl . -create /Users/#{u} PrimaryGroupID #{uid.to_s}
65 sudo dscl . -create /Users/#{u} UniqueID #{uid.to_s}
66 sudo dscl . -create /Users/#{u} Password "*"
67 sudo dscl . -create /Users/#{u} RealName "lldpd privilege separation user"
73 plist_options
:startup => true
78 additional_args
+= "<string>-x</string>"
81 <?xml version="1.0" encoding="UTF-8"?>
82 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
86 <string>#{plist_name}</string>
87 <key>ProgramArguments</key>
89 <string>#{opt_sbin}/lldpd</string>
92 <key>RunAtLoad</key><true/>
93 <key>KeepAlive</key><true/>