Download presentation
Presentation is loading. Please wait.
1
Real-Time System Development
即時系統開發 Open Source 薛智文 95 Fall
2
Open Source Software Development
04:32 /118
3
Outline Introduction History of Open Source Software
Learning from hackers GNU GPL and LGPL The Open Source Definition GPL FAQ 04:32 /118
4
Categories of Free and Non-Free Software -http://www. gnu
04:32 /118
5
What Is Copyleft? Copyleft: Pragmatic Idealism
Copyleft is a general method for making a program free software and requiring all modified and extended versions of the program to be free software as well. Copyleft says that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it. Copyleft guarantees that every user has freedom. 04:32 /118
6
Introduction (1) The open source development model fundamentally changes the approaches and economics of traditional software development. Open source software is developed by an internet-based community of programmers. Participation is voluntary and participants do not receive direct compensation for their work. The full source code is made available to the public. Developers also devolve most property rights to the public, including the right to use, to redistribute and to modify the software free of charge. 04:32 /118
7
Introduction (2) Proponents : a paradigmatic change Critics :
the economics of private goods built on the scarcity of resources are replaced by the economics of public goods where scarcity is not an issue. Critics : source software will always be relegated to niche areas, that it cannot compete with their commercial opponents in terms of product stability and reliability open source projects lack the capability to innovate. 04:32 /118
8
Questions In the absence of direct compensations what is it that motivates the participants? Is the image correct that open source developers are highly altruistic people who want to advance the good cause? Are there other explanations? What are the implications on social welfare? 04:32 /118
9
History of Open Source Software (1)
Year Event 1950s and 1960s Software source code is distributed without restrictions in IBM and DEC user groups, ACM’s Algorithms Section etc. 1969 Ken Thompson writes the first version of UNIX. Its source code is distributed freely throughout the seventies. 1978 Donald Knuth (Stanford) publishes TEX as free software 1979 Following AT&T’s announcement to commercialize UNIX, UC Berkeley begins with the creation of its own version of UNIX, BSD (Berkeley Software Distribution). Eric Allmann, a student at UC Berkely develops a program that routes messages between computers over ARPANET. It later evolves into Sendmail. 1983 Stallmann publishes GNU Manifesto calling for free software, and establishes Free Software Foundation. 04:32 /118
10
History of Open Source Software (2)
Year Event 1986 Larry Wall creates Perl (Practical Extraction and Report Language), a versatile programming language used for writing CGI (Common Gateway Interface) scripts. 1987 Developer Andrew Tanenbaum releases Minix, a version of UNIX for the PC, Mac, Amiga, and Atari ST. It comes with complete source code. 1991 Linus Torvalds publishes version 0.02 of a new UNIX variant that he calls Linux in a Minix newsgroup. 1993 FreeBSD 1.0 is released. Based on BSD Unix, FreeBSD includes networking, virtual memory, task switching, and large filenames. Ian Murdock creates a new linux distribution called Debian Linux. 1994 Marc Ewing forms Red Hat Linux. It quickly becomes the leading Linux distributor. Bryan Sparks founds Caldera with backing by former Novell CEO Ray Noorda. 04:32 /118
11
History of Open Source Software (3)
Year Event 1995 The Apache Group builds a new Web server, Apache, based on the National Center for Supercomputing Applications' (NCSA's) HTTPd 1.3 and a series of patch files. It has become the dominant HTTP server today. 1998 Netscape not only gives away Communicator 5.0 (Mozilla) but also releases its source code. Major software vendors, including Computer Associates, Corel, IBM, Informix, Interbase, Oracle, and Sybase, announce plans to port their products to Linux. Sun announces plans to release the source code for Java 2 to developers. 1999 Number of Linux users estimated at 7.5 Million. 2000 More software companies such as Novell and Real release versions of their products which run on Linux. 04:32 /118
12
Motivations of Participating in Open Source Projects
Understanding what drives open source developers to participate in open source projects is crucial for assessing the impact of open source software. internal factors: intrinsic motivation and altruism external rewards: future returns and personal needs Survey administered to open source programmer 04:32 /118
13
Sources of Motivations
Intrinsic motivation includes the desire of feeling competence and self-determination. External rewards include factors such as direct or indirect monetary compensation, and other’s recognition as well. Motivation is viewed as a function of : ability of the individual over potential, ability over ability reinforcement behavior. 04:32 /118
14
Internal Factors Motivations that are ultimately rooted within the individual himself. Intrinsic motivation Altruism Community identification Open source programmers are not motivated by monetary incentives but by their own hobbies and preferences instead. they receive rewards from increasing the welfare of others. 04:32 /118
15
Intrinsic Motivation (1)
Certain activities and behaviors that people like to perform naturally, e.g., playing games or collecting coins. Arising from a person’s inborn need for feeling competent and self-determining in dealing with his environment. -Deci That is why some of the intensity with which people pursue their hobbies. The need for -Maslow selfactualization esteem needs desire for a stable, firmly based, usually high evaluation of themselves some includes the external desires for recognition, fame and reputation 04:32 /118
16
Intrinsic Motivation (2)
Programmers are motivated by the feeling of competence, satisfaction and fulfillment that arises from writing programs. “Innate desire to code, and code, and code until the day I die.” Intrinsically motivated goals as autonomous goals have been suggested to be associated with most effortful behaviors comparing to controlled personal goals (nonintrinsically motivated goals), and will thus lead to higher possibility of goal attainment. 04:32 /118
17
Problem of Intrinsic Motivation
If the open source movement were solely based on this motivation, a disadvantage over commercial development might result. The motivation of the participants is not necessarily linked to the needs of the users. if the community of users and the community of programmers are not identical, open source software would have an inherent problem of incorporating user needs. 04:32 /118
18
Altruism A person seeks to increase the welfare of others.
a personal disposition opposite to selfishness doing something for another at some cost to oneself Open source programmers provide something for others (writing programs that have open source codes) at their own costs (time, energy, opportunity costs). Is widely regarded as being associated with positive norm and should have a positive influence on the level of participation in open source projects. 04:32 /118
19
Maslow's Hierarchy of Needs
04:32 /118
20
Maslow's Hierarchy of Needs
04:32 /118
21
Community identification
Maslow’s needs of belonging and love. Programmers may identify themselves as part of the open source community and align their goals with those of the community. They may treat other members of the community as their kin and thus be willing to do something beneficial to others but not to themselves. Also termed as “kin selection altruism” 04:32 /118
22
External rewards Mostly not compensated for their contributions directly, but receive indirect rewards by increasing their marketability and skill base or selling related products and services. Some, the fruits of the software. Future rewards Personal needs 04:32 /118
23
Future rewards Some open source programmers may view their participation as an investment from which they expect future returns. Revenues from related products and services. Human capital. Self-marketing. Peer recognition. 04:32 /118
24
Revenues from related products and services
commercial consulting, training, distribution, support, and implementation services. the open source community endorses such income-generating activities . conflict: improving the open source software may reduce the potential for selling its related services or products such as maintenance and trouble-shooting etc. 04:32 /118
25
Human Capital Personal skills, capabilities and knowledge are deemed as a special form of capital, human capital, by economists. Open source programmers may also participate in open source projects to expand their skill base. Human capital level can be increased by education, training, learning, and practicing etc. leading to better job opportunities, higher salaries and more fulfilling jobs. The ‘open’ source codes and freedom to choose tasks enable the open source programmers to select the learning experiences that meet their demand and interests. Entry-level programmers like college students to participate in realistic projects at a very early stage. 04:32 /118
26
Self-marketing Working for open source software is an effective way to demonstrate their capability and skillfulness in programming. Claims of competence in programming can be well reinforced by the achievements in open source projects. Participating in open source projects therefore can be a good advertising channel to publicize one’s skillfulness and capabilities. The larger the contribution of an individual to the open source projects, the more likely it is that the commercial software vendors will recognize the value of the individual, and the larger the incentive will be for this individual to apply his skills in a paid position. It may help to lure the best programmers and most productive minds away from these projects into more profitable commercial development. 04:32 /118
27
Peer Recognition Derived from the desire for fame and esteem, which is associated with future returns. Open source programmers receive rapid and constructive feedback about the quality of their composition. Feedback always has a positive effect – it shows the programmer that people are using their contribution. Thus feedback is self-reinforcing: It encourages the author to spend additional effort to perfect his code. 04:32 /118
28
Personal Needs (1) Many open source projects were initiated because a programmer had a personal need for some software. PERL was created by Larry Wall when he needed to generate web pages programmatically. These routines were later shared with other programmers, who also extended and refined the routines. The similar development of the Apache in 1995. Participants of open source projects may act rationally after their own self-interest. There should be a limit to the amount of effort that a programmer may provides for free. The interests of the users and developers are often aligned: both are interested in improving the functionality; both are willing to invest in improvements. 04:32 /118
29
Personal Needs (2) The more complex a product is, the less dependent it is on other modules of software, so the more likely its contribution be identified and communicated, and the more likely it is that a programmer will sell his software rather than provide it for free. Eric Allmann, the founder of Sendmail, one of the most successful server programs, has started a company that provides an add-on product to Sendmail to simplify its configuration and administration. 04:32 /118
30
Personal Needs (3) However, traditional software houses structure their license agreements in a way that prevents customers to invest in their software by making modifications and by sharing the improvements with others. because of the fear of piracy, software houses have given up considerable potential investment opportunities that customers are willing to take. A crucial oversight in the marketing and product evolution strategies of current software companies. 04:32 /118
31
Empirical Analysis 389 persons sent, 81 responses, 2 invalid, 21%
95 % male 04:32 /118
32
Respondent Demographics
04:32 /118
33
Participant Characteristics
04:32 /118
34
Respondent’s Primary Open Source Projects
04:32 /118
35
Motivations by Programmer Type
04:32 /118
36
Learning from Hackers -The open-source movement can teach project managers a lot
BY DENIS F. CIOFFI The George Washington University IEEE SPECTRUM • June 2001 04:32 /118
37
Learning from Hackers 1999, Linux accounted for 27 percent of operating-system software for computer servers sold, up from 17 percent in 1998, — International Data Corp. Linux is more than just a product — it’s a mindset. On the surface, the distance between formal management and the open-source movement that created Linux is big. Linux seemed to defy that management is essential to good products and services. Managers can learn much from open-source practitioners, or hackers, from Eric Raymond’s 1997 manifesto “The Cathedral and the Bazaar” 04:32 /118
38
Learning from Hackers Open-source hackers are people who “solve problems and build things.” Being skilled at using management tools is less important than having a good outlook—one that encourages cooperation, yet gives each worker the opportunity to be creative. The New Hacker’s Dictionary defines management as follows: “Corporate power elites distinguished primarily by their distance from actual productive work and their chronic failure to manage.” 04:32 /118
39
The Hacker Attitudes The world is full of fascinating problems waiting to be solved. Nobody should ever have to solve a problem twice. Boredom and drudgery are evil. Freedom is good. Attitude is no substitute for competence. 04:32 /118
40
Fascinating Problems A project in the standard management definition refers to a temporary effort to create something new. A process, by contrast, is work that is repeatable and well understood. For each project to be truly new, then, completed projects need to be studied thoroughly, so that those aspects that are routine or repeatable can be turned into processes. For engineers and scientists, the fascinating problems exist where processes have yet to be defined. The more one reserves the word “project” for work that truly results in never-before-attained outcomes, the greater the opportunity for fascination, and the greater the possibility of attracting good minds. In a mature organization, the term “fascinating project” should be redundant. 04:32 /118
41
Never Solve a Problem Twice
How to dress? At the close of every project, the manager needs to ask, What did we learn? And how can we do better? The importance of fully documenting the results of each project becomes obvious. A good hacker not only debugs code but also annotates it, so that others unfamiliar with the code may understand and use it. 04:32 /118
42
Boredom is Evil Some managers have great difficulty with the third hacker attitude, insisting that a certain amount of boredom and drudgery in work is unavoidable. While the term “project” may be used to describe what they do, in reality the employees are solving essentially the same problem many times, finding little challenge and consuming much effort. While boredom and drudgery exist, though, a good manager tries to reduce their occurrence, appreciates those who must contend with boring work, and looks for ways to minimize dull operations through automation. 04:32 /118
43
Freedom is Good Employees who are free to think and to act will share their ideas and point out mistakes as they occur; that in turn improves a company’s bottom line. If you’re not willing to give workers freedom, why hire bright people in the first place? Fundamental to freedom is valid (in the sense of modeling reality) information, which in turn requires honesty. Does your organization maintain an environment that gives workers freedom and encourages communication, or does it reward silence, while hoping for excellence? 04:32 /118
44
Competence Trumps Attitude
“zeal” or any other emotion does not excuse dishonesty and incompetence. Freedom gives excellence its opportunity, but talent and hard work produce a successful result. 04:32 /118
45
Suggestions (1) The attitudes communicate their intentions well because of their simplicity, and their simplicity is their power. Starting with the last one and working backward. Attitude is no substitute for competence. Freedom is good. Boredom and drudgery are evil. Nobody should ever have to solve a problem twice. The world is full of fascinating problems waiting to be solved. 04:32 /118
46
Suggestions (2) As a reward for your competence, support of freedom, reduction of others’ drudgery, and appreciation that people should not waste their time and brainpower, you get to manage attacks on fascinating problems. Manager: One who believes and practices the five hacker attitudes in executing fascinating 04:32 /118
47
GNU GPL and LGPL 04:32 /118
48
Outline Introduction Copying, Distribution, and Modification
Linking a Library of LGPL How to Apply These Terms to Your New Programs How to Apply These Terms to Your New Libraries Linux and GPL References 04:32 /118
49
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 sure Have 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. 04:32 /118
50
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. 04:32 /118
51
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. 04:32 /118
52
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. 04:32 /118
53
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 , USA. 04:32 /118
54
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 steps copyright the library. offer you this license, which gives you legal permission to copy, distribute and/or modify the library. 04:32 /118
55
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. 04:32 /118
56
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. 04:32 /118
57
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. 04:32 /118
58
Linking a Library of LGPL
A "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. 04:32 /118
59
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 USA 04:32 /118
60
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. 04:32 /118
61
References GNU General Public License
GNU Library General Public License 04:32 /118
62
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 Redistribution Source Code Derived Works Integrity of The Author's Source Code No Discrimination Against Persons or Groups No Discrimination Against Fields of Endeavor Distribution of License License Must Not Be Specific to a Product The License Must Not Restrict Other Software 04:32 /118
63
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. 04:32 /118
64
免費自由重複散布 當一套散布的軟件由若干不同來源的程式組成時,許可証不得限制任何一方銷售或讓予作為其組成部分之一的開放性原始碼程式。該許可証不得要求從是項銷售中索取使用費或其他費用。 理由:在許可証中作出免費自由重複散布的規定,就排除了為取得銷售軟件而得到的短期利益和少量金錢而願意放棄許多長久效益的誘惑。如果不作出這項規定,就可能有許多壓力迫使合作伙伴背棄承諾。 04:32 /118
65
Source Code The 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. 04:32 /118
66
原程式碼 軟件應附有原程式碼,該軟件除以編輯後的形式散布外,還應允許以原程式碼的形式散布。如一項產品中的某些部分未附有原程式碼,則應有通行的途徑,通過網際網路免費下傳。原程式碼中必須具備編程員可用來修改程式的原始碼。不得使原程式碼變得晦澀難懂,亦不得具有使用預處理器或轉譯器處理後所得的中間形式。 理由:規定原程式碼必須不晦澀難懂,因為軟件不可能不經過修改而有所改進。為了便于軟件的改進,必須作出程式必須便于修改的規定。 04:32 /118
67
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. 04:32 /118
68
衍生軟件 許可証應允許修改軟件和衍生軟件,並允許修改後的軟件和衍生出的軟件以原軟件的同一條件散布。
理由:單能讀到原程式碼不足以支持個別同好對軟件的審評和快速地選取改進的軟件。為了加快改進軟件的速度,必須要能試驗和重複散布各項修改。 04:32 /118
69
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. 04:32 /118
70
原程式碼的完整性 許可証可限制原程式碼以修改後的形式散布,除非為修改軟件的目的在最後編輯時原始碼連同修改程式一起散布。許可証必須明確規定允許散布根據修改後的原程式碼編制的軟件。許可証可要求衍生軟件使用不同的名稱或版本號碼,有別與原始軟件。 理由:鼓勵對軟件作出各種改進是一件好事,但使用者有權知道誰應對其使用的軟件負責。軟件的原作者和維護人員相互都有權知道要他們支持的軟件為何,以維護他們的信譽。 因此,開放性原始碼軟件的使用許可証必須保証軟件中已附有原始碼,但可以規定該原始碼需以最初的原始編碼和其後的修改程序散布。通過這種方式,使用者可取得對軟件的各種"非正式"的更改,並同時能分辨出有異于最初原始程式之處。 04:32 /118
71
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. 04:32 /118
72
不得歧視任何人或團體 許可証不得歧視任何人或多人組成的團體。
理由:為了從這項過程中取得最大效益,社會各階層人士和團體均有同等資格對開放性原始碼軟件作出貢獻。因此,禁止任何開放性原始碼軟件的許可証將任何人排除在這項進程之外。 04:32 /118
73
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. 04:32 /118
74
不得歧視任何專業工作領域 許可証不得歧視任何人將程式用于任何具體專業領域。例如,許可証不得限制程式用于商業,亦不得限制用于遺傳基因的研究。
理由:本條的主要用意是禁止許可証中有任何使開放性原始碼無法在商業上使用的規定。我們要商界人士參與我們的工作,而不讓他們感到排斥在外。 04:32 /118
75
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. 04:32 /118
76
許可証的散布 與程式有關的任何權利必須適用于使用該程式的任何使用者,這些使用者無須為此種使用再取得其他許可証。
理由:本條的目的在于禁止通過非直接途徑,例如要求簽署"不公開"協議等辦法,使軟件無法公開。 04:32 /118
77
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. 04:32 /118
78
許可証不得具體針對一項軟件產品 與程式有關的任何權利不得由該程式是否為某一特定軟件的一部分來決定。如果從一套軟件中取用一組程式,并根據該程式的規定使用或散布這組程式,則得到這組程式的所有各方的權利與得到原軟件的使用者的權利相同。 理由:本條預先對其他各種許可証方面的陷阱作出規定。 04:32 /118
79
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. 04:32 /118
80
許可証的規定不得影響其他軟件 許可証不得對其他與此軟件一起散布的軟件作出任何限制的規定。例如,許可証不得堅持要求所有根據同一介質散布的其他軟件都必須為開放性原始碼軟件。 理由:要使用或散布開放性原始碼軟件的人有權對其自己的軟件作出選擇。 04:32 /118
81
GPL FAQ Basic 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 04:32 /118
82
Basic Questions What 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? 04:32 /118
83
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. 04:32 /118
84
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. 04:32 /118
85
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. 04:32 /118
86
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 04:32 /118
87
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 04:32 /118
88
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 04:32 /118
89
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. 04:32 /118
90
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. 04:32 /118
91
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. 04:32 /118
92
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. 04:32 /118
93
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. 04:32 /118
94
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). 04:32 /118
95
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? 04:32 /118
96
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? 04:32 /118
97
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. 04:32 /118
98
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. 04:32 /118
99
Can I have a GPL-covered program and an unrelated non-free program on the same computer?
Yes. 04:32 /118
100
If I know someone has a copy of a GPL-covered program, can I demand he give me a copy?
04:32 /118
101
What does this "written offer valid for any third party" mean
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. 04:32 /118
102
The GPL says that modified versions, if released, must be "licensed
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. 04:32 /118
103
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! 04:32 /118
104
Does the GPL allow me to charge a fee for downloading the program from my site?
Yes. 04:32 /118
105
Does the GPL allow me to require that anyone who receives the software must pay me a fee and/or notify me? No. 04:32 /118
106
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. 04:32 /118
107
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. 04:32 /118
108
Does the GPL allow me to develop a modified version under a nondisclosure agreement?
Yes. 04:32 /118
109
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. 04:32 /118
110
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. 04:32 /118
111
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. 04:32 /118
112
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. 04:32 /118
113
I want to get credit for my work. I want people to know what I wrote
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. 04:32 /118
114
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. 04:32 /118
115
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. 04:32 /118
116
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. 04:32 /118
117
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. 04:32 /118
118
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). 04:32 /118
119
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. 04:32 /118
120
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. 04:32 /118
121
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. 04:32 /118
122
How does the LGPL work with Java?
It works as designed, intended, and expected. 04:32 /118
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.