1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
#!/bin/bash
# Slackware build script for mupdf-legacy
# Originally written by Hubert Hesse (email removed).
# Heavily modified by B. Watson (yalhcru@gmail.com).
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# 20200218 bkw: rename this build to -legacy, remove dynamic linking
# and JavaScript support, install to /opt. Also get rid
# of .desktop and icon.
# 20180623 bkw: BUILD=2, add patch for dynamic linking. Thanks
# to Thomas Morper for pointing me in the right direction.
# 20180615 bkw: update for 1.13.0, move old change comments to ChangeLog.old
# 20180101 bkw: update for 1.12.0.
# 20170711 bkw: update for 1.11.
# 20170621 bkw: fix build with -current's newer openjpeg, BUILD=2.
# 20170122 bkw: update for 1.10a.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mupdf-legacy
VERSION=${VERSION:-1.13.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
SRCNAM=mupdf
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -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
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $SRCNAM-$VERSION-source
tar xvf $CWD/$SRCNAM-$VERSION-source.tar.gz
cd $SRCNAM-$VERSION-source
# don't find/chown/chmod until after the thirdparty junk is removed.
# Build against system libs instead of bundled ones. If we didn't do this,
# libmupdf would be useless for building anything else.
# Everything removed from thirdparty/ has to be installed systemwide, and must
# either be a Slackware core pkg, or mentioned in REQUIRES= in the .info
# file... except mujs, which is mupdf's javascript support lib. If missing,
# we end up with a mupdf with no JS support, which is fine for use with
# zathura-pdf-mupdf and fbpdf use.
rm -rf thirdparty/*
sed -i 's,murun\.o,,' Makefile
sed -i 's,pdf_drop_js.*,;,' source/pdf/pdf-xref.c
sed -i '/murun_main/d' source/tools/mutool.c
chown -R root:root .
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
# ref https://bugs.ghostscript.com/show_bug.cgi?id=697175
sed -i '/#define *OPJ_STATIC/d' source/fitz/load-jpx.c
# Hard-code the version number so it'll stop trying to use git to retrieve
# it and spewing harmless but scary 'fatal: Not a git repository' errors.
sed -i "/^VERSION/s,=.*,= $VERSION," Makefile
make verbose=yes \
XCFLAGS="$SLKCFLAGS -DJBIG_NO_MEMENTO" \
HAVE_MUJS="no" \
build=release \
prefix=/opt/$PRGNAM \
libdir=/opt/$PRGNAM/lib$LIBDIRSUFFIX \
mandir=/opt/$PRGNAM/man \
docdir=/usr/doc/$PRGNAM-$VERSION \
DESTDIR=$PKG \
all extra-apps install
# 1.12.0 used to install this stuff with 'make install', 1.13.0 doesn't:
for i in mjsgen muraster mupdf-x11-curl; do
[ -e build/release/$i ] && install -s -m0755 build/release/$i $PKG/opt/$PRGNAM/bin
done
strip $PKG/opt/$PRGNAM/bin/*
gzip -9 $PKG/opt/$PRGNAM/man/man1/*.1
# Compatibility symlinks. Older versions, the binary is just "mupdf".
# Separate -curl binary exists in 1.5 but not 1.4.
ln -s $SRCNAM-x11 $PKG/opt/$PRGNAM/bin/$SRCNAM
ln -s $SRCNAM.1.gz $PKG/opt/$PRGNAM/man/man1/$SRCNAM-x11.1.gz
[ -e $PKG/opt/$PRGNAM/bin/$SRCNAM-x11-curl ] && \
ln -s $SRCNAM.1.gz $PKG/opt/$PRGNAM/man/man1/$SRCNAM-x11-curl.1.gz
# mujstest is useless if we don't have JS support.
rm -f $PKG/opt/$PRGNAM/bin/mujstest
# Installed permissions are atrocious (everything 755).
find $PKG -type f | xargs chmod 644
chmod 755 $PKG/opt/$PRGNAM/bin/*
# .pc file taken from debian and parameterized.
PCLIBS="-l$SRCNAM -lfreetype -lharfbuzz -ljbig2dec -ljpeg -lcrypto -lopenjp2 -lz -lm"
PCLIBS="$PCLIBS -lmupdfthird"
mkdir -p $PKG/opt/$PRGNAM/lib$LIBDIRSUFFIX/pkgconfig/
sed -e "s,@LIB@,lib$LIBDIRSUFFIX,g" \
-e "s,@VERSION@,$VERSION,g" \
-e "s,@PCLIBS@,$PCLIBS,g" \
$CWD/$SRCNAM.pc > $PKG/opt/$PRGNAM/lib$LIBDIRSUFFIX/pkgconfig/$SRCNAM.pc
# 'make install' already installed most of the docs.
cp -a CONTRIBUTORS $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
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|