For a KDE-free environment, it seems to be nice to have an alternative PDF reader to Okular, which has the features of adding comments, highlighting text and saving the added annotations in a non-software-specific manner. Fortunately, the latest version of Evince (3,17.2, 06/JUN/2015), available from its git repository, has finally featured these long awaited functions with the prerequisite of libpoppler-glib8 being upgraded to version 0.24.0. However, it will probably take a while for Debian to add this version of Evince to its repository. A quick way out is to compile the upstream source.

It is not particularly challenging to build Evince-related packages compared with that of gVim in terms of fulfilling the required build-depends. However, the version of the stock libgtk-3-0 (3.12.2-2) hampers the direct use of evince_3.14.1-2.debian.tar.xz to build the latest Evince from source. As the result, extra patches from Ubuntu utopic (3.14.1-0ubuntu1) need to be imported and amendments to be made to the files of control.in and control in this regards. In addition, the newly introduced functions since version 3.15 require to be appended to the symbol files of libevdocument3-4 and libevview3-3. For some reason, the stock libgtk-3-0 package also needs to be re-installed, otherwise the build process , regardless of the version of Evince to be built, will fail with the error message as follows,
Code:
-- snip --
/usr/lib/gcc/i586-linux-gnu/4.9/../../../i386-linux-gnu/libgdk-3.so: file not recognized: Bad value
collect2: error: ld returned 1 exit status
make[4]: *** [libevdocument3.la] Error 1
make[4]: Leaving directory `/home/knoppix/evince_3.17.2_20150611/debian/build/evince/libdocument'
-- snip --
Alongside the mentioned patches and amendments, an extra patch (from Ubuntu utopic) relating to the substitution of adwaita-icon-theme by gnome-icon-theme can be imported and the files of control.in and control be changed accordingly to match with the corresponding package shipped with KNOPPIX 7.4.2. Regardless of the icon-theme related patch being applied, the adwaita-icon-theme needs not to be present when the newly built Evince packages are installed.

On 06/MAR/2015, Wheezy released a security update for libarchive12. As the package is required by libarchive-dev and libgxps-dev, it is worth to consider updating the package and then compiling Evince against it.


[Time for Action]


Part 1 of 4: Retrieve the source of Evince, the modification files made by Debain and Ubuntu and the required build-depends


-- Boot up KNOPPIX without persistent overlay.
-- Download the tarballs.
Code:
wget --no-check-certificate \ 
https://git.gnome.org/browse/evince/snapshot/evince-b998a03242ea4d94486ff8de6a8471edde208911.tar.xz
wget \
http://http.debian.net/debian/pool/main/e/evince/evince_3.14.1-2.debian.tar.xz \
http://archive.ubuntu.com/ubuntu/pool/main/e/evince/evince_3.14.1-0ubuntu1.debian.tar.xz
-- With root privilege, append the following to /etc/apt/source.list .
Code:
deb http://ftp.de.debian.org/debian wheezy main
deb http://security.debian.org/debian-security wheezy/updates main 
deb http://snapshot.debian.org/archive/debian/20140817T155553Z/ jessie main
deb http://snapshot.debian.org/archive/debian/20140928T221124Z/ jessie main
deb http://snapshot.debian.org/archive/debian/20141212T221320Z/ jessie main
-- Update the package list with the argument of "-o Acquire::Check-Valid-Until=false".
-- Download the build-depends with version number specified.
Code:
# --start-- build-depends
# Re-install libgtk-3-0 (3.12.2-2; jessie)
# Upgrade libpoppler-glib8 from 0.18.4-6 (wheezy) to 0.26.4-1 (jessie).
# Security update libarchive12 from 3.0.4-3+num1 (wheezy) to 3.0.4-3+wheezy1
# (wheezy).

apt-get download cdbs=0.4.115+deb7u1 \
dh-autoreconf=7 \
adwaita-icon-theme=3.14.0-2 \
intltool=0.50.2-2 \
gnome-pkg-tools=0.19.3 \
itstool=1.1.3-1 yelp-tools=3.4.1-1 \
libsp1c2=1.3.4-1.2.1-47.3 jade=1.2.1-47.3 docbook-dsssl=1.79-7 \
docbook=4.5-5.1 sp=1.3.4-1.2.1-47.3 docbook-to-man=1:2.0.0-32 \
autopoint=0.19.3-2 gnome-common=3.14.0-1 gtk-doc-tools=1.21-2 \
libgtk-3-0=3.12.2-2 libgtk-3-dev=3.12.2-2 libgail-3-dev=3.12.2-2 \
gir1.2-secret-1=0.18-1 libsecret-1-dev=0.18-1 \
libxml2-dev=2.9.1+dfsg1-4 \
gir1.2-nautilus-3.0=3.4.2-1+build1 libnautilus-extension-dev=3.4.2-1+build1 \
libpoppler-glib8=0.26.4-1 gir1.2-poppler-0.18=0.26.4-1 \
libpoppler-dev=0.26.4-1 libpoppler-glib-dev=0.26.4-1 \
libspectre-dev=0.2.7-2 \
libjbig-dev=2.0-2+deb7u1 libjpeg8-dev=8d-1+deb7u1 \
liblzma-dev=5.1.1alpha+20120614-2 \
libtiffxx5=4.0.3-10 libtiff5-dev=4.0.3-10 \
libdjvulibre-dev=3.5.25.3-1 \
libkpathsea-dev=2012.20120628-4 \
gir1.2-gxps-0.1=0.2.2-2 \
libarchive12=3.0.4-3+wheezy1 libarchive-dev=3.0.4-3+wheezy1 \
libgxps-dev=0.2.2-2 \
gobject-introspection=1.40.0-2 \
libffi-dev=3.1-2 libgirepository1.0-dev=1.40.0-2 \
gsettings-desktop-schemas-dev=3.12.2-1 

# --finish-- build-depends
Part 2 of 4: Install the required build-depends

-- Purge the following packages if it is preferred to compile Evince against adwaita-icon-theme.
Code:
apt-get purge gdm3 gnome-session gnome-shell gnome-themes-standard gnome-themes-standard-data
-- Install the build-depends with gdebi accordingly.

Part 3 of 4: Build the .deb packages

-- Unpack the tarball of source code.
-- Execute the included autogen.sh and then run "make distclean".
-- Repack a .tar.gz file of source code with a Debian-compliant filename.
-- Unpack the tar ball (evince_3.14.1-2.tar.xz) to the folder of source code.
-- Revert the version of libgtk-3-dev specified in the Build-Depends sections of control.in and control from 3.14 to 3.12.
-- Append the following to the files of libevview3-3 and libevdocument3-4 accordingly; the version number may be inaccurate.
Code:
-- libevview3-3.symbols --
ev_page_cache_get_media_mapping@Base 3.17.2

-- libevdocument3-4.symbols --
ev_annotation_get_area@Base 3.17.2
ev_annotation_markup_can_have_popup@Base 3.17.2
ev_annotation_set_area@Base 3.17.2
ev_annotation_text_markup_get_markup_type@Base 3.15.4
ev_annotation_text_markup_get_type@Base 3.15.4
ev_annotation_text_markup_highlight_new@Base 3.15.4
ev_annotation_text_markup_set_markup_type@Base 3.15.4
ev_annotation_text_markup_strike_out_new@Base 3.15.4
ev_annotation_text_markup_type_get_type@Base 3.15.4
ev_annotation_text_markup_underline_new@Base 3.15.4
ev_document_get_size@Base 3.15.4
ev_document_media_get_media_mapping@Base 3.17.2
ev_document_media_get_type@Base 3.17.2
ev_media_get_page_index@Base 3.17.2
ev_media_get_show_controls@Base 3.17.2
ev_media_get_type@Base 3.17.2
ev_media_get_uri@Base 3.17.2
ev_media_new_for_uri@Base 3.17.2
ev_media_set_show_controls@Base 3.17.2
-- Extract and import the following patches from Ubuntu tarball in order to match with the version of libgtk-3-0 in use.
Code:
rtl_avoid_3.14_dep.patch
gtk_no_gesture.patch
-- In the case of skipping adwaita-icon-theme, remove adwaita-icon-theme from the Build-Depends sections of control.in and control, and import the gnome_icon_theme.patch from Ubuntu tarball.
-- Log the changelog.
-- Build the packages with dpkg-buildpackages or debuild.
-- Save the newly built packages plus libpoppler-glib8=0.26.4-1 and libarchive12=3.0.4-3+wheezy1 on a hard drive.

Part 4 of 4: Install the .deb packages

-- Reboot KNOPPIX with persistent overlay enabled.
-- With root privilege, purge Evince (3.4.0-3.1) and its related packages.
Code:
apt-get purge evince evince-common libevview3-3 libevdocument3-4
--Install packages with gdebi in the order of libpoppler-glib8, libarchive12, libevdocument3-4, libevview3-3, evince-common and evince (or evince-gtk).


[A Quick Spin]

In comparison with the previous versions (3.4.0-3.1, 3.14.1-2) of Evince and the stock Okular (0.14.3) shipped with KNOPPIX 7.4.2, the latest Evince is susceptible to a non-left mouse button click when the annotation mode is activated, which results in the program being terminated unexpectedly due to the error return of g_assert (view->pressed_button == 1). Despite this trivial glitch, the newest Evince is fairly stable so long as the PDF file is not as challenging as the attachment of bug report #750621.