國立台灣大學 資訊工程學系 薛智文 [email protected] chsueh/ 98 spring real-time...

77
國國國國國國 國國國國國國 薛薛薛 [email protected] http://www.csie.ntu.edu.tw/~chsueh / 98 Spring Real-Time System Development 國國國國國國 Software License

Upload: meghan-mcdonald

Post on 31-Dec-2015

240 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

國立台灣大學資訊工程學系

薛智文[email protected]

http://www.csie.ntu.edu.tw/~chsueh/98 Spring

Real-Time System Development即時系統開發

Software License

Page 2: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /1182

GNU GPL and LGPL

Page 3: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /1183

Outline

IntroductionCopying, Distribution, and ModificationLinking a Library of LGPLHow to Apply These Terms to Your New ProgramsHow to Apply These Terms to Your New LibrariesLinux and GPLReferences

Page 4: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /1184

GPL (I)

GPL (General Public License, 通用公共許可證 )

Guarantee your freedom to share and change free software.

The software is free for all its users.

To make sureHave the freedom of distribute copies of free software.

You receive source code or can get it if you want it.

You can change the software or use pieces of it in new free programs.

You know you can do these things.

Page 5: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /1185

GPL (II)

Protect your rights with two steps:copyright the software.offer you this license which gives you legal permission to copy, distribute and/or modify the software.

There is no warranty for this free software.This License applies to any program or other work.

It contains a notice placed by the copyright holder.It may be distributed under the terms of this General Public License.

Page 6: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /1186

Copying, Distribution, and Modification (I)

Coping and distribution of the Program's source code must meet all of these conditions:

keep intact all the notices that refer to this License and to the absence of any warranty.

give any other recipients of the Program a copy of this License along with the Program.

Page 7: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /1187

Copying, Distribution, and Modification (II)

Modification must meet all of these conditions:Must cause the modified files to carry notices stating such as the date of any change.

No charge to all third parties under the terms of this License.

Reads commands interactively when run the program, you must print or display an announcement includes:

an appropriate copyright notice

a notice that there is no warranty

users may redistribute the program under these conditions

telling the user how to view a copy of this License.

Page 8: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /1188

How to Apply These Terms to Your New Programs

one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Page 9: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /1189

LGPL (I)LGPL (Lesser General Public License, 較寬鬆公共許可證 )Applies to some specially designated software packages .

typically libraries of the Free Software Foundation (FSF) and other authors.

Protect your rights with two stepscopyright the library.offer you this license, which gives you legal permission to copy, distribute and/or modify the library.

Page 10: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11810

LGPL (II)

Restrictions:forbid distributors to deny you these rights.

ask you to surrender these rights.

These restrictions translate to certain responsibilities for you.

When you distribute copies of the library or modify it.

There is no warranty for the free library.

Page 11: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11811

Copying, Distribution, and Modification (I)

Coping and distribution of the Library's source code must meet all of these conditions:

keep intact all the notices that refer to this License and to the absence of any warranty.

distribute a copy of this License along with the Library.

Page 12: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11812

Copying, Distribution, and Modification (II)

Modification must meet all of these conditions:

The modified work must itself be a software library.

Must cause the modified files to carry notices stating.

No charge to all third parties under the terms of this License.

Page 13: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11813

Linking a Library of LGPLA "work that uses the Library“

A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it. such a work is not a derivative work of the Library.falls outside the scope of this License.

An executable links a "work that uses the Library" The executable is a derivative of the Library.It is therefore covered by this License.

Page 14: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11814

How to Apply These Terms to Your New Libraries

one line to give the library's name and an idea of what it does. Copyright (C) yyyy name of author

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Page 15: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11815

Linux and GPL

The Linux Kernel is Copyright (c) Linus B. Torvalds under the terms of the General Public License.

The most Linux software is GPL’ed.

Page 16: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11816

References

GNU General Public License http://www.gnu.org/copyleft/gpl.html

http://www.linux.org.tw/CLDP/doc/GPL.html

GNU Library General Public License http://www.gnu.org/copyleft/lgpl.html

http://www.linux.org.tw/CLDP/doc/LGPL.html

Page 17: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11817

