How do I install mupdf-gl on Ubuntu 18.04 (preferably without building from source)?

I have recently started using MuPDF. I tried installing it in a desktop machine with Ubuntu 18.04.3. However, I can only get the X11 version of it. I prefer the one that renders with OpenGL; that's the one I've been using on my laptop. I like it more, but also at this point I just want to know what I'm doing wrong, and learn to do it right :)

What I've done

I first installed MuPDF from the terminal with sudo apt install mupdf. Straightforward. But it wasn't what I expected: I immediately noticed that the keybindings were different.

I checked the version. It was MuPDF 1.12. The most recent version is 1.16. Thinking that might be it, I went looking how to install a more recent version.

I found this UbuntuHandbook post about installing version 1.13. I purged my installation, added their PPA, updated and reinstalled, which got me version 1.14. However, still no luck. When I ran mupdf it still behaved the same way.

Researching my issue, I saw some references to mupdf-gl and mupdf-x11 commands. So I dug among my files. I found that /usr/bin/mupdf runs /usr/lib/mupdf/mupdf-x11. But there's no mupdf-gl to be found.

At this point, I realize that my issue doesn't have to do with the version. Looking at MuPDF's release history I saw that the OpenGL viewer was rolled out on version 1.8.

I haven't tried building the library from source. From what I've seen, it doesn't appear that others are having the same issue installing through the repositories. I even found this Gentoo Forum post by someone who inadvertently was using the OpenGL viewer and was complaining about the old keybindings not working.

If it's relevant, running glxinfo | grep "OpenGL version" in my terminal yields OpenGL version string: 3.3 (Compatibility Profile) Mesa 19.2.8.

This my first post on any Stack Exchange, so any feedback on my format would be much appreciated.


2 Answers 2



It is a Ubuntu packaging bug, it was already reported to launchpad as bug 1740105.

Compilation or installation from source

What do you need

The analysis of the PKGBUILD file from ArchLinux shows that muPDF needs freeglut, glu and mesa-libgl libraries for OpenGL.

On Ubuntu, the simulation of build-dependencies (by running apt-get build-dep with the -s flag) installs many OpenGL related packages (including the aforementioned):

$ sudo apt-get build-dep mupdf -s | grep Inst.*gl
Inst freeglut3 (2.8.1-3 Ubuntu:18.04/bionic [amd64])
Inst libglvnd-core-dev (1.0.0-2ubuntu2.3 Ubuntu:18.04/bionic-updates [amd64])
Inst libgles1 (1.0.0-2ubuntu2.3 Ubuntu:18.04/bionic-updates [amd64])
Inst libopengl0 (1.0.0-2ubuntu2.3 Ubuntu:18.04/bionic-updates [amd64])
Inst libglvnd-dev (1.0.0-2ubuntu2.3 Ubuntu:18.04/bionic-updates [amd64])
Inst libxcb-glx0-dev (1.13-2~ubuntu18.04 Ubuntu:18.04/bionic-updates [amd64])
Inst libgl1-mesa-dev (19.2.8-0ubuntu0~18.04.1 Ubuntu:18.04/bionic-updates [amd64])
Inst libglu1-mesa-dev (9.0.0-2.1build1 Ubuntu:18.04/bionic [amd64])
Inst freeglut3-dev (2.8.1-3 Ubuntu:18.04/bionic [amd64])

While the default installation of muPDF gives the following library dependencies:

$ ls /usr/lib/mupdf/mupdf* -1

$ ldd /usr/lib/mupdf/mupdf-x11 | grep -i gl
    libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f55297f6000)

so we do not have the OpenGL libraries shown in the previous list.

What to do on 18.04 LTS

To get OpenGL support we really need to

  • (a) recompile the package with build dependencies. So run:

    sudo apt-get build-dep mupdf mupdf-tools
    cd ~/Downloads
    apt-get source mupdf
    cd mupdf-1.12.0+ds1
    sudo make install

    and you will get mupdf-gl compiled and installed into /usr/local/bin/mupdf-gl.

  • (b) use prebuilt package from the PPA, so you can install mupdf from there:

    sudo add-apt-repository ppa:cges30901/app
    sudo apt-get update
    sudo apt-get install mupdf

    and mupdf-gl will become available.

What to do on Ubuntu 20.04 LTS

Here exists the PPA, so you can install mupdf from there:

sudo add-apt-repository ppa:cges30901/app
sudo apt-get update
sudo apt-get install mupdf

and mupdf-gl will become available.

What to do when 22.04 LTS will be released

Nothing, simply install official package from repository, it ships mupdf-gl.

  • 1
    I successfully compiled and installed it! Thank you very much for your answer, and for linking to this question on the bug page. I checked myself as affected by the bug, and registered for updates. Pumped that heat up to 32 :)
    – Faust
    Commented Feb 7, 2020 at 0:53
  • Somehow the 'make' step fails for me on Linux Mint 20.2 / Ubuntu 20.04 LTS with the error message ` CC build/release/source/fitz/color-lcms.o source/fitz/color-lcms.c:12:10: fatal error: lcms2mt.h: No such file or directory 12 | #include "lcms2mt.h" | ^~~~~~~~~~~ compilation terminated.` while @cayhorstmann's way of building (with downloading the source code from the mupdf homepage) worked. But thank you anyway, I learned a lot from your post!
    – Maxim
    Commented Dec 13, 2021 at 16:15
  • Answer updated with freshly found PPA, so the solution for both 18.04 LTS and 20.04 LTS is really simpler (does not require compilation).
    – N0rbert
    Commented Dec 13, 2021 at 18:38

This is still a problem in 20.04. To build a recent version, go to https://www.mupdf.com/downloads/index.html to find the latest source. Right now it's 1.18.0. Then

wget https://www.mupdf.com/downloads/archive/mupdf-1.18.0-source.tar.xz
tar xf mupdf-1.18.0-source.tar.xz
cd mupdf-1.18.0-source
sudo apt install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev \
  xorg-dev libxcursor-dev libxrandr-dev libxinerama-dev freeglut3-dev
sudo make prefix=/usr/local install
  • Thank you, @cayhorstmann! @N0rbert's way of building did not work for me on Linux Mint 20.2 (which is built on top of Ubuntu 20.04 LTS), but your instructions did. (The tricky part for me would be to figure out the list of dependencies, and their precise names in Ubuntu / Mint). -- Thank you again!
    – Maxim
    Commented Dec 13, 2021 at 16:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .