Pages: 1 2 3 [4]   Go Down
Author Topic: come proteggere il codice da lettura  (Read 3578 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5790
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

primo io non voglio fare/rilasciare/vendere/regalare/progettare nulla  smiley
secondo rilasciare progetti DIY con .hex e' cosa buona e giusta, e' al secondo posto nella classifica delle cose "buone" (al primo c'e' l'opensource totale), ma rilasciare progetti open hardware con .hex e' anch'essa cosa buona e giusta.

Le mie domande sono solo e sempre dirette al capire le cose, e non sono cose semplici visto che e' appunto difficile avere risposte.

tornando sul secondo aspetto delle domande ne sai qualcosa in piu' ? e' corretto, seguendo la licenza LGPL, rilasciare il solo IDE Arduino o un link ad esso, e quindi dichiarare il resto del .hex proprietario ?
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se il tuo software usa una libreria LGPL non sei costretto a distribuirne il sorgente, puoi cioè mantenere il codice chiuso.
La LGPL è stata pubblicata per permettere l'uso di librerie aperte in progetti chiusi, cosa impossibile se la libreria fosse stata GPL (la GPL è "virale", se usi un software GPL sei costretto a rilasciare il tuo progetto come GPL).

Molte librerie sono LGPL ma non perché questa licenza sia migliore della GPL. E' diciamo una licenza di compromesso.
Logged


0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5790
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e tecnicamente come la si usa ? Ripeto, volendo dare per vero il fatto che Raduino IDE sia LGPL, si deve allegare tutto l'ide, quiindi 150mega di roba al file .hex di 10kB, oppure basta dire scaricatevelo da arduino.cc ?
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

e tecnicamente come la si usa ? Ripeto, volendo dare per vero il fatto che Raduino IDE sia LGPL, si deve allegare tutto l'ide, quiindi 150mega di roba al file .hex di 10kB, oppure basta dire scaricatevelo da arduino.cc ?

Il core di Arduino è sotto LGPL. Questo viene dalle FAQ:
Quote
The Arduino software is also open-source. The source code for the Java environment is released under the GPL and the C/C++ microcontroller libraries are under the LGPL.
A questo punto secondo me basta dare il link al software.
Logged


0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5790
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie, emergono ulteriori spunti interessanti.
quindi il fatto che Java sia GPL non ha obbligato a mettere sotto GPL anche le librerie.
L'IDE deve per forza essere GPL ? o poteva anche esso essere LGPL ?

aggiungo quest'altro pezzo di faq:
Quote
Using the Arduino core and libraries for the firmware of a commercial product does not require you to release the source code for the firmware. The LGPL does, however, require you to make available object files that allow for the relinking of the firmware against updated versions of the Arduino core and libraries. Any modifications to the core and libraries must be released under the LGPL.

Che intende con la gestione degli object files ?
Infine non capisco l'ultima indicazione, se il mio lavoro fosse proprio una modifica del core, perche', anche essendo esso LGPL, mi obbliga alla diffusione della modifica stessa ?
« Last Edit: December 20, 2012, 01:37:08 pm by Testato » Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie, emergono ulteriori spunti interessanti.
quindi il fatto che Java sia GPL non ha obbligato a mettere sotto GPL anche le librerie.
L'IDE deve per forza essere GPL ? o poteva anche esso essere LGPL ?
L'IDE è basato su Processing, Processing usa Java, Java è GPL. L'IDE deve per forza essere GPL.
Le librerie sono invece di Arduino quindi possono avere una licenza differente.
E' stata scelta la LGPL anche se per coerenza col principio di open source del progetto io avrei adottato la GPL anche per esse.
E' comunque una mia opinione.

Quote

aggiungo quest'altro pezzo di faq:
Quote
Using the Arduino core and libraries for the firmware of a commercial product does not require you to release the source code for the firmware. The LGPL does, however, require you to make available object files that allow for the relinking of the firmware against updated versions of the Arduino core and libraries. Any modifications to the core and libraries must be released under the LGPL.

Che intende con la gestione degli object files ?


GLi object files sono i file .o che si creano nella cartella temporanea dove "vive" il tuo sketch finché è aperta l'IDE di Arduino e che vengono creati durante la compilazione.
Qui sotto i file che vengono creati per la compilazione dello sketch leOS2_reset_after_timeout:
Code:
CDC.cpp.d
CDC.cpp.o
core.a
HardwareSerial.cpp.d
HardwareSerial.cpp.o
HID.cpp.d
HID.cpp.o
IPAddress.cpp.d
IPAddress.cpp.o
leOS2_reset_after_timeout.cpp
leOS2_reset_after_timeout.cpp.d
leOS2_reset_after_timeout.cpp.eep
leOS2_reset_after_timeout.cpp.elf
leOS2_reset_after_timeout.cpp.hex
leOS2_reset_after_timeout.cpp.o
main.cpp.d
main.cpp.o
malloc.c.d
malloc.c.o
new.cpp.d
new.cpp.o
Print.cpp.d
Print.cpp.o
Stream.cpp.d
Stream.cpp.o
Tone.cpp.d
Tone.cpp.o
USBCore.cpp.d
USBCore.cpp.o
WInterrupts.c.d
WInterrupts.c.o
wiring_analog.c.d
wiring_analog.c.o
wiring.c.d
wiring.c.o
wiring_digital.c.d
wiring_digital.c.o
wiring_pulse.c.d
wiring_pulse.c.o
wiring_shift.c.d
wiring_shift.c.o
WMath.cpp.d
WMath.cpp.o
WString.cpp.d
WString.cpp.o

leOS2:
leOS2.cpp.d
leOS2.cpp.o
utility

I file .o sono creati dal compilatore a partire dal sorgente. Essi contengono già il codice macchina, quindi sono file eseguibili a tutti gli effetti, con in più le indicazioni per il linker su come unirli ad altri file eseguibili per creare il firmware finale, che sarà poi flashato sul micro.

Quote
Infine non capisco l'ultima indicazione, se il mio lavoro fosse proprio una modifica del core, perche', anche essendo esso LGPL, mi obbliga alla diffusione della modifica stessa ?
Perché se modifichi una libreria stai manipolando un componente diretto sotto licenza LGPL. La LGPL è una GPL ristretta. Un conto è se linki codice LGPL, un conto è se usi direttamente codice LGPL.
Cito da Wikipedia:
Quote
Un programma che non contenga alcun derivato di nessuna porzione della Libreria, ma è progettato per lavorare con la Libreria attraverso compilazione o collegamento con questa, viene definito "un'opera che usa la Libreria". Tale opera, isolata, non è derivata dalla Libreria, e pertanto ricade al di fuori dell'ambito di questa Licenza.
Logged


0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5790
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie dei chiarimenti, utili a tutti quelli che cercano info sulle licenze.

Allargo al discorso processing/java, ma quindi qualsiasi programma scritto in processing deve essere rilasciato GPL ?

Scrivere un programma che per funzionare ha bisogno del java, significa che automaticamente deve essere GPL ?
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie dei chiarimenti, utili a tutti quelli che cercano info sulle licenze.

Allargo al discorso processing/java, ma quindi qualsiasi programma scritto in processing deve essere rilasciato GPL ?

Scrivere un programma che per funzionare ha bisogno del java, significa che automaticamente deve essere GPL ?
Non so come funzioni Java. I compilati di Java non so come siano internamente. So che sono archivi ma credo che siano in pseudo-codice per cui disassemblandoli riottieni il listato originale, o per lo meno un qualcosa che ci si avvicina. Ma bisognerebbe chiedere a qualcuno che ci lavora, con Java. Se così fosse, non avrebbe senso distribuire solo il pacchetto Java perché dentro ci sarebbe comunque un codice leggibile.
Logged


Pages: 1 2 3 [4]   Go Up
Jump to: