| 1 | How to install secnet on a Fink-equipped OS X system: |
| 2 | - Install GMP: |
| 3 | fink install gmp |
| 4 | - Download and install ADNS: |
| 5 | ./configure --disable-dynamic |
| 6 | make |
| 7 | sudo make install |
| 8 | - Build secnet: |
| 9 | ./configure |
| 10 | make |
| 11 | sudo make install |
| 12 | - Install tuntap for OSX from http://tuntaposx.sourceforge.net/ |
| 13 | - Create /etc/secnet/{key,secnet.conf,sites.conf} as usual |
| 14 | - If you don't want secnet 'always on', edit |
| 15 | uk.org.greenend.secnet.plist and remove *both* these two lines: |
| 16 | <key>RunAtLoad</key> |
| 17 | <true/> |
| 18 | - Create the 'secnet' user and install the job configuration: |
| 19 | ./setup.mac. |
| 20 | |
| 21 | To start secnet: |
| 22 | sudo launchctl start uk.org.greenend.secnet |
| 23 | |
| 24 | To stop secnet: |
| 25 | sudo launchctl stop uk.org.greenend.secnet |
| 26 | |
| 27 | To uninstall: |
| 28 | sudo launchctl unload /Library/LaunchDaemons/uk.org.greenend.secnet.plist |
| 29 | sudo rm -f /Library/LaunchDaemons/uk.org.greenend.secnet.plist |
| 30 | |
| 31 | If you need to enable IP forwarding: |
| 32 | sudo sysctl -w net.inet.ip.forwarding=1 |
| 33 | |
| 34 | (Note that on a Mac, you need to enable IP forwarding if you want to |
| 35 | route to addresses on one interface via another; i.e. if you expect to |
| 36 | be able to reach an address on en0 with a packet delivered through |
| 37 | tun0, IP forwarding must be turned on.) |
| 38 | |
| 39 | How to import secnet into XCode 3.2: |
| 40 | |
| 41 | - Set up build directories as follows: |
| 42 | $ mkdir build/Debug build/Release |
| 43 | $ cd build/Debug |
| 44 | $ ~/src/secnet/configure CFLAGS="-g -O0" |
| 45 | $ cd ../Release |
| 46 | $ ~/src/secnet/configure |
| 47 | $ cd ../.. |
| 48 | (Replace ~/src/secnet with the *absolute* path to your secnet tree - |
| 49 | XCode cannot map the relative paths in errors to the source files |
| 50 | otherwise.) |
| 51 | - Start XCode |
| 52 | - Menubar -> File -> New Project |
| 53 | - Choose the Mac OS X -> Other -> External Build System template |
| 54 | - Choose the *parent* of the secnet directory and call the project |
| 55 | secnet |
| 56 | - OK the overwrite (it won't overwrite anything that matters) |
| 57 | - This creates 'build' and 'secnet.xcodeproj' directories in your |
| 58 | secnet tree. |
| 59 | - Right-click Groups & Files -> secnet -> Add -> Existing files and |
| 60 | select all the *.c, *.h, *.y and *.fl files. |
| 61 | - Omit the following files: |
| 62 | - *.yy.[ch] \ |
| 63 | - *.tab.[ch] | generated during build |
| 64 | - version.c | |
| 65 | - config.h / |
| 66 | - snprintf.[ch] - unnecessary on OSX |
| 67 | - Sort by 'kind' may make this easier |
| 68 | - Leave 'Copy items...' unchecked |
| 69 | - Add To Targets should have 'secnet' checked |
| 70 | - For conffile.fl, right click Get Info -> General, and set File |
| 71 | Type to sourcecode.lex. |
| 72 | - Under Groups & Files -> secnet, select all source files and right |
| 73 | click Get Info -> General, and set: |
| 74 | - Tab Width to 8 |
| 75 | - Indent Width to 4 |
| 76 | - Check Editor uses tabs |
| 77 | - Double click click Groups & Files -> Targets secnet |
| 78 | - Add '-C $TARGET_BUILD_DIR' to the start of the arguments. |
| 79 | |
| 80 | You should now be able to build both debug and release configurations |
| 81 | using ⌘B. |
| 82 | |
| 83 | Richard Kettlewell 2011-07-23 |