Boomaga / boomaga

Boomaga provides a virtual printer for CUPS. This can be used for print preview or for print booklets.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Boomaga window doesn't display document

heygitty opened this issue · comments

After printing to boomaga I get an "empty" boomaga window since two weeks for all documents. No document is displayed, only the gray background. Nevertheless the Job is available and I can click on "Next sheet" or "Previous sheet". After Printing to a real printer from Boomaga, nothing will be printed. What's wrong with this installation? How can I debug this problem?

screenshot from 2017-07-12 09-49-58

I have the same problem, using Mint 17.3. Boomaga changed since 20-6-2017. Before that date it worked fine for years.

Same problem here. Have been searching for a solution for days on end. But to no avail. I already thought it must've been a bug that's been introduced in an update. This article seems to confirm that...

This is the same as #52.
Problem is caused by commit 61de231 "Fixed Issue #50 Can't open file from .cache folder".
Try use older - 0.9.0 version, it's work fine.
See my answer on #52.

Thank you for your answer

I've spend most of my evening to try and find version 0.9.0 but have been unable to find it. the only versions I can get my hands on are 0.9.1 (from the boomaga repo) and 0.7.1 from the ubuntu repo. Both of them give the same problem...

Can you please tell me where I can find version 0.9.0?

I finally got my hands on the .deb packet for 0.9.0. However, it requires libpoppler19 which is unavailable on ubuntu 16.04

How do I proceed?

Maybe it's nothing, but I noticed that I was working with an older version (0.7.1 build3) of Boomaga which is in the Ubuntu PPA's. So the problem is probably not in the Boomaga packet. I'm starting to think the problem is with an updated file from Ubuntu. However, I haven't a clue how to recover which file causes the problem...

I don't think that related with this commit. I think prooblem is new poppler version. They are not the first time break compatibility.

But if I change just one line:
QFileInfo(outFileName).dir().mkpath("."); ====> QDir().mkpath(outFileName + "/..");
it start working again.
(Ubuntu 14.04)
And the error message is related with boomagamerger:

/usr/lib/x86_64-linux-gnu/boomaga/boomagamerger: symbol lookup error: /usr/lib/x86_64-linux-gnu/boomaga/boomagamerger: undefined symbol: _ZN6PDFDoc15markPageObjectsEP4DictP4XRefS3_j

@stormy-gh

But if I change just one line ... it start working again.

The program was working, not because you changed the string, but because they rebuild the program from scratch. For test you can run following comand

objdump -T boomagamerger | grep mark | c++filt

@ALL
I found the problem. In libpoppler-0.41.0-0ubuntu1.2 sources was patched

From 771c82623e8e1e0c92b8ca6f7c2b8a81ccbb60d3 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Mon, 3 Jul 2017 22:44:42 +0200
Subject: pdfunite: fix crash in broken documents

Bug #101208
...
-void PDFDoc::markDictionnary (Dict* dict, XRef * xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum)
+void PDFDoc::markDictionnary (Dict* dict, XRef * xRef, XRef *countRef, Guint numOffset, int oldRefNum, newRefNum int, std::set<Dict*> *alreadyMarkedDicts)

As you can see signature of the function was changed. So boomagamerger can't find the function.

As quick fix. Maintainer can rebuild package with new libpoppler version it fix the problem. But it can cause problems with older versions of the library. Because 2 libraries with different signatures have same version, now I don't know how to solve it correctly.

I have tried the solution @stormy-gh gave. Took some time to find the sourcefile that needed changing but I found it, made the change and compiled the package.

Ofcourse I still had to install some additional packages, but after doing this everything installed smoothly and Boomaga is working again.

Thanks everyone for all your input.

@SokoloffA

The program was working, not because you changed the string, but because they rebuild the program from scratch.

Yes, you are right. I have made deb from sources with no modification and it's working.

So, quick fix for Ubuntu owners:
Download debian source:
https://launchpad.net/~boomaga/+archive/ubuntu/ppa/+files/boomaga_0.9.1-1trusty.tar.gz
tar -zxf boomaga_0.9.1-1trusty.tar.gz
cd boomaga-0.9.1/
dpkg-buildpackage -rfakeroot
sudo dpkg -i boomaga_0.9.1-1trusty_amd64.deb
Of couse the same way you can do for xenial, yakety, zesty etc.

Done, thnx.

Only had some problems with the signing of the package (and my packetmanager won't let me import the darn thing). But after creating the package without signing it worked like a charm (only it won't show up in my packet manager).

I have the same problem, but the quick fix from stormy-gh doesn't fix it. For dpkg-buildpackage -rfakeroot I get



