Previously: LibreOffice printing Does.Not.Work. Not with GNOME, not with manual config, not at all. And maybe never has.; 2014-12-02
Frustration: very high
- GNOME applications have their own print dialog; it works with CUPS.
- GNOME print dilog can listen to IPP broadcasts
- GNOME applications “just work.”
Verdict: GNOME printing “just works.” Full Stop.
- LibreOffice applications have their own print dialog that might not work with CUPS.
- LibreOffice print dialog cannot listen to IPP broadcasts
- LibreOffice printing must be configured on a per-machine basis with spadmin
- This can be done on a site-wide basis by superuser
- This can be done on a per-user basis by the consumer.
- Absent appropriate configuration, “Generic Printer” is the LibreOffice method
This seems to just call lpr (/usr/bin/lpr) without any further arguments
Of course, if printing is not manually configured (see above), this will fail silently.
Verdict: LibreOffice does not “just work”; you have to know a lot to get it configured correctly.
- Configuration Files
- Two proud & storied developer groups: GNOME & LibreOffice.
- Both implement a print dialog for their applications & suitable for their culture.
- Neither dialog system works with the other.
- Neither is willing to work with the other and change anything.
- The consumer is left with: “does not work.”
- Internet Printing Protocol (IPP)
- port 631
- tcp/631 for client out connecting to cupsd (server)
- udp/631 for server broadcasting availability of printers on the subnet
- FirewallD of Fedora
- May or may not allow anything but ssh (port 22) by default; tThis has varied across the releases.
- Default in Fedora 20+ is to run firewalld with aggressive blocking (it’s a nasty world out there).
$ cat /etc/fedora-release Fedora release 20 (Heisenbug)
$ rpm -q -f /usr/bin/libreoffice libreoffice-core-18.104.22.168-7.fc20.x86_64 $ rpm -q cups cups-1.7.5-13.fc20.x86_64 $ rpm -q -a | grep system-config-print system-config-printer-udev-1.4.7-1.fc20.x86_64 system-config-printer-1.4.7-1.fc20.x86_64 system-config-printer-libs-1.4.7-1.fc20.noarch $ rpm -q -a | grep firewall-config firewall-config-0.3.13-1.fc20.noarch
To ensure that the local print server is broadcasting…
$ sudo tcpdump -i em1 'port 631' tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on em1, link-type EN10MB (Ethernet), capture size 65535 bytes 12:15:56.433174 IP loolie.sanguine.local.ipp > broadcast.sanguine.local.ipp: UDP, length 257 12:15:56.433199 IP loolie.freerange.local.ipp > broadcast.wireline.freerange.local.ipp: UDP, length 256 12:15:56.433203 IP loolie.wireline.foreign.local.ipp > broadcast.wireline.foreign.local.ipp: UDP, length 256 12:15:56.436333 IP joubijou.sanguine.local.ipp > broadcast.sanguine.local.ipp: UDP, length 260 12:15:56.436341 IP joubijou.freerange.local.ipp > broadcast.wireline.freerange.local.ipp: UDP, length 259 12:15:56.436388 IP joubijou.wireline.foreign.local.ipp > broadcast.wireline.foreign.local.ipp: UDP, length 259
Configure the host’s firewall to allow IPP announcements to be received.
- GNOME print dialog “just works” with GNOME apps & CUPS.
Exhibit with gedit.
- Host requires configuration via system-config-printer
- Host requires configuration via spadmin
Establish a manually-defined printer which pulls from the IPP-available printer on the print server. You have to do this because LibreOffice’s print dialog cannot understand the IPP broadcast messages that are flying about. LibreOffice can only shoot at an existing IPP printer (via cupsd) that you have defined manually.
spadmin of LibreOffice
Now you have to manually configure LibreOffice to use the manually-configured printer that you just manually configured. This is a manual step that you must manually repeat for each host and consumer that you manage. Manually.