Interview met A. Cord-Landwehr over het aannemen van REUSE in de KDE-gemeenschap
In slecht drie jaren heeft ons REUSE-initiatief licentiepraktijken van tenminste 500 projecten succesvol veranderd. 2020 Markeert weer een succesvol jaar met haar aanname door onder andere NGI0-projecten, een Corona Waarschuwings-app en KDE. We maakten gebruik van deze gelegenheid om met Andreas Cord-Landwehr te praten over het aannemen van REUSE in de KDE-gemeenschap.
De FSFE lanceerde haar REUSE-campagne in 2017 en zij heeft sindsdien niet alleen vele belangrijke updates ontvangen maar ook overweldigende internationale aandacht. Na de publicatie van versie 3.0 vorig jaar hebben we onze aandacht gericht op het steunen van Vrije Softwareprojecten bij het aannemen van onderliggende beste praktijken. En 2020 markeert weer een succesvol jaar van dit initiatief.
Aan de ene kant is dit te danken aan FSFE's rol als lid van het consortium Next Generation Internet Zero (NGI0). In deze rol assisteert FSFE's juridische team alle deelnemende softwareprojecten met welke uitdagingen op het gebied van auteursrecht en licenties dan ook waar ze mee te maken krijgen. En we moedigen projecten aan en assisteren ze bij het naleven van REUSE. We bekijken in het kader van onze betrokkenheid bij NGI0 meer dan 150 projecten die zich in het proces van het aannemen van de REUSE-specificaties bevinden. Velen van het voldoen al aan het naleven van REUSE.
Onlangs raakten we ons bewust van een erg prominent project dat zich aan had gemeld voor onze beste praktijken op het gebied van REUSE: de Duitse Coronawaarschuwings-app-server en haar iOS-app. Dit is weer een mijlpaal in onze boodschap dat alle Corona tracerings-apps die met publiek geld worden ontwikkeld als Vrije Software gepubliceerd moeten worden. Daarna volgde het door Vrije Software-hackers bereikte grote succes met betrekking tot een "Corona Waarschuwings-app"-versie die compleet vrij is van voorafgaande afhankelijkheden van Google.
Maar het nieuws waar we met betrekking tot REUSE dit jaar het meest blij mee waren had te maken met een project dat nog prominenter is in onze gemeenschap: een van de grootste en oudste Vrije Software-projecten, de bekende KDE-gemeenschap, voegde REUSE toe aan haar licentiebeleid en zij migreerden al hun raamwerken naar de aanbevolen standaard. Om licht te werpen op de redenen en praktijken achter deze enorme stap hielden we een interview met Andreas Cord-Landwehr, zeer ervaren ontwikkelaar bij KDE.
Andreas Cord-Landwehr nam in 2011 deel aan de KDE-gemeenschap en droeg sinds die tijd met name bij aan KDE's educatieve software-applicaties. Zijn belangrijkste interesses zijn vandaag de dag KDE-raamwerken en het verkennen van het gebruik van KDE-software in ingebedde systemen. Hij gelooft dat Vrije Software een cruciale factor is bij het oplossen van vele actuele problemen op een manier die propriëtaire software nooit zou kunnen bereiken.
FSFE: Hoe raakte u zich bewust van het REUSE-project? Hoe kan iemand zich de weg voorstellen van het komen op een idee tot de huidige implementatie in zo'n grote gemeenschap als KDE?
Cord-Landwehr: Tijdens onze jaarlijkse KDE-conferentie in 2019 hadden we een werkgroep voor het plannen van de volgende belangrijke publicatie van onze bibliotheken, beter bekend als KDE Frameworks. Tijdens die sessie hebben we gepraat over het verbeteren van onze licentieconsistentie door het introduceren van SPDX identifiers, een kern-element van de beste praktijken van REUSE. Ons doel was het vastleggen van automatische gereedschappen die zouden helpen bij het zekerstellen van de kwaliteit van licentieverklaringen. Dit is nogal belangrijk voor KDE omdat we een lange geschiedenis hebben en er zelfs bestanden in onze codebasis zijn die ouder zijn dan sommige van onze bijdragers. Die bestanden kunnen door de jaren heen veel zijn veranderd en vele licentieversies hebben gehad.
"Van de buitenkant zou het erop kunnen lijken dat het proces van beslissen over en implementeren van zoiets als REUSE moeizaam gaat in een grote gemeenschap. Maar het ging eigenlijk best wel snel."
Van de buitenkant zou het erop kunnen lijken dat het proces van beslissen over en implementeren van zoiets als REUSE moeizaam gaat in een grote gemeenschap. Maar het ging eigenlijk best wel snel: om te beginnen stuurde ik een mail met een voorstel naar onze gemeenschapslijst om de discussie te starten. In antwoord hierop maakte men mij voor het eerst bewust van het REUSE-initiatief. En omdat de feedback nogal positief was resulteerde de discussie in een voorstel om ons licentiebeleid te veranderen met als doel om het REUSE-compatibel te maken. Dit voorstel werd versterkt met een gedetailleerde blog inclusief de achtergrond van en de argumenten voor het volgen van REUSE.
Tja, de discussie ging snel naar "Oké, laten we dit doen" - en aldus deden wij. We hebben natuurlijk wel even gewacht tot iedereen bewust was van deze verandering.
Welke KDE-raamwerken voldoen aan REUSE?
KDE Frameworks is een set bibliotheken bovenop Qt. Veel van deze bibliotheken bieden op zich nuttige functionaliteit, zoals een bibliotheek voor het omgaan met archiefbestanden zoals zip, een bibliotheek voor het genereren van barcodes, een UI-raamwerk voor aanraak-interfaces, en zo voort. En er zijn er ook die helpen om KDE-software meer consistent en geïntegreerd te maken. Onze KDE-raamwerken zijn als zodanig een product op zich en vooral de eerste groep bibliotheken worden gebruikt in veel projecten en bedrijven die bovenop Qt bouwen. Voor deze 'klanten' van onze raamwerken is het erg belangrijk om een duidelijke licentieverklaring te hebben evenals manieren om zeker te stellen dat de verklaring waar is.
"We zijn best veel tijd bezig met het handmatig controleren van licentieconsistentie en zelfs het opnieuw vaststellen van licenties op bestanden. Voor mij was het een cruciaal doel om dit proces te vereenvoudigen en te verbeteren door middel van automatische controles en gereedschappen."
Waarom is het voor KDE eigenlijk belangrijk om licenties en auteursrecht van hun code te verduidelijken?
We hebben vele bibliotheken met broncode afkomstig uit verschillende decennia en die oorspronkelijk zelfs voor een andere bibliotheek zijn ontwikkeld. Om er zeker van te zijn dat we nog steeds distribueerbare historische documenten ontvangen hebben we een licentiebeleid dat de aandacht richt op verplaatsbaarheid van broncode binnen onze codebasis. Toch kunnen er fouten worden gemaakt en we zijn best veel tijd bezig met het handmatig controleren van licentieconsistentie en zelfs het opnieuw vaststellen van licenties op bestanden om een gewenste uitgaande licentie van een bibliotheek op applicatie te verkrijgen. Voor mij was het een cruciaal doel om dit proces te vereenvoudigen en te verbeteren door middel van automatische controles en gereedschappen.
Heeft u ooit andere aanpakken van gestandaardiseerde licentie-inspanningen geprobeerd? Wat bevalt u in het bijzonder aan REUSE?
Door de jaren heen zag ik andere aanpakken voor het standaardiseren van licenties maar uiteindelijk heeft REUSE voor mij twee cruciale eigenschappen: zelfs eenvoudige gereedschappen of scripts zijn voldoende om de REUSE-naleving te controleren en data uit de licentieverklaringen te krijgen. Dit is belangrijk omdat het in staat stelt om gereedschappen te creëren die zijn aangepast aan de behoeften van uw project. Ten tweede richt REUSE zich op gebruikersgemak voor ontwikkelaars. In een grote gemeenschap zoals KDE zijn er vaak nieuwkomers of eenmalige bijdragers en het helpt veel als zij licenties gemakkelijk correct en consistent kunnen verklaren.
Met welke stappen en gereedschappen bereikte u complete REUSE-naleving in de KDE-raamwerken?
Het belangrijkste gereedschap dat we voor onze conversie gebruiken is licensedigger. Dit is een zelfgemaakt gereedschap waarmee ik ben begonnen om slechts traditionele licentie-headers, met al hun eigenaardigheden en grappige verschillende verklaringen, te converteren naar goed opgestelde REUSE-compatibele licentie-headers. Het helpt ook bij de initiële conversie van een code-pakketbron bij het willen afdwingen van een erg strikt licentiedetectiemechanisme en het maakt mogelijk om de aandacht te richten op het beoordelen van referentie-licentieteksten die door het gereedschap zijn toegevoegd in plaats van het beoordelen van iedere afzonderlijke licentie-header wanneer die wordt vervangen. Zodra een pakketbron wordt geconverteerd naar REUSE-compatibiliteit stappen we voor kwaliteitscontrole over op het REUSE-gereedschap.
Een ander gereedschap, nog in opkomst, is een 'CMake build system plugin' die ik creëerde om het REUSE-gereedschap samen met de bouvsysteeminformatie voor te bereiden, in het bijzonder voor het bepalen van welk bronbestand gecompileerd is in welk historisch document. Dit stelt in staat om licentieconsistentiecontroles zo eenvoudig als enkelvoudige testen te genereren, die de ontwikkelaar waarschuwen als per ongeluk incompatibele licenties worden gecombineerd.
"Geloof het of niet, er zijn leukere dingen in de wereld om de doen dan de hele dag licentieverklaringsconversies te beoordelen."
Wat zijn de volgende stappen voor REUSE in KDE?
Onze codebasis is groot en belangrijke delen zijn nog niet geconverteerd naar REUSE-compatibiliteit. Maar er is vooruitgang! En ik ben erg blij dat deze vooruitgang van verschillende mensen komt en niet van slechts een persoon. Geloof het of niet, er zijn leukere dingen in de wereld om de doen dan de hele dag licentieverklaringsconversies te beoordelen :-)
Als u iets in REUSE zou kunnen veranderen of verbeteren, wat zou het dat zijn?
Tot nu toe hebben we het vooral gehad over inkomende licenties. Maar ik denk dat het voor gecompileerde talen zoals C++ belangrijk is om ook te kijken naar historische binaire documenten en hun uitgaande licenties. Dit is een taak die vele distributies de afgelopen jaren met aangepaste licentiecontroleurs en een enorme hoeveelheid menselijke beoordelingen hebben uitgevoerd om ervoor te zorgen dat de bronlicenties compatibel zijn met de gedistribueerde uitgaande licenties.
Ik geloof dat het mogelijk is om een manier te vinden die de uitgaande licentie op een gestandaardiseerde manier stelt zodat deze verklaringen herbruikbaar zijn voor gebruikers van een historisch binair document. Dit zou ook een geheel nieuwe dimensie openen voor geautomatiseerde licentiecompatibiliteitscontroles.
Heel erg bedankt voor dit interview!
Als u het REUSE-initiatief leuk vindt, overweeg dan alstublieft om te doneren aan de FSFE. Help ons om door te kunnen werken en meer projecten te helpen bij het naleven van REUSE. Met deze knop kunt u uw donatie toewijzen aan de financiering van het REUSE-project en helpen om onze boodschap te laten horen.
Verder kunt u ons zoals Greg Kroah-Hartman helpen door de boodschap over ons REUSE-initiatief te verspreiden. Stel mensen in kennis over de voordelen van gestandaardiseerde en door machines leesbare licenties door de REUSE-richtlijnen te volgen, wijs ze op de REUSE-thuispagina of schrijf erover in uw favoriete communicatiekanalen. U kunt voor uw promotie gebruikmaken van onze nieuwe screencast.
We nodigen bedrijven uit om REUSE-sponsors te worden en het REUSE-initiatief duurzaam te steunen.