Browse Source

Make tap build on OSX 10.9, though not in a way that is easy for users. Instead package binaries.

Adam Ierymenko 11 years ago
parent
commit
148619f0ba
68 changed files with 67 additions and 12 deletions
  1. 8 8
      Makefile.mac
  2. 36 0
      ext/bin/tap-mac/tap.kext/Contents/Info.plist
  3. BIN
      ext/bin/tap-mac/tap.kext/Contents/MacOS/tap
  4. 0 0
      tap-mac/README.txt
  5. 0 0
      tap-mac/tuntap/Changelog
  6. 0 0
      tap-mac/tuntap/INSTALL
  7. 0 0
      tap-mac/tuntap/Makefile
  8. 0 0
      tap-mac/tuntap/README
  9. 0 0
      tap-mac/tuntap/README.installer
  10. 18 0
      tap-mac/tuntap/README.zerotier-build
  11. 0 0
      tap-mac/tuntap/pkg/res/License.rtfd/TXT.rtf
  12. 0 0
      tap-mac/tuntap/pkg/res/Welcome.rtfd/TXT.rtf
  13. 0 0
      tap-mac/tuntap/pkg/res/Welcome.rtfd/paypal_button.gif
  14. 0 0
      tap-mac/tuntap/pkg/scripts/startup_item_tap/postflight
  15. 0 0
      tap-mac/tuntap/pkg/scripts/startup_item_tun/postflight
  16. 0 0
      tap-mac/tuntap/pkg/scripts/tap/postflight
  17. 0 0
      tap-mac/tuntap/pkg/scripts/tun/postflight
  18. 0 0
      tap-mac/tuntap/pkg/tuntap.pmdoc/01tun-contents.xml
  19. 0 0
      tap-mac/tuntap/pkg/tuntap.pmdoc/01tun.xml
  20. 0 0
      tap-mac/tuntap/pkg/tuntap.pmdoc/02tap-contents.xml
  21. 0 0
      tap-mac/tuntap/pkg/tuntap.pmdoc/02tap.xml
  22. 0 0
      tap-mac/tuntap/pkg/tuntap.pmdoc/03tap-contents.xml
  23. 0 0
      tap-mac/tuntap/pkg/tuntap.pmdoc/03tap.xml
  24. 0 0
      tap-mac/tuntap/pkg/tuntap.pmdoc/04tun-contents.xml
  25. 0 0
      tap-mac/tuntap/pkg/tuntap.pmdoc/04tun.xml
  26. 0 0
      tap-mac/tuntap/pkg/tuntap.pmdoc/index.xml
  27. 0 0
      tap-mac/tuntap/src/lock.cc
  28. 0 0
      tap-mac/tuntap/src/lock.h
  29. 0 0
      tap-mac/tuntap/src/mem.cc
  30. 0 0
      tap-mac/tuntap/src/mem.h
  31. 0 0
      tap-mac/tuntap/src/tap/Info.plist
  32. 4 2
      tap-mac/tuntap/src/tap/Makefile
  33. 0 0
      tap-mac/tuntap/src/tap/kmod.cc
  34. 0 0
      tap-mac/tuntap/src/tap/tap.cc
  35. 1 2
      tap-mac/tuntap/src/tap/tap.h
  36. 0 0
      tap-mac/tuntap/src/tun/Info.plist
  37. 0 0
      tap-mac/tuntap/src/tun/Makefile
  38. 0 0
      tap-mac/tuntap/src/tun/kmod.cc
  39. 0 0
      tap-mac/tuntap/src/tun/tun.cc
  40. 0 0
      tap-mac/tuntap/src/tun/tun.h
  41. 0 0
      tap-mac/tuntap/src/tun/tun_inet6_proto.c
  42. 0 0
      tap-mac/tuntap/src/tun/tun_inet_proto.c
  43. 0 0
      tap-mac/tuntap/src/tun/tun_ioctls.h
  44. 0 0
      tap-mac/tuntap/src/tuntap.cc
  45. 0 0
      tap-mac/tuntap/src/tuntap.h
  46. 0 0
      tap-mac/tuntap/src/tuntap_mgr.cc
  47. 0 0
      tap-mac/tuntap/src/util.h
  48. 0 0
      tap-mac/tuntap/startup_item/tap/Resources/English.lproj/Localizable.strings
  49. 0 0
      tap-mac/tuntap/startup_item/tap/StartupParameters.plist
  50. 0 0
      tap-mac/tuntap/startup_item/tap/tap
  51. 0 0
      tap-mac/tuntap/startup_item/tun/Resources/English.lproj/Localizable.strings
  52. 0 0
      tap-mac/tuntap/startup_item/tun/StartupParameters.plist
  53. 0 0
      tap-mac/tuntap/startup_item/tun/tun
  54. 0 0
      tap-mac/tuntap/test/tuntap/__init__.py
  55. 0 0
      tap-mac/tuntap/test/tuntap/char_dev_harness.py
  56. 0 0
      tap-mac/tuntap/test/tuntap/interface_harness.py
  57. 0 0
      tap-mac/tuntap/test/tuntap/ioctl.py
  58. 0 0
      tap-mac/tuntap/test/tuntap/packet.py
  59. 0 0
      tap-mac/tuntap/test/tuntap/packet_codec.py
  60. 0 0
      tap-mac/tuntap/test/tuntap/packet_reader.py
  61. 0 0
      tap-mac/tuntap/test/tuntap/route.py
  62. 0 0
      tap-mac/tuntap/test/tuntap/sockaddr.py
  63. 0 0
      tap-mac/tuntap/test/tuntap/test_char_dev.py
  64. 0 0
      tap-mac/tuntap/test/tuntap/test_interface.py
  65. 0 0
      tap-mac/tuntap/test/tuntap/test_ip.py
  66. 0 0
      tap-mac/tuntap/test/tuntap/tun_tap_harness.py
  67. 0 0
      tap-mac/tuntap/test/tuntap/tun_tap_test_case.py
  68. 0 0
      tap-mac/tuntap/test/tuntap/tuntap_tests.py

