Difference between revisions of "Shairport Sync"

From ArchWiki
Jump to: navigation, search
(Configuration: Added example systemd service file)
m (Installation)
(6 intermediate revisions by 2 users not shown)
Line 8: Line 8:
 
* {{AUR|shairport-git-sysdcompat}}
 
* {{AUR|shairport-git-sysdcompat}}
  
The third package provides ready made systemd scripts and hence comes recommended. It is also recommended to install the package {{pkg|perl-io-socket-inet6}} in order to prevent the daemon from giving warnings about the unavailability of inet6 and also for compatibility with iTunes.
+
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.
  
 
==Configuration==
 
==Configuration==
Line 22: Line 22:
 
Type=forking
 
Type=forking
 
PIDFile=/var/run/shairport.pid
 
PIDFile=/var/run/shairport.pid
ExecStart=/usr/local/bin/shairport.pl -d --writepid=/var/run/shairport.pid -a %i
+
ExecStart=/usr/bin/shairport.pl -d --writepid=/var/run/shairport.pid -a %i
  
 
[Install]
 
[Install]
 
WantedBy=multi-user.target</nowiki>}}
 
WantedBy=multi-user.target</nowiki>}}
  
For starting the service, simply issue the command:
+
If you are manually creating the file, remember to run {{ic|systemctl daemon-reload}} after writing the file. For starting the service, simply issue the command:
  
  #systemctl start shairport@<nameofserver>.service
+
  # 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:
 
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
+
  # 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.
 
The result should be an AirPort station by the name <nameofserver> which should be able to accept output from any Apple product.

Revision as of 04:44, 11 November 2013

Shairport is a utility for emulating the functionality of an AirPort Express on a linux box. 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.

Installation

Shairport is available in the AUR through three different packages:

The third package provides ready made systemd scripts and hence comes recommended. It is recommended to install the package 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 abrasive/shairport, which no longer uses Perl, and therefore does NOT require perl-io-socket-inet6.

Configuration

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:

[Unit]
Description=Shairport Airtunes emulator
Requires=avahi-daemon.service

[Service]
Type=forking
PIDFile=/var/run/shairport.pid
ExecStart=/usr/bin/shairport.pl -d --writepid=/var/run/shairport.pid -a %i

[Install]
WantedBy=multi-user.target

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.