dpkg-buildpackage: Information: Quellpaket boomaga
dpkg-buildpackage: Information: Quellversion 0.9.1-1trusty
dpkg-buildpackage: Information: Quelldistribution trusty
dpkg-buildpackage: Information: Quelle geändert durch Alexander Sokolov <sokoloff.a@gmail.com>
dpkg-buildpackage: Information: Host-Architektur amd64
dpkg-source --before-build boomaga-0.9.1
dpkg-checkbuilddeps: Fehler: Nicht erfüllte Bauabhängigkeiten: debhelper (>= 7.0.50~) 
cmake libqt4-dev (>= 4.6.0) libcups2-dev libsnappy-dev libpoppler-dev libpoppler-cpp-dev
dpkg-buildpackage: Warnung: Bauabhängigkeiten/-konflikte nicht erfüllt; Abbruch
dpkg-buildpackage: Warnung: (Verwenden Sie -d, um sich darüber hinwegzusetzen.)
xx@PC-Jens:/downloads/boomaga/boomaga-0.9.1$

**Edit: Ich habe jetzt die fehlenden Pakete installiert und erhalte:** 
...
dh_auto_configure: cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DLIB_SUFFIX=/x86_64-linux-gnu returned exit code 1
debian/rules:22: die Regel für Ziel „override_dh_auto_configure“ scheiterte
make[1]: *** [override_dh_auto_configure] Fehler 255
make[1]: Verzeichnis „/downloads/boomaga/boomaga-0.9.1“ wird verlassen
debian/rules:19: die Regel für Ziel „build“ scheiterte
make: *** [build] Fehler 2
dpkg-buildpackage: Fehler: Fehler-Exitstatus von debian/rules build war 2

Any help?

I'm having the same issue with the blank GUI, and print failures from Boomaga. As others have observed it was working before, but I did a fresh install of Linux Mint 18.1 and now have the problem.

Attempting to build the package on Linux Mint 18.1 as stormy-gh suggested. It looks to me like I'm getting the same error(s) as Anynom, at least as far as the final build failure is concerned.

So I got the source code and am trying to build, but have some issues:

First near the start of the build I get:
==> CMakeFiles/CMakeError.log <==
Determining if the Q_WS_WIN exist failed with the following output:
Change Dir: /home/bbick/Downloads/Boomaga/boomaga-0.9.1/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp

And from there errors where Q_WS_WIN is being referenced in source files. Note the build doesn't stop when these errors are hit. But earlier in the build the build process reports that Q_WS_WIN is found.

The build gets to the following point and finally does stop with exit status 2.

dh_auto_configure: cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DLIB_SUFFIX=/x86_64-linux-gnu returned exit code 1
debian/rules:22: recipe for target 'override_dh_auto_configure' failed
make[1]: *** [override_dh_auto_configure] Error 255
make[1]: Leaving directory '/home/bbick/Downloads/Boomaga/boomaga-0.9.1'
debian/rules:19: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

So what am I missing in my build setup that is causing this failure?

OK, I was able to figure out the build issue. I installed Libpoppler-private-dev from the repository. For good measure I also installed libpoppler-qt4-dev and some other libpoppler related -dev libraries. After doing that I was able to build the .deb package and install it. And now boomaga shows the file to be printed. And it prints successfully.

I figured this out by attempting to build boomaga as described in INSTALL.txt and that showed the error about the missing "private" headers for libpoppler..

Hopefully this will help others.

Thank you, problem is solved.

I got this:
xyz@general /media/ejf/Vrij-31GB/boomaga-0.9.1 $ dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package boomaga
dpkg-buildpackage: source version 0.9.1-1trusty
dpkg-buildpackage: source distribution trusty
dpkg-buildpackage: source changed by Alexander Sokolov sokoloff.a@gmail.com
dpkg-buildpackage: host architecture amd64
dpkg-buildpackage: warning: debian/rules is not executable; fixing that
dpkg-source --before-build boomaga-0.9.1
dpkg-checkbuilddeps: Unmet build dependencies: build-essential:native
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)

What is missing or wrong?

It looks like you are missing the build-essential package, so start with that. Then make sure that you have the other dependencies installed, and don't miss the libpoppler-private-dev package as well.

NOTE: You might want to try building boomaga following the instructions in INSTALL.txt first to sort out things that might be missing for just building boomaga and then try building the package once any issues there are sorted out.

I tried building the package first and hit problems that didn't leap out during the package build. I tracked down the missing private headers by going back and building boomaga following INSTALL.txt. Then the package built fine.

O.K. burtbick. I installed the build-eesentials but now I got other errors.

xyz@general /media/ejf/Vrij-31GB/boomaga-0.9.1 $ dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package boomaga
dpkg-buildpackage: source version 0.9.1-1trusty
dpkg-buildpackage: source distribution trusty
dpkg-buildpackage: source changed by Alexander Sokolov sokoloff.a@gmail.com
dpkg-buildpackage: host architecture amd64
dpkg-buildpackage: warning: debian/rules is not executable; fixing that
dpkg-source --before-build boomaga-0.9.1
fakeroot debian/rules clean
/usr/bin/fakeroot: regel 178: debian/rules: Toegang geweigerd
dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 126

