mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-24 10:02:29 +01:00
office/mupdf: Updated for version 1.21.1.
Signed-off-by: B. Watson <urchlay@slackware.uk> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
babd926c0a
commit
6973a7d31d
5 changed files with 93 additions and 67 deletions
|
@ -1,7 +1,7 @@
|
|||
mupdf is a lightweight PDF, CBZ, and XPS viewer and toolkit.
|
||||
|
||||
The renderer in MuPDF is tailored for high quality anti-aliased
|
||||
graphics. MuPDF renders text with metrics and spacing accurate to
|
||||
graphics. MuPDF renders text with metrics and spacing accurate to
|
||||
within fractions of a pixel for the highest fidelity in reproducing
|
||||
the look of a printed page on screen.
|
||||
|
||||
|
@ -11,6 +11,10 @@ and more. It also reads XPS and OpenXPS documents. MuPDF is written
|
|||
modularly, so features can be added on by integrators if they so
|
||||
desire.
|
||||
|
||||
Optional dependency: tesseract. If this is installed, mupdf will be
|
||||
built with OCR support. If it's installed but you don't want to build
|
||||
mupdf with it, export TESSERACT=no in the environment.
|
||||
|
||||
Notes:
|
||||
|
||||
1. It's no longer possible to build mupdf without JavaScript support.
|
||||
|
@ -19,7 +23,3 @@ Notes:
|
|||
regular PDF viewer, and mupdf-x11-curl has support for fetching remote
|
||||
resources from the network (which may be considered a security risk).
|
||||
mupdf-gl uses OpenGL for rendering (and doesn't support curl).
|
||||
|
||||
3. mupdf's PDF digital signature verification and signing support is
|
||||
disabled in this build, because Slackware 14.2's openssl is too old.
|
||||
For most users, this is a rarely- or never-used feature anyway.
|
||||
|
|
|
@ -7,6 +7,13 @@
|
|||
|
||||
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
|
||||
|
||||
# 20230117 bkw: update for 1.21.1.
|
||||
# - Again, this script can't build older versions.
|
||||
# - There's a gumbo-parser SlackBuild now, so build with it instead of
|
||||
# upstream's bundled version.
|
||||
# - tesseract builds work, so make that an option.
|
||||
# - Include pre-scaled PNG icons.
|
||||
|
||||
# 20201020 bkw: update for 1.18.0. See notes, below.
|
||||
# 20200217 bkw: update for 1.16.1.
|
||||
# 20180623 bkw: BUILD=2, add patch for dynamic linking. Thanks
|
||||
|
@ -54,7 +61,7 @@
|
|||
cd $(dirname $0) ; CWD=$(pwd)
|
||||
|
||||
PRGNAM=mupdf
|
||||
VERSION=${VERSION:-1.18.0}
|
||||
VERSION=${VERSION:-1.21.1}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
PKGTYPE=${PKGTYPE:-tgz}
|
||||
|
@ -91,27 +98,32 @@ else
|
|||
fi
|
||||
set -e
|
||||
|
||||
# Tesseract code left here for future reference. At some point upstream
|
||||
# (or maybe I) will fix it.
|
||||
if [ "${TESSERACT:-no}" = "yes" ]; then
|
||||
TESSARGS="USE_SYSTEM_LEPTONICA=yes USE_SYSTEM_TESSERACT=yes"
|
||||
cat <<EOF
|
||||
***
|
||||
*** 20201023 bkw: Tesseract support in mupdf is currently broken. If
|
||||
*** you want to forcibly build with it, edit the SlackBuild. Aborting.
|
||||
***
|
||||
EOF
|
||||
exit 1
|
||||
else
|
||||
TESSARGS="HAVE_LEPTONICA=no HAVE_TESSERACT=no"
|
||||
fi
|
||||
# Building mupdf seems to work OK if an older version is installed,
|
||||
# but I only tested 1.21.1 when 1.18.0 was installed (doesn't mean
|
||||
# it works for all versions).
|
||||
print_failed_message() {
|
||||
if pkg-config --exists mupdf; then
|
||||
cat 1>&2 <<EOF
|
||||
|
||||
**************************************************************************
|
||||
* The build failed. This might have happened because you had an existing *
|
||||
* (older) mupdf package installed. Run "removepkg mupdf" and try again. *
|
||||
**************************************************************************
|
||||
EOF
|
||||
fi
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 20230117 bkw: tesseract builds work fine in 1.21.1, but tesseract
|
||||
# doesn't get autodetected. Help it out a little.
|
||||
TESS=no
|
||||
[ "${TESSERACT:-yes}" = "yes" ] && pkg-config --exists tesseract && TESS=yes
|
||||
|
||||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf $PRGNAM-$VERSION-source
|
||||
tar xvf $CWD/$PRGNAM-$VERSION-source.tar.?z
|
||||
tar xvf $CWD/$PRGNAM-$VERSION-source.tar.lz
|
||||
cd $PRGNAM-$VERSION-source
|
||||
|
||||
chown -R root:root .
|
||||
|
@ -131,52 +143,70 @@ SOMAJOR=$(echo $VERSION | cut -d. -f1-2 | sed -e 's,\.[0-9]$,0&,' -e 's,\.,,g')
|
|||
SOMINOR=$(echo $VERSION | cut -d. -f3- | sed 's,\.,,g' )
|
||||
SOVER=$SOMAJOR.$SOMINOR
|
||||
|
||||
# Shared libraries should be installed executable.
|
||||
sed -i '/install.*644.*INSTALL_LIBS/s,644,755,' Makefile
|
||||
|
||||
# tesseract autodetection is mildly broken:
|
||||
sed -i 's,tesseract-ocr,tesseract,' Makerules
|
||||
|
||||
# Build against system libs instead of bundled ones, where possible.
|
||||
# Upstream recommends using their bundled lcms2 and mujs, I'll go with that.
|
||||
# Also, we *still* (in Slack 15.0) have to use the bundled freeglut
|
||||
# to get copy/paste working in mupdf-gl.
|
||||
# C++ (XCXXFLAGS) is only actually used if building with tesseract.
|
||||
make verbose=yes \
|
||||
shared=yes \
|
||||
LIB_LDFLAGS="-shared -Wl,-soname -Wl,libmupdf.so.$SOMAJOR" \
|
||||
SO="so.$SOVER" \
|
||||
XCFLAGS="$SLKCFLAGS -DJBIG_NO_MEMENTO" \
|
||||
XCXXFLAGS="-std=c++11 -fpermissive" \
|
||||
USE_SYSTEM_LIBS=yes \
|
||||
USE_SYSTEM_GUMBO=no \
|
||||
USE_SYSTEM_GLUT=no \
|
||||
$TESSARGS \
|
||||
tesseract=$TESS \
|
||||
build=release \
|
||||
prefix=/usr \
|
||||
libdir=/usr/lib$LIBDIRSUFFIX \
|
||||
mandir=/usr/man \
|
||||
docdir=/usr/doc/$PRGNAM-$VERSION \
|
||||
DESTDIR=$PKG \
|
||||
all install
|
||||
all install || print_failed_message
|
||||
|
||||
# bins and libs are already stripped.
|
||||
gzip -9 $PKG/usr/man/man1/*.1
|
||||
|
||||
# ldconfig will create the libmupdf.so.$SOVER link, but the libmupdf.so
|
||||
# one has to be part of the package.
|
||||
ln -s lib$PRGNAM.so.$SOMAJOR.$SOMINOR $PKG/usr/lib$LIBDIRSUFFIX/lib$PRGNAM.so
|
||||
# 20230117 bkw: fix up the lib dir.
|
||||
cd $PKG/usr/lib$LIBDIRSUFFIX
|
||||
# 20230117 bkw: AFAIK, we have to list every shared lib this one
|
||||
# depends on in the .pc file. This rather odd-looking bit of code
|
||||
# creates the list.
|
||||
PCLIBS="-lmupdf $(
|
||||
objdump -p libmupdf.so | \
|
||||
perl -ne 'next unless /NEEDED/;
|
||||
chomp;
|
||||
s,.* lib([^.]*)\.so.*,\1,;
|
||||
print "-l$_ " unless /^(c|gcc_s)$/;'
|
||||
)"
|
||||
WITHTESS=WITHOUT
|
||||
echo "$PCLIBS" | grep -q ltesseract && WITHTESS=WITH
|
||||
echo "==> PCLIBS='$PCLIBS'"
|
||||
|
||||
# Historically, mupdf has included two libraries: libmupdf itself,
|
||||
# and libmupdf-third, containing all the bundled third party code
|
||||
# included with the source. In version 1.18.0, when building a
|
||||
# shared lib, no libmupdf-third gets created (all the code ends up in
|
||||
# libmupdf.so). However, most projects that link with libmupdf expect
|
||||
# this library to exist. This will probably change in the future as
|
||||
# those projects get updated for the changes in mupdf, but for now,
|
||||
# to be compatible with older mupdf versions, we include an empty
|
||||
# libmupdf-third for stuff to link with.
|
||||
ar crs $PKG/usr/lib$LIBDIRSUFFIX/libmupdf-third.a
|
||||
# 20230117 bkw: the library is versioned, but the filename isn't...
|
||||
chmod 755 libmupdf.so
|
||||
mv libmupdf.so libmupdf.so.$SOVER
|
||||
ln -s libmupdf.so.$SOVER libmupdf.so
|
||||
ln -s libmupdf.so.$SOVER libmupdf.so.$SOMAJOR
|
||||
|
||||
# .pc file taken from debian and parameterized.
|
||||
mkdir -p pkgconfig/
|
||||
sed -e "s,@LIB@,lib$LIBDIRSUFFIX,g" \
|
||||
-e "s,@VERSION@,$VERSION,g" \
|
||||
-e "s,@PCLIBS@,$PCLIBS,g" \
|
||||
$CWD/$PRGNAM.pc > pkgconfig/$PRGNAM.pc
|
||||
|
||||
# Historically, mupdf has included two libraries: libmupdf itself,
|
||||
# and libmupdf-third, containing all the bundled third party code
|
||||
# included with the source. In version >=1.18.0, when building a
|
||||
# shared lib, no libmupdf-third gets created (all the code ends up in
|
||||
# libmupdf.so). However, most projects that link with libmupdf expect
|
||||
# this library to exist. This will probably change in the future as
|
||||
# those projects get updated for the changes in mupdf, but for now,
|
||||
# to be compatible with older mupdf versions, we include an empty
|
||||
# libmupdf-third for stuff to link with.
|
||||
ar crs libmupdf-third.a
|
||||
cd -
|
||||
|
||||
# Compatibility symlinks. Older versions, the binary is just "mupdf".
|
||||
# Separate -curl binary exists in 1.5 but not 1.4.
|
||||
ln -s $PRGNAM-x11 $PKG/usr/bin/$PRGNAM
|
||||
for i in x11 x11-curl gl; do
|
||||
[ -e $PKG/usr/bin/$PRGNAM-$i ] && \
|
||||
|
@ -189,27 +219,24 @@ done
|
|||
mkdir -p $PKG/usr/share/applications
|
||||
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
|
||||
|
||||
# Use shipped PNG and SVG icons.
|
||||
# Use shipped SVG icon, make PNGs at various sizes.
|
||||
mkdir -p $PKG/usr/share/pixmaps $PKG/usr/share/icons/hicolor/scalable/apps
|
||||
cat docs/logo/mupdf-icon.png > $PKG/usr/share/pixmaps/$PRGNAM.png
|
||||
cat docs/logo/mupdf-logo.svg > $PKG/usr/share/icons/hicolor/scalable/apps/$PRGNAM.svg
|
||||
|
||||
# .pc file taken from debian and parameterized.
|
||||
# -lcrypto used to be in this list, will be again someday.
|
||||
PCLIBS="-l$PRGNAM -lfreetype -lharfbuzz -ljbig2dec -ljpeg -lopenjp2 -lz -lm"
|
||||
|
||||
mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/pkgconfig/
|
||||
sed -e "s,@LIB@,lib$LIBDIRSUFFIX,g" \
|
||||
-e "s,@VERSION@,$VERSION,g" \
|
||||
-e "s,@PCLIBS@,$PCLIBS,g" \
|
||||
$CWD/$PRGNAM.pc > $PKG/usr/lib$LIBDIRSUFFIX/pkgconfig/$PRGNAM.pc
|
||||
svg=docs/logo/mupdf-logo.svg
|
||||
for i in 16 22 32 48 64 128; do
|
||||
px=${i}x${i}
|
||||
dir=$PKG/usr/share/icons/hicolor/$px/apps
|
||||
mkdir -p $dir
|
||||
rsvg-convert --width=$i --height=$i -o $dir/$PRGNAM.png $svg
|
||||
done
|
||||
cat $svg > $PKG/usr/share/icons/hicolor/scalable/apps/$PRGNAM.svg
|
||||
ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
|
||||
|
||||
# 'make install' already installed most of the docs.
|
||||
cp -a CONTRIBUTORS docs/api $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
|
||||
sed "s,@WITHTESS@,$WITHTESS," < $CWD/slack-desc > $PKG/install/slack-desc
|
||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
cd $PKG
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
PRGNAM="mupdf"
|
||||
VERSION="1.18.0"
|
||||
VERSION="1.21.1"
|
||||
HOMEPAGE="https://www.mupdf.com/"
|
||||
DOWNLOAD="https://www.mupdf.com/downloads/archive/mupdf-1.18.0-source.tar.xz"
|
||||
MD5SUM="3135391b027cdbedf915db1787b4ea05"
|
||||
DOWNLOAD="https://www.mupdf.com/downloads/archive/mupdf-1.21.1-source.tar.lz"
|
||||
MD5SUM="476ac6c3e71f85378a056844fa2daa8a"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES="jbig2dec"
|
||||
REQUIRES="jbig2dec gumbo-parser"
|
||||
MAINTAINER="B. Watson"
|
||||
EMAIL="urchlay@slackware.uk"
|
||||
|
|
|
@ -5,7 +5,6 @@ includedir=${prefix}/include
|
|||
|
||||
Name: mupdf
|
||||
Description: Library for rendering PDF documents
|
||||
Requires.private: freetype2
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} @PCLIBS@
|
||||
Cflags: -I${includedir}
|
||||
|
|
|
@ -15,5 +15,5 @@ mupdf: the look of a printed page on screen.
|
|||
mupdf:
|
||||
mupdf: https://www.mupdf.com/
|
||||
mupdf:
|
||||
mupdf:
|
||||
mupdf: This package was built @WITHTESS@ tesseract support.
|
||||
mupdf:
|
||||
|
|
Loading…
Reference in a new issue