Perché AVM ha rilasciato il codice sorgente del router FRITZ!Box?

Nel 2021, Sebastian Steck, uno sviluppatore indipendente, ha chiesto ad AVM di condividere il codice sorgente di un router FRITZ!Box che aveva acquistato, utilizzando i diritti concessi dalla licenza GNU GPL. Ecco cos'è successo.
Perché AVM ha rilasciato il codice sorgente del router FRITZ!Box?

Correva l’anno 2021 quando uno sviluppatore indipendente, Sebastian Steck, ha acquistato un router AVM FRITZ!Box. Steck aveva la necessità di applicare una modifica a basso livello sul comportamento del router FRITZ!Box, adattando il funzionamento del dispositivo alle sue specifiche esigenze. La richiesta sarebbe caduta nel vuoto se AVM non avesse utilizzato componenti software sotto licenza GNU/GPL. Così, il programmatore ha contattato direttamente AVM e citando le condizioni di licenza ha richiesto al produttore di condividere il codice sorgente del router da lui acquistato (per la cronaca, un Fritz!Box 4020).

Cosa c’entrano le licenze GPL e LGPL con i router FRITZ!Box

La GNU General Public License (GPL) e la versione “Lesser” (LGPL) rappresentano pietre miliari nel mondo del software libero, garantendo agli utenti la libertà di utilizzare, modificare e distribuire il software. Il copyleft costituisce il cuore delle licenze GPL e LGPL. Contrariamente al copyright tradizionale, infatti, lo schema copyleft garantisce che le modifiche al software restino disponibili e accessibili per tutti gli interessati.

Il firmware dei router FRITZ!Box poggia il suo funzionamento su una versione modificata del kernel Linux oltre che su una serie di librerie appartenenti al mondo del software libero.

Le librerie utilizzate da AVM nel suo firmware

AVM ha utilizzato diverse librerie e componenti del software libero nel firmware dei router FRITZ!Box. Le principali librerie open source adoperate includono le seguenti:

  • uClibc: Una libreria C progettata per sistemi embedded, che fornisce funzionalità per la gestione delle connessioni di rete e l’invio di dati. Questa libreria è stata aggiornata nelle versioni più recenti del firmware.
  • libblkid: Libreria a basso livello utilizzata per l’identificazione e la gestione delle informazioni sui dispositivi di archiviazione, come dischi fissi, unità flash e singole partizioni. Fondamentale per le applicazioni che devono interagire con i dispositivi di archiviazione e gestire file system, in particolare in ambienti Linux.
  • libexif: Questa libreria è impiegata per gestire i metadati EXIF delle immagini.
  • libosip2: Una libreria che facilita l’utilizzo del protocollo SIP (Session Initiation Protocol) e consente quindi la gestione delle comunicazioni VoIP.

Mentre il kernel del sistema operativo FRITZ!OS è distribuito sotto licenza GNU GPLv2, le librerie sopra citate utilizzano la licenza LGPLv2.1. Vi è quindi l’obbligo di rendere disponibile il codice sorgente per i soggetti che ne facciano richiesta.

Il tentativo di recuperare il codice sorgente completo

Steck mirava a modificare una libreria di rete di FRITZ!OS per monitorare le connessioni e i dati inviati dal dispositivo. Beneficiando dei diritti accordati agli utenti dalle licenze GPL e LGPL, ha chiesto ad AVM di fornirgli il codice sorgente del firmware del dispositivo riscontrando però che quanto inviato dall’azienda risultava incompleto. Mancavano ad esempio script essenziali per la compilazione, come i makefile e i riferimenti alle variabili d’ambiente.

Lo sviluppatore ha quindi chiesto supporto alla Software Freedom Conservancy (SFC), organizzazione no-profit che si dedica alla protezione e alla promozione della libertà del software, in particolare del software libero. Ne è scaturita una disputa che ha portato AVM, in tempi recenti, a condividere il codice sorgente completo dei firmware richiesti (versioni versioni 6.83 e 7.02, compatibili con FRITZ!Box 4020), script per l’installazione compresi.

Dove trovare il codice sorgente del firmware FRITZ!Box

SFC ha pubblicato il codice sorgente fornito da AVM: in particolare, la versione indicata come “Round 3 source candidate” è quella che soddisfa, secondo l’organizzazione, tutte le prescrizioni contenute nella licenza LGPLv2.1. Proprio la condivisione di questo archivio ha di fatto posto fine al litigio con Steck.

AVM sostiene la comunità open source

AVM, da parte sua, ha descritto l’esito della vertenza con Steck e SFC come il risultato di un accordo congiunto. Poiché il procedimento si è concluso con un’intesa stragiudiziale, entrambe le parti si sono astenute dal presentare ricorso.

Il produttore tedesco ha sottolineato il suo impegno nel supportare attivamente la comunità open source, come il progetto Freetz e altre iniziative analoghe, e ciò proprio grazie alla condivisione del codice sorgente dei suoi router.

Leggendo i documenti del tribunale, AVM ha dichiarato di aver rispettato gli obblighi previsti dalla LGPL. L’azienda ha sostenuto di aver correttamente offerto accesso al codice sorgente e ha affermato che i materiali forniti erano sufficienti per consentire agli utenti con competenze tecniche di compilare e installare le librerie modificate sui loro dispositivi. Steck, come spiegato in precedenza, ha contestato quest’affermazione, evidenziando che il codice sorgente fornito mancava di componenti essenziali necessari per un’installazione corretta.

La vicenda si è conclusa positivamente a luglio 2024 quando AVM ha presentato a Steck e SFC il codice sorgente richiesto.

Credit immagine in apertura: AVM

Ti consigliamo anche

Link copiato negli appunti