Buongiorno Stefano, Stefano Zacchiroli <zack@upsilon.cc> writes: [...]
sono un fan della AGPL, ma in questo caso penso non penso sia la soluzione.
condivido, anche se eticamente per un sistema del genere una licenza full-copyleft sarebbe preferibile per non consentire nemmeno di striscio lo sviluppo di derivate proprietarie
Il threat model qui è che lo Stato non distribuisca il codice sorgente di app e/o server, per nascondere qualcosa. Questo threat va combattuto a livello legislativo, non di diritto d'autore.
:-D come se il diritto d'autore non fosse di livello legislativo. La licenza del software è quella che stabilisce se il codice sorgente _deve_ essere fornito a chiunque ottenga il binario; il soggetto obbligato è colui che distribuisce il binario. La licenza è vincolante, non è una vaga promessa. Diamo per scontato, ormai, che il codice di App e server sarà software libero: non c'è ambiguità su quali sono le licenze per software libero e nemmeno su quali sono i loro effetti legali in merito all'obbligo di fornire i sorgenti. Damo per scontato che avremo i sorgenti.
Lo Stato si deve impegnare a distribuire il codice sorgente (di app *e* server) ed a garantire che in ogni momento il sorgente distribuito corrisponda a quello in uso.
Ecco il punto: il binario deve corrispondere al sorgente (noto e libero, con qualsiasi licenza libera) e questo può significare una ed una cosa sola: build riproducibili https://reproducible-builds.org/ Per i non addetti ai lavori: anche quando il software è libero, chi compila il sorgente e lo rende disponibile in forma eseguibile (compila il sorgente in formato binario) può inserire codice a piacere che non pubblica, comprese backdoors e altro malware analogo; a volte questo inserimento potrebbe avvenire in modo talmente subdolo che nemmeno chi compila il codice lo sa, perché a essere truccato è il software di compilazione (c'è una soluzione anche per questo ma non voglio divagare). Scusate la brevità ma spero si capisca. Per la App Android sarebbe sufficiente che fosse disponibile via FDroid, che supporta in pieno Reproducible Builds e permette a chi ne ha competenza di verificare in modo indipendente che il binario distribuito via FDroid corrisponda a quello che risulta dalla propria compilazione indipendente. Per essere riproducibile la App deve essere sviluppata e costruita (build) con alcuni accorgimenti tecnici, per quello occorre che qualcuno lavori in questo senso. Questo ovviamente varrebbe per le App Android, iOS... non pervenuto :-O Per iOS credo sia una battaglia persa tentare di ottenere una App riproducibile attraverso i canali ufficiali, spero per chi ha iOS sia possibile installare un binario senza passare per il coso che decide quali Appp puoi installare. Rimane sempre poi il "probemino" non trascurabile di come fare a garantire con un minimo di credibilità che i dati memorizzati nell'App non siano esfiltrati e de-anonimizzati sfruttando l'insicurezza del sistema operativo degli smartphone o della crittografia, ma qui andiamo "su un altro pianeta" e non abbiamo tempo di spaccare i capello in quattro: siamo in emergenza, no?!? Cosa analoga - cioè build riproducibili - dovrebbe essere fatta per il "backend" lato server, l'applicazione centralizzata che memorizza i dati in forma anonima o pseudonima su un server (o un pool di servers, qualcuno li chiama "cloud"). Posto che il solo fatto che esista un server centralizzato aumenta di almeno **due** ordini di grandezza il rischio per la privacy degli utenti, è _ovvio_ che se chi gestisce il server non si compila da solo il binario partendo dal sorgente e **magari** lo ottiene con un processo di build riproducibile e verificabile anche da terzi, l'intero server centralizzato è in balia del fornitore del binario e può usare _qualsiasi_ tecnica di de-anonimizzazione resa disponibile dal protocollo di immagazzinamento e trasmissione dei dati. Anche immaginando che il codice lato server se lo compila il gestore del server, niente viete al gestore di inserire nel codice qualsiasi cosa _prima_ di compilarlo... e siccome non distribuisce software a nessuno non è manco obbligato legalmente a distribuire il codice modificato (si potrebbe discutere di come funziona la AGPLv3 in questi casi, ma non mi sembra il caso qui). ...è per questo che io segherei il server i partenza, ma pare che chi gestisca l'ambaradan non sia disposto a puntare su sistemi decentralizzati; faccio davvero fatica a comprendere perché... a meno che ci siano secondi fini ma non voglio nemmeno pensarci [...]
- Non è ancora chiaro chi sarà il titolare del diritto d'autore di tutto il sistema. Ma se l'operatore del servizio sarà anche il titolare, esso potrebbe sempre avere una copia del server in funzione sotto un'altra licenza, non (networked) copyleft. Per vietarlo servirebbe una legge ad hoc, quindi tanto vale legiferare sulla costante disponibilità del codice sorgente.
Capisco la proposta ma ti pare una cosa perseguibile? Obbligare per legge a pubblicare il sorgente di software non distribuito in forma binaria è qualcosa che va davvero oltre la legge sul diritto d'autore e dubito possa avere la benché minima possibilità di successo. Certo lo stato potrebbe auto-obbligarsi, aggiungendo la norma al CAD... ma hai visto che fine fa il CAD _ogni_ volta che sarebbe il caso di applicarlo?!? Giriamola come vogliamo ma l'unico modo per essere sicuri che chi gestisce il server non usi un binario "truccato" è eliminare il server (occhio che sto parlando di server che _memorizza_ i dati)... oppure trovare un sistema che garantisca seriamente che non è possibile per chi gestisce il server de-anonimizzare dati **e** trasmissione, ma NON É POSSIBILE con l'attuale infrastruttura digitale, Internet in primis.
- Il copyleft dà il suo meglio in un contesto di versioni derivate di un software. Qui verosimilmente ci sarà una versione della app che dominerà il mercato, perché sarà pubblicizzata dallo Stato, dagli store, etc.
Dateci il sorgente e ci pensiamo noi a distribuire binari _certificati_ essere corrispondenti con il sorgente :-D Diciamo che quello del "binario certificato" è un problema già risolto, ma tutti gli altri sono più difficili da risolvere, ci vuole mooolto tempo. [...] Saluti, Giovanni -- Giovanni Biscuolo