The Open Source Definition From the first draft of this document as "The Debian Free Software Guidelines" -- Bruce Perens, June, 1997.Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:

Free RedistributionSource CodeDerived WorksIntegrity of The Author's Source CodeNo Discrimination Against Persons or GroupsNo Discrimination Against Fields of EndeavorDistribution of LicenseLicense Must Not Be Specific to a ProductThe License Must Not Restrict Other Software

Page 18: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11818

Free Redistribution

The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.Rationale: By constraining the license to require free redistribution, we eliminate the temptation to throw away many long-term gains in order to make a few short-term sales dollars. If we didn't do this, there would be lots of pressure for cooperators to defect.

Page 19: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11819

免費自由重複散布

當一套散布的軟件由若干不同來源的程式組成時,許可証不得限制任何一方銷售或讓予作為其組成部分之一的開放性原始碼程式。該許可証不得要求從是項銷售中索取使用費或其他費用。

理由:在許可証中作出免費自由重複散布的規定,就排除了為取得銷售軟件而得到的短期利益和少量金錢而願意放棄許多長久效益的誘惑。如果不作出這項規定,就可能有許多壓力迫使合作伙伴背棄承諾。

Page 20: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11820

Source CodeThe program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost–preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.

Rationale: We require access to un-obfuscated source code because you can't evolve programs without modifying them. Since our purpose is to make evolution easy, we require that modification be made easy.

Page 21: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11821

原程式碼 軟件應附有原程式碼,該軟件除以編輯後的形式散布外,還應允許以原程式碼的形式散布。如一項產品中的某些部分未附有原程式碼,則應有通行的途徑,通過網際網路免費下傳。原程式碼中必須具備編程員可用來修改程式的原始碼。不得使原程式碼變得晦澀難懂,亦不得具有使用預處理器或轉譯器處理後所得的中間形式。

理由:規定原程式碼必須不晦澀難懂,因為軟件不可能不經過修改而有所改進。為了便于軟件的改進,必須作出程式必須便于修改的規定。

Page 22: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11822

Derived Works

The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.Rationale: The mere ability to read source isn't enough to support independent peer review and rapid evolutionary selection. For rapid evolution to happen, people need to be able to experiment with and redistribute modifications.

Page 23: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11823

衍生軟件

許可証應允許修改軟件和衍生軟件,並允許修改後的軟件和衍生出的軟件以原軟件的同一條件散布。

理由:單能讀到原程式碼不足以支持個別同好對軟件的審評和快速地選取改進的軟件。為了加快改進軟件的速度,必須要能試驗和重複散布各項修改。

Page 24: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11824

Integrity of The Author's Source Code

The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.Rationale: Encouraging lots of improvement is a good thing, but users have a right to know who is responsible for the software they are using. Authors and maintainers have reciprocal right to know what they're being asked to support and protect their reputations.Accordingly, an open-source license must guarantee that source be readily available, but may require that it be distributed as pristine base sources plus patches. In this way, "unofficial" changes can be made available but readily distinguished from the base source.

Page 25: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11825

原程式碼的完整性 許可証可限制原程式碼以修改後的形式散布,除非為修改軟件的目的在最後編輯時原始碼連同修改程式一起散布。許可証必須明確規定允許散布根據修改後的原程式碼編制的軟件。許可証可要求衍生軟件使用不同的名稱或版本號碼 , 有別與原始軟件。

理由:鼓勵對軟件作出各種改進是一件好事,但使用者有權知道誰應對其使用的軟件負責。軟件的原作者和維護人員相互都有權知道要他們支持的軟件為何 , 以維護他們的信譽。 因此,開放性原始碼軟件的使用許可証必須保証軟件中已附有原始碼,但可以規定該原始碼需以最初的原始編碼和其後的修改程序散布。通過這種方式,使用者可取得對軟件的各種 " 非正式 " 的更改,並同時能分辨出有異于最初原始程式之處。

Page 26: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11826

No Discrimination Against Persons or Groups

The license must not discriminate against any person or group of persons.Rationale: In order to get the maximum benefit from the process, the maximum diversity of persons and groups should be equally eligible to contribute to open sources. Therefore we forbid any open-source license from locking anybody out of the process.Some countries, including the United States, have export restrictions for certain types of software. An OSD-conformant license may warn licensees of applicable restrictions and remind them that they are obliged to obey the law; however, it may not incorporate such restrictions itself.

