Weekend Prosjekt: Bli kjent med Kildekode med FOSSology


Hvis du arbeider med åpen kildekode programvare av noe slag – enten på jobb eller som frivillig – så du forstår viktigheten av lisensen compliance og holde styr på opphavsrett. Men som et prosjekt vokser, kan disse oppgavene bli vanskelig, selv når alle er på samme side. Det er akkurat det problemet som førte Hewlett Packard (HP) for å skape FOSSology, en åpen kildekode verktøy du kan bruke til å analysere en kildekodetreet for denne type metadata og mer. Denne helgen, hvorfor ikke sette den opp og grave i kildekoden – du kan bli overrasket over hva du finner.

FOSSology ble opprinnelig bygget som et internt verktøy i HP, for å hjelpe ingeniører følge det store selskapets IT governance-politikk når man jobber med åpen kildekode skrevet andre steder. Selv om din bedrift eller prosjekt er ikke så stor som HP, helst du blande kode fra forskjellige forfattere eller ønsker å låne en rutine fra en annen åpen kildekode, kan det bli vanskelig å opprettholde alle reglene. Enkelte lisenser er forenlig å kombinere i en kjørbar, mens andre trenger å være separate prosesser. Hvis du skreddersy en open source program for intern bruk, kan du også trenger å holde styr på forfatterskap – enda mer så hvis du sender lapper oppstrøms.

FOSSology er en klient-server applikasjon med et webbasert front end som tar seg av det meste av nøtter-og-bolter av disse oppgavene for deg. Brukere kan laste opp enkeltfiler eller pakke arkiver, deretter planlegge analysejobber. Serveren kan pakke ut og raskt søke gjennom tusenvis av filer, logge opphavsrett uttalelser, lisens uttalelser, og andre metadata. De kanoniske bruksområder for FOSSology omfatte lokaliserings filer i en større kode tre som har manglende, ufullstendige, eller uforenlig lisensiering – hendelser som kan skje ved et uhell, men forårsaker store hodepine lenger ned i veien.

Den nyeste utgaven er versjon 1.2.1, fra oktober 2010, og det kan gjenkjenne mer enn 600 forskjellige åpen kildekode-lisenser, inkludert mange distinkte versjoner og varianter på felles valg lisens. Den gjør dette ved å matche ordlyden i lisens selv, fanger inline referanser (slik som " Denne programvaren er utgitt under GPL2 "), eller til og med forkortede lisens utsagn (for eksempel en CC-BY-NC). Det kan også oppdage kode forfatterskap, gjennom inline opphavsrett uttalelser, navn og e-postadresser i kommentarer og eksterne forfattere filer. Forfatter funksjonen er ny i 1.2.x-serien, og viser at FOSSology vokser inn i en mer robust kode revisjon verktøy.

Installere FOSSology

FOSSology kommer pakket for de mest populære Linux-distribusjoner, inkludert Red Hat Enterprise Linux, Debian og Ubuntu. Den 1.2.1 utgivelsen kan være for ny for din distro sitt pakkesystem, men i så fall bør du vurdere å installere det fra kilden. Dette er spesielt viktig for Ubuntu 10.4 brukere, fordi den nåværende Debian FOSSology pakken er feilkonfigurert for Ubuntu. Spesialiserte instruksjoner for å korrigere emballasjen problemet er tilgjengelige på FOSSology webområde.

Hvis du vil installere fra kilde, vil du trenge en Apache webserver, PostgreSQL database, og en fersk PHP bygge. I tillegg finnes det en rekke lavere nivå avhengigheter som server side prosessen bruker til å pakke ut og behandle kildekoden. De fleste av disse vil allerede være installert på en produksjons Linux server, men det er en fullstendig liste på prosjektets nettsted.

Installasjonsprosessen inkluderer pre-installere og post-installere skript som sjekker avhengigheter, sette opp PostgreSQL database og tabeller, og installere lisens maler som danner ryggraden i lisensen skanneren. Denne prosessen faktisk tar lengre tid enn kilden-kompilering skritt, men det er morsomt å se listen over lisenser flyr forbi — hvis du trodde det åpen kildekode økosystem besto av bare GPL-versus-BSD, kan du finne det lærerikt.

