diff --git a/blender/init.sls b/blender/init.sls index 19c28b4..3111c58 100644 --- a/blender/init.sls +++ b/blender/init.sls @@ -1,6 +1,6 @@ {% from "blender/map.jinja" import blender with context %} -# 1. Download and extract directly from GitHub Releases +# 1. Download and extract directly from download.blender.org blender_extract_tarball: archive.extracted: - name: {{ blender.archive_dir }} @@ -9,6 +9,9 @@ blender_extract_tarball: - enforce_ownership_on: {{ blender.archive_dir }} - options: '--strip-components=1' - if_missing: {{ blender.archive_dir }}/blender + # Pass a modern browser User-Agent to bypass CDN bot filters + - http_headers: + User-Agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' # 2. Maintain generic symlink pointing to active version blender_opt_symlink: diff --git a/blender/map.jinja b/blender/map.jinja index 4dd8481..7678796 100644 --- a/blender/map.jinja +++ b/blender/map.jinja @@ -1,22 +1,26 @@ {% set default_version = '4.2.0' %} +{# Extract major.minor (e.g., '4.2.0' -> '4.2') #} +{% set version_parts = default_version.split('.') %} +{% set default_major = version_parts[0] ~ '.' ~ version_parts[1] %} + {% set defaults = { 'version': default_version, 'install_root': '/opt', 'bin_dir': '/usr/local/bin', 'desktop_dir': '/usr/share/applications', - 'download_url_base': 'https://github.com/blender/blender/releases/download' + 'download_url_base': 'https://download.blender.org/release' } %} {# Merge pillar data under the 'blender' key over defaults #} {% set blender = salt['pillar.get']('blender', default=defaults, merge=True) %} {# Derived variables #} -{% set tag_name = 'v' ~ blender.version %} +{% set major_version = blender.version.split('.')[0] ~ '.' ~ blender.version.split('.')[1] %} {% set archive_name = 'blender-' ~ blender.version ~ '-linux-x64.tar.xz' %} {% do blender.update({ 'archive_dir': blender.install_root ~ '/blender-' ~ blender.version ~ '-linux-x64', 'symlink_dir': blender.install_root ~ '/blender', - 'download_url': blender.download_url_base ~ '/' ~ tag_name ~ '/' ~ archive_name + 'download_url': blender.download_url_base ~ '/Blender' ~ major_version ~ '/' ~ archive_name }) %} \ No newline at end of file