aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula/vpnc.rb
blob: d7174362d6bf693f16730594ddf86d889e3b2d30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
require "formula"

class Vpnc < Formula
  homepage "http://www.unix-ag.uni-kl.de/~massar/vpnc/"
  url "http://ftp.debian.org/debian/pool/main/v/vpnc/vpnc_0.5.3r512.orig.tar.gz"
  version "0.5.3r512"
  sha256 "d421ac20b6c65d22d2ee88066e487f740f4d367f9143b6045bcb8fa177b384fe"
  revision 2

  depends_on "pkg-config" => :build
  depends_on "libgcrypt"
  depends_on "libgpg-error"
  depends_on "gnutls"
  depends_on :tuntap

  fails_with :llvm do
    build 2334
  end

  option "hybrid", "Use vpnc hybrid authentication"

  # Patch from user @Imagesafari to enable compilation on Lion
  patch :DATA if MacOS.version >= :lion

  def install
    ENV.no_optimization
    ENV.deparallelize

    inreplace ["vpnc-script", "vpnc-disconnect"] do |s|
      s.gsub! "/var/run/vpnc", (var + "run/vpnc")
    end

    inreplace "vpnc.8.template" do |s|
      s.gsub! "/etc/vpnc", (etc + "vpnc")
    end

    inreplace "Makefile" do |s|
      s.change_make_var! "PREFIX", prefix
      s.change_make_var! "ETCDIR", (etc + "vpnc")

      s.gsub! /^#OPENSSL/, "OPENSSL" if build.include? "hybrid"
    end

    inreplace "config.c" do |s|
      s.gsub! "/etc/vpnc", (etc + "vpnc")
      s.gsub! "/var/run/vpnc", (var + "run/vpnc")
    end

    system "make"
    (var + "run/vpnc").mkpath
    system "make", "install"
  end
end

__END__
--- vpnc/sysdep.h	2008-11-19 15:36:12.000000000 -0500
+++ vpnc.patched/sysdep.h	2011-07-14 12:49:18.000000000 -0400
@@ -109,6 +109,8 @@
 #define HAVE_FGETLN    1
 #define HAVE_UNSETENV  1
 #define HAVE_SETENV    1
+#define HAVE_GETLINE   1
+#define NEW_TUN        1
 #endif
 
 /***************************************************************************/
diff -u vpnc.patched/vpnc-script vpnc/vpnc-script
--- vpnc.patched/vpnc-script	2013-11-01 13:17:21.000000000 -0700
+++ vpnc/vpnc-script	2013-11-01 18:54:33.000000000 -0700
@@ -388,7 +388,7 @@
				scutil >/dev/null 2>&1 <<-EOF
					open
					d.init
-					d.add ServerAddresses * $INTERNAL_IP4_DNS
+					d.add ServerAddresses * $INTERNAL_IP4_DNS $INTERNAL_IP6_DNS
					set State:/Network/Service/$TUNDEV/DNS
					d.init
					# next line overrides the default gateway and breaks split routing
@@ -598,7 +598,7 @@
			fi
			i=`expr $i + 1`
		done
-		for i in $INTERNAL_IP4_DNS ; do
+		for i in $INTERNAL_IP6_DNS ; do
			if echo "$i" | grep : >/dev/null; then
				set_ipv6_network_route "$i" "128"
			fi