Page 27: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11827

不得歧視任何人或團體

許可証不得歧視任何人或多人組成的團體。 理由:為了從這項過程中取得最大效益,社會各階層人士和團體均有同等資格對開放性原始碼軟件作出貢獻。因此,禁止任何開放性原始碼軟件的許可証將任何人排除在這項進程之外。

Page 28: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11828

No Discrimination Against Fields of Endeavor

The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.Rationale: The major intention of this clause is to prohibit license traps that prevent open source from being used commercially. We want commercial users to join our community, not feel excluded from it.

Page 29: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11829

不得歧視任何專業工作領域

許可証不得歧視任何人將程式用于任何具體專業領域。例如,許可証不得限制程式用于商業,亦不得限制用于遺傳基因的研究。

理由:本條的主要用意是禁止許可証中有任何使開放性原始碼無法在商業上使用的規定。我們要商界人士參與我們的工作,而不讓他們感到排斥在外。

Page 30: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11830

Distribution of License

The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.Rationale: This clause is intended to forbid closing up software by indirect means such as requiring a non-disclosure agreement.

Page 31: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11831

許可証的散布

與程式有關的任何權利必須適用于使用該程式的任何使用者,這些使用者無須為此種使用再取得其他許可証。

理由:本條的目的在于禁止通過非直接途徑,例如要求簽署 " 不公開 "協議等辦法,使軟件無法公開。

Page 32: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11832

License Must Not Be Specific to a Product

The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.Rationale: This clause forecloses yet another class of license traps.

Page 33: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11833

許可証不得具體針對一項軟件產品

與程式有關的任何權利不得由該程式是否為某一特定軟件的一部分來決定。如果從一套軟件中取用一組程式,并根據該程式的規定使用或散布這組程式,則得到這組程式的所有各方的權利與得到原軟件的使用者的權利相同。

理由:本條預先對其他各種許可証方面的陷阱作出規定。

Page 34: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11834

The License Must Not Restrict Other Software

The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.Rationale: Distributors of open-source software have the right to make their own choices about their own software.

Yes, the GPL is conformant with this requirement. Software linked with GPLed libraries only inherits the GPL if it forms a single work, not any software with which they are merely distributed.

Page 35: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11835

許可証的規定不得影響其他軟件 許可証不得對其他與此軟件一起散布的軟

件作出任何限制的規定。例如,許可証不得堅持要求所有根據同一介質散布的其他軟件都必須為開放性原始碼軟件。

理由:要使用或散布開放性原始碼軟件的人有權對其自己的軟件作出選擇。

Page 36: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11836

GPL FAQBasic questions about the GPL, the GNU Project, and the Free Software Foundation

General understanding of the GPL

Using the GPL for your programs

Distribution of programs released under the GPL

Using programs released under the GPL when writing other programs

Combining work with code released under the GPL

Questions about violations of the GPL

Page 37: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11837

Basic QuestionsWhat does "GPL" stand for?Does free software mean using the GPL?Why should I use the GNU GPL rather than other free software licenses?Does all GNU software use the GNU GPL as its license?Does using the GPL for a program make it GNU software?Can I use the GPL for something other than software?Why don't you use the GPL for manuals?Are there translations of the GPL into other languages?Why are some GNU libraries released under the ordinary GPL rather than the Lesser GPL?Who has the power to enforce the GPL?Why does the FSF require that contributors to FSF-copyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed program, should I do this, too? If so, how?Can I modify the GPL and make a modified license?

Page 38: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11838

What does "GPL" stand for?

"GPL" stands for "General Public License".

The most widespread such license is the GNU General Public License, or GNU GPL for short.

This can be further shortened to "GPL", when it is understood that the GNU GPL is the one intended.

Page 39: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11839

Does free software mean using the GPL?

Not at all--there are many other free software licenses. We have an incomplete list. Any license that provides the user certain specific freedoms is a free software license.

