web-dev-qa-db-fra.com

Installer mupdf-plugin / backend pour la visionneuse de documents `zathura`

J'aime la vitesse de MuPDF et l'interface utilisateur de Zathura

Heureusement, il existe un mupdf-backend pour Zathura .

Malheureusement, ce n'est pas dans les référentiels et la construction en suivant les instructions a échoué sur une erreur:

Makefile:25: *** "The minimum required version of zathura is 0.2.0".          

Bien que la version que j'ai installée soit zathura 0.3.5

Comment installer le plugin dans Ubuntu (16.04)?

5
Janghou

Le plugin n'est toujours pas inclus dans les dépôts Debian et j'ai donc décidé de le conditionner moi-même.

J'ai envoyé le paquet zathura-pdf-mupdf dans le Launchpad PPA ppa: spvkgn/zathura-mupdf , il contient des paquets pour les séries Ubuntu 16.04, 16.10, 17.04 et 17.10. Le plugin compilé avec la bibliothèque de la dernière version de MuPDF 1.11.

S'il vous plaît n'hésitez pas à me faire savoir si des problèmes avec ce paquet se produit.

3
spv82

Alors que la version que j'ai installée est zathura 0.3.5

Ceci est la version de votre visionneuse pdf zathura; le message d'erreur concerne les fichiers de développement des plugins zathura, que vous pouvez obtenir en installant le paquetage zathura-dev.


Comment installer le plugin dans Ubuntu (16.04)?

Voici une procédure pour compiler le plugin sur Ubuntu 16.04 et 18.04.

Tout d'abord, vous devez compiler libmupdf-dev version 1.11.

Cloner le repo du projet:

$ git clone --recursive git://git.ghostscript.com/mupdf.git

Entrez son répertoire racine:

$ cd mupdf

Commander la branche étiquetée 1.11-rc1:

$ git checkout 1.11-rc1

Mettez à jour les bibliothèques tierces:

$ git submodule update --init

Installez certaines dépendances nécessaires:

$ Sudo apt-get update
$ Sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev mesa-common-dev pkg-config

Compiler libmupdf-dev:

$ CFLAGS=-fPIC make HAVE_X11=no HAVE_GLUT=no prefix=/usr/local
  ├──────────┘
  └ pass some flags to `$ gcc`, otherwise the compilation of `zathura-pdf-mupdf` will fail,
    with an error  message recommending you to recompile with those flags.

Installez checkinstall pour installer les fichiers en tant que paquet deb:

$ Sudo apt-get install checkinstall

Utilisez-le pour installer les fichiers sous le paquet libmupdf-dev:

$ Sudo checkinstall -y --pkgversion=1.11 --pkgname=libmupdf-dev

Vous pouvez maintenant compiler le plugin zathura. Sortez du répertoire mupdf/ et clonez le référentiel de zathura-pdf-mupdf:

$ cd ..
$ git clone https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git

Entrez son répertoire racine:

$ cd zathura-pdf-mupdf

Commander la branche 0.3.1:

$ git checkout 0.3.1

Installez certaines dépendances nécessaires:

$ Sudo apt-get install libjbig2dec0-dev libjpeg-dev libopenjp2-7-dev libssl-dev zathura-dev

Enfin, compilez et installez:

$ Sudo make install

Il semble que vous ne puissiez pas aller au-delà des versions 1.11 et 0.3.1 pour libmupdf-dev et zathura-pdf-mupdf sur Ubuntu 16.04. Mais sur Ubuntu 18.04, vous pouvez aller un peu plus haut si vous voulez:

┌───────┬──────────────┬───────────────────┐
│       │ libmupdf-dev │ zathura-pdf-mupdf │
├───────┼──────────────┼───────────────────┤
│ 16.04 │     1.11     │       0.3.1       │
├───────┼──────────────┼───────────────────┤
│ 18.04 │     1.13     │       0.3.2       │
└───────┴──────────────┴───────────────────┘

Qui donne:

$ git clone --recursive git://git.ghostscript.com/mupdf.git
$ cd mupdf
$ git checkout 1.13.0-rc1
$ git submodule update --init
$ Sudo apt-get update
$ Sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev mesa-common-dev pkg-config
$ CFLAGS=-fPIC make HAVE_X11=no HAVE_GLUT=no prefix=/usr/local
$ Sudo apt-get install checkinstall
$ Sudo checkinstall -y --pkgversion=1.13 --pkgname=libmupdf-dev

