From 7af7b97ae7939eefe20d1360705b6e0497d35395 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 18 Jun 2018 16:02:06 -0400 Subject: [PATCH 1/8] Create calibre-install-packages.sh --- scripts/calibre-install-packages.sh | 47 +++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 scripts/calibre-install-packages.sh diff --git a/scripts/calibre-install-packages.sh b/scripts/calibre-install-packages.sh new file mode 100644 index 000000000..d8d3d9eb0 --- /dev/null +++ b/scripts/calibre-install-packages.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# Thanks to Jerry Vonau (https://github.com/jvonau) who made this critical +# breakthrough possible! +# +# Caveat: calibre-install-latest-rpi.sh worked up to Calibre 3.23 in May 2018, +# but fails to "apt install" Calibre 3.24+ in June 2018: +# +# The following packages have unmet dependencies: +# calibre : Depends: python-pyqt5 (>= 5.10.1+dfsg-2) but 5.10.1+dfsg-1+rpi1 is to be installed +# E: Unable to correct problems, you have held broken packages. + +# So the new recipe (2018-06-18) for RPi is: +# +# 1. "apt install calibre calibre-bin" (2.75.1, part of Raspbian OS) +# +# 2. calibre-install-packages.sh installs those packages that +# calibre-install-latest-rpi.sh used to install for Calibre 3.23: +# +# https://github.com/iiab/iiab/pull/839 +# +# 3. calibre-install-latest.sh installs Debian's own calibre & calibre-bin etc: +# +# https://github.com/iiab/iiab/pull/833 # WORKED ON RPI 3 AND RPI 3 B+ +# https://github.com/iiab/iiab/issues/835 # FAILED ON RPI ZERO W, DUE TO INSTALLING libc6 (IF ABOVE STEP 2 NOT RUN!) + +# FYI Calibre 3.25 (and early signs of 3.26) are the latest available from +# testing as of 2018-06-18: +# +# http://raspbian.raspberrypi.org/raspbian/pool/main/c/calibre/ +# http://archive.raspbian.org/raspbian/pool/main/c/calibre/ +# https://packages.debian.org/search?keywords=calibre +# http://deb.debian.org/debian/pool/main/c/calibre/ +# +# Might break future updates; you have been warned. + +export DEBIAN_FRONTEND=noninteractive +# Prepares to update to latest from testing +echo "deb http://raspbian.raspberrypi.org/raspbian/ testing main" > /etc/apt/sources.list.d/rpi-testing.list +apt update +# packages below cribbed from Calibre 3.23 installation as recorded in /var/log/apt/history.log* +apt -y install libegl1 libegl-mesa0 libqt5sensors5 libbrotli1 libwoff1 libpodofo0.9.5 libjs-coffeescript python-regex libhyphen0 libqt5webchannel5 python-msgpack python-html5-parser libqt5positioning5 libpcre2-16-0 libglvnd0 libdrm-common python-sip libqt5svg5 libnih-dbus1 qt5-gtk-platformtheme libc6-dbg libqt5help5 libc6-dev libqt5dbus5 libqt5sql5-sqlite libc6 libqt5widgets5 locales libegl1-mesa python-pyqt5.qtsvg python-lxml fontconfig-config libqt5xml5 libgbm1 libqt5printsupport5 libqt5qml5 libc-l10n libqt5gui5 libc-bin libnih1 libqt5webkit5 python-pyqt5.qtwebkit libdrm2 libqt5core5a libfontconfig1 libqt5opengl5 libc-dev-bin python-pyqt5 libqt5network5 libqt5designer5 libqt5quick5 libqt5sql5 +# BUT DO NOT DO "apt -y install calibre calibre-bin" +# Removes last line, safer than: rm /etc/apt/sources.list.d/rpi-testing.list +sed -i '$ d' /etc/apt/sources.list.d/rpi-testing.list +# Clears the cache of testing +apt update From 4cdf030284ea9fc324a107375a4fab3894997170 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 18 Jun 2018 16:18:32 -0400 Subject: [PATCH 2/8] Update debs.yml --- roles/calibre/tasks/debs.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/roles/calibre/tasks/debs.yml b/roles/calibre/tasks/debs.yml index b00a69d7f..1410de03d 100644 --- a/roles/calibre/tasks/debs.yml +++ b/roles/calibre/tasks/debs.yml @@ -18,9 +18,13 @@ # If you want the latest Calibre, run the appropriate below script, standalone. # HOWEVER: it's strongly suggested you wait for apt (blessed by your OS!) -- name: Upgrade to Calibre testing .deb's - target Raspbian (rpi) - #command: scripts/calibre-install-latest-rpi.sh #fails with Calibre 3.24 & 3.25, and beyond? - command: scripts/calibre-install-latest.sh #Debian approach works for now (3.24 & 3.25) +- name: Install packages that Raspbian .deb's had installed for Calibre 3.23 (rpi) + #command: scripts/calibre-install-latest-rpi.sh # FAILS with Calibre 3.24+ ("calibre : Depends: python-pyqt5 (>= 5.10.1+dfsg-2) but 5.10.1+dfsg-1+rpi1 is to be installed") since June 2018. + command: scripts/calibre-install-packages.sh # BORROWED package list from /var/log/apt/history.log (that resulted from 2018-05-22 install of Calibre 3.23 using calibre-install-latest-rpi.sh). + when: is_rpi and internet_available + +- name: Upgrade to latest Calibre using Debian's own .deb's from testing (rpi) + command: scripts/calibre-install-latest.sh # NECESSARY since Calibre 3.24 (but libc6 will prevent boot in RPi Zero W, if calibre-install-packages.sh isn't run above!) when: is_rpi and internet_available - name: Upgrade to Calibre testing .deb's - target Ubuntu 16.04 (not rpi and not ubuntu_18) From 161a1d60764b53e6ec41b8bb6024d00f69baf2d5 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 18 Jun 2018 16:23:39 -0400 Subject: [PATCH 3/8] Update calibre-install-latest-rpi.sh --- scripts/calibre-install-latest-rpi.sh | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/scripts/calibre-install-latest-rpi.sh b/scripts/calibre-install-latest-rpi.sh index ada054c88..092cbb00c 100755 --- a/scripts/calibre-install-latest-rpi.sh +++ b/scripts/calibre-install-latest-rpi.sh @@ -3,25 +3,7 @@ # Thanks to Jerry Vonau (https://github.com/jvonau) who made this critical # breakthrough possible! # -# Worked up to Calibre 3.23 from May 2018. -# Calibre 3.24 and 3.25 fail to "apt install" in June 2018: -# -# The following packages have unmet dependencies: -# calibre : Depends: python-pyqt5 (>= 5.10.1+dfsg-2) but 5.10.1+dfsg-1+rpi1 is to be installed -# E: Unable to correct problems, you have held broken packages. -# -# Debian approach (calibre-install-latest.sh) is the workaround for now: -# -# https://github.com/iiab/iiab/pull/833 -# -# Calibre 3.25 is the latest available from testing as of 2018-06-10: -# -# http://raspbian.raspberrypi.org/raspbian/pool/main/c/calibre/ -# http://archive.raspbian.org/raspbian/pool/main/c/calibre/ -# https://packages.debian.org/search?keywords=calibre -# http://deb.debian.org/debian/pool/main/c/calibre/ -# -# Might break future updates; you have been warned. +# SEE COMMENTS AT THE TOP OF scripts/calibre-install-packages.sh export DEBIAN_FRONTEND=noninteractive # Prepares to update to latest from testing From 34ed3a738357cc333e0d6fdfb5d70d6ff00e702f Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 18 Jun 2018 16:23:50 -0400 Subject: [PATCH 4/8] Update calibre-install-latest.sh --- scripts/calibre-install-latest.sh | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/scripts/calibre-install-latest.sh b/scripts/calibre-install-latest.sh index 7de7a163f..75142a5c2 100755 --- a/scripts/calibre-install-latest.sh +++ b/scripts/calibre-install-latest.sh @@ -3,14 +3,7 @@ # Thanks to Jerry Vonau (https://github.com/jvonau) who made this critical # breakthrough possible! # -# Calibre 3.25 is the latest available from testing as of 2018-06-10: -# -# https://packages.debian.org/search?keywords=calibre -# http://deb.debian.org/debian/pool/main/c/calibre/ -# http://raspbian.raspberrypi.org/raspbian/pool/main/c/calibre/ -# http://archive.raspbian.org/raspbian/pool/main/c/calibre/ -# -# Might break future updates; you have been warned. +# SEE COMMENTS AT THE TOP OF scripts/calibre-install-packages.sh export DEBIAN_FRONTEND=noninteractive # Drags in stock desktop dependencies without too much from testing below From 8f39c3f55778f93cbf81e97711a4d8af67ff48c2 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 18 Jun 2018 16:28:00 -0400 Subject: [PATCH 5/8] Update debs.yml --- roles/calibre/tasks/debs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre/tasks/debs.yml b/roles/calibre/tasks/debs.yml index 1410de03d..74ce6539f 100644 --- a/roles/calibre/tasks/debs.yml +++ b/roles/calibre/tasks/debs.yml @@ -24,7 +24,7 @@ when: is_rpi and internet_available - name: Upgrade to latest Calibre using Debian's own .deb's from testing (rpi) - command: scripts/calibre-install-latest.sh # NECESSARY since Calibre 3.24 (but libc6 will prevent boot in RPi Zero W, if calibre-install-packages.sh isn't run above!) + command: scripts/calibre-install-latest.sh # NECESSARY since Calibre 3.24 (BEWARE installing libc6 will prevent boot in RPi Zero W, i.e. if calibre-install-packages.sh isn't run above!) when: is_rpi and internet_available - name: Upgrade to Calibre testing .deb's - target Ubuntu 16.04 (not rpi and not ubuntu_18) From d96409f1219fd6c287ab44a7bda5a3641f76bb6e Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 18 Jun 2018 16:30:49 -0400 Subject: [PATCH 6/8] Update calibre-install-packages.sh --- scripts/calibre-install-packages.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/calibre-install-packages.sh b/scripts/calibre-install-packages.sh index d8d3d9eb0..ef98ebfc8 100644 --- a/scripts/calibre-install-packages.sh +++ b/scripts/calibre-install-packages.sh @@ -40,7 +40,7 @@ echo "deb http://raspbian.raspberrypi.org/raspbian/ testing main" > /etc/apt/sou apt update # packages below cribbed from Calibre 3.23 installation as recorded in /var/log/apt/history.log* apt -y install libegl1 libegl-mesa0 libqt5sensors5 libbrotli1 libwoff1 libpodofo0.9.5 libjs-coffeescript python-regex libhyphen0 libqt5webchannel5 python-msgpack python-html5-parser libqt5positioning5 libpcre2-16-0 libglvnd0 libdrm-common python-sip libqt5svg5 libnih-dbus1 qt5-gtk-platformtheme libc6-dbg libqt5help5 libc6-dev libqt5dbus5 libqt5sql5-sqlite libc6 libqt5widgets5 locales libegl1-mesa python-pyqt5.qtsvg python-lxml fontconfig-config libqt5xml5 libgbm1 libqt5printsupport5 libqt5qml5 libc-l10n libqt5gui5 libc-bin libnih1 libqt5webkit5 python-pyqt5.qtwebkit libdrm2 libqt5core5a libfontconfig1 libqt5opengl5 libc-dev-bin python-pyqt5 libqt5network5 libqt5designer5 libqt5quick5 libqt5sql5 -# BUT DO NOT DO "apt -y install calibre calibre-bin" +# BUT DO NOT DO "apt -y install calibre calibre-bin" UNTIL calibre-install-latest.sh # Removes last line, safer than: rm /etc/apt/sources.list.d/rpi-testing.list sed -i '$ d' /etc/apt/sources.list.d/rpi-testing.list # Clears the cache of testing From 58ba823ee354a01cf9442a9ef58318c8aa7d5d25 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 18 Jun 2018 16:51:41 -0400 Subject: [PATCH 7/8] scripts/calibre-install-packages.sh 644 -> 755 --- scripts/calibre-install-packages.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/calibre-install-packages.sh diff --git a/scripts/calibre-install-packages.sh b/scripts/calibre-install-packages.sh old mode 100644 new mode 100755 From d7520882118f13d43d0b58155f52c5c39b22fb38 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 18 Jun 2018 16:54:56 -0400 Subject: [PATCH 8/8] Update calibre-install-packages.sh --- scripts/calibre-install-packages.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/calibre-install-packages.sh b/scripts/calibre-install-packages.sh index ef98ebfc8..c11186671 100755 --- a/scripts/calibre-install-packages.sh +++ b/scripts/calibre-install-packages.sh @@ -38,7 +38,7 @@ export DEBIAN_FRONTEND=noninteractive # Prepares to update to latest from testing echo "deb http://raspbian.raspberrypi.org/raspbian/ testing main" > /etc/apt/sources.list.d/rpi-testing.list apt update -# packages below cribbed from Calibre 3.23 installation as recorded in /var/log/apt/history.log* +# Packages below cribbed from Calibre 3.23 installation as recorded in /var/log/apt/history.log* apt -y install libegl1 libegl-mesa0 libqt5sensors5 libbrotli1 libwoff1 libpodofo0.9.5 libjs-coffeescript python-regex libhyphen0 libqt5webchannel5 python-msgpack python-html5-parser libqt5positioning5 libpcre2-16-0 libglvnd0 libdrm-common python-sip libqt5svg5 libnih-dbus1 qt5-gtk-platformtheme libc6-dbg libqt5help5 libc6-dev libqt5dbus5 libqt5sql5-sqlite libc6 libqt5widgets5 locales libegl1-mesa python-pyqt5.qtsvg python-lxml fontconfig-config libqt5xml5 libgbm1 libqt5printsupport5 libqt5qml5 libc-l10n libqt5gui5 libc-bin libnih1 libqt5webkit5 python-pyqt5.qtwebkit libdrm2 libqt5core5a libfontconfig1 libqt5opengl5 libc-dev-bin python-pyqt5 libqt5network5 libqt5designer5 libqt5quick5 libqt5sql5 # BUT DO NOT DO "apt -y install calibre calibre-bin" UNTIL calibre-install-latest.sh # Removes last line, safer than: rm /etc/apt/sources.list.d/rpi-testing.list