[Fwd: cupsd vs avahi]

Andriy Gapon avg at icyb.net.ua
Thu Apr 8 08:05:08 UTC 2010



I decided to share this information with the list just in case somebody else
uses the functionality and tries to figure out what's wrong with it.

-------- Original Message --------
Subject: cupsd vs avahi
Date: Thu, 01 Apr 2010 18:51:22 +0300
From: Andriy Gapon <avg at icyb.net.ua>
To: Dirk Meyer <dinoex at FreeBSD.org>


Dirk,

it seems that currently DNSSD option has no effect in print/cups-base.
Event if the option is turned on, configure script fails to configure the support
because, as it seems, current net/avahi-libdns doesn't provide sufficient
compatibility that cups require.
E.g. symbol kDNSServiceFlagsShareConnection is not defined/declared.
This is an upstream avahi issue, not of our port.

Some links:
http://bugs.gentoo.org/293295
https://bugs.launchpad.net/bugs/465916
http://www.cups.org/str.php?L3066

It seems that there is a patch that adds native avahi support to cups and it looks
like the patch is used by major Linux distributions at the moment.
http://cvs.fedoraproject.org/viewvc/devel/cups/cups-avahi.patch?view=log

I tested the patch and it seems to work fine.
autoconf has to be run after applying it to regenerate configure script.

Thank you for maintaining this beast!
----- End Of Original Message -----


BTW, an update: dnssd backend that gets compiled when the patch is used still
doesn't seem to work correctly, it allows to see the printers in some way, but
doesn't allow to actually use them.
So I had to use perl dnssd backend from here:
http://www.openprinting.org/download/printing/dnssd

For comparison: output of the included dnssd and output of the perl dnssd in the
same environment.

Original:
DEBUG: Found "hp LaserJet 1320 series (80944D)._pdl-datastream._tcplocal"...
DEBUG: Found "hp LaserJet 1320 series (80944D)._printer._tcplocal"...
network
dnssd://hp%20LaserJet%201320%20series%20(80944D)._pdl-datastream._tcp.local/ "hp
hp LaserJet 1320 series" "hp LaserJet 1320 series (80944D)" "MFG:hp;MDL:LaserJet
1320 series" ""
network dnssd://hp%20LaserJet%201320%20series%20(80944D)._printer._tcp.local/
"hp hp LaserJet 1320 series" "hp LaserJet 1320 series (80944D)"
"MFG:hp;MDL:LaserJet 1320 series" ""

Perl:
network socket://10.99.0.59 "hp LaserJet 1320 series" "hp LaserJet 1320 series
10.99.0.59" "MDL:hp LaserJet 1320 series;DES:hp LaserJet 1320
series;CMD:POSTSCRIPT,PCL;CLS:PRINTER;"

So the perl one reports only one URL for the printer (for socket protocol), but
it reports it correctly.
Original dnssd reports two URLs (for socket and for lpd protocols), but those
dnssd:// URLs seem to be unusable for CUPS to do actual printing.

-- 
Andriy Gapon


More information about the freebsd-ports mailing list