Files
asmhatreandClaude Sonnet 5 3908331431 Add db-migrations-flyway-liquibase: Flyway vs Liquibase migrations, rollbacks and baselines on Spring Boot 4.1
Companion code for the Flyway vs Liquibase article: checksum validation, out-of-order
and repeatable migrations, baselining an existing schema, Flyway Community's undo/diff/deploy
stubs, concurrent-startup locking for both tools, Liquibase changeset identity and rollback
(auto-generated vs explicit), a verified Liquibase 5.0.3 filename-caching defect, the new
OSS license service, the FSL license change, and running both tools against one database.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Q6XdRjtsp4862EM44T7i9a
2026-09-15 07:08:57 +00:00

5.2 KiB

13. The FSL license change

← 12. The OSS license service · Index · Next: 14. Running both at once →

This is the one chapter in this module with no test behind it — it's not something you can compile and run, it's a licensing fact worth knowing before you mvn dependency:tree your way into it. It's still verified against primary sources, not paraphrased from a blog post, which is why every claim below is a direct link.

Liquibase Community 5.0, the version bundled in the Spring Boot 4.1 BOM this module depends on (5.0.3), is the first release shipped under the Functional Source License (FSL-1.1-ALv2), effective September 30, 2025 — not the Apache License 2.0 every earlier Liquibase release used, and not an OSI-approved open source license at all. FSL is "source-available": the Liquibase blog post announcing it says plainly that using, modifying and self-hosting Liquibase Community stays free, but a third party can't "take Liquibase Community and commercialize it in a way that competes with Liquibase" — offering it as a managed service, specifically — during a two-year exclusivity window per release. The same post confirms the FSL's built-in expiry: two years after each release, that release's license automatically reverts to Apache 2.0.

Liquibase 5.0.3 released under FSL-1.1-ALv2 2 years later reverts to Apache 2.0, automatically Every future release restarts its own two-year clock — the version you pull today is FSL for those two years even after a later release has already converted.

This is not a hypothetical concern for the projects that depend on Liquibase. The Apache Software Foundation's own Legal committee opened LEGAL-721 to evaluate whether ASF projects (Apache Fineract, specifically) can keep using FSL-licensed Liquibase 5 at all, given the ASF's policy against bundling non-Apache-compatible licenses. Separately, Keycloak opened issue #43391 covering the same problem from the CNCF's side: the CNCF's own source-available policy — quoted directly in that issue as "CNCF does not permit source available licenses, and an exception is unlikely to be granted" — makes continuing to depend on FSL-licensed Liquibase a real compliance question for a CNCF project. The options that thread lays out are exactly the ones you'd expect: fork the last Apache-2.0-licensed 4.x release and maintain it independently, apply Liquibase only at build time and run the generated DDL through custom tooling at runtime, or switch to a still-fully-open-source alternative — the thread names Flyway specifically, noting that Dependency-Track already made that switch for this reason. No final decision had been recorded in that discussion as of this writing.

What this means for a Spring Boot 4.1 project, concretely

Nothing changes for ordinary use: running spring-boot-starter-liquibase in your own application, including in production, is exactly what the FSL permits. The restriction is aimed at competitors reselling Liquibase itself as a hosted product, not at teams using it to manage their own schema. The two things worth actually tracking are whether your organization's own license-compliance process treats "source-available" the same as "open source" (many do not, by policy, regardless of what the license permits in practice), and whether a security or compliance audit of your dependency tree flags a non-OSI license where it previously saw Apache 2.0.

Going deeper