diff options
author | Eric Hameleers <alien@slackware.com> | 2022-03-13 23:42:37 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2022-03-13 23:42:37 +0000 |
commit | a1301a53fbfbe974530d71700582efc42dae9c93 (patch) | |
tree | 5f1e80c713deb4b6b84e808ffe90a3a92a606e34 /calibre | |
parent | 40e7ba9431c660048c846d6554b642b3209dd254 (diff) | |
download | asb-a1301a53fbfbe974530d71700582efc42dae9c93.tar.gz asb-a1301a53fbfbe974530d71700582efc42dae9c93.tar.xz |
calibre: updated to 5.38.0
Diffstat (limited to 'calibre')
-rwxr-xr-x | calibre/build/calibre.SlackBuild | 1555 |
1 files changed, 842 insertions, 713 deletions
diff --git a/calibre/build/calibre.SlackBuild b/calibre/build/calibre.SlackBuild index b2b4253a..3e4ed05e 100755 --- a/calibre/build/calibre.SlackBuild +++ b/calibre/build/calibre.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh # $Id$ -# Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Eric Hameleers, Eindhoven, NL +# Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Eric Hameleers, Eindhoven, NL # All rights reserved. # # Permission to use, copy, modify, and distribute this software for @@ -28,18 +28,8 @@ # For: calibre # Descr: e-book library management application # URL: http://calibre-ebook.com/ -# Build needs:(Slackware 14.2) meson, python3, python3-setuptools. -# 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: -# 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. +# Build needs: +# Needs: # Changelog: # 0.7.20-1: 25/Sep/2010 by Eric Hameleers <alien@slackware.com> # * Initial build. @@ -133,6 +123,12 @@ # * Update. # 4.15.0-1: 07/may/2020 by Eric Hameleers <alien@slackware.com> # * Update. +# 5.38.0-1: 07/mar/2022 by Eric Hameleers <alien@slackware.com> +# * Update. +# The embedded Python interpreter and modules will now always +# be built. Qt5 libraries are expected to be supplied by +# the OS, meaning Slackware older than 15.0 is not supported. +# Python3 is now powering Calibre. # # Run 'sh calibre.SlackBuild' to build a Slackware package. # The package (.txz) and .txt file as well as build logs are created in /tmp . @@ -142,22 +138,17 @@ PRGNAM=calibre SRCNAM=calibre -VERSION=${VERSION:-4.15.0} +VERSION=${VERSION:-5.38.0} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(nproc) "} TAG=${TAG:-alien} DOCS="LICENSE* Changelog* COPYRIGHT README*" -PYTHON=$(python2 -c 'import sys; print (sys.version.split( )[0])') +SYSPYTHON=$(python3 -c 'import sys; print (sys.version.split( )[0])') SLACKVER=${SLACKVER:-$(cat /etc/slackware-version |cut -d' ' -f2)} -REQUIRED_QT="5.13.1" - -# Only used in case we need to build our own Qt: -INT_QT=5.13.2 - -REQUIRED_MTP="1.1.16" +REQUIRED_MTP="1.1.17" # Only used in case we need to build our own libmtp: INT_MTP=1.1.17 @@ -165,59 +156,67 @@ INT_MTP=1.1.17 # Only used when we build our own ImageMagick: INT_MAGICK=6.9.10_68 -REQUIRED_PYTHON="2.7" -REQUIRED_PYTHON_MIN="16" +REQUIRED_PYTHON="3.8" +REQUIRED_PYTHON_MIN="5" # Only used in case we need to build our own python: -INT_PYTHON=2.7.18 +INT_PYTHON=3.8.5 # Only used in case we need to build our own python modules: -#INT_SETUPTOOLS=14.3 -# 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=42.0.2 +INT_SETUPTOOLS=49.6.0 # The rest of the internal Python deps: -INT_APSW=3.30.1-r1 -INT_BEAUTIFULSOUP=4.8.0 -INT_BFLC=1.5 +INT_APSW=3.37.0-r1 +INT_BEAUTIFULSOUP=4.9.1 INT_CHARDET=3.0.4 +INT_CCHARDET=2.1.7 INT_CSSPARSER=1.0.4 -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=1.0.1 -INT_HTML5PARSER=0.4.9 +INT_DATEUTIL=2.8.1 +INT_DNSPYTHON=2.0.0 +INT_FEEDPARSER=6.0.8 +INT_HTML2TEXT=2020.1.16 +INT_HTML5LIB=1.1 +INT_HTML5PARSER=0.4.10 INT_HYPHEN=2.8.8 -INT_LXML=4.3.3 -INT_MARKDOWN=3.1 -INT_MECHANIZE=0.4.3 -INT_MSGPACK=0.6.1 +INT_IFADDR=0.1.7 +INT_JEEPNEY=0.6.0 +INT_LXML=4.5.2 +INT_MARKDOWN=3.2.2 +INT_MECHANIZE=0.4.7 +INT_MSGPACK=1.0.0 INT_NETIFACES=0.10.9 -INT_PILLOW=6.2.0 -INT_PSUTIL=5.6.2 -INT_PYCRYPTO=2.6.1 -INT_PYGMENTS=2.3.1 -INT_PYQT5=5.13.2 -INT_PYQTWEBENG=5.13.2 -INT_REGEX=2019.04.14 -INT_SIP=4.19.20 -INT_SIX=1.12.0 -INT_SOUPSIEVE=1.9.1 -INT_SQLITE=3310100 -INT_UNRARDLL=0.1.3 +INT_PACKAGING=20.4 +INT_PILLOW=8.3.1 +INT_PIP=20.0.2 +INT_PSUTIL=5.7.2 +INT_PY7ZR=0.11.1 +INT_PYCHM=0.8.6 +INT_PYCRYPTO=3.9.8 +INT_PYGMENTS=2.6.1 +INT_PYPARSING=2.4.7 +INT_PYQT5=5.15.2 +INT_PYQT5SIP=12.8.1 +INT_PYQTBUILDER=1.6.0 +INT_PYQTWEBENG=5.15.1 +INT_REGEX=2020.7.14 +INT_SGMLLIB3K=1.0.0 +INT_SIP=5.5.0 +INT_SIX=1.15.0 +INT_SOUPSIEVE=2.0.1 +INT_SPEECHD=0.11.1 +INT_STEMMER=2.2.0 +INT_SQLITE=3380100 +INT_TEXTTABLE=1.6.3 +INT_TOML=0.10.1 +INT_UNRARDLL=0.1.5 INT_WEBENC=0.5.1 -INT_XKB=0.9.1 +INT_ZEROCONF=0.31.0 # Software that's an internal dependency to the package: INT_HUNSPELL=1.7.0 INT_OPTIPNG=0.7.7 INT_PODOFO=0.9.6 -INT_UNRARSRC=5.9.1 +INT_POPPLER=21.12.0 +INT_UNRARSRC=5.9.4 # Where do we look for sources? SRCDIR=$(cd $(dirname $0); pwd) @@ -231,22 +230,14 @@ OUTPUT=${OUTPUT:-/tmp} SOURCE[0]="$SRCDIR/sources/${SRCNAM}-${VERSION}.tar.xz" SRCURL[0]="https://download.calibre-ebook.com/${VERSION}/${SRCNAM}-${VERSION}.tar.xz" +# We build our own python 3.x plus supporting modules: +BUILD_PYTHON="YES" + # Allow the package builder to override BUILD_MAGICK: # By default we do not compile an internal version but enabling this # allows us to be independant of Slackware's ImageMagick upgrades. BUILD_MAGICK=${BUILD_MAGICK:-NO} -# Allow the package builder to override BUILD_QT: -if [ -z "$BUILD_QT" ]; then - if pkg-config --exists "Qt5Core >= $REQUIRED_QT" && pkg-config --exists "Qt5Core <= $INT_QT" ; - then - BUILD_QT="NO" - else - # We need to build our own qt5: - BUILD_QT="YES" - fi -fi - # Allow the package builder to override BUILD_MTP: if [ -z "$BUILD_MTP" ]; then if pkg-config --exists "libmtp >= $REQUIRED_MTP" ; then @@ -257,170 +248,165 @@ if [ -z "$BUILD_MTP" ]; then fi fi -# Allow the package builder to override BUILD_PYTHON: -if [ -z "$BUILD_PYTHON" ]; then - if [ "$(echo $PYTHON |cut -d. -f1,2)" = "$REQUIRED_PYTHON" -a "$(echo $PYTHON |cut -d. -f3)" -ge "$REQUIRED_PYTHON_MIN" ]; then - BUILD_PYTHON="NO" - else - # We need to build our own python 2.7 plus supporting modules: - BUILD_PYTHON="YES" - fi -fi +# Determine what sources we need to download: +echo ">> Compiling python modules <<" -# Allow the package builder to override BUILD_PYTHONMODS: -if [ BUILD_PYTHON="YES" ]; then - # If we need to build python then the mods are required too: - BUILD_PYTHONMODS="YES" -else - # We may want to include the modules instead of relying on separate packages; - # Note: that will currently not work, my python-fu is insufficient. - BUILD_PYTHONMODS="${BUILD_PYTHONMODS:-NO}" -fi +SOURCE[1]="$SRCDIR/sources/setuptools-${INT_SETUPTOOLS}.zip" +SRCURL[1]="https://pypi.python.org/packages/source/s/setuptools/setuptools-${INT_SETUPTOOLS}.zip" -# Determine what sources we need to download: -if [ "$BUILD_PYTHONMODS" = "YES" ]; then - echo ">> Compiling python modules <<" +SOURCE[2]="$SRCDIR/sources/Pygments-${INT_PYGMENTS}.tar.gz" +SRCURL[2]="https://pypi.python.org/packages/source/P/Pygments/Pygments-${INT_PYGMENTS}.tar.gz" - # URL for the newer setuptools: - SOURCE[1]="$SRCDIR/sources/setuptools-${INT_SETUPTOOLS}.zip" - SRCURL[1]="https://pypi.python.org/packages/source/s/setuptools/setuptools-${INT_SETUPTOOLS}.zip" - # URL for the older setuptools: - #SOURCE[1]="$SRCDIR/sources/setuptools-${INT_SETUPTOOLS}.tar.gz" - #SRCURL[1]="https://pypi.python.org/packages/source/s/setuptools/setuptools-${INT_SETUPTOOLS}.tar.gz" +SOURCE[3]="$SRCDIR/sources/dnspython-${INT_DNSPYTHON}.zip" +SRCURL[3]="https://pypi.python.org/packages/source/d/dnspython/dnspython-${INT_DNSPYTHON}.zip" - SOURCE[2]="$SRCDIR/sources/Pygments-${INT_PYGMENTS}.tar.gz" - SRCURL[2]="https://pypi.python.org/packages/source/P/Pygments/Pygments-${INT_PYGMENTS}.tar.gz" +SOURCE[4]="$SRCDIR/sources/css-parser-${INT_CSSPARSER}.tar.gz" +SRCURL[4]="https://pypi.python.org/packages/source/c/css-parser/css-parser-${INT_CSSPARSER}.tar.gz" - SOURCE[3]="$SRCDIR/sources/dnspython-${INT_DNSPYTHON}.tar.gz" - SRCURL[3]="http://www.dnspython.org/kits/${INT_DNSPYTHON}/dnspython-${INT_DNSPYTHON}.tar.gz" +SOURCE[5]="$SRCDIR/sources/python-dateutil-${INT_DATEUTIL}.tar.gz" +SRCURL[5]="https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-${INT_DATEUTIL}.tar.gz" - SOURCE[4]="$SRCDIR/sources/css-parser-${INT_CSSPARSER}.tar.gz" - SRCURL[4]="https://pypi.python.org/packages/source/c/css-parser/css-parser-${INT_CSSPARSER}.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[5]="$SRCDIR/sources/python-dateutil-${INT_DATEUTIL}.tar.gz" - SRCURL[5]="https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-${INT_DATEUTIL}.tar.gz" +SOURCE[7]="$SRCDIR/sources/lxml-${INT_LXML}.tgz" +SRCURL[7]="http://lxml.de/files/lxml-${INT_LXML}.tgz" - SOURCE[6]="$SRCDIR/sources/Pillow-${INT_PILLOW}.tar.gz" - SRCURL[6]="https://pypi.io/packages/source/p/pillow/Pillow-${INT_PILLOW}.tar.gz" +SOURCE[8]="$SRCDIR/sources/mechanize-${INT_MECHANIZE}.tar.gz" +SRCURL[8]="https://github.com/python-mechanize/mechanize/archive/v${INT_MECHANIZE}.tar.gz" - SOURCE[7]="$SRCDIR/sources/lxml-${INT_LXML}.tgz" - SRCURL[7]="http://lxml.de/files/lxml-${INT_LXML}.tgz" +SOURCE[9]="$SRCDIR/sources/texttable-${INT_TEXTTABLE}.tar.gz" +SRCURL[9]="https://pypi.io/packages/source/t/texttable/texttable-${INT_TEXTTABLE}.tar.gz" - SOURCE[8]="$SRCDIR/sources/mechanize-${INT_MECHANIZE}.tar.gz" - SRCURL[8]="https://github.com/python-mechanize/mechanize/archive/v${INT_MECHANIZE}.tar.gz" +SOURCE[10]="$SRCDIR/sources/ifaddr-${INT_IFADDR}.tar.gz" +SRCURL[10]="https://pypi.io/packages/source/i/ifaddr/ifaddr-${INT_IFADDR}.tar.gz" - SOURCE[9]="$SRCDIR/sources/PyQt5-${INT_PYQT5}.tar.gz" - SRCURL[9]="https://www.riverbankcomputing.com/static/Downloads/PyQt5/${INT_PYQT5}/PyQt5-${INT_PYQT5}.tar.gz" +SOURCE[11]="$SRCDIR/sources/zeroconf-${INT_ZEROCONF}.tar.gz" +SRCURL[11]="https://pypi.io/packages/source/z/zeroconf/zeroconf-${INT_ZEROCONF}.tar.gz" - SOURCE[10]="$SRCDIR/sources/sip-${INT_SIP}.tar.gz" - SRCURL[10]="https://www.riverbankcomputing.com/static/Downloads/sip/${INT_SIP}/sip-${INT_SIP}.tar.gz" +SOURCE[12]="$SRCDIR/sources/pycryptodome-${INT_PYCRYPTO}.tar.gz" +SRCURL[12]="https://github.com/Legrandin/pycryptodome/archive/v${INT_PYCRYPTO}.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" +SOURCE[13]="$SRCDIR/sources/netifaces-${INT_NETIFACES}.tar.gz" +SRCURL[13]="https://pypi.io/packages/source/n/netifaces/netifaces-${INT_NETIFACES}.tar.gz" - SOURCE[12]="$SRCDIR/sources/pycrypto-${INT_PYCRYPTO}.tar.gz" - SRCURL[12]="http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-${INT_PYCRYPTO}.tar.gz" +SOURCE[14]="$SRCDIR/sources/psutil-${INT_PSUTIL}.tar.gz" +SRCURL[14]="https://github.com/giampaolo/psutil/archive/release-${INT_PSUTIL}.tar.gz" - SOURCE[13]="$SRCDIR/sources/netifaces-${INT_NETIFACES}.tar.gz" - SRCURL[13]="https://pypi.io/packages/source/n/netifaces/netifaces-${INT_NETIFACES}.tar.gz" +SOURCE[15]="$SRCDIR/sources/apsw-${INT_APSW}.zip" +SRCURL[15]="https://github.com/rogerbinns/apsw/releases/download/${INT_APSW}/apsw-${INT_APSW}.zip" - SOURCE[14]="$SRCDIR/sources/psutil-${INT_PSUTIL}.tar.gz" - SRCURL[14]="https://github.com/giampaolo/psutil/archive/release-${INT_PSUTIL}.tar.gz" +SOURCE[16]="$SRCDIR/sources/regex-${INT_REGEX}.tar.gz" +SRCURL[16]="https://pypi.io/packages/source/r/regex/regex-${INT_REGEX}.tar.gz" - SOURCE[15]="$SRCDIR/sources/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" +SOURCE[17]="$SRCDIR/sources/msgpack-python-${INT_MSGPACK}.tar.gz" +SRCURL[17]="https://pypi.io/packages/source/m/msgpack/msgpack-${INT_MSGPACK}.tar.gz" - SOURCE[16]="$SRCDIR/sources/regex-${INT_REGEX}.tar.gz" - SRCURL[16]="https://pypi.io/packages/source/r/regex/regex-${INT_REGEX}.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[17]="$SRCDIR/sources/msgpack-python-${INT_MSGPACK}.tar.gz" - SRCURL[17]="https://pypi.io/packages/source/m/msgpack/msgpack-${INT_MSGPACK}.tar.gz" +SOURCE[19]="$SRCDIR/sources/cchardet-${INT_CCHARDET}.tar.gz" +SRCURL[19]="https://pypi.io/packages/source/c/cchardet/cchardet-${INT_CCHARDET}.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[20]="$SRCDIR/sources/webencodings-${INT_WEBENC}.tar.gz" +SRCURL[20]="https://pypi.io/packages/source/w/webencodings/webencodings-${INT_WEBENC}.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[21]="$SRCDIR/sources/html5lib-${INT_HTML5LIB}.tar.gz" +SRCURL[21]="https://pypi.io/packages/source/h/html5lib/html5lib-${INT_HTML5LIB}.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" +SOURCE[22]="$SRCDIR/sources/html5-parser-${INT_HTML5PARSER}.tar.gz" +SRCURL[22]="https://pypi.io/packages/source/h/html5-parser/html5-parser-${INT_HTML5PARSER}.tar.gz" - SOURCE[21]="$SRCDIR/sources/html5lib-${INT_HTML5LIB}.tar.gz" - SRCURL[21]="https://pypi.io/packages/source/h/html5lib/html5lib-${INT_HTML5LIB}.tar.gz" +SOURCE[23]="$SRCDIR/sources/unrardll-${INT_UNRARDLL}.tar.gz" +SRCURL[23]="https://pypi.io/packages/source/u/unrardll/unrardll-${INT_UNRARDLL}.tar.gz" - SOURCE[22]="$SRCDIR/sources/html5-parser-${INT_HTML5PARSER}.tar.gz" - SRCURL[22]="https://pypi.io/packages/source/h/html5-parser/html5-parser-${INT_HTML5PARSER}.tar.gz" +SOURCE[24]="$SRCDIR/sources/feedparser-${INT_FEEDPARSER}.tar.gz" +SRCURL[24]="https://pypi.io/packages/source/f/feedparser/feedparser-${INT_FEEDPARSER}.tar.gz" - SOURCE[23]="$SRCDIR/sources/unrardll-${INT_UNRARDLL}.tar.gz" - SRCURL[23]="https://pypi.io/packages/source/u/unrardll/unrardll-${INT_UNRARDLL}.tar.gz" +SOURCE[25]="$SRCDIR/sources/Markdown-${INT_MARKDOWN}.tar.gz" +SRCURL[25]="https://pypi.io/packages/source/M/Markdown/Markdown-${INT_MARKDOWN}.tar.gz" - SOURCE[24]="$SRCDIR/sources/feedparser-${INT_FEEDPARSER}.tar.gz" - SRCURL[24]="https://pypi.io/packages/source/f/feedparser/feedparser-${INT_FEEDPARSER}.tar.gz" +SOURCE[26]="$SRCDIR/sources/sqlite-amalgamation-${INT_SQLITE}.zip" +SRCURL[26]="https://www.sqlite.org/2022/sqlite-amalgamation-${INT_SQLITE}.zip" - SOURCE[25]="$SRCDIR/sources/Markdown-${INT_MARKDOWN}.tar.gz" - SRCURL[25]="https://pypi.io/packages/source/M/Markdown/Markdown-${INT_MARKDOWN}.tar.gz" +SOURCE[27]="$SRCDIR/sources/beautifulsoup4-${INT_BEAUTIFULSOUP}.tar.gz" +SRCURL[27]="https://pypi.io/packages/source/b/beautifulsoup4/beautifulsoup4-${INT_BEAUTIFULSOUP}.tar.gz" - SOURCE[26]="$SRCDIR/sources/sqlite-amalgamation-${INT_SQLITE}.zip" - SRCURL[26]="https://www.sqlite.org/2020/sqlite-amalgamation-${INT_SQLITE}.zip" +SOURCE[28]="$SRCDIR/sources/snowball-${INT_STEMMER}.tar.gz" +SRCURL[28]="https://github.com/snowballstem/snowball/archive/refs/tags/v${INT_STEMMER}.tar.gz" - SOURCE[27]="$SRCDIR/sources/beautifulsoup4-${INT_BEAUTIFULSOUP}.tar.gz" - SRCURL[27]="https://pypi.io/packages/source/b/beautifulsoup4/beautifulsoup4-${INT_BEAUTIFULSOUP}.tar.gz" +SOURCE[29]="$SRCDIR/sources/soupsieve-${INT_SOUPSIEVE}.tar.gz" +SRCURL[29]="https://pypi.io/packages/source/s/soupsieve/soupsieve-${INT_SOUPSIEVE}.tar.gz" - SOURCE[28]="$SRCDIR/sources/backports.functools_lru_cache-${INT_BFLC}.tar.gz" - SRCURL[28]="https://pypi.io/packages/source/b/backports.functools_lru_cache/backports.functools_lru_cache-${INT_BFLC}.tar.gz" +SOURCE[30]="$SRCDIR/sources/html2text-${INT_HTML2TEXT}.tar.gz" +SRCURL[30]="https://pypi.io/packages/source/h/html2text/html2text-${INT_HTML2TEXT}.tar.gz" - SOURCE[29]="$SRCDIR/sources/soupsieve-${INT_SOUPSIEVE}.tar.gz" - SRCURL[29]="https://pypi.io/packages/source/s/soupsieve/soupsieve-${INT_SOUPSIEVE}.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[30]="$SRCDIR/sources/html2text-${INT_HTML2TEXT}.tar.gz" - SRCURL[30]="https://pypi.io/packages/source/h/html2text/html2text-${INT_HTML2TEXT}.tar.gz" +SOURCE[32]="$SRCDIR/sources/pychm-${INT_PYCHM}.tar.gz" +SRCURL[32]="https://pypi.io/packages/source/p/pychm/pychm-${INT_PYCHM}.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[33]="$SRCDIR/sources/toml-${INT_TOML}.tar.gz" +SRCURL[33]="https://pypi.io/packages/source/t/toml/toml-${INT_TOML}.tar.gz" - SOURCE[32]="$SRCDIR/sources/PyQtWebEngine-${INT_PYQTWEBENG}.tar.gz" - SRCURL[32]="https://www.riverbankcomputing.com/static/Downloads/PyQtWebEngine/${INT_PYQTWEBENG}/PyQtWebEngine-${INT_PYQTWEBENG}.tar.gz" +SOURCE[34]="$SRCDIR/sources/PyQtWebEngine-${INT_PYQTWEBENG}.tar.gz" +SRCURL[34]="https://pypi.io/packages/source/P/PyQtWebEngine/PyQtWebEngine-${INT_PYQTWEBENG}.tar.gz" - SOURCE[33]="$SRCDIR/sources/unrarsrc-${INT_UNRARSRC}.tar.gz" - SRCURL[33]="http://www.rarlab.com/rar/unrarsrc-${INT_UNRARSRC}.tar.gz" +SOURCE[35]="$SRCDIR/sources/unrarsrc-${INT_UNRARSRC}.tar.gz" +SRCURL[35]="http://www.rarlab.com/rar/unrarsrc-${INT_UNRARSRC}.tar.gz" - SOURCE[34]="$SRCDIR/sources/hunspell-${INT_HUNSPELL}.tar.gz" - SRCURL[34]="https://github.com/hunspell/hunspell/archive/v${INT_HUNSPELL}.tar.gz" +SOURCE[36]="$SRCDIR/sources/hunspell-${INT_HUNSPELL}.tar.gz" +SRCURL[36]="https://github.com/hunspell/hunspell/archive/v${INT_HUNSPELL}.tar.gz" - NEXT_ARRAYEL=${#SOURCE[@]} -else - NEXT_ARRAYEL=1 -fi +SOURCE[37]="$SRCDIR/sources/pip-${INT_PIP}.tar.gz" +SRCURL[37]="https://pypi.io/packages/source/p/pip/pip-${INT_PIP}.tar.gz" -if [ "$BUILD_PYTHON" = "YES" ]; then - echo ">> Compiling python interpreter <<" +SOURCE[38]="$SRCDIR/sources/sgmllib3k-${INT_SGMLLIB3K}.tar.gz" +SRCURL[38]="https://pypi.io/packages/source/s/sgmllib3k/sgmllib3k-${INT_SGMLLIB3K}.tar.gz" - SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/Python-${INT_PYTHON}.tar.xz" - SRCURL[$NEXT_ARRAYEL]="http://python.org/ftp/python/${INT_PYTHON}/Python-${INT_PYTHON}.tar.xz" +SOURCE[39]="$SRCDIR/sources/py7zr-${INT_PY7ZR}.tar.gz" +SRCURL[39]="https://pypi.io/packages/source/p/py7zr/py7zr-${INT_PY7ZR}.tar.gz" - NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 )) -fi +SOURCE[40]="$SRCDIR/sources/jeepney-${INT_JEEPNEY}.tar.gz" +SRCURL[40]="https://pypi.io/packages/source/j/jeepney/jeepney-${INT_JEEPNEY}.tar.gz" -if [ "$BUILD_MTP" = "YES" ]; then - echo ">> Compiling libmtp <<" +SOURCE[41]="$SRCDIR/sources/pyparsing-${INT_PYPARSING}.tar.gz" +SRCURL[41]="https://pypi.io/packages/source/p/pyparsing/pyparsing-${INT_PYPARSING}.tar.gz" - SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/libmtp-${INT_MTP}.tar.gz" - SRCURL[$NEXT_ARRAYEL]="https://downloads.sourceforge.net/libmtp/libmtp-${INT_MTP}.tar.gz" +SOURCE[42]="$SRCDIR/sources/packaging-${INT_PACKAGING}.tar.gz" +SRCURL[42]="https://pypi.io/packages/source/p/packaging/packaging-${INT_PACKAGING}.tar.gz" - NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 )) -fi +SOURCE[43]="$SRCDIR/sources/sip-${INT_SIP}.tar.gz" +SRCURL[43]="https://pypi.io/packages/source/s/sip/sip-${INT_SIP}.tar.gz" -if [ "$BUILD_QT" = "YES" ]; then - echo ">> Compiling Qt <<" +SOURCE[44]="$SRCDIR/sources/PyQt5_sip-${INT_PYQT5SIP}.tar.gz" +SRCURL[44]="https://pypi.io/packages/source/P/PyQt5_sip/PyQt5_sip-${INT_PYQT5SIP}.tar.gz" - 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" +SOURCE[45]="$SRCDIR/sources/PyQt5-${INT_PYQT5}.tar.gz" +SRCURL[45]="https://pypi.io/packages/source/P/PyQt5/PyQt5-${INT_PYQT5}.tar.gz" - NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 )) +SOURCE[46]="$SRCDIR/sources/PyQt-builder-${INT_PYQTBUILDER}.tar.gz" +SRCURL[46]="https://pypi.io/packages/source/P/PyQt-builder/PyQt-builder-${INT_PYQTBUILDER}.tar.gz" + +SOURCE[47]="$SRCDIR/sources/speech-dispatcher-${INT_SPEECHD}.tar.gz" +SRCURL[47]="https://github.com/brailcom/speechd/releases/download/${INT_SPEECHD}/speech-dispatcher-${INT_SPEECHD}.tar.gz" + +NEXT_ARRAYEL=${#SOURCE[@]} + +# We always build the python interpreter: +echo ">> Compiling python interpreter <<" - 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" +SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/Python-${INT_PYTHON}.tar.xz" +SRCURL[$NEXT_ARRAYEL]="http://python.org/ftp/python/${INT_PYTHON}/Python-${INT_PYTHON}.tar.xz" + +NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 )) + +if [ "$BUILD_MTP" = "YES" ]; then + echo ">> Compiling libmtp <<" + + SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/libmtp-${INT_MTP}.tar.gz" + SRCURL[$NEXT_ARRAYEL]="https://downloads.sourceforge.net/libmtp/libmtp-${INT_MTP}.tar.gz" NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 )) fi @@ -434,6 +420,7 @@ if [ "$BUILD_MAGICK" = "YES" ]; then NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 )) fi +# Several internal dependencies: SOURCE[$NEXT_ARRAYEL]="$SRCDIR/sources/optipng-${INT_OPTIPNG}.tar.gz" SRCURL[$NEXT_ARRAYEL]="https://downloads.sourceforge.net/optipng/optipng-${INT_OPTIPNG}.tar.gz" NEXT_ARRAYEL=$(( ${NEXT_ARRAYEL} + 1 )) @@ -545,7 +532,7 @@ echo "++" 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 + if [ "$BUILD_PYTHON" = "YES" -o "$BUILD_MTP" = "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 @@ -583,160 +570,6 @@ echo Building ... # What follows is a series of subroutines for building all the parts: # -# -# 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() { - - # Calibre needs: qt-base, qt-svg, qt-declarative, qt-imageformats, - # qt-webchannel, qt-location, qt-x11extras, qt-sensors, qt-webengine. - - local MOD="qt5" - echo -e "\n** $MOD **\n" - - 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: - 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" - - # Use -reduce-relocations only on i?86 and x86_64 architextures. - # https://bugreports.qt-project.org/browse/QTBUG-36129 - if echo $ARCH | grep -q '\(i.86\|x86_64\)' 2>/dev/null; then - RELOCATIONS="-reduce-relocations" - else - RELOCATIONS="" - fi - - if [ "$P1" != "--oldbuild" ]; then - # Fix path to mysql header - cat $PATCHDIR/qt5.mysql.h.diff | patch -p1 --verbose || exit 1 - - if ! pkg-config --exists libpulse 2>/dev/null ; then - # Forcibly disable pulseaudio in qtwebengine: - cat $PATCHDIR/qt5.pulseaudio.diff | patch -p1 --verbose || exit 1 - fi - - # 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 - # Disable pulseaudio in Qt5: - PACONF="-no-pulseaudio" - else - PACONF=" " - fi - - export CFLAGS="$SLKCFLAGS" - export CXXFLAGS="$SLKCFLAGS" - export OPENSOURCE_CXXFLAGS="$SLKCFLAGS" - 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 -v \ - -confirm-license \ - -opensource \ - -prefix /usr/lib${LIBDIRSUFFIX}/calibre \ - -system-libpng \ - -system-libjpeg \ - -system-zlib \ - -system-sqlite \ - -plugin-sql-sqlite \ - -accessibility \ - -alsa \ - -dbus \ - -glib \ - -icu \ - -openssl \ - -optimized-qmake \ - -qpa xcb \ - -qt-harfbuzz \ - -qt-pcre \ - -qt-xcb \ - -verbose \ - -nomake examples \ - -no-pulseaudio \ - -no-separate-debug-info \ - -no-strip \ - -no-use-gold-linker \ - -no-sql-odbc -no-sql-psql \ - -no-qml-debug \ - -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcharts \ - -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad \ - -skip qtgraphicaleffects -skip qtlottie -skip qtmacextras \ - -skip qtmultimedia -skip qtnetworkauth -skip qtpurchasing \ - -skip qtquickcontrols -skip qtquickcontrols2 -skip qtremoteobjects \ - -skip qtscript -skip qtscxml -skip qtserialbus -skip qtserialport \ - -skip qtspeech -skip qttools -skip qttranslations -skip qtwayland \ - -skip qtwebglplugin -skip qtwebsockets -skip qtwebview \ - -skip qtwinextras -skip qtxmlpatterns \ - -webengine-proprietary-codecs \ - ${PACONF} \ - $RELOCATIONS \ - -no-pch \ - 2>&1 | tee $OUTPUT/configure-${PRGNAM}_${MOD}.log - - # Sometimes a failure happens when parallelizing make. Retry if make fails, - # but make a failure the second time around (single threaded) a fatal error: - make $NUMJOBS || make || exit 1 \ - 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log - make install INSTALL_ROOT=$PKG \ - 2>&1 | tee $OUTPUT/install-${PRGNAM}_${MOD}.log - - # Add documentation: - mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} - cp -a LICENSE* README* \ - $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true - -} # End make_qt5 - # # Build libmtp: @@ -748,7 +581,7 @@ make_mtp() { cd $TMP/tmp-$PRGNAM/libmtp-${INT_MTP} - CFLAGS="$SLKCFLAGS" \ + export CFLAGS="$SLKCFLAGS" ./configure \ --prefix=/usr/lib${LIBDIRSUFFIX}/calibre \ --disable-static @@ -831,7 +664,7 @@ make_magick() { } # End make_magick # -# Build python 2.7: +# Build python 3.x: # make_python() { @@ -839,14 +672,21 @@ make_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 + local SITEPK=$PKG/usr/lib${LIBDIRSUFFIX}/calibre/lib/python${BRANCH_VERSION}/site-packages cd $TMP/tmp-$PRGNAM/Python-${INT_PYTHON} if [ "$P1" != "--oldbuild" ]; then - cat $PATCHDIR/python.readline.set_pre_input_hook.diff \ + touch $OUTPUT/patch-${PRGNAM}_${MOD}.log + cat $PATCHDIR/python3.readline.set_pre_input_hook.diff \ | patch -p1 --verbose \ - 2>&1 | tee $OUTPUT/patch-${PRGNAM}_${MOD}.log + 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_${MOD}.log + # We don't want a large libpython*.a. + cat $PATCHDIR/python3.no-static-library.diff | patch -p1 --verbose \ + 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_${MOD}.log + # If system we're building on already has Python3 with pip in site-packages, + # ignore it and install pip anyway. + sed -i 's|\("install",\)|\1 "--ignore-installed",|' Lib/ensurepip/__init__.py fi # We are going to install python inside the calibre package. @@ -855,30 +695,45 @@ make_python() { # so that we can run python from this non-standard path: mkdir -p /usr/lib${LIBDIRSUFFIX}/calibre/lib + export CFLAGS="${SLKCFLAGS/-O2}" LDFLAGS="-Wl,-rpath /usr/lib${LIBDIRSUFFIX}/calibre/lib" \ ./configure \ --prefix=/usr/lib${LIBDIRSUFFIX}/calibre \ --bindir=/usr/lib${LIBDIRSUFFIX}/calibre \ - --with-threads \ + --with-platlibdir=lib${LIBDIRSUFFIX} \ --enable-ipv6 \ + --enable-loadable-sqlite-extensions \ + --enable-optimizations \ --enable-shared \ - --enable-unicode=ucs4 \ + --with-computed-gotos \ + --with-ssl-default-suites=python \ + --with-system-expat \ + --with-system-ffi \ + --without-ensurepip \ --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 + make $NUMJOBS EXTRA_CFLAGS="$CFLAGS" || make \ + 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log + make install DESTDIR=$PKG EXTRA_CFLAGS="$CFLAGS" \ + 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/ + # Remove DOS batch/exe files. + find $PKG/usr/lib${LIBDIRSUFFIX}/calibre \( -name '*.exe' -o -name '*.bat' \) -exec rm -f '{}' \+ + + # Fix permissions on dynamic libraries. + find $PKG/usr/lib${LIBDIRSUFFIX}/calibre -type f -perm 555 -exec chmod 755 '{}' \+ + # No need for man pages now: rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/calibre/share/man # Add documentation: mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} - cp -a LICENSE README \ + cp -a LICENSE README* \ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true } # End make_python @@ -895,7 +750,7 @@ make_setuptools() { rm -f setuptools/*.exe # Compile and install - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -906,6 +761,50 @@ make_setuptools() { } # End make_setuptools +# +# Build pyqtbuilder: +# +make_pyqtbuilder() { + + local MOD="pyqtbuilder" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/PyQt-builder-${INT_PYQTBUILDER} + + # Compile and install + python3 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 LICENSE* README* \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_pyqtbuilder + + +# +# Build pip: +# +make_pip() { + + local MOD="pip" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/pip-${INT_PIP} + + # Compile and install + python3 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 AUTHORS.txt LICENSE.txt NEWS.rst PKG-INFO README.rst \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_pip + + make_dnspython() { local MOD="dnspython" @@ -914,7 +813,7 @@ make_dnspython() { cd $TMP/tmp-$PRGNAM/dnspython-${INT_DNSPYTHON} # Compile and install - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -940,7 +839,7 @@ make_cssparser() { || true # Compile and install - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -961,7 +860,7 @@ make_dateutil() { cd $TMP/tmp-$PRGNAM/python-dateutil-${INT_DATEUTIL} # Compile and install - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -982,11 +881,11 @@ make_pillow() { cd $TMP/tmp-$PRGNAM/Pillow-${INT_PILLOW} # Installation path for headers: - PYTHONINC=$( python2 -c 'from distutils.sysconfig import *;print (get_python_inc())' ) + PYTHONINC=$( python3 -c 'from distutils.sysconfig import *;print (get_python_inc())' ) # Compile and install - CFLAGS="$SLKCFLAGS" \ - python2 setup.py install --root $PKG \ + export CFLAGS="$SLKCFLAGS" + python3 setup.py install --root $PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1007,7 +906,7 @@ make_lxml() { cd $TMP/tmp-$PRGNAM/lxml-${INT_LXML} # Compile and install - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1029,7 +928,7 @@ make_mechanize() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1040,74 +939,47 @@ make_mechanize() { } # End make_mechanize # -# Build sip: +# Build toml: # -make_sip() { +make_toml() { - local MOD="sip" + local MOD="toml" echo -e "\n** $MOD **\n" - cd $TMP/tmp-$PRGNAM/sip-${INT_SIP} + cd $TMP/tmp-$PRGNAM/toml-${INT_TOML} - # 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 $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 + # Compile and install + export CFLAGS="$SLKCFLAGS" + python3 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 LICENSE* NEWS README \ + cp -a LICENSE *.rst \ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true -} # End make_sip +} # End make_toml + # -# Build dbus-python: +# Build jeepney: # -make_dbuspython() { +make_jeepney() { - local MOD="dbus-python" + local MOD="jeepney" echo -e "\n** $MOD **\n" - cd $TMP/tmp-$PRGNAM/dbus-python-${INT_DBUSPYTHON} - - LDFLAGS="" \ - LD_LIBRARY_PATH="/usr/lib${LIBDIRSUFFIX}/calibre/lib" \ - PYTHON_INCLUDES="$SLK_PYTHON_INCLUDES" \ - PYTHON_LIBS="$SLK_PYTHON_LIBS" \ - ./configure \ - --prefix=/usr/lib${LIBDIRSUFFIX}/calibre \ - --enable-shared=yes \ - --enable-static=no \ - --build=$TARGET \ - --host=$TARGET \ - 2>&1 | tee $OUTPUT/configure-${PRGNAM}_${MOD}.log + cd $TMP/tmp-$PRGNAM/jeepney-${INT_JEEPNEY} - make 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log - make install DESTDIR=$PKG 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_${MOD}.log + python3 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 AUTHORS COPYING* INSTALL NEWS README* \ + cp -a LICENSE* *.rst \ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true -} # End make_dbuspython +} # End make_jeepney # # Build python-pygments: @@ -1121,65 +993,143 @@ make_pygments() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG \ + python3 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 AUTHORS CHANGES LICENSE README* TODO \ + cp -a AUTHORS CHANGES LICENSE README* \ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true } # End make_pygments # -# Build PyQt5: +# Build python-pyparsing: # -make_pyqt5() { +make_pyparsing() { - local MOD="pyqt5" + local MOD="pyparsing" 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/pyparsing-${INT_PYPARSING} - cd $TMP/tmp-$PRGNAM/PyQt5-${INT_PYQT5} + # Compile and install + export CFLAGS="$SLKCFLAGS" + python3 setup.py install --root=$PKG \ + 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log - 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 + # Add documentation: + mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} + cp -a CHANGES LICENSE* README* \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_pyparsing + + +# +# Build python-packaging: +# +make_packaging() { + + local MOD="packaging" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/packaging-${INT_PACKAGING} + + # Compile and install + export CFLAGS="$SLKCFLAGS" + python3 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-INFO \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_packaging + + +# +# Build sip: +# +make_sip() { + + local MOD="sip" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/sip-${INT_SIP} + + # Compile and install sip first: + export CFLAGS="$SLKCFLAGS" + python3 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 LICENSE* NEWS README \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_sip - if [ "${BUILD_QT}" = "NO" ]; then - export QTDIR=/usr/lib${LIBDIRSUFFIX}/qt5 - else - unset QT5DIR - export QTDIR=/usr/lib${LIBDIRSUFFIX}/calibre - fi +# +# Build pyqt-sip: +# +make_pyqt5sip() { + + local MOD="pyqt5-sip" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/PyQt5_sip-${INT_PYQT5SIP} + + # Compile and install: + export CFLAGS="$SLKCFLAGS" + python3 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 LICENSE* README \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_pyqt5sip + + +# +# Build PyQt5: +# +make_pyqt5() { + + local MOD="pyqt5" + echo -e "\n** $MOD **\n" + + PYTHON3LIB=$( python3 -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())' 2>/dev/null ) + + export QTDIR=/usr/lib${LIBDIRSUFFIX}/qt5 export CFLAGS="$SLKCFLAGS" export CXXFLAGS="$SLKCFLAGS" - python2 configure.py \ + cd $TMP/tmp-$PRGNAM/PyQt5-${INT_PYQT5} + + sip-build \ --confirm-license \ --verbose \ - --qsci-api \ --qmake=$QTDIR/bin/qmake \ + --no-make \ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_${MOD}.log + cd build + 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 + cd - 1>/dev/null - 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 - - rm -rf $PKG/$PYTHON2LIB/PyQt5/uic/port_v3/ + # Useless: + rm -rf $PKG/$PYTHON3LIB/PyQt5/uic/port_v2/ - if [ "${BUILD_QT}" = "NO" ]; then - # Remove ugly bits that threaten to overwrite a system file: - rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/qt5 - fi + # Remove ugly bits that threaten to overwrite a system file: + rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/qt5 # Add documentation: mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} @@ -1197,19 +1147,14 @@ make_pyqtwebengine() { local MOD="pyqtwebengine" echo -e "\n** $MOD **\n" - cd $TMP/tmp-$PRGNAM/PyQtWebEngine-${INT_PYQT5} + cd $TMP/tmp-$PRGNAM/PyQtWebEngine-${INT_PYQTWEBENG} - if [ "${BUILD_QT}" = "NO" ]; then - export QTDIR=/usr/lib${LIBDIRSUFFIX}/qt5 - else - unset QT5DIR - export QTDIR=/usr/lib${LIBDIRSUFFIX}/calibre - fi + export QTDIR=/usr/lib${LIBDIRSUFFIX}/qt5 export CFLAGS="$SLKCFLAGS" export CXXFLAGS="$SLKCFLAGS" - python2 configure.py \ + python3 configure.py \ --qmake=$QTDIR/bin/qmake \ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_${MOD}.log make $NUMJOBS || make \ @@ -1218,10 +1163,8 @@ make_pyqtwebengine() { 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 + # Remove ugly bits that threaten to overwrite a system file: + rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/qt5 # Add documentation: mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} @@ -1232,26 +1175,27 @@ make_pyqtwebengine() { # -# Build pycrypto: +# Build pycryptodome: # -make_pycrypto() { +make_pycryptodome() { - local MOD="pycrypto" + local MOD="pycryptodome" echo -e "\n** $MOD **\n" - cd $TMP/tmp-$PRGNAM/pycrypto-${INT_PYCRYPTO} + cd $TMP/tmp-$PRGNAM/pycryptodome-${INT_PYCRYPTO} # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG \ + python3 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 ACKS ChangeLog COPYRIGHT README TODO Doc \ + cp -a *.rst \ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true -} # End make_pycrypto +} # End make_pycryptodome + # # Build netifaces: @@ -1265,7 +1209,7 @@ make_netifaces() { # Compile and install export CFLAGS="-I/usr/lib${LIBDIRSUFFIX}/calibre/include" - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log unset CFLAGS @@ -1278,6 +1222,54 @@ make_netifaces() { # +# Build ifaddr: +# +make_ifaddr() { + + local MOD="ifaddr" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/ifaddr-${INT_IFADDR} + + # Compile and install + export CFLAGS="-I/usr/lib${LIBDIRSUFFIX}/calibre/include" + python3 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} + cp -a LICENSE* *.rst \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_ifaddr + + +# +# Build zeroconf: +# +make_zeroconf() { + + local MOD="zeroconf" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/zeroconf-${INT_ZEROCONF} + + # Compile and install + export CFLAGS="-I/usr/lib${LIBDIRSUFFIX}/calibre/include" + python3 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} + cp -a COPYING* *.rst \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_zeroconf + + +# # Build apsw: # make_apsw() { @@ -1289,12 +1281,15 @@ make_apsw() { # Link in the SQLite amalgamation files to compile sqlite # statically into the module: + rm -rf sqlite3 ln -s ../sqlite-amalgamation-${INT_SQLITE} sqlite3 # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG \ + python3 setup.py build --enable-all-extensions \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log + python3 setup.py install --root=$PKG --skip-build \ + 2>&1 | tee $OUTPUT/install-${PRGNAM}_${MOD}.log # Add documentation: mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} @@ -1316,7 +1311,7 @@ make_psutil() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1326,6 +1321,53 @@ make_psutil() { } # End make_psutil + +# +# Build texttable: +# +make_texttable() { + + local MOD="texttable" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/texttable-${INT_TEXTTABLE} + + # Compile and install + export CFLAGS="$SLKCFLAGS" + python3 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 LICENSE *.md \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_texttable + + +# +# Build py7zr: +# +make_py7zr() { + + local MOD="py7zr" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/py7zr-${INT_PY7ZR} + + # Compile and install + export CFLAGS="$SLKCFLAGS" + python3 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 LICENSE *.rst \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_py7zr + + # # Build optipng: # @@ -1415,7 +1457,7 @@ make_hunspell() { # Add documentation: mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} - cp -a ABOUT-NLS AUTHORS* BUGS COPYING* ChangeLog* NEWS README* THANKS TODO \ + cp -a ABOUT-NLS AUTHORS* COPYING* ChangeLog* NEWS README* THANKS \ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true } # End make_hunspell @@ -1464,12 +1506,12 @@ make_regex() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG --optimize=1 \ + python3 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 \ + cp -a docs/Features.html docs/Features.rst \ $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true } # End make_regex @@ -1487,7 +1529,7 @@ make_msgpack() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG --optimize=1 \ + python3 setup.py install --root=$PKG --optimize=1 \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1510,7 +1552,7 @@ make_six() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG --optimize=1 \ + python3 setup.py install --root=$PKG --optimize=1 \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1522,29 +1564,6 @@ make_six() { # -# Build enum34 (backported from Python3: -# -make_enum34() { - - local MOD="enum34" - echo -e "\n** $MOD **\n" - - cd $TMP/tmp-$PRGNAM/enum34-${INT_ENUM34} - - # Compile and install - export CFLAGS="$SLKCFLAGS" - 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 PKG-INFO enum/LICENSE enum/README \ - $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true - -} # End make_enum34 - - -# # Build webencodings: # make_webenc() { @@ -1556,7 +1575,7 @@ make_webenc() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG --optimize=1 \ + python3 setup.py install --root=$PKG --optimize=1 \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1579,7 +1598,7 @@ make_html5lib() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG --optimize=1 \ + python3 setup.py install --root=$PKG --optimize=1 \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1602,7 +1621,7 @@ make_html5parser() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG --optimize=1 \ + python3 setup.py install --root=$PKG --optimize=1 \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1625,7 +1644,7 @@ make_unrardll() { # Compile and install export CFLAGS="$SLKCFLAGS -I/usr/lib${LIBDIRSUFFIX}/calibre/include" - python2 setup.py install --root=$PKG --optimize=1 \ + python3 setup.py install --root=$PKG --optimize=1 \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1645,7 +1664,7 @@ make_feedparser() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG --optimize=1 \ + python3 setup.py install --root=$PKG --optimize=1 \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1656,6 +1675,28 @@ make_feedparser() { } # End make_feedparser +# +# Build sgmllib3k: +# +make_sgmllib3k() { + + local MOD="sgmllib3k" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/sgmllib3k-${INT_SGMLLIB3K} + + # Compile and install + python3 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 LICENSE* README \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_sgmllib3k + + make_Markdown() { local MOD="Markdown" @@ -1665,7 +1706,7 @@ make_Markdown() { # Compile and install export CFLAGS="$SLKCFLAGS" - python2 setup.py install --root=$PKG --optimize=1 \ + python3 setup.py install --root=$PKG --optimize=1 \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1684,7 +1725,7 @@ make_beautifulsoup() { cd $TMP/tmp-$PRGNAM/beautifulsoup4-${INT_BEAUTIFULSOUP} # Compile and install: - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1695,33 +1736,6 @@ make_beautifulsoup() { } # End make_beautifulsoup -make_bflc() { - - local MOD="backports.functools_lru_cache" - echo -e "\n** $MOD **\n" - - # First, define the backports namespace: - ( - local BRANCH_VERSION=$(echo $INT_PYTHON | cut -f 1,2 -d . ) - cd $PKG/usr/lib${LIBDIRSUFFIX}/calibre/lib/python${BRANCH_VERSION}/site-packages - mkdir -p backports - cd backports - cat << EOF > __init__.py -from pkgutil import extend_path -__path__ = extend_path(__path__, __name__) -EOF - python2 -m compileall . || true - ) - - cd $TMP/tmp-$PRGNAM/backports.functools_lru_cache-${INT_BFLC} - - # Compile and install: - python2 setup.py install --root=$PKG \ - 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log - -} # End make_bflc - - make_soupsieve() { local MOD="soupsieve" @@ -1730,9 +1744,9 @@ make_soupsieve() { cd $TMP/tmp-$PRGNAM/soupsieve-${INT_SOUPSIEVE} # Compile and install: - python2 setup.py build \ + python3 setup.py build \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log - python2 setup.py install --root=$PKG --optimize=1 \ + python3 setup.py install --root=$PKG --optimize=1 \ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1751,7 +1765,7 @@ make_html2text() { cd $TMP/tmp-$PRGNAM/html2text-${INT_HTML2TEXT} # Compile and install: - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1770,7 +1784,7 @@ make_chardet() { cd $TMP/tmp-$PRGNAM/chardet-${INT_CHARDET} # Compile and install: - python2 setup.py install --root=$PKG \ + python3 setup.py install --root=$PKG \ 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log # Add documentation: @@ -1781,6 +1795,72 @@ make_chardet() { } # End make_chardet +make_cchardet() { + + local MOD="cchardet" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/cchardet-${INT_CCHARDET} + + # Compile and install: + python3 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 COPYING *.rst LICENSE \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_cchardet + + +make_pychm() { + + local MOD="pychm" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/pychm-${INT_PYCHM} + + # Compile and install: + python3 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 COPYING LICENSE NEWS README \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_pychm + + +make_stemmer() { + + local MOD="stemmer" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/snowball-${INT_STEMMER} + # Also generate dynamic lib for calibre: + cat $PATCHDIR/libstemmer.dynamiclib.patch | patch -p1 --verbose \ + 2>&1 | tee $OUTPUT/patch-${PRGNAM}_${MOD}.log + + # Compile and install: + make 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log + + install -D -m0755 -t $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ stemwords + install -D -m0644 -t $PKG/usr/lib${LIBDIRSUFFIX}/calibre/include include/libstemmer.h + install -D -t $PKG/usr/lib${LIBDIRSUFFIX}/calibre/lib libstemmer.a + install -D -t $PKG/usr/lib${LIBDIRSUFFIX}/calibre/lib libstemmer.so.0.0.0 + ln -s libstemmer.so.0.0.0 $PKG/usr/lib${LIBDIRSUFFIX}/calibre/lib/libstemmer.so.0 + ln -s libstemmer.so.0 $PKG/usr/lib${LIBDIRSUFFIX}/calibre/lib/libstemmer.so + + # Add documentation: + mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} + cp -a AUTHORS COPYING* NEWS *.rst \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_stemmer + + make_podofo() { local MOD="podofo" @@ -1820,6 +1900,49 @@ make_podofo() { } # End make_podofo +# +# Build speech-dispatcher: +# +make_speechdispatcher() { + + local MOD="speechdispatcher" + echo -e "\n** $MOD **\n" + + cd $TMP/tmp-$PRGNAM/speech-dispatcher-${INT_SPEECHD} + + LDFLAGS="" \ + LD_LIBRARY_PATH="/usr/lib${LIBDIRSUFFIX}/calibre/lib" \ + ./configure \ + --prefix=/usr/lib${LIBDIRSUFFIX}/calibre \ + --libexecdir=/usr/lib${LIBDIRSUFFIX}/calibre/lib \ + --sysconfdir=/usr/lib${LIBDIRSUFFIX}/calibre/etc \ + --mandir=/usr/lib${LIBDIRSUFFIX}/calibre/man \ + --enable-shared=yes \ + --enable-static=no \ + --with-ibmtts=no --with-kali=no --with-baratinoo=no --with-voxin=no \ + --without-flite \ + --build=$TARGET \ + --host=$TARGET \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_${MOD}.log + + make 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}.log + # A 'spd-conf.1' already exists but make falters when re-generating it: + touch ./src/api/python/speechd_config/spd-conf.1 + make -j1 -i 2>&1 | tee $OUTPUT/make-${PRGNAM}_${MOD}_spd-conf.log + make install DESTDIR=$PKG 2>&1 | tee $OUTPUT/install-${PRGNAM}_${MOD}.log + + rm -f $PKG/usr/lib${LIBDIRSUFFIX}/calibre/etc/speech-dispatcher/modules/cicero.conf + rm -f $PKG/usr/lib${LIBDIRSUFFIX}/calibre/etc/speech-dispatcher/modules/flite.conf + rm -f $PKG/usr/lib${LIBDIRSUFFIX}/calibre/lib/speech-dispatcher/speech-dispatcher-modules/sd_cicero + + # Add documentation: + mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} + cp -a AUTHORS COPYIN* ChangeLog INSTALL NEWS READM* THANKS TODO \ + $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/${MOD} || true + +} # End make_speechdispatcher + + # -------------- # Build calibre: @@ -1847,17 +1970,18 @@ make_calibre () { CFLAGS=${CFLAGS:-""} # Place where we have to install stuff: - PYTHONLIB=$( python2 -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())" ) + PYTHONLIB=$( python3 -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())" ) # Create the directory for calibre's environment module: mkdir -p $PKG$PYTHONLIB # Find the prefix python was installed to (may be different from calibre's): - PYTHONROOT=$( python2 -c "from distutils.sysconfig import get_python_lib; print (get_python_lib(prefix='/'))" ) + PYTHONROOT=$( python3 -c "from distutils.sysconfig import get_python_lib; print (get_python_lib(prefix='/'))" ) PYTHONPREF="${PYTHONLIB%$PYTHONROOT}" # Massage the install script to actually install to that python libdir: sed -e "/s.get_python_lib(prefix=/s,(prefix=.*),(prefix='$PKG$PYTHONPREF')," \ + -e "s,'lib','lib${LIBDIRSUFFIX}',g" \ -i setup/install.py # Cut out the DOS crap: @@ -1870,7 +1994,18 @@ make_calibre () { OVERRIDE_LDFLAGS="$LDFLAGS $SLKLDFLAGS" \ OVERRIDE_CFLAGS="$CFLAGS $SLKCFLAGS" \ - LANG='en_US.UTF-8' python2 setup.py build \ + LANG='en_US.UTF-8' \ + python3 setup.py build \ + 2>&1 | tee $OUTPUT/make-${PRGNAM}.log + OVERRIDE_LDFLAGS="$LDFLAGS $SLKLDFLAGS" \ + OVERRIDE_CFLAGS="$CFLAGS $SLKCFLAGS" \ + LANG='en_US.UTF-8' \ + python3 setup.py gui \ + 2>&1 | tee $OUTPUT/make-${PRGNAM}.log + OVERRIDE_LDFLAGS="$LDFLAGS $SLKLDFLAGS" \ + OVERRIDE_CFLAGS="$CFLAGS $SLKCFLAGS" \ + LANG='en_US.UTF-8' \ + python3 setup.py rapydscript \ 2>&1 | tee $OUTPUT/make-${PRGNAM}.log # Create the directories the xdg-utils expects to be present: @@ -1882,7 +2017,7 @@ make_calibre () { XDG_UTILS_INSTALL_MODE="system" \ LIBPATH=/usr/lib${LIBDIRSUFFIX} \ LANG='en_US.UTF-8' \ - python2 setup.py install \ + python3 setup.py install \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --staging-root=$PKG/usr \ @@ -1899,6 +2034,9 @@ make_calibre () { # This does not belong in a package - use 'removepkg' instead: rm -f $PKG/usr/bin/calibre-uninstall + # We don't need this either at runtime: + rm -rf $PKG/usr/share/calibre/rapydscript/ + # Create symlinks to system Libration fonts: if [ -d $PKG/usr/share/calibre/fonts/liberation ]; then echo "** Replacing Liberation fonts with symlinks..." @@ -1953,27 +2091,25 @@ make_calibre () { # End of the subroutines. # -if [ "$BUILD_PYTHONMODS" = "YES" ]; then - # Not part of Slackware or too old, and need it: - make_hunspell - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ +# Not part of Slackware or too old, and need it: +make_hunspell +rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_optipng - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ +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_podofo +rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_hyphen - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ +make_hyphen +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 +make_unrarsrc +rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ +# End - not part of Slackware # 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 [ "$BUILD_PYTHON" = "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 # having to build them - this saves a _lot_ of compile time: @@ -1986,7 +2122,7 @@ if [ "$BUILD_PYTHON" = "YES" -o "$BUILD_PYTHONMODS" = "YES" -o "$BUILD_QT" = "YE ) fi - # Ensure that our non-standard python2.7 is found and used: + # Ensure that our non-standard python3 is found and used: echo "** Configuring build environment for preferring internal libraries **" export PATH="/usr/lib${LIBDIRSUFFIX}/calibre:/usr/lib${LIBDIRSUFFIX}/calibre/bin:$PATH" export PKG_CONFIG_PATH="/usr/lib${LIBDIRSUFFIX}/calibre/lib/pkgconfig:$PKG_CONFIG_PATH" @@ -2030,160 +2166,175 @@ if [ "$BUILD_MAGICK" = "YES" ]; then fi fi -if [ "$BUILD_QT" = "YES" ]; then - # No sufficiently new Qt was found so we need to supply it ourself. +# We build the python interpreter ourself. - if [ ! -f $SRCDIR/${PRGNAM}_pythondeps-${SLACKVER}-${ARCH}.tar.bz2 ]; then - # No tarball containing pre-compiled libraries was found. - # We need to build Qt ourself. +if [ ! -f $SRCDIR/${PRGNAM}_pythondeps-${SLACKVER}-${ARCH}.tar.bz2 ]; then + # No tarball containing pre-compiled python libraries was found. + # We need to build python now. - # After each part is built we will sync to here because in the end, calibre - # will wipe the origin and we will have to sync it all back: - mkdir -p /usr/lib${LIBDIRSUFFIX}/calibre - - make_xkbcommon - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + # After each part is built we will sync to here because in the end, calibre + # will wipe the origin and we will have to sync it all back: + mkdir -p /usr/lib${LIBDIRSUFFIX}/calibre - make_qt5 - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - fi + make_python + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ fi -if [ "$BUILD_PYTHON" = "YES" ]; then - # No python2.7 was found on the computer so we need to supply it ourself. +SLK_PYTHON_INCLUDES="-I/usr/lib${LIBDIRSUFFIX}/calibre/include/python${REQUIRED_PYTHON}" +SLK_PYTHON_LIBS="-L/usr/lib${LIBDIRSUFFIX}/calibre/lib -lpython${REQUIRED_PYTHON}" +export PYTHON="/usr/lib${LIBDIRSUFFIX}/calibre/python3" - if [ ! -f $SRCDIR/${PRGNAM}_pythondeps-${SLACKVER}-${ARCH}.tar.bz2 ]; then - # No tarball containing pre-compiled python libraries was found. - # We need to build python2.7 ourself. +# The python modules need to be compiled into the package: + +if [ ! -f $SRCDIR/${PRGNAM}_pythondeps-${SLACKVER}-${ARCH}.tar.bz2 ]; then + # No tarball containing pre-compiled python libraries was found. + # We need to build python modules ourself. - # After each part is built we will sync to here because in the end, calibre - # will wipe the origin and we will have to sync it all back: - mkdir -p /usr/lib${LIBDIRSUFFIX}/calibre + # After each part is built we will sync to here because in the end, calibre + # will wipe the origin and we will have to sync it all back: + mkdir -p /usr/lib${LIBDIRSUFFIX}/calibre + mkdir -p /usr/lib${LIBDIRSUFFIX}/calibre/{bin,lib} - make_python - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - fi + ## Ensure that all our binaries and libraries are found and used: + #export PATH="/usr/lib${LIBDIRSUFFIX}/calibre:/usr/lib${LIBDIRSUFFIX}/calibre/bin:$PATH" + #export PKG_CONFIG_PATH="/usr/lib${LIBDIRSUFFIX}/calibre/lib/pkgconfig:$PKG_CONFIG_PATH" + #export LDFLAGS="-Wl,-rpath /usr/lib${LIBDIRSUFFIX}/calibre/lib -L/usr/lib${LIBDIRSUFFIX}/calibre/lib" - SLK_PYTHON_INCLUDES="-I/usr/lib${LIBDIRSUFFIX}/calibre/include/python${REQUIRED_PYTHON}" - SLK_PYTHON_LIBS="-L/usr/lib${LIBDIRSUFFIX}/calibre/lib -lpython${REQUIRED_PYTHON}" -else - SLK_PYTHON_INCLUDES="-I/usr/lib${LIBDIRSUFFIX}/calibre/include/python${REQUIRED_PYTHON} $(python2 -c 'from distutils.sysconfig import *;print (get_python_inc())')" - SLK_PYTHON_LIBS="-L/usr/lib${LIBDIRSUFFIX}/calibre/lib -lpython${REQUIRED_PYTHON} $(python2 -c 'from distutils.sysconfig import *;print (get_python_lib())')" -fi + make_setuptools + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ -if [ "$BUILD_PYTHONMODS" = "YES" ]; then - # The python2.7 modules need to be compiled into the package: + make_pyqtbuilder + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - if [ ! -f $SRCDIR/${PRGNAM}_pythondeps-${SLACKVER}-${ARCH}.tar.bz2 ]; then - # No tarball containing pre-compiled python libraries was found. - # We need to build python2.7 modules ourself. - - # After each part is built we will sync to here because in the end, calibre - # will wipe the origin and we will have to sync it all back: - mkdir -p /usr/lib${LIBDIRSUFFIX}/calibre + make_pip + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - ## Ensure that all our binaries and libraries are found and used: - #export PATH="/usr/lib${LIBDIRSUFFIX}/calibre:/usr/lib${LIBDIRSUFFIX}/calibre/bin:$PATH" - #export PKG_CONFIG_PATH="/usr/lib${LIBDIRSUFFIX}/calibre/lib/pkgconfig:$PKG_CONFIG_PATH" - #export LDFLAGS="-Wl,-rpath /usr/lib${LIBDIRSUFFIX}/calibre/lib -L/usr/lib${LIBDIRSUFFIX}/calibre/lib" + make_stemmer + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_setuptools - 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_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_pillow - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_apsw || exit 1 + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_apsw || exit 1 - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_beautifulsoup + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_beautifulsoup - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_soupsieve + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_bflc - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_dnspython + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_soupsieve - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_cssparser + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_dnspython - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_dateutil + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_cssparser - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_lxml + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_dateutil - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_mechanize + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_lxml - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_pycryptodome + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_mechanize - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_netifaces + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_pycrypto - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_ifaddr + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_netifaces - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_jeepney + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_dbuspython - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_psutil + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_psutil - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_zeroconf + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_pygments - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_texttable + 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_py7zr + 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_pygments + 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_pyparsing + 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_packaging + 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_toml + 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_sip + 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_pyqt5sip + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_webenc - 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_html5lib - 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_html5parser - 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_feedparser - 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_Markdown - 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_html2text - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_webenc + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - make_chardet - rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + make_html5lib + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + + make_html5parser + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + + make_feedparser + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + + make_sgmllib3k + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + + make_Markdown + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + + 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/ + + make_cchardet + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + + make_pychm + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ + + make_speechdispatcher + rsync -a $PKG/usr/lib${LIBDIRSUFFIX}/calibre/ /usr/lib${LIBDIRSUFFIX}/calibre/ - fi fi -if [ "$BUILD_PYTHON" = "YES" -o "$BUILD_PYTHONMODS" = "YES" -o "$BUILD_QT" = "YES" -o "$BUILD_MTP" = "YES" ]; then +if [ "$BUILD_PYTHON" = "YES" -o "$BUILD_MTP" = "YES" ]; then # At this point we can wrap the compiled python etc. internal libraries # into a tarball which we can re-use in a future build (so that we do not # have to recompile them every time). @@ -2206,42 +2357,39 @@ export CFLAGS="-I/usr/lib${LIBDIRSUFFIX}/calibre/include" # The main course - compile calibre: make_calibre -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/ - # Wait with with the removal until after byte-compiling: - #rm -rf /usr/lib${LIBDIRSUFFIX}/calibre - - ##!/bin/sh - #path=`readlink -e $0` - #base=`dirname $path` - #export PATH=$base/bin:$PATH - #export LD_LIBRARY_PATH=$base/lib:$LD_LIBRARY_PATH - #$base/bin/calibre "$@" - - # We need to tell calibre to use the internal python: - 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/python2," \ - $FILE - fi - done +# 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/ +# Wait with with the removal until after byte-compiling: +#rm -rf /usr/lib${LIBDIRSUFFIX}/calibre + +##!/bin/sh +#path=`readlink -e $0` +#base=`dirname $path` +#export PATH=$base/bin:$PATH +#export LD_LIBRARY_PATH=$base/lib:$LD_LIBRARY_PATH +#$base/bin/calibre "$@" + +# We need to tell calibre to use the internal python: +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/python3," \ + $FILE + fi +done - # This is not needed in the package: - rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/calibre/{bin,lib/pkgconfig,lib/python*/test,share,usr/man} +# This is not needed in the package: +rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/calibre/{lib/pkgconfig,lib/python*/test,man,usr/man} - # Compiling bytecode makes Calibre startup much faster: - set +e - /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 +# Compiling bytecode makes Calibre startup much faster: +set +e +/usr/lib${LIBDIRSUFFIX}/calibre/python3 -m compileall -d '/' ${PKG}/usr/lib${LIBDIRSUFFIX}/calibre/ || true +/usr/lib${LIBDIRSUFFIX}/calibre/python3 -OO -m compileall -d '/' ${PKG}/usr/lib${LIBDIRSUFFIX}/calibre/ || true +set -e - # Now we can remove these from the filesystem: - rm -rf /usr/lib${LIBDIRSUFFIX}/calibre -fi +# Now we can remove these from the filesystem: +rm -rf /usr/lib${LIBDIRSUFFIX}/calibre # Create a doinst.sh: mkdir -p $PKG/install @@ -2263,11 +2411,9 @@ EOT mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION # First, the calibre documentation files: cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true -if [ "$BUILD_PYTHON" = "YES" -o "$BUILD_PYTHONMODS" = "YES" ]; then - # Add documentation (mainly licenses) of the internal python deps: - mv $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/* $PKG/usr/doc/$PRGNAM-$VERSION/ || true - rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc -fi +# Add documentation (mainly licenses) of the internal python deps: +mv $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc/internaldeps/* $PKG/usr/doc/$PRGNAM-$VERSION/ || true +rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/calibre/doc # Add all the patches we used to build this package: cp -a $PATCHDIR $PKG/usr/doc/$PRGNAM-$VERSION # And finally, add this SlackBuild script: @@ -2281,11 +2427,6 @@ if [ -d $PKG/usr/man ]; then for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done fi -if [ "$BUILD_QT" = "YES" ]; then - # If we built our own Qt then this can be removed from the package: - rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/calibre/{demos,doc,examples,tests} -fi - # Don't ship .la files: rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la @@ -2296,20 +2437,8 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ # Add a package description: mkdir -p $PKG/install cat $SRCDIR/slack-desc > $PKG/install/slack-desc -# Add the external dependencies : -cat $SRCDIR/slack-required > $PKG/install/slack-required -if [ "$BUILD_PYTHONMODS" = "YES" ]; then - cat $PKG/install/slack-required \ - | 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 || true - 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" \ - > $PKG/install/slack-required.temp || true - mv $PKG/install/slack-required.temp $PKG/install/slack-required -fi +## Add the external dependencies : +#cat $SRCDIR/slack-required > $PKG/install/slack-required # Build the package: cd $PKG @@ -2318,7 +2447,7 @@ cd $OUTPUT md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-txz} > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-txz}.md5 cd - cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt -cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep +#cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep # Restore the original umask: umask ${_UMASK_} |