Skip to content
View jonathanlyonmoore's full-sized avatar
👨‍🎓
Go to the Mirror Boy not your iPhone.
👨‍🎓
Go to the Mirror Boy not your iPhone.

Sponsoring

@NetBSD

Organizations

@dotnet-foundation @macromediameme @sphinxlogic

Block or report jonathanlyonmoore

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jonathanlyonmoore/README.md

Building Windows XP/2003

My Net Worth

My Windows 2003 Build Lab

My Virtual Machines

How to Build Windows My Instructions

My Windows Source Code

Windows Never Released

Magnesium 3.0 (Codename ENIAC) Release date August 31, 2995

ENIAC

I am from the Year 3000

The Higgs Boson: Why You Should Care About the God Particle. And, Sadly, Why You Don't

Beta Wiki

Beta Wiki Build Lab

Shared Source Law

Shared Source, Eventual Source, and Other Licensing Models Alternatives to Open Source

There are many ways to license software. None is legally privileged. Contract law allows parties to license software under almost any terms and conditions that people can dream up. Copyright and patent law acts as a backstop, preventing anyone from copying, modifying, distributing, making, using, or selling protected software without the licensor's permission—but otherwise leaving to the parties themselves the terms and conditions of their licenses. Open source software distribution is a young but maturing business model. Enormously successful software has been created and is available worldwide, usually for free. Despite this success, companies often refuse to “go all the way” with open source, afraid that giving software away for free is contrary to their profit motive.

