Adding xz-utils as a pre-req
This commit is contained in:
+14
-6
@@ -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
@@ -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 #}
|
||||||
|
|||||||
Reference in New Issue
Block a user