Ciao Damiano,

ho letto la decisione l'altro giorno, ma mi ha lasciato perplesso.

On Thu, 23 Dec 2021 13:18:35 +0100 Damiano Verzulli wrote:

> Scopro stamattina che è di qualche giorno fa la decisione del
> Tribunale di Venezia su una questione legata al rispetto dei vincoli
> della GPL.
> 
> Sembra essere la prima nel suo genere, nel nostro Paese.

Il fatto che la GPL venga riconosciuta anche in Italia come valida e
vincolante è molto positivo.

In particolare questo passaggio

```
In ogni caso la diffida non è stata seguita da adempienza ex art. 8
comma 3; pertanto la licenza è venuta meno, e Ovation può validamente
adire gli strumenti inibitori.
```

sancisce l'efficacia in Italia delle clausole di terminazione delle
licenze libere.


Ma a leggere con attenzione l'ordinanza del giudice[1] la mia
impressione è che entrambe le parti abbiano fatto un bel po' di casino.
Ed anche certe affermazioni del Giudice sembrano confuse (se non
propriamente errate).

A quanto posso leggere, "Ovation vanta diritto patrimoniale d’autore
avendolo acquisito in forza di un rapporto di consulenza e contratto
d’opera verbale, che sarebbe documentato da fatture da essa pagate."

Nota la parola "verbale".

"Non è chiaro come i resistenti ritengano fosse possibile stornare utili
dalla società a beneficio dei resistenti (che non se ne dichiarano
soci; non risultano documenti che permettano di ricostruire le
compagini delle due società in causa) ma ciò non rileva ai fini che
interessano: essendo invece rilevante che i resistenti ammettano di
fatto la concessione a Ovation dei diritti di sfruttamento, nella forma
della licenza GNU citata."

Questa ammissione "di fatto" è interpretata dal Giudice come una
concessione ESCLUSIVA di diritti "nella forma della licenza GNU citata",
ma la GNU GPLv3 [2] NON CEDE i diritti d'autore (o alcun altro
diritto) ma concede permessi specifici e NON esclusivi.

Il Giudice poi scrive "Pertanto la difesa qui svolta sulla qualità di
creatori dei resistenti è inconferente: è evidente che anche i
“creatori” sono tenuti a rispettare il diritto come da essi
volontariamente conferito a Ovation, potendo certamente continuare a
sviluppare e derivare da DCE anche in proprio, ma rispettando i termini
della GNU a beneficio di Ovation."

Ma poiché la GNU GPLv3 NON è un copyright assignment questa
consequenzialità non esiste, tant'è che la Free Software Foundation
suggerisce di cederle il copyright esclusivo dei progetti GNU, per
poter agire in giudizio a tutela della libertà degli utenti in caso di
violazioni. [3]

Questo errore interpretativo del Giudice, imho, apre alla ragionevole
possibilità di ribaltare la sentenza in un eventuale ricorso.
Alle informazioni disponibili, SE la esplicita cessione del copyright
non è documentabile da Ovation con qualcosa di più di accordi verbali,
allora il Giudice ha preso una seria cantonata.


Un altro passaggio tecnicamente problematico della sentenza è questo:
```
Non sono certo le funzionalità a costituire il terreno di confronto dei
software, ma i codici sottostanti.

Pertanto è piuttosto il rinvenimento di stringhe di codice uguali o
simili, o in numero non minimo, a rilevare per dare corpo alla tesi
della derivazione: e non certo l’esistenza di parti diverse. 

Due diversi programmatori che operino indipendentemente e creino diversi
programmi ab initio esprimono naturalmente con codici diversi le
operazioni che il programma deve eseguire; e lo stesso programmatore,
che realizzi due programmi diversi, di cui uno ceduto ad altri, può e
deve usare diversi codici, così come un romanziere non può riciclare
frasi e capitoli da un’opera ad un’altra, se della prima abbia ceduto
il diritto di sfruttamento economico.
```

