Bug 374650 - Duplicate okular_poppler backend selection entry
Summary: Duplicate okular_poppler backend selection entry
Status: RESOLVED FIXED
Alias: None
Product: okular
Classification: Applications
Component: PDF backend (show other bugs)
Version: 1.0.0
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Okular developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-06 19:16 UTC by Patrick
Modified: 2017-01-08 18:48 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick 2017-01-06 19:16:17 UTC
When opening a pdf file, Okular shows a backend selection dialog with a duplicate 'okular_poppler' entry. This happens only when the 'Show backend selection dialog' option is enabled. Other backends seem to work fine.

Steps to reproduce:
1. Start Okular.
2. Make sure that the 'Show backend selection dialog' (General Options) is enabled.
3. Open a pdf file.

Result:
A backend selection dialog pops up with 2 (similar) 'okular_poppler' entries.

Expected result:
No selection dialog should appear if there is only 1 suitable backend available.

Version info:
Okular 1.0.0
KDE Frameworks 5.29.0
QT 5.7.1
Comment 1 Oliver Sander 2017-01-06 19:24:34 UTC
Confirmed with current git master on Debian Testing.
Comment 2 Albert Astals Cid 2017-01-08 01:24:24 UTC
Are you totally totally sure that you don't have two okular installations messing with eachother?
Comment 3 Oliver Sander 2017-01-08 04:16:54 UTC
I don't know.  How can I make sure?  

In any case, my okular installation 0.26.1 from the Debian package does not have the problem.
Comment 4 Oliver Sander 2017-01-08 04:35:05 UTC
I purged the okular Debian package from my system, along with an old poppler package I still had, leaving only 0.48.  Then I rebuilt okular from scratch from the git master.  The problem persists.
Comment 5 Yuri Chornoivan 2017-01-08 07:31:43 UTC
(In reply to Oliver Sander from comment #3)
> I don't know.  How can I make sure?  

Can you run

locate okularGenerator_poppler

locate libpoppler

from console? Thanks in advance.
Comment 6 Oliver Sander 2017-01-08 10:23:09 UTC
Sure, here it is:

[/home/sander/okular-{test|save}] are two additional source trees that I happen to have in my home directory.]

~> locate okularGenerator_poppler
/home/sander/okular/build/generators/poppler/okularGenerator_poppler.so
/home/sander/okular/build/generators/poppler/okularGenerator_poppler_automoc.cpp
/home/sander/okular/build/generators/poppler/okularGenerator_poppler_automoc.dir
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/CXX.includecache
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/DependInfo.cmake
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/annots.cpp.o
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/build.make
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/cmake_clean.cmake
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/depend.internal
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/depend.make
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/flags.make
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/formfields.cpp.o
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/generator_pdf.cpp.o
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/link.txt
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/okularGenerator_poppler_automoc.cpp.o
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/pdfsettings.cpp.o
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/progress.make
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/AutogenInfo.cmake
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/AutomocOldMocDefinitions.cmake
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/DependInfo.cmake
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/build.make
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/cmake_clean.cmake
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/depend.internal
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/depend.make
/home/sander/okular/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/progress.make
/home/sander/okular/build/generators/poppler/okularGenerator_poppler_automoc.dir/moc_generator_pdf_24QWUT7JV56U7I.cpp
/home/sander/okular/generators/poppler/libokularGenerator_poppler.json
/home/sander/okular-inst/lib/x86_64-linux-gnu/plugins/okular/generators/okularGenerator_poppler.so
/home/sander/okular-save/build/generators/poppler/okularGenerator_poppler.so
/home/sander/okular-save/build/generators/poppler/okularGenerator_poppler_automoc.cpp
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/CXX.includecache
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/DependInfo.cmake
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/annots.cpp.o
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/build.make
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/cmake_clean.cmake
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/depend.internal
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/depend.make
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/flags.make
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/formfields.cpp.o
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/generator_pdf.cpp.o
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/link.txt
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/okularGenerator_poppler_automoc.cpp.o
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/pdfsettings.cpp.o
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/progress.make
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/AutogenInfo.cmake
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/AutomocOldMocDefinitions.cmake
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/DependInfo.cmake
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/build.make
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/cmake_clean.cmake
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/depend.internal
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/depend.make
/home/sander/okular-save/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/progress.make
/home/sander/okular-save/generators/poppler/libokularGenerator_poppler.desktop
/home/sander/okular-test/build/generators/poppler/okularGenerator_poppler.so
/home/sander/okular-test/build/generators/poppler/okularGenerator_poppler_automoc.cpp
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/CXX.includecache
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/DependInfo.cmake
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/annots.cpp.o
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/build.make
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/cmake_clean.cmake
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/depend.internal
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/depend.make
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/flags.make
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/formfields.cpp.o
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/generator_pdf.cpp.o
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/link.txt
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/okularGenerator_poppler_automoc.cpp.o
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/pdfsettings.cpp.o
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler.dir/progress.make
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/AutogenInfo.cmake
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/AutomocOldMocDefinitions.cmake
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/DependInfo.cmake
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/build.make
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/cmake_clean.cmake
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/depend.internal
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/depend.make
/home/sander/okular-test/build/generators/poppler/CMakeFiles/okularGenerator_poppler_automoc.dir/progress.make
/home/sander/okular-test/generators/poppler/libokularGenerator_poppler.desktop




