software freedom to free software

e5059e9052b2aede1d6d39da002cc4a6.gif

6ea8694165c993c542b3bc35f74b1695.jpeg

The free software movement has grown for nearly forty years. From the initial GNU tool set, to the Linux operating system, to software such as OpenJDK and Telegram, free software using the  GNU GPL series license [1] has played a key or even unmentionable role in many fields.

However, the GPL series of licenses themselves, especially after the version 3.0 has been re-released by lawyers, its content has been difficult for developers to understand. Especially the drafting background of the specific clauses, the difference between the different versions of the GPL series licenses, the analysis of the clauses themselves, it is easy to make people confused.

In fact, the idea that runs through the GPL series of licenses is a prologue to the discussion of software freedom that is included or implicitly included in each version. Richard Stallman, the initiator of the free software movement, wrote the GNU General Public License (GPL) just out of the pursuit of software freedom. From the perspective of software freedom, we can better understand the goals of the free software movement and the significance of the terms of the GPL series of licenses.

software freedom

The Free Software Foundation 's Explanation of Free Software [2] includes definitions of four key software freedoms:

•The freedom to run the program as you wish, for any purpose (freedom 0).•The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.•The freedom to redistribute copies so you can help others (freedom 2).•The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Article by article translation is as follows:

• Article 0, freedom to run the program for any purpose. • Clause 1. Understanding how a program works enables the freedom to modify the program to suit needs. Access to source code is a prerequisite for this freedom . • Section 2, the freedom to distribute copies of the program to help others. • Article 3, to improve the program and to distribute the improved program for the benefit of society's freedom. Access to source code is a prerequisite for this freedom .

Among them, Article 0 and Article 2 are relatively static, and they are freedom at the level of software use. Users are free to run the program for any purpose, and can freely redistribute unmodified copies of the program without obtaining permission from others or companies, which naturally breaks the practice of charging license fees or purchasing additional keys for proprietary software.

Articles 1 and 3 are dynamic, freedom at the level of software development and distribution. It allows users to obtain the source code to understand the principle of program operation, and then customize it according to their own needs. At the same time, it allows users to continue to distribute their improved programs to the society to help others.

These two dynamic freedoms endow free software with the soul of being open to the whole society not only for common use, but also for common improvement. As we all know, software, especially general-purpose software, is rarely modified once it is written, but is constantly modified during the process of use by users to adapt to different scenarios.

For proprietary software, users who want to achieve this kind of customization can almost only submit a ticket to the supplier who has the source code and authorization permission to request support. Even if the vendor's response supports the user's needs, the user generally does not have the right to distribute this modified version to others. While free software allows users to obtain its source code, users also have the possibility to modify the software to meet their own needs. Furthermore, free software allows users to distribute improved programs so that others can freely use the modified version, ultimately promoting the iterative development of free software itself.

Stallman mentioned in his autobiography "For Freedom" that his initial motivation for launching the free software movement was that when he encountered a printer failure, he was helpless because the printer driver was proprietary software. This sense of powerlessness and doubts about the secrecy of software source code prompted Stallman to think about how to defend the habit of open and exchange source code among academic hackers, and eventually launched the free software movement.

It is worth noting that for the first and third software freedoms that endow the free software movement with vitality and soul, Stallman both emphasized that obtaining the source code is the premise of this freedom . The later open source movement seized this feature, and with a pragmatic attitude, first let this important premise be deeply rooted in the hearts of the people. However, open source or open source code cannot include all the connotations of the above four software freedoms. Although the expression of the open source definition [3] has great similarities with software freedom, "open source" is often understood as simply "the availability of a copy of its source code file". In recent years, software licenses with open source code but restricted use, including Elastc License 2.0 and Business Source License 1.1, are the embodiment of this potential risk.

For Stallman, promoting all software to become free software and allowing free software to rule the entire software field is the ultimate goal of the free software movement and the correct solution to the social problem of "non-free software". Stallman wrote the GPL license to achieve this goal.

free software

Software that satisfies the four software freedoms mentioned in the previous section is free software.