+ 8 - 8
Makefile.mac

@@ -35,18 +35,18 @@ idtool: $(OBJS)
 	$(CXX) $(CXXFLAGS) -o zerotier-idtool idtool.cpp $(OBJS) $(LIBS)
 	$(STRIP) zerotier-idtool
 
-mac-tap: FORCE
-	cd mac-tap/tuntap ; make tap.kext
+#mac-tap: FORCE
+#	cd mac-tap/tuntap ; make tap.kext
 
-install-mac-tap: FORCE
-	mkdir -p /Library/Application\ Support/ZeroTier/One
-	rm -rf /Library/Application\ Support/ZeroTier/One/tap.kext
-	cp -R mac-tap/tuntap/tap.kext /Library/Application\ Support/ZeroTier/One
-	chown -R root:wheel /Library/Application\ Support/ZeroTier/One/tap.kext
+#install-mac-tap: FORCE
+#	mkdir -p /Library/Application\ Support/ZeroTier/One
+#	rm -rf /Library/Application\ Support/ZeroTier/One/tap.kext
+#	cp -R mac-tap/tuntap/tap.kext /Library/Application\ Support/ZeroTier/One
+#	chown -R root:wheel /Library/Application\ Support/ZeroTier/One/tap.kext
 
 clean:
 	rm -rf *.dSYM
 	rm -f $(OBJS) zerotier-*
-	cd mac-tap/tuntap ; make clean
+	cd tap-mac/tuntap ; make clean
 
 FORCE:

+ 36 - 0
ext/bin/tap-mac/tap.kext/Contents/Info.plist

