Package Details: qpdfview 0.4.17beta1-2

Git Clone URL: https://aur.archlinux.org/qpdfview.git (read-only)
Package Base: qpdfview
Description: A tabbed PDF viewer using the poppler library.
Upstream URL: https://launchpad.net/qpdfview
Licenses: GPL2
Submitter: adamreichold
Maintainer: adamreichold
Last Packager: adamreichold
Votes: 179
Popularity: 8.642967
First Submitted: 2012-02-08 13:11
Last Updated: 2016-11-20 18:43

Dependencies (10)

Required by (0)

Sources (1)

Latest Comments

idomeneo1 commented on 2016-11-27 19:45

It's possible I may have forgotten to change the poppler support, as it's what I'm using now...

I also attempted to compile other frontends for mupdf, and they're broken, too. You'd think that, given the size of mupdf, it would be filled with backward compatibility!
Unfortunately, I'm not enough of a hack to sort out mupdf's incompatibilities :(

adamreichold commented on 2016-11-27 07:31

@idomeneo1: To build with *only* MuPDF support, one has to disable Poppler support since these are independent plug-ins, e.g. "CONFIG+=without_pdf with_fitz".

The other compilation errors look like the Fitz API changed significantly and incompatibly which happens quite often. As has been said before, the Fitz plug-in is effectively unmaintained, so patches welcome...

idomeneo1 commented on 2016-11-26 20:26

Has mupdf support been removed??

Building with "with_fitz" fails when poppler not installed:

Info: creating stash file /build/qpdfview/src/qpdfview-0.4.17beta1/.qmake.stash
( test -e Makefile.pdf-plugin || /usr/bin/qmake-qt5 /build/qpdfview/src/qpdfview-0.4.17beta1/pdf-plugin.pro 'CONFIG+= without_ps without_djvu with_fitz' -o Makefile.pdf-plugin ) && make -f Makefile.pdf-plugin
Project ERROR: poppler-qt5 development package not found
make: *** [Makefile:43: sub-pdf-plugin-pro-make_first-ordered] Error 3
==> ERROR: A failure occurred in build().
Aborting...


and then with poppler installed, it fails entirely:

make[1]: Entering directory '/build/qpdfview/src/qpdfview-0.4.17beta1'
g++ -c -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtWidgets -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtCore -Imoc-fitz -I/usr/lib/qt/mkspecs/linux-g++ -o objects-fitz/fitzmodel.o sources/fitzmodel.cpp
sources/fitzmodel.cpp: In function 'qpdfview::Model::Outline {anonymous}::loadOutline(fz_outline*)':
sources/fitzmodel.cpp:58:18: error: 'fz_outline {aka struct fz_outline_s}' has no member named 'dest'; did you mean 'next'?
if(item->dest.kind != FZ_LINK_NONE)
^~~~
sources/fitzmodel.cpp:58:31: error: 'FZ_LINK_NONE' was not declared in this scope
if(item->dest.kind != FZ_LINK_NONE)
^~~~~~~~~~~~
sources/fitzmodel.cpp:60:39: error: 'fz_outline {aka struct fz_outline_s}' has no member named 'dest'; did you mean 'next'?
section.link.page = item->dest.ld.gotor.page + 1;
^~~~
sources/fitzmodel.cpp: In member function 'virtual QImage qpdfview::Model::FitzPage::render(qreal, qreal, qpdfview::Rotation, const QRect&) const':
sources/fitzmodel.cpp:135:64: error: too few arguments to function 'fz_display_list* fz_new_display_list(fz_context*, const fz_rect*)'
fz_display_list* display_list = fz_new_display_list(context);
^
In file included from sources/fitzmodel.cpp:33:0:
/usr/include/mupdf/fitz/display-list.h:35:18: note: declared here
fz_display_list *fz_new_display_list(fz_context *ctx, const fz_rect *mediabox);
^~~~~~~~~~~~~~~~~~~
sources/fitzmodel.cpp:167:123: error: invalid conversion from 'uchar* {aka unsigned char*}' to 'int' [-fpermissive]
fz_pixmap* pixmap = fz_new_pixmap_with_data(context, fz_device_bgr(context), image.width(), image.height(), image.bits());
~~~~~~~~~~^~
sources/fitzmodel.cpp:167:125: error: too few arguments to function 'fz_pixmap* fz_new_pixmap_with_data(fz_context*, fz_colorspace*, int, int, int, int, unsigned char*)'
fz_pixmap* pixmap = fz_new_pixmap_with_data(context, fz_device_bgr(context), image.width(), image.height(), image.bits());
^
In file included from /usr/include/mupdf/fitz/image.h:8:0,
from /usr/include/mupdf/fitz/device.h:8,
from /usr/include/mupdf/fitz/display-list.h:7,
from sources/fitzmodel.cpp:33:
/usr/include/mupdf/fitz/pixmap.h:102:12: note: declared here
fz_pixmap *fz_new_pixmap_with_data(fz_context *ctx, fz_colorspace *colorspace, int w, int h, int alpha, int stride, unsigned char *samples);
^~~~~~~~~~~~~~~~~~~~~~~
sources/fitzmodel.cpp:169:48: error: cannot convert 'fz_pixmap* {aka fz_pixmap_s*}' to 'const fz_matrix* {aka const fz_matrix_s*}' for argument '2' to 'fz_device* fz_new_draw_device(fz_context*, const fz_matrix*, fz_pixmap*)'
device = fz_new_draw_device(context, pixmap);
^
sources/fitzmodel.cpp: In member function 'virtual QList<qpdfview::Model::Link*> qpdfview::Model::FitzPage::links() const':
sources/fitzmodel.cpp:198:18: error: 'fz_link {aka struct fz_link_s}' has no member named 'dest'; did you mean 'next'?
if(link->dest.kind == FZ_LINK_GOTO)
^~~~
sources/fitzmodel.cpp:198:31: error: 'FZ_LINK_GOTO' was not declared in this scope
if(link->dest.kind == FZ_LINK_GOTO)
^~~~~~~~~~~~
sources/fitzmodel.cpp:200:36: error: 'fz_link {aka struct fz_link_s}' has no member named 'dest'; did you mean 'next'?
const int page = link->dest.ld.gotor.page + 1;
^~~~
sources/fitzmodel.cpp:204:23: error: 'fz_link {aka struct fz_link_s}' has no member named 'dest'; did you mean 'next'?
else if(link->dest.kind == FZ_LINK_GOTOR)
^~~~
sources/fitzmodel.cpp:204:36: error: 'FZ_LINK_GOTOR' was not declared in this scope
else if(link->dest.kind == FZ_LINK_GOTOR)
^~~~~~~~~~~~~
sources/fitzmodel.cpp:206:36: error: 'fz_link {aka struct fz_link_s}' has no member named 'dest'; did you mean 'next'?
const int page = link->dest.ld.gotor.page + 1;
^~~~
sources/fitzmodel.cpp:208:22: error: 'fz_link {aka struct fz_link_s}' has no member named 'dest'; did you mean 'next'?
if(link->dest.ld.gotor.file_spec != 0)
^~~~
sources/fitzmodel.cpp:210:73: error: 'fz_link {aka struct fz_link_s}' has no member named 'dest'; did you mean 'next'?
links.append(new Link(boundary, QString::fromUtf8(link->dest.ld.gotor.file_spec), page));
^~~~
sources/fitzmodel.cpp:217:23: error: 'fz_link {aka struct fz_link_s}' has no member named 'dest'; did you mean 'next'?
else if(link->dest.kind == FZ_LINK_URI)
^~~~
sources/fitzmodel.cpp:217:36: error: 'FZ_LINK_URI' was not declared in this scope
else if(link->dest.kind == FZ_LINK_URI)
^~~~~~~~~~~
sources/fitzmodel.cpp:219:57: error: 'fz_link {aka struct fz_link_s}' has no member named 'dest'; did you mean 'next'?
const QString url = QString::fromUtf8(link->dest.ld.uri.uri);
^~~~
sources/fitzmodel.cpp:223:23: error: 'fz_link {aka struct fz_link_s}' has no member named 'dest'; did you mean 'next'?
else if(link->dest.kind == FZ_LINK_LAUNCH)
^~~~
sources/fitzmodel.cpp:223:36: error: 'FZ_LINK_LAUNCH' was not declared in this scope
else if(link->dest.kind == FZ_LINK_LAUNCH)
^~~~~~~~~~~~~~
sources/fitzmodel.cpp:225:57: error: 'fz_link {aka struct fz_link_s}' has no member named 'dest'; did you mean 'next'?
const QString url = QString::fromUtf8(link->dest.ld.launch.file_spec);
^~~~
make[1]: *** [Makefile.fitz-plugin:367: objects-fitz/fitzmodel.o] Error 1
make[1]: Leaving directory '/build/qpdfview/src/qpdfview-0.4.17beta1'
make: *** [Makefile:72: sub-fitz-plugin-pro-make_first-ordered] Error 2
==> ERROR: A failure occurred in build().
Aborting...

adamreichold commented on 2016-11-20 20:23

@snakeroot: Sorry for the confusion, I did the unthinkable and moved the tag in the upstream repository since there was a late bug fix. Launchpad and AUR took a few minutes to get into synchronization again...

snakeroot commented on 2016-11-20 19:49

qpdfview 0.4.17beta1-2

Below issue (comment 2016-11-20 18:38) has been corrected in qpdfview 0.4.17beta1-2; package builds properly.

snakeroot commented on 2016-11-20 18:38

qpdfview 0.4.17beta1-1

Source (https://launchpad.net/qpdfview/trunk/0.4.17beta1/+download/qpdfview-0.4.17beta1.tar.gz) is 404/not found.

gajjanag commented on 2016-01-29 03:55

@adamreichold: thanks for the update.

After playing with the Fitz plugin based qpdfview, although I do find it useful for fast opening of large files, I have found the lack of text search quite inconvenient. Thus, I will not be creating a package for this; interested people can either use qpdfview-bzr, or create a qpdfview-fitz.

adamreichold commented on 2016-01-02 11:05

@gajjanag I updated the README file shipped with qpdfview:

> The Fitz plug-in is currently considered experimental due to the lack of a maintainer. It also lacks support for various features, e.g. meta-data, encryption, text search, text extraction, form fields and annotations.

I don't think this should go into the manual page as I don't consider the Fitz plug-in support in the first place.

gajjanag commented on 2016-01-02 04:19

@adamreichold: Thanks for the update. I will create the package and upload it soon.

This may be better for your bug tracker, but can you please give a brief description of the missing functions in fitz (e.g a BUGS section to the man page)? I have not experienced them myself, but would like to be aware of them.

adamreichold commented on 2015-12-31 00:15

@gajjanag I am glad that you find the program useful. The reason that the stable package does not enable the Fitz plug-in even if the mupdf package is installed, is that this plug-in is considered experimental as there is no maintainer dedicated to tracking the changes of the Fitz API. It also lacks various functions that the Poppler-based plug-in provides. Hence, I would suggest creating a separate AUR package (maybe qpdfview-fitz or something like that) which enables the Fitz plug-in for the stable code base.

All comments