Open Source Licenses
Now and then, there comes an outpouring of community uproar over a controversial popular product that uses open source licensing. When such a product comes around, it brings with it a groundswell of debate as to what open-source licenses are really for. One such recent incident took place last year when the Apache Foundation put a ban on some components of the Facebook React’s patent clause. This contentious patent clause caused quite a stir and had developers buzzing on the message boards.
Even more recently, MongoDB and Redis Labs have decided to make some changes to the open-source licenses in some of their most popular open-source databases. These changes have left many scratching their heads, while others are calling for an explanation of open-source licenses that everyone can understand. Depth First Search (DFS) algorithm traverses a graph in a depthward motion and uses a stack to remember to get the next vertex to start a search, when a dead end occurs in any iteration. it can used when determining if one solution among many meets certain requirements.
What is an Open Source License?
In the simplest sense, an open-source license is a legal and binding contract between the author of a software component and the user of that same component. This agreement declares that the software is available for use in most commercial applications as long as its use meets certain conditions.
The license is the process that turns lines of code into an open-source component. If the software lacks an open-source license, the component is not usable (legally) by others. This applies even if the software has been posted on an open community such as GitHub. Without a license, the software is unusable.
Each individual open source license will state what the user is allowed to do with the software. It will also specify any obligation and what is not acceptable under the terms and conditions of the license. This may sound relatively straightforward so far; however, there are over 200 different open source licenses available. It becomes quite tricky when you start to delve into all of the various options.
Each license will vary in its requirements and complexity. It is the job of the publishing organization to choose the license that is most compatible with their software policies, which will ensure that they stay compliant.
Copyleft and Permissive Licenses
The two most commonly used open-source licenses can be somewhat in-depth and require their explanation. Generally speaking, an open-source license can be divided into two different categories: copyleft licenses and permissive licenses (such as MIT License). The division takes place due to the requirements and limitations that the license serves to place on its users.
The fundamental copyright law will restrict the right to use, share, or modify and creative works without the express permission of the copyright holder. This copyright restriction usually serves to protect movies and music as the intellectual property of the one who created them. When a creator releases a software program to the general public using a copyright license, they are making a claim to the same restrictions.
They are making a statement that other parties can share, use, or modify their work under the restriction that the reciprocity of obligation is upheld. This means that if they are utilizing a competent under the open-source license, they must make their projects available to the public under the same license.
On the other hand, a permissive license is a type of non-copyleft open-source license that provides users with the freedom to redistribute, use, or modify the source and also allows any proprietary derivative creations. These permissive licenses are often referred to as the “anything goes” license due to the lack of restrictions that it places on the source components and their ability to be reused.
The permissive license gives users a great degree of freedom to redistribute, use, or modify the code. It does not require any additional obligations or reciprocity in the future.
In many jurisdictions, any content or code is copyrighted automatically when the author creates it. This means that unless otherwise stated, all rights remain reserved by the author. Of course, it is always a good practice to declare the author and copyright date in the header of the document or code. Still, it is also implied in most cases. Failing to provide the header copyright does not void any of their author’s inherent rights.
If an author chooses to make their code or content available on a Github repository or their website, they can do so with or without a stated license. They will maintain both usage rights and distribution rights for that content, even though it is something very basic or available for download.
If you were to execute that code on your computer, then you would be going against the author’s implied usage rights. If so desired, that author has the ability to bring a civil lawsuit against that user, since they never granted them the right to use their authored code.
In the same fashion, if you were to make a copy of that same code and sell it, post it online, or even give it to a friend, you will also be going against the author’s distribution right and could potentially face a civil suit.
The Open Source Initiative or OSI is an organization that has created and maintains a lengthy list of all of the open-source licenses available. All of the licenses on this list comply with OSI’s accepted definition of “open source.” Their definition is a license that allows the software to be shared, modified, or used freely, without any repercussions.
Many licenses tend to overlap with each other and many confusing licenses that probably should have never been created in the first place. However, any licenses that are on this list have become popular or used frequently enough to go through the OSI approval process and make the list.
Trying to navigate the waters of open source licenses can be quite confusing, if not entirely frustrating. If you are looking to license your code or content, a great place to start would be to browse the list of OSI approved licenses. From there, you can narrow your search and eventually choose the license that is best for your project.
Leseni ya Chanzo cha wazi Mara kwa mara, kuna mtiririko wa ghasia za jamii juu ya bidhaa maarufu yenye utata ambayo hutumia leseni ya chanzo wazi. Wakati bidhaa kama hiyo inakuja karibu, inaleta pamoja na mjadala wa msingi kuhusu nini leseni za chanzo wazi ni kweli kwa. Tukio moja kama hilo la hivi karibuni lilitokea mwaka jana wakati Apache Foundation ilipoweka marufuku baadhi ya vipengele vya kifungu cha hati miliki ya Facebook React. Kifungu hiki cha hati miliki yenye utata kilisababisha msukosuko mkubwa na kuwa na watengenezaji wakipiga kelele kwenye mabamba ya ujumbe. MongoDB na Redis Labs wamekuwa wakifanya mabadiliko kadhaa katika leseni zao za chanzo wazi katika baadhi ya hifadhidata zao maarufu za chanzo wazi. Mabadiliko haya yamewacha wengi wakikwaruza vichwa vyao, wakati wengine wanahitaji ufafanuzi wa leseni za chanzo wazi ambazo kila mtu anaweza kuelewa. Algorithm ya utafutaji wa kina (DFS) hupita kwenye grafu kwa mwendo wa kina na hutumia stack kukumbuka kupata vertex inayofuata kuanza utafutaji wakati mwisho wa mwisho unatokea katika iteration yoyote. Hii inaweza kutumika wakati wa kuamua kama suluhisho moja kati ya nyingi inakidhi mahitaji fulani. Leseni ya Chanzo cha Wazi ni nini? Kwa maana rahisi, leseni ya chanzo wazi ni mkataba wa kisheria na wa kulazimisha kati ya mwandishi wa kipengele cha programu na mtumiaji wa kipengele hicho hicho. Mkataba huu unatangaza kwamba programu inapatikana kwa ajili ya matumizi katika maombi mengi ya kibiashara kwa muda mrefu kama matumizi yake inakidhi masharti fulani. Leseni ni mchakato ambao hubadilisha mistari ya nambari katika sehemu ya chanzo wazi. Kama programu haina leseni ya chanzo wazi, sehemu si usable (kisheria) na wengine. Hii inatumika hata kama programu imekuwa posted juu ya jamii ya wazi kama vile GitHub. Bila leseni, programu hiyo haiwezi kutumiwa. Kila leseni ya chanzo wazi itataja kile mtumiaji anaruhusiwa kufanya na programu. Pia itafafanua wajibu wowote na nini hakikubaliki chini ya masharti na masharti ya leseni. Hii inaweza kuonekana kuwa rahisi sana, lakini kuna zaidi ya leseni 200 za chanzo wazi zinazopatikana. Inakuwa ngumu sana unapoanza kuchunguza chaguzi zote mbalimbali. Kila leseni itatofautiana katika mahitaji yake na utata. Ni kazi ya shirika la kuchapisha kuchagua leseni ambayo ni sambamba zaidi na sera zao za programu, ambayo itahakikisha kwamba wanabaki kufuata. Mkataba wa Copyleft na Mkataba wa Permissive ni mkataba wa wazi wa chanzo cha wazi, ambayo inahusu matumizi ya hati miliki ya chanzo wazi na inahusu matumizi ya hati miliki ya chanzo wazi. Kwa ujumla, leseni ya chanzo wazi inaweza kugawanywa katika makundi mawili tofauti: leseni za copyleft na leseni za kuruhusu (kama leseni ya MIT). Mgawanyiko hufanyika kutokana na mahitaji na mapungufu ambayo leseni hutumika kuweka kwa watumiaji wake. Sheria ya msingi ya hakimiliki itazuia haki ya kutumia, kushiriki, au kurekebisha kazi za ubunifu bila ruhusa ya wazi ya mmiliki wa hakimiliki. Kwa kawaida kizuizi hiki cha haki za uchapaji hutumika kulinda sinema na muziki kuwa mali ya kiakili ya yule aliyeziumba. Wakati muundaji anatoa programu ya programu kwa umma kwa kutumia leseni ya hakimiliki, wao ni kufanya madai ya vikwazo sawa. "Wanafanya taarifa kwamba pande nyingine zinaweza kushiriki, kutumia, au kurekebisha kazi yao chini ya kizuizi kwamba ushirikiano wa wajibu unashikiliwa. """ Hii inamaanisha kwamba ikiwa wanatumia leseni ya chanzo wazi, lazima wafanye miradi yao ipatikane kwa umma chini ya leseni hiyo hiyo. Leseni ya ruhusa ni aina ya leseni ya chanzo wazi isiyo ya copyleft ambayo hutoa watumiaji uhuru wa kusambaza tena, kutumia, au kurekebisha chanzo na pia inaruhusu uundaji wowote wa asili wa wamiliki. Leseni hizi za kuruhusu mara nyingi huitwa leseni ya "kila kitu kinaenda" kwa sababu ya ukosefu wa vizuizi ambavyo huweka kwenye vipengele vya chanzo na uwezo wao wa kutumiwa tena. Leseni ya kuruhusu huwapa watumiaji kiwango kikubwa cha uhuru wa kusambaza tena, kutumia, au kurekebisha nambari. Hauhitaji majukumu yoyote ya ziada au ushirikiano katika siku zijazo. Katika mamlaka nyingi, maudhui yoyote au kanuni ni copyrighted moja kwa moja wakati mwandishi inajenga. Hii ina maana kwamba isipokuwa ilivyoelezwa vinginevyo, haki zote zinabaki na mwandishi. Bila shaka, ni daima mazoezi mazuri kutangaza mwandishi na tarehe ya hakimiliki katika kichwa cha hati au kanuni. Hata hivyo, katika visa vingi hilo linamaanisha jambo fulani. Kushindwa kutoa kichwa haki za uchapaji haina invalidate yoyote ya haki zao asili mwandishi. Ikiwa mwandishi anaamua kufanya nambari yake au maudhui kupatikana kwenye hifadhi ya Github au tovuti yake, wanaweza kufanya hivyo na au bila leseni iliyotajwa. "Wanaweza kuhifadhi haki za matumizi na haki za usambazaji kwa maudhui hayo, hata kama ni kitu cha msingi sana au kinapatikana kwa kupakuliwa.""" Kama wewe walikuwa kutekeleza kwamba code kwenye kompyuta yako, basi wewe ingekuwa kwenda dhidi ya mwandishi wa haki za matumizi ya implicit. Ikiwa unataka, mwandishi ana uwezo wa kuleta kesi ya kiraia dhidi ya mtumiaji huyo, kwani hawajawahi kuwapa haki ya kutumia nambari yao ya mwandishi. Kwa njia hiyo hiyo, ikiwa utafanya nakala ya nambari hiyo na kuifanya, au kuipeleka mtandaoni, au hata kumpa rafiki, utakuwa ukipinga haki ya usambazaji wa mwandishi na unaweza kukabili kesi ya kiraia. Open Source Initiative (OSI) ni shirika la kimataifa ambalo linajumuisha na kudumisha orodha ya leseni zote za chanzo wazi zinazopatikana. Leseni zote kwenye orodha hii zinakubaliana na ufafanuzi wa OSI wa chanzo wazi, ambayo inaruhusu programu kugawanywa, kubadilishwa, au kutumiwa kwa uhuru, bila athari yoyote. Leseni nyingi huwa na kuingiliana na kila mmoja na leseni nyingi zenye kutatanisha ambazo labda hazikupaswa kuundwa hapo awali. Hata hivyo, leseni yoyote ambayo ni katika orodha hii kuwa maarufu au kutumika mara nyingi kutosha kwenda kupitia mchakato wa idhini OSI na kufanya orodha. Kujaribu kusafiri katika maji ya leseni za chanzo wazi inaweza kuwa ngumu sana, kama si kabisa kukatisha tamaa. Ikiwa unataka kupata leseni ya programu yako, mahali pazuri pa kuanza ni kutazama orodha ya leseni zilizokubaliwa na OSI. Kutoka hapo, unaweza kupunguza utafutaji wako na hatimaye kuchagua leseni ambayo ni bora kwa ajili ya mradi wako.