@@ -0,0 +1,36 @@
+<?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>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>tap</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.zerotier.tap</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>tap</string>
+	<key>CFBundlePackageType</key>
+	<string>KEXT</string>
+	<key>CFBundleShortVersionString</key>
+	<string>20111101</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>OSBundleLibraries</key>
+	<dict>
+		<key>com.apple.kpi.mach</key>
+		<string>8.0</string>
+		<key>com.apple.kpi.bsd</key>
+		<string>8.0</string>
+		<key>com.apple.kpi.libkern</key>
+		<string>8.0</string>
+		<key>com.apple.kpi.unsupported</key>
+		<string>8.0</string>
+	</dict>
+</dict>
+</plist>
+

BIN
ext/bin/tap-mac/tap.kext/Contents/MacOS/tap


+ 0 - 0
mac-tap/README.txt → tap-mac/README.txt


+ 0 - 0
mac-tap/tuntap/Changelog → tap-mac/tuntap/Changelog


+ 0 - 0
mac-tap/tuntap/INSTALL → tap-mac/tuntap/INSTALL


+ 0 - 0
mac-tap/tuntap/Makefile → tap-mac/tuntap/Makefile


+ 0 - 0
mac-tap/tuntap/README → tap-mac/tuntap/README


+ 0 - 0
mac-tap/tuntap/README.installer → tap-mac/tuntap/README.installer


+ 18 - 0
tap-mac/tuntap/README.zerotier-build

@@ -0,0 +1,18 @@
+Building the tap for both x86_64 and i386 requires an older version of the
+Xcode tools than what now ships for Mavericks (10.9). The newer version
+does not support creating i386 kernel images.
+
+These can be obtained from:
+
+https://developer.apple.com/downloads
+
+It requires a bit of a dance to unpack the package and obtain an unpacked
+tree, but once it's there you can change the line in tap/Makefile and
+build for both architectures.
+
+This will go on until i386 is thoroughly legacy, at which point we'll
+probably start just supporting x86_64. But that might be a while. We want
+to support old Macs through their entire useful life.
+
+Since this build is irritating, a pre-built copy is packaged in ext/ and
+is installed by 'make install'. So users shouldn't have to build this.

+ 0 - 0
mac-tap/tuntap/pkg/res/License.rtfd/TXT.rtf → tap-mac/tuntap/pkg/res/License.rtfd/TXT.rtf


+ 0 - 0
mac-tap/tuntap/pkg/res/Welcome.rtfd/TXT.rtf → tap-mac/tuntap/pkg/res/Welcome.rtfd/TXT.rtf


+ 0 - 0
mac-tap/tuntap/pkg/res/Welcome.rtfd/paypal_button.gif → tap-mac/tuntap/pkg/res/Welcome.rtfd/paypal_button.gif


+ 0 - 0
mac-tap/tuntap/pkg/scripts/startup_item_tap/postflight → tap-mac/tuntap/pkg/scripts/startup_item_tap/postflight


+ 0 - 0
mac-tap/tuntap/pkg/scripts/startup_item_tun/postflight → tap-mac/tuntap/pkg/scripts/startup_item_tun/postflight


+ 0 - 0
mac-tap/tuntap/pkg/scripts/tap/postflight → tap-mac/tuntap/pkg/scripts/tap/postflight


+ 0 - 0
mac-tap/tuntap/pkg/scripts/tun/postflight → tap-mac/tuntap/pkg/scripts/tun/postflight


+ 0 - 0
mac-tap/tuntap/pkg/tuntap.pmdoc/01tun-contents.xml → tap-mac/tuntap/pkg/tuntap.pmdoc/01tun-contents.xml


+ 0 - 0
mac-tap/tuntap/pkg/tuntap.pmdoc/01tun.xml → tap-mac/tuntap/pkg/tuntap.pmdoc/01tun.xml


+ 0 - 0
mac-tap/tuntap/pkg/tuntap.pmdoc/02tap-contents.xml → tap-mac/tuntap/pkg/tuntap.pmdoc/02tap-contents.xml


+ 0 - 0
mac-tap/tuntap/pkg/tuntap.pmdoc/02tap.xml → tap-mac/tuntap/pkg/tuntap.pmdoc/02tap.xml


