Sviluppatore sabota di proposito due sue librerie open-source popolari

10 Gennaio 2022 125

Negli scorsi giorni si sono verificati una serie di eventi che hanno riacceso il dibattito sul ruolo del software open-source, spesso gratuito, nel supportare quello che è di fatto uno dei settori più remunerativi di sempre. Il prolifico sviluppatore Marak Squires, attivo su GitHub con centinaia di progetti, ha introdotto volontariamente un bug che rende inutilizzabili due delle sue librerie più diffuse, note come faker.js e color.js (una crea dataset fittizi da usare in demo e presentazioni, l'altra aggiunge color coding alle console JavaScript), che sono usate da innumerevoli altri utenti (i contatori dei download sono rispettivamente a 2,5 e 22,4 milioni a settimana).

Le versioni sabotate contenevano codice che causava l'output di simboli e lettere strani, preceduti da una riga che recitava "LIBERTY LIBERTY LIBERTY". Nel file readme di uno dei due progetti chiedeva, in modo provocatorio, cosa fosse accaduto realmente ad Aaron Swartz, uno dei fondatori di Reddit e coinvolto nello sviluppo di realtà come Creative Commons e i feed RSS, successivamente accusato di furto di documenti per renderli gratis e liberamente accessibili e suicidatosi nel 2013. È importante sottolineare che nessuna delle due librerie sabotate ha mai incluso codice per condurre attività criminali, come backdoor, malware e virus.

La versione manomessa di faker.js è stata pubblicata su GitHub il 4 gennaio. In seguito alle segnalazioni degli utenti, la piattaforma di Microsoft ha sospeso l'account di Marak il 6 gennaio, ma l'ha riattivato quasi subito, visto che la versione manomessa di colors.js è andata online probabilmente il 7 gennaio. Più recentemente, colors.js è stata aggiornata di nuovo e ora è tornata a funzionare normalmente, mentre la versione più recente di faker.js (6.6.6) è ancora manomessa. È tuttavia sufficiente scaricare la versione precedente per aggirare il problema.

Tutta la vicenda ha i connotati di una presa di posizione "politica"/ideologica. Già a fine 2020 Marak aveva detto su GitHub che avrebbe smesso di lavorare gratis per supportare il business di aziende multimilionarie. "Prendetela come un'opportunità per inviarmi un contratto annuale a cinque zeri oppure fate un fork del progetto e mettete qualcun altro a lavorarci".

È interessante contestualizzare questo sviluppo con la grave vulnerabilità Log4jam (o Log4shell) che è emersa appena qualche settimana fa. Anche lì il bug risiedeva in un software libero e open-source, ma che viene nondimeno usato in un numero enorme di server internet, da quelli di Google, Microsoft e Amazon ai più piccoli e indipendenti. Anche lì, la responsabilità di risolvere il problema il più in fretta possibile è ricaduta su un team di volontari.


125

Commenti

Regolamento Commentando dichiaro di aver letto il regolamento e di essere a conoscenza delle informazioni e norme che regolano le discussioni sul sito. Clicca per info.
Caricamento in corso. Per commentare attendere...
ErCipolla

Ma certo, sono due concetti antitetici. Per definizione una licenza Open Source è "una licenza attraverso cui i detentori dei diritti favoriscono la modifica, lo studio, l'utilizzo e la redistribuzione del codice sorgente". Questa definizione non è compatibile con il modello "l'autore ha il controllo totale sul sorgente", non ha senso lamentarsi che una licenza open non ti dà controllo sul codice. Se vuoi il controllo totale sul codice non lo rilasci, fine.

Black_Codec

Probabile, o magari aveva già scritto alle aziende che usavano il suo software e non avendo ricevuto un contratto ha detto 0 per 0 meglio 0 per tutti. Sono sue scelte. Chi si lamenta dicendo che è poco professionale non ha torto ma deve mettersi nei suoi panni prima di aprire bocca e accusare. Ripeto la soluzione più corretta era quella di abbandonare il progetto e fare in modo che nessuno potesse più continuarlo, scrittura ex novo. Nessuna licenza garantisce questo, alla fine fork e continui. La tutela della proprietà intellettuale anche in questi casi sta praticamente a 0 (mio pensiero sia chiaro).
Conseguenze etiche dovrebbero avercene le aziende che hanno usato il suo codice a sbafo senza neanche fare una donazione, ok non eri obbligato ma "eticamente" saresti stato "costretto". Peccato che si punta il dito sulla sola etica dello sviluppatore e non di chi ne ha sfruttato il lavoro senza riconoscere nulla. Ricorda che le licenze (qualsiasi siano) non ti dicono di non riconoscere l'operato di chi ha realizzato il software, non ti vietano una donazione etc. Solo che semplicemente le aziende se ne sbattono.

Alessandro Di Stefano

io non voglio la testa dello sviluppatore e anzi github non ha diritto di bannarlo perché ha fatto una modifica in suo prodotto ed era lecito.
Inoltre la licenza MIT dice espressamente ("IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.") che non ci si puó rifare con lo sviluppatore per danni perché é una licenza senza garanzie, quindi lo sviluppatore ha ragione, ma i modi lo faranno passare dalla parte del torto. Anche se legalmente non avrà conseguenze ne avrà eticamente. Nessun azienda lo assumerà mai e quindi ha ottenuto il contrario di quello che voleva.

Black_Codec

A parte che era un esempio di mer nato dal suo di mer. Ritengo più pericolose le persone che continuano a pretendere la testa dello sviluppatore. Bene non lo assumessero ma per coerenza smettessero di usare il suo prodotto e se ne facessero uno tutto loro. Il punto è sempre lo stesso qualsiasi licenza open source non ti da diritto di ritirare qualcosa che è di tua proprietà intellettuale. Quindi qualsiasi licenza avesse usato non sarebbe cambiata realmente la cosa. Detto questo, lo sviluppatore che neanche legge il codice che ingloba / invoca o quel che vuoi nel suo progetto per quanto mi riguarda (nel caso di opensource) può tranquillamente andare a zappare la terra.

Black_Codec

"nessuna licenza open è pensata per questo" ed è quello che ti sto dicendo. Nessuna licenza open ti garantisce la reale proprietà intellettuale al punto che se decidi di chiudere basta si chiude e fine.

Alessandro Di Stefano

Istigazione al suicidio è un reato e la legge cercherebbe anche te eccome. Le tue idee sono criminose. Forse altri non capiscono bene l open source ma tu non comprendi la legge ed è molto peggio. Sei pericoloso. Sebbene lo sviluppatore poteva fare quello che ha fatto è fortemente infantile e stupido. E se già prima non lo assumevano figurati ora.

ErCipolla

Normale, il software è qualcosa di versionato che si evolve, non avrebbe senso che un cambio di licenza agisca retroattivamente su precedenti versioni, compromettendo così tutte le opere derivate, verrebbero a mancare i principi base su cui si fonda il concetto di open source, anzi non esisterebbe proprio un ecosistema di librerie open source con premesse del genere.

Se vuoi controllo totale usi una licenza proprietaria, nessuna licenza open è pensata per questo.

Scanato Khan
Black_Codec

Da puffolandia è tutto, linea allo studio.

Scanato Khan
Black_Codec

E da fantasia è tutto, linea allo studio.

Black_Codec
Scanato Khan
Black_Codec
Black_Codec

Vale ancora mica ti sta negando fi usarlo.... Senti o inizi ad argomentare seriamente o basta veramente ti sei reso sufficientemente ridicolo.

Black_Codec

No è diffamazione, ennesima riprova del livello esorbitante dei tuoi commenti.

Scanato Khan
Black_Codec

Ma tu frigni e parli di complotti doli etc.

Scanato Khan
Scanato Khan
Scanato Khan
Black_Codec

Aridaglieee niente più scrivi più dimostri di non aver chiare le cose. È come se te mettessi la tua ricetta per le caramelle e nella ricetta scrivessi aggiungere veleno per topi. Ora chi ha aggiunto il veleno per topi è un co..ione... Non può esser colpa tua, moralmente parlando potresti sentirti in colpa ma non hai cucinato te né obbligato loro ad usare la tua ricetta.

Black_Codec

Anche con le GPL varie sarebbe così. Nessuna licenza copre questa casistica mi sembra.

Black_Codec

Questo dimostra la tua ignoranza. Se lo store lo consente si, vengono rimosse dagli store che hanno policy stringenti su tali temi.

Black_Codec

E sti ca..i... Scorretto o no è un suo diritto e puoi lamentarti quanto ti pare ma sei in torto.

Black_Codec

No per ora ti stai solo dimostrando un frignone che non ha nulla a valorizzare le sue tesi.... Doloooo... Combloddoooo... Ma vai in mona. Documentati perché non ha fatto niente di illegale.

ErCipolla

Eh sì, ma quello dipende tutto dalla licenza che ha scelto inizialmente per il progetto, per quello dico che a mio avviso non c'è tanto da lamentarsi, sapeva (si presume) come funzionano le licenze MIT/BSD-like

Scanato Khan

OK, allora vanno bene anche le app gratuite con dentro malware, corretto?

Scanato Khan
Scanato Khan

Lo vuoi capire o no che è un comportamento scorretto?

Scanato Khan

Tu, perché fin dall'inizio hai scritto che il gioco è liberamente disponibile per tutti per qualunque scopo.

Scanato Khan

Domani affiggo un cartello in cui scrivo che regalo caramelle. Dentro ci metto veleno per topi. Io però non c'entro nulla, la responsabilità è di chi se le prende.

Black_Codec

Ahahaha perché lo pagavano? Non mi risulta e anche fosse, levagli lo stipendio ma non puoi impedirgli di farlo. Il codice è suo e basta, poteva fare molto peggio e invece ha preferito essere meno dannoso.

Black_Codec

Infatti berla è una mia scelta. Diverso è se io l'avessi acquistata, ma non è questo il caso.

Black_Codec

Si infatti intendevo dire che non puoi fare in modo cge nessuno possa ripubblicare il mio progetto se io ho deciso che non deve più esistere. La proprietà intellettuale non ti da il diritto di dire non lo può più usare nessuno neanche forkando.

Black_Codec

Mi hai rubato il gioco e lo rivoglio, tu tiri, io tiro. Il gioco si rompe e la colpa è solo mia che ho rotto il mio gioco ma tu ti lamenti perché non ci puoi più giocare. Chi dei due è il frignone?

Black_Codec

No, sei te che ti sei preso un'auto difettosa senza garanzie e ti lamenti che i freni non funzionano.

Black_Codec

Ha rotto la sua vetrina non quella degli altri.... Aho non ha modificato direttamente il tuo codice lo vuoi capire o no?

Scanato Khan

Eh no, caro! Lui ha scelto una licenza, e gli altri usavano il suo codice rispettandola. Se quella licenza non gli andava più bene poteva pensarci prima, oppure cambiarla.

Se io ho accettato di lavorare per X euro al mese, non è che dall'oggi al domani spacco tutto se non mi danno X più quello che decido io.
Se non mi sta più bene me ne vado e tanti saluti.

Scanato Khan

Facciamo così: l'anno prossimo per Natale ti regalo una bella bottiglia di spumate corretto col Guttalax.
Se la bevi e poi ti cachi addosso la responsabilità è tua, avresti potuto comprartela da solo o evitare di berla.
Io non sono obbligato in alcun modo a preoccuparmi di quello che bevi tu.

Scanato Khan

Sua vetrina che aveva detto chiunque avrebbe potuto prendere in quantità illimitate per qualunque scopo. Così aveva deciso lui.
Poi ha cambiato idea e ha spaccato le vetrine che gli altri avevano già preso.
Una scorrettezza fatta e finita.

Scanato Khan
Se io mi assemblo una macchina e arrivi te che mi dici ci posso fare un giro?


Se manometti di proposito i freni con l'intento doloso di farmi schiantare, sei sostanzialmente un criminale.

Scanato Khan
ErCipolla

Il progetto lo puoi cancellare se se il padrone del repository, chi te lo impedisce? Ovviamente però se qualcuno ha una copia del sorgente che tu precedentemente hai pubblicato sotto licenza permissiva ha il diritto di ripubblicarlo come fork. Questo però lo sai già quando decidi la licenza da usare per il tuo progetto, quindi c'è poco da lamentarsi.

Alla fine il successo del software open-source si basa anche sul fatto che qualcosa difficilmente "sparisce nel nulla", altrimenti appena a qualcuno girano le scatole si innescherebbe un effetto domino che non finisce più. Infatti non è un caso se i registry pubblici di pacchetti tipo NPM o NuGet hanno regole ben precise e molto stringenti su quando/se puoi cancellare un pacchetto pubblicato, anche se sei il possessore.

Black_Codec

Ma lui ha sabotato la sua libreria. Sei te che stai usando cose non tue come se fossero tue e ti lamenti se il proprietario fa quel che vuole con le sue cose

Black_Codec

Aridaglie... Travisi la realtà. Se io mi assemblo una macchina e arrivi te che mi dici ci posso fare un giro? Si ok ma poi te la tieni per un mese. Quando rivedo la mia macchina prendo e smonto le ruote. Te vieni da me e ti lamenti che ho sabotato la mia macchina per non fartela usare a te! Ma chi sei?!

Black_Codec

No no, ls vera soluzione sarebbe stato cancellare il progetto e fine per tutti. Senza possibilità di eseguire fork, ma questa possibilità non esiste, chissà perché...

Black_Codec

No chi ragiona come un bimbo di 6 anni o meno è chi rosica perché gli hanno levato il gioco e chiede il ban dell'account o lo critica. Ma scriviti una tua libreria o forka e lavoraci per fatti tua invece che frignare. Altrimenti potevi almeno fargli una donazione.

Black_Codec

Ma dolo di cosa? È codice suo e ci fa quello che vuole. Sbagli te a usarlo senza analizzarlo.

Scanato Khan

Buona fede???
Ma che razzo dici tu, qua c'è dolo, ed è una cosa gravissima.
Avesse cancellato il progetto, avrebbe fatto benissimo, ma sabotarlo di proposito è una cosa molto poco seria.

Games

Recensione Lenovo Legion Go, sfida ROG Ally a viso aperto

Tecnologia

Cyber Monday 2023: tutte le offerte, sconti, promo e acquisti da fare in diretta live

Games

Recensione Corsair Platform:6, modulare, regolabile e super robusta!

Articolo

Prime Video: tutti i film e le serie TV in arrivo a dicembre 2023