In fakeroot line 178 we read:
FAKEROOTKEY=$FAKEROOTKEY LD_LIBRARY_PATH="$PATHS" LD_PRELOAD="$LIB" "$@"

What's next?

Have you tried to build boomaga following the instructions in the INSTALL.txt file? I would try that first before attempting to generate the .deb package. If there are any errors just trying to build the application by itself then the build of the .deb package will fail for sure.

Having said that it looks like you are getting an Access denied error on the debian/rules.

Did you extract your boomaga source code to a directory that requires root access, or access by a different user?
In my case I extracted the files to a subdirectory under my user account and had no issues with file access. Make sure you extracted the code to a directory that your user has access rights to.

If you extracted to a directory under your user then do an ls -l to check the ownership of all the files to make sure that they are all owned by your user.

In any case you need to track down why you are getting Access denied when the build tries to access debian/rules.

Worst case I suppose you could do sudo dpkg-buildpackage -rfakeroot but you shouldn't need to, so it would be better to track down the source of the problem.

I would first try building boomaga itself following the instructions in INSTALL.txt. That will make sure you have all the requirements for building satisfied. After you have a clean build of boomaga then it should be fairly easy to build the .deb package. And by making sure that the application itself builds cleanly you will eliminate potential confusing when trying to build the package.

Here's a summary from INSTALL.txt:
Prerequisites

Should you wish to build the program from the sources, you would need header files for:

  • Qt4 or Qt5
  • cups
  • snappy
  • poppler
  • poppler-cpp
    NOTE: Those header files are usually in packages that start with 'lib' and end with '-dev', e.g. libpoppler-dev
    Don't forget the libpoppler-private-dev package which is required.

After you have those packages installed:
Do the following assuming that you have extracted the source code for boomaga to a directory named boomaga

Create a build directory
mkdir ~/boomaga/build
Change into the new build directory
cd ~/boomaga/build
Run cmake (be sure to add the two '..'
cmake ..

Assuming that you have all of the required packages installed you should have a successful build of boomaga.

Then go back and follow the instructions to build the .deb package and you can sort out issues specific to building the package.

If there are errors generated during the build as outlined above then post the errors here and we may be able to help you sort it out. Note that you may have errors that appear earlier in the build that can be hidden since the build may not stop at the first error.

Thanks Burtbic,
Followed your advise and created everything in my home directory. No access problems and after the 'cmake' and 'dpkg-buildpackage' there was the .deb-file.
After install, everything works like before.
I am a user and not a programmer and now studying the 'dpkg command'.

Great... Glad I could help. While it sometimes seems a bit daunting to build a new application (and package) it is mostly making sure that all the required tools and libraries are installed. After that it is rare that there is an issue building from source, not that it can't happen of course.

If you have any other questions in the future don't hesitate to post and someone can help.

For Ubuntu guys

Hi guys, I made the packages for different versions of Ubuntu and published they on ppa. I forced versions of libpoppler-dev. I hope this will solve our problems. Please leave feedback - is in your distributions the program works or not.


For Mint guys

Kick your maintainers, about to upgrade the package and specify depends like:

libpoppler-dev (>= 0.44.0-3ubuntu2.1)

Versions for different libpopplerXX can be found in .dsc files on my ppa

Confirmed PPA Version on Ubuntu 16.10 fixes the issue. Thank you

I wrote my own PDF parser instead of poppler-private. Please test the drop_poppler branch.

Thank you...

I've downloaded and installed your package and it seems to work. Can't actually print at this moment without waking people up. Will test printing later...

However, dependencies still show that "libpoppler-cpp0" is needed. Is this your own library? Or the linux stock library?

In short
The libpoppler-cpp0 is a standard stock library for rendering PDF. It's standard API part of the poppler library.

More detail
The poppler has some public API:

These API is stable but limited. In fact, they only allow to render a PDF page. These APIs are used by many programs, so compatibility with them is tested by maintainers. This part of the poppler did not cause any problems.

But public poppler API don't allow to change the structure of the PDF document, what is required in my program. For this I used the so-called low-level poppler API (in Ubuntu this API is available in package libpoppler-private-dev so I call this API poppler-private). It's status is not exactly defined. On the one hand, on the website there's nothing says that I can't use it, and header files are available. On the other hand there is no documentation on it, and the API is changing in minor versions. Non stable API was a problem.

Now I don't use poppler-private for manipulation with PDF documents, I use my own parser.
But I use public poppler-cpp for PDF rendering.

That's clear, thanks...

Release 1.0 don't use poppler