+ 0 - 0
mac-tap/tuntap/pkg/tuntap.pmdoc/03tap-contents.xml → tap-mac/tuntap/pkg/tuntap.pmdoc/03tap-contents.xml


+ 0 - 0
mac-tap/tuntap/pkg/tuntap.pmdoc/03tap.xml → tap-mac/tuntap/pkg/tuntap.pmdoc/03tap.xml


+ 0 - 0
mac-tap/tuntap/pkg/tuntap.pmdoc/04tun-contents.xml → tap-mac/tuntap/pkg/tuntap.pmdoc/04tun-contents.xml


+ 0 - 0
mac-tap/tuntap/pkg/tuntap.pmdoc/04tun.xml → tap-mac/tuntap/pkg/tuntap.pmdoc/04tun.xml


+ 0 - 0
mac-tap/tuntap/pkg/tuntap.pmdoc/index.xml → tap-mac/tuntap/pkg/tuntap.pmdoc/index.xml


+ 0 - 0
mac-tap/tuntap/src/lock.cc → tap-mac/tuntap/src/lock.cc


+ 0 - 0
mac-tap/tuntap/src/lock.h → tap-mac/tuntap/src/lock.h


+ 0 - 0
mac-tap/tuntap/src/mem.cc → tap-mac/tuntap/src/mem.cc


+ 0 - 0
mac-tap/tuntap/src/mem.h → tap-mac/tuntap/src/mem.h


+ 0 - 0
mac-tap/tuntap/src/tap/Info.plist → tap-mac/tuntap/src/tap/Info.plist


+ 4 - 2
mac-tap/tuntap/src/tap/Makefile → tap-mac/tuntap/src/tap/Makefile

@@ -19,7 +19,7 @@ BUNDLE_SIGNATURE = ????
 BUNDLE_PACKAGETYPE = KEXT
 BUNDLE_VERSION = $(TAP_KEXT_VERSION)
 
-INCLUDE = -I.. -I/System/Library/Frameworks/Kernel.framework/Headers
+INCLUDE = -I.. -I/System/Library/Frameworks/Kernel.framework/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/Kernel.framework/Headers
 CFLAGS = -Wall -mkernel -force_cpusubtype_ALL \
 	-fno-builtin -fno-stack-protector -arch i386 -arch x86_64 \
 	-DKERNEL -D__APPLE__ -DKERNEL_PRIVATE -DTUNTAP_VERSION=\"$(TUNTAP_VERSION)\" \
@@ -27,7 +27,9 @@ CFLAGS = -Wall -mkernel -force_cpusubtype_ALL \
 CCFLAGS = $(CFLAGS)
 LDFLAGS = -Wall -mkernel -nostdlib -r -lcc_kext -arch i386 -arch x86_64 -Xlinker -kext
 
-CCP = $(shell if [ -f /usr/bin/llvm-g++ ]; then echo llvm-g++; else echo g++; fi)
+#CCP = g++
+CCP = $(HOME)/Code/llvm-g++-Xcode4.6.2/bin/llvm-g++
+
 CC = gcc
 
 all: $(KMOD_BIN) bundle

+ 0 - 0
mac-tap/tuntap/src/tap/kmod.cc → tap-mac/tuntap/src/tap/kmod.cc


+ 0 - 0
mac-tap/tuntap/src/tap/tap.cc → tap-mac/tuntap/src/tap/tap.cc


+ 1 - 2
mac-tap/tuntap/src/tap/tap.h → tap-mac/tuntap/src/tap/tap.h

@@ -34,8 +34,7 @@
 
 #define TAP_IF_COUNT			16	/* max number of tap interfaces */
 
-// ZeroTier default MTU, see Constants.hpp
-#define TAP_MTU				2800
+#define TAP_MTU				4000
 
 #define TAP_LLADDR			tap_lladdr
 

+ 0 - 0
mac-tap/tuntap/src/tun/Info.plist → tap-mac/tuntap/src/tun/Info.plist