The freedom to run the program, for any purpose (freedom 0). The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this. The freedom to redistribute copies so you can help your neighbor (freedom 2). The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. (freedom 3). Access to the source code is a precondition for this.

Page 40: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11840

Why should I use the GNU GPL rather than other free software licenses?

Using the GNU GPL will require that all the released improved versions be free software.

This means you can avoid the risk of having to compete with a proprietary modified version of your own work.

However, in some special situations it can be better to use a more permissive license.

Page 41: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11841

Does all GNU software use the GNU GPL as its license?

Most GNU software packages use the GNU GPL, but there are a few GNU programs (and parts of programs) that use looser licenses, such as the Lesser GPL. When we do this, it is a matter of strategy.

LGPL

Page 42: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11842

Does using the GPL for a program make it GNU software?

Anyone can release a program under the GNU GPL but that does not make it a GNU package.Making the program a GNU software package means explicitly contributing to the GNU Project. This happens when the program's developers and the GNU Project agree to do it. If you are interested in contributing a program to the GNU Project, please write to <[email protected]>.

Page 43: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11843

Can I use the GPL for something other than software?

You can apply the GPL to any kind of work, as long as it is clear what constitutes the "source code" for the work

The GPL defines this as the preferred form of the work for making changes in it. However, for manuals and textbooks, or more generally any sort of work that is meant to teach a subject, we recommend using the GFDL rather than the GPL.

Software Licenses

Licenses For Documentation

Licenses For Works Besides Software and Documentation

Page 44: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11844

Why don't you use the GPL for manuals?

It is possible to use the GPL for a manual, but the GNU Free Documentation License (GFDL) is much better for manuals.

The GPL was designed for programs; it contains lots of complex clauses that are important for programs, but that are dead weight for a book or manual.

GFDL has clauses that help publishers of free manuals make a profit from them.

Page 45: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11845

Are there translations of the GPL into other languages?

That carries a risk so great we do not dare accept it. Referring people to unofficial translations. This means that we permit people to write translations of the GPL, but we don't approve them as legally valid and binding. Publishing translations valid for a single country only.

Page 46: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11846

Why are some GNU libraries released under the ordinary GPL rather than the Lesser

GPL?

Using the Lesser GPL for any particular library constitutes a retreat for free software.

Page 47: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11847

Who has the power to enforce the GPL?

Since the GPL is a copyright license, the copyright holders of the software are the ones who have the power to enforce the GPL. If you see a violation of the GPL, you should inform the developers of the GPL-covered software involved. They either are the copyright holders, or are connected with the copyright holders.

Page 48: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11848

Why does the FSF require that contributors to FSF-copyrighted programs assign copyright to the

FSF? If I hold copyright on a GPL'ed program, should I do this, too? If so, how?

Our lawyers have told us that to be in the best position to enforce the GPL in court against violators.

Of course, if all the contributors put their code in the public domain, there is no copyright with which to enforce the GPL.

So we encourage people to assign copyright on large code contributions, and only put small changes in the public domain.

Page 49: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11849

Can I modify the GPL and make a modified license?

You can use the GPL terms (possibly modified) in another license provided that you call your license by another name and do not include the GPL preamble,

and provided you modify the instructions-for-use at the end enough to make it clearly different in wording and not mention GNU (though the actual procedure you describe may be similar).

Page 50: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11850

General understanding of GPL (1) Why does the GPL permit users to publish their modified versions?Does the GPL require that source code of modified versions be posted to the public?Can I have a GPL-covered program and an unrelated non-free program on the same computer?If I know someone has a copy of a GPL-covered program, can I demand he give me a copy? What does this "written offer valid for any third party" mean? Does that mean everyone in the world can get the source to any GPL'ed program no matter what?The GPL says that modified versions, if released, must be "licensed ... to all third parties." Who are these third parties?Does the GPL allow me to sell copies of the program for money?Does the GPL allow me to charge a fee for downloading the program from my site?Does the GPL allow me to require that anyone who receives the software must pay me a fee and/or notify me?If I distribute GPL'd software for a fee, am I required to also make it available to the public without a charge?Does the GPL allow me to distribute a modified or beta version under a nondisclosure agreement?Does the GPL allow me to develop a modified version under a nondisclosure agreement?Why does the GPL require including a copy of the GPL with every copy of the program?What if the work is not much longer than the license itself?

