Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
file 107 lines (83 sloc) 3.442 kb

Type make to build the packet decoder, hairtunes.

You need the following installed:

  • openssl
  • libao
  • Perl 5.10 or higher
  • Linux: avahi (or, for embedded systems, howl)
  • Windows/Mac OS X: Bonjour

Perl modules (install from CPAN if needed e.g. perl -MCPAN -e 'install X'):

  • HTTP::Request
  • HTTP::Message
  • Crypt::OpenSSL::RSA
  • IO::Socket::INET6
  • Net::SDP

Debian/Ubuntu:

apt-get install build-essential libssl-dev libcrypt-openssl-rsa-perl libao-dev libio-socket-inet6-perl libwww-perl avahi-utils pkg-config
make
perl shairport.pl

Redhat/Fedora:

yum install openssl-devel libao libao-devel perl-Crypt-OpenSSL-RSA perl-IO-Socket-INET6 perl-libwww-perl avahi-tools
make
perl shairport.pl

Gentoo/Funtoo

echo "media-libs/libao  alsa" >> /etc/portage/package.use
echo "net-dns/avahi  mdnsresponder-compat" >> /etc/portage/package.use
echo "dev-perl/HTTP-Message  ~x86" >> /etc/portage/package.keywords
echo "dev-perl/HTTP-Date  ~x86" >> /etc/portage/package.keywords
echo "dev-perl/Encode-Locale  ~x86" >> /etc/portage/package.keywords
echo "dev-perl/LWP-MediaTypes  ~x86" >> /etc/portage/package.keywords
emerge libao avahi dev-perl/HTTP-Message dev-perl/Crypt-OpenSSL-RSA dev-perl/IO-Socket-INET6
rc-update add dbus default
rc-update add avahi-daemon default
/etc/init.d/dbus start
/etc/init.d/avahi-daemon start
make
perl shairport.pl

OpenBSD

pkg_add -r gmake libao avahi p5-libwww p5-Crypt-OpenSSL-RSA p5-IO-Socket-INET6
gmake
perl shairport.pl

FreeBSD

pkg_add -r gmake libao avahi p5-libwww p5-Crypt-OpenSSL-RSA p5-Net-SDP p5-IO-Socket-INET6
gmake
# ipv6 does not work for me, but maybe works for you?  might be due to not
# having local ipv6 working dns names?
# force ipv4 on FreeBSD with '-4' on the command line.
perl shairport.pl -4

Mac OS X:

  • install XCode
  • install Homebrew or MacPorts
  • type:

    $ export ARCHFLAGS="-arch x86_64" # (replace x86_64 by your arch)
    $ brew install pkg-config libao # for [Homebrew](https://github.com/mxcl/homebrew)
    $ port install pkgconfig libao # for [MacPorts](http://www.macports.org/)
    $ make
    $ perl -MCPAN -e 'install Crypt::OpenSSL::RSA' # (may require sudo)
    $ perl -MCPAN -e 'install IO::Socket::INET6' # (may require sudo)
    $ perl shairport.pl
    

    Users of OS X 10.5 and below will need to install a newer Perl (via port/brew).

How to run as a daemon on Mac 10.6

$ cp hairtunes shairport.pl /usr/local/bin
$ vi /usr/local/bin/shairport.pl # change the path of hairtunes from ./hairtunes to /usr/local/bin/hairtunes
$ mkdir -p ~/Library/LaunchAgents
$ cp org.mafipulation.shairport.plist ~/Library/LaunchAgents/
$ launchctl load org.mafipulation.shairport.plist
$ launchctl unload org.mafipulation.shairport.plist # (to remove)

Windows

  • Download and install Cygwin.
  • During setup, select
    • openssl-devel
    • openssl
    • libao
    • libao-devel
    • gcc4
    • make
    • pkg-config
    • perl
  • Install Bonjour for Windows
  • Launch the Cygwin Bash shell
  • type:

    $ make
    $ perl -MCPAN -e 'install Crypt::OpenSSL::RSA'
    $ perl -MCPAN -e 'install IO::Socket::INET6'
    $ perl shairport.pl
    
Something went wrong with that request. Please try again.