Created
July 22, 2011 16:47
-
-
Save jrun/1099830 to your computer and use it in GitHub Desktop.
openvpn Homebrew Formula for OSX Lion
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
brew install https://raw.github.com/gist/1099830/02960cf13a1486f4c73972b707cd979ea0dfbbec/openvpn.rb --force |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'formula' | |
class Openvpn < Formula | |
homepage 'http://openvpn.net/' | |
url 'http://build.openvpn.net/downloads/releases/openvpn-2.2.0.tar.gz' | |
sha256 '71ebeaaba1641e6d1454ae0f10f986002e5c6afdcd09da659122e3e5c74a2567' | |
depends_on 'lzo' => :recommended | |
skip_clean 'etc' | |
skip_clean 'var' | |
def install | |
# Build and install binary | |
system "./configure", "--prefix=#{prefix}", "--disable-debug", "--disable-dependency-tracking" | |
system "make install" | |
# Adjust sample file paths | |
inreplace ["sample-config-files/openvpn-startup.sh", "sample-scripts/openvpn.init"] do |s| | |
s.gsub! "/etc/openvpn", (etc + 'openvpn') | |
s.gsub! "/var/run/openvpn", (var + 'run/openvpn') | |
end | |
# Install sample files | |
Dir['sample-*'].each do |d| | |
(share + 'doc/openvpn' + d).install Dir[d+'/*'] | |
end | |
# Create etc & var paths | |
(etc + 'openvpn').mkpath | |
(var + 'run/openvpn').mkpath | |
# Write the launchd script | |
(prefix + 'org.openvpn.plist').write startup_plist | |
end | |
def caveats; <<-EOS | |
You may also wish to install tuntap: | |
The TunTap project provides kernel extensions for Mac OS X that allow | |
creation of virtual network interfaces. | |
http://tuntaposx.sourceforge.net/ | |
Because these are kernel extensions, there is no Homebrew formula for tuntap. | |
For OpenVPN to work as a server, you will need to do the following: | |
1) Create configuration file in #{etc}/openvpn, samples can be | |
found in #{share}/doc/openvpn | |
2) Install the launchd item in /Library/LaunchDaemons, like so: | |
sudo cp -vf #{prefix}/org.openvpn.plist /Library/LaunchDaemons/. | |
sudo chown -v root:wheel /Library/LaunchDaemons/org.openvpn.plist | |
3) Start the daemon using: | |
sudo launchctl load /Library/LaunchDaemons/org.openvpn.plist | |
Next boot of system will automatically start OpenVPN. | |
EOS | |
end | |
def startup_plist | |
return <<-EOS | |
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd";> | |
<plist version="1.0"> | |
<dict> | |
<key>Label</key> | |
<string>org.openvpn</string> | |
<key>ProgramArguments</key> | |
<array> | |
<string>#{sbin}/openvpn</string> | |
<string>--config</string> | |
<string>#{etc}/openvpn/openvpn.conf</string> | |
</array> | |
<key>OnDemand</key> | |
<false/> | |
<key>RunAtLoad</key> | |
<true/> | |
<key>TimeOut</key> | |
<integer>90</integer> | |
<key>WatchPaths</key> | |
<array> | |
<string>#{etc}/openvpn</string> | |
</array> | |
<key>WorkingDirectory</key> | |
<string>#{etc}/openvpn</string> | |
</dict> | |
</plist> | |
EOS | |
end | |
def patches | |
DATA | |
end | |
end | |
__END__ | |
diff --git a/socket.c b/socket.c | |
index 4720398..faa1782 100644 | |
--- a/socket.c | |
+++ b/socket.c | |
@@ -35,6 +35,10 @@ | |
#include "memdbg.h" | |
+#ifndef SOL_IP | |
+#define SOL_IP IPPROTO_IP | |
+#endif | |
+ | |
const int proto_overhead[] = { /* indexed by PROTO_x */ | |
IPv4_UDP_HEADER_SIZE, | |
IPv4_TCP_HEADER_SIZE, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
👍 Could you please make a pull request for this. Worked great.