Skip to content
Snippets Groups Projects
dosp-survey.ltx 22.3 KiB
Newer Older
Karl Fogel's avatar
Karl Fogel committed
---
title: "Delayed Open Source Publication:\\\\A Survey of Past and Current Practices"
date: TBD Nov 2023
draft: true
---

%% extends "report.ltx"

\BLOCK{block preamble}
\BLOCK{endblock}

\BLOCK{block body}

\begin{center}
  Seth Schoen, Karl Fogel, James Vasile
\end{center}

\renewcommand*{\contentsname}{} % Get rid of "Contents" from top of TOC
\tableofcontents
\addtocontents{toc}{\protect\thispagestyle{empty}} % no page numbers

\setcounter{page}{1}

\newpage

\numberedsection{Executive Summary}\label{executive-summary}

\otsfirstterm{Delayed Open Source Publication} (DOSP) is the practice
of distributing or publicly deploying software under a proprietary
license at first, then subsequently and in a planned fashion
publishing that software's source code under an open source
Karl Fogel's avatar
Karl Fogel committed
license.\footnote{Note that this definition deliberately does not
  include \foreignphrase{ad hoc} or improvisatory open source releases
  of formerly proprietary code.  For example, the 1998 release of the
  Netscape Navigator source code, which through further development
  eventually became Mozilla Firefox, is \emph{not} an example of DOSP.
  This report is examines the history and effects of DOSP practiced as
  a conscious strategy; the effect of unplanned and unpredicted open
  source publication is also an interesting topic, but a separate
  one.}

Software producers have practiced DOSP throughout the history of free
Karl Fogel's avatar
Karl Fogel committed
and open source software.\footnote{We use the terms ``free software''
  and ``open source software'' synonymously throughout this report.}
However, surveying this phenomenon at a high level, from its
beginnings through today, shows some clear trends:

\emph{TBD: Everything below is tentative, draft, still a
  work-in-progress, etc.  Feel free to read and comment, but please do
  not consider anything from this point on to reflect the settled
  opinions of the authors nor of any organizations.}

\begin{itemize}

  \item The rise of the Business Source License (BUSL).

    Use of BUSL is really taking off.

    Deserves its own section --- see Section \ref{busl}.

  \item  Delayed unconditional release.

    Planned OSS releases with just a pre-defined time delay.

  \item Delayed event-driven regular release.

    OSS publication happens regularly, but is driven each time by some
    regular event (e.g., the publication of the latest proprietary
    version, which prompts the previous version to now be open
    sourced).

  \item Delayed conditional release.

    "We'll publish this as open source as soon as we get funding" or
    "as soon as we find the right non-profit home for it", etc.
    Probably includes bounty mechanisms, but only if these were
    intended --- that is, not ``buy-outs".
Karl Fogel's avatar
Karl Fogel committed

\end{itemize}

There are also post-hoc or unscheduled releases, where the authors
didn't originally plan to release the software as open source but
eventually decide to do so.  These aren't technically in scope, but we
should give some examples somewhere --- maybe in a footnote or
appendix --- just to make it clear that it's something that happens.

Seth Schoen's avatar
Seth Schoen committed
\numberedsection{Motivations}\label{motivations}
Seth Schoen's avatar
Seth Schoen committed
DOSP is usually described as protecting commercial interests of a software
developer by maintaining a window of time during which some users might be
incentivized to pay for licenses that they might not need if the software
were released as open source.
Seth Schoen's avatar
Seth Schoen committed
% Fit into discussions about incentive/funding models
Seth Schoen's avatar
Seth Schoen committed
We've also seen one-time delays for new projects whose developers state
a concrete intention to convert those projects to an open source license.
They may have non-economic reasons for those delays, such as shame about
poor code quality, concern about security issues that may be apparent in
unaudited source code, a need to procure permissions from other copyright
holders, a desire to establish a community or governance structure, or
a plan to incorporate a legal entity.
Seth Schoen's avatar
Seth Schoen committed
\numberedsection{Scheduled Relicensing}\label{scheduled}
Seth Schoen's avatar
Seth Schoen committed
\subsection{Early History}