Anche se la deduzione in questo caso fosse corretta (questo specifico
software è un opera derivata dell'altro specifico software), il
ragionamento generale portato a supporto di tale deduzione è
pericolosamente superficiale: non tiene conto delle API disponibili che
possono dar luogo a notevoli somiglianze ANCHE fra opere completamente
distinte.

In altri termini, due diversi programmatori che operino
indipendentemente e creino diversi programmi ab initio, 
in molti casi concreti produrranno codice simile.

Certamente è sempre POSSIBILE che un software venga scritto in modi
diversi, scientemente o meno, ma equivalenti, ma non è una condizione
di per sé probabile in presenza di API pre-esistenti con cui bisogna
interagire.

Il paragone fra il programmatore ed il romanziere è invece corretto
(MA bisogna verificare che la cessione del diritto di sfruttamento
economico sia esclusivo. E forse anche che la seconda opera riduca o
infici o riduca in qualche modo tale diritto).


Poi il Giudice scrive:
```
In verità, la presenza di 8200 righe di codice su 300.000 identiche è
sufficiente, in questa sede cautelare, a denunciare la derivazione di
E-Addons (che pacificamente è cronologicamente successivo ) da DCE.
```

Anche qui, sebbene la derivazione probabilmente esiste, meno del 3% di
linee di codice corrispondenti non la dimostrano affatto!

Il modo corretto di provare la derivazione fra due opere software è
studiare la storia del loro sviluppo, analizzando i repository
che ne tracciano i cambiamenti.


In occasione della violazione da parte di un ingegnere di Google
della GPLv2 che rimosse il mio nome da Harvey senza rimuovere il mio
codice [4], io avevo esplicitamente richiesto che preservassero la
storia del repository (`git revert`).

Loro riscrissero (`git rebase`) tale storia, mischiando in enormi
commit anche modifiche del tutto identiche alle patch che avevo
contribuito.

Anche volendo proprio credere alla buona fede, tale scelta fu un errore
proprio perché riscrivendo la storia, oltre a spaccare tutti i fork
precedenti su GitHub, persero la possibilità di dimostrare di NON aver
incluso le mie patch e di aver riscritto esattamente e stesse modifiche.


Perlatro il Giudice ha riconosciuto la questione dell'interoperabilità:
```
L’ordine inibitorio viene dato con salvezza di un quantum minimo di
righe di codice (che si quantificano in 500) a salvaguardia di identità
accidentali o inevitabili, in particolare per salvaguardare la
interoperabilità con terzi
```
ma senza sapere come queste 500 righe di codice siano state calcolate,
risulta impossibile dire se sia una "salvaguardia" ragionevole o meno.

Non conosco WordPress (mai installato o programmato), ma Linux espone
oltre 350 chiamate di sistema [5]: se si trattasse di un eseguibile
di quella dimensione per Linux sarebbe molto probabile trovare ben più
di 500 linee di codice identiche o quasi identiche rispetto a qualsiasi
altro programma.


Per questo per poter dimostrare la derivazione fra due sarebbe meglio
studiarne l'evoluzione patch per patch.


Giacomo

[1]
https://web.archive.org/web/20211223135503/https://e-addons.com/ordinanza-13-12-2021-n-5937-2021/

[2] https://www.gnu.org/licenses/gpl-3.0.en.html

[3] La FSF simultaneamente concede una licenza allo sviluppatore stesso
    di fare qualsiasi cosa con il proprio software, incluso il diritto
    rilicenziarlo in modo proprietario, in modo che la libertà dello
    sviluppatore non venga meno.
    https://www.gnu.org/licenses/why-assign.en.html
    https://www.fsf.org/bulletin/2014/spring/copyright-assignment-at-the-fsf
    https://www.gnu.org/prep/maintain/maintain.html#Legal-Matters

[4]
http://www.tesio.it/2018/02/14/what-i-wish-i-knew-before-contributing-to-open-source.html

[5] https://linuxhint.com/list_of_linux_syscalls/
_______________________________________________
nexa mailing list
[email protected]
https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa

Reply via email to