thinkcenter-kdenlive: drop nonexistent frei0r-plugins-data; pre-filter pkg list to available-only (never abort on a bad name)
This commit is contained in:
parent
427ff8aa1d
commit
3d9fe1fb04
@ -71,8 +71,7 @@
|
|||||||
kdenlive_packages:
|
kdenlive_packages:
|
||||||
- kdenlive # the editor (pulls MLT, Qt/KF5 automatically)
|
- kdenlive # the editor (pulls MLT, Qt/KF5 automatically)
|
||||||
- breeze-icon-theme # fixes blank toolbar icons on Cinnamon
|
- breeze-icon-theme # fixes blank toolbar icons on Cinnamon
|
||||||
- frei0r-plugins # video effects/transitions via MLT
|
- frei0r-plugins # video effects/transitions via MLT (data bundled in this pkg)
|
||||||
- frei0r-plugins-data
|
|
||||||
- swh-plugins # LADSPA audio effects
|
- swh-plugins # LADSPA audio effects
|
||||||
- ladspa-sdk
|
- ladspa-sdk
|
||||||
- libavcodec-extra # broad/restricted codec support (import fixes)
|
- libavcodec-extra # broad/restricted codec support (import fixes)
|
||||||
@ -97,32 +96,57 @@
|
|||||||
retries: 3
|
retries: 3
|
||||||
delay: 15
|
delay: 15
|
||||||
|
|
||||||
# libavcodec-extra can prompt/conflict with the base libavcodec; allow apt
|
# Robustness: never let a single wrong package name abort the run. Query
|
||||||
# to resolve it. If that one package fails, retry without it so Kdenlive
|
# apt-cache for each desired package and install only the ones that exist,
|
||||||
# itself still installs (rescue path).
|
# warning about any that don't. `kdenlive` itself is asserted mandatory.
|
||||||
- name: "[apt] Install Kdenlive + effects + codecs (retry on dpkg lock)"
|
- name: "[apt] Determine which desired packages actually exist in apt"
|
||||||
|
ansible.builtin.shell: >-
|
||||||
|
for p in {{ kdenlive_packages | join(' ') }}; do
|
||||||
|
if apt-cache show "$p" >/dev/null 2>&1; then echo "$p"; fi
|
||||||
|
done
|
||||||
|
args:
|
||||||
|
executable: /bin/bash
|
||||||
|
register: pkg_probe
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: "[apt] Compute available vs missing"
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
pkgs_available: "{{ pkg_probe.stdout_lines }}"
|
||||||
|
pkgs_missing: "{{ kdenlive_packages | difference(pkg_probe.stdout_lines) }}"
|
||||||
|
|
||||||
|
- name: "[apt] Warn about any unavailable packages (non-fatal)"
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "Skipping packages not present in apt on this host: {{ pkgs_missing }}"
|
||||||
|
when: pkgs_missing | length > 0
|
||||||
|
|
||||||
|
- name: "[apt] Assert Kdenlive itself is available"
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that: "'kdenlive' in pkgs_available"
|
||||||
|
fail_msg: "The 'kdenlive' package is not available in apt — cannot proceed."
|
||||||
|
|
||||||
|
- name: "[apt] Install available Kdenlive package set (retry on dpkg lock)"
|
||||||
block:
|
block:
|
||||||
- name: "[apt] Install full Kdenlive package set"
|
- name: "[apt] Install packages"
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
name: "{{ kdenlive_packages }}"
|
name: "{{ pkgs_available }}"
|
||||||
state: present
|
state: present
|
||||||
register: kden_install
|
register: kden_install
|
||||||
until: kden_install is succeeded
|
until: kden_install is succeeded
|
||||||
retries: 3
|
retries: 3
|
||||||
delay: 15
|
delay: 15
|
||||||
rescue:
|
rescue:
|
||||||
- name: "[apt] FALLBACK — install Kdenlive core without libavcodec-extra"
|
- name: "[apt] FALLBACK — install Kdenlive core only (drop optional extras)"
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
name: "{{ kdenlive_packages | reject('equalto','libavcodec-extra') | list }}"
|
name: "{{ pkgs_available | reject('equalto','libavcodec-extra') | list }}"
|
||||||
state: present
|
state: present
|
||||||
register: kden_install_fallback
|
register: kden_install_fallback
|
||||||
until: kden_install_fallback is succeeded
|
until: kden_install_fallback is succeeded
|
||||||
retries: 3
|
retries: 3
|
||||||
delay: 15
|
delay: 15
|
||||||
|
|
||||||
- name: "[apt] Note codec-extra was skipped"
|
- name: "[apt] Note extras were reduced"
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "libavcodec-extra could not be installed (likely held/conflict); Kdenlive core installed. Add codecs manually if a clip won't import."
|
msg: "Full set failed (likely libavcodec-extra conflict); installed Kdenlive core. Add codecs manually if a clip won't import."
|
||||||
|
|
||||||
- name: "[verify] kdenlive binary present + version"
|
- name: "[verify] kdenlive binary present + version"
|
||||||
ansible.builtin.command: kdenlive --version
|
ansible.builtin.command: kdenlive --version
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user