Files
brew/Library/Homebrew/sorbet/rbi/dsl/cask/cask.rbi
T
Mike McQuaid e678490656 Fix cask Linux installs without os stanza
- `Cask#to_hash_with_variations` skipped all Linux variations for
  casks declaring Linux support only inside `on_linux`/`on_system`
  blocks, e.g. `zen`, as the API JSON is generated on macOS where
  those blocks are invisible; the published JSON then fell back to
  macOS artifacts on Linux and installs failed with a misleading
  "This cask requires macOS." error. Track `on_linux`/`on_system`
  blocks and emit Linux variations for casks that have them.
- `sha256` raised for an architecture missing a checksum for the
  running OS, e.g. `unity-hub` on `arm64_linux`, so its variation
  was silently dropped and ARM64 Linux fell back to macOS data too.
  Raise only on the real system: under `SimulateSystem` simulation
  `sha256` is now nil so variations for missing architectures carry
  their `on_linux` `depends_on arch:` and artifacts and Linux users
  get the correct unsupported-architecture error instead.
- `depends_on macos:` inside an `on_arm`/`on_intel` block did not
  mark a cask macOS-only, but arch blocks are evaluated on every OS
  so the dependency applies there too. Casks like `qlc+` that only
  declare macOS inside arch blocks claimed to support Linux while
  carrying a macOS requirement. Only OS blocks now scope a
  dependency to one OS; the checks for combining macOS `depends_on`
  forms still treat every `on_system` block alike.
- `Readall.valid_casks?` skipped casks whose files textually matched
  `depends_on macos:` anywhere, including inside `on_macos` blocks,
  so cross-OS casks like `unity-hub` were never validated for Linux.
  Rely on `supports_linux?` instead and let `depends_on arch:` excuse
  architectures a cask deliberately omits Linux checksums for.
- Add `appimagedir` to the test cask config so `app_image` artifacts
  can be serialised in tests.

Fixes https://github.com/Homebrew/brew/issues/23427.
2026-08-04 19:28:30 +01:00

252 lines
9.1 KiB
Ruby
Generated

# typed: true
# DO NOT EDIT MANUALLY
# This is an autogenerated file for dynamic methods in `Cask::Cask`.
# Please instead update this file by running `bin/tapioca dsl Cask::Cask`.
class Cask::Cask
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def app(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def app_image(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def appdir(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def arch(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def artifact(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def artifacts(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def audio_unit_plugin(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def auto_updates(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T::Boolean) }
def autobump?(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def bash_completion(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def binary(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def caveats(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def colorpicker(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def command_wrapper(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def conflicts_with(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def container(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def depends_on(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T::Boolean) }
def depends_on_set_in_block?(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def deprecate!(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def deprecate_args(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T::Boolean) }
def deprecated?(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def deprecation_date(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def deprecation_reason(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def deprecation_replacement_cask(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def deprecation_replacement_formula(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def desc(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def dictionary(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def disable!(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def disable_args(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def disable_date(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def disable_reason(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def disable_replacement_cask(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def disable_replacement_formula(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T::Boolean) }
def disabled?(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def fish_completion(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def font(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def generate_completions_from_executable(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def generated_script(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def homepage(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def homepage_browsed(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def input_method(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def installer(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def internet_plugin(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def keyboard_layout(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def livecheck(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T::Boolean) }
def livecheck_defined?(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def manpage(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def mdimporter(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def name(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def no_autobump!(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def no_autobump_message(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T::Boolean) }
def on_linux_blocks_exist?(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T::Boolean) }
def on_os_blocks_exist?(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.nilable(MacOSVersion)) }
def on_system_block_min_os(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T::Boolean) }
def on_system_blocks_exist?(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def os(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def pkg(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def postflight(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def postflight_steps(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def preflight(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def preflight_steps(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def prefpane(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def qlplugin(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def rename(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def screen_saver(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def service(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def sha256(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def stage_only(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def staged_path(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def suite(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def uninstall(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def uninstall_postflight(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def uninstall_postflight_steps(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def uninstall_preflight(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def uninstall_preflight_steps(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.nilable(::Cask::URL)) }
def url(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def version(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def vst3_plugin(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def vst_plugin(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def zap(*args, &block); end
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
def zsh_completion(*args, &block); end
end