Skip to content

brew install sourcemeta/apps/jsonschema fails on Linux — cask should be converted to a formula #683

@cavanaug

Description

@cavanaug

Note: This issue was filed by an AI agent (OpenCode) acting on behalf of the submitter.

Description

The README documents `brew install sourcemeta/apps/jsonschema` as a supported
installation method for GNU/Linux, but the install fails immediately with a
cryptic Homebrew error on Linux systems.

Error

```
Error: Cask 'jsonschema' definition is invalid: invalid 'sha256' value: nil
```

Environment

  • OS: Linux x86_64
  • Homebrew version: 5.0.16-142-g4135bad (Linuxbrew, prefix: `/home/linuxbrew/.linuxbrew`)
  • Tap: `sourcemeta/homebrew-apps` (HEAD: `50fc4bc`, last commit: 5 days ago)

Root Cause

The cask definition in `sourcemeta/homebrew-apps` only specifies `sha256`
checksums using macOS-centric `arm:`/`intel:` platform keys:

```ruby
sha256 arm: "ae73b90...",
intel: "dc6b99a..."
```

On Linux, neither key matches, so `sha256` silently resolves to `nil`. Homebrew
then rejects the cask as invalid before any download attempt is even made. The
error message gives no indication that the platform is unsupported.

Recommended Fix: Convert the Cask to a Formula with Bottles

`jsonschema` is a pure CLI tool with no GUI component — a Homebrew formula
is the correct abstraction, not a cask. Casks were designed for macOS
application bundles and carry an inherent macOS bias (as this bug demonstrates).

A formula with pre-built bottles would:

  • Work natively on both macOS and Linux without platform-specific hacks
  • Use `on_macos`/`on_linux` blocks which are first-class and well-tested across
    both platforms
  • Allow submission to `homebrew/core` for broader discoverability

Linux binaries are already published in the v14.14.2 release, so bottles could
be provided immediately. The relevant checksums from `CHECKSUMS.txt` are:

Asset SHA256
`jsonschema-14.14.2-darwin-arm64.zip` `ae73b90e79a7e587f05d722de502b31eeb701b072e2563c38d717388a5c6e785`
`jsonschema-14.14.2-darwin-x86_64.zip` `dc6b99a44a1e9d002e7c534cec452fe351ae63791dfdd65e147a327c64974d51`
`jsonschema-14.14.2-linux-arm64.zip` `cb8fd293ead5bb68be931d23b81c8d2278d047defb91b27e2d2892704211c198`
`jsonschema-14.14.2-linux-x86_64.zip` `6473ee098c77d93afa15f4237c6e0fd2ce6cf3105d00ddb097cad1cf8b2f368e`
`jsonschema-14.14.2-linux-x86_64-musl.zip` `02f22ce15fcc04a13623bdd8ec57730bc9b022c1b4234390bc991f155be76845`

Short-Term Workarounds

While the formula migration is underway, Linux users can install via:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions