summaryrefslogtreecommitdiffstats
path: root/office
diff options
context:
space:
mode:
author B. Watson <yalhcru@gmail.com>2020-01-01 03:31:45 -0500
committer Robby Workman <rworkman@slackbuilds.org>2020-01-03 02:06:16 -0600
commitf0424e1e0505428c6252a46c58f737bc9341b595 (patch)
tree580ba0708a628f65152085769c98413a6bc34bc5 /office
parent632539f0bcea4118acee65820ab72838a5e77a18 (diff)
downloadslackbuilds-f0424e1e0505428c6252a46c58f737bc9341b595.tar.gz
slackbuilds-f0424e1e0505428c6252a46c58f737bc9341b595.tar.xz
office/evince: Updated for version 3.28.5, new maintainer.
Signed-off-by: B. Watson <yalhcru@gmail.com> Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
Diffstat (limited to 'office')
-rw-r--r--office/evince/README16
-rw-r--r--office/evince/evince.SlackBuild55
-rw-r--r--office/evince/evince.info10
-rw-r--r--office/evince/shim.h25
-rw-r--r--office/evince/slack-desc6
5 files changed, 84 insertions, 28 deletions
diff --git a/office/evince/README b/office/evince/README
index 0bf4384784..9798de4cf8 100644
--- a/office/evince/README
+++ b/office/evince/README
@@ -1,3 +1,5 @@
+evince (a simple gtk-based document viewer)
+
Evince is a document viewer for multiple document formats. It currently
supports pdf, postscript, djvu, tiff and dvi. The goal of evince is to
replace the multiple document viewers that exist on the GNOME Desktop
@@ -6,10 +8,16 @@ with a single simple application.
Evince is specifically designed to support the following file formats:
* PDF
* Postscript
-* djvu
-* tiff
-* dvi
-Texlive is an optional dependency (for dvi support).
+* DjVu
+* TIFF
+* CBR/CBZ (comic books)
+* DVI (requires optional dependency texlive)
+* XPS (requires optional dependency libgxps)
This uses dconf (runtime-only) to save various settings (and even
then, not ALL settings are saved).
+
+Note: this is the last version I could get to compile and run on Slackware
+14.2. Newer versions of evince require newer glib2 and gtk+3 libraries
+than 14.2 provides, so please don't email me asking for updates (you'll
+have to wait until Slackware 15.0 is released).
diff --git a/office/evince/evince.SlackBuild b/office/evince/evince.SlackBuild
index ea4071c6eb..a1f6e48489 100644
--- a/office/evince/evince.SlackBuild
+++ b/office/evince/evince.SlackBuild
@@ -4,6 +4,7 @@
# Copyright 2009 Andrew Brouwers <abrouwers@gmail.com>
# Copyright 2009-2014, Michiel van Wessem, Manchester, United Kingdom.
+# Copyright 2019, B. Watson
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,8 +24,16 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# Now maintained by B. Watson <yalhcru@gmail.com>
+
+# 20191231 bkw:
+# - take over maintenance
+# - update for v3.28.5.3, which is the last version that will build with
+# Slack 14.2's rather outdated gtk+3 libraries. Actually it requires
+# some fugly hackery to work, see shim.h for gory details and polemic.
+
PRGNAM=evince
-VERSION=${VERSION:-3.20.2}
+VERSION=${VERSION:-3.28.5}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -36,8 +45,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-NLS=${NLS:-YES}
-
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
@@ -66,15 +73,15 @@ rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
# If we have any patches apply them here:
# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-text/evince/files/
+# 20191231 bkw: I'll leave this here, but I have NOT tested it.
+# It was never documented in README, caveat hactor.
+NLS=${NLS:-YES}
if [ "$NLS" != "YES" ]; then
# disable NLS - we're going for a small package here.
rm po/*.po
@@ -82,6 +89,20 @@ if [ "$NLS" != "YES" ]; then
-e 's/ENABLE_NLS 1/ENABLE_NLS 0/g' configure
fi
+# 20200101 bkw: "shim" to let us actually compile with gtk+-3.18 and
+# glib-2.46.2. Supposedly these versions are supported by evince-3.28.5,
+# but upstream uses a couple of functions that are new in gtk+-3.22
+# and glib-2.52. Fortunately it's stuff we can work around with a few
+# #defines.
+SLKCFLAGS="$SLKCFLAGS -include $CWD/shim.h"
+
+# 20200101 bkw: 14.2's mime stuff identifies djvu files as
+# image/vnd.djvu only, but evince wants image/vnd.djvu+multipage.
+sed -i '/^ *DJVU_MIME_TYPES/s|="|&image/vnd.djvu;|' configure
+
+# If we were building 3.30.x, we'd need this:
+# --without-gspell \
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -99,27 +120,29 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-t1lib \
--enable-comics \
--enable-dvi \
+ --enable-ps \
+ --enable-xps \
--enable-introspection \
--disable-static \
--disable-nautilus \
--disable-maintainer-mode \
+ --with-systemduserunitdir=no \
--build=$ARCH-slackware-linux
-make
-make install DESTDIR=$PKG
+# ugh. glib-genmarshal's flags changed gratuitously.
+sed -i 's,--prototypes,--header,' libview/Makefile
+
+make V=1
+make install-strip DESTDIR=$PKG
# Fix desktop entry
sed -i "/NoDisplay=true/d" $PKG/usr/share/applications/evince.desktop
-find $PKG | xargs 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
+gzip -9 $PKG/usr/man/man1/$PRGNAM.1
rm -rf $PKG/{usr/share/gtk-doc,etc}
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS COPYING NEWS README $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHORS COPYING NEWS README MAINTAINERS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/office/evince/evince.info b/office/evince/evince.info
index d82e5a87c7..91a6eca4f1 100644
--- a/office/evince/evince.info
+++ b/office/evince/evince.info
@@ -1,10 +1,10 @@
PRGNAM="evince"
-VERSION="3.20.2"
+VERSION="3.28.5"
HOMEPAGE="http://projects.gnome.org/evince/"
-DOWNLOAD="https://download.gnome.org/sources/evince/3.20/evince-3.20.2.tar.xz"
-MD5SUM="3da5f98a360829ac49f754873494ce1a"
+DOWNLOAD="https://download.gnome.org/sources/evince/3.28/evince-3.28.5.tar.xz"
+MD5SUM="855600d64544a959add349e32f5185e0"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
-MAINTAINER="Michiel van Wessem"
-EMAIL="michiel@slackbuilds.org"
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
diff --git a/office/evince/shim.h b/office/evince/shim.h
new file mode 100644
index 0000000000..8439c34ac5
--- /dev/null
+++ b/office/evince/shim.h
@@ -0,0 +1,25 @@
+/* 20191231 bkw: This seems like stupidity: g_content_type_is_mime_type
+ is a new function in glib-2.52, which literally just calls the
+ g_content_type_is_a function from older glibs, and returns its
+ result. Here's the function from the glib-2.52 source:
+
+ gboolean
+ g_content_type_is_mime_type (const gchar *type,
+ const gchar *mime_type)
+ {
+ return g_content_type_is_a (type, mime_type);
+ }
+
+ The docs describe it as a "convenience wrapper" but there's
+ nothing more or less convenient about it, except that it breaks builds
+ with older glib versions. Why does it even exist?
+ */
+#define g_content_type_is_mime_type(x,y) g_content_type_is_a(x,y)
+
+/* 20191231 bkw: We'd need gtk+-3.22 to have gtk_popover_popup and
+ gtk_popover_popdown. They're functionally the same as gtk_widget_show
+ and gtk_widget_hide, except they have a "transition" (fade-in/out).
+ Some folks might actually prefer it without the fade.
+ */
+#define gtk_popover_popup(x) gtk_widget_show(GTK_WIDGET(x))
+#define gtk_popover_popdown(x) gtk_widget_hide(GTK_WIDGET(x))
diff --git a/office/evince/slack-desc b/office/evince/slack-desc
index 3936ba82a4..7701e9823d 100644
--- a/office/evince/slack-desc
+++ b/office/evince/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-evince: evince (a simple gnome-based document viewer)
+evince: evince (a simple gtk-based document viewer)
evince:
evince: Evince is a document viewer for multiple document formats.
-evince: It currently supports pdf, postscript, djvu, tiff, and dvi.
+evince: It currently supports pdf, postscript, djvu, tiff, dvi, cbr/cbz,
+evince: and xps.
evince:
evince: The goal of evince is to replace the multiple document viewers
evince: that exist on the GNOME Desktop with a single simple application.
evince:
evince: Homepage: http://projects.gnome.org/evince/
evince:
-evince: