1
0
forked from pool/cups-airprint
Go to file
2016-02-22 09:11:39 +00:00
.gitattributes Accepting request 359392 from home:oreinert 2016-02-15 09:12:53 +00:00
.gitignore Accepting request 359392 from home:oreinert 2016-02-15 09:12:53 +00:00
airprint-generate.patch Accepting request 359392 from home:oreinert 2016-02-15 09:12:53 +00:00
airprint-generate.py Accepting request 359392 from home:oreinert 2016-02-15 09:12:53 +00:00
airprint-generate.py.8 Accepting request 359392 from home:oreinert 2016-02-15 09:12:53 +00:00
apple.types Accepting request 359392 from home:oreinert 2016-02-15 09:12:53 +00:00
CREDITS.txt Accepting request 359392 from home:oreinert 2016-02-15 09:12:53 +00:00
cups-airprint.changes Accepting request 360779 from home:jsmeix:branches:Printing 2016-02-22 09:10:27 +00:00
cups-airprint.spec Proper indentation for "Requires: cups-filters >= 1.0.25" 2016-02-22 09:11:39 +00:00
LICENSE.txt Accepting request 359392 from home:oreinert 2016-02-15 09:12:53 +00:00
local.convs Accepting request 359392 from home:oreinert 2016-02-15 09:12:53 +00:00
README.SUSE Accepting request 359392 from home:oreinert 2016-02-15 09:12:53 +00:00

1. INTRODUCTION
---------------

AirPrint is an Apple technology that helps you create full-quality printed
output from iOS or OS X devices without the need to download or install
drivers. 

AirPrint works by combining two open-source technologies:
  -mDNS/DNS-SD (a.k.a. Bonjour, or ZeroConf) for printer discovery, and
  -CUPS (actually, the IPP protocol) for sending print jobs.

On openSUSE Linux, the standard mDNS implementation is called Avahi.


2. PREREQUISITES
----------------

All printers for which you want to add AirPrint support must first be set up to
accept print jobs via CUPS. Only shared CUPS printers will be offered for
access via AirPrint.

In the following instructions it is assumed (and recommended) that the CUPS and
Avahi servers are running on the same host, and that the default configuration
of Avahi is used. It is also assumed that the (Apple) client devices and the
CUPS/Avahi host are on the same subnet (see 5.2).


3. AUTOMATIC CONFIGURATION
--------------------------

By installing this package, some setup steps are automatically taken care of:

  -All required depencies are installed automatically (if you use zypper).

  -Some extra MIME configuration files for CUPS are added:

	/usr/share/cups/mime/apple.types
	/usr/share/cups/mime/local.convs

  -A tool for generating mDNS service profiles for CUPS printers is installed:

	/usr/sbin/airprint-generate.py


4. MANUAL CONFIGURATION
-----------------------

The following manual configuration steps must be carried out after installing
this package:


4.1 CUPS configuration

A "ServerAlias" configuration entry must be added to /etc/cups/cupsd.conf.  You
can do it by running the command

  cupsctl "ServerAlias=$HOST.local"

or by editing the file manually. The command is convenient, but has the
unfortunate side effect of completely reformatting the cupsd.conf file, as well
as removing all comments from it.

Next, enable printer sharing if it isn't enabled already:

  cupsctl --share-printers

Make sure each individual printer you wish to access via AirPrint is also shared.

Finally, restart CUPS:

  systemctl restart cups


4.2 Avahi configuration

Generate Avahi service definitions for your CUPS printers:

  airprint-generate.py -v -d /etc/avahi/services/

With the -v option, the script prints some output about the printers it
generates profiles for. If you see no output at all, check the CUPS settings.

Make sure that the Avahi service is running.


4.3 Firewall

If there is a firewall between the CUPS/Avahi host and your Apple devices, the
relevant service ports must be opened:

 -port 631 (ipp)
 -port 5353 (mdns)

If you are using SuSEfirewall2, you can run "yast firewall" to open the ports.
Under "Allowed Services" you need to allow the "Zeroconf/Bonjour Multicast DNS"
service, and, in the advanced settings, to open the "ipp" TCP port.

If you want to edit /etc/sysconfig/SuSEfirewall2 manually, you need to add
"ipp" and "avahi" to the following variables:

  FW_SERVICES_EXT_TCP="ipp"
  FW_CONFIGURATIONS_EXT="avahi"


5. REMARKS
----------

5.1 CUPS internal mDNS responder

With CUPS version 1.4 an internal mDNS responder was added for announcing
printers on the local network. Unfortunately, the printer records it sends are
not accepted for use with AirPrint. [1]

The workaround is to publish duplicate printer records specifically tailored
for AirPrint, which is what this package is for.


5.2 Local subnet only

These instructions only work if your Apple devices are on the same subnet as
the CUPS/Avahi server. It is possible to make AirPrint work across subnets, but
it takes some more effort (e.g., see [2]), and it is out of scope for this
package.

[1] http://www.finnie.org/2010/11/13/airprint-and-linux/
[2] http://pig.made-it.com/cups-dns-sd.html#7041


5.3 Trademarks

AirPrint and OS X are trademarks of Apple Inc., registered in the U.S. and
other countries.