Adding xz-utils as a pre-req

This commit is contained in:
2026-08-10 06:09:38 -04:00
parent c65a86aedf
commit a5846fbd2f
2 changed files with 19 additions and 8 deletions
+14 -6
View File
@@ -1,6 +1,11 @@
{% from "blender/map.jinja" import blender with context %} {% from "blender/map.jinja" import blender with context %}
# 1. Download tarball via system curl to preserve User-Agent across redirects # 1. Install prerequisites self-contained inside the formula
blender_prereqs:
pkg.installed:
- pkgs: {{ blender.pkgs | json }}
# 2. Download tarball via system curl (preserves User-Agent across CDN redirects)
blender_download_tarball: blender_download_tarball:
cmd.run: cmd.run:
- name: | - name: |
@@ -10,8 +15,10 @@ blender_download_tarball:
- creates: /var/tmp/blender-{{ blender.version }}-linux-x64.tar.xz - creates: /var/tmp/blender-{{ blender.version }}-linux-x64.tar.xz
- unless: - unless:
- test -d {{ blender.archive_dir }} - test -d {{ blender.archive_dir }}
- require:
- pkg: blender_prereqs
# 2. Extract from local file system # 3. Extract tarball
blender_extract_tarball: blender_extract_tarball:
archive.extracted: archive.extracted:
- name: {{ blender.archive_dir }} - name: {{ blender.archive_dir }}
@@ -21,8 +28,9 @@ blender_extract_tarball:
- if_missing: {{ blender.archive_dir }}/blender - if_missing: {{ blender.archive_dir }}/blender
- require: - require:
- cmd: blender_download_tarball - cmd: blender_download_tarball
- pkg: blender_prereqs
# 3. Maintain generic symlink pointing to active version # 4. Maintain generic symlink pointing to active version
blender_opt_symlink: blender_opt_symlink:
file.symlink: file.symlink:
- name: {{ blender.symlink_dir }} - name: {{ blender.symlink_dir }}
@@ -31,7 +39,7 @@ blender_opt_symlink:
- require: - require:
- archive: blender_extract_tarball - archive: blender_extract_tarball
# 4. Create CLI launcher symlink # 5. Create CLI launcher symlink
blender_bin_symlink: blender_bin_symlink:
file.symlink: file.symlink:
- name: {{ blender.bin_dir }}/blender - name: {{ blender.bin_dir }}/blender
@@ -40,7 +48,7 @@ blender_bin_symlink:
- require: - require:
- file: blender_opt_symlink - file: blender_opt_symlink
# 5. Deploy desktop menu shortcut # 6. Deploy desktop menu shortcut
blender_desktop_entry: blender_desktop_entry:
file.managed: file.managed:
- name: {{ blender.desktop_dir }}/blender.desktop - name: {{ blender.desktop_dir }}/blender.desktop
@@ -56,7 +64,7 @@ blender_desktop_entry:
- require: - require:
- file: blender_opt_symlink - file: blender_opt_symlink
# 6. Clean up cached tarball after extraction # 7. Clean up downloaded archive
blender_cleanup_tarball: blender_cleanup_tarball:
file.absent: file.absent:
- name: /var/tmp/blender-{{ blender.version }}-linux-x64.tar.xz - name: /var/tmp/blender-{{ blender.version }}-linux-x64.tar.xz
+5 -2
View File
@@ -1,15 +1,18 @@
{% set default_version = '4.2.0' %} {% set default_version = '4.2.0' %}
{# Extract major.minor (e.g., '4.2.0' -> '4.2') #}
{% set version_parts = default_version.split('.') %} {% set version_parts = default_version.split('.') %}
{% set default_major = version_parts[0] ~ '.' ~ version_parts[1] %} {% set default_major = version_parts[0] ~ '.' ~ version_parts[1] %}
{# Map distro-specific package names using grains #}
{% set xz_pkg = 'xz-utils' if grains['os_family'] == 'Debian' else 'xz' %}
{% set defaults = { {% set defaults = {
'version': default_version, 'version': default_version,
'install_root': '/opt', 'install_root': '/opt',
'bin_dir': '/usr/local/bin', 'bin_dir': '/usr/local/bin',
'desktop_dir': '/usr/share/applications', 'desktop_dir': '/usr/share/applications',
'download_url_base': 'https://download.blender.org/release' 'download_url_base': 'https://download.blender.org/release',
'pkgs': [xz_pkg, 'tar', 'curl']
} %} } %}
{# Merge pillar data under the 'blender' key over defaults #} {# Merge pillar data under the 'blender' key over defaults #}