Difference between revisions of "Shairport Sync"

From ArchWiki
Jump to: navigation, search
(the protocol is called "AirPlay")
(Installation: the other two packages no longer exist, the remaining one has a systemd service file included)
Line 3: Line 3:
Shairport is available in the AUR through three different packages:
You can install Shairport with the {{AUR|shairport-git}} package from the [[AUR]].
* {{AUR|shairport}}
* {{AUR|shairport-git}}
* {{AUR|shairport-git-sysdcompat}}
The third package provides ready made systemd scripts and hence comes recommended. It is recommended to install the package {{pkg|perl-io-socket-inet6}} when installing either of the first two packages. This prevents the daemon from giving warnings about the unavailability of inet6 and compatibility with iTunes. However, the third package is based on [https://github.com/abrasive/shairport abrasive/shairport], which no longer uses Perl, and therefore does NOT require perl-io-socket-inet6.

Revision as of 22:08, 23 June 2014

Shairport is a utility for emulating AirPlay functionality on Linux. However, since it has been created by reverse-engineering Apple's key used in its AirPort Express, be advised that the functionality may be removed at Apple's discretion.


You can install Shairport with the shairport-gitAUR package from the AUR.



The configuration file for systemd lives in:


Name your Shairport server, then start the service:

# systemctl start shairport

Other versions

The configuration is managed by the perl script /usr/bin/shairport.pl. For novice users, the defaults should be left as is, unless they wish to set a password for the AirPlay server. In this case, they should change line 56 from my $password = ''; to my $password = '<yourpassword>'; where <yourpassword> is to be replaced by the password of your choice.

If you have not used the shairport-git-sysdcompat package, then you will need to create the systemd service file on your own. The one used by the sysdcompat package is:

Description=Shairport Airtunes emulator

ExecStart=/usr/bin/shairport.pl -d --writepid=/var/run/shairport.pid -a %i


If you are manually creating the file, remember to run systemctl daemon-reload after writing the file. For starting the service, simply issue the command:

# systemctl start shairport@<nameofserver>.service

where <nameofserver> can be any name of your choice. While it has not been tested, it would be good if the name avoided any special characters. For automatically starting the service at launch, issue the command:

# systemctl enable shairport@<nameofserver>.service

The result should be an AirPort station by the name <nameofserver> which should be able to accept output from any Apple product.