Newer
Older
---
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
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
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".
\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.
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.
% Fit into discussions about incentive/funding models
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.
\numberedsection{Scheduled Relicensing}\label{scheduled}
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
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
% 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.
\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
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}
\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.
% https://mariadb.com/resources/blog/releasing-bsl-1-1/
BUSL requires a licensor to specify a ``Change Date" and a ``Change License".
How long are the delay periods typically?
What are the eventual OSS "destination" licenses are?
The Linux Foundation noted (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}
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
This change applied to almost all of the company's software, including popular
software like Terraform, Vagrant, and Hashicorp Vault.
Akka (2022-09-07)
https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka
Change Date: TBD ( 3 years after 2.7.0 release )
Change License: Apache License, Version 2.0
% Timing of Sentry and Codecov BUSL releases?
Sentry (2019-11-06)
CodeCov (2023-08-02 following acquisition by Sentry)
% https://about.codecov.io/blog/codecov-is-now-open-source/
\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.
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
\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
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}.}
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.
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
\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}.}
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.
\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}
\end{itemize}
\numberedsection{Acknowledgements}\label{acknowledgements-sow}
TBD
\BLOCK{endblock}