Il 25 gennaio 2011 The Document Foundation (TDF) ha pubblicato LibreOffice 3.3, prima release stabile del fork di OpenOffice.org annunciato il 28 settembre 2010. È il primo momento in cui il codice mantenuto fuori dall’albero ufficiale di OpenOffice.org — le patch di Go-oo e quelle accumulate dalle distribuzioni Linux — torna in un unico sorgente, che si compila e si distribuisce come prodotto finito.

Contesto

Fino a quel momento OpenOffice.org era l’albero di riferimento per la suite office libera, sviluppato sotto il controllo di Sun Microsystems e poi di Oracle, dopo l’acquisizione chiusa nel gennaio 2010. Attorno a quell’albero esisteva da anni un fork pragmatico, Go-oo, mantenuto soprattutto da Novell dal 2007: dentro c’erano filtri d’importazione per i formati Microsoft più completi, correzioni di stabilità e funzioni che a monte venivano respinte o integrate con tempi non sostenibili. In parallelo, ogni distribuzione Linux applicava il proprio set di patch alla build di OpenOffice.org che impacchettava.

Il risultato era una frammentazione di fatto: chi usava Fedora, chi usava Ubuntu e chi scaricava il binario da openoffice.org partiva da sorgenti diversi, pur leggendo lo stesso numero di versione. Il fork del 28 settembre 2010 ha trasformato questa situazione informale in una struttura formale. TDF è nata come fondazione indipendente con sede in Germania, ha invitato Oracle a partecipare — invito declinato — e si è portata dietro buona parte del team che già lavorava su Go-oo e sui pacchetti delle distribuzioni.

Cosa contiene la 3.3

LibreOffice 3.3 parte da OpenOffice.org 3.3 — all’epoca ancora in beta lato Oracle — e ci innesta sopra il lavoro che fino ad allora viveva fuori dall’albero. Le funzioni che TDF segnala nell’annuncio di rilascio sono in gran parte proprio quelle arrivate da quei rami esterni:

  • import e modifica di file SVG in Draw;
  • formattazione e numerazione della pagina del titolo in Writer;
  • filtri d’importazione per Microsoft Works e Lotus Word Pro;
  • gestione migliore di fogli e celle in Calc;
  • estensione per l’importazione di PDF e console del relatore per Impress incluse di serie;
  • report builder rivisto.

A queste si aggiungono le novità che arrivano dal ramo OpenOffice.org 3.3: gestione delle proprietà personalizzate dei documenti, incorporamento dei font standard nei PDF generati, fino a un milione di righe per foglio in Calc, opzioni in più nell’importazione CSV, etichette di asse gerarchiche nei grafici, schede dei fogli colorate.

I componenti restano i sei storici: Writer (testi), Calc (fogli di calcolo), Impress (presentazioni), Draw (disegno vettoriale), Base (frontend database), Math (formule). Il formato nativo è OpenDocument Format (ODF), standardizzato come ISO/IEC 26300; l’import/export dei formati Microsoft (DOC/DOCX, XLS/XLSX, PPT/PPTX) eredita direttamente i filtri arrivati da Go-oo.

Il punto critico: build unica e codice ereditato

L’aspetto più interessante della 3.3 non è una funzione visibile, ma il fatto che l’albero sia tornato uno solo. Tenere tre livelli di patch sovrapposti — upstream, Go-oo, distribuzione — vuol dire portare e provare ogni correzione su combinazioni diverse, e accettare che lo stesso bug si comporti in modo diverso a seconda della build che lo ospita. Riunire i sorgenti elimina questo costo che torna a ogni rilascio e rende la stessa base verificabile da chiunque, a prescindere dal pacchetto.

L’operazione ha toccato anche il packaging: TDF segnala di aver fuso le versioni nelle varie lingue in un’unica build, riducendo di parecchio la dimensione dell’installer Windows rispetto alla distribuzione separata per lingua. È un dettaglio di logistica della distribuzione, ma pesa direttamente sul lavoro di chi impacchetta e di chi tiene su i mirror.

Sul piano legale, il fork non detiene il copyright del codice originario di OpenOffice.org e quindi non può rilicenziarlo a piacere: deve distribuire l’insieme sotto i termini ereditati. I nuovi contributi vengono accettati con licenza LGPLv3 o successive, una scelta che fissa i termini entro cui la base di codice può evolvere senza dipendere dalle decisioni di chi detiene il copyright originario.

Implicazioni sulla governance

Il motivo dichiarato del fork è procedurale, non tecnico. Nei mesi dopo l’acquisizione di Sun la community ha osservato alcune decisioni di Oracle su altri progetti open ereditati — tra cui lo stop di fatto a OpenSolaris nell’agosto 2010 — e ha scelto di costituire una fondazione indipendente prima che lo stesso accadesse alla suite office. È un fork preventivo: la struttura di TDF — board eletto dalla community, iscrizione aperta anche ai singoli contributori, infrastruttura propria per repository e bug tracking — è pensata per non concentrare il controllo in una sola azienda.

Per chi valuta l’adozione, il dato che conta è che il baricentro dello sviluppo si è spostato. Le distribuzioni Linux che già impacchettavano OpenOffice.org con le proprie patch ora hanno un upstream che quel lavoro lo integra per costruzione, invece di riceverlo come modifica esterna da riapplicare a ogni rilascio. A gennaio 2011 la posizione di Oracle sul ramo OpenOffice.org rimasto non è ancora definita pubblicamente, e questo apre una fase in cui due alberi nati dallo stesso codice procedono in parallelo.

Limiti

Una prima release dopo un fork eredita anche i difetti del codice di partenza. La 3.3 parte da una beta di OpenOffice.org 3.3, non dalla versione finale Oracle, e una parte della pulizia del codice legacy è ancora in corso. La fedeltà dei filtri Microsoft, per quanto migliorata rispetto all’albero ufficiale grazie a Go-oo, resta un terreno di compatibilità approssimata: la conversione di documenti con formattazione complessa va verificata caso per caso, non data per scontata. La continuità del fork, infine, dipende da una transizione di sviluppatori e infrastruttura avvenuta in pochi mesi; la sua solidità si misurerà sui rilasci di manutenzione successivi, non su questa prima pubblicazione.


Immagine di copertina: Logotipo orizzontale “LibreOffice” in stile flat su sfondo trasparente — logo di Christoph Noack, CC BY-SA 3.0 — https://commons.wikimedia.org/wiki/File:LibreOffice_Logo_Flat.svg