homebrew-core/Formula/tuntap.rb
Simon Sigurdhsson a763d3df9f Remove global methods from formulae
Removes any global methods from formulae, and moves #kext_prefix (which
seems to be at least somewhat abstractable) into the Formula class. The
only formula with global methods is now aspell; it (and its generating
script in contrib) has been changed to prefix that method with
`aspell_`, to minimize the risk of name collisions.

Closes Homebrew/homebrew#19331.
Closes Homebrew/homebrew#19343.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-04-21 23:48:50 -05:00

46 lines
1.6 KiB
Ruby

require 'formula'
class Tuntap < Formula
homepage 'http://tuntaposx.sourceforge.net/'
url 'git://git.code.sf.net/p/tuntaposx/code', :tag => 'release_20111101'
version '20111101'
head 'git://git.code.sf.net/p/tuntaposx/code', :branch => 'master'
def install
ENV.j1 # to avoid race conditions (can't open: ../tuntap.o)
cd 'tuntap' do
system "make"
kext_prefix.install "tun.kext", "tap.kext"
prefix.install "startup_item/tap", "startup_item/tun"
end
end
def caveats; <<-EOS.undent
In order for TUN/TAP network devices to work, the tun/tap kernel extensions
must be installed by the root user:
sudo cp -pR #{kext_prefix}/tap.kext /Library/Extensions/
sudo cp -pR #{kext_prefix}/tun.kext /Library/Extensions/
sudo chown -R root:wheel /Library/Extensions/tap.kext
sudo chown -R root:wheel /Library/Extensions/tun.kext
sudo touch /Library/Extensions/
To load the extensions at startup, you have to install those scripts too:
sudo cp -pR #{prefix}/tap /Library/StartupItems/
sudo chown -R root:wheel /Library/StartupItems/tap
sudo cp -pR #{prefix}/tun /Library/StartupItems/
sudo chown -R root:wheel /Library/StartupItems/tun
If upgrading from a previous version of tuntap, the old kernel extension
will need to be unloaded before performing the steps listed above. First,
check that no tunnel is being activated, disconnect them all and then unload
the kernel extension:
sudo kextunload -b foo.tun
sudo kextunload -b foo.tap
EOS
end
end