summaryrefslogtreecommitdiff
path: root/src/SW/is-android-free/document.it.rest.txt
blob: bfdc4098f64b826c82838da5e0efdc100e7fd694 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
==============================
 Android è “software libero”?
==============================
:CreationDate: 2009-09-17 10:59:01
:Id: SW/is-android-free
:tags: - software
       - rant
 
Un paio di mesi fa ho comprato un telefono Samsung Galaxy (I7500), su
cui gira una versione dell'ambiente Android_. Sono abbastanza
contento: fa il telefono, me permette di rimanere presente in Rete
anche quando non sono a casa, e svilupparci applicazioni non sembra
tanto complicato.
 
Una cosa, però, mi infastidisce tantissimo: non posso toccare il
sistema operativo.
 
No, non voglio dire "non ho accesso come ``root``": so come ottenerlo,
e sono pure abbastanza d'accordo con la storia del «rendiamo più
difficile possibile agli utenti (e a software malintenzionato)
rovinare il telefono».
 
Quel che voglio dire è: io ho il `codice sorgente del sistema
Android`_ (almeno così dicono), dal kernel Linux fino alle varie
applicazioni. Ma non posso farci nulla di utile: non ho il "sorgente
corrispondente", per dirla con la GPLv3_. Non ho alcun modo di
compilare la stessa immagine di sistema che sta girando sul mio
telefono. La FSF_ dice che la `licenza Apache versione 2.0`_ è `una
licenza libera, compatibile con la GPL versione 3`_, ma apparentemente
è possibile rilasciare un insieme di programmi sotto tale licenza, ma
fare in modo che la loro combinazione non rispetti da `definizione di
software libero`_: non posso eseguire i programmi!
 
Ok, posso eseguirli nell'emulatore. Non è abbastanza. Samsung mi ha
dato una copia binaria della loro versione di Android. Secondo i
termini della licenza, non hanno alcun obbligo di darmi i
sorgenti. Come si fa a chiamare questo “software libero”?
 
Nota a margine, il motivo per cui inveisco è: ci sono alcune funzioni
che vorrei cambiare (es. aggiungere il supporto OpenVPN_ al programma
nexus_; o aggiungere la possibilità di cambiare la lingua di
inserimento per ciascun campo, indipendentemente dal "locale" di
sistema). Visto che non posso trarre vantaggio dalle mie modifiche
(non posso costruire un'immagine Samsung con i miei cambiamenti, e
usarla), e non ho nessuna garanzia di quando potrebbero arrivare sul
mio telefono (anche assumendo che venissero accettate in Android),
perché mai dovrei mettermi a farle?
 
.. _Android: http://www.android.com/
.. _`codice sorgente del sistema Android`: http://source.android.com/
.. _GPLv3: http://www.fsf.org/licensing/licenses/gpl.html
.. _FSF: http://www.fsf.org/
.. _`licenza Apache versione 2.0`: http://www.apache.org/licenses/LICENSE-2.0
.. _`una licenza libera, compatibile con la GPL versione 3`: http://www.fsf.org/licensing/licenses/#apache2
.. _`definizione di software libero`: http://www.fsf.org/licensing/essays/free-sw.html
.. _OpenVPN: http://www.openvpn.net/
.. _nexus: http://android.git.kernel.org/?p=platform/system/core.git;a=tree;f=nexus;h=5ac2cb9f0cee2394fa2d070d3df309090e222828;hb=refs/heads/donut