+ 0 - 0
mac-tap/tuntap/src/tun/Makefile → tap-mac/tuntap/src/tun/Makefile


+ 0 - 0
mac-tap/tuntap/src/tun/kmod.cc → tap-mac/tuntap/src/tun/kmod.cc


+ 0 - 0
mac-tap/tuntap/src/tun/tun.cc → tap-mac/tuntap/src/tun/tun.cc


+ 0 - 0
mac-tap/tuntap/src/tun/tun.h → tap-mac/tuntap/src/tun/tun.h


+ 0 - 0
mac-tap/tuntap/src/tun/tun_inet6_proto.c → tap-mac/tuntap/src/tun/tun_inet6_proto.c


+ 0 - 0
mac-tap/tuntap/src/tun/tun_inet_proto.c → tap-mac/tuntap/src/tun/tun_inet_proto.c


+ 0 - 0
mac-tap/tuntap/src/tun/tun_ioctls.h → tap-mac/tuntap/src/tun/tun_ioctls.h


+ 0 - 0
mac-tap/tuntap/src/tuntap.cc → tap-mac/tuntap/src/tuntap.cc


+ 0 - 0
mac-tap/tuntap/src/tuntap.h → tap-mac/tuntap/src/tuntap.h


+ 0 - 0
mac-tap/tuntap/src/tuntap_mgr.cc → tap-mac/tuntap/src/tuntap_mgr.cc


+ 0 - 0
mac-tap/tuntap/src/util.h → tap-mac/tuntap/src/util.h


+ 0 - 0
mac-tap/tuntap/startup_item/tap/Resources/English.lproj/Localizable.strings → tap-mac/tuntap/startup_item/tap/Resources/English.lproj/Localizable.strings


+ 0 - 0
mac-tap/tuntap/startup_item/tap/StartupParameters.plist → tap-mac/tuntap/startup_item/tap/StartupParameters.plist


+ 0 - 0
mac-tap/tuntap/startup_item/tap/tap → tap-mac/tuntap/startup_item/tap/tap


+ 0 - 0
mac-tap/tuntap/startup_item/tun/Resources/English.lproj/Localizable.strings → tap-mac/tuntap/startup_item/tun/Resources/English.lproj/Localizable.strings


+ 0 - 0
mac-tap/tuntap/startup_item/tun/StartupParameters.plist → tap-mac/tuntap/startup_item/tun/StartupParameters.plist


+ 0 - 0
mac-tap/tuntap/startup_item/tun/tun → tap-mac/tuntap/startup_item/tun/tun


+ 0 - 0
mac-tap/tuntap/test/tuntap/__init__.py → tap-mac/tuntap/test/tuntap/__init__.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/char_dev_harness.py → tap-mac/tuntap/test/tuntap/char_dev_harness.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/interface_harness.py → tap-mac/tuntap/test/tuntap/interface_harness.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/ioctl.py → tap-mac/tuntap/test/tuntap/ioctl.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/packet.py → tap-mac/tuntap/test/tuntap/packet.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/packet_codec.py → tap-mac/tuntap/test/tuntap/packet_codec.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/packet_reader.py → tap-mac/tuntap/test/tuntap/packet_reader.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/route.py → tap-mac/tuntap/test/tuntap/route.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/sockaddr.py → tap-mac/tuntap/test/tuntap/sockaddr.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/test_char_dev.py → tap-mac/tuntap/test/tuntap/test_char_dev.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/test_interface.py → tap-mac/tuntap/test/tuntap/test_interface.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/test_ip.py → tap-mac/tuntap/test/tuntap/test_ip.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/tun_tap_harness.py → tap-mac/tuntap/test/tuntap/tun_tap_harness.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/tun_tap_test_case.py → tap-mac/tuntap/test/tuntap/tun_tap_test_case.py


+ 0 - 0
mac-tap/tuntap/test/tuntap/tuntap_tests.py → tap-mac/tuntap/test/tuntap/tuntap_tests.py