Page 51: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11851

General understanding of GPL (2) Am I required to claim a copyright on my modifications to a GPL-covered program?If a program combines public-domain code with GPL-covered code, can I take the public-domain part and use it as public domain code?I want to get credit for my work. I want people to know what I wrote. Can I still get credit if I use the GPL?Can I omit the preamble of the GPL, or the instructions for how to use it on your own programs, to save space?What does it mean to say that two licenses are compatible?What does it mean to say a license is "compatible with the GPL"?Why is the original BSD license incompatible with the GPL?What is the difference between "mere aggregation" and "combining two modules into one program"?Why does the FSF require that contributors to FSF-copyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed program, should I do this, too? If so, how?If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially?Can I use the GPL for something other than software?How does the LGPL work with Java?

Page 52: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11852

Why does the GPL permit users to publish their modified versions?

A crucial aspect of free software is that users are free to cooperate.

Alternatives to the GPL that require modified versions to go through the original author.

If the author stops (more or less) to do something else or does not attend to all the users' needs, this scheme falls down.

Sometimes control over modified versions is proposed as a means of preventing confusion between various versions made by users.

This confusion is not a major problem.

Page 53: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11853

Does the GPL require that source code of modified versions be posted to the public?

The GPL does not require you to release your modified version. You are free to make modifications and use them privately, without ever releasing them.

This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the users, under the GPL.

Page 54: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11854

Can I have a GPL-covered program and an unrelated non-free program

on the same computer?

Yes.

Page 55: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11855

If I know someone has a copy of a GPL-covered program, can I demand he give

me a copy?

No.

Page 56: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11856

What does this "written offer valid for any third party" mean? Does that mean everyone in the world can get the

source to any GPL'ed program no matter what?

If you commercially distribute binaries not accompanied with source code, the GPL says you must provide a written offer to distribute the source code later. When users non-commercially redistribute the binaries they received from you, they must pass along a copy of this written offer.

Commercially?

This means that people who did not get the binaries directly from you can still receive copies of the source code, along with the written offer. People who receive the binaries indirectly in that way can order the source code from you.

Page 57: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11857

The GPL says that modified versions, if released, must be "licensed ... to all third

parties." Who are these third parties?

Everyone !but this does not require you to *do* anything physically for them.

Page 58: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11858

Does the GPL allow me to sell copies of the program for

money?

Except in one special situation, there is no limit on what price you can charge.

The one exception is the required written offer to provide source code that must accompany binary-only release.

Can not charge too much later on!

Page 59: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11859

Does the GPL allow me to charge a fee for downloading the program

from my site?

Yes.

Page 60: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11860

Does the GPL allow me to require that anyone who receives the software must

pay me a fee and/or notify me?

No.

Page 61: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11861

If I distribute GPL'ed software for a fee, am I required to also make it available to

the public without a charge?

No.

However, if someone pays your fee and gets a copy, the GPL gives them the freedom to release it to the public, with or without a fee.

Page 62: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11862

Does the GPL allow me to distribute a modified or beta version under a

nondisclosure agreement?

Yes. For instance, you can accept a contract develop changes and agree not to release your changes until the client says ok. This is permitted because in this case no GPL-covered code is being distributed under an NDA.You can also release your changes to the client under the GPL, but agree not to release them to anyone else until the client says ok. In this case, too, no GPL-covered code is being distributed under an NDA, or under any additional restrictions. The GPL would give the client the right to redistribute your version, but in this scenario the client will choose not to exercise that right.

Page 63: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11863

Does the GPL allow me to develop a modified version under a nondisclosure agreement?

Yes.

Page 64: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11864

Why does the GPL require including a copy of the GPL with every copy of the program?

Including a copy of the license with the work is vital so that everyone who gets a copy of the program can know what his rights are. It might be tempting to include a URL that refers to the license, instead of the license itself. But you cannot be sure that the URL will still be valid, five years or ten years from now. Twenty years from now, URLs as we know them today may no longer exist.

Page 65: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11865

What if the work is not much longer than the license itself?

?

