From 73f1d6cf8e64ca3335e6b82d3146477cfa6504dd Mon Sep 17 00:00:00 2001 From: root Date: Sun, 11 Jun 2023 21:33:35 -0400 Subject: [PATCH] WIP: Try 'transmission_compile_latest: True' --- roles/transmission/README.rst | 5 ++- roles/transmission/defaults/main.yml | 1 + roles/transmission/tasks/install.yml | 48 ++++++++++++++++++++++++++-- vars/default_vars.yml | 1 + vars/local_vars_large.yml | 1 + vars/local_vars_medium.yml | 1 + vars/local_vars_small.yml | 1 + vars/local_vars_unittest.yml | 1 + 8 files changed, 56 insertions(+), 3 deletions(-) diff --git a/roles/transmission/README.rst b/roles/transmission/README.rst index 2112fc778..80af71b96 100644 --- a/roles/transmission/README.rst +++ b/roles/transmission/README.rst @@ -111,10 +111,13 @@ Docs As of June 2023, these docs appear to be the most up-to-date: - https://github.com/transmission/transmission/tree/main/docs + - https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md - https://github.com/transmission/transmission/blob/main/docs/Configuration-Files.md + - https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md - https://github.com/transmission/transmission/blob/main/docs/Headless-Usage.md -- https://wiki.archlinux.org/title/transmission (updated regularly) - https://cli-ck.io/transmission-cli-user-guide/ (2016 but still useful) + - https://github.com/transmission/transmission#command-line-interface-notes ("``transmission-cli`` is deprecated and exists primarily to support older hardware dependent upon it. In almost all instances, ``transmission-remote`` should be used instead.") +- https://wiki.archlinux.org/title/transmission (updated regularly) - https://trac.transmissionbt.com/wiki (2006-2019) Logging diff --git a/roles/transmission/defaults/main.yml b/roles/transmission/defaults/main.yml index f6763f593..96fd188d4 100644 --- a/roles/transmission/defaults/main.yml +++ b/roles/transmission/defaults/main.yml @@ -1,6 +1,7 @@ # Transmission is a BitTorrent downloader for large Content Packs etc # transmission_install: False # transmission_enabled: False +# transmission_compile_latest: True # transmission_username: Admin # transmission_password: changeme diff --git a/roles/transmission/tasks/install.yml b/roles/transmission/tasks/install.yml index 90c133511..eaf211bfa 100644 --- a/roles/transmission/tasks/install.yml +++ b/roles/transmission/tasks/install.yml @@ -10,6 +10,47 @@ - transmission-cli state: present + +- block: + + - name: "TRY TO COMPILE & INSTALL very latest Transmission, installing ~5 binaries in /usr/local/bin to take precedence over above binaries in /usr/bin (attempt surgery on systemd unit file from apt install above!)" + meta: noop + + # https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#on-unix + - name: apt install build-essential cmake libcurl4-openssl-dev libssl-dev # git python3 + package: + name: + - build-essential + - cmake + - libcurl4-openssl-dev + - libssl-dev + state: present + + # https://github.com/transmission/transmission/blob/main/docs/Building-Transmission.md#building-transmission-from-git-first-time + - name: Git clone latest to /opt/iiab/transmission + git: + repo: https://github.com/transmission/transmission + dest: /opt/iiab/transmission + #version: 4.0.x # Otherwise default branch 'main' + depth: 1 + force: yes + + - name: Compile & Install (CAN TAKE 10+ MINUTES, OR MUCH MORE ON A RASPBERRY PI!) + shell: | + cd /opt/iiab/transmission + git submodule update --init --recursive + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. + make + make install + + - name: Attempt surgery on /lib/systemd/system/transmission-daemon.service changing /usr/bin/transmission* to /usr/local/bin/transmission* + command: sed -i 's#/usr/bin/transmission#/usr/local/bin/transmission#' /lib/systemd/system/transmission-daemon.service # daemon_reload handled by enable-or-disable.yml + + when: transmission_compile_latest + + - name: Create download dir {{ transmission_download_dir }}, owned by {{ transmission_user }}:{{ transmission_group }} file: state: directory @@ -23,7 +64,10 @@ state: stopped ignore_errors: yes -- name: Back up prior /etc/transmission-daemon/settings.json (original file from apt, or new symlink contents) to /etc/transmission-daemon/settings.json.old* +# 'transmission-daemon -d' (--dump-settings) CAN GENERATE A NEW settings.json +# ...then customize ~8 var lines to create a new templates/settings.json.j2 + +- name: Back up prior /etc/transmission-daemon/settings.json (file originally from apt, or new symlink contents) to /etc/transmission-daemon/settings.json.old* copy: src: /etc/transmission-daemon/settings.json dest: /etc/transmission-daemon/settings.json.old @@ -52,7 +96,7 @@ - name: "Reverse Transmission's fragile OOTB symlink -- instead we establish /etc/transmission-daemon/settings.json -> /var/lib/transmission-daemon/.config/transmission-daemon/settings.json -- REASON: /etc/transmission-daemon/settings.json was intermittently being IGNORED, as Transmission sometimes breaks its own symlink from /var/lib/transmission-daemon/.config/transmission-daemon/settings.json (by turning it into a file instead)" file: path: /etc/transmission-daemon/settings.json - src: /var/lib/transmission-daemon/.config/transmission-daemon/settings.json + src: /var/lib/transmission-daemon/.config/transmission-daemon/settings.json # Symlink /var/lib/transmission-daemon/home/settings.json also points to this state: link force: yes diff --git a/vars/default_vars.yml b/vars/default_vars.yml index 5502204b9..47a03b1aa 100644 --- a/vars/default_vars.yml +++ b/vars/default_vars.yml @@ -543,6 +543,7 @@ sugarizer_port: 8089 # Transmission is a BitTorrent downloader for large Content Packs etc transmission_install: False transmission_enabled: False +transmission_compile_latest: True transmission_username: Admin transmission_password: changeme diff --git a/vars/local_vars_large.yml b/vars/local_vars_large.yml index 1c1e8b7d3..7a98cfa37 100644 --- a/vars/local_vars_large.yml +++ b/vars/local_vars_large.yml @@ -320,6 +320,7 @@ sugarizer_enabled: True # BitTorrent downloader for large Content Packs etc transmission_install: True transmission_enabled: True +transmission_compile_latest: True # A. UNCOMMENT LANGUAGE(S) TO DOWNLOAD KA Lite VIDEOS TO /library/transmission # using https://pantry.learningequality.org/downloads/ka-lite/0.17/content/ transmission_kalite_languages: diff --git a/vars/local_vars_medium.yml b/vars/local_vars_medium.yml index 776d94614..237063f15 100644 --- a/vars/local_vars_medium.yml +++ b/vars/local_vars_medium.yml @@ -320,6 +320,7 @@ sugarizer_enabled: True # BitTorrent downloader for large Content Packs etc transmission_install: True transmission_enabled: True +transmission_compile_latest: True # A. UNCOMMENT LANGUAGE(S) TO DOWNLOAD KA Lite VIDEOS TO /library/transmission # using https://pantry.learningequality.org/downloads/ka-lite/0.17/content/ transmission_kalite_languages: diff --git a/vars/local_vars_small.yml b/vars/local_vars_small.yml index 35514ab81..83c58e62a 100644 --- a/vars/local_vars_small.yml +++ b/vars/local_vars_small.yml @@ -320,6 +320,7 @@ sugarizer_enabled: False # BitTorrent downloader for large Content Packs etc transmission_install: False transmission_enabled: False +transmission_compile_latest: True # A. UNCOMMENT LANGUAGE(S) TO DOWNLOAD KA Lite VIDEOS TO /library/transmission # using https://pantry.learningequality.org/downloads/ka-lite/0.17/content/ transmission_kalite_languages: diff --git a/vars/local_vars_unittest.yml b/vars/local_vars_unittest.yml index 4cc01a9c6..940142665 100644 --- a/vars/local_vars_unittest.yml +++ b/vars/local_vars_unittest.yml @@ -320,6 +320,7 @@ sugarizer_enabled: False # BitTorrent downloader for large Content Packs etc transmission_install: False transmission_enabled: False +transmission_compile_latest: True # A. UNCOMMENT LANGUAGE(S) TO DOWNLOAD KA Lite VIDEOS TO /library/transmission # using https://pantry.learningequality.org/downloads/ka-lite/0.17/content/ transmission_kalite_languages: