summaryrefslogtreecommitdiffstats
path: root/calibre
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2017-06-24 08:37:43 +0000
committer Eric Hameleers <alien@slackware.com>2017-06-24 08:37:43 +0000
commit91025ddf1d5bbcc939ddaa2d020dee471b3c3bfd (patch)
treee125c4a684ed477eb086b681081f8b495b116aee /calibre
parentd8207b6bd82ae5bdb4f6c4d62c892e122cafc20a (diff)
downloadasb-91025ddf1d5bbcc939ddaa2d020dee471b3c3bfd.tar.gz
asb-91025ddf1d5bbcc939ddaa2d020dee471b3c3bfd.tar.xz
calibre: updated to 3.1.1
Diffstat (limited to 'calibre')
-rwxr-xr-xcalibre/build/calibre.SlackBuild239
1 files changed, 191 insertions, 48 deletions
diff --git a/calibre/build/calibre.SlackBuild b/calibre/build/calibre.SlackBuild
index bbdf03d1..7ef112a5 100755
--- a/calibre/build/calibre.SlackBuild
+++ b/calibre/build/calibre.SlackBuild
@@ -77,6 +77,8 @@
# * Update.
# 2.79.1-1: 13/feb/2017 by Eric Hameleers <alien@slackware.com>
# * Update.
+# 3.1.1-1: 19/jun/2017 by Eric Hameleers <alien@slackware.com>
+# * New major release 3.x.
#
# Run 'sh calibre.SlackBuild' to build a Slackware package.
# The package (.txz) and .txt file as well as build logs are created in /tmp .
@@ -85,7 +87,8 @@
# -----------------------------------------------------------------------------
PRGNAM=calibre
-VERSION=${VERSION:-2.79.1}
+SRCNAM=calibre
+VERSION=${VERSION:-3.1.1}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j4 "}
TAG=${TAG:-alien}
@@ -95,42 +98,51 @@ DOCS="LICENSE* Changelog* COPYRIGHT README*"
PYTHON=$(python -c 'import sys; print sys.version.split( )[0]')
SLACKVER=${SLACKVER:-$(cat /etc/slackware-version |cut -d' ' -f2)}
-REQUIRED_QT="5.3.2"
+REQUIRED_QT="5.6.2"
# Only used in case we need to build our own Qt:
INT_QT=5.7.1
-REQUIRED_MTP="1.1.5"
+REQUIRED_MTP="1.1.11"
# Only used in case we need to build our own libmtp:
-INT_MTP=1.1.10
+INT_MTP=1.1.11
# Only used when we build our own ImageMagick:
-INT_MAGICK=6.9.4-1
+INT_MAGICK=6.9.8-3
REQUIRED_PYTHON="2.7"
-REQUIRED_PYTHON_MIN="11"
+REQUIRED_PYTHON_MIN="12"
# Only used in case we need to build our own python:
-INT_PYTHON=2.7.11
+INT_PYTHON=2.7.13
# Only used in case we need to build our own python modules:
+#INT_SETUPTOOLS=23.1.0
+# Newer setuptools generate messages like:
+# dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
+# and fails to compile netifaces with error:
+# netifaces.c error you need to add code for your platform
INT_SETUPTOOLS=14.3
-INT_DNSPYTHON=1.9.4
-INT_CSSUTILS=0.9.9
-INT_DATEUTIL=1.5
+INT_DNSPYTHON=1.14.0
+INT_CSSUTILS=1.0.1
+INT_DATEUTIL=2.5.3
INT_DBUSPYTHON=1.2.0
-INT_IMAGING=3.0.0
-INT_LXML=3.2.1
-INT_MECHANIZE=0.2.5
-INT_NETIFACES=0.8
+INT_DUKPY=0.3
+INT_IMAGING=3.2.0
+INT_LXML=3.8.0
+INT_MECHANIZE=0.3.3
+INT_MSGPACK=0.4.8
+INT_NETIFACES=0.10.6
INT_OPTIPNG=0.7.5
-INT_PSUTIL=0.6.1
-INT_PYGMENTS=2.0.2
-INT_SIP=4.18
-INT_PYCRYPTO=2.6
-INT_PYQT=5.5.1
-INT_APSW=3.7.17-r1
+INT_PSUTIL=4.3.0
+INT_PYGMENTS=2.1.3
+INT_REGEX=2017.05.26
+INT_SIP=4.19.2
+INT_SIX=1.10.0
+INT_PYCRYPTO=2.6.1
+INT_PYQT5=5.8.2
+INT_APSW=3.13.0-r1
# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)
@@ -141,9 +153,8 @@ TMP=${TMP:-/tmp/build}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-SOURCE[0]="$SRCDIR/${PRGNAM}-${VERSION}.tar.xz"
-#SRCURL[0]="http://downloads.sourceforge.net/${PRGNAM}/${PRGNAM}-${VERSION}.tar.xz"
-SRCURL[0]="http://download.calibre-ebook.com/${VERSION}/${PRGNAM}-${VERSION}.tar.xz"
+SOURCE[0]="$SRCDIR/${SRCNAM}-${VERSION}.tar.xz"
+SRCURL[0]="http://download.calibre-ebook.com/${VERSION}/${SRCNAM}-${VERSION}.tar.xz"
# Allow the package builder to override BUILD_MAGICK:
# By default we do not compile an internal version but enabling this
@@ -195,6 +206,9 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
echo ">> Compiling python modules <<"
SOURCE[1]="$SRCDIR/setuptools-${INT_SETUPTOOLS}.tar.gz"
+ # URL for the newer setuptools:
+ #SRCURL[1]="https://github.com/pypa/setuptools/archive/v${INT_SETUPTOOLS}.tar.gz"
+ # URL for the older setuptools:
SRCURL[1]="http://pypi.python.org/packages/source/s/setuptools/setuptools-${INT_SETUPTOOLS}.tar.gz"
SOURCE[2]="$SRCDIR/Pygments-${INT_PYGMENTS}.tar.gz"
@@ -203,11 +217,11 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
SOURCE[3]="$SRCDIR/dnspython-${INT_DNSPYTHON}.tar.gz"
SRCURL[3]="http://www.dnspython.org/kits/${INT_DNSPYTHON}/dnspython-${INT_DNSPYTHON}.tar.gz"
- SOURCE[4]="$SRCDIR/cssutils-${INT_CSSUTILS}.zip"
- SRCURL[4]="http://bitbucket.org/cthedot/cssutils/downloads/cssutils-${INT_CSSUTILS}.zip"
+ SOURCE[4]="$SRCDIR/cssutils-${INT_CSSUTILS}.tar.gz"
+ SRCURL[4]="http://pypi.python.org/packages/source/c/cssutils/cssutils-${INT_CSSUTILS}.tar.gz"
SOURCE[5]="$SRCDIR/python-dateutil-${INT_DATEUTIL}.tar.gz"
- SRCURL[5]="http://labix.org/download/python-dateutil/python-dateutil-${INT_DATEUTIL}.tar.gz"
+ SRCURL[5]="https://github.com/dateutil/dateutil/releases/download/${INT_DATEUTIL}/python-dateutil-${INT_DATEUTIL}.tar.gz"
SOURCE[6]="$SRCDIR/Pillow-${INT_IMAGING}.tar.gz"
SRCURL[6]="https://github.com/python-pillow/Pillow/archive/${INT_IMAGING}.tar.gz"
@@ -216,10 +230,10 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
SRCURL[7]="http://lxml.de/files/lxml-${INT_LXML}.tgz"
SOURCE[8]="$SRCDIR/mechanize-${INT_MECHANIZE}.tar.gz"
- SRCURL[8]="http://wwwsearch.sourceforge.net/mechanize/src/mechanize-${INT_MECHANIZE}.tar.gz"
+ SRCURL[8]="https://github.com/python-mechanize/mechanize/archive/v${INT_MECHANIZE}.tar.gz"
- SOURCE[9]="$SRCDIR/PyQt-gpl-${INT_PYQT}.tar.gz"
- SRCURL[9]="http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-${INT_PYQT}/PyQt-gpl-${INT_PYQT}.tar.gz"
+ SOURCE[9]="$SRCDIR/PyQt5-gpl-${INT_PYQT5}.tar.gz"
+ SRCURL[9]="http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-${INT_PYQT5}/PyQt5_gpl-${INT_PYQT5}.tar.gz"
SOURCE[10]="$SRCDIR/sip-${INT_SIP}.tar.gz"
SRCURL[10]="http://sourceforge.net/projects/pyqt/files/sip/sip-${INT_SIP}/sip-${INT_SIP}.tar.gz"
@@ -231,15 +245,26 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
SRCURL[12]="http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-${INT_PYCRYPTO}.tar.gz"
SOURCE[13]="$SRCDIR/netifaces-${INT_NETIFACES}.tar.gz"
- SRCURL[13]="http://alastairs-place.net/projects/netifaces//netifaces-${INT_NETIFACES}.tar.gz"
+ SRCURL[13]="https://pypi.io/packages/source/n/netifaces/netifaces-${INT_NETIFACES}.tar.gz"
SOURCE[14]="$SRCDIR/psutil-${INT_PSUTIL}.tar.gz"
- SRCURL[14]="http://psutil.googlecode.com/files/psutil-${INT_PSUTIL}.tar.gz"
+ SRCURL[14]="https://github.com/giampaolo/psutil/archive/release-${INT_PSUTIL}.tar.gz"
SOURCE[15]="$SRCDIR/apsw-${INT_APSW}.zip"
# Needs a newwer sqlite: than ships with Slackware 14.1:
- #SRCURL[15]="https://github.com/rogerbinns/apsw/releases/download/${INT_APSW}/apsw-${INT_APSW}.zip"
- SRCURL[15]="https://apsw.googlecode.com/files/apsw-${INT_APSW}.zip"
+ SRCURL[15]="https://github.com/rogerbinns/apsw/archive/${INT_APSW}.zip"
+
+ SOURCE[16]="$SRCDIR/regex-${INT_REGEX}.tar.gz"
+ SRCURL[16]="https://pypi.io/packages/source/r/regex/regex-${INT_REGEX}.tar.gz"
+
+ SOURCE[17]="$SRCDIR/msgpack-python-${INT_MSGPACK}.tar.gz"
+ SRCURL[17]="https://pypi.io/packages/source/m/msgpack-python/msgpack-python-${INT_MSGPACK}.tar.gz"
+
+ SOURCE[18]="$SRCDIR/six-${INT_SIX}.tar.gz"
+ SRCURL[18]="https://pypi.io/packages/source/s/six/six-${INT_SIX}.tar.gz"
+
+ SOURCE[19]="$SRCDIR/dukpy-${INT_DUKPY}.tar.gz"
+ SRCURL[19]="https://github.com/kovidgoyal/dukpy/archive/v${INT_DUKPY}.tar.gz"
NEXT_ARRAYEL=${#SOURCE[@]}
else
@@ -629,6 +654,9 @@ make_python() {
local MOD="python"
echo -e "\n** $MOD **\n"
+ local BRANCH_VERSION=$(echo $INT_PYTHON | cut -f 1,2 -d . )
+ local SITEPK=/usr/lib${LIBDIRSUFFIX}/calibre/lib/python${BRANCH_VERSION}/site-packages
+
cd $TMP/tmp-$PRGNAM/Python-${INT_PYTHON}
cat $PATCHDIR/python.readline.set_pre_input_hook.diff \
@@ -648,12 +676,17 @@ make_python() {
--with-threads \
--enable-ipv6 \
--enable-shared \
+ --enable-unicode=ucs4 \
--build=$TARGET \
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
+ # We'll install the python-tools under site-packages:
+ mkdir -p $SITEPK
+ cp -a Tools/* $SITEPK/
+
# No need for man pages now:
rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/calibre/share/man
@@ -673,6 +706,7 @@ make_setuptools() {
echo -e "\n** $MOD **\n"
cd $TMP/tmp-$PRGNAM/setuptools-${INT_SETUPTOOLS}
+ rm -f setuptools/*.exe
# Compile and install
python setup.py install --root=$PKG \
@@ -911,14 +945,14 @@ make_pygments() {
} # End make_pygments
#
-# Build PyQt:
+# Build PyQt5:
#
-make_pyqt() {
+make_pyqt5() {
- local MOD="pyqt"
+ local MOD="pyqt5"
echo -e "\n** $MOD **\n"
- cd $TMP/tmp-$PRGNAM/PyQt-gpl-${INT_PYQT}
+ cd $TMP/tmp-$PRGNAM/PyQt5_gpl-${INT_PYQT5}
if [ "${BUILD_QT}" = "NO" ]; then
export QTDIR=/usr/lib${LIBDIRSUFFIX}/qt5
@@ -934,7 +968,7 @@ make_pyqt() {
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 libpyqt4.so properly:
+ # INSTALL_ROOT is needed to install libpyqt5.so properly:
make install DESTDIR=$PKG INSTALL_ROOT=$PKG \
2>&1 | tee -a $OUTPUT/make-${PRGNAM}_${MOD}.log
@@ -948,7 +982,7 @@ make_pyqt() {
cp -a GPL_EXCEPTION*.TXT LICENSE.* NEWS OPENSOURCE-NOTICE.TXT README THANKS \
$PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
-} # End make_pyqt
+} # End make_pyqt5
#
# Build pycrypto:
@@ -983,9 +1017,10 @@ make_netifaces() {
cd $TMP/tmp-$PRGNAM/netifaces-${INT_NETIFACES}
# Compile and install
- export CFLAGS="$SLKCFLAGS"
+ export CFLAGS="-I/usr/lib${LIBDIRSUFFIX}/calibre/include"
python setup.py install --root=$PKG \
2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
+ unset CFLAGS
# Add documentation:
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
@@ -1026,7 +1061,7 @@ make_psutil() {
local MOD="psutil"
echo -e "\n** $MOD **\n"
- cd $TMP/tmp-$PRGNAM/psutil-${INT_PSUTIL}
+ cd $TMP/tmp-$PRGNAM/psutil*-${INT_PSUTIL}
# Compile and install
export CFLAGS="$SLKCFLAGS"
@@ -1066,6 +1101,88 @@ make_optipng() {
} # End make_optipng
+#
+# Build python-regex:
+#
+make_regex() {
+
+ local MOD="regex"
+ echo -e "\n** $MOD **\n"
+
+ cd $TMP/tmp-$PRGNAM/regex-${INT_REGEX}
+
+ # Compile and install
+ export CFLAGS="$SLKCFLAGS"
+ python 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 docs/Features.html docs/Features.rst docs/UnicodeProperties.txt \
+ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
+
+} # End make_regex
+
+
+#
+# Build msgpack-python:
+#
+make_msgpack() {
+
+ local MOD="msgpack"
+ echo -e "\n** $MOD **\n"
+
+ cd $TMP/tmp-$PRGNAM/msgpack-python-${INT_MSGPACK}
+
+ # Compile and install
+ export CFLAGS="$SLKCFLAGS"
+ python setup.py install --root=$PKG --optimize=1 \
+ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
+
+} # End make_msgpack
+
+
+#
+# Build six:
+#
+make_six() {
+
+ local MOD="six"
+ echo -e "\n** $MOD **\n"
+
+ cd $TMP/tmp-$PRGNAM/six-${INT_SIX}
+
+ # Compile and install
+ export CFLAGS="$SLKCFLAGS"
+ python setup.py install --root=$PKG --optimize=1 \
+ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
+
+} # End make_six
+
+
+#
+# Build dukpy:
+#
+make_dukpy() {
+
+ local MOD="dukpy"
+ echo -e "\n** $MOD **\n"
+
+ cd $TMP/tmp-$PRGNAM/dukpy-${INT_DUKPY}
+
+ # Compile and install
+ export CFLAGS="$SLKCFLAGS"
+ python setup.py install --root=$PKG --optimize=1 --skip-build \
+ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log
+
+ # Add documentation:
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD}
+ cp -a LICENSE.txt \
+ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true
+
+} # End make_dukpy
+
+
# --------------
# Build calibre:
# --------------
@@ -1075,7 +1192,7 @@ make_calibre () {
echo -e "\n** calibre **\n"
touch $OUTPUT/patch-$PRGNAM.log
- cd $TMP/tmp-$PRGNAM/${PRGNAM}-${VERSION}
+ cd $TMP/tmp-$PRGNAM/${SRCNAM}-${VERSION}
# Calibre 0.8.6 has a version bug:
INTERNAL_VERSION=$(echo $VERSION | sed -e 's/\./, /g')
@@ -1137,21 +1254,26 @@ make_calibre () {
OVERRIDE_LDFLAGS="$LDFLAGS $SLKLDFLAGS" \
OVERRIDE_CFLAGS="$CFLAGS $SLKCFLAGS" \
- python setup.py build \
+ LANG='en_US.UTF-8' python2 setup.py build \
2>&1 | tee $OUTPUT/make-${PRGNAM}.log
# Create the directories the xdg-utils expects to be present:
mkdir -p $PKG/usr/share/{applications,icons/hicolor,mime/packages}
mkdir -p $PKG/usr/share/{desktop-directories,packages}
+ LANG='en_US.UTF-8' python2 setup.py build \
+ 2>&1 | tee $OUTPUT/make-$PRGNAM.log
+ LANG='en_US.UTF-8' python2 setup.py gui \
+ 2>&1 | tee $OUTPUT/make-gui-$PRGNAM.log
+
XDG_DATA_DIRS="$PKG/usr/share" \
XDG_UTILS_INSTALL_MODE="system" \
LIBPATH="/usr/lib${LIBDIRSUFFIX}" \
- python setup.py install \
+ LANG='en_US.UTF-8' python2 setup.py install \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--staging-root=$PKG/usr \
- --staging-libdir=$PKG/usr/lib${LIBDIRSUFFIX} \
+ --staging-libdir=$PKG/usr/lib${LIBDIRSUFFIX}
2>&1 | tee $OUTPUT/install-$PRGNAM.log
# The bash completion files need to be in /etc :
@@ -1351,7 +1473,19 @@ if [ "$BUILD_PYTHONMODS" = "YES" ]; then
make_sip
rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
- make_pyqt
+ make_pyqt5
+ rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+
+ make_regex
+ rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+
+ make_msgpack
+ rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/
+
+ 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/
fi
@@ -1388,7 +1522,8 @@ if [ "$BUILD_PYTHON" = "YES" ]; then
# Compiling calibre will have wiped all previously compiled python stuff,
# so we need to put it back into the package, and then it can go:
rsync -a /usr/lib${LIBDIRSUFFIX}/calibre/ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/
- rm -rf /usr/lib${LIBDIRSUFFIX}/calibre
+ # Wait with with the removal until after byte-compiling:
+ #rm -rf /usr/lib${LIBDIRSUFFIX}/calibre
##!/bin/sh
#path=`readlink -e $0`
@@ -1407,8 +1542,16 @@ if [ "$BUILD_PYTHON" = "YES" ]; then
done
# This is not needed in the package:
- rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/calibre/{bin,lib/pkgconfig,share,usr/man}
+ rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/calibre/{bin,lib/pkgconfig,lib/python*/test,share,usr/man}
+ # Compiling bytecode makes Calibre startup much faster:
+ set +e
+ /usr/lib${LIBDIRSUFFIX}/calibre/python2 -m compileall ${PKG}/usr/lib${LIBDIRSUFFIX}/calibre/
+ /usr/lib${LIBDIRSUFFIX}/calibre/python2 -OO -m compileall ${PKG}/usr/lib${LIBDIRSUFFIX}/calibre/
+ set -e
+
+ # Now we can remove these from the filesystem:
+ rm -rf /usr/lib${LIBDIRSUFFIX}/calibre
fi
# Create a doinst.sh: