summaryrefslogtreecommitdiffstats
path: root/calibre
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2019-10-23 09:54:29 +0000
committer Eric Hameleers <alien@slackware.com>2019-10-23 09:54:29 +0000
commitd90b2c679db25cb6310236b13746412e18776c07 (patch)
tree3ce751bc49fbf4ab57d298dc0d96d4329d53f5ec /calibre
parent0a0bf9e3a514ec4614ace7fd19ddbd6cc73e076d (diff)
downloadasb-d90b2c679db25cb6310236b13746412e18776c07.tar.gz
asb-d90b2c679db25cb6310236b13746412e18776c07.tar.xz
calibre: updated to 4.2.0. Major version bump, lots of new dependencies.
The new package can be built without *external* dependencies now.
Diffstat (limited to 'calibre')
-rwxr-xr-xcalibre/build/calibre.SlackBuild720
1 files changed, 440 insertions, 280 deletions
diff --git a/calibre/build/calibre.SlackBuild b/calibre/build/calibre.SlackBuild
index bcf76a9c..d7945fc0 100755
--- a/calibre/build/calibre.SlackBuild
+++ b/calibre/build/calibre.SlackBuild
@@ -28,13 +28,17 @@
# For: calibre
# Descr: e-book library management application
# URL: http://calibre-ebook.com/
-# Needs: podofo, unrar;
-# If you did not add Qt5 to the package, you will also need:
-# qt5, qt5-webkit, PyQt5;
+# Needs: If you did not add Qt5 to the package, you will also need:
+# libinput,libxkbcommon,qt5.
# If you did not add python2.7 to the package, you will also need:
-# dnspython, pycrypto, pysetuptools, python-apsw,
-# python-css-parser, python-dateutil, python-lxml,
-# python-mechanize, python-netifaces, python-psutil
+# PyQt5, PyQtWebEngine, dbus-python, dnspython, pycrypto,
+# pysetuptools, python-apsw, python-beautifulsoup4, python-bflc,
+# python-chardet, python-css-parser, python-dateutil, python-enum34,
+# python-feedparser, pyhton-html2text, python-html5-parser,
+# python-html5lib, python-lxml, python-markdown, python-mechanize,
+# python-msgpack, python-netifaces, python-pillow, python-psutil,
+# python-pygments, python-regex, python-six, python-soupsieve,
+# python-unrardll, python-webencodings, sip, sqlite-amalgamation.
# Changelog:
# 0.7.20-1: 25/Sep/2010 by Eric Hameleers <alien@slackware.com>
# * Initial build.
@@ -118,6 +122,8 @@
# * Update.
# 3.47.1-1: 08/sep/2019 by Eric Hameleers <alien@slackware.com>
# * Update.
+# 4.2.0-1: 19/oct/2019 by Eric Hameleers <alien@slackware.com>
+# * New major release 4.x. No more qt-webkit.
#
# Run 'sh calibre.SlackBuild' to build a Slackware package.
# The package (.txz) and .txt file as well as build logs are created in /tmp .
@@ -127,7 +133,7 @@
PRGNAM=calibre
SRCNAM=calibre
-VERSION=${VERSION:-3.47.1}
+VERSION=${VERSION:-4.2.0}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j$(nproc) "}
TAG=${TAG:-alien}
@@ -137,25 +143,24 @@ DOCS="LICENSE* Changelog* COPYRIGHT README*"
PYTHON=$(python2 -c 'import sys; print (sys.version.split( )[0])')
SLACKVER=${SLACKVER:-$(cat /etc/slackware-version |cut -d' ' -f2)}
-REQUIRED_QT="5.6.2"
+REQUIRED_QT="5.13.0"
# Only used in case we need to build our own Qt:
-INT_QT=5.9.6
-INT_QTWEBKIT=5.9.1
+INT_QT=5.13.1
-REQUIRED_MTP="1.1.11"
+REQUIRED_MTP="1.1.16"
# Only used in case we need to build our own libmtp:
-INT_MTP=1.1.14
+INT_MTP=1.1.16
# Only used when we build our own ImageMagick:
-INT_MAGICK=6.9.9-42
+INT_MAGICK=6.9.10_68
REQUIRED_PYTHON="2.7"
-REQUIRED_PYTHON_MIN="15"
+REQUIRED_PYTHON_MIN="16"
# Only used in case we need to build our own python:
-INT_PYTHON=2.7.16
+INT_PYTHON=2.7.17
# Only used in case we need to build our own python modules:
#INT_SETUPTOOLS=14.3
@@ -164,37 +169,42 @@ INT_PYTHON=2.7.16
# and fails to compile netifaces with error:
# netifaces.c error you need to add code for your platform
INT_SETUPTOOLS=41.0.1
-INT_PIP=19.2.1
+# The rest of the internal Python deps:
+INT_APSW=3.27.2-r1
INT_BEAUTIFULSOUP=4.8.0
INT_BFLC=1.5
+INT_CHARDET=3.0.4
INT_CSSPARSER=1.0.4
-INT_DATEUTIL=2.5.3
-INT_DBUSPYTHON=1.2.0
-INT_DNSPYTHON=1.14.0
-INT_DUKPY=0.3
+INT_DATEUTIL=2.8.0
+INT_DBUSPYTHON=1.2.8
+INT_DNSPYTHON=1.16.0
+INT_ENUM34=1.1.6
INT_FEEDPARSER=5.2.1
INT_HTML2TEXT=2018.1.9
-INT_HTML5LIB=0.999999999
+INT_HTML5LIB=1.0.1
INT_HTML5PARSER=0.4.8
-INT_IMAGING=3.2.0
-INT_LXML=3.8.0
-INT_MARKDOWN=3.0.1
-INT_MECHANIZE=0.3.3
-INT_MSGPACK=0.5.6
-INT_NETIFACES=0.10.6
-INT_OPTIPNG=0.7.5
-INT_PSUTIL=4.3.0
+INT_LXML=4.3.3
+INT_MARKDOWN=3.1
+INT_MECHANIZE=0.4.3
+INT_MSGPACK=0.6.1
+INT_NETIFACES=0.10.9
+INT_OPTIPNG=0.7.7
+INT_PILLOW=6.2.0
+INT_PODOFO=0.9.6
+INT_PSUTIL=5.6.2
INT_PYCRYPTO=2.6.1
INT_PYGMENTS=2.3.1
-INT_PYQT5=5.9.2
-INT_REGEX=2018.07.11
-INT_SIP=4.19.8
-INT_SIX=1.10.0
+INT_PYQT5=5.13.1
+INT_PYQTWEBENG=5.13.1
+INT_REGEX=2019.04.14
+INT_SIP=4.19.19
+INT_SIX=1.12.0
INT_SOUPSIEVE=1.9.1
-INT_SQLITE=3270200
+INT_SQLITE=3280000
INT_UNRARDLL=0.1.3
+INT_UNRARSRC=5.5.6
INT_WEBENC=0.5.1
-INT_APSW=3.27.2-r1
+INT_XKB=0.9.1
# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)
@@ -275,10 +285,10 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
SRCURL[4]="https://pypi.python.org/packages/source/c/css-parser/css-parser-${INT_CSSPARSER}.tar.gz"
SOURCE[5]="$SRCDIR/sources/python-dateutil-${INT_DATEUTIL}.tar.gz"
- SRCURL[5]="https://github.com/dateutil/dateutil/releases/download/${INT_DATEUTIL}/python-dateutil-${INT_DATEUTIL}.tar.gz"
+ SRCURL[5]="https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-${INT_DATEUTIL}.tar.gz"
- SOURCE[6]="$SRCDIR/sources/Pillow-${INT_IMAGING}.tar.gz"
- SRCURL[6]="https://github.com/python-pillow/Pillow/archive/${INT_IMAGING}.tar.gz"
+ SOURCE[6]="$SRCDIR/sources/Pillow-${INT_PILLOW}.tar.gz"
+ SRCURL[6]="https://pypi.io/packages/source/p/pillow/Pillow-${INT_PILLOW}.tar.gz"
SOURCE[7]="$SRCDIR/sources/lxml-${INT_LXML}.tgz"
SRCURL[7]="http://lxml.de/files/lxml-${INT_LXML}.tgz"
@@ -287,10 +297,10 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
SRCURL[8]="https://github.com/python-mechanize/mechanize/archive/v${INT_MECHANIZE}.tar.gz"
SOURCE[9]="$SRCDIR/sources/PyQt5_gpl-${INT_PYQT5}.tar.gz"
- SRCURL[9]="http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-${INT_PYQT5}/PyQt5_gpl-${INT_PYQT5}.tar.gz"
+ SRCURL[9]="https://www.riverbankcomputing.com/static/Downloads/PyQt5/${INT_PYQT5}/PyQt5_gpl-${INT_PYQT5}.tar.gz"
SOURCE[10]="$SRCDIR/sources/sip-${INT_SIP}.tar.gz"
- SRCURL[10]="http://sourceforge.net/projects/pyqt/files/sip/sip-${INT_SIP}/sip-${INT_SIP}.tar.gz"
+ SRCURL[10]="https://www.riverbankcomputing.com/static/Downloads/sip/${INT_SIP}/sip-${INT_SIP}.tar.gz"
SOURCE[11]="$SRCDIR/sources/dbus-python-${INT_DBUSPYTHON}.tar.gz"
SRCURL[11]="http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${INT_DBUSPYTHON}.tar.gz"
@@ -312,13 +322,13 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
SRCURL[16]="https://pypi.io/packages/source/r/regex/regex-${INT_REGEX}.tar.gz"
SOURCE[17]="$SRCDIR/sources/msgpack-python-${INT_MSGPACK}.tar.gz"
- SRCURL[17]="https://pypi.io/packages/source/m/msgpack-python/msgpack-python-${INT_MSGPACK}.tar.gz"
+ SRCURL[17]="https://pypi.io/packages/source/m/msgpack/msgpack-${INT_MSGPACK}.tar.gz"
SOURCE[18]="$SRCDIR/sources/six-${INT_SIX}.tar.gz"
SRCURL[18]="https://pypi.io/packages/source/s/six/six-${INT_SIX}.tar.gz"
- SOURCE[19]="$SRCDIR/sources/dukpy-${INT_DUKPY}.tar.gz"
- SRCURL[19]="https://github.com/kovidgoyal/dukpy/archive/v${INT_DUKPY}.tar.gz"
+ SOURCE[19]="$SRCDIR/sources/enum34-${INT_ENUM34}.tar.gz"
+ SRCURL[19]="https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-${INT_ENUM34}.tar.gz"
SOURCE[20]="$SRCDIR/sources/webencodings-${INT_WEBENC}.tar.gz"
SRCURL[20]="https://pypi.io/packages/source/w/webencodings/webencodings-${INT_WEBENC}.tar.gz"
@@ -353,8 +363,14 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
SOURCE[30]="$SRCDIR/sources/html2text-${INT_HTML2TEXT}.tar.gz"
SRCURL[30]="https://pypi.io/packages/source/h/html2text/html2text-${INT_HTML2TEXT}.tar.gz"
- SOURCE[31]="$SRCDIR/sources/pip-${INT_PIP}.tar.gz"
- SRCURL[31]="https://pypi.io/packages/source/p/pip/pip-${INT_PIP}.tar.gz"
+ SOURCE[31]="$SRCDIR/sources/chardet-${INT_CHARDET}.tar.gz"
+ SRCURL[31]="https://pypi.io/packages/source/c/chardet/chardet-${INT_CHARDET}.tar.gz"
+
+ SOURCE[32]="$SRCDIR/sources/unrarsrc-${INT_UNRARSRC}.tar.gz"
+ SRCURL[32]="http://www.rarlab.com/rar/unrarsrc-${INT_UNRARSRC}.tar.gz"
+
+ SOURCE[33]="$SRCDIR/sources/PyQtWebEngine_gpl-${INT_PYQTWEBENG}.tar.gz"
+ SRCURL[33]="https://www.riverbankcomputing.com/static/Downloads/PyQtWebEngine/${INT_PYQTWEBENG}/PyQtWebEngine_gpl-${INT_PYQTWEBENG}.tar.gz"
NEXT_ARRAYEL=${#SOURCE[@]}
else
@@ -374,7 +390,7 @@ if [ "$BUILD_MTP" = "YES" ]; then
echo ">> Compiling libmtp <<"
SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/libmtp-${INT_MTP}.tar.gz"
- SRCURL[$NEXT_ARRAYEL]="http://sourceforge.net/projects/libmtp/files/libmtp/${INT_MTP}/libmtp-${INT_MTP}.tar.gz/download"
+ SRCURL[$NEXT_ARRAYEL]="https://downloads.sourceforge.net/libmtp/libmtp-${INT_MTP}.tar.gz"
NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 ))
fi
@@ -382,13 +398,13 @@ fi
if [ "$BUILD_QT" = "YES" ]; then
echo ">> Compiling Qt <<"
- SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/qt-everywhere-opensource-src-${INT_QT}.tar.xz"
- SRCURL[$NEXT_ARRAYEL]="http://download.qt.io/official_releases/qt/$(echo ${INT_QT}|cut -d. -f1,2)/${INT_QT}/single/qt-everywhere-opensource-src-${INT_QT}.tar.xz"
+ SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/qt-everywhere-src-${INT_QT}.tar.xz"
+ SRCURL[$NEXT_ARRAYEL]="http://download.qt.io/official_releases/qt/$(echo ${INT_QT}|cut -d. -f1,2)/${INT_QT}/single/qt-everywhere-src-${INT_QT}.tar.xz"
NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 ))
- SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/qtwebkit-opensource-src-${INT_QTWEBKIT}.tar.xz"
- SRCURL[$NEXT_ARRAYEL]="http://download.qt.io/official_releases/qt/$(echo ${INT_QTWEBKIT}|cut -d. -f1,2)/${INT_QTWEBKIT}/submodules/qtwebkit-opensource-src-${INT_QTWEBKIT}.tar.xz"
+ SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/libxkbcommon-xkbcommon-${INT_XKB}.tar.gz"
+ SRCURL[$NEXT_ARRAYEL]="https://github.com/xkbcommon/libxkbcommon/archive/xkbcommon-${INT_XKB}.tar.gz"
NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 ))
fi
@@ -403,7 +419,11 @@ if [ "$BUILD_MAGICK" = "YES" ]; then
fi
SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/optipng-${INT_OPTIPNG}.tar.gz"
-SRCURL[$NEXT_ARRAYEL]="http://prdownloads.sourceforge.net/optipng/optipng-${INT_OPTIPNG}.tar.gz"
+SRCURL[$NEXT_ARRAYEL]="https://downloads.sourceforge.net/optipng/optipng-${INT_OPTIPNG}.tar.gz"
+NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 ))
+
+SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/podofo-${INT_PODOFO}.tar.gz"
+SRCURL[$NEXT_ARRAYEL]="https://downloads.sourceforge.net/podofo/podofo-${INT_PODOFO}.tar.gz"
NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 ))
##
@@ -457,10 +477,17 @@ umask 0022
mkdir -p $OUTPUT # place for the package to be saved
mkdir -p $TMP/tmp-$PRGNAM # location to build the source
mkdir -p $PKG # place for the package to be built
-rm -rf $PKG/* # always erase old package's contents
-rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build
-rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$PRGNAM.log
- # remove old log files
+
+if [ "$P1" != "--oldbuild" -a "$P1" != "--download" ]; then
+ # If the "--oldbuild" parameter is present, we keep
+ # the old build files and continue;
+ # By default we remove the remnants of previous build and continue:
+ echo -e "**\n** Cleaning up old build ...\n**"
+ rm -rf $PKG/* # always erase old package's contents
+ rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build
+ rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$PRGNAM.log
+ # remove old log files
+fi
# Source file availability:
for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do
@@ -495,36 +522,40 @@ echo "++"
echo "|| $PRGNAM-$VERSION"
echo "++"
-if [ "$BUILD_PYTHON" = "YES" -o "$BUILD_PYTHONMODS" = "YES" -o "$BUILD_MTP" = "YES" -o "$BUILD_QT" = "YES" -o "$BUILD_MAGICK" = "YES" ]; then
- # Sanity check: in case we need to build an internal set of python interpreter
- # plus support modules, then you must not compile this package when calibre
- # is already installed!
- if [ -d /usr/lib${LIBDIRSUFFIX}/calibre/lib ]; then
- echo ""
- echo "** You have calibre installed in /usr/lib${LIBDIRSUFFIX}/calibre"
- echo "** Compiling this package means you have to remove the existing"
- echo "** calibre installation first, it conflicts with the compilation!"
- echo ""
- exit 1
+cd $TMP/tmp-$PRGNAM
+
+if [ "$P1" != "--oldbuild" ]; then
+ if [ "$BUILD_PYTHON" = "YES" -o "$BUILD_PYTHONMODS" = "YES" -o "$BUILD_MTP" = "YES" -o "$BUILD_QT" = "YES" -o "$BUILD_MAGICK" = "YES" ]; then
+ # Sanity check:
+ # In case we need to build an internal set of python interpreter plus
+ # support modules, then you must not compile this package when calibre
+ # is already installed!
+ if [ -d /usr/lib${LIBDIRSUFFIX}/calibre/lib ]; then
+ echo ""
+ echo "** You have calibre installed in /usr/lib${LIBDIRSUFFIX}/calibre"
+ echo "** Compiling this package means you have to remove the existing"
+ echo "** calibre installation first, it conflicts with the compilation!"
+ echo ""
+ exit 1
+ fi
fi
-fi
-cd $TMP/tmp-$PRGNAM
-echo "Extracting the source archive(s) for $PRGNAM..."
-tar -xf ${SOURCE[0]}
-if [ $NEXT_ARRAYEL -gt 1 ]; then
-for (( i = 1; i < ${#SOURCE[*]}; i++ )) ; do
- echo "-- Also extracting dependency source $(basename ${SOURCE[$i]})..."
- if unzip -l ${SOURCE[$i]} 1>/dev/null 2>&1 ; then
- unzip -q ${SOURCE[$i]}
- else
- tar -xf ${SOURCE[$i]}
+ echo "Extracting the source archive(s) for $PRGNAM..."
+ tar -xf ${SOURCE[0]}
+ if [ $NEXT_ARRAYEL -gt 1 ]; then
+ for (( i = 1; i < ${#SOURCE[*]}; i++ )) ; do
+ echo "-- Also extracting dependency source $(basename ${SOURCE[$i]})..."
+ if unzip -l ${SOURCE[$i]} 1>/dev/null 2>&1 ; then
+ unzip -q ${SOURCE[$i]}
+ else
+ tar -xf ${SOURCE[$i]}
+ fi
+ done
fi
-done
-fi
-chown -R root:root .
-chmod -R u+w,go+r-w,a+X-s .
+ chown -R root:root .
+ chmod -R u+w,go+r-w,a+X-s .
+fi
echo Building ...
@@ -533,6 +564,41 @@ echo Building ...
#
#
+# Build libxkbcommon:
+#
+make_xkbcommon() {
+
+ local MOD="xkbcommon"
+ echo -e "\n** $MOD **\n"
+
+ cd $TMP/tmp-$PRGNAM/libxkbcommon-xkbcommon-${INT_XKB}
+
+ export CFLAGS="$SLKCFLAGS"
+ export CXXFLAGS="$SLKCFLAGS"
+ mkdir -p build
+ cd build
+ meson .. \
+ -Denable-docs=false \
+ -Denable-wayland=false \
+ --prefix=/usr/lib${LIBDIRSUFFIX}/calibre \
+ --libdir=/usr/lib${LIBDIRSUFFIX}/calibre/lib \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_${MOD}.log
+ cd -
+ # Build and install:
+ ninja -C build \
+ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
+ DESTDIR=$PKG meson install -C build \
+ 2>&1 | tee $OUTPUT/install-${PRGNAM}_${MOD}.log
+
+ # Add documentation:
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
+ cp -a LICENSE NEWS PACKAGING README* \
+ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
+
+} # End make_xkbcommon
+
+
+#
# Build Qt 5.x:
#
make_qt5() {
@@ -540,7 +606,7 @@ make_qt5() {
local MOD="qt5"
echo -e "\n** $MOD **\n"
- cd $TMP/tmp-$PRGNAM/qt-everywhere-opensource-src-${INT_QT}
+ cd $TMP/tmp-$PRGNAM/qt-everywhere-src-${INT_QT}
# If we build our own Qt5, unset the QT-related environment variables,
# so that a pre-existing Qt5 will not be picked up and create errors later:
@@ -562,41 +628,50 @@ make_qt5() {
RELOCATIONS=""
fi
- # Fix path to mysql header
- cat $PATCHDIR/qt5.mysql.h.diff | patch -p1 --verbose || exit 1
-
- # Fix missing private includes: QTBUG-37417
- sed -e '/CMAKE_NO_PRIVATE_INCLUDES\ \=\ true/d' \
- -i qtbase/mkspecs/features/create_cmake.prf
+ if [ "$P1" != "--oldbuild" ]; then
+ # Fix path to mysql header
+ cat $PATCHDIR/qt5.mysql.h.diff | patch -p1 --verbose || exit 1
+
+ # Fix keyboard input in webengine:
+ cd qtbase
+ cat $PATCHDIR/qt5.qtbug-77364.patch | patch -p1 --verbose || exit 1
+ cd - 1>/dev/null
+
+ # Make qtwebengine compile against pulseaudio 13,
+ cd qtwebengine/src/3rdparty
+ cat $PATCHDIR/qt5.qtbug-77037.patch | patch -p1 --verbose || exit 1
+ cd - 1>/dev/null
+
+ if ! pkg-config --exists libpulse 2>/dev/null ; then
+ # Forcibly disable pulseaudio in qtwebengine:
+ cat $PATCHDIR/qt5.pulseaudio.diff | patch -p1 --verbose || exit 1
+ # Disable pulseaudio in Qt5:
+ PACONF="-no-pulseaudio"
+ else
+ PACONF=" "
+ fi
- # Support openssl 1.1.x:
- if [ "$(openssl version |cut -d' ' -f2 |cut -d. -f1,2)" = "1.1" ]; then
- ( cd qtbase
- cat $SRCDIR/patches/qt5.openssl11.patch | patch -p1 --verbose || exit 1
- )
+ # Use our custom compiler and linker flags:
+ sed -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${SLKCFLAGS}|" \
+ -i qtbase/mkspecs/common/gcc-base.conf || exit 1
+ sed -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${SLKLDFLAGS}|" \
+ -i qtbase/mkspecs/common/g++-unix.conf || exit 1
fi
if ! pkg-config --exists libpulse 2>/dev/null ; then
- # Forcibly disable pulseaudio in qtwebengine:
- cat $SRCDIR/patches/qt5.pulseaudio.diff | patch -p1 --verbose || exit 1
# Disable pulseaudio in Qt5:
PACONF="-no-pulseaudio"
else
PACONF=" "
fi
- # Use our custom compiler and linker flags:
- sed -i -e "s/-O2/$SLKCFLAGS/" qtbase/mkspecs/common/gcc-base.conf || exit 1
- sed -i -e "s/-O3/$SLKCFLAGS/" qtbase/mkspecs/common/gcc-base.conf || exit 1
- sed -i -e "/^QMAKE_LFLAGS\s/s,+=,+= $SLKLDFLAGS,g" qtbase/mkspecs/common/gcc-base.conf || exit 1
-
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
export OPENSOURCE_CXXFLAGS="$SLKCFLAGS"
- export QTDIR="${TMP}/qt-everywhere-opensource-src-${VERSION}"
+ export QTDIR="${TMP}/qt-everywhere-src-${INT_QT}"
export LD_LIBRARY_PATH="${QTDIR}/qtbase/lib:${QTDIR}/qttools/lib"
export QT_PLUGIN_PATH="${QTDIR}/qtbase/plugins"
- ./configure \
+ ./configure -v \
-confirm-license \
-opensource \
-prefix /usr/lib${LIBDIRSUFFIX}/calibre \
@@ -624,10 +699,11 @@ make_qt5() {
-no-use-gold-linker \
-no-sql-odbc -no-sql-psql \
-no-qml-debug \
- -skip qtdeclarative -skip qtactiveqt -skip qtscript -skip qttools \
+ -skip qtactiveqt -skip qtscript -skip qttools \
-skip qtxmlpatterns -skip qttranslations -skip qtdoc \
-skip qtgraphicaleffects -skip qtquickcontrols -skip qtquickcontrols2 \
-skip qt3d -skip qtcanvas3d \
+ -webengine-proprietary-codecs \
${PACONF} \
$RELOCATIONS \
-no-pch \
@@ -642,68 +718,15 @@ make_qt5() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a GPL_EXCEPTION*.TXT LICENSE* README* \
+ cp -a LICENSE* README* \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_qt5
-#
-# Build Qt5 WebKit:
-#
-make_qtwebkit() {
-
- local MOD="qtwebkit"
- echo -e "\n** $MOD **\n"
-
- cd $TMP/tmp-$PRGNAM/qtwebkit-opensource-src-${INT_QTWEBKIT}
-
- # Prevent crashes when compiled with gcc7:
- cat $SRCDIR/patches/qt5-webkit.gcc7.patch | patch -p1 --verbose || exit 1
-
- # Avoid literally thousands of unneeded warning messages (thanks BLFS):
- sed -e '/CONFIG/a QMAKE_CXXFLAGS += -Wno-expansion-to-defined' \
- -i Tools/qmake/mkspecs/features/unix/default_pre.prf
-
- # If we build our own Qt5, unset the QT-related environment variables,
- # so that a pre-existing Qt5 will not be picked up and create errors later:
- unset QTDIR
- unset QT5DIR
- NEWPATH="/usr/lib${LIBDIRSUFFIX}/calibre/bin"
- for elem in $(echo $PATH | cut -d: --output-delimiter=' ' -f1-) ; do
- if ! $(echo "$elem"| grep -q /qt) ; then
- NEWPATH="$NEWPATH:$elem"
- fi
- done
- export PATH="$NEWPATH"
-
- export CFLAGS="$SLKCFLAGS"
- export CXXFLAGS="$SLKCFLAGS"
- export OPENSOURCE_CXXFLAGS="$SLKCFLAGS"
- export QTDIR="${TMP}/qt-everywhere-opensource-src-${VERSION}"
- export LD_LIBRARY_PATH="${QTDIR}/qtbase/lib:${QTDIR}/qttools/lib"
- export QT_PLUGIN_PATH="${QTDIR}/qtbase/plugins"
-
- mkdir build
- cd build
- qmake ../WebKit.pro \
- 2>&1 | tee $OUTPUT/qmake-${PRGNAM}_${MOD}.log
- make \
- 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
- make install INSTALL_ROOT=$PKG \
- 2>&1 | tee $OUTPUT/install-${PRGNAM}_${MOD}.log
- cd ..
-
- # Add documentation:
- mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a ChangeLog* VERSION \
- $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
-
-} # End make_qtwebkit
#
# Build libmtp:
#
-
make_mtp() {
local MOD="libmtp"
@@ -740,10 +763,10 @@ make_mtp() {
} # End make_libmtp
+
#
# Build ImageMagick:
#
-
make_magick() {
local MOD="ImageMagick"
@@ -806,9 +829,11 @@ make_python() {
cd $TMP/tmp-$PRGNAM/Python-${INT_PYTHON}
- cat $PATCHDIR/python.readline.set_pre_input_hook.diff \
- | patch -p1 --verbose \
- 2>&1 | tee $OUTPUT/patch-${PRGNAM}_${MOD}.log
+ if [ "$P1" != "--oldbuild" ]; then
+ cat $PATCHDIR/python.readline.set_pre_input_hook.diff \
+ | patch -p1 --verbose \
+ 2>&1 | tee $OUTPUT/patch-${PRGNAM}_${MOD}.log
+ fi
# We are going to install python inside the calibre package.
# This requires some changes to the standard build:
@@ -861,31 +886,12 @@ make_setuptools() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a *.txt \
+ cp -a *.rst \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_setuptools
-make_pip() {
-
- local MOD="pip"
- echo -e "\n** $MOD **\n"
-
- cd $TMP/tmp-$PRGNAM/pip-${INT_PIP}
-
- # Compile and install
- python2 setup.py install --root=$PKG \
- 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
-
- # Add documentation:
- mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a *.txt \
- $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
-
-} # End make_pip
-
-
make_dnspython() {
local MOD="dnspython"
@@ -899,7 +905,7 @@ make_dnspython() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a ChangeLog LICENSE \
+ cp -a LICENSE README* \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_dnspython
@@ -925,7 +931,7 @@ make_cssparser() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a COPYING* *.txt \
+ cp -a README* \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_cssparser
@@ -956,25 +962,14 @@ make_dateutil() {
#
make_pillow() {
- local MOD="imaging"
+ local MOD="pillow"
echo -e "\n** $MOD **\n"
- cd $TMP/tmp-$PRGNAM/Pillow-${INT_IMAGING}
+ cd $TMP/tmp-$PRGNAM/Pillow-${INT_PILLOW}
# Installation path for headers:
PYTHONINC=$( python2 -c 'from distutils.sysconfig import *;print (get_python_inc())' )
- # Fix the python path for Scripts/*.py :
- for script in Scripts/*.py ; do
- sed -i -e "s#/usr/local/bin/python#python#" $script
- chmod 755 $script
- done
-
- # ... and compensate for 64bit:
- if [ "$ARCH" = "x86_64" ]; then
- sed -i -e "s#\([^0-9a-zA-Z]\)\(lib\)\([\"';,/)]\)#\1\264\3#" setup.py
- fi
-
# Compile and install
CFLAGS="$SLKCFLAGS" \
python2 setup.py install --root $PKG \
@@ -982,7 +977,7 @@ make_pillow() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a CHANGES* LICENSE README8 RELEASING* \
+ cp -a CHANGES* LICENSE README* RELEASING* \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_pillow
@@ -1040,12 +1035,26 @@ make_sip() {
cd $TMP/tmp-$PRGNAM/sip-${INT_SIP}
- # Compile and install:
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS" \
- python2 configure.py 2>&1 | tee $OUTPUT/configure-${PRGNAM}_${MOD}.log
+ # Compile and install sip first:
+ python2 configure.py \
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_${MOD}.log
make $NUMJOBS || make 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
- make install DESTDIR=$PKG 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_${MOD}.log
+ make install DESTDIR=$PKG 2>&1 | tee $OUTPUT/install-${PRGNAM}_${MOD}.log
+
+ echo -e "\n** $MOD - PyQt5 module **\n"
+
+ # Add the PyQt5 private sip module:
+ make clean
+ python2 configure.py \
+ --sip-module PyQt5.sip \
+ --no-tools \
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ 2>&1 | tee -a $OUTPUT/configure-${PRGNAM}_${MOD}.log
+ make $NUMJOBS || make 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_${MOD}.log
+ make install DESTDIR=$PKG 2>&1 | tee -a $OUTPUT/install-${PRGNAM}_${MOD}.log
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
@@ -1108,6 +1117,7 @@ make_pygments() {
} # End make_pygments
+
#
# Build PyQt5:
#
@@ -1116,8 +1126,17 @@ make_pyqt5() {
local MOD="pyqt5"
echo -e "\n** $MOD **\n"
+ PYTHON2VER=$(python2 -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d. 2>/dev/null)
+ PYTHON2LIB=$( python2 -c 'from distutils.sysconfig import get_python_lib; print get_python_lib()' 2>/dev/null )
+
cd $TMP/tmp-$PRGNAM/PyQt5_gpl-${INT_PYQT5}
+ if [ "$P1" != "--oldbuild" ]; then
+ # Remove code that is unneeded if Qt is not bundled and crashes on python2
+ # https://www.riverbankcomputing.com/pipermail/pyqt/2019-July/041896.html
+ cat $SRCDIR/patches/pyqt5-python2-crash.patch |patch -p1 --verbose || exit 1
+ fi
+
if [ "${BUILD_QT}" = "NO" ]; then
export QTDIR=/usr/lib${LIBDIRSUFFIX}/qt5
else
@@ -1128,14 +1147,21 @@ make_pyqt5() {
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
- python2 configure.py --confirm-license --verbose --qmake=$QTDIR/bin/qmake \
+ python2 configure.py \
+ --confirm-license \
+ --verbose \
+ --qsci-api \
+ --qmake=$QTDIR/bin/qmake \
2>&1 | tee $OUTPUT/configure-${PRGNAM}_${MOD}.log
+
make $NUMJOBS || make \
2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
- # INSTALL_ROOT is needed to install libpyqt5.so properly:
- make install DESTDIR=$PKG INSTALL_ROOT=$PKG \
+
+ make -j1 install DESTDIR=$PKG INSTALL_ROOT=$PKG \
2>&1 | tee -a $OUTPUT/make-${PRGNAM}_${MOD}.log
+ rm -rf $PKG/$PYTHON2LIB/PyQt5/uic/port_v3/
+
if [ "${BUILD_QT}" = "NO" ]; then
# Remove ugly bits that threaten to overwrite a system file:
rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/qt5
@@ -1143,11 +1169,54 @@ make_pyqt5() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a LICENSE.* NEWS \
+ cp -a LICENSE* NEWS \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_pyqt5
+
+#
+# Build PyQtWebEngine:
+#
+make_pyqtwebengine() {
+
+ local MOD="pyqtwebengine"
+ echo -e "\n** $MOD **\n"
+
+ cd $TMP/tmp-$PRGNAM/PyQtWebEngine_gpl-${INT_PYQT5}
+
+ if [ "${BUILD_QT}" = "NO" ]; then
+ export QTDIR=/usr/lib${LIBDIRSUFFIX}/qt5
+ else
+ unset QT5DIR
+ export QTDIR=/usr/lib${LIBDIRSUFFIX}/calibre
+ fi
+
+ export CFLAGS="$SLKCFLAGS"
+ export CXXFLAGS="$SLKCFLAGS"
+
+ python2 configure.py \
+ --qmake=$QTDIR/bin/qmake \
+ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_${MOD}.log
+ make $NUMJOBS || make \
+ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
+ make -j1 install DESTDIR=$PKG INSTALL_ROOT=$PKG \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_${MOD}.log
+ install -Dm644 PyQtWebEngine.api -t $PKG/usr/share/qt5/qsci/api/python
+
+ if [ "${BUILD_QT}" = "NO" ]; then
+ # Remove ugly bits that threaten to overwrite a system file:
+ rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/qt5
+ fi
+
+ # Add documentation:
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
+ cp -a LICENSE* NEWS \
+ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
+
+} # End make_pyqtwebengine
+
+
#
# Build pycrypto:
#
@@ -1188,7 +1257,7 @@ make_netifaces() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a README \
+ cp -a LICENSE README* \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_netifaces
@@ -1215,7 +1284,7 @@ make_apsw() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a LICENSE README.rst \
+ cp -a PKG-INFO \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_apsw
@@ -1270,6 +1339,39 @@ make_optipng() {
#
+# Build unrar source:
+#
+make_unrarsrc() {
+
+ local MOD="make_unrarsrc"
+ echo -e "\n** $MOD **\n"
+
+ cd $TMP/tmp-$PRGNAM/unrar
+ if [ "$P1" != "--oldbuild" ]; then
+ cp -a ../unrar ../libunrar
+ else
+ make clean
+ make clean -C ../libunrar
+ fi
+ make -C ../libunrar lib libversion=${INT_UNRARSRC} CXXFLAGS="$SLKCFLAGS" \
+ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
+ make -f makefile unrar lib CXXFLAGS="$SLKCFLAGS" \
+ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_${MOD}.log
+
+ # Manually install binaries:
+ install -D -m 755 unrar $PKG/usr/lib${LIBDIRSUFFIX}/calibre/bin/unrar
+ install -D -m 755 ../libunrar/libunrar.so $PKG/usr/lib${LIBDIRSUFFIX}/calibre/lib/libunrar.so
+ install -D -m 644 dll.hpp $PKG/usr/lib${LIBDIRSUFFIX}/calibre/include/unrar/dll.hpp
+
+ # Add documentation:
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
+ cp -a acknow.txt license.txt readme.txt \
+ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
+
+} # End make_unrarsrc
+
+
+#
# Build python-regex:
#
make_regex() {
@@ -1300,7 +1402,7 @@ make_msgpack() {
local MOD="msgpack"
echo -e "\n** $MOD **\n"
- cd $TMP/tmp-$PRGNAM/msgpack-python-${INT_MSGPACK}
+ cd $TMP/tmp-$PRGNAM/msgpack-${INT_MSGPACK}
# Compile and install
export CFLAGS="$SLKCFLAGS"
@@ -1332,33 +1434,33 @@ make_six() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a COPYING GPL* LICENSE* README* \
+ cp -a CHANGES LICENSE* README* \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_six
#
-# Build dukpy:
+# Build enum34 (backported from Python3:
#
-make_dukpy() {
+make_enum34() {
- local MOD="dukpy"
+ local MOD="enum34"
echo -e "\n** $MOD **\n"
- cd $TMP/tmp-$PRGNAM/dukpy-${INT_DUKPY}
+ cd $TMP/tmp-$PRGNAM/enum34-${INT_ENUM34}
# Compile and install
export CFLAGS="$SLKCFLAGS"
- python2 setup.py install --root=$PKG --optimize=1 --skip-build \
+ python2 setup.py install --root=$PKG --optimize=1 \
2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a LICENSE.txt \
+ cp -a PKG-INFO enum/LICENSE enum/README \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
-} # End make_dukpy
+} # End make_enum34
#
@@ -1378,7 +1480,7 @@ make_webenc() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a COPYING GPL* LICENSE* README* \
+ cp -a README* \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_webenc
@@ -1401,7 +1503,7 @@ make_html5lib() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a COPYING GPL* LICENSE* README* \
+ cp -a LICENSE* README* *.rst requirements.txt \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_html5lib
@@ -1424,7 +1526,7 @@ make_html5parser() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a COPYING GPL* LICENSE* README* \
+ cp -a LICENSE* README* \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_html5parser
@@ -1441,13 +1543,13 @@ make_unrardll() {
cd $TMP/tmp-$PRGNAM/unrardll-${INT_UNRARDLL}
# Compile and install
- export CFLAGS="$SLKCFLAGS"
+ export CFLAGS="$SLKCFLAGS -I/usr/lib${LIBDIRSUFFIX}/calibre/include"
python2 setup.py install --root=$PKG --optimize=1 \
2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a COPYING GPL* LICENSE* README* \
+ cp -a LICENSE* README* \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_unrardll
@@ -1467,7 +1569,7 @@ make_feedparser() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a COPYING GPL* LICENSE* README* \
+ cp -a LICENSE* NEWS README* \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_feedparser
@@ -1487,7 +1589,7 @@ make_Markdown() {
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
- cp -a COPYING GPL* LICENSE* README* \
+ cp -a *.md \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
} # End make_Markdown
@@ -1521,13 +1623,13 @@ make_bflc() {
(
local BRANCH_VERSION=$(echo $INT_PYTHON | cut -f 1,2 -d . )
cd $PKG/usr/lib${LIBDIRSUFFIX}/calibre/lib/python${BRANCH_VERSION}/site-packages
- mkdir backports
+ mkdir -p backports
cd backports
cat << EOF > __init__.py
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
EOF
- python2 -m compileall .
+ python2 -m compileall . || true
)
cd $TMP/tmp-$PRGNAM/backports.functools_lru_cache-${INT_BFLC}
@@ -1579,6 +1681,65 @@ make_html2text() {
} # End make_html2text
+make_chardet() {
+
+ local MOD="chardet"
+ echo -e "\n** $MOD **\n"
+
+ cd $TMP/tmp-$PRGNAM/chardet-${INT_CHARDET}
+
+ # Compile and install:
+ python2 setup.py install --root=$PKG \
+ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
+
+ # Add documentation:
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
+ cp -a *.rst LICENSE \
+ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
+
+} # End make_chardet
+
+
+make_podofo() {
+
+ local MOD="podofo"
+ echo -e "\n** $MOD **\n"
+
+ cd $TMP/tmp-$PRGNAM/podofo-${INT_PODOFO}
+
+ # Fix the mandir location (we delete usr/man later on):
+ sed -i -e 's#SET(MANDIR "share/man/")#SET(MANDIR "man/")#' CMakeLists.txt
+
+ # Build fails otherwise:
+ mkdir -p test/TokenizerTest/objects
+
+ mkdir -p build
+ cd build
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DFREETYPE_INCLUDE_DIR=/usr/include/freetype2 \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib${LIBDIRSUFFIX}/calibre \
+ -DPODOFO_BUILD_STATIC:BOOL=0 \
+ -DPODOFO_BUILD_SHARED:BOOL=1 \
+ -DPODOFO_USE_VISIBILITY:BOOL=1 \
+ -DCMAKE_CXX_STANDARD:STRING=11 \
+ -DWANT_BOOST:BOOL=0 \
+ ..
+ make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
+ make DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${PRGNAM}.log
+ cd - 1>/dev/null
+
+ # Add documentation:
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
+ cp -a AUTHORS ChangeLog CODING* CONTRIBUTIONS* COPYING* \
+ FAQ* INSTALL README* TODO \
+ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
+
+} # End make_podofo
+
+
+
# --------------
# Build calibre:
# --------------
@@ -1590,34 +1751,14 @@ make_calibre () {
touch $OUTPUT/patch-$PRGNAM.log
cd $TMP/tmp-$PRGNAM/${SRCNAM}-${VERSION}
- # Calibre 0.8.6 has a version bug:
- INTERNAL_VERSION=$(echo $VERSION | sed -e 's/\./, /g')
- VERSION_CONSTANT=$(grep "^numeric_version" src/calibre/constants.py)
- if [ "$VERSION_CONSTANT" != "numeric_version = ($INTERNAL_VERSION)" ]; then
- echo "** Changing '$VERSION_CONSTANT' to:"
- echo "** 'numeric_version = ($INTERNAL_VERSION)'"
- sed -i -e "s/^numeric_version.*$/numeric_version = ($INTERNAL_VERSION)/" \
- src/calibre/constants.py
- fi
-
- if [ "${BUILD_QT}" = "NO" ]; then
- # Remove the unneeded 'qt_hack' which seems to be specific to MacOS/Windows
- # (correct me if I am wrong). This extension refuses to compile on Slackware
- # 13.37 as well as 14.0.
- case "$SLACKVER" in
- 13.*|14.0)
- cat $PATCHDIR/calibre_noqthack.patch | patch -p1 --verbose \
- 2>&1 | tee -a $OUTPUT/patch-$PRGNAM.log
- ;;
- *)
- ;;
- esac
- fi
-
# This dropping of privilege is unneccessary and breaks the SlackBuild:
sed -i -e "s:if os.geteuid() == 0:if False and os.geteuid() == 0:" \
setup/install.py
+ # Calibre should not hard-code the hunspell library version:
+ OURLIB=$(pkg-config --libs hunspell |sed 's/-l//')
+ sed -i setup/extensions.json -e 's/"libraries": "hunspell-.*"/"libraries": "'$OURLIB'"/'
+
# See if we picked up any compiler or linker flags for python:
LDFLAGS=${LDFLAGS:-""}
CFLAGS=${CFLAGS:-""}
@@ -1639,14 +1780,17 @@ make_calibre () {
# Cut out the DOS crap:
sed -i -e 's/\r//' src/calibre/web/feeds/recipes/*
- # Prevent "qfontengine_ft.cpp undefined reference to `FT_Get_Char_Index'":
- #sed -i -e 's/QMAKE_LIBS_PRIVATE += {glib} {fontconfig}/& {freetype}/' \
- # setup/extensions.py
- cat $SRCDIR/patches/calibre_freetype.patch | patch -p1 --verbose \
- 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
+ if [ "$P1" != "--oldbuild" ]; then
+ # Prevent "qfontengine_ft.cpp undefined reference to `FT_Get_Char_Index'":
+ #sed -i -e 's/QMAKE_LIBS_PRIVATE += {glib} {fontconfig}/& {freetype}/' \
+ # setup/extensions.py
+ cat $SRCDIR/patches/calibre_freetype.patch | patch -p1 --verbose \
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
+ fi
+
+ export PODOFO_INC_DIR="/usr/lib${LIBDIRSUFFIX}/calibre/include/podofo" \
+ export PODOFO_LIB_DIR="/usr/lib${LIBDIRSUFFIX}/calibre/lib" \
- OVERRIDE_LDFLAGS="$LDFLAGS $SLKLDFLAGS" \
- OVERRIDE_CFLAGS="$CFLAGS $SLKCFLAGS" \
LANG='en_US.UTF-8' python2 setup.py build \
2>&1 | tee $OUTPUT/make-${PRGNAM}.log
@@ -1667,6 +1811,8 @@ make_calibre () {
2>&1 | tee $OUTPUT/install-$PRGNAM.log
# The bash completion files need to be in /etc :
+ OVERRIDE_LDFLAGS="$LDFLAGS $SLKLDFLAGS" \
+ OVERRIDE_CFLAGS="$CFLAGS $SLKCFLAGS" \
[ -d $PKG/usr/etc ] && mv $PKG/usr/etc $PKG/
# Add man pages:
@@ -1730,7 +1876,20 @@ make_calibre () {
# End of the subroutines.
#
-# Compilation of the software:
+if [ "$BUILD_PYTHONMODS" = "YES" ]; then
+ # Not part of Slackware and need it:
+ make_optipng
+ rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+
+ make_podofo
+ rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+
+ make_unrarsrc
+ rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+ # End - not part of Slackware
+fi
+
+# Compilation of the optional software:
if [ "$BUILD_PYTHON" = "YES" -o "$BUILD_PYTHONMODS" = "YES" -o "$BUILD_QT" = "YES" -o "$BUILD_MTP" = "YES" -o "$BUILD_MAGICK" = "YES" ]; then
if [ -f $SRCDIR/${PRGNAM}_pythondeps-${SLACKVER}-${ARCH}.tar.bz2 ]; then
# We unwrap the tarball of compiled python internal libraries instead of
@@ -1799,9 +1958,10 @@ if [ "$BUILD_QT" = "YES" ]; then
# will wipe the origin and we will have to sync it all back:
mkdir -p /usr/lib${LIBDIRSUFFIX}/calibre
- make_qt5
+ make_xkbcommon
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
- make_qtwebkit
+
+ make_qt5
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
fi
fi
@@ -1847,7 +2007,10 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
make_setuptools
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
- make_pip
+ make_unrardll
+ rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+
+ make_pillow
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
make_apsw || exit 1
@@ -1871,9 +2034,6 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
make_dateutil
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
- make_pillow
- rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
-
make_lxml
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
@@ -1895,12 +2055,18 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
make_pygments
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+ make_enum34
+ rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+
make_sip
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
make_pyqt5
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+ make_pyqtwebengine
+ rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+
make_regex
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
@@ -1910,9 +2076,6 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
make_six
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
- make_dukpy
- rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
-
make_webenc
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
@@ -1922,9 +2085,6 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
make_html5parser
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
- make_unrardll
- rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
-
make_feedparser
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
@@ -1934,6 +2094,9 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
make_html2text
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+ make_chardet
+ rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+
fi
fi
@@ -1945,18 +2108,15 @@ if [ "$BUILD_PYTHON" = "YES" -o "$BUILD_PYTHONMODS" = "YES" -o "$BUILD_QT" = "YE
# into the same directory as this SlackBuild script:
if [ ! -f $SRCDIR/${PRGNAM}_pythondeps-${SLACKVER}-${ARCH}.tar.bz2 ]; then
( cd $PKG/usr/lib${LIBDIRSUFFIX}/calibre
+ echo "**"
echo "** Creating dependencies tarball $OUTPUT/${PRGNAM}_pythondeps-${SLACKVER}-${ARCH}.tar.bz2"
echo "** Move this file to $SRCDIR for future compilation speedups."
+ echo "**"
tar -jcf $OUTPUT/${PRGNAM}_pythondeps-${SLACKVER}-${ARCH}.tar.bz2 .
)
fi
fi
-# Not part of Slackware:
-make_optipng
-rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
-
-
# We need to point calibre's compilation at our custom headers:
export CFLAGS="-I/usr/lib${LIBDIRSUFFIX}/calibre/include"
@@ -1982,7 +2142,7 @@ if [ "$BUILD_PYTHON" = "YES" ]; then
for FILE in $PKG/usr/bin/* ; do
if ! file $FILE | grep -q ELF ; then
sed -i \
- -e "s,^#!/usr/bin/env .*$,#!/usr/lib${LIBDIRSUFFIX}/calibre/python," \
+ -e "s,^#!/usr/bin/env .*$,#!/usr/lib${LIBDIRSUFFIX}/calibre/python2," \
$FILE
fi
done
@@ -1992,8 +2152,8 @@ if [ "$BUILD_PYTHON" = "YES" ]; then
# Compiling bytecode makes Calibre startup much faster:
set +e
- /usr/lib${LIBDIRSUFFIX}/calibre/python2 -m compileall -d '/' ${PKG}/usr/lib${LIBDIRSUFFIX}/calibre/
- /usr/lib${LIBDIRSUFFIX}/calibre/python2 -OO -m compileall -d '/' ${PKG}/usr/lib${LIBDIRSUFFIX}/calibre/
+ /usr/lib${LIBDIRSUFFIX}/calibre/python2 -m compileall -d '/' ${PKG}/usr/lib${LIBDIRSUFFIX}/calibre/ || true
+ /usr/lib${LIBDIRSUFFIX}/calibre/python2 -OO -m compileall -d '/' ${PKG}/usr/lib${LIBDIRSUFFIX}/calibre/ || true
set -e
# Now we can remove these from the filesystem:
@@ -2057,13 +2217,13 @@ cat $SRCDIR/slack-desc > $PKG/install/slack-desc
cat $SRCDIR/slack-required > $PKG/install/slack-required
if [ "$BUILD_PYTHONMODS" = "YES" ]; then
cat $PKG/install/slack-required \
- | grep -Ev "PyQt5|sip|dnspython|pycrypto|pysetuptools|python-apsw|dbus-python|python-beautifulsoup|python-css-parser|python-dateutil|python-dukpy|pyhton-html2text|python-html5-parser|python-html5lib|python-lxml|python-mechanize|python-msgpack|python-netifaces|python-psutil|python-pygments|python-regex|python-six|python-soupsieve|python-unrardll|python-webencodings" \
+ | grep -Ev "PyQt5|PyQtWebEngine|dbus-python|dnspython|pycrypto|pysetuptools|python-apsw|python-beautifulsoup4|python-bflc|python-chardet|python-css-parser|python-dateutil|python-enum34|python-feedparser|pyhton-html2text|python-html5-parser|python-html5lib|python-lxml|python-markdown|python-mechanize|python-msgpack|python-netifaces|python-pillow|python-psutil|python-pygments|python-regex|python-six|python-soupsieve|python-unrardll|python-webencodings|sip|sqlite-amalgamation" \
> $PKG/install/slack-required.temp
mv $PKG/install/slack-required.temp $PKG/install/slack-required
fi
if [ "$BUILD_QT" = "YES" ]; then
cat $PKG/install/slack-required \
- | grep -Ev "libxkbcommon|libinput|libwacom|qt5|qt5-webkit" \
+ | grep -Ev "libxkbcommon|libinput|libwacom|qt5" \
> $PKG/install/slack-required.temp
mv $PKG/install/slack-required.temp $PKG/install/slack-required
fi