diff options
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 |
commit | 91025ddf1d5bbcc939ddaa2d020dee471b3c3bfd (patch) | |
tree | e125c4a684ed477eb086b681081f8b495b116aee /calibre/build/calibre.SlackBuild | |
parent | d8207b6bd82ae5bdb4f6c4d62c892e122cafc20a (diff) | |
download | asb-91025ddf1d5bbcc939ddaa2d020dee471b3c3bfd.tar.gz asb-91025ddf1d5bbcc939ddaa2d020dee471b3c3bfd.tar.xz |
calibre: updated to 3.1.1
Diffstat (limited to 'calibre/build/calibre.SlackBuild')
-rwxr-xr-x | calibre/build/calibre.SlackBuild | 239 |
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: |