Skip to content

Tracking: license compatibility issues and solutions #74370

@adamsilverstein

Description

@adamsilverstein

What problem does this address?

WordPress is licensed “GPLv2 or later" and we must ensure that all libraries used for client side media processing are used compatibly. Based on media experiments and reviewing the initial requirements, several potential incompatibilities arose that require further investigation.

External dependencies requiring review

Library: libultrahdr built into libvips image library
Issue: Google's libultrahdr for HDR (High Dynamic Range) image support libultrahdr is licensed under Apache 2.0

Library: libheif-js
Issue: LGPL-3.0 is incompatible with WordPress license. Cannot be bundled directly in WordPress core.

Potential solutions

  • Exclude the library (for example by creating a custom libvips build)
  • Don’t include the library at all, continue using server (for example for HEIC support)
  • Load the incompatible library from a feature plugin - by shipping the library in a separate feature plugin, we can choose a different license to avoid the incompatibility
  • Load the library from a CDN at runtime - by avoiding shipping/bundling the library with WordPress, we avoid the license incompatibility

Compatible libraries

Client side media can leverage several libraries that do use incompatible licenses. Those are included here for completeness:

  • wasm-vips: MIT license
  • @ffmpeg/ffmpeg: MIT
  • @ffmpeg/core: LGPL/GPL
  • @shopify/web-worker: MIT (although officially deprecated, this library is stable)
  • exifreader: MPL-2.0 (requires attribution)
  • blurhash: MIT

Metadata

Metadata

Assignees

No one assigned

    Labels

    [Feature] Client Side MediaMedia processing in the browser with WASM[Type] Tracking IssueTactical breakdown of efforts across the codebase and/or tied to Overview issues.

    Type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions