(Het oorspronkelijke artikel dateert van maart 1998 en gaat over een eerste proef-versie van de NPL (“Netscape Openbare Licentie”). Ons eerste artikel hierover was Netscape overweegt zijn browser in vrije software te veranderen.)
De Netscape Public License of NPL (Netscape Openbare Licentie) is uiteindelijk ontworpen als een licentie voor vrije software—maar het heeft drie serieuze tekortkomingen. Eéntje geeft een verkeerd filosofisch signaal af, een tweede verzwakt de positie van de vrije software gemeenschap en de derde heeft onpraktische gevolgen voor de vrije software gemeenschap. Twee van deze fouten zitten ook in de Mozilla Public License. Daarom adviseren we je de NPL of MPL niet te gebruiken voor je vrije software.
Het eerste probleem dat me opviel in de NPL was dat het geen gelijke rechten geeft aan Netscape versus de rest van de gebruikers, zoals de GNU GPL dat doet. Onder de NPL kunnen we alleen de broncode van Netscape gebruiken zoals het omschreven staat in de NPL, maar Netscape mag op zijn beurt onze wijzigingen op wat voor manier dan ook gebruiken—zelfs in private versies van de software.
Het probleem is subtiel want dit maakt het programma niet onvrij. Het belet ons niet het programma weer te kopiëren of te veranderen; het beperkt ons niet in onze vrijheid. Puur pragmatisch bekeken is er dus niets aan de hand.
Het probleem zit meer in wat dit uitdraagt. Het is in tegenspraak met het idee van samenwerking op gelijke voet waarop onze gemeenschap stoelt. Het straalt uit dat werken aan een vrij programma ook bijdragen aan een privaat product is. Degenen die dit accepteren zullen er door worden beïnvloed en dit zal de gemeenschap niet ten goede komen.
Een voorgestelde oplossing is om hier een tijdslimiet aan te stellen— bijvoorbeeld drie tot vijf jaar. Dat zou een grote verbetering zijn omdat door een dergelijke limiet de negatieve associatie wordt weggenomen.
Het praktische effect hiervan wordt nog eens teniet gedaan door een ander nadeel van de NPL: het is niet ontworpen met complete copyleft (“auteursplicht”). Oftewel, de licentie doet niet erg zijn best om te garanderen dat veranderingen van gebruikers óók beschikbaar komen als vrije software.
De MPL (Mozilla Public License) heeft dit probleem niet. Dat is het belangrijkste verschil tussen de MPL en de NPL.
De NPL ziet eruit als auteursplichtig; het zegt dat alle veranderingen van gebruikers weer onder de NPL uitgebracht dienen te worden. Maar dit slaat alleen op veranderingen van bestaande code—niet op toegevoegde subroutines wanneer die in een apart bestand staan. Praktisch gesproken betekent dit dat het eenvoudig is om private veranderingen door te voeren wanneer je dat wilt: zet gewoon al je broncode in een apart bestand en noem dit een “Larger Work” (significant werk). Alleen de aanroepen van de subroutine moeten vrij worden gegeven onder de NPL en die hebben weinig zin wanneer die routines niet mee worden geleverd.
Het ontbreken van echte auteursplicht is geen ramp; het maakt de software niet onvrij. De X.org distributievoorwaarden bijvoorbeeld hebben het in het geheel niet over auteursplicht, maar het is toch vrije software. BSD is ook niet-auteursplichtige vrije software (hoewel de oudere BSD voorwaarden andere serieuze problemen hebben die geen navolging verdienen—als je vrije software uit wilt brengen zonder auteursplicht, gebruik dan de X.org voorwaarden). Software onder de NPL is ook vrije software zonder auteursplicht en dit feit alleen maakt de NPL niet slechter dan andere vrije software zonder auteursplicht.
Hoewel het geen ramp is, is het toch een nadeel. En omdat de NPL op auteursplicht lijkt , kan dit sommige gebruikers verwarren die de NPL vervolgens toch gebruiken in de veronderstelling dat ze de voordelen van de auteursplicht hebben terwijl dat in werkelijkheid niet zo is. Om dit effect te bestrijden zullen we hard moeten werken om mensen het subtiele verschil duidelijk te maken.
Praktisch gesproken is het grootste probleem van de NPL dat het niet uitwisselbaar is met de GNU GPL. Het is niet mogelijk om broncode onder de NPL te combineren met code onder de GNU GPL in één programma, zelfs niet door ze te koppelen via aparte object-bestanden of programmabibliotheken; maakt niet uit hoe dit wordt gedaan, het overtreedt de ene of de andere licentie.
Het conflict is aanwezig doordat de GPL zeer serieus omgaat met auteursplicht: het is dusdanig ontworpen dat het garandeert dat alle wijzigingen en uitbreidingen van een vrij programma ook vrij zullen zijn. Er zit dus geen maas in de wet die het toelaat dat je veranderingen privaat kunt maken door het in een apart bestand op te nemen. Om dit gat te dichten heeft de GPL een voorwaarde die niet toestaat dat een auteursplichtig programma gekoppeld wordt met code die andere beperkingen of voorwaarden heeft—zoals de NPL.
Niet uitwisselbaar zijn met de GPL betekent nog niet dat een programma onvrij is; het werpt geen fundamentele morele bezwaren op. Het kan echter een serieus probleem worden voor de vrije software gemeenschap wanneer alle beschikbare code wordt gescheiden door twee licenties die je niet kunt combineren. Praktisch gesproken kan dat een groot probleem zijn.
Het oplossen door de GPL te wijzigen is een mogelijkheid, maar dat betekent afscheid nemen van de auteursplicht—wat meer kwaad dan goed zal doen. Het is ook mogelijk het probleem op te lossen door een kleine wijziging in de NPL (zie hieronder voor een specifieke manier om dit te doen).
NPL staat voor Netscape Public License maar GPL staat niet voor GNU Public License. De volledige naam van de licentie is de GNU General Public License, afgekort tot GNU GPL. Soms laten mensen het woord “GNU” weg en schrijven alleen GPL.
Aangezien het derde probleem het ergst is hoop ik dat mensen vriendelijk doch dringend Netscape willen wijzen op het belang van een oplossing hiervoor. Er is een oplossing bij de hand; ze hoeven alleen te beslissen hem toe te passen.
Hier een mogelijke manier om het koppelen van code onder de NPL met dat van code onder de GPL mogelijk te maken. Hiervoor hoeven alleen de volgende paragrafen aan de NPL toe te worden gevoegd (noot van de vertaler: de volgende twee paragrafen zijn vertaald uit het Amerikaans en een benadering van wat er zou moeten staan. Ze hebben geen juridische waarde):
Dit staat mensen toe om code onder de NPL te combineren met code onder de GPL en de combinatie te distribueren onder de voorwaarden van de GNU GPL.
Het geeft mensen toestemming om wijzigingen van dergelijke combinaties uit te brengen onder de voorwaarden van de GNU GPL—maar de eenvoudigste manier van uitbrengen is onder de NPL.
Wanneer mensen A.2 gaan gebruiken zullen hun wijzigingen alleen onder de GNU GPL voorwaarden worden uitgebracht; waardoor deze wijzigingen niet beschikbaar zijn voor Netscape om toe te passen in hun private versies. Het is logisch als Netscape dit niet zou kunnen waarderen.
Echter, de NPL geeft private software ontwikkelaars alle gelegenheid hun veranderingen onbruikbaar te maken voor Netscape—door de broncode in aparte bestanden te zetten en de combinatie te betitelen als Larger Work. Dit is zelfs makkelijker voor ze dan dat A.2 is voor GPL gebruikers.
Wanneer Netscape denkt te kunnen leven met de sores van (feitelijk) private wijzigingen, dan is het nog minder moeite te leven met wijzigingen onder de GPL. Wanneer Netscape er van overtuigd is dat de private software gemeenschap om praktische redenen geneigd zal zijn zijn wijzigingen terug te geven aan Netscape, zonder dwang, dan zou dezelfde redenering op moeten gaan voor de wereld van de vrije software. Netscape zou in moeten zien dat deze wijziging een acceptabele is en hem toe moeten passen om zo te voorkomen dat ze de vrije software ontwikkelaars met een serieus dilemma opzadelen.