En kort tekstutdrag fra FOSSology sin kavalkade av åpen kildekode-lisenser ...

 
 Opprette standard kanonisk navn: Free Art License v1.2 
 Opprette standard kanonisk navn: FreeBSD 
 Opprette standard kanonisk navn: Gratis klausul 
 Opprette standard kanonisk navn: Free Software License B v1. 0 
 Opprette standard kanonisk navn: Free Software License B v1.1 
 Opprette standard kanonisk navn: Freetype 
 Opprette standard kanonisk navn: Fri bruk ingen endring klausul 
 Opprette standard kanonisk navn: Gratis med copyright klausulen 
 Opprette standard kanonisk navn: Gratis med filer klausul 
 Opprette standard kanonisk navn: FSF 
 Opprette standard kanonisk navn: GFDL 
 Opprette standard kanonisk navn: Giftware 
 Opprette standard kanonisk navn: Glide 
 Opprette standard kanonisk navn: GNU Free Documentation License v1.1 
 Opprette standard kanonisk navn: GNU Free Documentation License v1.2 
 Opprette standard kanonisk navn: gnuplot 
 Opprette standard kanonisk navn: Regjeringen klausul 

Når etter installere scriptet er ferdig, kan du kjøre en test (som root) med /usr /local /lib /fossology /fossology-planleggeren -t. Dette vil sjekke konfigurasjonen og rapportere eventuelle feil. Sist men ikke minst, må du konfigurere Apache server for å tjene opp FOSSology front-end. App bruker heller atypisk plassering /usr /local /share /fossology /www /for sitt nettinnhold; INSTALL filen har Apache virtuellvert konfigurasjons eksempler for å komme i gang

Analyze This

FOSSology standard admin brukernavn og passord er ". fossy " /" fossy " – så det første du bør gjøre når webgrensesnittet kjører er å endre dem. Det er også en god (men ikke obligatorisk) idé å opprette en egen brukerkonto i tillegg til admin-kontoen

webgrensesnitt har seks hovedfunksjoner er oppført øverst på skjermen. Søke, bla opp , organisere, Jobs, og Admin. Det er også en " Foreldet " menyelement som holder utgående funksjoner, men du bør ikke bli vant til å se dem. Du kan laste opp en kildekode pakken fra Last siden – enten laste opp en lokal fil, og leverer en fil URL fjernkontroll, eller angi en fil som allerede er på webserveren (selv om det må kunne leses av Apache prosessen for at dette skal fungere).

Når du laster opp en fil, har muligheten til å planlegge noen av FOSSology analytiske jobber mot filen, slik at du kan legge dem til i jobbkøen uten forsinkelse. Den nåværende versjonen tilbyr seks analyse " agenter " – lisenser, opphavsrett, MIME-typer, metadata, emballasje, og ". bøtter " Skuffer er brukerdefinerte bassenger av lisenser som du kan bruke til å forenkle din analyse (si, " gratis " og " ufritt, " eller " kompatible med mittprosjekt " og " uforenlig med mittprosjekt "). Du kan også planlegge jobber etter at opplastingen er ferdig ved å gå til jobb - > Agenter menyelement.

Også under Jobs menyen finner du kø, der du kan spore fremdriften av analysejobber planlagt på serveren, og MyJobs, som viser bare de oppgavene som du personlig har planlagt . Hvis du har administrator-nivå privilegier, kan du tilbake, slette eller endre prioriteten for bestemte jobber.

Bla gjennom, søke og organisere funksjoner er der for å tilby brukerne tilgang til et vedvarende bibliotek av FOSSology dataanalyse . Du kan gruppen opplastede filer til nestet mapper (som kan være svært nyttig for bedrifter med ulike prosjekter som ligger på samme server), eller søke etter en bestemt fil hvor som helst i kilde depotet.

I praksis kan du bli mest opptatt av til enhver tid med å finne filer som sams et bestemt sett av kriterier – si, filer som FOSSology oppdaget ingen lisens i det hele tatt. Filen nettleser er utviklet for å hjelpe deg å gjøre det. Du kan navigere gjennom de opplastede filer og få synspunkter på data basert på alle FOSSology analysejobber. Sortering av lisensen, med brukerdefinerte bøtter, eller ved opphavsrett