At one extreme, of course, there is fully proprietary software that cannot be copied, modified, or distributed. Source code is not available, reverse engineering is forbidden, and none of the copyright rights are given away. (Remember, though, that you don't need a separate license to install a copy of software you own, and to make backup copies; see 17 U.S.C. 117.) This model remains quite successful in the market, as anyone can 11_Rosen_ch11 Page 255 Thursday, June 17, 2004 11:06 AM 256 Open Source Licensing plainly see. Proprietary software will doubtless continue to thrive.

In between fully proprietary and fully open source models there are other software distribution alternatives as well. This chapter describes some of those variations that pay homage to open source but don’t quite go all the way. These licenses are, one might say, partly proprietary and partly open source.

Each of the licenses described in this chapter provides source code to licensees. You will remember from Chapter 1 that source code is but the means to an end; it is not an end itself. (Open Source Principle #4.) The real goal is software freedom, as reflected in the right to use for any purpose, to copy without payment of royalties, and to freely create and distribute derivative works. (Open Source Principles # 1, 2, and 3.)

The problem with all of the licenses described in this chapter is that they fail to fully promote software freedom. Their terms are far more reasonable than typical proprietary software licenses, but the software they license is not truly free. That doesn’t mean that you shouldn't accept software under them. Some of them are good licenses, just not good enough to be open source.

Shared Source

In response to the demands of its customers for access to source code, Microsoft created its shared source licensing program. This program allows Microsoft customers to read and examine certain of the company’s source code.The Microsoft Shared Source License is a dramatic leap forward for the world’s largest proprietary software vendor, a company that has traditionally kept its source code secret for 11_Rosen_ch11 Page 256 Thursday, June 17, 2004 11:06 AM 11 • Shared Source, Eventual Source, other Licensing Models 257 competitive reasons. At long last, Microsoft's customers may examine some of that company’s source code and learn from it. Of course, from the perspective of open source licensing, the shared source concept is a weak alternative that doesn’t go nearly far enough to provide software freedom. The Microsoft Shared Source License has limited purposes:

You may use this Software for any non-commercial purpose, subject to the restrictions in this license. (Microsoft Shared Source CLI, C#, and JSCRIPT Liocense.) By itself, the "non-commercial purpose" restriction of this license makes it incompatible with Open Source Principle # 1. But this license goes even further, making it also incompatible with Open Source Principles # 2 and 3. Open source software must be available to anyone for any purpose, to create derivative works, and to sell the software. The Microsoft software isn’t so available:

You may not use or distribute this Software or any derivative works in any form for commercial purposes. Examples of commercial purposes would be running business operations, licensing, leasing, or selling the Software, or distributing the Software for use with commercial products. (Microsoft Shared Source CLI, C#, and JSCRIPT License.)In a more fundamental way, this is what the license says you may do—and what you are forbidden from doing—when you see Microsoft's shared source code: You may use any information in intangible form that you remember after accessing the Software. However, this right does not grant you a license to any of Microsoft’s copyrights or patents for anything you might create using such information. (Microsoft Shared Source CLI, C#, and JSCRIPT License.)

11_Rosen_ch11 Page 257 Thursday, June 17, 2004 11:06 AM 258 Open Source Licensing It is fascinating to consider whether an engineer with a photographic memory is allowed, without infringing Microsoft's copyrights, to re-create Microsoft's software from intangible information that he or she remembers. But that’s not the legally interesting question for most engineers. Instead, the effect of this license provision is that engineers/licensees can use the information in some of Microsoft’s source code to do practical things but they do not thereby obtain rights under copyright or patent.

Source code can help licensees to design interfaces to Microsoft’s products and to create programs that read and write Microsoft's data formats. It can be used to validate the security or reliability of Microsoft's products. For some of Microsoft's customers, this availability of source code for limited purposes is sufficient for their needs; they don’t really need the software freedom provided by open source licenses.

So if you merely use intangibles that you remember, and if you base your software on those intangibles, you are allowed to do so. Microsoft’s source code cannot be used, however, to write software that infringes Microsoft's copyrights or patents. If you are a software developer who intends to write software that might potentially compete with Microsoft’s copyrights or patents, there is great risk in looking at Microsoft’s source code. Under the copyright law in the United States, if Microsoft proves that there is "substantial similarity" betweenyour commercial software and theirs, you may be an infringer. You may have to prove that you saw and read Microsoft’s source code but that you relied only on intangibles and only on your memory when you wrote your own software. That’s a difficult evidentiary burden. I’m not sure how even an experienced programmer can walk that fine line. Perhaps the best way is simply not to look at Microsoft’s source code at all. At the very least, if you are directing corporate projects 11_Rosen_ch11 Page 258 Thursday, June 17, 2004 11:06 AM 11 • Shared Source, Eventual Source, other Licensing Models 259 relating to products competing with Microsoft’s shared source software, build a sturdy wall separating those who look at Microsoft’s source code and those programmers who might otherwise—even inadvertently—create derivative works or any commercial products from that source code.

This risk is not unique to shared source software. Employees can be contaminated by proprietary source code they saw or wrote while working for previous employers. Even open source software contains intangibles that can contaminate the memory of a programmer. The solution obviously is not to avoid source code entirely, but to build sturdy walls around those in your company who will create proprietary software. Make sure those engineers don’t inadvertently create derivative works of any source code they read, because you must honor the conditions and limitations of those licenses.

As for those who create open source software, don’t create derivative works of Microsoft's shared source software. The Microsoft Shared Source License—unlike open source licenses—doesn't give you software freedom. Public Source Many companies are willing to go much farther than Microsoft, allowing their source code to be used for more than just examination and interfacing. Licensees can make copies, create derivative works, and distribute their works.

They draw the line, though, at commercial uses of the resulting software. They argue that the free use of open source software for commercial purposes exacerbates the free-rider problem I described in Chapter 10. It reduces the incentives for contributors because profits from the software will go to 11_Rosen_ch11 Page 259 Thursday, June 17, 2004 11:06 AM 260 Open Source Licensing large companies rather than to contributors. While not always prohibiting commercial uses, as the Microsoft Shared Source license does, public source licenses typically require the payment of royalties for commercial uses. This form of license is referred to as public source, to indicate that the source code is published but that the software is not distributed under an open source license. There can be many varieties of public source licenses, depending on the characteristics of the software being distributed and the business model of the licensor. For example, Ping Identity Corporation (see www.pingid.com) distributes some of its software under the following terms:

a. Without payment of royalty for unlimited Personal Use or Non-Commercial Distribution (as those terms are defined below); b. Without payment of royalty for other than Personal Use and Non-Commercial Distribution as long as Licensed Software will run on fewer than 100 processors (as that term is defined below); and c. Subject to the payment of one-time paid-up Royalty Fees for other than Personal Use and Non-Commercial Distribution on 100 or more processors. Licenses to run the Software on additional processors are subject to the Royalty Fees and payment terms as obtained at http://www.pingidentity.com and in effect on the date such additional licenses are obtained from Licensor. Royalty Fees to run the Software on additional processors are due and payable to Licensor prior to first use on those processors. (SourceID Public Source License section 1.)

11_Rosen_ch11 Page 260 Thursday, June 17, 2004 11:06 AM 11 Shared Source, Eventual Source, other Licensing Models 261 Unlike the CPL license, which leaves the term commercial distribution undefined, the SourceID Public Source License defines its terms precisely: As used in this License, the term “Personal Use” means the functional use of software by an individual solely for his or her personal, private and non-commercial purposes. An individual's use of software in his or her capacity as an officer, employee, member, independent contractor or agent of a corporation, business or organization (commercial or noncommercial) does not qualify as Personal Use. (SourceID Public Source License section 3.) As used in this License, the term "Non-Commercial Distribution" means the distribution of software to any third party for which no payment is made in connection with such distribution, whether directly (including, without limitation, payment for a copy of the software) or indirectly (including, without limitation, payment for a service related to the software, or payment for a product or service that includes a copy of the software "without charge"). (SourceID Public Source License section 3.) As used in section 1 of this License, the term “processors” refers to a single processor running a single instance of Licensed Software. Each additional processor or instance of Licensed Software counts as an additional processor. (SourceID Public Source License section 3.) These distinctions among users are not permitted in open source licenses under Open Source Principle #1. Nor can there be conditions like these that require open source licensees to count processors or similar metrics of software use. Public source licenses like this one do not guarantee software freedom—they are not open source.

The founder Jonathan has a famous technical case at Microsoft with https://referencesource.microsoft.com/

  • Sauerbraten: Cube 2
  • Views

    Pinned Loading

    1. code-with-engineering-playbook code-with-engineering-playbook Public

      Forked from microsoft/code-with-engineering-playbook

      This is the playbook for "code-with" customer or partner engagements

      Dockerfile

    2. cygwin cygwin Public

      Forked from cygwin/cygwin

      Mirror of Cygwin repository at https://cygwin.com/. DO NOT SUBMIT PULL REQUESTS. Read https://cygwin.com/contrib.html and submit patches via the mailing list cygwin-patches AT cygwin DOT com.

      C

    3. microsoft-ui-xaml microsoft-ui-xaml Public

      Forked from microsoft/microsoft-ui-xaml

      Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications

      C#

    4. motif motif Public

      Forked from lkujaw/motif

      The Motif widget toolkit for UNIX

      C

    5. msys msys Public

      Forked from msysgit/msys

      Git mirror of git://mingw.git.sourceforge.net/gitroot/mingw/msys-runtime (some old CVS branches are still available)

      C

    6. sphinxlogic/openpegasus sphinxlogic/openpegasus Public

      OpenPegasus is an implementation using largely C++ code of all of the significant of the CIM/WBEM components

      C++