According to this explanation, contrary to intuition, not only software released under the GPL series of licenses or other copyleft-style licenses is free software. Software licensed under loose software licenses such as MIT LICENSE and Apache License 2.0 also allows users to use, copy and distribute freely, also ensures that the source code of this software is publicly available, and allows users to modify the software and distribute the modified version according to their own needs. Version. The Free Software Foundation's page explicitly mentions that the Apache License 2.0 is a free software license [4] .

GPL series of licenses

If Stallman just needed a license that gives users the freedom to get software, chances are he'd write something like the MIT LICENSE.

However, Stallman's goal was to promote the free software of all software. To this end, he creatively uses the copyright system that provides protection for software patents. While granting users the above four software freedoms, he also requires that the copying of distributed software or the copying of derivative works also need to follow the terms of the corresponding GPL series licenses. It also ensures that software freedom is passed on unmodified during the process of free software distribution and revised distribution.

GPLv3

The originator of the GPL series of licenses is naturally the GPL itself, and its latest version is  the GPLv3 [5]  version.

Among them, the main clause to realize the free delivery of this software is Article 2 "Basic License":

You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

As required above, distributing software intact or distributing modified software cannot be licensed into other agreements, and only the GPLv3 license can be used. At the same time, the above also grants users the unconditional right to copy, run and modify the program, which satisfies the four software freedoms pursued by the free software movement.

Furthermore, GPLv3 clearly stated in Article 10 that the distribution of works carries this license, so the recipients who get this license automatically obtain all the licenses granted by the initial licensor in accordance with GPLv3. In this way, software freedom is handed over to every user with the spread of GPLv3. For protected works, users cannot impose further restrictions on recipients when redistributing. For example, you may not ask for copyright fees, royalties, patent license fees, or fees for licensing; nor may you initiate patent litigation (including cross-action litigation and counterclaims) claiming rights to the production, use, retail, wholesale, import, infringes any patent. This ensures that software freedom will not be violated by the addition of terms in the redistribution process.

In order to achieve the freedom to modify the software, access to the source code of the program is necessary. Articles 4, 5 and 6 of GPLv3 discuss and require in detail the distribution of programs in unmodified source code, modified source code, and non-source code forms to ensure that users receive the program regardless of the format. copy, has the right to obtain the source code of the program. At the same time, the modified program still needs to be released under the GPLv3 license.

The complete system established by Stallman in the GPL license ensures that users enjoy software freedom, and this software freedom will not be lost with other users' modification or dissemination, but with the dissemination of GPL licensed software. More and more software is becoming (contagious) free software.

This, I think, was Stallman's original and most important purpose in writing the release of the GPL. As for being interpreted as "reciprocity" by users in the later practice, or Linus chose the GPLv2 license because he can realize the model of "I give you the program source code, and you give me back the modification of the software", this is not a GPL license. own goals. In fact, "feedback upstream" is more of a downstream strategy, and upstream communities do not always accept feedback from downstream.

This pursuit of software freedom is also reflected in the GPLv3 preamble, which discusses the outline and importance of software freedom and how GPL guarantees users' software freedom in a rather long space. Furthermore, Section 12 states that if a user distributes software or modified software that, for any reason, must compromise software freedom, the only way he can comply with this License is by not distributing the software. This reflects the GPL's uncompromising pursuit of software freedom.

For a detailed interpretation of the full text of GPLv3, you can read the interpretation of GPLv3 by Sir Wei .

LGPLv3

The full text of LGPLv3 [6]  is short because it states at the beginning that it only supplements some permission clauses on the basis of GPLv3.

LGPLv3 is written in this way, which needs to be understood in combination with the terms of GPLv3, which is equivalent to the need for readers to do a merge work of GPLv3 "program" and LGPLv3 "patch". Others consider the original intention of adopting LGPLv3 in the first place:

On the GNU website, Stallman says: "That's why we use the LGPL for the GNU C library. After all, there are so many C libraries in the world; having our C library use the GPL license would force developers of proprietary software to To use other C libraries: this may not be a problem for them, but it is for us. However, when a library provides an important and unique function, like GNU Readline, that is another matter. "

