Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify and widen license exceptions #334

Closed
wants to merge 4 commits into from
Closed
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 26 additions & 7 deletions COPYING
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,42 @@ Source License, version 1.0, or at your option, any later version ("BOSL"). See
the file ./LICENSE-BOSL for the terms of the Bootstrap Open Source Licence,
version 1.0.

In this document,

- "Zcash" means the blockchain defined by the most recent agreement between
the Electric Coin Company and the Zcash Foundation according to section 6.2 (b)
of the Zcash Trademark Agreement.
- A "Zcash Chain Fork" means a blockchain that descends from the Zcash
blockchain and that activates a change to the consensus rules at a block
daira marked this conversation as resolved.
Show resolved Hide resolved
height that is or was within 3456 blocks of the current height of the Zcash
chain at the time of activation.
- A "Zcash Technology Testnet" means a blockchain designed for the purpose of
testing technology potentially of use to the Zcash blockchain and not for
the purpose of implementing any token of economic value, where this purpose
and lack of such economic value are clearly communicated to its users and to
the general public.

Only if this Original Work is included as part of the distribution of one of the
following (each, the "Project"):

- The Zcash projects published by the Electric Coin Company;
- The Zebra project published by the Zcash Foundation;
- A project that is designed to integrate with Zcash and provides additional
functionality or utility to the Zcash network and holders of the ZEC coin; or
- A blockchain that descends from the Zcash blockchain and that is forked
within 100 blocks of the current block height of the Zcash blockchain at the
time of the code fork;
- A project that implements Zcash;
- A project that implements a Zcash Chain Fork;
- A project that implements a Zcash Technology Testnet;
- A project that is designed to integrate with Zcash (whether or not it can

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How to define integrate with Zcash?

Can a Zcash forked chain application add a ZEC donation deposit and transaction explorer option while having only advanced features for the forked chain version? And still qualify, as the application that "provides additional functionality or utility to the Zcash network and holders of ZEC" by allowing a deposit address and other "limited" features for ZEC in the same application.

Copy link
Contributor Author

@daira daira May 23, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My intent was that if you add features for a chain fork then you should make a reasonable effort to provide them for the Zcash chain. That is the whole point of saying "integrate with Zcash" as opposed to "integrate with Zcash or a Zcash Chain Fork". Sometimes this might not be possible, if the features rely on particular consensus or peer-to-peer protocol differences. I'm not sure that the intent can be fully captured in legal wording; at some point you have to assume good faith.

Copy link
Contributor Author

@daira daira Mar 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this is only a clarification; it does not change what is allowed. The substantive changes to what is allowed are:

  • the change on line 28 to allow use on testnets;
  • the change to give Zcash Chain Forks the 3456 block leeway;
  • not limiting "a project that implements Zcash" to the Zcash projects by ECC and the Zebra project by ZF, instead defining "Zcash" based on the Zcash Trademark Agreement. This potentially allows other consensus-compatible implementations, including code forks of Zcashd and Zebra that follow the Zcash block chain.

The last of these is important because without it, it is not clear that a party other than ECC or ZF can code-fork Zcashd or Zebra at all unless they reimplement orchard.

also integrate with one or more Zcash Chain Forks), and that provides
additional functionality or utility to the Zcash network and holders of
the ZEC coin;

then License is granted to use the Original Work under the BOSL as modified by
the following clarification and special exception. This exception applies only
to the Original Work when linked or combined with the Project and not to the
Original Work when linked, combined, or included in or with any other software
or project or on a standalone basis.

For the avoidance of doubt, "a project that implements Zcash" includes, but is
not limited to, the Zcash projects published by the Electric Coin Company and
the Zebra project published by the Zcash Foundation.

Under the terms of the BOSL, linking or combining this Original Work with
the Project creates a Derivative Work based upon the Original Work and the
terms of the BOSL thus apply to both the Original Work and that Derivative
Expand Down