diff --git a/yt_dlp/update.py b/yt_dlp/update.py index 073c80ae5..8b30b0dbc 100644 --- a/yt_dlp/update.py +++ b/yt_dlp/update.py @@ -58,11 +58,20 @@ def _get_variant_and_executable_path(): """@returns (variant, executable_path)""" if getattr(sys, 'frozen', False): path = sys.executable - # py2exe is unsupported but we should still correctly identify it for debugging purposes + + # py2exe: No longer officially supported, but still identify it to block updates if not hasattr(sys, '_MEIPASS'): return 'py2exe', path + + # staticx builds: sys.executable returns a /tmp/ path + # No longer officially supported, but still identify them to block updates + # Ref: https://staticx.readthedocs.io/en/latest/usage.html#run-time-information + if static_exe_path := os.getenv('STATICX_PROG_PATH'): + return 'linux_static_exe', static_exe_path + # We know it's a PyInstaller bundle, but is it "onedir" or "onefile"? suffix = 'dir' if sys._MEIPASS == os.path.dirname(path) else 'exe' + if sys.platform == 'darwin': # darwin_legacy_exe is no longer supported, but still identify it to block updates machine = '_legacy' if version_tuple(platform.mac_ver()[0]) < (10, 15) else '' @@ -81,10 +90,6 @@ def _get_variant_and_executable_path(): # See: https://github.com/yt-dlp/yt-dlp/issues/11813 elif machine[1:] == 'aarch64' and not is_64bits: machine = '_armv7l' - # sys.executable returns a /tmp/ path for staticx builds (linux_static) - # Ref: https://staticx.readthedocs.io/en/latest/usage.html#run-time-information - if static_exe_path := os.getenv('STATICX_PROG_PATH'): - path = static_exe_path return f'{system_platform}{machine}_{suffix}', path