The terms of Stallman's concession in LGPLv3 are mainly Articles 4 and 5. These two articles refer to the situation where the application calls the library licensed by LGPLv3, and the application itself can be published according to the terms selected by the user, which naturally includes the terms of proprietary software, the source code is not disclosed, and the specific use method is not allowed.

In this case, though, LGPLv3 still has two requirements for the free transfer of software.

The first, is that a library licensed under the LGPLv3 still needs to be released under the LGPLv3 itself. If the code of this library is modified during the process of application program combination, the "minimum corresponding source code", that is, the source code based solely on the application program shall be excluded from the combined work, and it shall also be released under LGPLv3. It is generally understood that only when linking to a library licensed under the LGPLv3 is it not "infected" by the LGPLv3.

The second is the application that calls the library licensed by LGPLv3. It needs to ensure the compatibility of the library. That is, as a developer or user of the library, after I modify the library code without changing the public interface of the library, I should be able to Directly replace the parts of the application that originally depended on the library. To guarantee this freedom for library users, applications must either link the library dynamically or, in the case of static linking, provide other parts of the combined work that can be linked with the static library version of the library.

From the perspective of software freedom, this is actually a concession on the boundary of software. Going back to the Stallman printer story, the story is that if there are free software parts in the software I use, I should have the right to modify it freely. For software combined with LGPLv3 libraries, at least the software must guarantee that I can still work with you after modifying the library as free software.

Finally, Section 3 of the LGPLv3 allows users to distribute under terms of their choosing, provided they simply include header files. This may be the reason why in the previous C program development practice, the header file only had some macro definitions and structure definitions. But for more and more libraries developed and distributed in header-only mode, I think this clause will lead to new and unsuspected loopholes in the transmission of software freedom.

For a detailed interpretation of the full text of LGPLv3, you can read the interpretation of LGPLv3 by Sir Wei . I participated in the review of this article.

AGPLv3

The emergence of AGPLv3 [7]  is to make up for a "loophole" of GPLv3: GPLv3 has no additional requirements for the situation that the modified program is not distributed, but running the program and providing cloud services to users through the network, because users do not have Obtaining a source or binary copy of the program does not constitute distribution under the GPLv3 definition. This allows cloud vendors to directly use GPLv3 licensed software and provide cloud services after modification, but users have no right to obtain the source code, and there is no way to talk about other software freedoms.

AGPLv3 therefore adds a clause 13 granting users the right to obtain source code under an AGPLv3 license in such cases:

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.

My personal opinion is that with the development of computer development and distribution forms, the definitions of "combined works" and "distribution" in the GPL series of licenses are increasingly being challenged. This is a new situation and new challenge for defending software freedom. However, due to the fact that the Free Software Foundation has not made remarkable new achievements in recent years, its discourse power and influence in related fields have weakened, which hinders the advancement of  promotional initiatives such as the AGPLv3 license and software freedom on Web pages [8] . Choose AGPLv3 software, such as MongoDB and JuiceFS, etc., in the case of insufficient judicial practice support and relatively backward community awareness, choose to replace it with a proprietary software license, or choose to replace it with a loose software license for market share, A further blow to the development of these promotional initiatives.

free culture

The Free Software Foundation article  Why Open Source Misses the Point of Free Software [9]  mentions:

The open source movement believes that whether software should be open source is a practical question, not a moral appeal. As someone pointed out, "Open source is a method of development; free software is a social movement." Nonfree software is not the best answer to the open source movement. For the free software movement, non-free software is a social problem, and free software is the right solution.

The free software movement is largely a manifestation of free culture, and it is Stallman's understanding and practice of software freedom as a natural human right. Richard Stallman has not changed his views for nearly forty years, and has publicly rejected the use of nonfree software in all respects. Such an unshakable leader, according to the comments of Red Hat co-founder Robert Young, "with the power of one person, changed the entire world's perception of technology." At the same time, his philosophy and consistent behavior have also inspired and promoted other exploration practices in a free culture.

Lawrence Lessig, the author of "Code 2.0" and the author of the Creative Commons (CC) agreement, wrote in the book "Free Culture":