For many years, Aladdin GhostScript implemented a DOSP policy whereby
new versions were published under a proprietary license, and then regularly
relicensed under the GNU GPL with a delay of one year.  (It might be
clearer to say that year-old versions were regularly republished under
the GPL.)

GhostScript author L. Peter Deutsch described this practice as providing
commercial exclusivity that would help fund continued development of the
project.

Eventually, GhostScript adopted a simultaneous dual-licensing approach
in which all releases were available under GPL and redistributors could
choose to pay for a proprietary license exempting them from GPL
obligations.

% TODO This is about Artifex rather than Aladdin - the change happened
%      after the product was transferred to a new company!
Attorney and author Lawrence Rosen, who discussed GhostScript's model in
his book on open source licensing, told us that Artifex eventually
concluded that the GPL was unpalatable enough to commercial embedded
developers --- the entities that were typically already paying for
proprietary licenses or that could be induced to pay for violations of
GhostScript's copyright --- that the delay in making GhostScript available
under the GPL did not significantly change these companies' incentives to pay
for licenses.
% Sorry for the super-long sentence. I'm sure we'll break that up somehow.

% Rosen also says that sendmail may have had a dual license in the same
Seth Schoen's avatar
Seth Schoen committed
% era or even before Ghostscript.  I found references to sendmail having
% a "traditional" dual license but so far have not found references to a
% scheduled relicensing practice.
% TrollTech story is complicated...
% https://tinf2.vub.ac.be/~dvermeir/manual/KDE20Development-html/ch19lev1sec4.html
% and more

Seth Schoen's avatar
Seth Schoen committed
\subsection{Bounty and Sponsorship Delays}\label{bounty}

