diff --git a/roles/calibre/defaults/main.yml b/roles/calibre/defaults/main.yml index a89171f8b..3c67e310d 100644 --- a/roles/calibre/defaults/main.yml +++ b/roles/calibre/defaults/main.yml @@ -19,6 +19,11 @@ calibre_sample_book: "Metamorphosis-jackson.epub" calibre_src_url: "https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py" +calibre_deb_url: http://download.iiab.io/packages/ +#calibre_3.30.0+dfsg-1_all +#calibre-bin_3.30.0+dfsg-1_armhf +calibre_deb_version: _3.30.0+dfsg-1 + # USE TO TEST debs.yml (RASPBIAN APPROACH!) ON DEBIAN 9.X: (now handled by calibre_via_debs in /opt/iiab/iiab/vars/*) #calibre_debs_on_debian: True # Enable unstable .deb's, not just testing .deb's: (moved to /etc/iiab/local_vars.yml & /opt/iiab/iiab/vars/default_vars.yml) diff --git a/roles/calibre/tasks/debs.yml b/roles/calibre/tasks/debs.yml index 23504f511..d32674072 100644 --- a/roles/calibre/tasks/debs.yml +++ b/roles/calibre/tasks/debs.yml @@ -27,10 +27,14 @@ # 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 latest Calibre using .deb's from testing (rpi) +#- name: Upgrade to latest Calibre using .deb's from testing (rpi) #command: scripts/calibre-install-latest-rpi-plus.sh # WORKS for Calibre 3.27.1 on 2018-07-22 (#948 -> PR #950) THO NOT BOOTABLE IN Zero W (#952). Similar to Calibre 3.24.x & 3.25 in June 2018, which had used calibre-install-packages.sh then Debian's own calibre-install-latest.sh #command: scripts/calibre-install-latest-rpi.sh # WORKS for Calibre 3.28 on 2018-07-26 (PR #971). Likewise for Calibre 3.26.x - command: scripts/calibre-install-latest.sh # REQUIRED for Calibre 3.29 on 2018-08-21 (PR #1015), as all above strategies failed (only script that was not attempted: Sid-like calibre-install-unstable.sh). CLARIF: RESULTING microSD's ARE NOT BOOTABLE IN Zero W (#952) + #command: scripts/calibre-install-latest.sh # REQUIRED for Calibre 3.29 on 2018-08-21 (PR #1015), as all above strategies failed (only script that was not attempted: Sid-like calibre-install-unstable.sh). CLARIF: RESULTING microSD's ARE NOT BOOTABLE IN Zero W (#952) +# when: is_rpi and internet_available + +- name: Upgrade to pinned Calibre {{ calibre_deb_version }} while using additional .deb's from testing (rpi) + command: scripts/calibre-install-pinned-rpi.sh # REQUIRED for Calibre 3.30 on 2018-08-30 when: is_rpi and internet_available - name: Upgrade to Calibre testing .deb's - target Ubuntu 16.04 (not rpi and not ubuntu_18) diff --git a/roles/calibre/tasks/main.yml b/roles/calibre/tasks/main.yml index ec8b8e62a..8b5c97b2a 100644 --- a/roles/calibre/tasks/main.yml +++ b/roles/calibre/tasks/main.yml @@ -12,11 +12,28 @@ with_items: - calibre - calibre-bin - when: internet_available and (not calib_executable.stat.exists) + when: internet_available and not is_rpi and (not calib_executable.stat.exists) + +- name: Download pinned Calibre {{ calibre_deb_version }} (RPi) + get_url: + url: "{{ calibre_deb_url }}/{{ item }}.deb" + dest: "{{ downloads_dir }}/{{ item }}.deb" + mode: 0755 + force: no + backup: no + timeout: "{{ download_timeout }}" + with_items: + - calibre{{ calibre_deb_version }}_all + - calibre-bin{{ calibre_deb_version }}_armhf + when: internet_available and is_rpi + +- name: Install Calibre .debs on RPi + include_tasks: debs.yml + when: calibre_via_debs and is_rpi - name: Install Calibre experimental .debs IF calibre_via_debs (AND /usr/bin/calibre WAS MISSING) include_tasks: debs.yml - when: calibre_via_debs and (not calib_executable.stat.exists) + when: calibre_via_debs and not is_rpi and (not calib_executable.stat.exists) - name: Install Calibre via calibre-installer.py IF calibre_via_python (AND /usr/bin/calibre WAS MISSING) include_tasks: py-installer.yml diff --git a/scripts/calibre-install-pinned-rpi.sh b/scripts/calibre-install-pinned-rpi.sh new file mode 100755 index 000000000..b4387401d --- /dev/null +++ b/scripts/calibre-install-pinned-rpi.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Thanks to Jerry Vonau (https://github.com/jvonau) who made this critical +# breakthrough possible! +# +# Might break future updates; you have been warned. +# SEE NOTES AT TOP OF scripts/calibre-install-packages.sh + +export DEBIAN_FRONTEND=noninteractive +# Prepares to update to latest from raspbian testing +echo "deb http://raspbian.raspberrypi.org/raspbian/ testing main" > /etc/apt/sources.list.d/rpi-testing.list +apt update +apt -y install /opt/iiab/downloads/calibre*.deb +#sed -i '$ d' /etc/apt/sources.list.d/rpi-testing.list # Removes last line +rm /etc/apt/sources.list.d/rpi-testing.list +# Clears the cache of rpi/testing +apt update