Egenskaper og begrensninger
< p> Til tross for den lange listen av 600+ kjente lisenser, er det viktig å huske at FOSSology ikke kan automatisk oppdage hver lisens mulig, fordi enhver person kan omformulere eller punge en eksisterende lisens og sleng det på hans eller hennes kildekoden til enhver tid . En konsekvens er at FOSSology gir deg et godt bilde av lisens og opphavsrett utgjør av en blokk med kode, men selv de avanserte heuristikk er ikke en erstatning for å undersøke koden selv når det er problemer.

I en stort prosjekt, kan du ha C eller C ++ kildekode, skall-skript, SQL, Python, og brukerskapte makroer. FOSSology kanskje oppdage GPLv3 lisens på hovedprogrammet, ingen lisensinformasjon om makroer, og en løst definert " Ingen kommersiell bruk " setningen i SQL. Hvordan de passer sammen, kan ikke fastsettes automatisk; det kan være at fordi SQL er ikke nødvendig for å gjennomføre programmet, er det ikke en GPL brudd å kombinere det i en pakke med GPL'ed C /C ++. På den annen side, hvis det brukes som en del av byggeprosessen, er det sannsynligvis ville bli betraktet som en del av en " avledet arbeid " under GPL, og du vil trenge for å kontakte forfatteren for å be om lisensiering. Hvis forfatteren e-postadresse eller URL ligger et eller annet sted i kommentarfeltet, er du heldig; ellers kan du måtte skjære og skrive koden.

FOSSology gjør en god jobb med å jobbe rundt disse områdene av usikkerhet. Først, selv om lisens maler inneholder muligheten til å matche spesifikke versjoner av lisenser (si GPLv2 versus GPLv3), det prøver ikke å strengt kategorisere alle filene den finner, hvis resultatet er tvetydig. I stedet, det inkluderer bredere kategorier for filene med ubestemmelig lisensiering. Second, " bøtte " Systemet gjør det mulig å gjøre din egen kategorisering. Bøtter kan defineres som passer på flere parametere, bruker logiske operatører, og du kan alltid redigere dine eksisterende bøtte definisjoner og re-skanne koden depotet. Det kan ta et par prøver å definere din egen kategorisering ordningen og gjøre det passer perfekt

Den siste ting å merke seg om FOSSology er at selv om dokumentasjonen bruker begrepet ". Depotet, " systemet ikke er et versjonskontroll eller kildekoden styringsverktøy. Det er et hjelpeverktøy, en som din bedrift eller prosjekt kan bruke i forbindelse med en VCS, men det først og fremst laget for å hente data fra en eksisterende kropp av kildekoden. Uansett hva politikken du har på plass som FOSSology hjelper deg granske – lisensoverholdelse, copyright oppdrag, etc., – FOSSology kan hjelpe deg med å sjekke inn og sjekke ut et stort volum av arbeid. Men det vil ikke gjøre dine bidragsytere automatisk følge alle reglene

Extra Credit:. Agents of the Future

Uten tvil, holde styr på lisenser og opphavsrett data for en programvare-prosjekt er vital importere til åpen kildekode – opphavsretten er grunnlaget for hva som gjør åpen kildekode arbeid og holder fri programvare gratis. Men FOSSology er et fleksibelt nok system at det kunne gjøre andre ting i tillegg til disse viktige oppgavene

Programmet er modulbasert design.; alt fra filen-unzip-og-unpacker til lisensen skanneren er bare en " agenten " at FOSSology er planleggeren forvalter i jobbkøen. Det er spennende nye muligheter på prosjektets veikart; andre midler som vi kan se i fremtidige utgivelser.

Noen forlengelse av eksisterende funksjonalitet, for eksempel muligheten til å legge til eller endre lisenser til utvalgte filer direkte i FOSSology søknaden. Andre bygger appen ut i nye retninger, som utfører en diff mellom to kilde trær, eller tagging grener og filer. Det kan være litt usannsynlig, men det er mulig at fremtidige versjoner av verktøyet vil tilby utviklere tettere integrering med VCSes og IDE. Det ville sikkert være gode nyheter; noen verktøy som gjør lisensoverholdelse lettere er til nytte for hele åpen kildekode. Anmeldelser