$ cd ..
$ git clone https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git
$ cd zathura-pdf-mupdf
$ git checkout 0.3.2
$ Sudo apt-get install libjbig2dec0-dev libjpeg-dev libopenjp2-7-dev libssl-dev zathura-dev
$ Sudo make install

Si vous voulez supprimer le plugin, lancez:

$ Sudo make uninstall

Il va supprimer le /usr/lib/zathura/pdf.so de zathura-pdf-poppler, alors réinstallez ce dernier:

$ Sudo apt-get install --reinstall zathura-pdf-poppler

Une fois le plugin installé, vous devrez peut-être faire de zathura le programme par défaut pour ouvrir un fichier PDF (et un epub). alors courez:

$ xdg-mime default zathura-pdf-mupdf.desktop application/pdf application/epub+Zip

Si la compilation de libmupdf-dev échoue à cause d'un fichier manquant, essayez de trouver le paquet auquel il appartient avec $ apt-file search <file>, ou lisez docs/building.html, en-tête "Compiler sur Linux" (si le fichier n'existe pas, passez temporairement en maître $ git checkout master).

Et essayez peut-être d’appliquer des correctifs Debian avant de compiler:

$ git clone https://salsa.debian.org/koster/mupdf
$ ls mupdf/debian/patches
0001-mupdf_manpage.patch
0003-Sort-files-in-static-library-to-make-the-build-repro.patch
0003-use-debian-flavor-build-options.patch
0004-MuPDF-crossbuild-use-target-Arch-pkg-config.patch
0005-MuPDF-crossbuild-use-Host-cc-for-utils.patch
0006-Allow-disabling-objcopy.patch
0007-typographical-and-formatting-fixes-to-the-manual.patch
0008-PATCH-Fix-700043-Don-t-assume-a-font-is-t3-just-beca.patch
0009-PATCH-Bug-700442-Add-a-recursion-depth-check-to-prev.patch
0010-PATCH-Throw-when-page-number-is-out-of-range.patch
0011-Avoid-being-smart-about-keeping-only-a-single-refere.patch
0012-Fix-text-used-as-clip-mask-in-pdfwrite-device.patch
0013-Fix-typo-in-pdf-write-device.patch
series

Appliquez ceux que vous jugez les plus utiles, en exécutant cette commande depuis le répertoire du fichier ciblé:

$ patch -b </path/to/patch

L'option -b transmise à $ patch crée une sauvegarde d'un fichier avant de le corriger. Le fichier de sauvegarde porte l'extension .orig.

Si vous souhaitez inverser l'effet d'un patch, utilisez l'option -R.

$ patch -R </path/to/patch
        ^^

Et utilisez --dry-run pour simuler une correction.

2
user938271

Une méthode sale et astucieuse consiste à utiliser le binaire Arch .

Télécharger et extraire le binaire /usr/lib/zathura/pdf.so du paquet et le copier, par exemple. /usr/lib/zathura/pdf.so sur votre machine Ubuntu. Renommez votre pdf.so (poppler) existant en pdf.bu pour éviter tout conflit.

Le plugin est reconnu:

$ zathura --version
zathura 0.3.5
(plugin) djvu (0.2.5) (/usr/lib/zathura/djvu.so)
(plugin) pdf-mupdf (0.3.0) (/usr/lib/zathura/pdf.so)
(plugin) ps (0.2.3) (/usr/lib/zathura/ps.so)
(plugin) cb (0.1.5) (/usr/lib/zathura/cb.so)

Jusqu'à présent, je n'ai pas beaucoup de problèmes de stabilité. Zathura est beaucoup plus rapide qu'avant, surtout pour le rendu (images énormes) et la recherche.

Attention, en général, il n'est pas recommandé d'utiliser le logiciel install de cette façon. C'est un binaire d'une autre distribution, il ne sera ni mis à jour ni corrigé automatiquement. Utilisez à vos risques et périls.

L'avantage est que le plug-in zathura-pdf-mupdf-0.3.0 prend également en charge le format epub.

Espérons que le plugin sera inclus dans les dépôts Ubuntu dans un proche avenir.

1
Janghou