Much of the inspiration for this book, from its title to its content, came from Richard Stallman and from the Free Software Foundation. In fact, when I read Stallman's works, especially the series of articles in "Free Software, Free Society", I deeply realized that the theoretical viewpoints I explain today, Stallman had already made decades ago I got it. Therefore, readers can define this book as a purely "derivative" work.

The victory of Wikipedia and the sharing of knowledge such as genomes in the biological field are to some extent also the spark of free culture in other fields in the new era.

Finally, I end this article with what Tim Berners-Lee, the main founder of the World Wide Web, said about Stallman:

Richard was the first to rise up against it. Now, his fight has turned into a larger operation. He points out the absurd logic behind software patents: even a single line of code can claim full ownership of a method simply because the author of that line of code was the first person to think of it. Back then, Richard fought for us alone. He warned us that the current intellectual property model in the software industry will not help practitioners, but will make developers suffer. Today, software patents are rampant, and they are no longer the driving force to promote the progress of the industry, and all this has long been said by Richard.

recommended reading

• "Free as in Freedom" [10] • "Free Culture" [11] • "Open Source for Business" [12] • "Open Source Law, Policy and Practice" [13] • "The Open Revolution" [14] • "Challenging Intellectual Property Rights" [15]

References

[1] GNU GPL series license:  https://www.gnu.org/licenses/licenses.html
[2]  Explanation of free software:  https://www.gnu.org/philosophy/free-sw.en.html
[3]  Open source definition:  https: //opensource.org/osd
[4]  Apache License 2.0 is a free software license:  https://www.gnu.org/licenses/license-list.en.html#apache2
[5]  GPLv3:  https://www.gnu.org/licenses /gpl-3.0.html
[6]  LGPLv3:  https://www.gnu.org/licenses/lgpl-3.0.html
[7]  AGPLv3:  https://www.gnu.org/licenses/agpl-3.0.en.html
[8]  Web page software Free:  https://www.gnu.org/philosophy/javascript-trap.html
[9]  Why Open Source Misses the Point of Free Software:  https://www.gnu.org/philosophy/open-source-misses-the-point .html
[10]  "Free as in Freedom": https://book.douban.com/subject/26314527/
[11]  "Free Culture":  https://book.douban.com/subject/4050757/
[12]  "Open Source for Business":  https://book.douban.com/ subject/35309516/
[13]  "Open Source Law, Policy and Practice":  https://academic.oup.com/book/44727
[14]  "The Open Revolution":  https://book.douban.com/subject/36110380/
[15]  "Challenge Knowledge Property Rights":  https://book.douban.com/subject/4214651/

Author | tisonkun

Edit | Luo Ruiyan

Mutually

close

read

read

14d2b4add4ce12cecccddd00a3efb00c.jpeg

Official Announcement: Computing Middleware Apache Linkis Officially Graduated as Apache Top Project

b4f447325e3e1182b496920430150f86.jpeg

GitHub surpassed 14,000 Stars, another top Apache open source project in China was born!

3be619b61a2dcd2ab0b58a2ab752d283.jpeg

The next 10 years of open source: the establishment of China's open source community is the key

outside_default.png

Introduction to Kaiyuanshe

outside_default.png

Founded in 2014, the Open Source Club is composed of individual members who voluntarily contribute to the open source cause. It is formed according to the principles of "contribution, consensus, and co-governance". It has always maintained the characteristics of vendor neutrality, public welfare, and non-profit. International integration, community development, and open source projects" is an open source community federation with the mission. Kaiyuanshe actively cooperates closely with communities, enterprises and government-related units that support open source. With the vision of "Based in China and Contributing to the World", it aims to create a healthy and sustainable open source ecosystem and promote China's open source community to become an active force in the global open source system. Participation and Contributors.

In 2017, Kaiyuanshe was transformed into an organization composed entirely of individual members, operating with reference to the governance model of top international open source foundations such as ASF. In the past nine years, it has connected tens of thousands of open source people, gathered thousands of community members and volunteers, hundreds of lecturers at home and abroad, and cooperated with hundreds of sponsors, media, and community partners.

7af0b3ea71ad0d6088e52139c5598770.gif

Guess you like

Origin blog.csdn.net/kaiyuanshe/article/details/128979430