~> locate libpoppler
/usr/lib/x86_64-linux-gnu/libpoppler-glib.so.8
/usr/lib/x86_64-linux-gnu/libpoppler-glib.so.8.8.0
/usr/lib/x86_64-linux-gnu/libpoppler-qt4.a
/usr/lib/x86_64-linux-gnu/libpoppler-qt4.so
/usr/lib/x86_64-linux-gnu/libpoppler-qt4.so.4
/usr/lib/x86_64-linux-gnu/libpoppler-qt4.so.4.10.0
/usr/lib/x86_64-linux-gnu/libpoppler-qt5.a
/usr/lib/x86_64-linux-gnu/libpoppler-qt5.so
/usr/lib/x86_64-linux-gnu/libpoppler-qt5.so.1
/usr/lib/x86_64-linux-gnu/libpoppler-qt5.so.1.7.0
/usr/lib/x86_64-linux-gnu/libpoppler.a
/usr/lib/x86_64-linux-gnu/libpoppler.so
/usr/lib/x86_64-linux-gnu/libpoppler.so.46
/usr/lib/x86_64-linux-gnu/libpoppler.so.46.0.0
/usr/lib/x86_64-linux-gnu/libpoppler.so.64
/usr/lib/x86_64-linux-gnu/libpoppler.so.64.0.0
/usr/share/doc/libpoppler-dev
/usr/share/doc/libpoppler-glib8
/usr/share/doc/libpoppler-private-dev
/usr/share/doc/libpoppler-qt4-4
/usr/share/doc/libpoppler-qt4-dev
/usr/share/doc/libpoppler-qt5-1
/usr/share/doc/libpoppler-qt5-dev
/usr/share/doc/libpoppler46
/usr/share/doc/libpoppler64
/usr/share/doc/libpoppler-dev/changelog.Debian.gz
/usr/share/doc/libpoppler-dev/copyright
/usr/share/doc/libpoppler-glib8/changelog.Debian.gz
/usr/share/doc/libpoppler-glib8/copyright
/usr/share/doc/libpoppler-private-dev/changelog.Debian.gz
/usr/share/doc/libpoppler-private-dev/copyright
/usr/share/doc/libpoppler-qt4-4/changelog.Debian.gz
/usr/share/doc/libpoppler-qt4-4/copyright
/usr/share/doc/libpoppler-qt4-dev/changelog.Debian.gz
/usr/share/doc/libpoppler-qt4-dev/copyright
/usr/share/doc/libpoppler-qt5-1/changelog.Debian.gz
/usr/share/doc/libpoppler-qt5-1/copyright
/usr/share/doc/libpoppler-qt5-dev/changelog.Debian.gz
/usr/share/doc/libpoppler-qt5-dev/copyright
/usr/share/doc/libpoppler46/AUTHORS
/usr/share/doc/libpoppler46/NEWS.gz
/usr/share/doc/libpoppler46/README
/usr/share/doc/libpoppler46/README-XPDF.gz
/usr/share/doc/libpoppler46/TODO
/usr/share/doc/libpoppler46/changelog.Debian.gz
/usr/share/doc/libpoppler46/changelog.gz
/usr/share/doc/libpoppler46/copyright
/usr/share/doc/libpoppler64/AUTHORS
/usr/share/doc/libpoppler64/NEWS.gz
/usr/share/doc/libpoppler64/README
/usr/share/doc/libpoppler64/README-XPDF.gz
/usr/share/doc/libpoppler64/TODO
/usr/share/doc/libpoppler64/changelog.Debian.gz
/usr/share/doc/libpoppler64/changelog.gz
/usr/share/doc/libpoppler64/copyright
/var/cache/apt/archives/libpoppler-dev_0.26.5-4_amd64.deb
/var/cache/apt/archives/libpoppler-dev_0.38.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-dev_0.44.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-dev_0.44.0-3_amd64.deb
/var/cache/apt/archives/libpoppler-glib8_0.26.5-4_amd64.deb
/var/cache/apt/archives/libpoppler-glib8_0.38.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-glib8_0.44.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-glib8_0.44.0-3_amd64.deb
/var/cache/apt/archives/libpoppler-private-dev_0.48.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-qt4-4_0.26.5-4_amd64.deb
/var/cache/apt/archives/libpoppler-qt4-4_0.38.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-qt4-4_0.44.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-qt4-4_0.44.0-3_amd64.deb
/var/cache/apt/archives/libpoppler-qt4-dev_0.26.5-4_amd64.deb
/var/cache/apt/archives/libpoppler-qt4-dev_0.38.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-qt4-dev_0.44.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-qt4-dev_0.44.0-3_amd64.deb
/var/cache/apt/archives/libpoppler-qt5-1_0.26.5-4_amd64.deb
/var/cache/apt/archives/libpoppler-qt5-1_0.38.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-qt5-1_0.44.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-qt5-1_0.44.0-3_amd64.deb
/var/cache/apt/archives/libpoppler-qt5-dev_0.26.5-4_amd64.deb
/var/cache/apt/archives/libpoppler-qt5-dev_0.38.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-qt5-dev_0.44.0-2_amd64.deb
/var/cache/apt/archives/libpoppler-qt5-dev_0.44.0-3_amd64.deb
/var/cache/apt/archives/libpoppler46_0.26.5-4_amd64.deb
/var/cache/apt/archives/libpoppler57_0.38.0-2_amd64.deb
/var/cache/apt/archives/libpoppler61_0.44.0-2_amd64.deb
/var/cache/apt/archives/libpoppler61_0.44.0-3_amd64.deb
/var/lib/dpkg/info/libpoppler-dev:amd64.list
/var/lib/dpkg/info/libpoppler-dev:amd64.md5sums
/var/lib/dpkg/info/libpoppler-glib8:amd64.list
/var/lib/dpkg/info/libpoppler-glib8:amd64.md5sums
/var/lib/dpkg/info/libpoppler-glib8:amd64.shlibs
/var/lib/dpkg/info/libpoppler-glib8:amd64.symbols
/var/lib/dpkg/info/libpoppler-glib8:amd64.triggers
/var/lib/dpkg/info/libpoppler-private-dev:amd64.list
/var/lib/dpkg/info/libpoppler-private-dev:amd64.md5sums
/var/lib/dpkg/info/libpoppler-qt4-4:amd64.list
/var/lib/dpkg/info/libpoppler-qt4-4:amd64.md5sums
/var/lib/dpkg/info/libpoppler-qt4-4:amd64.shlibs
/var/lib/dpkg/info/libpoppler-qt4-4:amd64.symbols
/var/lib/dpkg/info/libpoppler-qt4-4:amd64.triggers
/var/lib/dpkg/info/libpoppler-qt4-dev.list
/var/lib/dpkg/info/libpoppler-qt4-dev.md5sums
/var/lib/dpkg/info/libpoppler-qt5-1:amd64.list
/var/lib/dpkg/info/libpoppler-qt5-1:amd64.md5sums
/var/lib/dpkg/info/libpoppler-qt5-1:amd64.shlibs
/var/lib/dpkg/info/libpoppler-qt5-1:amd64.symbols
/var/lib/dpkg/info/libpoppler-qt5-1:amd64.triggers
/var/lib/dpkg/info/libpoppler-qt5-dev:amd64.list
/var/lib/dpkg/info/libpoppler-qt5-dev:amd64.md5sums
/var/lib/dpkg/info/libpoppler46:amd64.list
/var/lib/dpkg/info/libpoppler46:amd64.md5sums
/var/lib/dpkg/info/libpoppler46:amd64.postinst
/var/lib/dpkg/info/libpoppler46:amd64.postrm
/var/lib/dpkg/info/libpoppler46:amd64.shlibs
/var/lib/dpkg/info/libpoppler64:amd64.list
/var/lib/dpkg/info/libpoppler64:amd64.md5sums
/var/lib/dpkg/info/libpoppler64:amd64.shlibs
/var/lib/dpkg/info/libpoppler64:amd64.triggers
Comment 7 Patrick 2017-01-08 10:43:08 UTC
As far as I can see the problem isn't a duplicate generator but a problem with mimetypes. Freedesktop defines "application/x-pdf" as an alias of "application/pdf". The poppler backend supports both mimetypes, but in the mimetype lookup (QMimeType mimeType = mimeDatabase.mimeTypeForName(supported) in DocumentPrivate::generatorForMimeType) the result is the same mimetype "application/pdf".
Comment 8 Antonio Rojas 2017-01-08 11:21:35 UTC
https://git.reviewboard.kde.org/r/129791/
Comment 9 Oliver Sander 2017-01-08 12:02:56 UTC
I confirm that the patch avoids the duplicate 'poppler' entry for me.  Thanks!
Comment 10 Antonio Rojas 2017-01-08 18:41:17 UTC
Git commit f3f077e1a632c6eed77564ff92117a11f7855f2a by Antonio Rojas.
Committed on 08/01/2017 at 18:38.
Pushed by arojas into branch 'Applications/16.12'.

Avoid duplicates in the available backends list

If a generator can open multiple mime types that match the same file, avoid showing a backend chooser dialog with multiple instances of the same
backend

REVIEW: 129791

M  +2    -2    core/document.cpp

https://commits.kde.org/okular/f3f077e1a632c6eed77564ff92117a11f7855f2a
Comment 11 Antonio Rojas 2017-01-08 18:48:49 UTC
Git commit 84c9910da9533b9b08fc5a40f693d6763152b331 by Antonio Rojas.
Committed on 08/01/2017 at 18:48.
Pushed by arojas into branch 'master'.

Avoid duplicates in the available backends list

If a generator can open multiple mime types that match the same file, avoid showing a backend chooser dialog with multiple instances of the same
backend

REVIEW: 129791

M  +2    -2    core/document.cpp

https://commits.kde.org/okular/84c9910da9533b9b08fc5a40f693d6763152b331