Another model is making individual software features or enhancements
available to sponsors first, with a fixed time delay before making
them available to the general public. An example of this is the North
Seth Schoen's avatar
Seth Schoen committed
Road SLYR GIS software\footnote{See \otsurl{https://north-road.com/slyr/}.},
which has a published feature roadmap and releases (and licenses) its
implementation of each feature to sponsors first:

\begin{quote}
While we fully intend to make the full SLYR plugin open source and freely publish the style/LYR/MXD conversion tools, we also require financial backing in order to support the significant time required to completely reverse engineer these file formats and develop quality tools supporting their use outside of the ESRI software ecosystem. Accordingly, the specifications and file parsing library will initially be closed source and available to SLYR license holders only. Exactly six months after we hit the pledged sponsorship levels for each stage of the project (check the progress below for each stage), we will open-source that component of the code and update the community version of the plugin.
\end{quote}

Seth Schoen's avatar
Seth Schoen committed
\subsection{The Business Source License (BUSL)}\label{busl}
The Business Source License (BUSL; sometimes ``BSL"\footnote{Most adopters
of this license refer to it as ``BSL", but
this acronym was previously used for the Boost Software License. The
SPDX license identifier for the Business Source License is ``BUSL".})
was originally written in 2016 by MariaDB for its MaxScale project.
The current version of BUSL, 1.1, was released in 2017 and first
used for MaxScale 2.1.0.\footnote{See
\otsurl{https://mariadb.com/resources/blog/releasing-bsl-1-1/}.}

BUSL requires a licensor to specify a ``Change Date" and a ``Change License".
MariaDB's Change Date for MaxScale is four years after the release of a
specific version, and its Change License is GPLv2.
% example: https://github.com/mariadb-corporation/MaxScale/blob/23.08/LICENSE2308.TXT

Seth Schoen's avatar
Seth Schoen committed
The Linux Foundation noted (\otsurl{https://www.linuxfoundation.org/blog/how-open-source-foundations-protect-the-licensing-integrity-of-open-source-projects})
that several prominent projects switched away from open-source licenses
from 2018 to 2023. Not all of these adopted DOSP licenses, but those that did
so adopted BUSL.
These included CockroachDB (2019-06-04), Couchbase (2021-03-26), Terraform
(2023-08-10), and ArangoDB (2023-10-11). The most prominent of these BUSL
adopters was HashiCorp, which wrote
\begin{quote}
BSL 1.1 is a source-available license that allows copying, modification, redistribution, non-commercial use, and commercial use under specific conditions. With this change we are following a path similar to other companies in recent years. These companies include Couchbase, Cockroach Labs, Sentry, and MariaDB, which developed this license in 2013. Companies including Confluent, MongoDB, Elastic, Redis Labs, and others have also adopted alternative licenses that include restrictions on commercial usage. In all these cases, the license enables the commercial sponsor to have more control around commercialization.
\end{quote}
This change applied to almost all of the company's software, including popular
software like Terraform, Vagrant, and Hashicorp Vault.

Change Date: release +4 years
Change License: MPL 2.0

Akka (2022-09-07)
Change Date: release +3 years
Change License: Apache License, Version 2.0
\otsurl{https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka}
ArangoDB
Change Date: release +4 years
Change License: Apache License, Version 2.0
\otsurl{https://arangodb.com/2023/10/evolving-arangodbs-licensing-model-for-a-sustainable-future/}
CockroachDB
Change Date: release +3 years
Change License: Apache License, Version 2.0
Seth Schoen's avatar
Seth Schoen committed
\otsurl{https://www.cockroachlabs.com/docs/stable/licensing-faqs\#bsl}

CouchBase
Change Date: release +4 years
Change License: Apache License, Version 2.0
\otsurl{https://www.couchbase.com/blog/couchbase-adopts-bsl-license/}
Change Date: release +3 years
Change License: Apache License, Version 2.0

CodeCov (2023-08-02 following acquisition by Sentry)
Change Date: release +3 years
Change License: Apache License, Version 2.0
\otsurl{https://about.codecov.io/blog/codecov-is-now-open-source/}
ZeroTier (2019-08-23)
Change Date: the beginning of the fifth calendar year after 2020 license update
% this may be an oversight by the developers
Change License: Apache License, Version 2.0
% https://github.com/zerotier/ZeroTierOne/commit/52a166a71f4e0124c7b22123884911338aa0d698

Materialize (2020-02-07)\footnote{Not to be confused with the Materialize CSS project, which is released under the MIT license.}
Change Date: +4 years
Change License: Apache License, Version 2.0
Differently from other BUSL-licensed projects, Materialize uses a bot to update the Change Date
every day (not just on the occasion of release events), so that it always reflects a date exactly
four years after the present date.
\subsection{Differences From Other Licensing Strategies}\label{differences}

MariaDB (https://mariadb.com/bsl-faq-mariadb/):

\begin{quote}
Q: How is the BSL different from Open Core?

A: Open core offers some code under Open Source terms, but non-core code is not under Open Source terms, is not available in source form, cannot be modified and compiled, cannot be contributed to, and will never be Open Source. By using Open Core software, like with closed source code, you are locked to one vendor. With BSL, as compared to Open Core, the source code is available from the start, can be modified and compiled, contributions are encouraged, the product will become fully Open Source after a period of time and remains free for non-production use. The importance of the eventual Open Source is that users are free from vendor lock-in. If the vendor decides to stop contributing to the code, users have open access and can modify, update and extend as needed.

Q: How is the BSL different from dual GPL/commercial licensing?

A: When using dual licensing with GPL, companies must pay for a commercial license to use the software with their closed source code. With BSL, the companies are only paying for the software if they want to make production use of the software. From a vendor perspective, GPL dual licensing only works for infrastructure products that other companies want to deeply embed in their product. BSL works for any kind of software product.
\end{quote}

This is echoed in statements by several BUSL adopters that they sought a way to make downstream commercial users who did not redistribute derived works pay for the use of their software (typically in cloud environments), or wanted to prevent downstream commercial users from directly competing with the initial developer's own service offerings.
\subsection{Consequences/Impacts?}

% Some people forked the last open source version of Terraform and are
% actively maintaining it as OpenTofu. I don't know that people have done
% this for other BUSL-relicensed projects.
% yes for Vagrant -> Viagrunt, although OpenTofu got vastly more support
% and activity

% It's potentially much harder for projects under non-open-source terms to
% accept outside contributions, both because people may be less motivated
% to make them and because the licensing status is more confusing. However
% Hashicorp for example has a CLA, with a bot that checks whether authors
% of pull requests have signed it. Hashicorp does continue to receive some
% outside contributions on BUSL-licensed projects.
%
% e.g. https://cla.hashicorp.com/hashicorp/terraform
% TODO: Did they have this requirement before relicensing? Some open source
%       projects do have comparable CLAs for outside contributions to
%       become part of their official upstream code bases.

Seth Schoen's avatar
Seth Schoen committed
\subsection{Other}
The Child Mind Institute uses its Delayed Open Source Attribution License
(DOSA), which has a three-year period in which only noncommercial uses
are permitted, for its MindLogger software.
% https://github.com/ChildMindInstitute

The Poké Classic Framework
has a conditional license which limits uses of the code but which
converts to AGPL if the original developer ceases to operate a service
based on the code.\footnote{See
\otsurl{https://github.com/mm201/pkmn-classic-framework}.}

Sentry has released a draft of its ``Functional Source License" (FSL),
which it hopes to use for its own currently BUSL-licensed software, at
\otsurl{https://fsl.software/}.\footnote{Disclosure:
% TODO: What is the right phrasing for the disclosure here?
}
The FSL prohibits, during a period of one year, uses of covered software
to provide services that ``compete" with the original developer's commercial
service offerings.  Following this period, the software is licensed under
BSD or Apache terms, without the competition restriction.

Several cloud-oriented software projects that switched away from open
source licensing in the past few years also adopted license terms with
non-competition clauses. However, these generally were not time-limited.
% TODO: double-check whether any of them were time-limited

% I think it's interesting that the AGPL doesn't seem to appeal to most
% companies that are pursuing this kind of thing. I don't know if any of
% them have commented on their views about it.

\numberedsection{Enforceability}\label{enforce}

Delayed open source licensing is less explored than immediate open source
licensing, and some observers have expressed concerns about its legal
enforceability. For example, if an author died before the announced license
transition date, would the author's heirs be required to honor the license
transition, or could they potentially cancel or withdraw it? What if a
company were acquired by a new owner which wanted to retroactively change
its licensing structure?

% XXX We obviously don't know yet because ...

The Creative Commons research on springing licenses expressed some concerns
about their enforceability. The Creative Commons organization itself
previously implemented a delayed licensing mechanism called Founders
Copyright; unlike other Creative Commons licenses, the Founders Copyright
involves a copyright assignment to the Creative Commons nonprofit
organization itself. The organization then commits to grant the original
author an exclusive license to the for the announced delay period, and
to license the work to the public afterward. It appears that this copyright
assignment mechanism was intended to minimize uncertainty about the
extent to which authors could bind themselves (or their successors) to
future licensing intentions, although it required direct involvement by
the nonprofit as copyright holder and licensor, a role it had otherwise
not seen fit to take on.

Kyle E. Mitchell distinguishes ``a present grant of a license" (with a
specified future start date) from ``a contractual promise to grant the
license later" and advocates using the former, although he does not
imply that the latter is invalid or unenforceable. Mitchell's concerns
focus on clarity and persistent documentation of specific license
grants to specific code and project versions.

\numberedsection{``Grace Period" Reciprocal Licensing}\label{grace}

One licensing practice often described as related to DOSP is implemented
in the Bootstrap Open Source License (BOSL), previously called the
Transitive Grace Period Public License (TGPPL).  This license was mainly
Seth Schoen's avatar
Seth Schoen committed
devised by Zooko Wilcox-O'Hearn.\footnote{It implements a strategy previously
proposed by Ted Ts'o, at \otsurl{https://thunk.org/tytso/TPL.html}.}
% https://lists.opensource.org/pipermail/license-discuss_lists.opensource.org/2013-July/018428.html
% TGPPL was submitted for OSI review in 2009 (!) but was never approved.
% There are some discussions that seem to imply that people were reluctant
% to approve it from nascent concerns over license proliferation and some
% prudential concerns about whether this was the right approach to
% relicensing.

It is worth pointing out that the BOSL has no connection to the Bootstrap
web framework project, which is under the MIT license. Both projects
independently use the term ``bootstrap" to refer to the concept of
bootstrapping.

Instead of making an initially proprietary license grant that later
transforms into an open-source license, the BOSL makes an initially
permissive (BSD-style) license grant that later transforms into a
reciprocal (GPL-style) license. This is intended to allow downstream
code reuse in proprietary software projects, but only for a limited
time, something Zooko characterized as a compromise between
permissive and reciprocal open source licensing models.\footnote{See,
for example, the presentation at
\otsurl{https://tahoe-lafs.org/\textasciitilde{}zooko/tgppl.pdf}.}
% TODO: Get rid of the {} that shows up in the link target

Since both the start and end-state licenses of the BOSL are themselves
open source, we do not regard the BOSL as a form of delayed open source
publication as defined by this report. Rather, it seems to be an
unconventional form of open source publication with time-varying open
source terms. While the BOSL has not been approved by the Open Source
Initiative, it appears to us to be compatible with the Open Source
Definition, and --- unlike BUSL, for instance --- is claimed by its
authors to be a form of open source licensing.

One way to view the distinction between delayed open-source licensing and
grace period reciprocal licensing is that the former aims to compromise
between proprietary and open source licensing, where the latter aims
to compromise between permissive and reciprocal licensing --- in both
cases by modifying the license terms after a delay.

Seth Schoen's avatar
Seth Schoen committed
\numberedsection{Other Terminology and Practices}\label{terminology}

We've encountered a number of other terms that can describe DOSP or
the licensing mechanisms used to implement it.

\begin{itemize}

   \item Eventual (open) source; scheduled licensing.

   Lawrence Rosen's book on open source licensing refers to ``eventual source"
   or ``eventually open source" software, giving the example of Aladdin
   GhostScript. He also calls this ``scheduled licensing".

   \item Springing licenses.

   A research report from Creative Commons refers to ``springing licenses"
   (licenses that grant additional permissions after a period of time, or
   when some other condition has been met). Creative Commons was mainly
   interested in the possibility of developing licenses that would grant
   additional permissions over time, after a period of greater exclusivity.

   \item Scheduled relicensing.

   Kyle E. Mitchell refers to ``scheduled relicensing".

\end{itemize}

One can also distinguish between a public pledge to relicense on a schedule
(as GhostScript did) and a license document whose text includes date or
other restrictions. In the former case, the delayed release is implemented
by human beings (actively making a new software release including new
license text); in the latter case, it is automatic.

We do not consider ``unplanned" open source releases to be examples of DOSP.
There are a number of high-profile cases of proprietary projects that were
retroactively relicensed as open source as a result of a one-off decision.
Where developers originally had no announced plan or intention to do this,
we think this is best considered a separate phenomenon, not a ``delayed"
release.

Many people also mentioned the custom among some video game developers of
releasing code (though usually not assets such as graphics and sound)
from proprietary video games that are no longer commercially important.
This is a relatively widespread practice, with Wikipedia identifying
dozens of instances.\footnote{Wikipedia lists these examples at
\otsurl{https://en.wikipedia.org/wiki/List\_of\_commercial\_video\_games\_with\_later\_released\_source\_code}.}

Seth Schoen's avatar
Seth Schoen committed
Some companies like id Software have made such releases for multiple video
game generations.
While many of these developers apparently had a general intention to make
their games open source, in whole or in part, at some point in the future,
there was usually no public commitment to do so on any particular
schedule or under any particular circumstances.  This practice is thus not
a core example of DOSP.

Karl Fogel's avatar
Karl Fogel committed
\numberedsection{Sources and References}\label{sources}

\begin{itemize}

\item \otscite{Creative Commons Final Report: On the Viability and
    Development of Springing Licenses}\\
  \otsurl{https://creativecommons.org/wp-content/uploads/2018/07/Springing-licenses-FINAL.pdf}

% https://writing.kemitchell.com/2023/10/24/Scheduled-Relicensing

  \item \otscite{Wikipedia: List of Commercial Video Games With Later Released Source Code}\\
	\otsurl{https://en.wikipedia.org/wiki/List\_of\_commercial\_video\_games\_with\_later\_released\_source\_code}

Karl Fogel's avatar
Karl Fogel committed
\end{itemize}

\numberedsection{Acknowledgements}\label{acknowledgements-sow}

TBD

\BLOCK{endblock}