If a single program is that short, you may as well use a simple all-permissive license for it, rather than the GNU GPL.

Page 66: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11866

Am I required to claim a copyright on my modifications to a GPL-covered

program?

You are not required to claim a copyright on your changes. In most countries, however, copyright happens automatically by default, so you need to place your changes explicitly in the public domain if you do not want them to be copyrighted. Whether you claim a copyright on your changes or not, either way you must release the modified version, as a whole, under the GPL.

Page 67: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11867

If a program combines public-domain code with GPL-covered code, can I

take the public-domain part and use it as public domain code?

You can do that, if you can figure out which part is the public domain part and separate it from the rest.

If code was put in the public domain by its developer, it is in the public domain no matter where it has been.

Page 68: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11868

I want to get credit for my work. I want people to know what I wrote. Can I still

get credit if I use the GPL?

You can certainly get credit for the work. Part of releasing a program under the GPL is writing a copyright notice in your own name (assuming you are the copyright holder).

The GPL requires all copies to carry an appropriate copyright notice.

Page 69: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11869

Can I omit the preamble of the GPL, or the instructions for how to use it on your own

programs, to save space?

The preamble and instructions are integral parts of the GNU GPL and may not be omitted.

In fact, the GPL is copyrighted, and its license permits only verbatim copying of the entire GPL.

The preamble and instructions add up to some 5000 characters, less than 1/3 of the GPL's total size.

They will not make a substantial fractional change in the size of a software package unless the package itself is rather small. In that case, you may as well use a simple all-permissive license rather than the GNU GPL.

Page 70: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11870

What does it mean to say that two licenses are compatible?

In order to combine two programs (or substantial parts of them) into a larger work, you need to have permission to use both programs in this way.

If the two programs' licenses permit this, they are compatible.

If there is no way to satisfy both licenses at once, they are incompatible.

For some licenses, the way in which the combination is made may affect whether they are compatible--for instance, they may allow linking two modules together, but not allow merging their code into one module.

Page 71: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11871

What does it mean to say a license is "compatible with the GPL"?

It means that the other license and the GNU GPL are compatible; you can combine code released under the other license with code released under the GNU GPL in one larger program.

Page 72: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11872

Why is the original BSD license incompatible with the GPL?

Because it imposes a specific requirement that is not in the GPL; namely, the requirement on advertisements of the program. The GPL states:

You may not impose any further restrictions on the recipients' exercise of the rights granted herein.The advertising clause provides just such a further restriction, and thus is GPL-incompatible.

The revised BSD license does not have the advertising clause, which eliminates the problem.

Page 73: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11873

What is the difference between "mere aggregation" and "combining two

modules into one program"?Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk.

If one of the programs is covered by the GPL, it has no effect on the other program.

Combining two modules means connecting them together so that they form a single larger program.

If either part is covered by the GPL, the whole combination must also be released under the GPL--if you can't, or won't, do that, you may not combine them.

What constitutes combining two parts into one program?This is a legal question, which ultimately judges will decide.

We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

Page 74: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11874

Why does the FSF require that contributors to FSF-copyrighted programs assign copyright to the

FSF? If I hold copyright on a GPL'ed program, should I do this, too? If so, how?

Our lawyers have told us that to be in the best position to enforce the GPL in court against violators.

Of course, if all the contributors put their code in the public domain, there is no copyright with which to enforce the GPL.

So we encourage people to assign copyright on large code contributions, and only put small changes in the public domain.

Page 75: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11875

If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute

and sell that new program commercially?

Yes if GPL'ed.

Page 76: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11876

Can I use the GPL for something other than software?

You can apply the GPL to any kind of work, as long as it is clear what constitutes the "source code" for the work. The GPL defines this as the preferred form of the work for making changes in it.

However, for manuals and textbooks, or more generally any sort of work that is meant to teach a subject, we recommend using the GFDL rather than the GPL.

Page 77: 國立台灣大學 資訊工程學系 薛智文 cwhsueh@csie.ntu.edu.tw chsueh/ 98 Spring Real-Time System Development 即時系統開發 Software License

資工系網媒所 NEWS實驗室

22:34 /11877

How does the LGPL work with Java?

It works as designed, intended, and expected.