Skip to content
Dave Cottlehuber edited this page Jul 27, 2015 · 11 revisions

Overview

swirl is developed on Mac OS X 10.9 and FreeBSD 10 in parallel, and tested against Ubuntu on https://travis-ci.org/ after each commit as well. The latest available Erlang/OTP release is used (currently at OTP 18.0.1), however any version since the 17.0 release should be compatible.

FreeBSD 10.0 was chosen because zfs is the only prudent filesystem if your data is of any value to you, and it's got a great network stack under the hood.

Swirl has no external dependencies other than Erlang/OTP so git, gnu make, and erlang are sufficient. To build the docs, you'll need hugo and perl installed too.

The approach for FreeBSD, linux and OSX should be pretty much the same. Windows, while not tested, should work if using cygwin or mingw as a shell.

git clone git://github.com/skunkwerks/swirl/
cd swirl
make all dev

Check out the README.md in the project repo for more information.

LibSwift is the companion reference GPL-licenced tool, which is easily buildable on most common Unix platforms. It's great for testing and debugging output together with swirl.

Mac OS X 10.9+

Using the homebrew package manager, simply create a new file in /usr/local/Library/Formula/libswift.rb with the following contents:

class Libswift < Formula
  homepage "http://libswift.org/"
  url "https://github.com/libswift/libswift/archive/v0.1-beta.tar.gz"
  version "0.1-beta"
  sha256 "ba7869e0a4e1ec4b6b8f526ffc53137d9f39b5da1562b3bac1454a60f4ceb88b"
  head "https://github.com/libswift/libswift.git", :branch => :devel

  depends_on "libevent"

  def install
    system "make"
    bin.install "swift" => "libswift"
  end

  test do
    # make a merkle tree hash from an arbitrary file
    system "#{bin}/libswift", "-f", "#{bin}/libswift"
  end
end

and then brew install -v libswift, or use brew install -v --HEAD libswift for the latest development branch.

Ubuntu

You'll need the dev versions of both openssl and libevent2 packages.

sudo apt-get install -y libevent-dev libssl-dev build-essential git
git clone git://github.com/libswift/libswift
cd libswift
make swift-dynamic

As usual there's a swift binary now built for you.

Fedora 20

You'll need the devel versions of both openssl and libevent2 packages, for older fedora versions, make sure you're not getting a version that's < 2.0 please.

sudo yum install -y libevent-devel openssl-devel
git clone git://github.com/libswift/libswift
cd libswift
make swift-dynamic

You now should have a working swift binary inside the git repo.

FreeBSD 10

The upstream patch for FreeBSD has finally been merged, so clone and build the devel branch.

pkg install curl git gmake libevent2
git clone git://github.com/libswift/libswift
cd libswift
gmake swift-static

You now should have a working swift static binary inside the git repo. You may also want a compatible FreeBSD rc.d/swift script, to start/stop swift as a daemon. Save it as /usr/local/etc/swift as usual.

Testing

You can usually connect to ppsp://wintermute.skunkwerks.at:7777/c89800bfc82ed01ed6e3bfd5408c51274491f7d4 to grab a hash. Make sure you're going over IPv4 if you are having issues.

For OSX use libswift instead of swift; the latter is the new Apple programming language compiler.

./swift --debug --progress \
  --tracker 144.76.138.208:7777 \
  --hash c89800bfc82ed01ed6e3bfd5408c51274491f7d4 \
  -o /tmp/
Clone this wiki locally