AppImage: system printers not available in print dialogue

• Nov 27, 2019 - 01:57
Reported version
3.3
Type
Functional
Frequency
Many
Severity
S3 - Major
Reproducibility
Always
Status
fixed
Regression
Yes
Workaround
Yes
Project

Comments

Title Linux Mint no printers. Only option is to create pdf file. All other apps print correctly. Linux Mint: cannot print
Frequency Many Once
Type Performance Functional

Because my printer is out of order, I can't check it. But by using AppImages I notice, that I can select the printer with 3.3.0 inside the printer dialogue, but not with version 3.3.2 and 3.3.3 (I didn't check 3.3.1 nor 3.3.4). (OS: OpenSuse)

IIRC 3.3.0 and 3.3.[1-4] use a differnt Qt version 5.12 vs 5.9, which might explain this?

Edit: actually the change was from Qt 5.9.3 to 5.9.8

Title Linux Mint: cannot print Linux Mint: system printers not available in print dialogue
Frequency Few Many
Regression No Yes

On linux mint 18.3 or 19.2 64-bit.

Run appimage v3.3.3 or 3.3.4; attempt to print a score, or find the print dialogue under edit|prefs|shortcuts. Only the inbuilt print to pdf option is visible, none of the system printers is available.

v3.2.3 works OK.

A local build of 3.3.4 on the mint 19.2 system also works OK. So the problem seems to lie with the distributed appimages for 3.3.x

Obvious workaround is to use the inbuilt pdf "printer", then print the resulting pdf.

Title Linux Mint: system printers not available in print dialogue AppImage: system printers not available in print dialogue

So nothing to do with Mint Linux
And the more obvious workaround is to export to Pdf and then print that, Pdf printers often don't work well

Just installed a distribution package of MS 3.3.4 for OpenSuse Leap 15.0 and I can select my printer driver (by using QT 5.9.4). But it seems not to work with the AppImage (QT 5.9.8).

I don't actually have printing set up so I can't really verify much, but if I run a self-built executable using Qt 5.9.8, I do see the PDF CUPS printer I attempted to install (in addition to Print to File), whereas with the AppImage I see only Print to File.

From what I can see, inside the "plugin" folder of the AppImage the "printsupport" folder and relative library are missing.
I think it is a bug of linuxdeploy (with qt-plugin), which is used to build the AppImage since 39ef4d5317568f483
see also my previous comment https://musescore.org/en/node/280926#comment-884383 in particular the point about the printsupport folder (however, all other points are valid as well).
I had tried to play with EXTRA_QT_PLUGINS variable, see https://github.com/linuxdeploy/linuxdeploy-plugin-qt#environment-variab… , but I had no success.

Great information, thanks! So, I wonder if there is some sort of workaround for the existing AppImages, then - a way to force them to use a locally-installed copy of that folder? Or is that what you were trying to do with EXTRA_QT_PLUGINS?

That's great! I don't actually have a working printer on my Linux system anyhow (si I export to PDF on Google Drive then print from another device), but hopefully this will help others while we sort this out.

Mmmhhh, i just read this thread a few times but Í think I am too stupid to find out the solution or workaround for this issue. I understood that I have to extract something and put it in a folder.
May I ask someone to give a more detailled and structered information?

In reply to by Thauxulon

@ Thauxulon :
Ciao.
The procedure is a little involved.
Here are the steps:
1- Run the AppImage with "--appimage-extract" argument, i.e.
./MuseScore-3.3.4-x86_64.AppImage --appimage-extract
It extracts the AppImage content into the folder squashfs-root/
2- Download the archive https://s3.amazonaws.com/utils.musescore.org/qt598.zip
This is the Qt version used to build the AppImage. Extract from the zip bundle the folder plugins/printsupport which contains libcupsprintersupport.so and copy such printsupport folder (and its content) inside the plugin folder squashfs-root/plugins
3- Now you can run the "patched" AppImage with:
cd squashfs-root
./AppRun

Please let us know if this workaround solves the printing problem.
Ciao,
ABL

@Steve Walker :
Indeed, I wrote that instructions for the latest AppImage and for 64bit operating system, but you need to adapt it to the MuseScore 3.3.x AppImage you are using, like this:
./[Name of your AppImage] --appimage-extract
where [Name of your AppImage] is for example MuseScore-3.3.4-x86_64.AppImage for MuseScore 3.3.4, and MuseScore-3.3.3-x86_64.AppImage for MuseScore 3.3.3, et cetera. And remember to cd to the folder where you put your AppImage before running that instruction ;-)

Edit: I don't think you are using a 32bit AppImage, since the last 32bit AppImage I can find is the one for MuseScore 2.1.

Status PR created fixed

Fixed in branch master, commit 21ba2316c2

_fix #297719: AppImage: add more libraries

New files bundled in AppImage:

  • libcupsprintersupport.so - Qt printsupport plugin
  • libnss3.so - a fallback for Chromebook devices
  • findlibs - tiny C program to check system libraries_
Fix version
3.4.0