office/apvlv: Added (a PDF viewer which uses Vim keybindigs)

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
Arne Welzel 2011-07-16 19:51:11 -05:00 committed by Robby Workman
parent 4324182352
commit e3e945dc02
6 changed files with 182 additions and 0 deletions

9
office/apvlv/README Normal file
View file

@ -0,0 +1,9 @@
Apvlv is a PDF Viewer based on GTK and poppler which uses Vi-like keybindings.
For example, <Ctrl-f> to forward page, <Ctrl-b> to previous page, 'k','j','h',
and 'l' to scroll a page up, down, left or right. Typing '50' and <Ctrl-f>
will go forward 50 pages; typing '30' and <Ctrl-b> will go previous 30 pages.
Apvlv can support viewing a directory as contents of a pdf document.
Press 'k' or 'j' to move selected up or down, 'h' or 'l' to collapse or
expand a dir, and pressing 't' will open the selected document in a new tab.
This SlackBuild disables UMD file support.

View file

@ -0,0 +1,112 @@
#!/bin/sh
# Slackware build script for apvlv
# Written by Arne Welzel (arne.welzel@googlemail.com)
# Took some ideas/parts from an older apvlv SlackBuild form Eugene Wissner:
# Copyright 2010 Eugene Wissner <belka.ew@gmail.com>
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for any purpose
# with or without fee is hereby granted, provided that the above copyright
# notice and this permission notice appear in all copies.
#
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# AUTHORS AND COPYRIGHT HOLDERS AND THEIR CONTRIBUTORS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=apvlv
VERSION=${VERSION:-0.1.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e # Exit on most errors
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION-Source
tar xvf $CWD/$PRGNAM-$VERSION-Source.tar.gz
cd $PRGNAM-$VERSION-Source
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
# patch for newer poppler version, won't build without
# from: http://code.google.com/p/apvlv/issues/detail?id=110
# and adapted for 0.1.2
patch -p1 < ${CWD}/poppler-0.15.1.diff
mkdir -p build
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS_RELEASE="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DAPVLV_WITH_UMD=false \
-DMANDIR=/usr/man \
-DDOCDIR=/usr/doc/$PRGNAM-$VERSION
make VERBOSE=1
make install DESTDIR=$PKG
cd ..
mv $PKG/etc/apvlvrc $PKG/etc/apvlvrc.new
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
# Leave the icons in docdir - that path is hardcoded in apvlv binary
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
AUTHORS COPYING NEWS README THANKS TODO apvlvrc.example \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

10
office/apvlv/apvlv.info Normal file
View file

@ -0,0 +1,10 @@
PRGNAM="apvlv"
VERSION="0.1.2"
HOMEPAGE="http://naihe2010.github.com/apvlv/"
DOWNLOAD="https://github.com/downloads/naihe2010/apvlv/apvlv-0.1.2-Source.tar.gz"
MD5SUM="381d83aa9c253fac5e0be165fca39222"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
MAINTAINER="Arne Welzel"
EMAIL="arne.welzel@googlemail.com"
APPROVED="rworkman"

13
office/apvlv/doinst.sh Normal file
View file

@ -0,0 +1,13 @@
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
# toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
config etc/apvlvrc.new

View file

@ -0,0 +1,19 @@
--- a/src/ApvlvFile.cpp 2011-07-07 16:26:45.257995568 +0200
+++ b/src/ApvlvFile.cpp 2011-07-07 16:29:46.654995527 +0200
@@ -302,9 +302,14 @@
bool ApvlvPDF::pagetext (int pn, int x1, int y1, int x2, int y2, char **out)
{
- PopplerRectangle rect = { x1, y1, x2, y2 };
PopplerPage *page = poppler_document_get_page (mDoc, pn);
- *out = poppler_page_get_text (page, POPPLER_SELECTION_WORD, &rect);
+#if POPPLER_CHECK_VERSION(0, 15, 1)
+ PopplerRectangle rect = { x1, y2, x2, y1 };
+ *out = poppler_page_get_selected_text (page, POPPLER_SELECTION_WORD, &rect);
+#else
+ PopplerRectangle rect = { x1, y1, x2, y2 };
+ *out = poppler_page_get_text (page, POPPLER_SELECTION_WORD, &rect);
+#endif
if (*out != NULL)
{
return true;

19
office/apvlv/slack-desc Normal file
View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler-------------------------------------------------------|
apvlv: apvlv (a PDF viewer which uses Vim keybindigs)
apvlv:
apvlv: Apvlv is a PDF viewer based on GTK+2 and poppler which uses
apvlv: Vim like keybindings.
apvlv:
apvlv: Homepage: http://naihe2010.github.com/apvlv/
apvlv:
apvlv:
apvlv:
apvlv:
apvlv: